Exercício: Dada uma sequência de números
inteiros, imprimir o quadrado de cada
número.
31 de agosto:
Repetições com contador (inicialização,
condição de parada e passo)
Dado um natural n, imprimir a soma
1+2+3+...+n (Duas soluções: um contador i
variando de 1 até n ou usar o próprio n e
decrementar até 1).
Dado um natural n, imprimir os ímpares entre
1 e n.
Repetições encaixadas: Dada uma sequência
terminada por zero, imprimir, para cada número n
da sequência, os ímpares entre 1 e n.
2 de setembro:
Condicional: se ... então (if).
Dados um natural n e uma sequência de n inteiros,
somar os positivos.
Divisão inteira: divisão / e resto da divisão
%.
Dados um natural n e uma sequência de n
inteiros, somar os pares.
Condições compostas: "e" (&&) e "ou" (||).
Dados um natural n e uma sequência de n
inteiros, somar os positivos pares.
Condicional: se ... então ... senão (if-else).
Dada uma sequência de inteiros terminada por
zero, contar quantos elementos são pares e quantos são
ímpares.
7-9 de setembro: Não
haverá aula
14 de setembro:
Dado um inteiro n maior que zero, dizer quantos
dígitos n tem.
Idéia de váriavel booleana (verdadeiro ou falso).
Dados n e uma sequência de n inteiros, dizer se os
elementos da sequência estão em ordem crescente:
Primeira versão com erros de lógica, simulação.
Versão correta usando dois valores inteiros para
indicar se a sequência está ou não em ordem
crescente.
Constantes:
#define TRUE 1 #define FALSE 0
16 de setembro:
Dado um inteiro n maior que zero, calcular n!.
O comando for.
Exercício de simulação.
21 de setembro:
Dados n maior ou igual a zero e as notas de n
alunos, imprimir a maior e a menor.
Dados três inteiros dia, mes e ano, imprimir a
data do dia seguinte.
23 de setembro: Entrega do EP1
Dado um número em notação binária, convertê-lo para base decimal.
Dado um número inteiro positivo, verificar se ele é primo.
28-30 de
setembro: Não
haverá
aula
5 de outubro: Números reais.
Dado um natural n, determine o
número harmônico
Hn
definido por:
Dados dois números reais x e eps,
calcular
uma aproximação de
ex usando a série
1 + x + x2/2! + ... +
xn/n! +
...
incluindo na soma todos os termos
até o primeiro de valor
absoluto menor que eps.
Dados um número real x e um real
positivo eps,
calcular uma aproximação da
raiz quadrada de 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| < eps.
7 de outubro: Funções.
Usando o método da aula passada, escrever uma
função que calcula a raiz quadrada de um real x com
precisão eps.
Dadas as coordenadas de dois pontos no plano,
calcular a distância entre eles com precisão eps, usando a função acima.
Dados dois reais x e y e dois inteiros positivos a e
b, calcular xa + yb + (x-y)(a+b).
12-14
de
outubro:
Não
haverá
aula
19
de
outubro:
Faça uma função que receba um inteiro positivo n e
devolva n!
Utilizando a função acima, escreva uma função que receba dois
inteiros n e m e devolva n!/(m!(n-m)!)
Utilizando as duas funções acima, escreva um programa que leia
um inteiro positivo n e imprima os coeficientes da expansão do
binômio (a+b)n
Um número a é dito
permutação
de um número b se os dígitos de
a formam uma
permutação dos dígitos de b.
Exemplo: 5412434 é uma
permutação de
4321445, mas não é uma
permutação de 4312455.
Obs.: Considere que o dígito 0 (zero) não
aparece nos
números.
(a) Faça uma função
contadígitos
que dados um inteiro n e um inteiro d, 0
< d
< 9, devolve quantas vezes o dígito d
aparece em n.
(b) Usando a função do item anterior,
faça um programa
que lê dois inteiros positivos a e b e
responda se a
é permutação de b.
21 de outubro: Aula de exercícios
Dado um número natural n, determinar se n é palíndrome ou não. Um
número é palíndrome se é igual a ele de trás para frente. Exemplos: 17671,
2002, 11, 9, 121 são palíndromes. Já o número 123123 não é
palíndrome.
Escreva uma função que tenha como entrada um inteiro n, e devolva o valor de
Sn = 1/n + 2/(n-1) + 3/(n-3) + ... + n.
Utilizando a função acima, escreva um programa que leia uma
seqüência de inteiros terminada por zero e imprima a soma de
Sk onde k é cada elemento da seqüência.
26 de outubro: P1
28 de outubro:
Correção da prova
Dicas do EP2
2
de
novembro:
Não
haverá
aula
4 de novembro:
Dados dois naturais m e n
determinar, entre todos
os pares de números naturais (x,y) tais que
x < m e y < n,
um par para o qual o valor da expressão xy -
x2
+ y seja máximo.
Exercício de simulação com funções.
Passagem de parâmetros por referência: função que troca o valor de
duas variáveis
9 de novembro:Entrega do EP2
Usando a função troca da aula anterior, escrever um programa que lê
dois inteiros x e y e coloca o menor em x.
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.
11 de novembro:
Escreva uma função com protótipo
int divide (int *m, int *n, int d);
que recebe três inteiros positivos como parâmetros e retorna 1 se d divide
pelo menos um entre *m e *n, 0 caso contrário. Fora isso, se d divide *m,
divide *m por d, e o mesmo para o *n.
Escreva um programa que lê dois inteiros positivos m e n e calcula, usando
a função acima, o mínimo múltiplo comum entre m e n, ou seja,
mmc(m,n).
Tipo char
Escreva um programa que lê uma frase terminada por '.' e imprima o
número de vogais da frase.
16 de novembro:
Faça uma função com o protótipo
void converte (char *ch, int *tipo);
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 frase terminada por ponto e imprima a
frase convertida para maiúscula, eliminando os caracteres que
não forem letras ou números.
Vetores
Dada uma seqüência de n números, imprimi-la na
ordem inversa à da leitura.
Dados dois vetores x e y, ambos com n elementos,
determinar o produto escalar desses vetores.
18 de novembro:
Usando a função troca vista em aula, escreva um programa que lê um
vetor de inteiros e imprime o vetor em ordem não decrescente.
Escreva uma função que recebe um vetor de coeficientes (reais) de um
polinômio, o grau do polinômio e um número real x e devolve o valor do
polinômio no ponto x.
Escreva um programa que lê o grau e os coeficientes de um polinômio e
dois valores reais x1 e x2 e imprime o valor do polinômio calculado nestes
dois pontos.
23 de novembro:
Escreva uma função que recebe os coeficientes (reais) de um polinômio
e seu grau e devolve em um vetor os coeficientes da derivada do
polinômio.
Escreva um programa que lê o grau e os coeficientes de um polinômio e
um valor real x e imprime os valores do polinômio, sua primeira e
segunda derivadas em x.
25 de novembro: vetores de caracteres e strings
Escreva um programa que lê uma frase e uma palavra e conta
quantas vezes a palavra "encaixa" na frase