1

Aula 05
Programação utilizando
Portugol
-Versão de impressão

Tópicos Principais:
0. Estrutura de um programa
1. Resolução de problemas
1.1 Algoritmos
1.2 Diagrama de blocos
1.3 Portugol
2. Programa padrão
3. Saída de dados
4. Memória
5. Entrada de dados
6. Processamento
7. Resumo
8. Lista de Exercícios
Por
Guilherme Bezerra Fernandes

por exemplo. etc.1. estrutura básica de um programa. Algoritmo Como já visto nas aulas passadas. 2 – Diagrama de bloco. Estrutura de um programa Como já visto nas aulas passadas. por fim o armazenamento ou não fixo de maneira permanente no HD (entrada/saída). manuais de uso. 1. o conceito que estrutura um programa segue basicamente a própria organização do computador que pode ser resumida da seguinte forma: Memória Entrada Processamento Saída Entrada/ Saída A seqüência principal de execução é entrada -> processamento -> saída.0 Programação utilizando Portugol ::: Nesta aula. São exemplos de algoritmos: instruções de montagem. 0. Pode também ser definido como uma seqüência de instruções finita e ordenada de forma lógica para a resolução de uma determinada tarefa ou problema. 1. uso de variáveis. funções básicas de entrada. receitas. MAS no decorrer da execução podem ser necessários outros tipos de acesso como. a necessidade ou não de armazenamento de dados temporários (memória) e. serão apresentados os principais conceitos de um programa. 3 – Portugol. saída de dados. processamento. . Resolução de problemas Para maior segurança no desenvolvimento de um programa geralmente são adotadas três etapas: 1 – Elaboração do Algoritmo. resumo e exercícios.Algoritmos e estrutura de dados 2 ::: 5. algoritmo é uma seqüência de passos finitos com o objetivo de solucionar um problema. etapas de resolução de problemas.

1 – Retirar o telefone do gancho 2 – Esperar o sinal 3 – Colocar o cartão 4 – Discar o número 5 – Falar ao telefone 6 – Colocar o telefone no gancho Provavelmente você “executou” o algoritmo deste exemplo diversas vezes. Em geral. tendo como objetivo descrever o método e a seqüência do processo dos planos num computador. ele pode ser aplicado a qualquer problema cuja solução possa ser decomposta em um grupo de instruções. . Um algoritmo não computacional é um algoritmo cuja seqüência de passos. O termo algoritmo está muito ligado à Ciência da Computação. na realidade. os quais estabelecerão as seqüências de operações a serem executadas em um processamento computacional. Ao longo do curso serão apresentados os principais símbolos. se assim fosse. um algoritmo é UM CAMINHO para a solução de um problema. também chamado de fluxo. cada problema teria um único algoritmo. pois. não pode ser executada por um computador. Um exemplo de diagrama é apresentado abaixo: Início X Fim Diagrama de bloco Observações: Os programas Word e VISIO permitem criar diagrama de blocos facilmente. a princípio.2. 1. Diagrama de bloco O diagrama de bloco. existem muitos (senão infinitos) caminhos que levam a uma solução satisfatória. mas. Essa ferramenta usa diversos símbolos geométricos. Abaixo é apresentado um algoritmo NÃO COMPUTACIONAL cujo objetivo é usar um telefone público.3 Um algoritmo não é A solução do problema. é uma ferramenta usada e desenvolvida pelo profissional que está envolvido diretamente com a programação.

