ENTRADA E SAÍDA DE DADOS REGRAS PARA ESCREVER ALGORITMOS EM PORTUGOL • Incluir comentários pelo menos nas linhas mais importantes do programa; • Usar nomes significativos para as variáveis e constantes, que possam identificar o conteúdo; • Grifar as palavras chaves do Portugol; • Alinhar os comandos facilita a legibilidade do algoritmo e reduz a possibilidade de erros. EXEMPLO ALGORITMO Inicio algoritmo “Exemplo”; variaveis idade: inteiro; nome: caractere; inicio escreva “Informe seu nome: “; leia nome; escreva “Informe sua idade: “; leia idade; escreva “Você se chama”, nome, “e possui”, idade, “anos!”; fim Fim algoritmo ESTRUTURAS CONDICIONAIS As estruturas condicionais são utilizadas quando há uma condição que desvia o fluxo do programas para diferentes partes, dependendo do fato de a condição ser verdadeira ou falsa. Na condição das estruturas condicionais, utilizam-se os operadores relacionais (<, >, =, <=, >=, <>) para as comparações, observando suas características particulares • As estruturas condicionais dividem-se em estrutura SE e estrutura ESCOLHA/CASO. • A estrutura condicional SE é a estrutura mais flexível, podendo acontecer de várias formas, dependendo do fato de a condição ser satisfeita ou não e do fato de cada desvio do fluxo poder ou não ter outros comandos antes da finalização da estrutura. • a) Estrutura Condicional SE Simples • As instruções contidas dentro do laço condicional SE serão executadas somente se a condição retornar um resultado verdadeiro EXTRUTURA DE CONTROLE As estruturas condicionais dividem-se em estrutura SE e estrutura ESCOLHA/CASO. A estrutura condicional SE é a estrutura mais flexível, podendo acontecer de várias formas, dependendo do fato de a condição ser satisfeita ou não e do fato de cada desvio do fluxo poder ou não ter outros comandos antes da finalização da estrutura. a) Estrutura Condicional SE Simples As instruções contidas dentro do laço condicional SE serão executadas somente se a condição retornar um resultado verdadeiro se (A = 1) então escreva “Um”; fim_se; se (A = 2) então escreva “Dois”; fim_se; se (A = 3) então escreva “Três”; fim_se. Uma estrutura condicional tem como objetivo desviar o fluxo de execução de um programa baseada em uma condição. Se (Condição) então comando; Se (Condição) então { comando1; comando2; ... comando n; } Uma condição é uma expressão que retorne um valor booleano, verdadeiro ou falso Exemplos Só é executado um dos dois blocos de comandos, ou o bloco do então, ou o bloco do senão Se (Condição) então { comando1; comando2; ... comando n; } Senão { comando1; comando2; ... comando n; } Podemos ter um conjunto de estruturas condicionais aninhadas, da seguinte maneira: Se (Condição) então comando1; Senão Se(Condição 2) então { comando1; comando 2; } Senão { ... } se (A = 1) então escreva “Um”; fim_se; se (A = 2) então escreva “Dois”; fim_se; se (A = 3) então escreva “Três”; fim_se. Inicio algoritmo “ExMedia”; variáveis nome: caractere; nota_1, nota_2, media: real; contador: inteiro; início media ← 0; contador ← 1; enquanto (contador<=30) faça escreva (“Nome do aluno: “); leia(nome); escreva (“Primeira nota: “); leia(nota_1); escreva(“Segunda nota: “); leia(nota_2); media ← (nota_1 + nota_2)/2; se (media<=3,0) então escreva(nome, media, ”Rep.”); senão se(media>=6,0) então escreva(nome, media, “Apr.”); senão escreva(nome, media, “Rec.”); fim se; fim se; contador ← contador + 1; fim enquanto; Fim. Estrutura de Repetição início inteiro: contador, valor; real: soma; contador <-1; soma <-0; repita imprima (“Digite um valor”); leia (valor); soma <-soma + valor; contador <-contador +1 até contador > 10; soma <-soma/10; imprima (soma); fim. Estrutura de Repetição Sem estrutura de repetição início escreva “1” escreva “2” escreva “3” escreva “4” escreva “5” escreva “6” escreva “7” escreva “8” escreva “9” escreva “10” fim PARA Com estrutura de repetição PARA início declare Cont : inteiro para Cont ← 1 até 10 passo 1 faça escreva Cont fim para fim Enquanto Com estrutura de repetição ENQUANTO início declare Cont : inteiro Cont ← 1 enquanto (Cont <= 10) faça escreva Cont Cont ← Cont + 1 fim enquanto fim Repita Com estrutura de repetição REPITA1 início declare Cont : inteiro Cont ← 1 repita escreva Cont Cont ← Cont + 1 enquanto (Cont <= 10) fim Estrutura de Repetição Para, Enquanto e Repita Vimos acima que existem três estruturas de repetição diferentes, a estrutura PARA, a estrutura ENQUANTO e a estrutura REPITA. Até aí tudo bem, mas, quando utilizarmos cada uma delas? Vejamos! Estrutura PARA Deverá ser utilizada quando se sabe previamente o número de repetições que deverão ser executadas. Exemplo: Imprima todos os números pares no intervalo de 1 a 30. Para este problema, já foi determinado o número de vezes que o lupe será executado, ou seja, 30 vezes. Resolução do problema: início declare Cont : inteiro para Cont ← 1 até 30 passo 1 faça se (Cont mod 2 = 0) então /* Testa se Cont possui valor par. */ escreva Cont fim para fim Estrutura REPITA Deverá ser utilizada quando o lupe tem que ser executado no mínimo uma vez e, a execução do lupe mais de uma vez estará sujeita à condição imposta no final. Exemplo: Imprima o somatório de todos os números inteiros no intervalo de 0 (zero) a N. Onde N deve ser um número inteiro maior ou igual a zero e será escolhido pelo usuário. Para este problema, podemos considerar que, no mínimo uma vez o lupe deverá ser feito, pois, o menor número que o usuário poderá digitar é o 0 (zero). Estrutura REPITA Resolução do problema: início declare N, Total, Cont : inteiro Total ← 0 escreva “Digite um número inteiro maior ou igual a zero: ” leia N Cont ← 0 repita Total ← Total + Cont Cont ← Cont + 1 enquanto (Cont <= N) escreva “O Somatório do intervalo de 0 a N é: ”, Total fim Estrutura REPITA Resolução do problema: início declare N, Total, Cont : inteiro Total ← 0 escreva “Digite um número inteiro maior ou igual a zero: ” leia N Cont ← 0 repita Total ← Total + Cont Cont ← Cont + 1 enquanto (Cont <= N) escreva “O Somatório do intervalo de 0 a N é: ”, Total fim Estrutura ENQUANTO Estrutura ENQUANTO Deverá ser utilizada quando, antes de se executar o lupe, for necessário testar uma condição. Imprima o resultado da operação XY (leia-se: X elevado a Y). Onde X é a base e o primeiro número que o usuário digitará, e Y é o expoente ou potência e será o segundo número a ser digitado. Ambos inteiros. Para este problema deveremos fazer o teste da condição antes de entrarmos no lupe. Estrutura ENQUANTO Resolução do problema: início declare X, Y, Total : inteiro escreva “Digite o valor da base X: ” leia X escreva “Digite o valor do expoente Y: ” leia Y Total ← 1 enquanto (Y > 0) faça Total ← Total * X Y←Y-1 fim enquanto escreva “Total de X elevado a Y é: ”, Total fim