MAC115 - Introdução à Computação
Física/Bacharelado - 2o. Semestre de 2000 - Turma 21
Aulas
- 23/8/2000 Discussão inicial sobre a disciplina.
- 25/8/2000 O processo de compilação de um programa.
- O computador a papel
- Veja aqui o programa
que executamos no computador a papel.
- Um ótimo exercício é estudar o programa acima e se convencer
de que ele de fato resolve o problema proposto.
- Como (para quê) são usadas as células de memória 12 e 13? E
a célula de memória 14?
- Um primeiro exemplo de um programa em C: hello.c
- 30/8/2000 Mais exemplos introdutórios de programas em C. Variáveis:
declaração e a noção de tipo. O tipo inteiro (int). Entrada e
saída de inteiros: as funções scanf() e printf() da
biblioteca stdio, formato %d para leitura e impressão de
inteiros. Comandos de atribuição. Operações aritméticas básicas com
inteiros. Programas-exemplos: soma2a.c,
soma2b.c
- 1/9/2000 Aula de demonstração do uso do compilador
lccwin32 (no Auditório Abrahão de Moraes).
- 6/9/2000 Expressões aritméticas, ordem de execução das operações,
atribuições abreviadas. Iteração (laços): o comando while.
Exemplos: numeros.c, n_numeros.c; soma100.c, soma_n.c. Uma solução para o problema
deixado como exercício: acha_N.c
- 13/9/2000 Mais exemplos simples de repetições: prog1.5.c, prog1.5for.c. Outro exemplo: fatorial.c, fatorial_b.c, fatorial_for.c. O uso de sentinelas em
entradas. Exemplo: soma_ate0.c.
- 15/9/2000 O comando if e o comando if else. Exemplos:
num_neg.c, aula_pratica.c, prog1.20.c.
- 20/9/2000 Entrega do primeiro Exercício-Programa (veja na
página principal de MAC-115). [O professor estava fazendo
uma prova e portanto não deu aula. Os alunos puderam assistir aula com a
Turma 23 (profa. Yoshiko).]
- 22/9/2000 [O professor continuava fazendo sua prova e portanto não deu
aula. Os alunos puderam assistir aula com a Turma 23 (profa. Yoshiko).]
- 27/9/2000 Mais exemplos de uso dos comandos if e if
else: prog1.20b.c. Outra solução para o
problema dos 3 números: prog1.20c.c.
Expressões booleanas (operadores relacionais ==, !=,
<, >, <=, >= e operadores lógicos
&&, ||, !). Identificação de anos bissextos: bissexto.c. Outra solução (importante!): bissexto2.c.
- 29/9/2000 Comentários sobre a entrega do EP1. Determinação do máximo e
do mínimo: prog1.7.c. O algoritmo de Euclides:
euclides.c. Laços encaixados: fatoração de um
número [fatores.c] e tabuada [tabuada5.c].
- Exercícios
- Modifique o programa fatores.c
para imprimir uma saída alternativa, como segue: por exemplo,
com a entrada 90, o seu novo programa deve imprimir 2(1) 3(2)
5(1).
- Escreva um programa para calcular o máximo divisor comum de
dois números baseado em fatoração (e não no algoritmo de
Euclides).
- 4/10/2000 Exercícios sobre laços encaixados:
- Faça um programa que, dado um inteiro n, imprime uma
saída como esta (note o alinhamento das
colunas). [Uma solução.]
- Faça um programa que, dado um inteiro n, imprime uma
saída como esta (note o alinhamento das
colunas). [Uma solução.]
Variáveis do tipo double. Exemplos básicos. Entrada e saída
para o tipo double (%lf e %g). Séries:
estimativa de e (eee.c), estimativa de
exp x (exp.c). Uma série um
pouco mais complicada (estude este exemplo!): estimativa de
arctan x (arctan.c). Note
que você pode estimar pi calculando arctan 1.
A biblioteca math. Exemplos de uso: exp2.c, arctan2.c.
- 6/10/2000 Três possíveis critérios de parada para somas de séries: exp2.c (como antes), exp2epsilon.c, exp2indif.c [outras formas de controlar o laço:
exp2indif2.c, exp2indif3.c]. Estimativa de log(1 -
x): log.c. Introdução a funções. Um
exemplo: exp_f.c. Outro exemplo: explog.c.
- 11/10/2000 [O professor estava em um encontro científico] Não houve
aula.
- 13/10/2000 Não houve aula (12/10/2000 foi feriado).
- 18/10/2000 Exercícios de revisão para a prova. O problema do
3x+1 (Problema de Collatz): collatz.c.
- Exercício. Altere o programa collatz.c para que ele imprima o maior valor
de f^(m)(x) que ele encontra para um dado x. Por
exemplo, para x = 3, o seu programa deve imprimir
16.
A probabilidade de dois números serem coprimos: coprimos.c. A função zeta: zeta.c. Determinação do máximo divisor comum de
uma seqüência de números: m_euclides.c.
- Exercício. Altere o programa coprimos.c para que ele conte o número de
triplas x, y, z de inteiros em 1,...,n tais que
mdc(x,y,z) = 1. Sabe-se que a razão dentre este número e o
número total de triplas n^3 = n * n * n tende para
1/zeta(3).
- 20/10/2000 Prova 1!
- 25/10/2000 Mais exemplos de funções. Um programa para encontrar uma
aproximação para a raiz quadrada de um número: raiz.c. O método de Newton-Raphson para encontrar uma
aproximação de uma raiz de uma equação genérica f(x) = 0: newton.c.
- 27/10/2000 Passagem de variáveis por referência. Dois
exemplos: ex0.c e ex1.c. Um
exemplo simples em que queremos alterar o valor de uma variável de
main() em uma função, e portanto precisamos passar a variável
"por referência": ordena3.c. Outro
exemplo: hm0.c. Construção
alternativa: hm1.c (evita passagem por referência).
O método da bisecção para isolar raízes de equações: bisec.c.
- 1/11/2000 O tipo char. A tabela ASCII. Aritmética com caracteres.
Entrada e saída: getchar() e putchar(). A biblioteca
ctype (veja os protótipos em ctype.txt).
- 3/11/2000 Finados. Não houve aula.
- 8/11/2000 Um novo comando de controle de fluxo: switch.
Programa para contar o número de vogais em um texto: vogais.c. Programa para encontrar o comprimento
maximo de uma palavra em um texto mais_longa.c.
Variáveis indexadas. Exemplo inicial com vetores: inverte.c.
- 10/11/2000 Mais exemplos introdutórios com vetores: roleta.c e conta_char.c. Passagem de vetores como
parâmetros em funções; exemplos: leia_imprima_vetor.c. Mais exemplos: produto_escalar.c.
- 15/11/2000 Recesso escolar.
- 17/11/2000 Discussão sobre o EP3 (dicas iniciais). Introdução a
matrizes: leia_imprima_matriz.c.
Mais vetores. Busca de um elemento em um vetor: busca.c (com sentinela). Ordenação
de um vetor; discussão inicial. Idéia do algoritmo da bolha.
- 22/11/2000 Ordenação de vetores, continuação. Método da seleção: ordena_1.c, ordena_1a.c. Método da bolha: ordena_bubble.c. Busca em vetores ordenados;
busca binária: busca_binaria.c.
- 24/11/2000 Mais discussão sobre o EP3. Exercícios com matrizes.
Verifica se uma matriz é simétrica: matriz_simetrica.c; calcula o produto de
uma matriz por um vetor: mz_x_vetor.c e mz_x_vetor2.c.
- 29/11/2000 [Professor Yoshi em Brasília] Os alunos devem assistir aula
na turma 23, com a professora Yoshiko.
- 1/12/2000 Mais exercícios com matrizes: este programa determina se uma
matriz é um quadrado latino: latino.c.
Exercício. Dizemos que uma matriz n x n inteira A
é uma matriz de permutação se em cada linha e em cada coluna houver n -
1 elementos nulos e um único elemento igual a 1. Escreva
programa que recebe como entrada um inteiro n e uma matriz
A de inteiros n x n e verifica se esta matriz é uma matriz
de permutação. Palavras cruzadas. Veja aqui o programa das
palavras cruzadas discutido em sala: p_cruzada.c.
- 6/12/2000 (As notas da P1 serão divulgadas até esta data.) Aula de
exercícios; não percam!
- 8/12/2000 Prova 2!
- 13/12/2000 (As notas da P2 serão divulgadas até esta data.) Aula sobre
strings. Exemplos discutidos: str.c, full.c, full1.c, full2.c, my_sort.c. [Não houve aula, por falta de
quem assistisse...]
- 15/12/2000 Prova substitutiva!
Calendário
August 2000 September 2000 October 2000
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 5 1 2 1 2 3 4 5 6 7
6 7 8 9 10 11 12 3 4 5 6 7 8 9 8 9 10 11 12 13 14
13 14 15 16 17 18 19 10 11 12 13 14 15 16 15 16 17 18 19 20 21
20 21 22 23 24 25 26 17 18 19 20 21 22 23 22 23 24 25 26 27 28
27 28 29 30 31 24 25 26 27 28 29 30 29 30 31
November 2000 December 2000
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 1 2
5 6 7 8 9 10 11 3 4 5 6 7 8 9
12 13 14 15 16 17 18 10 11 12 13 14 15 16
19 20 21 22 23 24 25 17 18 19 20 21 22 23
26 27 28 29 30 24 25 26 27 28 29 30
31
Página principal de MAC115 (IF/Bacharelado - 2o. Semestre de
2000).
Y. Kohayakawa
<yoshi@ime.usp.br>
Last modified: Wed Dec 13 09:19:04 BRDT 2000