Laboratório de Programação
Atividade 
 de maio– de junho de 
Ciência da Computação
Prof. Leandro Zatesko
• Os programas devem ser todos desenvolvidos em C.
• As leituras e as impressões devem ser feitas todas através dos dispositivos padrões de entrada e saída.
• As únicas bibliotecas que podem ser incluídas nos códigos são stdio.h, stdlib.h, math.h e time.h. Se precisar manipular strings,
crie você mesmo funções para tanto.
Nível 
Exercício .
Faça um programa que lê um número natural n e imprime n!.
Exercício . Faça um programa que lê uma sequência de números inteiros positivos, seguida por zero, e
imprime o máximo dos números lidos.
Exercício . Faça um programa que lê uma sequência de números inteiros não-nulos, seguida por zero, e
imprime a soma dos números pares lidos e a soma dos ímpares.
Exercício . Faça um programa que lê um número natural n de alunos e um natural p e imprime o número
de quantos modos distintos é possível agrupar os n alunos em equipes com p alunos.
Exercício .
Faça um programa que lê um natural n e imprime o resultado de
S(n) =

    
+ + + + + ··· +
! ! ! ! !
n!
Teste seu programa para vários valores de n. Tente trabalhar com bastante precisão. Lembre-se também de
imprimir o resultado com mais casas de precisão. Tente por fim descobrir o maior valor de n que ainda faz
diferença na precisão estipulada. Você reconhece o resultado? O que você pode conjecturar sobre S(n) quando
n → +∞? Pesquise na Internet sobre isso.
Exercício . Faça um programa que lê caracteres da entrada padrão até o caracter # e imprime a metade do
número formado por todos os algarismos digitados.
Exemplos de entrada
Bom dia!
Hoje eu acordei, tomei  café,
comi  bolachas, perdi o ônibus
e paguei  reais em  táxi.
#
Vou rezar /
para achar /
para te levar para /
#
#
Saídas correspondentes
.
.
.
Nível 
Exercício . Faça um programa que lê um natural n e, utilizando o Crivo de Erastótenes, imprime todos os
números primos no intervalo [..n]. Cuidado! Para n muito grande, seu programa pode demorar muito, muito
tempo.
Exercício . Dois números primos são dito consecutivos quando a diferença entre eles é no máximo dois. Por
exemplo, são pares de números consecutivos:  e ;  e ;  e ;  e ;  e . Faça um programa que lê
um natural n e imprime todos os pares de primos consecutivos no intervalo [..n].
Exercício . Sendo x um número real, usamos π(x) para denotar a quantidade de números primos (positivos, claro) no máximo x. O Teorema dos Números Primos diz que
π(x) ∼
x
.
ln x
Segundo essa aproximação, por exemplo, temos que há cerca de    primos no intervalo [.. − ].
Na realidade, há    primos. Note-se ainda que o próprio  −  é um dos    primos!
Faça um programa que lê um número n e imprime π(x) e lnxx , para fazer a comparação entre os resultados.
Nível 
Exercício .
duto delas.
Faça um programa que lê duas matrizes (não necessariamente quadradas) e imprime o pro-
Exercício . Faça um programa que lê um natural n e imprime as n primeiras linhas do Triângulo de
Pascal.
Exercício . Faça um programa que lê um caça-palavras e uma palavra e imprime a posição onde a palavra
pode ser encontrada no caça-palavras, além da direção que se deve considerar (N, NE, E, SE, S, SW, W, NW).
Nível 
Exercício . Faça um programa que lê um natural n e imprime com caracteres ASCII a resolução do problema das Torres de Hanói para n discos.

Exemplos de entrada

Saídas correspondentes
+-+
| |
+---+
|
|
+-----+
|
|
_________ _________ _________
+---+
|
|
+-----+
+-+
|
|
| |
_________ _________ _________
+-----+
+---+
+-+
|
|
|
|
| |
_________ _________ _________
+-+
| |
+-----+
+---+
|
|
|
|
_________ _________ _________
+-+
| |
+---+
+-----+
|
|
|
|
_________ _________ _________
+-+
+---+
+-----+
| |
|
|
|
|
_________ _________ _________
+---+
|
|
+-+
+-----+
| |
|
|
_________ _________ _________
+-+
| |
+---+
|
|
+-----+
|
|
_________ _________ _________

Nível 
Exercício . Faça um programa que lê um labirinto de dimensões n × m (n e m fornecidos no começo da
entrada) composto apenas pelos seguintes caracteres:
• # (indica um muro);
•
(espaço em branco, indica um corredor livre);

• r (indica um rato, de tal modo que há só um rato no labirinto);
• Q (indica um queijo).
Seu programa deverá imprimir várias vezes o labirinto, movendo o rato uma casa em cada impressão. O rato
só pode se mover nas direções N, S, E e W (logo, não se pode mover em diagonal). Seu programa deverá
levar o rato ao queijo no menor número de movimentos. Se o queijo for inatingível, seu programa não deverá
imprimir nada.
Exemplos de entrada
 
######
r #
### #
#Q
#
Saídas correspondentes
######
r #
### #
#Q
#
######
r#
### #
#Q
#
######
#
###r#
#Q
#
######
#
### #
#Q r#
######
#
### #
#Q r #
######
#
### #
#Qr #
######
#
### #
#r
#
 
r#Q

Download

Laboratório de Programação