Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
rangel@dsc.ufcg.edu.br * * rangel@dsc.ufcg.edu.br * Tópicos 3.1 Introdução 3.2 Algoritmos 3.3 Pseudocódigo 3.4 Estruturas de Controle 3.5 Estrutura de Seleção If 3.6 Estrutura de Seleção If/Else Estrutura de seleção múltipla switch Instrução break Usada para sair imediata e rapidamente de certas estruturas de controle 3.7 Estrutura de Repetição While 3.8 Formulação de Algoritmos: Estudo de Caso 1 (Repetição Controlada por Contador) Introdução à Programação * rangel@dsc.ufcg.edu.br * Tópicos 3.9 Formulação de Algoritmos com Refinamento Top-down por Passos: Estudo de Caso 2 (Repetição Controlada por Sentinela) 3.10 Formulação de Algoritmos com Refinamento Top-down: Estudo de Caso 3 (Estruturas de Controle Aninhadas) 3.11 Operadores de Atribuição 3.12 Operadores de Incremento e Decremento Introdução à Programação * rangel@dsc.ufcg.edu.br * 3.1 Introdução Precauções antes da escrita de um programa Visão sinótica do problema Planejamento cuidadoso de uma estratégia para solução do problema Precauções durante a escrita de um programa Conhecimento dos “blocos de construção” disponíveis Uso de princípios adequados de programação * rangel@dsc.ufcg.edu.br * Bohm & Jacopini Todos os programas escritos em termos de 3 estruturas de controle Estruturas Seqüenciais Por default, programas executados seqüencialmente (como ocorre em C) Estruturas de Seleção Há três tipos em C: if, if/else e switch Estruturas de Repetição Há três tipos em C: while, do/while e for 3.4 Estruturas de Controle * rangel@dsc.ufcg.edu.br 3.5 Tomada de Decisão: Operadores de Igualdade e Relacionais Comandos executáveis Realização de ações (cálculos, entrada/saída de dados) Tomada de decisões Decisão de impressão "passa" ou "falha" a partir de um teste de condição Estrutura de controle if Versão simples neste ponto, maior detalhamento posteriormente Se a condição for verdadeira, então o corpo do comando if será executado Igual a 0 é falso, diferente de zero é verdadeiro O controle sempre prossegue após o comando if * * rangel@dsc.ufcg.edu.br 3.5 Tomada de Decisão: Operadores de Igualdade e Relacionais * ≠ ≤ ≥ * rangel@dsc.ufcg.edu.br * A estrutura de seleção if é uma estrutura do tipo única entrada/ única saída Uma decisão pode ser tomada em qualquer expressão zero - falsa diferente de zero - Verdadeira 3.6 Estrutura de Seleção if * rangel@dsc.ufcg.edu.br 3.6 Estrutura de Seleção if Se média do aluno for maior ou igual a 7,0, o aluno foi aprovado por média #include <stdio.h> int main() { float n1, n2, n3, media; printf(“Entre com as 3 notas do aluno:\n"); scanf( "%f %f %f", &n1, &n2, &n3 ); media= (n1+n2+n3)/3; If (media > 7.0) Printf(“aluno aprovado por média\n”); { * * rangel@dsc.ufcg.edu.br * If/Else Código em C if (media > 7.0) printf(“aluno aprovado por média\n”); else printf("Você vai para a final ou foi reprovado por média\n"); 3.7 Estrutura de Seleção if-else * rangel@dsc.ufcg.edu.br 3.7 Estrutura de Seleção if-else If/Else Código em C if (media >= 7.0) printf(“Aprovado por média\n”); else if (media<7.0 && media >= 4.0) printf("Vai para a final\n”); else printf (“Reprovado por nota\n"); * * rangel@dsc.ufcg.edu.br 3.7 Estrutura de Seleção if-else If/Else Código em C if (media >= 7.0) printf(“Aprovado por média\n”); else if (media >= 4.0) printf("Vai para a final\n”); else printf (“Reprovado por nota\n"); * * rangel@dsc.ufcg.edu.br * If/Else Operador condicional ternário ? : Uso de três argumentos Condição, valor1 se verdadeira, valor2 se falsa return (a>b ? 0 : 1); hora = (h>=0 && h<24)? h : 0; 3.7 Estrutura de Seleção if-else * rangel@dsc.ufcg.edu.br * If/Else Operador condicional ternário ? : media_final >= 7 ? printf(“Você passou por média\n”) : printf(“Você vai para a final ou foi reprovado por média \n”); ou printf("%s\n", media_final >= 7 ? "Você passou por média" : "Você vai para a final ou foi reprovado por média"); 3.7 Estrutura de Seleção if-else * rangel@dsc.ufcg.edu.br * Pseudocódigo para uma estrutura If/Else aninhada Se nota for maior ou igual a 9,0 Imprima “Conceito A” Caso contrário Se nota for maior ou igual a 8,0 e menor do que 9,0 Imprima “Conceito B” Caso contrário Se nota for maior ou igual a 7,0 e menor do que 8,0 Imprima “Conceito C” Caso contrário Se nota for maior ou igual a 6,0 e menor do que 7,0 Imprima “Conceito D” Caso contrário Imprima “Conceito I” 3.6 Estrutura de Seleção if-else * rangel@dsc.ufcg.edu.br * Instrução Composta Série de instruções encerradas por um par de chaves ({ }) Exemplo if ( media_final >= 7 ) printf( “Você passou por média\n" ); else { printf( “Se sua soma de notas for maior do que 12,5, você vai para a final\n" ); printf(“Caso contrário, você foi reprovado\n"); } 3.7 Estrutura de Seleção if-else * rangel@dsc.ufcg.edu.br * Instrução Composta Análise do exemplo Sem as chaves, a declaração printf(“Caso contrário, você foi reprovado\n"); seria executada automaticamente Com as chaves, a referida declaração só será executada se o if for falso 3.6 Estrutura de Seleção if-else * rangel@dsc.ufcg.edu.br * Blocos Instruções compostas por declarações e comandos Erros de Sintaxe Percebidos e acusados pelo compilador Erros Lógicos Exercem influência no tempo de execução do programa Não fatais Execução do programa Saída incorreta Fatais Encerramento prematuro do programa 3.7 Estrutura de Seleção if-else * rangel@dsc.ufcg.edu.br Exercícios Faça um programa que receba o valor de uma distância, em quilômetros, a ser percorrida por um veículo, o seu consumo (km/l) e a quantidade de litros de combustível que ele possui. A seguir, emita uma mensagem informando se o veículo precisará ser reabastecido para percorrer a distância prevista. Caso necessite de ser reabastecido, informe a quantidade de combustível necessária * * rangel@dsc.ufcg.edu.br Exercícios Refaça o problema do IMC, mostrando na tela a situação do usuário de acordo com a tabela abaixo. OBS.: IMC = peso/altura2 * * rangel@dsc.ufcg.edu.br * * 3.7 Estrutura de Seleção Múltipla switch Switch A instrução switch é usada quando queremos testar várias possibilidades de fluxo de código mas não queremos usar vários else if Decisões múltiplas Esta instrução compara uma expressão (valor) com todas as constantes, caso seja verdadeira ela executa as sequências de comandos daquela constante. Caso todas as alternativas sejam falsas o comando default é executado Os cases não aceitam operadores lógicos. Portanto, não é possível fazer uma comparação Série de rótulos case e um rótulo opcional default switch (valor) { case '1': ações case '2': ações default: ações } * rangel@dsc.ufcg.edu.br * void menu (void){ int opcao; printf("1. Depositar\n"); printf("2. Retirar\n"); printf("3. Mostrar Saldo\n"); printf("0. Sair\n"); scanf("%d", &opcao"); switch(opcao) { case '1': depositar(); break; O switch executa seu bloco em cascata. Ou seja, se a variável indicar para o primeiro case e dentro do switch tiver 5 cases, o switch executará todos os outros 4 cases a não ser que utilizemos o comando para sair do switch break; Abandono da estrutura case '2': retirar(); break; case '3': saldo(); break; case 0: return 0; default: printf ("Opção inválida!\n"); } 3.7 Estrutura de Seleção Múltipla switch * rangel@dsc.ufcg.edu.br * Exercícios Criar um programa para ler o preço e a categoria de um produto. Calcular e mostrar o reajuste de acordo com a categoria: A=50%, B=25%, C=15 % e outras 5%. Considerando somente o alfabeto, construir um programa para ler uma letra e mostrar uma das seguintes mensagens: “Vogal maiúscula”, “Vogal minúscula” ou “Consoante”. rangel@dsc.ufcg.edu.br * José Eustáquio Rangel de Queiroz Joseluce de Farias Cunha Roberto Medeiros de Faria DEPARTAMENTO DE SISTEMAS E COMPUTAÇÃO UNIVERSIDADE FEDERAL DE CAMPINA GRANDE CENTRO DE ENGENHARIA ELÉTRICA E INFORMÁTICA * * * * * * * * * * * * * * * *
Compartilhar