SlideShare uma empresa Scribd logo
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

Mais conteúdo relacionado

Mais procurados

Tutorial kturtle iniciante
Tutorial kturtle inicianteTutorial kturtle iniciante
Tutorial kturtle inicianteRodrigo Costa
 
Algoritmos e Técnicas de Programação - Aula 04
Algoritmos e Técnicas de Programação - Aula 04Algoritmos e Técnicas de Programação - Aula 04
Algoritmos e Técnicas de Programação - Aula 04
thomasdacosta
 
Algoritmos e Técnicas de Programação - Curso Completo
Algoritmos e Técnicas de Programação - Curso CompletoAlgoritmos e Técnicas de Programação - Curso Completo
Algoritmos e Técnicas de Programação - Curso Completo
thomasdacosta
 
Linguagem logo
Linguagem logoLinguagem logo
Linguagem logo
wanluli
 
Tarefa 5 superlogo 3.0
Tarefa 5 superlogo 3.0Tarefa 5 superlogo 3.0
Tarefa 5 superlogo 3.0Victor Martins
 
Programação Estruturada 2 - Aula 01
Programação Estruturada 2 - Aula 01Programação Estruturada 2 - Aula 01
Programação Estruturada 2 - Aula 01
thomasdacosta
 
Lógica de Programação - Unimep/Pronatec - Aula08
Lógica de Programação - Unimep/Pronatec - Aula08Lógica de Programação - Unimep/Pronatec - Aula08
Lógica de Programação - Unimep/Pronatec - Aula08
André Phillip Bertoletti
 
Fundamentos de logica de programação
Fundamentos de logica de programaçãoFundamentos de logica de programação
Fundamentos de logica de programação
Rogerio de Moraes
 
Programação Estruturada 2 - Curso Completo
Programação Estruturada 2 - Curso CompletoProgramação Estruturada 2 - Curso Completo
Programação Estruturada 2 - Curso Completo
thomasdacosta
 
Programação Estruturada 2 - Aula 06
Programação Estruturada 2 - Aula 06Programação Estruturada 2 - Aula 06
Programação Estruturada 2 - Aula 06
thomasdacosta
 
As cinco etapas da programação
As cinco etapas da programaçãoAs cinco etapas da programação
As cinco etapas da programaçãoClausia Antoneli
 
tarefa 4 superlogo 3.0
tarefa 4 superlogo 3.0tarefa 4 superlogo 3.0
tarefa 4 superlogo 3.0Victor Martins
 
Algoritmos e Técnicas de Programação - Aula 01
Algoritmos e Técnicas de Programação - Aula 01Algoritmos e Técnicas de Programação - Aula 01
Algoritmos e Técnicas de Programação - Aula 01
thomasdacosta
 
Aula 03 estrutura de seleção
Aula 03   estrutura de seleçãoAula 03   estrutura de seleção
Aula 03 estrutura de seleçãoTácito Graça
 
Test-driven Development
Test-driven DevelopmentTest-driven Development
Test-driven Development
Denis L Presciliano
 
Algoritmos e Técnicas de Programação - Aula 02
Algoritmos e Técnicas de Programação - Aula 02Algoritmos e Técnicas de Programação - Aula 02
Algoritmos e Técnicas de Programação - Aula 02
thomasdacosta
 
Conceitos e técnicas de programação introdução
Conceitos e técnicas de programação introduçãoConceitos e técnicas de programação introdução
Conceitos e técnicas de programação introduçãoRobson Ferreira
 
Conceitos Fundamentais de Programacao
Conceitos Fundamentais de ProgramacaoConceitos Fundamentais de Programacao
Conceitos Fundamentais de Programacao
Jorge Cardoso
 

Mais procurados (20)

Tutorial kturtle iniciante
Tutorial kturtle inicianteTutorial kturtle iniciante
Tutorial kturtle iniciante
 
Algoritmos e Técnicas de Programação - Aula 04
Algoritmos e Técnicas de Programação - Aula 04Algoritmos e Técnicas de Programação - Aula 04
Algoritmos e Técnicas de Programação - Aula 04
 
Algoritmos e Técnicas de Programação - Curso Completo
Algoritmos e Técnicas de Programação - Curso CompletoAlgoritmos e Técnicas de Programação - Curso Completo
Algoritmos e Técnicas de Programação - Curso Completo
 
Linguagem logo
Linguagem logoLinguagem logo
Linguagem logo
 
