MAC 115 - Introdução à Computação
Escola Politécnica - Primeiro semestre de 1998
Cronograma - segunda parte
- Aula 9 (19 de março):
- Variáveis reais (float e double).
- Formato de impressão.
- Casting.
Problema 9.1: Dado um inteiro positivo k, calcule o
valor da soma Sk := 1/k + 2/(k-1) + 3/(k-2) + ... +
k/1 (exercício 2.11 do Caderno de Exercícios).
Problema 9.2: Dadas n notas de provas de MAC 115,
calcular a média da turma.
Problema 9.3: Dado um número real x e um real \epsilon
calcular uma aproximação da \sqrt{x} através da seqüência de números
abaixo. Tome r0 = x e
rn+1 = 1/2 (rn+ x/rn).
A aproximação será o primeiro valor rn+1 tal que
|rn+1-rn| < \epsilon.
Problema extra: Dado um natural n > 0, determinar o
número harmônico Hn dado por
Hn = 1 + 1/2 + 1/3 + 1/4 + ... + 1/n (exercício 2.2 do
Caderno de Exercícios).
Exercícios recomendados: 2.1, 2.3, 2.4, 2.8 e 2.10 do
Caderno de Exercícios.
- Aula 10 (24 de março):
- Entregar EP2.
- Repetições encaixadas.
Problema 10.1: Dado um inteiro m, imprimir a
decomposição de m em fatores primos, com multiplicidade.
Ex: para m = 120 a saída desejada é
2 (3), 3 (1), 5 (1) (exercício 3.6 do Caderno de Exercícios).
Problema 10.2: Dado x e \epsilon, números reais, calcular uma
aproximação de ex através da série ex = 1 + x +
(x2)/2 + (x3)/3! + ... + (xk)/k! +
... com precisão \epsilon, isto é, somar todos os termos da série
até aparecer um termo cujo valor seja menor que \epsilon.
Problema extra: Dados x e \epsilon > 0, obter uma
aproximação com precisão \epsilon da série infinita
-1 + (x2)/3! - (x4)/5! + ... +
((-1)(k+1) x(2k))/(2k+1)! + ...
Exercícios recomendados: 2.6, 2.7, 2.12, 3.1-3.7 do Caderno
de Exercícios.
- Aula 11 (26 de março):
- Tipo char.
- Comando switch.
Problema 11.1: Dado um inteiro n e um texto, ou seja, uma
seqüência com n caracteres, determinar a freqüência de vogais no
texto.
Exemplo: para n=21 e o texto "Maguila derruba Tyson" a freqüência
de vogais é 8/21.
Problema 11.2: Dada uma seqüência de caracteres terminada
por '.', imprima a seqüência sem as vogais, os brancos e os sinais de
pontuação.
Exemplo: Dada a seqüência "É muito bom estudar MAC115." a saída
deverá ser "mtbmstdrMC115".
Problema 11.3: Dada uma frase terminada por '.',
determinar o comprimento da palavra mais longa.
Exercícios recomendados: 2.9 do Caderno
de Exercícios.
- Aula 12 (31 de março):
- Recolher EP1.
- Funções.
Problema 12.1: Faça um programa que leia dois números
reais x e y e dois inteiros positivos a e b, calculando em
seguida o valor da expressão xa + yb +
(x-y)a+b.
Problema 12.2:
- Escreva uma função que recebe n e calcula n!.
- Faça uma função que dados m e n inteiros, usando a função
fatorial, calcula m!/(n!(m-n)!).
- Faça um programa que lê um inteiro n > 1 e imprime os
coeficientes da expansão de (a+b)n.
Exercícios recomendados: 6.2 do Caderno
de Exercícios.
- Aula 13 (2 de abril):
- Funções (protótipos de funções).
Problema 13.1:
- Faça uma função booleana que recebe um inteiro n e
verifica de n é primo.
- Faça um programa que recebe um inteiro m e verifica se
m pode ser escrito como p+q, onde p e q são primos.
Problema 13.2:
- Faça uma função real que recebe um real x e devolve \sqrt{x}.
- Faça uma função real que recebe dois pontos no plano
através de suas coordenadas cartesianas e devolve a distância
entre os pontos.
- Faça um programa que leia um ponto origem (x0,
y0) e uma seqüência de n pontos e determina o ponto
mais próximo da origem.
Exercícios recomendados: 2.5 e 6.3 do Caderno
de Exercícios.
- Semana Santa (de 6 a 10 de abril).
- Aula 14 (14 de abril):
- Ajuste de cronograma / aula de exercícios.
Sugestões: fazer alguns dos problemas extras ou exercícios
recomendados nas aulas anteriores. Por exemplo, 2.6, 3.5 e 6.2.
- Aula 15 (16 de abril):
- Prova 1 (18 de abril, sábado, das 10 às 13 horas):
- Aula 16 (23 de abril):
- Recolher EP2.
- Entregar do complemento do EP2: gráficos.
- Comentários sobre a prova.
- Passagem de parâmetro por referência.
Problema 16.1:
- Faça uma função que recebe um número inteiro n>0 e devolve
o número de dígitos de n e o primeiro dígito de n.
- Escreva um programa que lê uma seqüência de N inteiros
positivos e imprime o número de dígitos e o primeiro dígito de
cada um deles.
Problema 16.2:
- Faça uma função que recebe três números inteiros
n1, n2, n3 e devolve o
índice do maior e o índice do menor dentre os três.
- Escreva como ficaria uma chamada da função no programa
principal.
Problema 16.3:
- Faça uma função com protótipo
void somabit (int b1, int b2, int *vaium, int *soma);
que recebe três bits (inteiros entre 0 e 1) b1, b2 e *vaium e
retorna um bit soma representando a soma dos três e o novo um
bit "vai-um" em *vaium.
- Escreva um programa que lê dois números em binário e
calcula um número em binário que é a soma dos dois números
dados. Utilize a função acima.
Problema Extra:
- Faça uma função com o protótipo
void converte (char ch, int *tipo, char *valor);
que
recebe um caractere ch e devolve em *tipo 0, se o
caractere for um número inteiro, 1 se for uma letra (maiúscula
ou minúscula) e 2 caso contrário; e além disso, no caso de ser
uma letra, converte para maiúscula, senão devolve ch inalterado.
- Faça um programa que leia uma seqüência de n caracteres e
imprima a seqüência convertida para maiúscula, eliminando os
caracteres que não forem letras ou números.
Last modified: Tue May 5 18:46:05 EST 1998