Buscar

06_-_Estruturas_de_Controle_-_Condicionais

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

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

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ê viu 3, do total de 38 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

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

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ê viu 6, do total de 38 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

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

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ê viu 9, do total de 38 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

Prévia do material em texto

TÉCNICAS DE PROGRAMAÇÃO 1 
INTRODUÇÃO À LING C 
ESTRUTURA DE CONTROLE 1- 
CONDICIONAIS 
Geiza Maria Hamazaki da Silva 2013.1 
Tópicos 
 Para a codificação dos algoritmos é necessário o 
conhecimentos dos comandos na linguagem C 
relacionados com a : 
 Tomada de decisão - é fundamental ter meios para 
tomar decisões que se baseiem em condições avaliadas 
em tempo de execução - mecanismos para a 
construção de procedimentos iterativos; 
 Construções com laços - procedimentos que repetem a 
execução de uma sequência de comandos um 
determinado número de vezes; e 
 Seleção. 
Controle de fluxo 
 Na linguagem C, as construções fundamentais de 
controle de fluxo necessárias para programas 
bem estruturados são: 
 if-else (tomada de decisão) ; 
 while, for (laços com teste de encerramento no 
início) ou do-while(laços com teste de 
encerramento no fim); 
 switch (seleção de um dentre um conjunto de 
possíveis casos); e 
 Agrupamentos de comandos. 
 
 
• Exemplo 1: 
– Programa para dado um número identificar se este número é par 
ou impar: 
se o número for divisível por 2, isto é, se o resto da divisão do 
número por 2 for igual a 0, então o número é par. 
se o número não for divisível por 2, isto é, se o resto da divisão 
do número por 2 for diferente de 0, então o número é impar. 
Tomada de Decisão 
Tomada de Decisão 
 Comando “if” (se <condição> então <comando 1>) : 
 Comando básico para codificar tomada de decisão 
 
 
 se condição (cond) for verdadeira ( 0), executa o comando1 
e o comando2; 
 se condição (cond) for falsa (= 0), executa diretamente o 
comando2. 
 Uma das boas práticas de programação é garantir a 
Legibilidade. Para respeitar essa boa prática utilize a 
indentação no seu código! 
if ( cond) 
 comando1 
 comando2 
Tomada de Decisão 
/* Verifica se o número par*/ 
#include <stdio.h> 
 
