Professora: Flávia Balbino da Costa LINGUAGEM DE PROGRAMAÇÃO I PARTE II CONTEÚDO PROGRAMÁTICO: Introdução à Programação Estrutura de um algoritmo Operadores e expressões Estruturas de Decisão Estruturas de Repetição Procedures e Functions ALGORITMOS DE ESTRUTURAS DE DECISÃO Uma característica peculiar do computador é a capacidade de tomar decisões. Num programa interativo freqüentemente temos que tomar decisões, escolher entre os percursos de ação disponíveis. As estruturas de decisão devem ser utilizadas de acordo com alguma situação verificada através de valores de variáveis, se quer que uma ação seja executada ou não. Sendo executada tal ação, isso se dará apenas uma vez. SE... ENTÃO... SENÃO A estrutura de decisão SE seleciona um entre dois comandos (simples ou compostos) para a execução. SE <condição> ENTÃO Comando 1 SENÃO Comando 2 SE <condição> ENTÃO Início Comando 1 Comando 2 Fim SENÃO Início Comando 3 Comando 4 Fim SE... ENTÃO... SENÃO Exemplo: Faça um programa que leia um número inteiro e mostre como resultado na tela se este número é par ou ímpar. SE... ENTÃO... SENÃO Solução: Algoritmo Teste Var Num, Resto, Quoc: Inteiro Inicio Leia (Num) Quoc ← Num / 2 Resto ← Num – (2 * Quoc) Se (Resto = 0) Então Escreva (“O número é par!”) Senão Escreva (“O número é ímpar!”) FimSe Fim ANINHAMENTO DA ESTRUTURA SE As estruturas de decisão SE podem estar aninhadas, ou seja, uma dentro da outra. O aninhamento de estruturas pode resultar em seqüências de decisão complexas e poderosas. Exemplo: Faça um programa que leia três números e mostre qual é o maior deles. SE... ENTÃO... SENÃO Programa Teste Var N1, N2, N3: Inteiro Inicio Leia (N1) Leia (N2) Leia (N3) Se (N1 > N2) e (N1 > N3) Então Escreva (‘O maior número é N1!) Senão Se (N2 > N1) e (N2 > N3) Então Escreva (‘O maior número é N2!) Senão Escreva (‘O maior número é N3!) FimSe FimSE Fim SE... ENTÃO... SENÃO Exemplo em C: Faça um programa em C que leia o nome e as duas notas de um aluno e informe a sua média e se este está aprovado, reprovado ou em prova final (considere as mesmas regras da instituição). SE... ENTÃO... SENÃO Solução: #include <stdio.h> void main() { char nome[80]; float nota1, nota2, media; printf(“Informe o nome do aluno: ”); gets(nome); printf(“Informe as duas notas do aluno: ”); scanf(“%f%f”, ¬a1, ¬a2); media = (nota1+nota2)/2; printf(“O aluno %s ficou com a média %.2f\n”, nome, media); SE... ENTÃO... SENÃO Solução (continuação): if (media>=7) printf(“O aluno está aprovado!\n”); else { if (media <5) printf(“O aluno está reprovado!\n”); else printf(“O aluno está em prova final!\n”); } } SE... ENTÃO... SENÃO Exercícios: Faça um algoritmo que leia um número. Caso o número seja menor que 5, multiplique-o por 2. Caso seja maior ou igual a 5 e menor que 10, multiplique-o por 3. Caso contrário, multiplique-o por 4. Mostre o número lido e o resultado final. SE... ENTÃO... SENÃO Solução: Algoritmo Condicao Var Num, result: Inteiro Inicio Leia (Num) Se (Num < 5) então Result ← Num * 2 Senão Se (Num >= 5) e (Num <10) então Result ← Num * 3 Senão Result ← Num * 4 FimSe Escreva (‘O número lido é: ‘, Num) Escreva (´O resultado é : ‘, Result) Fim SE... ENTÃO... SENÃO Exercícios: Elabore um algoritmo que efetue o cálculo do reajuste do salário de um funcionário. Considere que o funcionário deverá receber um reajuste de 15% caso seu salário seja menor que 500. Se o salário for maior ou igual a 500 e menor ou igual a 1000, seu reajuste será de 10%. Caso seja maior que 1000, o reajuste deverá ser de 5%. SE... ENTÃO... SENÃO Ler 3 valores para os lados de um triângulo (A, B, C). Verificar se os lados fornecidos formam realmente um triângulo, e se for esta condição verdadeira, deverá ser indicado qual tipo de triângulo foi formado: isósceles, escaleno ou equilátero. Dados: É triângulo quando: (A<B+C) e (B<A+C) e (C<A+B) É equilátero quando: (A=B) e (B=C); É isósceles quando: (A=B) ou (A=C) ou (B=C) É escaleno quando: não for equilátero nem isósceles. SE... ENTÃO... SENÃO Faça um algoritmo para ler a idade digitada pelo usuário e apresentar a categoria esportiva correspondente conforme a tabela abaixo: Faixa etária Categoria 10 a 12 anos Infantil 13 a 15 anos Mirim 16 a 18 anos Juvenil 19 a 35 anos Adulto Acima de 35 anos Sênior SE... ENTÃO... SENÃO O índice de massa corporal (IMC) avalia o nível de gordura de cada pessoa e é adotado pela Organização Mundial de Saúde (OMS). O IMC de uma pessoa é dado pela divisão do peso pela altura ao quadrado. Elabore um algoritmo que, a partir da massa e da altura fornecidos pelo usuário, calcule a apresente seu IMC e sua classificação conforme a tabela a seguir: Faixa etária Categoria < 18 Magreza 18,0 a 24,9 Saudável 25,0 a 29,9 Sobrepeso > = 30,0 Obesidade ESTRUTURA DE MÚLTIPLA ESCOLHA: CASO... SELECIONE A estrutura de decisão CASO/SELECIONE é utilizada para testar, na condição, uma única expressão, que produz um resultado, ou, então, o valor de uma variável, em que está armazenado um determinado conteúdo. Comparase, então, o resultado obtido no teste com os valores fornecidos em cada cláusula “Caso”. ESTRUTURA DE MÚLTIPLA ESCOLHA: CASO... SELECIONE Sintaxe: Escolha <variável> Caso <valor>: Comando Caso <valor>: Comando Senão Comando Fim_escolha EXERCÍCIO 1 Faça um programa que leia um caracter (pode ser numérico, alfabético, etc.). Depois retorne a mensagem na tela se este caracter lido está em letra maiúscula, minúscula ou número. Caso não seja letra ou número, informe a mensagem que é um caracter de controle ASCII. SOLUÇÃO Programa Caracter Var Caracter: String[1] Início Leia (Caracter) Escolha (Caracter) Caso ‘a’ .. ‘z’: Escreva (‘É uma letra minúscula!’) Caso ‘A’ .. ‘Z’: Escreva (‘É uma letra maiúscula!’) Caso ‘0’ .. ‘9’: Escreva (‘É um número!’) Senão Escreva (‘É um caracter de controle ASCII!’) FimEscolha Fim EXERCÍCIO 2 Faça um programa que leia o número referente a um determinado mês. Depois retorne o nome do mês. SOLUÇÃO Programa Meses Var mes: Inteiro Início Leia (mes) Escolha (mes) Caso 1: Escreva (‘Mês de Janeiro’) Caso 2: Escreva (‘Mês de Fevereiro’) Caso 3: Escreva (‘Mês de Março’) Caso 4: Escreva (‘Mês de Abril’) ... Senão Escreva (‘Este número corresponde a nenhum mês!’) FimEscolha Fim SOLUÇÃO NA LINGUAGEM C #include <stdio.h> Var int mes; void main() { printf(“Escreva o número do mês correspondente: ”); scanf(“%d”, &mes); switch(mes) { case 1: printf(“O número %d corresponde ao mês de Janeiro!”, mes); break; case 2: printf(“O número %d corresponde ao mês de Fevereiro!”, mes); break; case 3: printf(“O número %d corresponde ao mês de Março!”, mes); break; case 4: printf(“O número %d corresponde ao mês de Abril!”, mes); break; case 5: printf(“O número %d corresponde ao mês de Maio!”, mes); break; case 6: printf(“O número %d corresponde ao mês de Junho!”, mes); break; case 7: printf(“O número %d corresponde ao mês de Julho!”, mes); break; case 8: printf(“O número %d corresponde ao mês de Agosto!”, mes); break; case 9: printf(“O número %d corresponde ao mês de Setembro!”, mes); break; case 10: printf(“O número %d corresponde ao mês de Outubro!”, mes); break; case 11: printf(“O número %d corresponde ao mês de Novembro!”, mes); break; case 12: printf(“O número %d corresponde ao mês de Dezembro!”, mes); break; default: printf(“O número %d não corresponde a nenhum mês!”, mes); } }