GFM015 Introdução à Computação Algoritmos e Programação / Controle de Fluxo / Estutura Condicional Ilmério Reis da Silva ilmerio@facom.ufu.br www.facom.ufu.br/~ilmerio/ic UFU/FACOM
Programa 1. Noções básicas sobre os componentes de micro computadores 2.Uso de Aplicativos 3. Algoritmos 4. Fundamentos de programação 4.1 Tipos primitivos de dados e variáveis; 4.2 Expressões: aritméticas, relacionais e lógicas; 4.3 Comandos de atribuição, entrada e saída de dados; 4.4 Estruturas de controle de fluxo; 4.5 Ambiente de programação: editar e executar programas; 5. Estrutura de Dados 6. Modularização de programas
Algoritmos - Estrutura Condicional Simples Estrutura simples SE condição ENTÃO comando SE condição ENTÃO INÍCIO comando1 comando2 comando3 FIM
Algoritmos Operadores Relacionais e Lógicos Retornam: Verdadeiro ou Falso Relacionais: > maior que >= maior ou igual < menor <= menor ou igual == igual!= não igual Lógicos: E OU NÃO Exemplo: a > 20 E a < 30
Tabela Verdade TABELA E TABELA OU TABELA NÃO V E V = V V OU V = V NÃO V = F V E F = F V OU F = V NÃO F = V F E V = F F E F = F F OU V = V F OU F = F
Algoritmos - Estrutura Condicional Composta Estrutura composta SE condição ENTÃO comando SENÃO comando2 SE condição ENTÃO INÍCIO comando1 comando2 FIM SENÃO INÍCIO comando3 comando4 FIM
Algoritmos - Condições aninhadas Ninhos de condições: Comandos em condições podem ser outras condições SE <condição1> ENTÃO SE <condição2> ENTÃO bloco de comandos1 FIM-SE SENÃO SE <condição3> ENTÃO bloco de comandos2 SENÃO bloco de comandos3 FIM-SE FIM-SE
Algoritmos - Condições aninhadas Comentário sobre ninhos de condições: Quando as condições são aninhadas aumenta a chance de erros Uma alternativa para condições mutuamente exclusivas é mostrada a seguir
Algoritmos-Condições mutualmente exclusivas Comando CASO CASO <variável> <op1>: bloco de comandos <op2>: bloco de comandos <op3>: bloco de comandos... <opk>: bloco de comandos OUTRO: bloco de comandos FIM-CASO OBS: A cláusula OUTRO do comando é opcional.
Algoritmos-Condições mutualmente exclusivas Exemplo de Comando CASO CASO estado_civil S : ESCREVA( Solteiro ) C : ESCREVA( Casado ) D : ESCREVA( Divorciado ) V : ESCREVA( Viúvo ) OUTRO: escreva( Desconhecido ) FIM-CASO
Algoritmos - Exemplo 1) A nota de um estudante é calculada a partir de três notas com os seguintes pesos: NOTA Trabalho 2 Prova semestral 3 Prova Final 5 PESO Faça um programa que calcule a média ponderada e o conceito conforme a seguinte tabela: MÉDIA PONDERADA CONCEITO [8, 10] A [7, 8[ B [6, 7[ C [5, 6[ D [0, 5[ E
Algoritmos - Exemplo ALGORITMO DECLARE NUMÉRICO nota_trab, aval1_sem, exame, media ESCREVA Digite a nota do trabalho LEIA nota_trab ESCREVA Digite a nota da avaliação semestral LEIA aval1_sem ESCREVA Digite a nota do exame final LEIA exame media (nota_trab * 2 + aval1_sem * 3 + exame * 5) / 10 ESCREVA Media ponderada :, media SE media >=8 E media <= 10 ENTAO ESCREVA Conceito A SE media >=7 E media < 8 ENTAO ESCREVA Conceito B SE media >=6 E media < 7 ENTAO ESCREVA Conceito C SE media >=5 E media < 6 ENTAO ESCREVA Conceito D SE media >=0 E media < 5 ENTAO ESCREVA Conceito E FIM_ALGORITMO
Algoritmos - Exercícios 1) Faça um algoritmo para montar um menu na tela com 5 opções (1 - Cadastro, 2 - Edição, 3 - Consulta, 4 - Exclusão e 5 - Sair), leia a opção escolhida e chame a função correspondente. Obs: neste exercício, a chamada de uma função equivale a digitar o seu nome. 2) Elabore um algoritmo que dado um número inteiro qualquer, responda se ele é positivo, negativo ou nulo (igual a zero). 3) Modifique o algoritmo anterior, de modo que ele responda se o número é par ou ímpar
Linguagem C - Estrutura Condicional Simples Sintaxe: if (condição) comando; if (condição) { comando1; comando2; comando3; }
Linguagem C - Estrutura Condicional Composta Sintaxe: if (condição) comando; else comando; if (condição) { comando1; comando2; } else { comando3; comando4; }
Linguagem C - Estrutura Condicional Ternária Sintaxe: expressao1? expressao2 : expressao3 Se expressao1 é verdadeira, expressao2 é executada; Senão será executada a expressao3. Não deve ser incluído ponto-e-vírgula após expressao2 Exemplo: maior = n > m? n : m;
Linguagem C - Estrutura Case Sintaxe: Switch (variável) { case valor1: lista de comandos; break; case valor2: lista de comandos; break;... default: lista de comandos; }
Linguagem C - Exemplo Estrutura Case #include <stdio.h> void main () { int i; printf ( Digite um numero ); scanf( %d, &i); switch (i) { case 1: printf ( Um ); break; case 2: printf ( Dois ); break; default: printf ( Diferente de um e de dois ); }
Linguagem C Operadores Relacionais e Lógicos Retornam: 1 (se verdadeiro) ou 0 (se falso) Relacionais: > maior que >= maior ou igual < menor <= menor ou igual == igual!= não igual Lógicos: && E OU! NÃO
Linguagem C Operadores Relacionais e Lógicos Exemplo main() { int i,j; printf("digite dois números: "); scanf("%d%d",&i,&j); printf("%d == %d e' %d\n",i,j,i==j); printf("%d!= %d e' %d\n",i,j,i!=j); printf("%d <= %d e' %d\n",i,j,i<=j); printf("%d >= %d e' %d\n",i,j,i>=j); printf("%d < %d e' %d\n",i,j,i< j); printf("%d > %d e' %d\n",i,j,i> j); }
Tabela Verdade TABELA E (&&) TABELA OU ( ) TABELA NÃO (!) V && V = V V V = V!V = F V && F = F V F = V!F = V F && V = F F && F = F F V = V F F = F
Linguagem C - Exemplos Operadores Lógicos if (x == 3) printf ( Numero igual a três ); if (x > 5 && x < 10) printf ( Numero entre cinco e dez ); if ((x == 5 && y == 2) y == 3) print ( x é igual a 5 e y é igual a 2 ou y é igual a 3 ); OBS: em Linguagem C as condições devem estar entre parêntesis parêntesis internos indicam prioridade de execução
Linguagem C - Exemplos Implemente em Linguagem C o algoritmo que calcula o conceito do aluno à partir da média ponderada #include <stdio.h> main () { int trabalho, semestre, final; float media; printf ("Digite a nota do trabalho\n"); scanf("%d", &trabalho); printf ("Digite a nota da avaliação semestral\n"); scanf("%d", &semestre); printf ("Digite a nota do exame final\n"); scanf("%d", &final); media = (float) (trabalho * 2 + semestre * 3 + final * 5 ) / 10; printf ("Media ponderada : %f\n", media); if (media >=8 && media <= 10) printf ("Conceito A\n"); if (media >=7 && media < 8) printf ("Conceito B\n"); if (media >=6 && media < 7) printf ("Conceito C\n"); if (media >=5 && media < 6) printf ("Conceito D\n"); if (media >=0 && media < 5) printf ("Conceito E\n"); getch(); }
Exemplos Algoritmos e Linguagem C Veja os exemplos do Capítulo 4 no site do livro texto e transforme-os de C++ para C padrão, executando a nova versão no ambiente Dev C++. A url do sítio do livro-texto está disponível no Roteiro 02 das aulas instrumentais.
Execícios Propostos - Linguagem C 1) Codifique um programa que dado um número inteiro qualquer, responda se ele é positivo, negativo ou nulo e se o número é par ou ímpar. 2) Codifique um programa para verificar se um determinado número inteiro é divisível por 3 e 5, mas não simultaneamente pelos dois 3) Codifique um programa que leia três valores e calcule o maior entre eles usando apenas condicionais ternárias 4) Codifique um programa que leia um número, exiba uma msg se o número for menor que 1 ou maior que 12, ou o nome do mês correspondente caso seja entre 1 e 12.
Bibliografia Disponível em : http://www.facom.ufu.br/~ilmerio/ic/ic_s4b_programacao2.pdf Material de apoio em: http://www.facom.ufu.br/~ilmerio/ic
FIM