gfm015 – introdução à computação algoritmos e programação...
TRANSCRIPT
GFM015 – Introdução à ComputaçãoAlgoritmos e Programação /
Controle de Fluxo /Estutura Condicional
Ilmério Reis da [email protected]/~ilmerio/icUFU/FACOM
Página:4b.2
Programa 1. Noções básicas sobre os componentes de micro computadores2.Uso de Aplicativos3. Algoritmos4. 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 Dados6. Modularização de programas
Página:4b.3
Algoritmos - Estrutura Condicional Simples Estrutura simples
SE condiçãoENTÃO comando
SE condiçãoENTÃO INÍCIO
comando1comando2comando3
FIM
Página:4b.4
Algoritmos – Operadores Relacionais e LógicosRetornam: 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
F E F = F F OU F = F
Página:4b.6
Algoritmos - Estrutura Condicional Composta Estrutura composta
SE condiçãoENTÃO comando
SENÃO comando2
SE condiçãoENTÃO INÍCIO
comando1comando2
FIMSENÃO INÍCIO
comando3comando4
FIM
Página:4b.7
Algoritmos - Condições aninhadasNinhos de condições: Comandos em condições podem ser outras condiçõesSE <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-SEFIM-SE
Página:4b.8
Algoritmos - Condições aninhadasComentá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 exclusivasComando CASO
CASO <variável> <op1>: bloco de comandos <op2>: bloco de comandos <op3>: bloco de comandos .......... <opk>: bloco de comandos
OUTRO: bloco de comandosFIM-CASO
OBS: A cláusula OUTRO do comando é opcional.
Página:4b.10
Algoritmos-Condições mutualmente exclusivasExemplo 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 PESOTrabalho 2Prova semestral 3Prova Final 5
MÉDIA PONDERADA CONCEITO[8, 10] A[7, 8[ B[6, 7[ C[5, 6[ D[0, 5[ E
Página:4b.12
Algoritmos - Exemplo
ALGORITMODECLARE NUMÉRICO nota_trab, aval1_sem, exame, mediaESCREVA “Digite a nota do trabalho”LEIA nota_trabESCREVA “Digite a nota da avaliação semestral”LEIA aval1_semESCREVA “Digite a nota do exame final”LEIA examemedia (nota_trab * 2 + aval1_sem * 3 + exame * 5) / 10←ESCREVA “Media ponderada : “, mediaSE 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ícios1) 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 SimplesSintaxe:
if (condição)comando;
if (condição){
comando1;comando2;comando3;
}
Página:4b.15
Linguagem C - Estrutura Condicional CompostaSintaxe:
if (condição)comando;
elsecomando;
if (condição) {comando1;comando2;
} else {comando3;comando4;
}
Página:4b.16
Linguagem C - Estrutura Condicional TernáriaSintaxe:
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;
Página:4b.17
Linguagem C - Estrutura CaseSintaxe:
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ógicosRetornam: 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 Exemplomain(){
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
F && F = F F || F = F
Página:4b.22
Linguagem C - Exemplos Operadores Lógicosif (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 - ExemplosImplemente 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 C1) 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:http://www.facom.ufu.br/~ilmerio/ic
FIM