é necessário ainda que quem faz uso dele conheça os termos utilizados nas instruções. Durante este texto. Aprender as palavras e regras que fazem parte dessa sintaxe é fundamental. O processo é semelhante ao de tornar-se competente em um jogo qualquer: aprender as regras do jogo (a sintaxe) é só o primeiro passo. O algoritmo do exemplo só será útil para alguém que seja fluente na língua portuguesa e conheça o significado dos verbos Retirar. uma simplificação extrema do Português. Em outras palavras. na verdade. Esperar assim como dos substantivos utilizados no contexto de uma receita culinária. . O que realmente exigirá um grande esforço por parte do estudante é aprender a resolver problemas utilizando a linguagem. a forma especial de linguagem que utilizaremos é bem mais restrita que o Português e com significados bem definidos para todos os termos utilizados nas instruções. muito exercício e dedicação. Ao conjunto de palavras e regras que definem o formato das sentenças válidas chamamos sintaxe da linguagem. há somente um caminho: resolver muitos problemas. Portanto. não é o maior objetivo deste curso.3 Portugol Para que o algoritmo possa ser útil. Para isso. O português estruturado é. a sintaxe do Português Estruturado será apresentada progressivamente e a utilizaremos em muitos exercícios de resolução de problemas. estaremos na verdade procurando desenvolver as habilidades básicas que serão necessárias para adquirir-se competência na programação de computadores. no entanto.4 1. Colocar. ela possui todos os elementos básicos e uma estrutura semelhante à de uma linguagem típica para programação de computadores. resolver problemas com português estruturado pode ser uma tarefa tão complexa quanto a de escrever um programa em uma linguagem de programação qualquer. limitada a umas poucas palavras e estruturas que têm um significado muito bem definido. Além disso. é preciso que a linguagem utilizada no algoritmo seja conhecida tanto por quem o escreveu quanto por quem vai executá-lo. Embora o Português Estruturado seja uma linguagem bastante simplificada. tornar-se um bom jogador (programador) exige tempo. neste curso. Essa linguagem é conhecida como Português Estruturado (às vezes também chamada de Portugol). Para que o algoritmo possa ser executado por uma máquina é importante que as instruções sejam corretas e sem ambigüidades. Portanto.

apoioinformatica. Em seguida. serão apresentados exemplos de algoritmos.5 Daqui para frente. neste caso é “básico”. sua representação no diagrama de blocos e. Observe que é gerado automaticamente o seguinte código: algoritmo "semnome" // Função : // Autor : // Data : 15/02/2008 // Seção de Declarações var inicio // Seção de Comandos fimalgoritmo Por enquanto não é necessário todo este código. O Programa VisuAlg permite testar os programas desenvolvidos em portugol rapidamente. Este será o ambiente em que possibilitará a criação dos nossos programas. será aberta uma janela preta. Feche-a. Ele é composto pela palavra-chave algoritmo seguido do nome do algoritmo entre aspas duplas. isto é a transformação do código em Portugol para linguagem de máquina. Sua representação em diagrama de bloco é demonstrada abaixo: Início Fim Diagrama de bloco Para testarmos o algoritmo pressione o botão F9. por fim. 2. tem-se a outra palavra-chave inicio e fimalgoritmo. Pois o portugol não é uma linguagem de programação realmente.inf.br. ficando da seguinte maneira: Programa padrão: algoritmo "basico" inicio fimalgoritmo TODO programa em portugol tem no mínimo a estrutura básica acima. apenas um português estruturado. Ao pressionar este botão será simulada a compilação do código. Preste ATENÇÃO! ISTO irá apenas SIMULAR. Após isto. desta forma. Programa padrão Abra o programa VisuAlg. sua escrita em portugol. . apague tudo o que está depois do // e a palavra var. Pode ser encontrado no site de busca www.

O símbolo do diagrama de blocos utilizado para apresentação de dados na tela é o . utiliza-se a palavra-chave escreva seguido do texto a ser apresentado entre parêntesis. MAS ajuda muito o entendimento por parte do próprio programador e outros que quiserem entendê-lo. . isto não é obrigatório para o programa funcionar..1 Algoritmo: Apresente a mensagem “Bem-vindo!”.2 Diagrama de bloco: Início “Bem-vindo” Fim Diagrama de bloco 3. Para a apresentação de dados na tela. 3. processamento e saída? Pois bem.6 3. Esta técnica é chamada de endentação e visa uma boa documentação do seu programa. pois geralmente é necessário apresentar alguma informação para o usuário antes que o mesmo possa entrar com os dados. 3. Saída de dados: escreva e escreval Lembra-se de entrada. O primeiro passo é desenvolver o algoritmo.3 Portugol Em portugol ficaria da seguinte maneira: algoritmo "basico" inicio escreva ("Bem-vindo!") fimalgoritmo Observações: Foram utilizados três espaços em branco antes do comando escreva. Problema 1: Desenvolva um programa que mostre na tela a mensagem “Bem-vindo!”. veremos primeiro a saída e não a entrada.

