Guia Prático de Portugol FUNDAMENTOS DA PROGRAMAÇÃO - Guia 
Prático de Portugol 
Guia Prático de Portugol 
Parte 2 
Por Hernany Eduardo 
Introdução 
Bem galera, vou tentar nesta parte 2 do Guia Prático esclarecer as novas funções que o Jubran nos ensinou nestes últimos 
dias. Basicamente estudaremos sobre, laços, que nada mais são de rotinas de repetição de instruções, e também estudaremos 
sobre duas funções MOD E DIV, além da função escolha e vetores. 
FUNÇÃO MOD 
Está função retorna o valor do resto de uma divisão. 
Sintaxe: 
5 MOD 2 = 1 
6 MOD 3 = 0 
Vejamos a aplicação do MOD num algoritmo para descobrir se determinado número é par ou impar. 
INICIO 
INTEIRO : NUM; 
LEIA (NUM); 
SE (NUM MOD 2=0) ENTAO 
ESCREVA (“PAR”); 
SENAO 
ESCREVA (“IMPAR”); 
FIMSE 
FIM 
FUNÇÃO DIV 
Está função retorna valor inteiro do quociente de uma divisão. 
Sintaxe: 
6 DIV 3 = 2 
16 DIV 4 = 4 
Vejamos a aplicação do DIV num algoritmo para descobrir o quociente de uma divisão por 2 e informa-lo na tela para o usuário. 
INICIO 
INTEIRO : NUM; 
LEIA (NUM); 
ESCREVA (NUM DIV 2); 
Guia Prático de Portugol FUNDAMENTOS DA PROGRAMAÇÃO - Guia 
Prático de Portugol
Guia Prático de Portugol FUNDAMENTOS DA PROGRAMAÇÃO - Guia 
Prático de Portugol 
FIM 
Portanto são funções bem fáceis de se decorar suas funcionabilidades. 
LAÇOS OU LOOPS 
Vejam só o exemplo abaixo: 
Construa um algoritmo que leia 10 números inteiros, e escreva a Soma deles. 
Resolvendo pela função SE ficaria assim. 
INICIO 
INTEIRO: NUM1,NUM2,NUM3, NUM4,NUM5,NUM6, NUM7, NUM8,NUM9,NUM10; 
LEIA (NUM1,NUM2,NUM3,NUM4,NUM5,NUM6, NUM7, NUM8,NUM9,NUM10); 
ESCREVA (NUM1+NUM2+NUM3+ NUM4+NUM5+NUM6+NUM7+NUM8+NUM9+NUM10); 
FIM 
MAS QUE MUNDAREL DE VARIAVEIS QUE TIVE QUE CRIAR NAO É MESMO!? 
E SEM CONTAR O GRANDE ESPAÇO DE MEMÓRIA QUE ESTOU RESERVANDO PARA O PROGRAMA! 
Para o bem geral da nação dos programadores, nossos problemas acabaram. 
Chegou o revolucionário LAÇO. 
LAÇO nada mais é que uma “FUNCAO SE” , mais sofisticada, que de forma prática irá repetir N vezes determinada instrução. 
Nos foi mostrado pelo Jubran dois exemplos de LAÇOS ou LOOPs como desejarem: 
FUNÇÃO PARA 
Sintaxe: 
Para ( n=0 até 999999 ) faça 
Fimpara 
Esse tipo de laço tem um contador interno, muito útil para rotinas de contagem automática, cronometragem etc... 
Vamos ver o exemplo acima funcionando com a FUNÇÃO PARA. 
INICIO  INICIO DE PROGRAMA 
INTEIRO: NUM,CT,SOMA;  DECLARAÇÃO DE VARIAVEIS 
SOMA  0;  PRE-DETERMINANDO À VARIAVEL SOMA O VALOR 0; 
PARA (CT=0 ATÉ 9) FAÇA  PARA CT=0 FAÇA ( CT CT+1 ) ATÉ CT=10 
LEIA (NUM);  LEIA O NUMERO DIGITADO PELO USUARIO 
SOMA  SOMA+NUM;  A VARIAVEL SOMA RECEBE A SOMA DOS NUMEROS DIGITADOS 
FIMPARA  FIM DA FUNÇÃO PARA 
ESCREVA (SOMA);  ESCREVA O CONTEUDO DA VARIAVEL SOMA 
FIM  FIM DO PROGRAMA 
Guia Prático de Portugol FUNDAMENTOS DA PROGRAMAÇÃO - Guia 
Prático de Portugol
Guia Prático de Portugol FUNDAMENTOS DA PROGRAMAÇÃO - Guia 
Prático de Portugol 
Vejam que o número de variáveis diminuiu assustadoramente, e o sistema fica muito mais fácil de se entender. É o que 
chamamos de código limpo. 
FUNÇÃO ENQUANTO 
Sintaxe: 
Enquanto ( n <= 99999 ) faça 
N=n+1; 
Fimenquanto 
Já o laço enquanto tem algumas particularidades a mais do que o laço para. 
No enquanto não temos um contador interno portanto, temos que criar uma rotina de incrementar a variável de controle do 
mesmo. Além disso podemos controlar o laço tanto por variáveis numéricas quanto por variáveis de outros tipos, como por 
exemplo no algoritmo baixo. 
Ex: Faça um algoritmo que leia quantos nomes o usuário queira digitar e ao final pergunte ao usuário se ele quer informar mais 
algum nome. 
 Veja a solução abaixo: 
