MAC 115 - Introdução à Computação
Escola Politécnica - Primeiro semestre de 1998
Cronograma - terceira parte
- Aula 17 (28 de abril):
- Recolher EP2.
- Entregar EP3.
Problema 17.1:
- Escreva uma função de cabeçalho
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).
Variante: calcula o mmc de n
inteiros.
- Introduzir vetores (sem funções).
Problema 17.2: Dada uma seqüência de n inteiros,
imprimir esta seqüência na ordem inversa a da leitura.
Problema 17.3: Dados n lançamentos de uma roleta
(números entre 0 e 36), calcular a freqüência de cada número.
- Aula 18 (30 de abril):
Problema 18.1: Dada uma seqüência
de números reais diferentes de zero, seguida por zero, imprimir a
seqüência eliminando os números repetidos.
- Vetores como parâmetros de função.
Problema 18.2: Escreva um programa que
leia ium inteiro positivo m, os coeficientes de um polinômio real
p0 de grau n, três reais x0, x1 e
x2 e calcule p0(x0),
p1(x1) e p2(x2), onde
p1 e p2 são respectivamente a primeira e a
segunda derivada do polinômio p0.
Problema Extra: Exercício 6.5 do Caderno de
Exercícios.
- Aula 19 (5 de maio):
- Falar em strings
Problema 19.1:
- Faça uma função tiraletra que recebe uma string s e um
caractere c e remove de s todas as ocorrências deste caractere
(enfatizar o '\0').
- Faça uma função inverte que recebe uma string s e inverte
todos os caracteres da string.
- Faça um programa para codificar uma mensagem, que lê uma
string, remove todas as vogais e inverte a string resultante.
Problema 19.2:
- Faça uma função procura que recebe uma string palavra e uma
string frase e devolve 1 se a string palavra aparece na string
frase, 0 caso contrário.
- Escreva um programa que lê uma frase e uma palavra e
imprime se a palavra aparece ou não na frase, bem como se a
palavra de trás para frente aparece ou não na frase. (Use a
função inverte do Problema 20.1 acima.)
- Aula 20 (7 de maio):
- Amanhã recolher EP2 complementar.
- Ajuste de cronograma.
- Aula de exercícios.
- Aula 21 (12 de maio):
- Algoritmos de busca em vetores
Problema 21.1: Dado um inteiro positivo n, uma seqüência
com n números reais e um real x, verifique se x ocorre na seqüência,
e, neste caso, imprima em que posição.
Sugestão: fazer este ou o Problema 21.1 da próxima aula
com palavras ao invés de reais, ou seja, buscando um nome em um
vetor de nomes. Isso deve ajudar os alunos a entenderem um pouco
mais como fazer o EP3.
- Introduzir conceito de "sentinela"
Problema 21.2: Mesmo problema para vetor ordenado.
- Busca binária
- Aula 22 (14 de maio):
- Ordenação de vetores
Problema 22.1: Dado um inteiro positivo n e uma
seqüência com n números reais, ordenar esta seqüência em ordem
crescente.
- Algoritmo de ordenação por seleção (vai colocando os maiores no
fim ou os menores no começo)
- Algoritmo Bubblesort
- Algoritmo Bubblesort com aviso de troca
- Aula 23 (19 de maio):
- Ordenação de vetores - continuação
Problema 23.1 (Mesmo que 21.2): Dado um inteiro positivo
n e uma seqüência com n números reais, ordenar esta seqüência em
ordem crescente.
- Algoritmo de ordenação por inserção (para cada i a
seqüência está ordenada no intervalo [0,i-1]. Então insere o
elemento v[i] na posição correta).
Problema Extra: um treino para o EP3.
- Aula 24 (21 de maio):
- Introduzir matrizes
Problema 24.1: Faça um programa que leia m, n e os
elementos de uma matriz real Am x n e verifica se a
matriz A tem uma linha, coluna ou diagonal composta apenas por
zeros.
Problema 24.2: Dada uma matriz real Am x n,
verificar se A é simétrica.
Problema Extra: Dada uma matriz
inteira Am x n, verificar se A é um quadrado mágico.
- Aula 25 (26 de maio):
Problema 25.1: Dadas matrizes Am x n e Bn
x p calcular a matriz produto Cm x p.
Problema Extra: Exercício 5.9 do Caderno de Exercícios.
- Aula 26 (28 de maio):
- Recolher EP3.
- Matrizes como parâmetros de função
Problema 26.1: Exercício 6.6 do Caderno de
Exercícios.
Problema 26.2: Exercício 6.11 do Caderno de
Exercícios.
Problema 26.3: Exercício 6.16 do Caderno de
Exercícios.
- Aula 27 (2 de junho):
- Ajuste de cronograma.
- Aula de exercícios (Sugestões: Exercício 5.3,
5.14, 6.17, 6.19 e/ou
Exercício 4.7 do Caderno de Exercícios).
- Aula 28 (4 de junho):
- Entregar EP4.
- Aula de exercícios.
- Prova 2 (6 de junho, sábado, das 10 às 13 horas):
- Aula 29 (9 de junho):
- Explicar ordenação indireta, que é usada no EP4.
- Aula 30 (16 de junho):
- Tópicos mais avançados de C ou de algoritmos. Por exemplo,
ensinar struct, resolver exercícios da seção de Complementares do
Caderno de Exercícios, etc.
- Aula 31 (18 de junho):
- Tópicos mais avançados de C ou de algoritmos.
- Aula 32 (23 de junho):
- Recolher EP4.
- Tópicos mais avançados de C ou de algoritmos.
- Aula 33 (25 de junho):
- Revisão para a última prova.
- Aula de exercícios.
- Aula 34 (28 de junho):
- Revisão para a última prova.
- Aula de exercícios.
- Prova 3 (2 de julho, quinta, das 9 às 12 horas):
- Prova de reavaliação (29 de julho, quarta, das 9 às 12 horas):
Last modified: Thu Oct 29 10:57:53 EDT 1998