Tarefa 5 superlogo 3.0
Tarefa 5 superlogo 3.0Tarefa 5 superlogo 3.0
Tarefa 5 superlogo 3.0
 
Programação Estruturada 2 - Aula 01
Programação Estruturada 2 - Aula 01Programação Estruturada 2 - Aula 01
Programação Estruturada 2 - Aula 01
 
Aula 12 - Começando a programar : repetição
Aula 12 - Começando a programar : repetiçãoAula 12 - Começando a programar : repetição
Aula 12 - Começando a programar : repetição
 
Lógica de Programação - Unimep/Pronatec - Aula08
Lógica de Programação - Unimep/Pronatec - Aula08Lógica de Programação - Unimep/Pronatec - Aula08
Lógica de Programação - Unimep/Pronatec - Aula08
 
Fundamentos de logica de programação
Fundamentos de logica de programaçãoFundamentos de logica de programação
Fundamentos de logica de programação
 
Programação Estruturada 2 - Curso Completo
Programação Estruturada 2 - Curso CompletoProgramação Estruturada 2 - Curso Completo
Programação Estruturada 2 - Curso Completo
 
Programação Estruturada 2 - Aula 06
Programação Estruturada 2 - Aula 06Programação Estruturada 2 - Aula 06
Programação Estruturada 2 - Aula 06
 
Aula 14 - Funções: não duplique seu código
Aula 14 - Funções: não duplique seu códigoAula 14 - Funções: não duplique seu código
Aula 14 - Funções: não duplique seu código
 
As cinco etapas da programação
As cinco etapas da programaçãoAs cinco etapas da programação
As cinco etapas da programação
 
tarefa 4 superlogo 3.0
tarefa 4 superlogo 3.0tarefa 4 superlogo 3.0
tarefa 4 superlogo 3.0
 
Algoritmos e Técnicas de Programação - Aula 01
Algoritmos e Técnicas de Programação - Aula 01Algoritmos e Técnicas de Programação - Aula 01
Algoritmos e Técnicas de Programação - Aula 01
 
Aula 03 estrutura de seleção
Aula 03   estrutura de seleçãoAula 03   estrutura de seleção
Aula 03 estrutura de seleção
 
Test-driven Development
Test-driven DevelopmentTest-driven Development
Test-driven Development
 
Algoritmos e Técnicas de Programação - Aula 02
Algoritmos e Técnicas de Programação - Aula 02Algoritmos e Técnicas de Programação - Aula 02
Algoritmos e Técnicas de Programação - Aula 02
 
Conceitos e técnicas de programação introdução
Conceitos e técnicas de programação introduçãoConceitos e técnicas de programação introdução
Conceitos e técnicas de programação introdução
 
Conceitos Fundamentais de Programacao
Conceitos Fundamentais de ProgramacaoConceitos Fundamentais de Programacao
Conceitos Fundamentais de Programacao
 

Semelhante a portugol

Conceito de funçao e modularizaçao
Conceito de funçao e modularizaçaoConceito de funçao e modularizaçao
Conceito de funçao e modularizaçao
ssuserc6132d
 
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃOCURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
Microsoft
 
Programar Em Pascal
Programar Em PascalProgramar Em Pascal
Programar Em Pascal
Pepe Rocker
 
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptxAula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
aronoliveira3
 
Introducao a Lógica de Programação
Introducao a Lógica de ProgramaçãoIntroducao a Lógica de Programação
Introducao a Lógica de Programação
Marcelo Rodrigues
 
Exercicios facebook
Exercicios facebookExercicios facebook
Exercicios facebook
António Barroso
 
Algoritmos - Aula 07 A - Lacos
Algoritmos - Aula 07 A - LacosAlgoritmos - Aula 07 A - Lacos
Algoritmos - Aula 07 A - Lacos
Rodrigo Kiyoshi Saito
 
Lógica de Programação - Unimep/Pronatec - Aula03
Lógica de Programação - Unimep/Pronatec - Aula03Lógica de Programação - Unimep/Pronatec - Aula03
Lógica de Programação - Unimep/Pronatec - Aula03
André Phillip Bertoletti
 
Lógica de Programação - Unimep/Pronatec - Aula06
Lógica de Programação - Unimep/Pronatec - Aula06Lógica de Programação - Unimep/Pronatec - Aula06
Lógica de Programação - Unimep/Pronatec - Aula06
André Phillip Bertoletti
 
Lógica de Programação
Lógica de ProgramaçãoLógica de Programação
Lógica de Programação
Adao Chiavelli
 