INICIO => INICIO DO PROGRAMA 
CARACTER : RESP  “S”, NOME; => DECLARACAO DE VARIAVEIS 
ENQUANTO (RESP = “S”) FAÇA => ENQUANTO A VARIAVEL RESP TIVER O VALOR “S” FAÇA 
LEIA (NOME) ; => LEIA O QUE DIGITOU O USUARIO 
ESCREVA (NOME); =>ESCREVA O QUE FOI DIGITADO 
ESCREVA (“DESEJA INFORMAR OUTRO NOME?<S/N>”); => PERGUNTA SE QUER INFORMAR OUTRO NOME<S/N> 
LEIA(RESP); => LÊ O NOVO VALOR DA VARIAVEL RESP, CASO O 
FIMENQUANTO USUARIO TENHA DIGITADO “S” O SISTEMA IRA PEDIR 
FIM PARA QUE ELE DIGITE OUTRO NOME, CASO DIGITE “N” 
ELE SAIRÁ DO SISTEMA 
Agora um exemplo com o laço sendo controlado por uma variável numérica. 
Ex: Faça um algoritimo que escreva a seqüência numérica de 0 a 1000. 
 Veja a solução 
INICIO => INICIO DO PROGRAMA 
INTEIRO: N0; => DECLARACAO DE VARIAVEIS 
ENQUANTO (N<=1000) FAÇA => ENQUANTO A VARIAVEL N FOR < OU = A 1000 FAÇA 
Guia Prático de Portugol FUNDAMENTOS DA PROGRAMAÇÃO - Guia 
Prático de Portugol
Guia Prático de Portugol FUNDAMENTOS DA PROGRAMAÇÃO - Guia 
Prático de Portugol 
ESCREVA (N,” ”); => ESCREVA O O CONTEUDO DA VARIAVEL N 
N=N+1 => INCREMENTA O VALOR DA VARIAVEL 
FIM =>CASO O VALOR DE N SEJA AINDA < OU = 1000 ELE IRÁ 
=>REPETIR O LAÇO NOVAMENTE, CASO SEU VALOR SEJA 
1001 SAIRA DO PROGRAMA 
FUNÇÃO ESCOLHA 
Sintaxe: 
Escolha (VARTESTE) 
OPCAO 1: ESCREVA (“ESCOLHEU 1”); 
OPCAO 2: ESCREVA (“ESCOLHEU 2”); 
OPCAO 3: ESCREVA (“ESCOLHEU 3”); 
DEFAULT: ESCREVA (“ESCOLHA 1,2 OU 3”); 
FimEscolha 
A função escolha é também uma função SE mais sofisticada. Seu uso é bem simples. 
Vamos através de mais um exemplo fixar essa função e seu funcionamento. 
Ex: Faça um algoritmo que leia dois número. Solicite ao usuário que informe qual operação matemática ele deseja realizar com 
os dois números. Caso ele digite “+”, será feita uma adição, caso “*”, será realizado uma multiplicação, caso seja uma outra 
operação, mostre uma mensagem de erro. 
INICIO 
INTEIRO : N1, N2; 
CARACTER : OPERACAO; 
LEIA (N1,N2); 
ESCOLHA (OPERACAO) 
OPCAO “+”: ESCREVA (N1+N2); 
OPCAO “*”: ESCREVA (N1*N2); 
DEFAULT : ESCREVA (“!!!! ERRO !!!!”); 
FIMESCOLHA 
FIM 
VETORES 
Sintaxe: 
Inteiro : i [50]; 
Um método de interessante de armazenamento de dados é o VETOR. Com ele em uma única variável seremos capazes de 
armazenar vários dados de um mesmo tipo numa única variável. 
Guia Prático de Portugol FUNDAMENTOS DA PROGRAMAÇÃO - Guia 
Prático de Portugol
Guia Prático de Portugol FUNDAMENTOS DA PROGRAMAÇÃO - Guia 
Prático de Portugol 
Digamos que precisamos armazenar a idade de 5 pessoas e ao final do programa seja necessário imprimir todas as idades no 
final do programa. 
Veja o como o vetor trabalharia para nos atender. 
Inteiro : idade [5] ; 
Abrimos no vetor 5 espaços para armazenar as idades. Digamos que no programa as idades foram informadas na seguinte 
ordem: 10, 20, 59, 12, 25. 
O vetor irá armazenar na seguinte forma. 
[10 20 59 12 25] , sendo que a idade 10 ficou na posição 0, a idade 20 ficou na posição 1, a idade 59 ficou na posição 2 
a idade 12 ficou na posição 3, e finalmente a idade 25 ficou na posição 4. 
Vamos ver o funcionamento em um programa. 
Faça um algoritmo que leia 50 números e os apresente na ordem de digitação. 
INICIO 
INTEIRO : I, N[50]; 
PARA (I=0 ATÉ 49) FAÇA 
LEIA (N [ I ] ); => A VARIAVEL I REPRESENTA A POSIÇÃO ATUAL DO VETOR 
FIMPARA 
PARA (I=0 ATÉ 49) FAÇA 
ESCREVA (N [I] ) ; 
FIMPARA 
FIM 
Guia Prático de Portugol FUNDAMENTOS DA PROGRAMAÇÃO - Guia 
Prático de Portugol
Guia Prático de Portugol FUNDAMENTOS DA PROGRAMAÇÃO - Guia 
Prático de Portugol 
Digamos que precisamos armazenar a idade de 5 pessoas e ao final do programa seja necessário imprimir todas as idades no 
final do programa. 
Veja o como o vetor trabalharia para nos atender. 
Inteiro : idade [5] ; 
Abrimos no vetor 5 espaços para armazenar as idades. Digamos que no programa as idades foram informadas na seguinte 
ordem: 10, 20, 59, 12, 25. 
O vetor irá armazenar na seguinte forma. 
[10 20 59 12 25] , sendo que a idade 10 ficou na posição 0, a idade 20 ficou na posição 1, a idade 59 ficou na posição 2 
a idade 12 ficou na posição 3, e finalmente a idade 25 ficou na posição 4. 
Vamos ver o funcionamento em um programa. 
Faça um algoritmo que leia 50 números e os apresente na ordem de digitação. 
INICIO 
INTEIRO : I, N[50]; 
PARA (I=0 ATÉ 49) FAÇA 
LEIA (N [ I ] ); => A VARIAVEL I REPRESENTA A POSIÇÃO ATUAL DO VETOR 
FIMPARA 
PARA (I=0 ATÉ 49) FAÇA 
ESCREVA (N [I] ) ; 
FIMPARA 
FIM 
Guia Prático de Portugol FUNDAMENTOS DA PROGRAMAÇÃO - Guia 
Prático de Portugol