caractere. Ex: var idade : inteiro. Uma variável irá armazenar dados de forma TEMPORÁRIA na memória do computador. 3.7 Caso fosse necessário apresentar várias mensagens.@.&.#. a diferença é que após apresentar o texto ele permite escrever uma nova linha após o texto desejado. mas de forma que cada palavra fique em uma linha diferente! Faça o algoritmo.) c) NENHUMA palavra reservada (ou palavra-chave) poderá ser nome de uma variável.4 Exercício: Desenvolva um programa que apresente na tela “Estou começando a conhecer Portugol!”. isto é um endereço que armazena um conteúdo. isto quer dizer que ao fechar o programa os dados serão PERDIDOS! Para utilizá-la.?. Ex: escreval(“Teste”). (Não podem ser utilizados caracteres simbólicos como: -. (Não podem ser números) b) Se houver MAIS de um caractere. mas apenas quando recebem valores. a entrada de dados de um usuário é incerta. diagrama de bloco e por fim.). Quando formos dar nomes às variáveis. Memória O conceito memória faz referência a variáveis. SÓ poderemos usar letras ou números. que é incerto. Uma observação importante é que as variáveis não precisam ser representadas em diagrama de blocos quando são criadas.!.$. Mas o que seria variável? Variável é um local na memória principal (temporária). o portugol. lógico).*(. dois pontos “:” e seu tipo sublinhado (inteiro. etc. . é apresentada uma tabela com a lista de palavras reservadas que não podem ser utilizadas para nomes de variáveis. 4. bastaria utilizar o mesmo comando diversas vezes. Por exemplo. A seguir. real. Outro comando que permite escrever um texto na tela é o escreval. instável ou inconstante.+. basta inserir a palavra-chave var seguido do nome desta variável. Também pode ser considerada como tudo aquilo que é sujeito a variações. não tem como saber exatamente o que um usuário irá digitar. Uma das razões para o de uso de variáveis é devido à necessidade de armazenar os dados que serão digitados pelo usuário. Este possui a mesma sintaxe que o escreva. se faz necessário seguirmos algumas regras: a) O PRIMEIRO caractere DEVE ser uma letra.

sendo possível representar apenas um dos dois valores. A palavra-chave para seu uso é inteiro. -2. string. -1. -1. Ex: Falso.. 1. Ex: . 1. Deve-se declarar uma variável com um nome fácil para saber seu significado (por exemplo: idade) e o tipo (por exemplo: inteiro). 0. A palavra-chave é logico.0. literal ou cadeia.Inteiros: correspondem aos dados numéricos positivos ou negativos que NÃO sejam fracionários.. A palavra-chave é caractere. 4 – Lógicos: São os tipos de dados com valores verdadeiros e falsos. 3..4.. Ficando da seguinte maneira: var idade : inteiro Em portugol: algoritmo "idade" var idade: inteiro inicio fimalgoritmo . A palavra-chave para seu uso é real 3 – Caracteres: correspondem aos tipos de caracteres contendo letras. 2 – Reais: correspondem aos dados numéricos positivos ou negativos E fracionários. “123”.1.. Dos 4 tipos possíveis. números e símbolos especiais. 0. o inteiro é o mais adequado. Ex: . F e N (para valor lógico falso) e Verdadeiro. -2.-3. 2. 3. etc.-3. 2. É também conhecido como alfanumérico. V e S (para o valor lógico verdadeiro). Ex: “João”.1 Tipo de dados Os tipos de dados que podem ser armazenados em um computador são divididos em 4 categorias: 1 ... Problema 2: Desenvolver um programa para armazenar a idade do usuário..5. “Rua 10”.8 Lista de palavras reservadas algoritmo escreva fimrepita mod arquivo escreval fimse não ate faca função e caractere falso inicio ou caso fimalgoritmo int outrocaso cronometro fimenquanto inteiro para debug fimescolha interrompa passo enquanto fimfuncao leia pausa então fimpara limpatela real escolha fimprocedimento logico procedimento repita retorne se senão timer var vetor verdadeiro xou 4.

