Upload
lucas
View
238
Download
0
Embed Size (px)
DESCRIPTION
muito bom
Citation preview
Estruturas de Decises
Fabio Takeshi Matsunaga
Universidade Estadual de Londrina UEL
8 de julho de 2015
Reviso . . .
Variveis;
Funo printf e scanf;
Operadores;
Variveis
Um nome associado a um valor que pode ser acessado ou
alterado pelo programa;
Composto por nome, tipo e valor;
Deve ser formado por combinaes de letras, dgitos e
sublinhado;
No deve comear com nmeros, conter acentuaes, smbolos
especiais e no podem ser palavras-chaves da linguagem;
1 int a = 2; // a passa a valer 2
2 int b = 3; // b passa a valer 3
3 int c = a+b; // c passa a valer 5
4 a = a*c; // a passa a valer 10
Funo printf
Usado para escrever resultados do programa;
Usado para escrever uma cadeia (string) de caracteres passado
como argumento entre aspas duplas;
Essa cadeia de caracteres podem ser cadeias formatadoras,
para formatar valores a serem escritos na sada;
Estrutura: printf("cadeia formatadora", var1, var2, var3, . . . );
1 printf("Dois numeros: %.2f e %d\n", 1.5, 2);
2
3 int a = 1;
4 float b = 2;
5 printf("Valor de a = %d e b = %f\n", a, b);
Funo scanf
Usado para o programa interagir com o mundo externo,
fazendo a entrada de dados pelo teclado;
Utiliza strings de formatao para associar o formato do valor
lido varivel (deve ser sempre compatvel);
Estrutura: scanf("string de formatao", &var1);
1
2 int x;
3 float y;
4 char z;
5
6 scanf("%d" ,&x); // Le inteiro e armazena em x
7 scanf("%f" ,&y); // Le real e armazena em y
8 scanf("%c" ,&z); // Le caracter e armazena em z
Funo printf e scanf . . .
String de formato Tipo de dado a ser impresso
%d ou %i Inteiro (int)%f Real (oat)%lf Real de dupla preciso (double)%c Caractere (char)%s String
Operadores aritmticos
Unrios operam sobre um nico operando
Menos unrio (R = -x): utilizado para trocar o sinal algbricode um valor (positivo para negativo ou vice-e-versa) ou paramultiplicar um valor por -1;
Binrios operam sobre dois operandos
Soma (R = x+y): Soma dois valores;Subtrao (R = x-y): Subtrai dois valores (diferente domenos unrio, apesar de usarem o mesmo smbolo);Multiplicao (R = x*y): Produto de dois valores;Diviso (R = x/y): Diviso de dois valores;Mdulo (R = x%y): Resto da diviso de x com y;
Operadores relacionais
Relacionais efetua comparao entre variveis, retornando 1se a expresso for verdadeira ou 0 se for falsa
Maior que (R = x>y): Verica se x maior que y;Menor que (R = x=y): Verica se x maior ou igualque y;Menor ou igual a (R = x
Operadores lgicos
Lgicos utilizado em expresses que retornam valoresverdadeiro ou falso de acordo com a lgica booleana(considera-se que os dois operandos x e y sejam do tipo boolou provenientes de expresses relacionais ou lgicas)
AND (R = x&&y): resulta um valor VERDADEIRO (1) se osdois valores das variveis forem VERDADEIROS (1) e FALSO(0) caso contrrio;OR (R = x||y): resulta um valor VERDADEIRO (1) se pelomenos um dos valores forem VERDADEIROS (1) e FALSO (0)caso contrrio;NOT (R = !x): operador lgico unrio que inverte os valores,isto , se for VERDADEIRO (1) retorna FALSO (0), evice-e-versa;
Operadores lgicos
Precedncia Operadores
Maior precedncia (), [], ->
- unrio, ++, , !, & (endereo), * (ponteiro)
*, /, %
+, - (binrios)
, (operadores bit a bit)
, = (relacionais)
==, != (igualdade)
& (operador AND bit a bit)
(operador XOR bit a bit)
| (operador OR bit a bit)&& (AND lgico)
|| (OR lgico)?: (operador condicional ternrio)
= (atribuio)
Menor precedncia , (vrgula)
Operadores de incremento
1 #include
2
3 int main() {
4 int x = 0;
5
6 x = x+1; // Aumenta x em 1
7
8 x = x+3; // Aumenta x em 3
9
10 x = x-1; // Diminui x em 1
11
12 x = x*4; // Multiplica o x por 4
13
14 x = x/2; // Divide x pela metade
15
16 x = x%2; // Atribui o resto da divisao por 2
17 }
Operadores de incremento (simplicao)
1 #include
2
3 int main() {
4 int x = 0;
5
6 x+=1; // Aumenta x em 1
7
8 x+=3; // Aumenta x em 3
9
10 x-=1; // Diminui x em 1
11
12 x*=4; // Multiplica o x por 4
13
14 x/=2; // Divide x pela metade
15
16 x%=2; // Atribui o resto da divisao por 2
17 }
Comandos de deciso
Observao importante: sempre inicialize a varivel que forincrementar ou decrementar com algum valor (veja a linha4), pois se voc no inicializar a varivel no comeo, causarum erro interno no seu programa ou gerar resultadosindesejveis. Imagine a situao:
1 #include
2
3 int main() {
4 int x; // x n o foi inicializado
5
6 x = x+1; // Aumenta x em 1
7 printf("x = %d\n", x); // I m p r i m i r um valor
invalido (lixo)
8
9 getchar ();
10 }
Operadores de incremento
Incremento/Decremento operadores que incrementam oudecrementam valores de uma varivel
Incremento (x++ ou ++x): incrementa o valor de x em 1.
Equivale a x = x+1;
Decremento (x ou x): decrementa o valor de x em 1.Equivale a x = x-1;
Operadores de incremento pr-xado
1 #include
2
3 int main() {
4 int x,y;
5
6 x = 10;
7 y = ++x; // Incremento pre -fixado
8 printf("x = %d, y = %d\n",x,y);
9 }
O programa acima imprimir x = 11, y = 11
Operadores de incremento
1 #include
2
3 int main() {
4 int x,y;
5
6 x = 10;
7 y = x++; // Incremento pos -fixado
8 printf("x = %d, y = %d\n",x,y);
9 }
O programa acima imprimir x = 11, y = 10
Comandos if
Estrutura de um comando if:if (condio)
Instruo;
Ou:
if (condio) {
Instruo 1
Instruo 2
}
Exemplo 1
1 #include
2 #include
3
4 int main() {
5 int a;
6
7 scanf("%d" ,&a);
8
9 if (a
Exemplo 2
1 #include
2 #include
3
4 int main() {
5 int a, b;
6 scanf("%d" ,&a);
7 scanf("%d" ,&b);
8
9 if (a>b) {
10 printf("a eh maior do que b\n");
11 }
12 if (a
Comando if-else
Lembrando que o comando if s executa a(s) instruo(oes)caso a condio de teste seja verdadeira. Caso no seja, a
instruo no ser executada.
O comando else existe para executar um outro conjunto deinstrues caso a condio ou expresso do if for falsa.
Comandos if-else
Estrutura de um comando if-else:if (condio) {
Instrues;
} else {
Outro conjunto de Instrues;
}
Exemplo 2
1 #include
2 #include
3
4 int main() {
5 int a, b;
6 scanf("%d" ,&a);
7
8 if (a>0) {
9 printf("Voce digitou um numero positivo\n");
10 }
11 else {
12 printf("Voce digitou um numero negativo\n");
13 }
14
15 system("pause");
16 }
Exemplo 2
1 #include
2 #include
3
4 int main() {
5 int a, b;
6 scanf("%d" ,&a);
7 scanf("%d" ,&b);
8
9 if (a>b) {
10 printf("a eh maior do que b\n");
11 }
12 else {
13 printf("b eh maior do que a\n");
14 }
15
16 system("pause");
17 }
Comandos if-else aninhados
Estrutura de um comando if-else:if (condio 1) {
Instrues;
}
else if (condio 2) {
Outro conjunto de Instrues;
}
else if (condio 3) {
Outro conjunto de Instrues;
}
else if (condio 4) {
Outro conjunto de Instrues;
}
Comandos if-else aninhados
Estrutura de um comando if-else:if (condio 1) {
Instrues;
}
else if (condio 2) {
Outro conjunto de Instrues;
}
else if (condio 3) {
Outro conjunto de Instrues;
}
else if (condio 4) {
Outro conjunto de Instrues;
}
Exemplo 1
1 int main() {
2 int a, b;
3 scanf("%d" ,&a);
4
5 if (a>0) { // Se a>0, positivo
6 printf("Voce digitou um numero positivo\n");
7 }
8 else if (a
Exemplo 2
1 int main(){
2 int a, b, c;
3 scanf("%d %d %d", &a, &b, &c);
4
5 if (a>=b && a>=c)
6 printf("%d eh o maior\n", a);
7 else {
8 if(b>=a && b>=c)
9 printf("%d eh o maior\n", b);
10 else
11 printf("%d eh o maior\n", c);
12 }
13 }
Exerccios
Faa um programa que leia quatro notas de um aluno e calcule a
mdia de notas. Em seguida, verique se o aluno foi aprovado ou
reprovado, considerando a mdia 7.0.
Exerccios
Faa um programa que leia quatro notas de um aluno e calcule a
mdia de notas. Em seguida, verique se o aluno foi aprovado ou
reprovado, considerando a mdia 7.0. Entretanto, se a mdia for
menor do que 7.0 (a princpio reprovao), se a nota for maior do
que 5.0, o aluno car de EXAME. Considere o exame tambm na
lista de condies no seu programa.
Exerccios
Faa um programa que leia um valor e verque se ele par, mpar
ou zero. No esquea de imprimir o resultado na tela.