int main (void) 
{ 
 int a; 
 printf(“Insira um número inteiro: "); 
 scanf("%d", &a); 
 if ((a%2)==0) 
 printf(" O número %d é par. \n“, a); 
 if ((a%2)!=0) 
 printf(" O número %d é impar. \n“, a); 
 return 0; 
} 
• Exemplo 1, na linguagem C: Programa para dado um número 
identificar se este número é par ou impar: 
Tomada de decisão 
 Exemplo 2: 
if (nota >= 90) 
 printf(“Parabens!”); 
printf(“Sua nota %d”, nota); 
 
 Ao ser executado o este trecho de código a 
mensagem de parabéns é impressa somente 
quando a nota for maior ou igual a 90 . 
 O segundo printf(), que imprime qual é a nota, 
sempre é executado. 
Tomada de decisão 
 Exemplo 3: 
if (y != 0.0) 
 x = x/y; 
 
 Ao ser executado o este trecho de código se y for 
diferente de 0, a divisão de x por y é realizada e é 
armazenada em x. Esse código serve para evitar a 
divisão de um número por 0. 
 
Tomada de decisão 
 Exemplo 4: 
if c == a 
 area = area * a; 
 
Este exemplo está correto? 
Tomada de decisão 
 Exemplo 4: 
if c == a 
 area = area * a; 
 
Este exemplo está correto? 
 Não! 
 Falta os parênteses na expressão! 
Tomada de decisão 
 Exemplo 4: 
if c == a 
 area = area * a; 
 
Este exemplo está correto? 
 Não! 
 Falta os parênteses na expressão! 
Código Correto: 
if (c == a) 
 area = area * a; 
 
Estruturas de bloco 
 Exemplo 4: 
if (c == a) 
 area = area * a; 
 
 Quando uma única instrução está associada ao 
comando if, no exemplo acima “area = area 
* a;”, as chaves não são necessárias. Mas se 
tivesse duas ou mais instruções, como delimitar os 
comandos associados ao if? 
Estruturas de bloco 
 Exemplo 4: 
if (c == a) 
 area = area * a; 
 
 Quando um único instrução está associada ao 
comando if, no exemplo acima “area = area 
* a;”, as chaves não são necessárias. 
 Mas se tivesse duas ou mais instruções, como 
delimitar os comandos associados ao if? 
 Neste caso tem-se um Bloco de Comandos. 
Estruturas de bloco 
 Blocos de comando são um grupo de comandos relacionados 
que são tratados como uma unidade. É uma série de 
declarações ou comandos entre chaves. 
 Comando “if” com bloco de comandos: 
 
 
 
 se condição (cond) for verdadeira ( 0), executa o bloco de 
comandos 1 e bloco de comandos 2. 
 se condição (cond) for falsa (= 0), executa diretamente o 
bloco de comandos 2. 
if ( cond) 
{ 
 bloco de comandos 1 
} 
 bloco de comandos 2 
Estruturas de bloco 
 Exemplo 5: 
 float area =5; 
 ... 
if (c == a) 
{ 
 area = area * a; 
 printf( “ %d\n”, area); 
} 
Estruturas de bloco 
 Geralmente, o bloco de comandos é executado, 
processando-se cada declaração e comando em 
ordem, um de cada vez 
 a execução termina quando a última declaração ou 
comando foi executado 
 é possível sair de um bloco de comandos antes do seu 
término usando os comandos break, return ou 
continue. Estes comandos serão apresentados nos 
próximos conjuntos de slides. 
Estruturas de bloco 
 Em ANSI C, as declarações de variáveis só podem 
ocorrer no início do corpo da função ou no início de 
um bloco, isto é, devem seguir uma chave aberta. 
 Uma variável declarada dentro de um bloco é válida 
apenas dentro do bloco. 
 Após o término do bloco, a variável deixa de existir. 
if ( n > 0 ) 
 { 
 int i; ... 
 ... 
} 
... /* a variável i não existe neste ponto do programa */ 
Tomada de Decisão 
 Comando “if”(se <condição> então <bloco 1> senão <bloco 2>) 
 comando básico para codificar tomada de decisão 
 
 
 
 
 
 
 se condição (cond) for verdadeira ( 0), executa o bloco de 
comandos 1; 
 se condição (cond) for falsa (= 0), executa o bloco de 
comandos 2. 
if ( cond) 
{ 
 bloco de comandos 1 
} 
else 
{ 
 bloco de comandos 2 
} 
Tomada de Decisão 
 Comando “if”: 
 Se dentro de um bloco tiver apenas um comando a ser 
executado, as chaves podem ser omitidas (na verdade, 
deixa de ser um bloco e passa a ser um comando) 
if ( cond) 
 comando 1 
else 
 comando 2 
Tomada de Decisão 
/* Programa que verifica se o número par*/ 
#include <stdio.h> 
 
int main (void) 
{ 
 int a; 
 printf(“Insira um número inteiro: "); 
 scanf("%d", &a); 
 if ((a%2)==0) 
 printf(" O número %d é par. \n“, a); 
 else 
 printf(" O número %d é impar. \n“, a); 
 return 0; 
} 
Tomada de Decisão 
 Exemplo1: 
 
 Programa para qualificar a temperatura: 
se a temperatura estiver entre 20oC e 30oC, então está 
agradável; 
Tomada de Decisão 
 se a temperatura estiver entre 20oC e 30oC, então está agradável 
/* Programa que verifica se temperatura está agradável */ 
#include <stdio.h> 
 
int main (void) 
{ 
 int temp; 
 printf ( "Digite a temperatura: " ); 
 scanf ( "%d", &temp ); 
 if ( temp < 30 ) 
 if ( temp > 20 ) 
 printf ( " Temperatura agradável \n" ); 
 else 
 printf ( " Temperatura quente \n" ); 
 return 0; 
} 
Tomada de Decisão 
 Considere o valor 5 para temp 
 
 
 
 
 Observando o código do programa, pode-se pensar que 
nenhuma mensagem seria fornecida, pois o primeiro if daria 
resultado verdadeiro e então seria avaliado o segundo if. 
 Neste caso, teria-se um resultado falso e como, 
aparentemente, não há um comando else associado, nada 
seria impresso. 
PURO ENGANO!! 
if ( temp < 30 ) 
 if ( temp > 20 ) 
 printf ( " Temperaturaagradável \n" ); 
else 
 printf ( " Temperatura quente \n" ); 
Tomada de Decisão 
 Considere o valor 5 para temp 
 
 
 
 
 a indentação utilizada pode nos levar a erros de 
interpretação resultado para o valor 5 seria a mensagem 
Temperatura quente 
 
 Na linguagem C, um else é associado ao último if que não 
tiver seu próprio else, logo o programa está INCORRETO! 
if ( temp < 30 ) 
 if ( temp > 20 ) 
 printf ( " Temperatura agradável \n" ); 
 else 
 printf ( " Temperatura quente \n" ); 
Tomada de decisão 
 
 Para os casos em que a associação entre if e else 
não está clara, recomenda-se a criação explícita 
de blocos mesmo contendo um único comando 
 
 Se reescrevermos o programa, podemos obter o 
efeito desejado 
Tomada de Decisão 
 se a temperatura estiver entre 20oC e 30oC, então está agradável 
/* Programa que verifica se temperatura está agradável (versao 2) */ 
#include <stdio.h> 
 
int main (void) 
{ 
 int temp; 
 printf ( "Digite a temperatura: " ); 
 scanf ( "%d", &temp ); 
 if ( temp < 30 ) { 
 if ( temp > 20 ) 
 printf ( " Temperatura agradável \n" ); 
 } 
 else 
 printf ( " Temperatura quente \n" ); 
 return 0; 
} 
Tomada de Decisão 
 Exemplo2: Aumentando um pouco a complexidade 
do Exemplo 1 
 
 Programa para qualificar a temperatura: 
se a temperatura for menor do que 20oC, então está frio; 
se a temperatura estiver entre 20oC e 30oC, então está 
agradável; 
se a temperatura for maior do que 30oC, então está quente. 
/* Programa para qualificar a temperatura */ 
#include <stdio.h> 
int main (void) 
{ 
 int temp; 
 printf("Digite a temperatura: "); 
 scanf("%d", &temp); 
 if (temp < 20) 
 printf(" Temperatura fria \n"); 
 else 
 if (temp < 30) 
 printf("Temperatura agradável \n"); 
 else 
 printf("Temperatura quente \n"); 
 return 0; 
} 
Tomada de Decisão 
 Inserindo na análise temperatura fria e muito fria. 
Tomada de decisão 
 Essa regra de associação do else propicia a 
construção do tipo else-if, sem que se tenha o 
comando else if explicitamente na gramática da 
linguagem. 
 
 Na Linguagem C, constrói-se estruturas else-if com 
if ’s aninhados 
 
 O exemplo a seguir é válido e funciona como 
esperado 
Tomada de decisão 
/* Programa para qualificar a temperatura ( versao 2)*/ 
#include <stdio.h> 
int main (void){ 
 int temp; 
 printf("Digite a temperatura: "); 
 scanf("%d", &temp); 
 if (temp < 20) 
 printf(" Temperatura fria \n"); 
 else if (temp < 30) 
 printf("Temperatura agradavel \n"); 
 else 
 printf("Temperatura quente \n"); 
 return 0; 
} 
Tomada de decisão 
 Exemplo:Verificação se os dois números digitados são pares: 
#include <stdio.h> 
int main (void) 
{ 
 int a, b; 
 printf(“Digito dois numeros inteiros:"); 
 scanf(“ %d %d",&a,&b); 
 if (a%2 == 0){ 
 if (b%2 == 0){ 
 printf(“Foram digitados dois numeros pares!\n"); 
 } 
 } 
 return 0; 
} 
Tomada de decisão 
 Outra construção para este mesmo exemplo simples 
pode ser 
int main (void){ 
int a, b; 
printf("Digite dois numeros inteiros:"); 
scanf(“ %d %d",&a,&b); 
if ((a%2 == 0) && (b%2 == 0)){ 
 printf(“Foram digitados dois numeros pares!\n"); 
} 
return 0; 
} 
O uso das chaves é opcional. 
 
• Exemplo: Retorna o máximo de dois números 
 
 
if ( a > b ) 
 maximo = a; 
else 
 maximo = b; 
Tomada de decisão 
Tomada de Decisão 
 Operador condicional: 
 formato geral: 
 se a condição for verdadeira, a expressão1 é avaliada; 
caso contrário, a expressão2 é avaliada. 
 
 exemplo: 
 comando 
 
 comando “if” equivalente 
 
 
maximo = a > b ? a : b ; 
condição ? expressão1 : expressão2; 
if ( a > b ) 
 maximo = a; 
else 
 maximo = b; 
Exercício 
1. Faça um programa em C que 
 leia dois números inteiros 
 se o primeiro número for maior ou igual ao segundo 
 verificar se o segundo divide exatamente o primeiro e 
imprimir mensagem “O segundo numero divide 
exatamente o primeiro numero.” ou “Os numeros não são 
divisiveis.” 
 verificar se eles são iguais e imprimir mensagem “Os 
numeros são iguais.” 
 senão 
 imprimir mensagem “O segundo número é maior!” 
 TESTE SEU PROGRAMA! 
 
Exercício 
 Teste 1: 
Digite dois numeros inteiros. 
Primeiro numero: 10 
Segundo numero: 2 
O segundo numero divide exatamente o primeiro numero. 
 Teste 2: 
Digite dois numeros inteiros. 
Primeiro numero: 2 
Segundo numero: 2 
Os numeros sao iguais. 
Exercício 
 Teste 3: 
Digite dois numeros inteiros. 
Primeiro numero: 1 
Segundo numero: 2 
O segundo numero eh maior! 
 Teste 4: 
Digite dois numeros inteiros. 
Primeiro numero: 3 
Segundo numero: 2 
Os numeros nao sao divisiveis. 
38 
Referências 
 W. Celes, R. Cerqueira e J.L. Rangel, Introdução a 
Estruturas de Dados - com técnicas de programação 
em C, Ed. Campus, 2004 
 A. Kelley, A Book on C, Benjamin Cummings, 1995 
 Notas de aulas do curso presencial de Técnicas de 
Programação1- UNIRIO - Desenvolvidos pelas 
professoras: Geiza Maria Hamazaki da Silva e Adriana 
C. F Alvim – primeiro semestre de 2011.

Outros materiais