permanente.9 A declaração de variáveis é feita antes das palavras-chave início e fimalgoritmo. Ela é do tipo inteiro. só é capaz de armazenar valores inteiros. a caixa (que é a variável) foi rotulada como IDADE. Exemplo: idade <. Tipo i n t e i r o 0 Valor qualquer idade Nome da variável(rótulo) Representação de uma variável O conteúdo deve ser sempre do mesmo tipo. Um dos objetivos de se declarar uma variável no início do algoritmo é para que seja alocada (reservada) uma área na memória (endereço de memória) para a variável. O conteúdo desta caixa não é algo fixo. essa caixa pode ter seu conteúdo alterado diversas vezes. Para iniciar a variável usa-se o símbolo MENOR seguido de MENOS (<-). Na figura acima.0 A atribuição de valores para variável é representada no diagrama de blocos com um retângulo. Uma variável pode ser vista como uma caixa com um rótulo ou nome colado a ela. O diagrama de blocos ficará assim: Início idade <-0 Fim Diagrama de bloco . Quando se cria uma variável deve-se inicializá-la com algum valor. mas isto vai depender do problema a ser resolvido. isto é. Geralmente é um valor nulo. que num dado instante guarda um determinado objeto. Na verdade.

Agora que se declarou a variável. ficando da seguinte maneira: algoritmo "idade" var idade: inteiro inicio idade <. seguida entre parêntesis do nome da variável. Entrada de dados: leia A palavra-chave para receber dados digitados pelo usuário é leia.0 fimalgoritmo Caso a variável não fosse inicializada com zero. o que geralmente é chamado de lixo.0 leia(idade) fimalgoritmo . vamos conhecer o comando para receber os dados do usuário e armazená-lo na variável. 5. Um exemplo completo: algoritmo "idade" var idade: inteiro inicio idade <.10 A inicialização da variável é feita entre as palavras chaves início e fimalgoritmo. O símbolo do diagrama de blocos utilizado para receber dados digitados pelo usuário é . ficaria: leia(idade). ela ficaria com um valor qualquer da memória com computador. O novo diagrama de blocos: Início idade <-0 idade Fim Diagrama de bloco No caso do Portugol.

. obrigando o usuário a adivinhar o que deve ser digitado. algoritmo "idade" var idade: inteiro inicio escreva ("Digite sua idade:") leia(idade) fimalgoritmo Agora que foi possível receber os dados digitados pelo usuário. simplesmente fica um cursor piscando.11 Observa-se que instrução leia DEVE ficar entre o bloco início e fimalgoritmo. Será utilizada a palavra-chave escreva seguido do nome da variável idade que foi criada. Assim. qualquer valor do tipo inteiro que o usuário digitar será apresentado. Não é algo muito útil. é aconselhável mostrar uma mensagem solicitando ao usuário que digite sua idade. Supondo que o usuário digite o valor 32 e pressione ENTER. veja como ficará a variável com o seu conteúdo: 32 Tipo i n t e i r o idade Dado digitado pelo usuário Nome da variável Repare que ao executar o programa. Desta maneira. por exemplo “Digite a sua idade:”. algoritmo "apresenta_idade" var idade: inteiro inicio escreva ("Digite sua idade:") leia(idade) escreva ("Sua idade é:") escreva (idade) fimalgoritmo Até agora foi possível receber os dados. o que será demonstrado no próximo tópico. armazená-los na memória e apresentá-los na tela. O principal mesmo é processar estes dados. é interessante apresentálos na tela.

