Curso Técnico em Informática para Internet Aula 4 – ESTRUTURA DE CONTROLE Instituto Federal de Santa Catarina Informática para Internet Introdução: • Os algoritmos são criados para solucionar problemas propostos utilizando conceitos de bloco lógico, entrada e saída de dados, constantes, variáveis, expressões lógicas, atribuições e comandos. • Dentro do algoritmo, existe a necessidade de tomadas de decisões que vão interferir diretamente no andamento do programa. As estruturas básicas de controle do fluxo de execução são as seguintes: seqüencial, condicional/ de seleção e repetição. 2 Informática para Internet Estrutura de Controle Sequencial • Refere-se ao conjunto de comandos que são executados numa seqüência linear, de cima para baixo, ou seja, na mesma ordem em que aparecem. • Cada comando é executado somente após o término do comando anterior. • 3 Informática para Internet Estrutura de Controle Sequencial • Uma estrutura de Controle Seqüencial é delimitada pelas palavras reservadas • Inicio e Fim e é constituída de comandos de atribuição, comandos de entrada e comandos de saída. Sintaxe Geral: inicio Comando 1; Comando 2; Comando 3; .... Comando n fim 4 Informática para Internet Estrutura de Controle Condicional ou de Seleção Esta estrutura permite a escolha de um grupo de ações (blocos) a serem executadas de acordo com a aceitação ou não, de certas condições representadas por expressões lógicas ou relacionais. 5 Informática para Internet Estrutura de Controle Condicional ou de Seleção São testados os parâmetros e dependendo dos seus valores, toma-se um caminho ou outro. As condições que são testadas num algoritmo são do tipo lógica booleana (Verdadeiro ou Falso). Portanto, a seleção de ações pode ter, no máximo, duas alternativas: uma se a condição for verdadeira e outra se a condição testada for falsa. 6 Informática para Internet Estrutura de Controle Condicional ou de Seleção Tipos de Seleção: • seleção simples, • seleção composta, • seleção encadeada/aninhada, • seleção de múltipla escolha. 7 Informática para Internet Estrutura de Controle Condicional ou de Seleção • Seleções Simples (Se... Então) Sintaxe Geral: se <condição> então // início do bloco verdade comando 1; comando 2; ... comando n; // fim do bloco verdade • Quando a <condição> for verdadeira o “bloco verdade” é executado • Quando a <condição> for falsa o “bloco verdade” não é executado 8 Informática para Internet Exemplo: início // declaração de variáveis real: N1, N2, N3, N4, // notas bimestrais MA; // média anual // entrada de dados leia (N1, N2, N3, N4); // processamento MA = (N1 + N2 + N3 + N4) / 4; // saída de dados escreva (MA); se (MA >= 7) então escreva (“Aluno Aprovado !”); fimse; fim. • Construir um algoritmo que obtenha 4 notas, calcule sua média e apresente a mensagem “Aprovado” caso a média seja igual ou maior que 7. 9 Informática para Internet Estrutura de Controle Condicional ou de Seleção • Seleção Composta (Se...então...senão) • Nesta estrutura uma única condição (expressão lógica) é avaliada e dependendo do resultado, um comando ou um conjunto de comandos serão executados se a avaliação for verdadeira ou não serão executados se a avaliação for falsa. 10 Informática para Internet Estrutura de Controle Condicional ou de Seleção • Seleção Composta (Se...então...senão) Sintaxe Geral: se <condição> então // início do bloco verdade comando 1; • Quando a <condição> for verdadeira comando n; o “bloco verdade” é executado // fim do bloco • Quando a <condição> for falsa o verdade “bloco falsidade” é Executado senão // início do bloco falsidade comando 1; comando n; 11 // fim do bloco Informática para Internet Exemplo: Construir um algoritmo que obtenha 4 notas, calcule er mostre sua média e, se a média>=7, emitir a mensagem “Aluno Aprovado”, caso contrário escreva a mensagem “Aluno Reprovado”! 12 início // declaração de variáveis real: N1, N2, N3, N4, // notas bimestrais MA; // média anual leia (N1, N2, N3, N4); MA = (N1 + N2 + N3 + N4) / 4; escreva (MA); se (MA >= 7) então escreva (“Aluno Aprovado !”); escreva (“Parabéns !”); senão escreva (“Aluno Reprovado !”); escreva (“Estude mais !”); fimse; fim. Informática para Internet Estrutura de Controle Condicional ou de Seleção • Seleção Encadeada ou Aninhada • Esta estrutura apresenta um grande conjunto de possibilidades ou combinações formando uma seleção encadeada ou aninhada. Ocorre quando uma seleção tem como ação, uma outra seleção. 13 Informática para Internet Exemplo: Construa um algoritmo que leia os três lados de um triângulo e determin e se o triângulo é equiláter o (3 lados início inteiro: A, B, C; // tamanho dos lados leia (A, B, C); se (A<B+C) e (B<A+C) e (C<A+B) então se (A=B) e (B=C) então escreva (“Triangulo Equilátero”); senão se (A=B) ou (B=C) ou (A=C) então escreva (“Triângulo Isósceles”); senão escreva (“Triangulo Escaleno”); fimse; fimse; senão escreva (“Estes valores não formam um triângulo”); fimse; fim. 14 Informática para Internet Estrutura de Controle Condicional ou de Seleção Seleção de Múltipla Escolha • Esta estrutura é uma generalização da construção SE, onde somente uma condição é avaliada e dois caminhos podem ser seguidos. Nesta estrutura de Seleção de Múltipla Escolha pode haver uma ou mais condições a serem testadas e um comando diferente associado a cada uma dessas. 15 Informática para Internet Estrutura de Controle Condicional ou de Seleção • Seleção Composta (Se...então...senão) Sintaxe Geral: escolha X caso V1: C1; caso V2: C2; caso V3: C3; caso V4: C4; fimescolha; 16 Informática para Internet Exemplo: Construa um algoritmo que leia o preço e a origem de um produto e na seqüência, mostre o preço juntamente com a especificação da região conforme a origem. A origem está definida como segue. 1 - Produto do Sul 2 - Produto do Norte 3 - Produto do Leste 4 - Produto do Oeste 7 ou 8 ou 9 - Produto do Sudeste de 10 à 20 - Produto do Centro-oeste 5 ou 6 ou de 25 à 50 - Produto do Nordeste Caso a origem não esteja contemplada nas citadas acima, o produto é importado. 17 Informática para Internet Exemplo: início real: Preço; inteiro: Origem; leia (Preço, Origem); escolha Origem caso 1: escreva (Preço, “ – produto do Sul”); caso 2: escreva (Preço, “ – produto do Norte”); caso 3: escreva (Preço, “ – produto do Leste”); caso 4: escreva (Preço, “ – produto do Oeste”); caso 7, 8, 9: escreva (Preço, “ – produto do Sudeste”); caso 10..20: escreva (Preço, “ – produto do CentroOeste”); caso 5, 6, 25..50: escreva (Preço, “ – produto do Nordeste”); caso contrário: escreva (Preço, “ – produto importado”); fimescolha; fim. 18 Informática para Internet Estrutura de Controle de Repetição • A estrutura de Controle de Repetição é utilizada quando desejamos que um mesmo conjunto de instruções ou comandos sejam executados mais de uma vez. • As estruturas de repetição são também chamadas de Laços ou Loops. • Quanto ao critério de parada, os laços podem utilizar: • Repetição com Teste no Início, • Repetição com Teste no Final ou • Repetição com Variável de Controle. 19 Informática para Internet Estrutura de Controle de Repetição 20 Informática para Internet Repetição com Teste no Início (enquanto...faça) • Verifica antes de cada execução, se é “permitido” executar o trecho do algoritmo. • Trata-se de um laço que se mantém repetindo enquanto uma dada condição permanecer verdadeira. Sintaxe Geral: enquanto <condição> faça comando 1; comando 2; ... comando n; fimenquanto; 21 Informática para Internet Repetição com Teste no Início (enquanto...faça) • A elaboração de algoritmos com estas estruturas torna-se necessário o uso de dois tipos de variáveis: as variáveis contadoras e as acumuladoras. • Uma variável contadora é uma variável que recebe um valor inicial antes do início de uma estrutura de repetição e é incrementada no interior da estrutura de um valor constante, geralmente 1 (um), conforme o exemplo a seguir: início inteiro: CON; CON = 0; //Contadora => inicialização com valor 0 (zero) enquanto CON < 3 faça CON = CON + 1; //Contadora é incrementada da //constante 1 (um) fimenquanto; fim. 22 Incremento Significa aumentar o que já existe em uma variável. Normalmente o incremento é de 1. Ex: x=x+1 Informática para Internet Exemplo: Calcular a média aritmética para 50 alunos sendo que são fornecidos suas 4 notas. Espera-se, para cada aluno, o cálculo e resultado da sua média e a mensagem “Aluno aprovado, Parabéns!” Quando a média for >=7 ou “Aluno reprovado, estude mais!” quando contrário. Utilize o enquanto faça. 23 Informática para Internet Exemplo: início // declaração de variáveis real: N1, N2, N3, N4, // notas bimestrais MA; // média anual inteiro: CON; // contador CON = 0; // inicialização do contador enquanto (CON < 50) faça // teste da condição de parada leia (N1, N2, N3, N4); MA = (N1 + N2 + N3 + N4) / 4; escreva (MA); se (MA >= 7) então escreva (“Aluno Aprovado. Parabéns !”); senão escreva (“Aluno Reprovado. Estude mais !”); fimse; COM = CON + 1; // incremento do contador fimenquanto; fim. 24 Informática para Internet Repetição com Teste no Início (enquanto...faça) Uma variável acumuladora é uma variável que recebe um valor inicial, geralmente 0 (zero) antes do início de uma estrutura de repetição, e é incrementada no interior da estrutura de um valor variável, geralmente a variável usada na estrutura de controle, conforme o exemplo abaixo: início inteiro: CON, X, ACM; CON = 0; ACM = 0; //ACM é o acumulador enquanto CON < 3 faça CON = CON + 1; leia (X); ACM = ACM + X; fimenquanto; fim. 25 Informática para Internet Exemplo: Obter a média aritmética para 50 alunos, sendo que é lido a média da cada aluno. Utilize a estrutura de repetição enquanto - faça. 26 Informática para Internet Repetição com Teste no Final (Repita...até) • Esta estrutura verifica depois de cada execução, se é “permitido” continuar executando o trecho do algoritmo. • Trata-se de um laço que se mantém repetindo até que uma dada condição se torne verdadeira. Sintaxe Geral: 27 repita comando 1; comando 2; ... comando n; até Informática para Internet Exemplo: • Obter a média aritmética para 50 alunos, sendo que é lido a média da cada aluno. Utilize a estrutura de repetição com teste no final (repita...até) início // declaração de variáveis real: MA, // média anual de dado aluno ACM, // Acumulador MAT; // Média Anual da Turma inteiro: CON; // contador CON = 0; // inicialização do contador ACM = 0; // inicialização do acumulador repita leia (MA); ACM = ACM + MA; // soma em ACM os valores lidos em MA CON = CON + 1; // incremento do contador até (CON >= 50); // teste da condição de parada MAT = ACM / 50; // calculo da média anual da turma escreva (“média anual da turma = “, MAT); 28 fim. Informática para Internet • Repetição com Variável de Controle (para...faça) Decremento É o inverso do Incremento, ou seja, reduz-se o valor existente. Ex: x=x-1 É o Laço simplificado para utilização em repetições de quantidade predeterminada. Incorpora internamente o funcionamento de um contador de repetições (incremento/decremento) Sintaxe Geral: para V de vi até vf passo p faça comando 1; comando 2; ... comando n; fimpara; 29 Informática para Internet Exemplo: Obter a média aritmética para 50 alunos, sendo que é lido a média da cada aluno. Utilize a estrutura de repetição para-faça. início // declaração de variáveis real: MA, // média anual de dado aluno ACM, // Acumulador MAT; // Média Anual da Turma inteiro: V; // contador ACM = 0; // inicialização do acumulador para V de 1 até 50 passo 1 faça leia (MA); ACM = ACM + MA; // soma em ACM os valores lidos em MA fimpara; MAT = ACM / 50; // calculo da média anual da turma escreva (“média anual da turma = “, MAT); fim 30 Informática para Internet Síntese • Estrutura de Controle Sequencial, refere-se ao conjunto de comandos que são executados numa seqüência linear, de cima para baixo, ou seja, na mesma ordem em que aparecem. Cada comando é executado somente após o término do comando anterior. • Esta estrutura permite a escolha de um grupo de ações (blocos) a serem executadas de acordo com a aceitação ou não, de certas condições representadas por expressões lógicas ou relacionais. • A estrutura de Controle de Repetição é utilizada quando desejamos que um mesmo conjunto de instruções ou comandos sejam executados mais de uma vez. As estruturas de repetição são também chamadas de Laços ou Loops. 31 Informática para Internet Atividades de Aprendizagem 1) Elabore um algoritmo que gere e escreva os números ímpares inteiros entre 100 e 200. 2) Elabore um algoritmo que dada a idade de um nadador classifique-o em uma das seguintes categorias: Infantil A = 5 a 7 anos Infantil B = 8 a 11 anos Juvenil A = 12 a 13 anos Juvenil A = 14 a 17 32 anos Informática para Internet Atividades de Aprendizagem 3) Faça um algoritmo que gere os valores de 1 a 100 e a cada múltiplo de 10 emita uma mensagem: “Múltiplo de 10”. 4) Faça um algoritmo que determine o maior entre N números. A condição de parada é a entrada de um valor 0, ou seja, o algoritmo deve ficar o maior até que a entrada seja igual a 0 (ZERO). 5) Construa um algortimo que leia 500 valores inteiros e positivos e: a) Encontre o maior valor b) Encontre o menor valor c) Calcule a média dos números lidos 33 Informática para Internet Atividades de Aprendizagem 6) Observe o algoritmo a seguir e responda: X, N : inteiro inicio leia (N , X) Y=1 enquanto ( X > 0 ) faça Y=Y*N X=X-1 fim enquanto escreva ( Y ) fim 34 Informática para Internet Atividades de Aprendizagem a) Qual o objetivo do algoritmo acima ou qual o problema que ele está solucionando? b) O algoritmo está correto? Como você fez para testá-lo? c) Altere o algoritmo, utilizando a Estrutura Repita ... Até d) Altere o algoritmo, utilizando a Estrutura Para ... Faça e) Qual das três opções de algoritmo é a melhor em sua opinião? Por quê? 35 Informática para Internet Bibliografia • Forbellone, André L. V.; Eberspächer, Henri Frederico, Lógica de Programação, 2ª Edição. Editora Pearson Education, São Paulo, 2001 • Berg, Alexandre; Figueiró, Joice Pavek, Lógica de Programação, 3ª Edição, Editora Ulbra,Canoas, 2000 • Moraes, Paulo Sérgio de, Lógica de Programação, Unicamp - Centro de Computação – DSC, Ultima Atualização: 04 de Abril de 2000 36