Algoritmos - Aula 13 A - Lacos em C
Algoritmos - Aula 13 A - Lacos em CAlgoritmos - Aula 13 A - Lacos em C
Algoritmos - Aula 13 A - Lacos em C
Rodrigo Kiyoshi Saito
 
Aula05
Aula05Aula05
2.0_Programacao_PRG29002_-_Pseudocódigo.pdf
2.0_Programacao_PRG29002_-_Pseudocódigo.pdf2.0_Programacao_PRG29002_-_Pseudocódigo.pdf
2.0_Programacao_PRG29002_-_Pseudocódigo.pdf
JustinoFontes
 
Introdução a programação
Introdução a programaçãoIntrodução a programação
Introdução a programação
Edu Queiroz
 
Lógica de programação 1
Lógica de programação 1Lógica de programação 1
Lógica de programação 1Diego Rodrigues
 
Lógica de Programação - Unimep/Pronatec - Aula10
Lógica de Programação - Unimep/Pronatec - Aula10Lógica de Programação - Unimep/Pronatec - Aula10
Lógica de Programação - Unimep/Pronatec - Aula10
André Phillip Bertoletti
 
Curso de python capítulo 1 - introdução
Curso de python   capítulo 1 - introduçãoCurso de python   capítulo 1 - introdução
Curso de python capítulo 1 - introdução
Ricardo Fahham
 
Linguagem Logo apresentação
Linguagem Logo apresentaçãoLinguagem Logo apresentação
Linguagem Logo apresentaçãocarcamano3
 

Semelhante a portugol (20)

Conceito de funçao e modularizaçao
Conceito de funçao e modularizaçaoConceito de funçao e modularizaçao
Conceito de funçao e modularizaçao
 
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃOCURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
 
Programar Em Pascal
Programar Em PascalProgramar Em Pascal
Programar Em Pascal
 
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptxAula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
 
Introducao a Lógica de Programação
Introducao a Lógica de ProgramaçãoIntroducao a Lógica de Programação
Introducao a Lógica de Programação
 
Exercicios facebook
Exercicios facebookExercicios facebook
Exercicios facebook
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Algoritmos - Aula 07 A - Lacos
Algoritmos - Aula 07 A - LacosAlgoritmos - Aula 07 A - Lacos
Algoritmos - Aula 07 A - Lacos
 
Lógica de Programação - Unimep/Pronatec - Aula03
Lógica de Programação - Unimep/Pronatec - Aula03Lógica de Programação - Unimep/Pronatec - Aula03
Lógica de Programação - Unimep/Pronatec - Aula03
 
Lógica de Programação - Unimep/Pronatec - Aula06
Lógica de Programação - Unimep/Pronatec - Aula06Lógica de Programação - Unimep/Pronatec - Aula06
Lógica de Programação - Unimep/Pronatec - Aula06
 
Lógica de Programação
Lógica de ProgramaçãoLógica de Programação
Lógica de Programação
 
Algoritmos - Aula 13 A - Lacos em C
Algoritmos - Aula 13 A - Lacos em CAlgoritmos - Aula 13 A - Lacos em C
Algoritmos - Aula 13 A - Lacos em C
 
Aula05
Aula05Aula05
Aula05
 
2.0_Programacao_PRG29002_-_Pseudocódigo.pdf
2.0_Programacao_PRG29002_-_Pseudocódigo.pdf2.0_Programacao_PRG29002_-_Pseudocódigo.pdf
2.0_Programacao_PRG29002_-_Pseudocódigo.pdf
 
Introdução a programação
Introdução a programaçãoIntrodução a programação
Introdução a programação
 
Lógica de programação 1
Lógica de programação 1Lógica de programação 1
Lógica de programação 1
 
Lógica de Programação - Unimep/Pronatec - Aula10
Lógica de Programação - Unimep/Pronatec - Aula10Lógica de Programação - Unimep/Pronatec - Aula10
Lógica de Programação - Unimep/Pronatec - Aula10
 
Curso de python capítulo 1 - introdução
Curso de python   capítulo 1 - introduçãoCurso de python   capítulo 1 - introdução
Curso de python capítulo 1 - introdução
 
Modulo02
Modulo02Modulo02
Modulo02
 
Linguagem Logo apresentação
Linguagem Logo apresentaçãoLinguagem Logo apresentação
Linguagem Logo apresentação
 

portugol

  • 1. 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
  • 2. 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
  • 3. 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
  • 4. 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
  • 5. 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
  • 6. 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