Buscar

Estruturas de Seleção em C

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 9 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 9 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 9 páginas

Prévia do material em texto

Programando em C Paula Faragó
6.5 	Operador Condicional
	
	O operador ternário (?:) é usado em expressões condicionais. Este operador necessita de três operandos. Seu uso poderá simplificar a instrução if expressão1; else expressão2;.
Sintaxe: 
	condição ? expressão_1 : expressão_2
	
Exemplo:
	...
	a=24;
	b=38;
	c= (a >b) ?a: b; /* o valor de c seria 38, pois b é maior do que a.
O operador condicional tem baixa precedência, precedendo apenas aos operadores de atribuição. 
7. Estruturas de seleção - if / switch
Nossos programas até agora seguiram um mesmo padrão: entrava-se com dados, estes eram processados e alguma informação era mostrada na tela.
Agindo desta forma, o computador mais parecia uma máquina de calcular. O aprendizado de novos conceitos como a da estrutura de seleção nos dará uma visão maior da complexidade de tarefas que ele poderá executar. 
7.1	Estrutura de decisão - if...else
	
A estrutura if...else é uma estrutura de controle do C muito fácil de ser usada Após o teste, o fluxo poderá seguir dois caminhos, isto é, se o teste resultar em uma verdade, será executado o comando ou bloco de comandos que se encontra após o fecha parênteses do teste, caso contrário, se existir, será executado o comando ou bloco de comandos que se encontra após o comando else. 
7.1.1 	Estrutura de decisão com um bloco
Sintaxe: 
	 if(condição)
 {
 bloco
 }
onde:	condição é uma expressão lógica ou relacional.
	bloco é um conjunto de instruções, separadas por ponto-e-vírgula. 
 { e } só serão obrigatórias se tiver mais de uma ação para ser executada.
Se a condição for verdadeira, o bloco é executado. Caso contrário, o bloco não é executado.
Exemplo: 
	#include <stdio.h>
void main(void)
{ int idade;
 printf("\nQuantos anos voce tem? " );
 scanf("%d",&idade);
 if(idade>=18)
 printf("\nMAIOR DE IDADE" );
}
	
7.1.2 	Estrutura de decisão com dois blocos
Sintaxe:
	 if(condição)
 {
 bloco
 }
 else
 {
 bloco
 }
onde:	condição é uma expressão lógica ou relacional.
bloco 1 e bloco 2 são conjuntos de instruções.
Se a condição for verdadeira o bloco 1 é executado. Caso contrário, o bloco 2 é executado.
Exemplo
	#include <stdio.h>
void main(void)
{ int num;
 printf("\nDigite numero inteiro: " );
 scanf("%d",&num);
 if(num%2==0)
 printf("\nPAR" );
 else
 printf("\nIMPAR");
}
	
	
7.1.3	Decisão de múltiplos blocos (if...else if...)
Muitas vezes, nossos programas poderão envolver várias condições excludentes. Programas que envolvem faixas salariais ou faixas de idades são exemplos clássicos do uso da instrução if ... else if ... .
Sintaxe: Decisão de múltiplos blocos:
	if(condição 1)
{
 bloco 1
}
...
else if(condição N)
{
 bloco N
}
else
{
 bloco P
 }
onde:	condição 1, condição 2, ... são expressões lógicas ou relacionais.
bloco 1 , bloco 2,... são conjuntos de instruções.
Se a condição 1 for verdadeira o bloco 1 é executado. Caso contrario, as condições serão avaliadas, sucessivamente até que seja verdadeira ou chegue ao último else, onde o bloco P seria executado. Observe que apenas um dos blocos é executado.
Exemplo
	#include <stdio.h>
void main(void)
{ int a;
 printf("\nDigite numero: " );
 scanf("%d",&a);
 if(a<200)
 printf("\nNUMERO MENOR QUE 200");
 else if(a >500)
 printf("\nNUMERO MAIOR DO QUE 500");
 else
	printf("\nNUMERO NO INTERVALO 200-500");
}
	
	
	
7.2 	Estrutura switch...case
A estrutura switch...case, também conhecida como alternativa de múltiplas escolhas, é uma estrutura que simplifica nossos programas no uso de decisão de múltiplos blocos quando a expressão de controle( a condição) envolver tipos int ou char(de um caracter que também é considerada inteira). O resultado desta expressão é comparado ao valor de cada um dos rótulos, e os comandos são executadas a partir desde rótulo. 
Sintaxe
	switch(expressão)
{
 case rótulo_1:
 bloco1;
 break;
 case rótulo_2:
 bloco2 
 break;
 ...
 case rótulo_n:
 bloco n
 break;
<default:
 bloco d>
 }
onde:
expressão é uma expressão inteira ou char de um caracter.
rótulo_1,rótulo_2,...rótulo_n e rótulo_d são constantes inteiras ou char de 
 um caracter.
	bloco 1, bloco 2, ..., bloco n e bloco d são conjuntos de instruções.
Execução:
A expressão é avaliada e o fluxo desviado para o conjunto cujo rótulo é igual ao resultado da expressão. O bloco abaixo do rótulo é executado. Se o valor da expressão não for igual a nenhum rótulo, o bloco do defualt é executado. Você não é obrigado a colocar o rótulo do default e por esta razão ele se encontra entre os sinais de menor e maior. 
Por que usar break?
Normalmente, em outras linguagens de programação, após a avaliação da expressão e a execução do bloco correspondente, o fluxo do programa passa para a pro'xima instrução, ignorando todos os outros rótulos. Na linguagem C isto não acontece e poderá trazer sérias conseqüências em seus programas. O uso do break forçará a saída do comando switch e a execução do próximo comando. 
Existirá alguma situação que não será necessário usar break?
Sim.
Exemplo 
	#include <stdio.h>
#include <math.h>
void main(void)
{ int op;
 float a;
 printf("\033[2J\033[30;47m");
 printf("\nDigite numero: " );
 scanf("%f",&a);
 printf("\nDigite Opcao: 1 dobro 2 metade 3 raiz cubica: " );
 scanf("%d",&op);
 switch(op)
 { case 1: printf("\nDOBRO: %f", a*2);
	 break;
 case 2: printf("\nMETADE: %f", a/2);
	 break;
 case 3: printf("\nRAIZ CUBICA: %f", pow(a,(1/3.0)));
	 break;
 default: printf("\nNAO PEDIU NADA");
 }
}
	
	
	
	
8. Estruturas de repetição 
Três são as estruturas de repetição disponíveis na linguagem C: for, while e do ... while. Em todas as estruturas estará presente pelo menos uma expressão para controlar a repetição.
8.1 Estrutura de repetição: for
A estrutura do for é a mais simples estrutura de repetição e é usada para repetir um ou vários comandos tantas vezes quanto desejarmos. É a estrutura mais indicada quando o número de repetições for conhecido embora, as outras duas estruturas também possam ser usadas. O controle do número de repetições, na maioria das vezes, é feito por uma variável chamada de variável contadora.
A estrutura do for na linguagem C é um pouco diferente das demais linguagens, pois a condição pode não se prender somente a uma variável contadora.
	Sintaxes
	for (inicialização;condição;incremento) declaração;
	for (inicialização ;condição ;incremento)
{
 bloco de comandos
}
onde:	inicialização é uma expressão de inicialização da variável contadora e só é 
 executada uma vez..
condição é uma expressão lógica de controle de repetição.
	incremento é uma expressão de incremento da variável contadora.
bloco de comandos é um conjunto de instruções a ser executado.
 
	Exemplos
	#include <stdio.h>
void main(void)
{ int cont;
 for(cont=1;cont<=10;cont++)
 printf("%d ",cont);
}
	
	#include <stdio.h>
void main(void)
{ int cont;
 for(cont=0;cont<50;cont+=2)
 printf("%d ",cont);
}
	
  
	#include <stdio.h>
#include <math.h>
void main(void)
{ int cont;
 float num;
 for(cont=1;cont<=5;cont++)
 { printf("\nDigite numero: ");
 scanf("%f",&num);
 printf("Raiz quadrada: %.4f",sqrt(num));
 }
}
	
8.2 Estrutura de repetição: while
A estrutura while é uma estrutura "poderosa" daprogramação. Muitos programadores fazem uso somente desta estrutura. Ela testa primeiro a condição e poderá nem executar o bloco caso a condição seja falsa. Logo, a estrutura do while repete enquanto a condição for verdadeira.
Ë importante que a variável presente na condição tenha seu valor alterado dentro da repetição, pois, caso contrário, entrará em loop.
Normalmente, todos os autores mostram simplesmente a sintaxe da estrutura, mas esquecem de informar como na prática ela deverá ser escrita.
Abaixo, apresentarei a sintaxe geral e a sintaxe usada na prática:
	Sintaxe 
	
	Sintaxe na prática
	while(condição)
{
 bloco de comandos
}
	
	atribuição ou leitura da variável presente na condição
while(condição)
{
 bloco de comandos
 atribuição ou leitura da variável presente na condição
}
onde:	condição é uma expressão lógica ou numérica.
bloco de comandos é um conjunto de instruções.
	Exemplo
	#include <stdio.h>
void main(void)
{ int num;
 printf("\nDigite numero positivo: ");
 scanf("%d",&num);
 while(num>0)
 { if(num%2==0)
 printf("\nPAR");
 else
 printf("\nIMPAR");
 printf("\nDigite numero positivo: ");
 scanf("%d",&num);
 }
}
	
 8.3	Estrutura de repetição: do...while
Esta estrutura é parecida com while. Sua diferença é que o bloco é executado pelo menos uma vez, pois testa ao final. Esta estrutura repete enquanto a condição for verdadeira.
Sintaxe
	do
{
 bloco de comandos
}
while(condição);
onde:	condição é uma expressão lógica ou numérica.
bloco de comandos é um conjunto de instruções.
Exemplo
	#include <stdio.h>
#include <ctype.h>
void main(void)
{ float n1,n2,n3;
 char op;
 do
 { printf("\nMENU\n\nS somar dois numeros\nQ quadrado de um numero");
 printf("\nM multiplicar tres numeros\nF finalizar\nOPCAO: ");
 scanf("%c",&op);
 op=toupper(op);
 switch(op)
 {
	case 'S':
		 printf("\nDois numeros separados por virgulas: ");
		 scanf("%f %f",&n1,&n2);
		 printf("\nSoma: %f",n1+n2);
 break;
	case 'Q':
 printf("\nDigite numero: ");
		 scanf("%f",&n1);
		 printf("\nQuadrado: %f",n1*n1);
 break;
	case 'M':
 printf("\nDigite tres numeros separados por espacos: ");
		 scanf("%f %f %f",&n1,&n2,&n3);
		 printf("\nProduto: %f",n1*n2*n3);
 break;
 case 'F': 
 printf("\nSAINDO");
 break;
	default:printf("\nOPCAO INEXISTENTE");
 }
 fflush(stdin);
 }
 while(op!='F');
}
	
      8.4 Comandos associados
As estruturas de repetição podem, mas não devem, sofrer desvios e interrupções em sua seqüência normal.
8.4.1 break
Assim como o foi usado para interromper o comando switch, poderá ser usado com qualquer um dos três comandos de repetição.
continue
O comando continue pode ser visto como sendo o oposto do break. Ele só funciona dentro de um loop. Quando o comando continue é encontrado, o loop pula para a próxima iteração, sem o abandono do loop, ao contrário do que acontece no comando break.
� PAGE �19�

Outros materiais