Operação Operador Adição Subtração Multiplicação Divisão (com resultado real) Divisão (com resultado inteiro) Resto Exponenciação + * / div % ou mod ^ Tabela 1: Operadores aritméticos 6. Os símbolos adotados na programação são basicamente os mesmos já conhecidos.0 resultado <. valorB e resultado. Problema 3: Desenvolver o algoritmo. testes condicionais.valorA + valorB escreva(resultado) fimalgoritmo . Os restantes serão vistos mais à frente do curso.Leia o valorB 6 . etc.0 escreva("Digite o primeiro valor") leia(valorA) escreva("Digite o segundo valor") leia(valorB) resultado <. Serão apresentados primeiramente os operadores básicos disponíveis.1 Operações aritméticas básicas As operações aritméticas são as mais básicas que um programador deve saber programar.0 valorB <.1. 7 – Apresentar o valor da variável resultado.Efetue a soma das variáveis valorA e valorB e atribua seu resultado à variável resultado.12 6. Algoritmo: 1 – Atribuir o valor zero às variáveis valorA. portugol e diagrama de blocos de um programa que efetue a soma de dois números. 2 – Apresente a mensagem “Digite o primeiro valor” 3 – Leia o valorA 4 – Apresente a mensagem “Digite o segundo valor” 5 . Processamento O Conceito de processamento se refere aos cálculos. Portugol: algoritmo "soma" var valorA: inteiro valorB: inteiro resultado: inteiro inicio valorA <.1 Adição e Subtração: Observa-se através da tabela acima o uso dos operadores de soma e subtração da mesma maneira utilizados na matemática convencional. 6.

valorA + valorB resultado Fim Diagrama de bloco Exercício: Faça uma calculadora com as 4 operações básicas de soma. pode-se observar que na operação de multiplicação é utilizado o “*” para representá-lo.3 Divisão e resto .2 Multiplicação .66 8 div 3 = 2 .De acordo com a Tabela 1 apresentada.1. multiplicação e divisão. subtração. ex: 5 * 3 = 15.13 Diagrama de bloco: Início valorA<-0 valorB<-0 resultado<-0 “Digite o primeiro valor” valorA “Digite o segundo valor” valorB resultado <.1. Exemplos: 4 / 3 = 1. Faça o algoritmo. 6.A divisão possui dois tipos: uma que retorna um valor do tipo REAL e outra que retorna um valor do tipo INTEIRO. diagrama de bloco e portugol.33 4 div 3 = 1 8 / 3 = 2. 6.

