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
Página:4b.2
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
Página:4b.3
Algoritmos - Estrutura Condicional Simples
Estrutura simples SE condição ENTÃO comando SE condição ENTÃO INÍCIO comando1 comando2 comando3 FIM
Página:4b.4
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
Página:4b.5
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 OU V = V
Página:4b.6
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
Página:4b.7
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
Página:4b.8
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
Página:4b.9
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
Página:4b.10
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
Página:4b.11
Algoritmos - Exemplo
1) A nota de um estudante é calculada a partir de três notas com os seguintes pesos:
Faça um programa que calcule a média ponderada e o conceito conforme a seguinte tabela:
NOTA PESO
Trabalho 2 Prova semestral 3 Prova Final 5
MÉDIA PONDERADA CONCEITO
[8, 10] A
[7, 8[ B
[6, 7[ C
[5, 6[ D
Página:4b.12
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
Página:4b.13
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
Página:4b.14
Linguagem C - Estrutura Condicional Simples
Sintaxe: if (condição) comando; if (condição) { comando1; comando2; comando3; }
Página:4b.15
Linguagem C - Estrutura Condicional
Composta
Sintaxe: if (condição) comando; else comando; if (condição) { comando1; comando2; } else { comando3; comando4; }Página:4b.16
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:
Página:4b.17
Linguagem C - Estrutura Case
Sintaxe:
Switch (variável) {
case valor1: lista de comandos; break;
case valor2: lista de comandos; break;
...
default: lista de comandos; }
Página:4b.18
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”); }
Página:4b.19
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
Página:4b.20
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); }
Página:4b.21
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 || V = V
Página:4b.22
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
Página:4b.23
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();
Página:4b.24
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.
Página:4b.25
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.
Página:4b.26
Bibliografia
Disponível em
: http://www.facom.ufu.br/~ilmerio/ic/ic_s4b_programacao2.pdf
Material de apoio em: