 |
06/03: |
Apresentação. O que é um computador: seus componentes e seu
funcionamento básico. |
Primeiros programas em linguagem informal: declarações de
variáveis, comandos de entrada e de saída, comandos de
atribuição. Exercício: calcular a soma (diferença, produto,
quociente) de dois números dados. |
Comando condicional ("se ... então ..."). Exercício: dados dois
números, imprimir o maior deles. |
|
 |
09/03: |
Comando de repetição ("enquanto"). Exercício: dada uma seqüência
de numeros inteiros diferentes de zero, terminada por zero,
imprimir a sua soma.
|
Mais exercícios:
|
Dada uma seqüência de numeros inteiros diferentes de zero,
terminada por zero, imprimir a soma dos elementos positivos
e a soma dos elementos negativos. |
|
Dado n e uma seqüência de n números inteiros, imprimir o
maior número da seqüência. |
|
|
 |
13/03: |
Exercícios:
|
Dados x inteiro e n natural, calcular x elevado a n. |
|
Dada uma seqüência de numeros inteiros diferentes de zero,
terminada por zero, imprimir o seu produto. |
|
Dados três números, imprimi-los em ordem crescente. |
|
Fazer em casa: 1.6, 1.7 e 1.9 do caderno de
exercícios. |
|
 |
16/03: |
Exercícios 1.6 (o da loja de discos), 1.9 (dado n natural,
determinar o fatorial de n) e 1.11 (dado n natural, verificar se ele
é um número triangular) do caderno de exercícios. |
Condições compostas e os conectivos lógicos "e" e
"ou". |
|
 |
20/03: |
Introdução à linguagem C: declarações de variáveis, comandos
de entrada e de saída, comandos de atribuição, comandos "if
... else" e "while", operadores lógicos de comparação (==, !=,
<, <=, >, >=). |
Exercício 1.12 (dado um número inteiro, verificar se ele é
primo). |
|
 |
23/03: |
Solução em C do exercício 1.12 (dado um número inteiro,
verificar se ele é primo). |
Uso de "#define" para definir constantes simbólicas. |
Exercício: dados três inteiros positivos representando uma
data (dia, mês e ano), calcular a data do dia
seguinte. |
Uso de "se ... senão" dentro de um "senão". Seqüências de
comandos da forma "se ... senão se ... senão se ... senão
...". |
|
 |
27/03: |
Solução em C do exercício visto na aula passada (o que pede
a data do dia seguinte). |
Exercício: dadas as notas de n alunos, calcular
quantos foram aprovados (nota maior ou igual a 50), quantos
ficaram de recuperação (nota menor que 50 e maior ou igual a
30) e quantos foram reprovados (nota menor que
30). |
O comando "for". |
|
 |
30/03: |
Exercícios:
|
Dada uma seqüência com n números inteiros, verificar se ela
está em ordem crescente. |
|
Dado um inteiro n >= 10, verificar se este
número contém dois dígitos iguais consecutivos. |
|
|
 |
03/04: |
Outros tipos de dados: "short", "long", "unsigned short",
"unsigned", "unsigned long", "float" e "double".
Leitura e impressão de números reais. Conversão de tipos:
automática (implícita) e forçada ("cast"). |
Exercícios:
|
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). |
|
Dadas as notas de n provas de MAC-115, calcular a média da
turma. |
|
Fazer em casa: Dado um numero real x >= 0 e um real
epsilon > 0, calcular uma aproximacão de raiz
quadrada de x através da seqüência dada por
r0 = x e
rn+1 = (rn + x/rn)/2.
A aproximação será o primeiro valor rn+1 tal que
| rn+1 - rn | < epsilon. |
|
|
 |
06/04: |
Solução do exercício da raiz quadrada de x. |
Exercício: dados x e epsilon > 0, números
reais, calcular uma aproximação de ex através da
série
ex = 1 + x + (x2)/2 + (x3)/3! + ... + (xk)/k! + ...,
isto é, somar os termos da série até aparecer um termo cujo
valor seja menor que epsilon. |
Exercícios para casa: 2.6 e 2.7 do caderno. |
|
 |
17/04: |
Discussão sobre o primeiro exercício programa. |
Exercícios 2.6 e 2.5 do caderno. |
|
 |
20/04: |
Questões sobre o primeiro exercício programa. |
Laços encaixados (também chamados de laços aninhados ou
nested loops). |
Exercícios:
|
Dado um inteiro m, imprimir a decomposição de m em fatores
primos, com multiplicidade. Exemplo: para m = 120
a saída desejada é 2(3), 3(1), 5(1). (Exercício 3.6 do
caderno.) |
|
Dadas n seqüências de números inteiros, cada qual terminada
por 0, calcular a soma dos números pares de cada
seqüência. (Exercício 3.1 do caderno.) |
|
|
 |
24/04: |
Exercícios 1.25, 1.22 e 1.23 do caderno. |
|
 |
27/04: | |
 |
04/05: |
Funções em C: definição e chamada. Passagem de parâmetros
para funções. Valor retornado por uma função. |
Exercício (motivação para funções): escrever um programa que
lê três números e imprime o fatorial de cada um deles.
Soluções: (1) sem usar função nenhuma, (2) com uma função
inteira que retorna o fatorial de um número passado como
parâmetro. |
|
 |
08/05: |
Exercício com três partes: (1) escreva uma função real que
recebe como parâmetro um real x e retorna a raiz quadrada de
x, (2) escreva uma função real que recebe dois pontos no
plano através de suas coordenadas cartesianas e retorna a
distância entre esses pontos, e (3) escreva um programa que
leia um ponto origem (x0, y0) e
uma seqüência de n pontos e determina o mais próximo da
origem. |
Exercício: (1) escreva uma função booleana que recebe im
inteiro n e verifica se n é primo, e (2) escreva um programa
que leia um inteiro m e verifica se ele pode ser escrito
como m = p + q, onde p e q são
primos. |
|
 |
11/05: |
Exemplos: (1) função real potência, que recebe um real x e
um natural n e retorna x elevado à n, (2) função void
imprime_potência, que recebe um real x e um natural n e
imprime x elevado à n. Comparação entre essas funções. (Qual
é mais útil?) |
Variáveis tipo ponteiro (ou apontador). Motivação: função
que recebe dois parâmetros e troca os valores desses
parâmetros. |
Declarações de ponteiros. Uso do operador unário *
("dado apontado por") para dereferenciar um
ponteiro. |
O operador unário & ("endereço de") e seu uso para
inicializar variáveis tipo ponteiro. |
|