Buscar

2016 REVISAO P1 SEMORDENACAOSemmatrizesSemswitch

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 30 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 30 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 30 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

INF01040 ‐ Introdução à Programação
Revisão – Primeira Prova
Boas Práticas
•Ajuda visual por cores
•Indentação
•Dividir para conquistar
•Debugging e comentários
Boas Práticas – Ajuda visual por cores
Código com ajuda visual por cores Código sem ajuda visual por cores
Salvem seus programas logo ao iniciar a digitação!
Olha um problema ali!
3
Boas Práticas – Identação
Código bem indentado Código mal indentado
4
Boas Práticas – Dividir para conquistar
Problema da calculadora
Implementar uma calculadora de quarto operações
• Soma (+)
• Subtração (‐)
• Multiplicação (*)
• Divisão (/)
Solicitar uma operação e dois operandos
Realizar a operação correspondente e mostrar o resultado na tela
Sair do programa quando o usuário digitar ‘q’
5
Boas Práticas – Dividir para conquistar
Problema da calculadora
Passo 1: Ler operação e do‐while
//Limpa o que estiver no buffer do teclado antes de ler a operação
6
Boas Práticas – Dividir para conquistar
Problema da calculadora
Passo 2: Incluir um
switch/case 
7
Boas Práticas – Dividir para conquistar
Problema da calculadora
Passo 3: Controlar divisão
por zero com if
Comentários
8
Boas Práticas – Debugging
Teste de mesa “automatizado” 
para as variáveis “fat “e “n” Programa final para entrega
Resolvendo problemas
1. Usar debugging
2. Revisar o código
3. Ler os logs 9
Operadores
•Aritméticos
•Relacionais
•Atribuição
•Lógicos
Operadores
Aritméticos:
/ divisão
* multiplicação
+ adição
- subtração
% resto da divisão inteira
Relacionais:
< menor
> maior
== igual
<= menor ou igual
>= maior ou igual
!= diferente
Lógicos:
&& e
|| ou
! negação
Atribuição:
= atribuição
++ incremento
-- decremento
11
Tipos de Variáveis
•Inteiros (int)
•Ponto Flutuante (float)
•Caractere (char)
Tipos de Variáveis
Inteiros (1, 2, ‐30, 100)
• Declaração: 
• int i;
• Atribuição/Inicialização:
• i = 1;
• Leitura (Lembrar do &): 
• scanf("%d", &i);
• Escrita (Lembrar que não tem &):
• printf("Esse eh um inteiro %d \n", i);
• Operações relacionais (para if, while, do‐while, etc): 
• (i == 10), (i < 0), (i >= -10)
• Operações aritméticas
• i / 5; i + 1; f++;
Cuidado com as divisões 
de inteiros
13
Tipos de Variáveis
Ponto Flutuante (1.0, 6.7, ‐2.1, 159.99)
• Declaração: 
float f;
• Atribuição/Inicialização:
f = 1.0;
• Leitura (Lembrar do &): 
scanf("%f", &f);
• Escrita (Lembrar que não tem &):
printf("Esse eh um float %f \n", f);
• Operações relacionais (para if, while, do‐while, etc): 
(f == 10.0), (f < 0.0), (f >= -10.0)
• Operações aritméticas
f / 5.0; f + 1.0; f++;
14
Tipos de Variáveis
Caractere ('a', 'b', 'x') – Armazena apenas uma letra 
• Declaração: 
char c;
• Atribuição/Inicialização:
c = 'a';
• Leitura (Lembrar do &): 
scanf("%c", &c);
• Escrita (Lembrar que não tem &):
printf("Esse eh um char %c \n", c);
• Operações relacionais (para if, while, do‐while, etc): 
(c == 'a'), (c != 's')
• Operações aritméticas
Não se usa
pode ser necessário usar um 
fflush(stdin) antes de ler um char
sempre atribuir com aspas simples
15
Estruturas de Seleção
•if‐else
•If‐else‐if
Estruturas de Seleção
if‐else
• Seleção a partir de condição lógica
if (y != 0)
{
// Verdadeiro
printf("Resultado: %f\n", x / y);
}
else
{
// Falso
// O divisor deve ser != de zero
}
• Não necessariamente tem else
if (x == 123)
{
printf("Parabens!!!\n");
}
If‐else‐if
• Compara variável com valores
if (op == '+' )
{
// soma
}
else if (op == '-’)
{
// subtrai
}
else
{
// opção inválida
}
?
V
F
19
Estruturas de Repetição
•while
•do‐while
•for
Estruturas de Repetição
while
• Executar várias vezes um bloco de 
comandos de acordo com uma 
condição lógica
int i = 0;
while (i < 10)
{
// Faz alguma coisa
i++;
}
• Ou
char op = 'a';
while (op != 'q')
{
scanf("%c", &op);
}
do‐while
• Mesmo que o while só que verifica 
a condição no final da execução
int i = 0;
do
{
// Faz alguma coisa
i++;
}
while (i < 10);
• Ou
char op;
do
{
scanf("%c", &op);
}
while (op != 'q');
?
V ?
V
21
Estruturas de Repetição (mais uma)
for
• Forma geral
for (inicialização; condição; incremento)
{
// Comandos
}
• Especialmente útil para contadores
for (i = 0; i < 10; i++)
{
// Faz alguma coisa
}
?
V
i = 0;
while (i < 10)
{
// Faz alguma coisa
i++;
}
22
Arranjos Unidimensionais 
(Vetores)
•Operações básicas
•Operações avançadas
Arranjos Unidimensionais (Vetores)
Operações básicas
• Declaração (de qualquer tipo): 
int i[10]; float f[10]; char c[10];
• Inicialização/Atribuição:
int i[10] = {1, 5, 2, 1, 2, 3, 7, 8, 9, 1};
f[3] = 5.0; // Atribuição em uma posição qualquer
• Leitura na primeira posição (Lembrar do &): 
scanf("%d", &i[0]);
• Escrita da primeira posição (Lembrar que não tem &):
printf("Esse eh um float %f \n", f[0]);
24
Arranjos Unidimensionais (Vetores)
Operações avançadas
• Percorrer para imprimir: 
int v[10], i;
for (i = 0; i < 10; i++) {
printf("%d \t", v[i]);
}
• Percorrer para ler:
int v[10], i;
for (i = 0; i < 10; i++) {
scanf("%d", &v[i]);
}
• Percorrer para atribuir aleatórios entre 1 e 80:
int v[10], i;
for (i = 0; i < 10; i++) {
v[i] = 1 + rand() % 80;
}
25
Fluxogramas
Representação do algoritmo que gera elementos da 
série de Fibonacci
30
Pseudo‐código
•Calcular o fatorial de n
•Contador
•Acumulador
•Sinalizador
Pseudo‐código
1. //Calcular o fatorial de n
2. Principal()
3. Início
4. fat ← 1;
5. Ler n;
6. Enquanto(n > 1)
7. Faça
8. fat ← fat * n;
9. n ← n - 1;
10. Fim
11. Imprime fat;
12. Fim
32
Pseudo‐código (Contador)
1. Principal()
2. Início
3. aprovados← 0;
4. Para(i←0; i<20; i++)
5. Faça
6. Lê media;
7. Se(media >= 6)
8. Então
9. aprovados++;
10. Fim
11. Fim
12. Imprime aprovados;
13.Fim
Para uma turma de 
20 alunos contar 
quantos foram 
aprovados (média 
maior ou igual a 6)
Para uma turma de 
20 alunos contar 
quantos foram 
aprovados (média 
maior ou igual a 6)
33
Pseudo‐código (Acumulador)
1.Principal()
2.Início
3. valor← 0;
4. despesas← 0;
5. Faça
6. despesas ← despesas + valor; 
7. Lê valor;
8. Enquanto(valor >= 0);
9. Imprime despesas;
10.Fim
Somar as despesas 
de uma pessoa, até 
ela digitar uma 
despesa negativa 
para sair
Somar as despesas 
de uma pessoa, até 
ela digitar uma 
despesa negativa 
para sair
34
Pseudo‐código (Sinalizador)
1. Principal()
2. Início
3. Lê numero;
4. eh_primo← 0;
5. Para(i←2; i < numero; i++)
6. Faça
7. Se (numero % i = 0)
8. Então
9. eh_primo ← 1;
10. Fim
11. Fim
12. Se (eh_primo = 0)
13. Então
14. Imprime “O numero eh primo”;
15. Senão
16. Imprime “O numero não eh primo”;
17. Fim
18. Fim
Procurar os 
divisores de um 
valor. Se pelo 
menos um divisor 
for encontrado 
então o número 
NÃO é primo. 
Assumindo que o 
numero digitado é 
maior que zero.
Procurar os 
divisores de um 
valor. Se pelo 
menos um divisor 
for encontrado 
então o número 
NÃO é primo. 
Assumindo que o 
numero digitado é 
maior que zero.
35

Continue navegando