Aula de revisão
• ALGORITMO:
– Seqüência finita de passos que levam à execução de
uma tarefa
– Claro e preciso. Ex. “somar dois números”:
• Escrever o primeiro número no retângulo A
• Escrever o segundo número no retângulo B
• Somar o número do retângulo A com o número do
retângulo B e escrever o resultado no retângulo C
A
B
+
2
C
=
Variável
– Representa uma posição na memória, onde pode
ser armazenado um dado
– Possui um nome e um valor
– Durante a execução do algoritmo, pode ter seu
valor alterado (seu valor pode variar)
– Mudanças no valor das variáveis:
• Por entrada de dados (“Ler N1”)
• Por atribuição (“MEDIA  SOMA/4”)
3
Atribuição
• Atribui o valor da direita à variável da esquerda
• O valor pode ser uma constante, uma variável ou uma expressão
– MEDIA  (N1+N2+N3+N4) / 4
– (Lê-se media recebe N1+...)
• Neste caso, estamos atribuindo o resultado da fórmula à
variável média, ou seja, a variável média está recebendo
como valor o resultado da fórmula
• Outros Exemplos:
– a  3;
– a  x;
– c  ‘Luis’
4
Operadores
– Usados para incrementar, decrementar, comparar e
avaliar dados, que são operações básicas em
processamento de dados.
– Tipos:
• Aritméticos (+, -, *, /, ** )
– Resultados numéricos
• Relacionais (>, <, >=, <=, =, <> ou #)
– Resultados lógicos (V ou F)
• Lógicos (e, ou, não)
– Combinam resultados lógicos
5
Precedência dos operadores
• Operadores relacionais são muito usados
quando temos que tomar decisões nos
algoritmos. Com eles fazemos testes,
comparações, que resultam em valores lógicos
(verdadeiro ou falso):
Exemplo:
tendo duas variáveis, A = 5 e B = 3:
6
Operadores Aritméticos
Exemplos:
X=1 + 7 * 2 ** 2 - 1
Y=3 * (1 – 2) + 4 * 2
MEDIA = (N1+N2+N3+N4) / 4
7
• Operadores lógicos combinam resultados
lógicos, gerando novos valores lógicos
(verdadeiro ou falso). A “tabela-verdade” abaixo
mostra todos os valores possíveis de se obter
com oper. lógicos:
T = Verdad.
F = Falso
AND = E
OR = OU
NOT = NÃO
8
Exercícios
Sabe-se que o uso incorreto da precedência de
operadores ocasiona erros. Pensando nisso,
determine o resultado das expressões a seguir
(valores: A= 8, B = 5, C = -4, D = 2)
a)
b)
c)
d)
9
Delta = B*B – 4 * A * C
Media = (A + B + C + D) / 4
Media = A + B + C + D / 4
Resultado = A + B – 10 * C
Seleção de caminho (decisão)
SE ... ENTÃO ...
- Formato:
• Se <condição> então <ações>
• Significado: Se a <condição> resultar em verdadeiro, então
executar as <ações>. Senão, simplesmente ignorar as
<ações> e seguir para a próxima instrução no algoritmo.
• Usada para decidir se um conjunto de ações opcionais
deve ser executado ou não, dependendo do valor de
algum dado ou de algum resultado que já tenha sido
calculado no algoritmo.
11
SE ... ENTÃO ...SENÃO...
- Formato:
Se <condição>
•
•
•
•
12
então <ações 1>
senão <ações 2>
Significado: Se a <condição> resultar em verdadeiro, então
executar <ações 1>e ignorar <ações 2>. Se a <condição>
resultar em falso, então ignorar <ações 1> e executar
<ações 2>.
Usada para decidir entre duas alternativas de ações.
Um dos dois conjuntos de ações será executado e o outro
não, dependendo do valor de algum dado ou de algum
resultado que já tenha sido calculado no algoritmo.
O valor do dado ou do resultado anterior será testado na
condição, determinando qual conjunto de ações será
executado.
Faça um algoritmo que leia um número e mostre uma
mensagem indicando se este número é par ou ímpar, se é
positivo ou negativo, ou se é o zero
Ler N
Se N=0
Então mostrar “o número é zero”
Senao Se N%2 = 0
Então mostar “o número é par”
Senão mostrar “o número é ímpar”
Se N>0
Então mostrar “o número é positivo”
senão mostrar “o número é negativo”
Estruturas de repetição
Enquanto...Repetir
condição
Enquanto (condição) repetir
V
<instruções>
instrução
Repetir...Enquanto
instrução
Repetir <instruções>
enquanto (condição)
condição
Para...até...repetir
Para <variável> = <inicio> até <fim> repetir
<instruções>
14
V
F
F
Exemplo Para... até...repetir
• Ler 50 números fornecidos pelo usuário e calcular e exibir a média.
Pseudocódigo:
1. Real: soma, num, media
2. Inteiro: cont
3. Soma = 0
<<< o acumulador precisa ter um valor inicial
4. Para cont =1 até 50 repetir
4.1
ler num
4.2
soma = soma + num
5. Media = soma / cont
6. Mostrar media
15
Exercício
• Faça um algoritmo para mostrar os 30
primeiros números ímpares
16
Exemplo enquanto… repetir
Faça um algoritmo para mostrar os 30 primeiros números ímpares
1.
2.
2.1
2.2
2.3
I=0
Enquanto I<30 repetir
I=I+1
impar=I*2-1
mostrar impar
Outra forma:
1. I=1
2. impar=1
3. Enquanto I<=30 repetir
3.1
se impar mod 2 = 1
3.1.1
então mostrar impar
3.1.2
I=I+1
3.2
impar=impar+1
17
(é um número ímpar)
Exemplo repetir… enquanto
Faça um algoritmo para mostrar os 30 primeiros números ímpares
1.
2.
2.1
2.2
2.3
18
I=0
repetir
I=I+1
impar=I*2-1
mostrar impar
enquanto I<30
Usando o Dev-C++
#include <stdio.h>
#include <stdlib.h>
main()
{
printf ("Alo mundo!");
system("PAUSE");
}
19
Declarações
• Declaram as variáveis e seus tipos
• Os nomes das variáveis devem conter apenas letras,
dígitos e o símbolo _ e iniciar com letra ou _
• Os principais tipos são: int, float, double e char
• Exemplos
int n;
int quantidade_valores;
float x, y, somaValores;
char sexo;
C diferencia letras maiúsculas de minúsculas!
int n, N;
n é diferente de N!
20
Algoritmo
Na Linguagem C...
Real: n1, n2, n3, media
#include <stdio.h>
#include <stdlib.h>
main()
{
float n1, n2, n3, media;
system("PAUSE");
}
21
Comando de atribuição
• Atribui o valor da direita à variável da esquerda
• O valor pode ser:
– uma constante,
– uma variável ou
– uma expressão
• Exemplos
x = 4; --> lemos: x recebe 4
y = x + 2; --> lemos: y recebe x mais 2
y = y + 4; --> lemos: y recebe y mais 4
valor = 2.5;
sexo = 'F' --> constantes devem estar entre aspas
simples
22
Saída de Dados
#include <stdio.h>
#include <stdlib.h>
main()
{
int i, j;
float x;
i = 1; j = 2; x = 3.5;
printf("%d", i);
printf(" %d %f", j, x);
system("PAUSE");
}
23
Operadores de Atribuição
Operador Exemplo Comentário
=
x = y
Atribui o valor de y a x
+=
x += y
Equivale a x = x + y
-=
x -= y
Equivale a x = x – y
*=
x *= y
Equivale a x = x * y
/=
x /= y
Equivale a x = x / y
%=
x %= y
Equivale a x = x % y
24
Funções Matemáticas
Função
Exemplo
Comentário
ceil
ceil(x)
Arredonda o número real para cima; ceil(3.2) é 4
cos
cos(x)
Cosseno de x (x em radianos)
exp
exp(x)
e elevado à potencia x
fabs
fabs(x)
Valor absoluto de x
floor
floor(x)
Arredonda o número real para baixo; floor(3.2) é 3
log
log(x)
Logaritmo natural de x
log10
log10(x)
Logaritmo decimal de x
pow
pow(x, y)
Calcula x elevado à potência y
sin
sin(x)
Seno de x
sqrt
sqrt(x)
Raiz quadrada de x
tan
tan(x)
Tangente de x
#include <math.h>
25
Exemplo
2) Construa um programa que tendo como entrada dois pontos
quaisquer do plano P(x1,y1) e Q(x2,y2), imprima a distância entre
eles. A fórmula da distância é:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
main()
{
float x1, y1, x2, y2;
float distancia;
printf ("\nDigite o valor de x1: ");
scanf ("%f",&x1);
printf ("\nDigite o valor de y1: ");
scanf ("%f",&y1);
printf ("\nDigite o valor de x2: ");
scanf ("%f",&x2);
printf ("\nDigite o valor de y2: ");
scanf ("%f",&y2);
distancia=sqrt(pow((x2-x1),2)+pow((y2-y1),2));
printf ("\nA distancia entre os pontos P1 e P2 e’ %.2f\n", distancia);
system("PAUSE");
}
26
Operadores Relacionais em C
Operador
Exemplo
Significado
==
x == y
O conteúdo de x é igual ao de y?
!=
x != y
O conteúdo de x é diferente do de y?
<=
x <= y
O conteúdo de x é menor ou igual ao de y?
>=
x >= y
O conteúdo de x é maior ou igual ao de y?
<
x < y
O conteúdo de x é menor que o de y?
>
x > y
O conteúdo de x é maior que o de y?
As expressões relacionais em C retornam :
1 se verdadeiro
0 se falso.
27
Operadores Lógicos
• && (E lógico): retorna verdadeiro se ambos os operandos são
verdadeiros e falso nos demais casos.
Exemplo: if( a>2 && b<3).
• || (OU lógico): retorna verdadeiro se pelo menos um dos
operandos é verdadeiro, e falso se ambos são falsos.
Exemplo: if( a>1 || b<2).
• ! (NÃO lógico): usada com apenas um operando. Retorna
verdadeiro se o operando é falso e vice-versa.
Exemplo: if( !var ).
28
Operadores Lógicos
Tabela E
Tabela OU
Tabela NÃO
VeVV
V ou V  V
Não V  F
VeFF
V ou F  V
Não F  V
FeVF
F ou V  V
FeFF
F ou F  F
29
Estrutura condicional simples
• Comando if
if (condição)
comando;
Exemplo em pseudo-código:
SE a<menor ENTÃO menor=a;
if (a<menor)
menor=a;
if (condição) {
comando1;
comando2;
comando3;
…
}
30
if (a<menor) {
menor=a;
printf (“%d”, menor);
}
Estrutura condicional composta
• Comando if...else
if (condição)
comando1;
else
comando2;
Executa o comando1 se a condição for
qualquer coisa diferente de zero (verdadeira),
senão executa o comando2
Exemplo:
if (condição) {
comando1;
comando2;
}
else {
comando3;
comando4;
}
31
if (peso= =peso_ideal)
printf (“Voce esta’ em forma!”);
else
printf (“Melhor fazer dieta!”);
em pseudo-código:
se (peso= =peso_ideal)
entao exibir “Voce esta’ em forma!”
senao exibir “Melhor fazer dieta!”
Lembretes importantes no uso do comando if
A condição deve estar sempre entre parênteses.
É possível usar mais de um comando
no if, após a condição ou após o else, mas
então os comandos devem estar
entre chaves (constituindo-se em um bloco).
É possível aninhar ifs, e então cada else vai
corresponder ao if imediatamente anterior, se
não houver blocos delimitados por chaves alterando isso.
Comando switch
Uma variável é testada sucessivamente contra uma lista de constantes inteiras ou
caracteres. Depois de encontrar uma coincidência, o comando ou o bloco de comandos é
executado.
Sintaxe:
Switch(variável)
{
case constante1:
sequência de comandos
break;
case constante2:
sequência de comandos
break;
…..
default:
sequência de comandos
}
O comando default é opcional
Se nenhuma coincidencia for
encontrada, o comando default
será executado
Exemplo de comando switch
#include<stdio.h>
#include<stdlib.h>
main()
{
int numero;
printf("digite o mes");
scanf ("%d",&numero);
switch (numero){
case 1: printf ("Janeiro\n"); break;
case 2: printf ("Fevereiro\n"); break;
case 3: printf ("Marco\n"); break;
case 4: printf ("Abril\n"); break;
case 5: printf ("Maio\n"); break;
case 6: printf ("Junho\n"); break;
case 7: printf ("Julho\n"); break;
case 8: printf ("Agosto\n"); break;
case 9: printf ("Setembro\n"); break;
case 10: printf ("Outubro\n"); break;
case 11: printf ("Novembro\n"); break;
case 12: printf ("Dezembro\n"); break;
default: printf ("Mes invalido\n");
}
system ("pause");
34
}
Estruturas de repetição em C
35
Estrutura de repetição: comando for
• Comando for
for (var=valor inicial; condição; incremento/decremento)
comando;
Exemplo:
for (cont=3; cont<=11; cont++)
printf (“%d”,cont);
for (var=valor inicial; condição; incremento/decremento)
{
comando1;
comando2;
comando3;
}
36
Estrutura de repetição
• Comando while
while (condição)
comando;
while (condição) {
comando1;
comando2;
comando3;
}
37
Estrutura de repetição
Comando do...while
do {
comando;
} while (condição);
do {
comando1;
comando2;
comando3;
} while (condição);
38
Em pseudo-código:
CONTADOR = 0
Repetir
CONTADOR = CONTADOR + 1
exibir CONTADOR
enquanto CONTADOR < 10
Exemplo:
…
cont=0;
do {
cont = cont + 1;
printf("%d\n",cont);
} while (cont < 10);
Download

Slides