0 resultado <. Quando 8 é dividido por 3 com o operador “/” tem-se o valor 2. MAS não ocorre o arredondamento para cima.valorA div 10 escreval("Primeira casa: ". Exemplos: 4%2=0 8%3=2 7%4=3 A seguir.4 Exponenciação e radiciação . . No caso das unidades utiliza-se o operador “%”. resultado) resultado <. Outra operação é chamada de RESTO e representada pelo operador “%”. 6. será apresentado um uso típico em programas dos operadores div e %. Exercício: Desenvolva um programa que leia um número de 3 casas e imprima os algarismos separados em cada linha. MAS quando utiliza-se 4 div 3 tem-se o valor INTEIRO 1.0 escreval(" Entre com um numero inteiro de 2 casas: ") leia(valorA) resultado <.14 Quando 4 é dividido por 3 utilizando o operador “/” tem-se o valor REAL 1. Observe que toda a parte fracionária é retirada.1. Problema 4 . Para a dezena utilizou-se operador div ao invés de “/”. É utilizado quando se deseja encontrar o resto da divisão entre dois números inteiros. Na matemática. resultado) fimalgoritmo Um número de duas casas possui o algarismo das dezenas e das unidades. isto porque não será necessária a parte fracionária. pois deseja-se apenas o resto. algoritmo "Separa_Numeros" var valorA : inteiro resultado : real inicio valorA <.valorA % 10 escreva("Segunda casa: ". representada pela base e por um expoente.66 e ao utilizar o “div” tem-se o valor 2.A última operação chamada de exponenciação é representada pelo operador “^”.Desenvolva um programa que leia um número de duas casas e imprima os algarismos separados em cada linha. Ex: 23 = 8.33.

Exemplos: √16 = 4 (raiz quadrada convencional) 16 ^ (1/2) = 4 (raiz quadrada com exponenciação) 3 √8 = 2 (raiz cúbica) 8 ^ (1/3) (raiz cúbica com exponenciação) Problema 5 . resultado) fimalgoritmo Exercício: Desenvolva um programa que calcule a raiz quadrada e cúbica de um número digitado pelo usuário. por exemplo.0 escreva("Entre com o valor da base: ") leia(base) escreva("Entre com o valor do expoente: ") leia(expoente) resultado <.0 expoente <.base ^ expoente escreva(“Resultado”. . a raiz quadrada de um número.15 Exemplos: 2^2=4 2^3=8 4 ^ 2 = 16 Na matemática é possível utilizar a exponenciação para encontrar.Desenvolva um programa que leia o valor da base e o valor do expoente e calcule a exponenciação. algoritmo "expoente" var base : inteiro expoente : inteiro resultado : real inicio base <.

Faça o algoritmo. 8. O programa deverá apresentar o nome do aparelho. 8. diagrama de blocos e portugol dos exercícios abaixo(2 pts):  Um programa que calcule a média de 5 notas de um aluno. Entrar com um número no formato CDU(centena. div. (dica: fórmula para área de um triângulo é base * altura dividido por 2)  Um programa que calcule a área de uma circunferência. sairá 321)(1 pt).  Um programa que calcule a área de um triângulo. dezena e unidade) e imprimir invertido: UDC.Todo programa escrito em potugol é composto no mínimo pela palavra-chave algoritmo seguido do nome do algoritmo entre aspas duplas. Dados necessários: valor da hora aula. 8. (dica: fórmula para área de uma circunferência é 3.. *. %.16 7. /. conforme abaixo: algoritmo "basico" inicio fimalgoritmo 2 . por dia e por mês. (exemplo: se entrar com o valor 123. tem-se a outra palavra-chave inicio e fimalgoritmo.3.2. o seu custo em reais por hora. . .14 * raio ao quadrado. Resumo 1 .A declaração das variáveis devem estar entre o bloco algoritmo e início 3 – Comandos para saída de dados(apresentação de textos na tela): escreva. (Obs: a CEMIG estabelece que um aparelho de 1000 watts de potência ligado por uma hora custa 0. número de horas trabalhadas no mês e percentual de desconto no INSS. Faça um programa que receba o saldo de uma aplicação e imprima o valor aplicado e valor com rendimento de 5%(1 pt). Faça um programa de cálculo de custo de energia de dois aparelhos de um estabelecimento comercial.0 Lista de Exercícios (valor: 10 pts) 8. escreval 4 – Declaração de variáveis var idade : inteiro 5 – Comando para entrada de dados(leitura dos dados digitados pelo usuário): leia(idade) 6 – Operadores básicos: +.  Um programa que efetue o cálculo do salário líquido de um professor.4.1. O usuário entrará com o valor da potência do aparelho (em watts) e o tempo de utilização (em horas) diário de ambos os aparelhos.642 reais para o estabelecimento)(1 pt). ^ 8. Em seguida.

isto é o número zero. 8.sabendo que um terço das fitas são alugadas por mês. . o qual é calculado da seguinte maneira(1 pt): Exemplo: número da conta: 235 .17 8.o último dígito desse resultado é o dígito verificador da conta.quando o cliente atrasa a entrega.6 Faça um programa que. dado um número de conta corrente com três dígitos. mostrando as informações pedidas a seguir(1 pt): . exiba o faturamento anual da locadora. exiba a quantidade de fitas que a locadora terá no final do ano. é cobrada uma multa de 10% sobre o valor do aluguel.(3 pts) . calcule o valor ganho com multas por mês. Sabendo que um décimo das fitas alugadas no mês são devolvidas com atraso.multiplicar cada dígito pela sua ordem posicional e somar estes resultados: 7 6 7 x1 x2 x3 7 + 12 + 21 = 40 . . 2 e 3 do Livro: Algoritmos – lógica para desenvolvimento de programação de computadores.sabendo ainda que 2% de fitas se estragam ao longo do ano.somar o número da conta com o seu inverso: 235 + 532 = 767 . Faça um resumo do capítulo 1. ----------------- -------------- -------------- 8.5 Faça um programa que leia a quantidade de fitas que uma locadora de vídeo possui e o valor que ela cobra por cada aluguel. e um décimo do total é comprado para reposição. retorne o seu dígito verificador.7.