portugol

  • 1.
    Guia Prático dePortugol FUNDAMENTOS DA PROGRAMAÇÃO - Guia Prático de Portugol Guia Prático de Portugol Parte 2 Por Hernany Eduardo Introdução Bem galera, vou tentar nesta parte 2 do Guia Prático esclarecer as novas funções que o Jubran nos ensinou nestes últimos dias. Basicamente estudaremos sobre, laços, que nada mais são de rotinas de repetição de instruções, e também estudaremos sobre duas funções MOD E DIV, além da função escolha e vetores. FUNÇÃO MOD Está função retorna o valor do resto de uma divisão. Sintaxe: 5 MOD 2 = 1 6 MOD 3 = 0 Vejamos a aplicação do MOD num algoritmo para descobrir se determinado número é par ou impar. INICIO INTEIRO : NUM; LEIA (NUM); SE (NUM MOD 2=0) ENTAO ESCREVA (“PAR”); SENAO ESCREVA (“IMPAR”); FIMSE FIM FUNÇÃO DIV Está função retorna valor inteiro do quociente de uma divisão. Sintaxe: 6 DIV 3 = 2 16 DIV 4 = 4 Vejamos a aplicação do DIV num algoritmo para descobrir o quociente de uma divisão por 2 e informa-lo na tela para o usuário. INICIO INTEIRO : NUM; LEIA (NUM); ESCREVA (NUM DIV 2); Guia Prático de Portugol FUNDAMENTOS DA PROGRAMAÇÃO - Guia Prático de Portugol
  • 2.
    Guia Prático dePortugol FUNDAMENTOS DA PROGRAMAÇÃO - Guia Prático de Portugol FIM Portanto são funções bem fáceis de se decorar suas funcionabilidades. LAÇOS OU LOOPS Vejam só o exemplo abaixo: Construa um algoritmo que leia 10 números inteiros, e escreva a Soma deles. Resolvendo pela função SE ficaria assim. INICIO INTEIRO: NUM1,NUM2,NUM3, NUM4,NUM5,NUM6, NUM7, NUM8,NUM9,NUM10; LEIA (NUM1,NUM2,NUM3,NUM4,NUM5,NUM6, NUM7, NUM8,NUM9,NUM10); ESCREVA (NUM1+NUM2+NUM3+ NUM4+NUM5+NUM6+NUM7+NUM8+NUM9+NUM10); FIM MAS QUE MUNDAREL DE VARIAVEIS QUE TIVE QUE CRIAR NAO É MESMO!? E SEM CONTAR O GRANDE ESPAÇO DE MEMÓRIA QUE ESTOU RESERVANDO PARA O PROGRAMA! Para o bem geral da nação dos programadores, nossos problemas acabaram. Chegou o revolucionário LAÇO. LAÇO nada mais é que uma “FUNCAO SE” , mais sofisticada, que de forma prática irá repetir N vezes determinada instrução. Nos foi mostrado pelo Jubran dois exemplos de LAÇOS ou LOOPs como desejarem: FUNÇÃO PARA Sintaxe: Para ( n=0 até 999999 ) faça Fimpara Esse tipo de laço tem um contador interno, muito útil para rotinas de contagem automática, cronometragem etc... Vamos ver o exemplo acima funcionando com a FUNÇÃO PARA. INICIO  INICIO DE PROGRAMA INTEIRO: NUM,CT,SOMA;  DECLARAÇÃO DE VARIAVEIS SOMA  0;  PRE-DETERMINANDO À VARIAVEL SOMA O VALOR 0; PARA (CT=0 ATÉ 9) FAÇA  PARA CT=0 FAÇA ( CT CT+1 ) ATÉ CT=10 LEIA (NUM);  LEIA O NUMERO DIGITADO PELO USUARIO SOMA  SOMA+NUM;  A VARIAVEL SOMA RECEBE A SOMA DOS NUMEROS DIGITADOS FIMPARA  FIM DA FUNÇÃO PARA ESCREVA (SOMA);  ESCREVA O CONTEUDO DA VARIAVEL SOMA FIM  FIM DO PROGRAMA Guia Prático de Portugol FUNDAMENTOS DA PROGRAMAÇÃO - Guia Prático de Portugol
  • 3.
    Guia Prático dePortugol FUNDAMENTOS DA PROGRAMAÇÃO - Guia Prático de Portugol Vejam que o número de variáveis diminuiu assustadoramente, e o sistema fica muito mais fácil de se entender. É o que chamamos de código limpo. FUNÇÃO ENQUANTO Sintaxe: Enquanto ( n <= 99999 ) faça N=n+1; Fimenquanto Já o laço enquanto tem algumas particularidades a mais do que o laço para. No enquanto não temos um contador interno portanto, temos que criar uma rotina de incrementar a variável de controle do mesmo. Além disso podemos controlar o laço tanto por variáveis numéricas quanto por variáveis de outros tipos, como por exemplo no algoritmo baixo. Ex: Faça um algoritmo que leia quantos nomes o usuário queira digitar e ao final pergunte ao usuário se ele quer informar mais algum nome.  Veja a solução abaixo: INICIO => INICIO DO PROGRAMA CARACTER : RESP  “S”, NOME; => DECLARACAO DE VARIAVEIS ENQUANTO (RESP = “S”) FAÇA => ENQUANTO A VARIAVEL RESP TIVER O VALOR “S” FAÇA LEIA (NOME) ; => LEIA O QUE DIGITOU O USUARIO ESCREVA (NOME); =>ESCREVA O QUE FOI DIGITADO ESCREVA (“DESEJA INFORMAR OUTRO NOME?<S/N>”); => PERGUNTA SE QUER INFORMAR OUTRO NOME<S/N> LEIA(RESP); => LÊ O NOVO VALOR DA VARIAVEL RESP, CASO O FIMENQUANTO USUARIO TENHA DIGITADO “S” O SISTEMA IRA PEDIR FIM PARA QUE ELE DIGITE OUTRO NOME, CASO DIGITE “N” ELE SAIRÁ DO SISTEMA Agora um exemplo com o laço sendo controlado por uma variável numérica. Ex: Faça um algoritimo que escreva a seqüência numérica de 0 a 1000.  Veja a solução INICIO => INICIO DO PROGRAMA INTEIRO: N0; => DECLARACAO DE VARIAVEIS ENQUANTO (N<=1000) FAÇA => ENQUANTO A VARIAVEL N FOR < OU = A 1000 FAÇA Guia Prático de Portugol FUNDAMENTOS DA PROGRAMAÇÃO - Guia Prático de Portugol
  • 4.
    Guia Prático dePortugol FUNDAMENTOS DA PROGRAMAÇÃO - Guia Prático de Portugol ESCREVA (N,” ”); => ESCREVA O O CONTEUDO DA VARIAVEL N N=N+1 => INCREMENTA O VALOR DA VARIAVEL FIM =>CASO O VALOR DE N SEJA AINDA < OU = 1000 ELE IRÁ =>REPETIR O LAÇO NOVAMENTE, CASO SEU VALOR SEJA 1001 SAIRA DO PROGRAMA FUNÇÃO ESCOLHA Sintaxe: Escolha (VARTESTE) OPCAO 1: ESCREVA (“ESCOLHEU 1”); OPCAO 2: ESCREVA (“ESCOLHEU 2”); OPCAO 3: ESCREVA (“ESCOLHEU 3”); DEFAULT: ESCREVA (“ESCOLHA 1,2 OU 3”); FimEscolha A função escolha é também uma função SE mais sofisticada. Seu uso é bem simples. Vamos através de mais um exemplo fixar essa função e seu funcionamento. Ex: Faça um algoritmo que leia dois número. Solicite ao usuário que informe qual operação matemática ele deseja realizar com os dois números. Caso ele digite “+”, será feita uma adição, caso “*”, será realizado uma multiplicação, caso seja uma outra operação, mostre uma mensagem de erro. INICIO INTEIRO : N1, N2; CARACTER : OPERACAO; LEIA (N1,N2); ESCOLHA (OPERACAO) OPCAO “+”: ESCREVA (N1+N2); OPCAO “*”: ESCREVA (N1*N2); DEFAULT : ESCREVA (“!!!! ERRO !!!!”); FIMESCOLHA FIM VETORES Sintaxe: Inteiro : i [50]; Um método de interessante de armazenamento de dados é o VETOR. Com ele em uma única variável seremos capazes de armazenar vários dados de um mesmo tipo numa única variável. Guia Prático de Portugol FUNDAMENTOS DA PROGRAMAÇÃO - Guia Prático de Portugol
  • 5.
    Guia Prático dePortugol FUNDAMENTOS DA PROGRAMAÇÃO - Guia Prático de Portugol Digamos que precisamos armazenar a idade de 5 pessoas e ao final do programa seja necessário imprimir todas as idades no final do programa. Veja o como o vetor trabalharia para nos atender. Inteiro : idade [5] ; Abrimos no vetor 5 espaços para armazenar as idades. Digamos que no programa as idades foram informadas na seguinte ordem: 10, 20, 59, 12, 25. O vetor irá armazenar na seguinte forma. [10 20 59 12 25] , sendo que a idade 10 ficou na posição 0, a idade 20 ficou na posição 1, a idade 59 ficou na posição 2 a idade 12 ficou na posição 3, e finalmente a idade 25 ficou na posição 4. Vamos ver o funcionamento em um programa. Faça um algoritmo que leia 50 números e os apresente na ordem de digitação. INICIO INTEIRO : I, N[50]; PARA (I=0 ATÉ 49) FAÇA LEIA (N [ I ] ); => A VARIAVEL I REPRESENTA A POSIÇÃO ATUAL DO VETOR FIMPARA PARA (I=0 ATÉ 49) FAÇA ESCREVA (N [I] ) ; FIMPARA FIM Guia Prático de Portugol FUNDAMENTOS DA PROGRAMAÇÃO - Guia Prático de Portugol
  • 6.
    Guia Prático dePortugol FUNDAMENTOS DA PROGRAMAÇÃO - Guia Prático de Portugol Digamos que precisamos armazenar a idade de 5 pessoas e ao final do programa seja necessário imprimir todas as idades no final do programa. Veja o como o vetor trabalharia para nos atender. Inteiro : idade [5] ; Abrimos no vetor 5 espaços para armazenar as idades. Digamos que no programa as idades foram informadas na seguinte ordem: 10, 20, 59, 12, 25. O vetor irá armazenar na seguinte forma. [10 20 59 12 25] , sendo que a idade 10 ficou na posição 0, a idade 20 ficou na posição 1, a idade 59 ficou na posição 2 a idade 12 ficou na posição 3, e finalmente a idade 25 ficou na posição 4. Vamos ver o funcionamento em um programa. Faça um algoritmo que leia 50 números e os apresente na ordem de digitação. INICIO INTEIRO : I, N[50]; PARA (I=0 ATÉ 49) FAÇA LEIA (N [ I ] ); => A VARIAVEL I REPRESENTA A POSIÇÃO ATUAL DO VETOR FIMPARA PARA (I=0 ATÉ 49) FAÇA ESCREVA (N [I] ) ; FIMPARA FIM Guia Prático de Portugol FUNDAMENTOS DA PROGRAMAÇÃO - Guia Prático de Portugol