Objetivo: Desenvolver programas utilizando tanto diagrama de blocos, como linguagem C para tomada de decisão. Introdução Operadores Relacionais Lógicos Comando If Comando If...else Comando swich()...case...break Operador condicional ternário
Introdução As características básicas das linguagens de programação, o que diferencia o computador de uma calculadora comum são três: 1. Executar uma série de Instruções; 2. Decidir entre ações alternativas; 3. Repetir um sequência de instruções ate a satisfação de certa condição. Nesta aula iremos desenvolver programas que decide ações alternativas (Item 2)
Introdução A Linguagem C oferece 4 principais estruturas de decisão: if if...else Switch Operador condicional ternário
Operadores Relacionais São os operadores utilizados na tomada de decisão através de comparação. Comparação Operador pseudocódigo Operador Linguagem C Igual = == Diferente <>!= Menor < < Menor ou Igual <= <= Maior > > Maior ou Igual >= >=
Operadores Lógicos São apenas três e permitem a comparação entre as operações relacionais e obedecem a tabela verdade da lógica booleana. && Lógico E; Lógico OU;! Lógico NÃO
Operadores A sintaxe da operação é: (expressão operarel expressão) operalóg (expressão operarel expressão) Esta operação é realizada em tomada de decisão, produzindo desvios de tarefas em determinado programa. O retorno desta expressão será um valor booleano (0 ou 1), (true ou false) Esta expressão é geralmente usada em comando de tomada de decisão como será visto a seguir.
Comando If() A sintaxe é: If (a==b ) printf ( a=b ); Será impresso se a expressão acima for verdadeira. If (a==b && a>c) printf ( a=b e a>c ); If (a==b && a>c){ printf ( a=b\n ); printf ( a>c );} Três instruções já caracteriza um bloco
Comando If() Comando if aninhado: If (a<b ) if(a>c) printf ( a está entre b e c. ); printf ( a não está entre b e c. ); Que é semelhante a: If (a<b ) && (a>c) printf ( a está entre b e c. ); printf ( a não está entre b e c. );
Comando If()...else (significa se... senão) printf( digite um número inteiro ); scanf( %d,&inteiro); If(inteiro % 2 == 0) else printf ( O número %d é par,inteiro); printf ( O número %d é impar,inteiro); Da mesma forma que o if, o if...else também pode estar aninhado.
Comando switch()...case...break Nos caso em que se deseja desviar para diversos caminhos diferentes, esta função é a mais adequada. Vamos verificar, por exemplo a digitação de um número e o retorno for o dia da semana associado a este número: 1=domingo, 2=segunda,..., 7=sábado. Primeiramente será feito utilizando if():
Comando swich()...case...break printf( digite um número inteiro de 0 a 7 ); scanf( %d,&inteiro); If(inteiro== 1) printf ( Domingo ); If(inteiro== 2) printf ( Segunda ); If(inteiro== 3) printf ( Terça ); If(inteiro== 4) printf ( Quarta ); If(inteiro== 5) printf ( Quinta ); If(inteiro== 6) printf ( Sexta ); If(inteiro== 2) printf ( Sábado );
Comando swich()...case...break Mesmo procedimento com swich()... Case... break printf( digite um número inteiro de 1 a 7 ); scanf( %d,&inteiro); switch (inteiro){ case 1: printf ( Domingo ); break; case 2: printf ( Segunda ); break; case 3: printf ( Terça ); break; case 4: printf ( Quarta ); break; case 5: printf ( Quinta ); break; case 6: printf ( Sexta ); break; case 7: printf ( Sábado ); break;}
Operador condicional ternário É uma forma compacta de expressa o if()... Else A sintaxe é: Vejamos o exemplo: condição? Expressão_1 : expressão)_2; printf( digite um número inteiro ); scanf( %d,&inteiro); If(inteiro % 2 == 0) parimpar= p ; else parimpar= i ; printf ( O número %c,parimpar);
Operador condicional ternário Usando o condicional ternário: printf( digite um número inteiro ); scanf( %d,&inteiro); parimpar = inteiro % 2 == 0? p : i ; printf ( O número digitado e %c,ip);