MAC115 - Introdução à Computação
Turma 23 -- Bach Física Diurno -- 2o. Semestre de 2015
Aulas
- 04/ago
- Informações gerais sobre a disciplina. Como pode ocorrer
mudanças, consulte sempre a página
principal desta disciplina.
- Conceitos básicos
- Hardware x software
- Do que trata a Ciência da Computação
- O que é um algoritmo
- Compilador | linguagem de alto
nível | linguagem de máquina
- Tarefa para casa. Ler (sem pressa) o seguinte material:
- 06/ago
- Como funciona um computador: seus componentes e suas
relações. (UCP, memória, dispositivos de entrada e saída.)
- Introdução à linguagem C -
Aprendendo com exemplos:
- Meu primeiro programa: ola.c
- Somando 2 números inteiros:veja 3 exemplos
(entenda as diferenças entre esses programas)
- 11/ago
- Introdução à linguagem C
- Declaração de
variáveis do tipo int. , comandos de
entrada/saida (funções printf e
scanf), comando de atribuição.
- O comando while. Programa-exemplo:
Imprimindo os inteiros de 1 a 100:
numeros100.c
- Operadores relacionais: ==, !=, <, >, <=, >=
- Mais dois exemplos simples: : veja aqui
- O operador % (mod) (resto da divisão de dois
números inteiros --- o resto é sempre um número inteiro).
Exemplo1: 10 % 3 é igual a 1; exemplo2: 0 % 5 é igual a 5; exemplo3: 1 % 2 é igual a 1. Para testar
se um número k é par, basta testar se o resto da divisão de k por 2 é
igual a zero (ou seja, testar se (k % 2 == 0))
- Exercício para casa:Faça um programa que imprime os n primeiros naturais impares,
onde n é um número inteiro positivo qualquer (dado).
- 13/ago
- 18/ago
- 20/ago
- 25/ago
- 27/ago
- DATA FINAL para entrega do EP0
- O comando for -- exemplos
Refazendo com o comando for os exemplos feitos com o
comando while: potenciação (ex. 1.5 do Caderninho prog1.5.for.c) / fatorial
(ex. 1.9 do Caderninho fatorial_for.c)
- Vários exemplos usando o comando for: veja aqui.
- Malhas encaixadas
- 01/set
- Malhas encaixadas
- Problema 1:
Dado um inteiro n>1, listar todos os inteiros entre 1
e n que são primos. (OBS: aproveitar o programa feito
para verificar se um número é primo)
-- e encaixá-lo num comando for).
- Problema 4: (comentada em aula)
Dada uma sequência de n > 1 números inteiros, determinar
o mdc desses números. Como resolver: calcula-se o mdc dos dois
primeiros; depois, calcula-se o mdc do resultado anterior
com o próximo número; repete-se o processo com o próximo
número, e assim sucessivamente. Para quatro números
x,y,z,w teriamos: mdc(mdc(mdc(x,y),z),w)
- Mais malhas encaixadas
(decomposicao em fatores primos)
- 03/set
Semana da Pátria -- 7 a 12/setembro -- Não há aula
na USP
- 15/set
- 17/set (5a.feira) - Primeira Prova
OBS: 22/set -- Data máxima para trancamento de matrícula
- 22/set
- Variáveis ponto-flutuante (no. reais). Introdução:
tipos float e double (seus domínios,
no. bytes): Exemplos
- Mais exemplos sobre séries e uso de
funções da biblioteca (math.h)
Harmonico.c --
arctan.c
- 24/set
- Mais sobre series (para estudar): Cosseno
- Funções: passagem de parâmetro
por valor
- Uso de funções (dois layouts possíveis). Veja aqui - potências
- (Em aula) Ex.4.5 do Caderninho - Cálculo do mdc de
vários números (fazendo uso de uma função que calcula o mdc
de dois números).
- 29/set
- Funções: passagem de parâmetro
por valor (cont.) - PontoMaisProximo -
veja o uso de FLT_MAX.
- Calendario de um
dado ano <========== Olhem! Muito interessante!!!
- Exercício interessante: mudar o programa acima e fazer um
outro que imprime apenas o calendario de um par mês/ano.
Mudar a saída de modo que o calendario do mês fique maior (possivelmente
com linhas horizontais e verticais separando os dias) -- assim
poderia ser útil para marcar atividades/tarefas nessas datas (ex:
provas, eps).
- 1/out
- arrays. Vetores (variáveis indexadas simples).
Vários exemplos: impressão na ordem inversa, contagem do
aparecimento das faces de n jogadas de um dado, etc. Veja aqui varios exemplos
- 6/out
- arrays (cont.)
- Triangulo de Pascal (note
que é suficiente um vetor: cada linha é gerada a partir da
anterior, mas vindo "da direita para a esquerda").
- Crivo de Eratóstenes (para achar todos os números
primos entre 1 e n, para um dado n). crivo.c Compile e execute o
programa para valores bem grandes de n (veja como é rápida a execução).
-
Busca Binária. Compile e execute o programa para n bem
grande e veja como é rápida a execução.
- 8/out
- Funções cujos parâmetros são
vetores -- passagem de parâmetro por
referência. Na aula vimos soma de dois
vetores. Outros exemplos:
Busca Binária / Produto Escalar
- 13/out
- Ordenação ( Sorting )
- Dicas sobre o EP3.
- 20/out
- 22/out
- Ponteiros/apontadores (pointers).
- 27/out
OBS: 28/out -- Entrega do EP3
- 29/out
- 3/nov
- Sobre o EP4: seu programa deve
imprimir o calendário de um dado ano (maior ou
igual a 1900), exibindo cada trimestre por vez.
O que fazer:
- Veja o programa que consta na aula 15 (do dia 29/set):
imprima_calendario.c. Este programa pede um ano
(maior ou igual a 1900) e imprime o calendário
do ano fornecido.
- Compile e execute esse programa, e
verifique que cada mês é impresso
separadamente.
- O seu EP4 deve ser uma modificação desse
programa. O seu programa deve imprimir cada
trimestre por vez. Para isso, você deve usar
variáveis indexadas (vetores ou matrizes).
Você deve também fazer pelo menos uma
função nova com o seguinte protótipo:
void Imprima_trimestre (int num, int ano).
Nesta função, os parâmetros indicam qual
é o trimestre (num pode ser 1, 2, 3 ou 4)
e o ano. Ela deve imprimir o calendário do
trimestre do ano especificado.
O seu programa deve perguntar o ano (do
calendário desejado); depois, perguntar qual o
trimestre desejado (se 1, 2, 3, ou 4) ou se o
usuário quer todos os trimestres.
Tipo de saída desejada (em português, com letras
em tamanho normal, em preto e branco):
Exemplo
- Teste o seu programa fazendo saída na
tela. Depois, quando estiver certo, modifique-o
de modo que a saída seja impressa em um arquivo.
(Dessa forma, você poderá imprimir numa folha o
calendário desejado.)
- O seu programa deve imprimir num arquivo o
calendário do ano desejado (ou apenas o trimestre
do ano desejado). Para fazer uso de arquivos,
veja o programa ilustrativo dado na parte
inferior desta página.
- Não haverá um outro enunciado sobre o EP4. Dúvidas
serão esclarecidas nas aulas.
- Data de Entrega do EP4: 24 de
novembro de 2015
- Matrizes (variáveis com
indexação dupla). Mais exemplos: QuadradoLatino,
matriz de permutação (discussão sobre como resolver).
- 5/nov
- 10/nov
- Simulação (programa com matrizes)
- Funções recursivas (fatorial, fibonnaci, mdc) -- tópico extra.
- 12/nov
- Exercício com matriz e funções.
- Palavras Cruzadas -- exercício do caderninho -
ideia de inserir borda em uma matriz e quebra em
funcoes: veja aqui
- 17/nov
- Veja aula do dia 3/nov sobre o EP4.
- 19/nov (5a.feira) - Segunda Prova
<==================== Confirmado! IMPORTANTE!!!
AVISO: estudem a parte de
apontadores/ponteiros (pointers)!!! -- Vejam a aula 21 --
de 22/out
- 24/nov
- 26/nov (5a.feira) - Prova
Substitutiva (condicionada)
OBS: Material adicional (a ser usado no EP4): Entrada e Saída usando arquivos.
- Programa ilustrativo: Veja aqui
IMPORTANTE <======= Imprimir e trazer na
aula! (Compilar o programa e fazer testes para aprender a usar arquivos)
Arquivo de entrada para usar no teste (deve ficar no mesmo diretorio): dados1.txt
- EXERCÍCIO: usar o programa ilustrativo para fazer um
programa que imprime o Calendário de um ano dado (veja aula do dia
29/set).
Página principal de
MAC115(Bach Física diurno - 2o. Semestre de 2015).
Yoshiko Wakabayashi
<yw@ime.usp.br>
Last modified: Wed Nov 18 18:04:34 BRST 2015