Este documento apresenta um guia sobre funções e estruturas de repetição em Portugol, incluindo: 1) As funções MOD e DIV para resto e quociente de divisão; 2) Laços como FOR e WHILE para repetir instruções; 3) A função SWITCH/CASE para escolhas múltiplas; 4) Vetores para armazenar múltiplos dados do mesmo tipo. Exemplos de algoritmos são fornecidos para ilustrar o uso dessas estruturas.
Oitava aula de Lógica de Programação da turma de Técnico em Informática para Internet, do curso Pronatec/UNIMEP, realizada no segundo semestre de 2014.
Aqui são apresentados as técnicas de Desenvolvimento Dirigido a Testes. Simples e prático.
/**Depois que entrei no mundo Java, começei a procurar por conteúdo na internet para estudar, então me deparei com um ótimo site, http://www.argonavis.com.br, de um grande cara chamado Helder Rocha, que disponibiliza este mesmo conteúdo em seu site também. Obrigado pela ajuda a comunidade.*/
Slides do primeiro dia do Workshop (intensivo :) ) sobre Introdução à Programação de Dispositivos Móveis (Google Android, Apple iPhone, iPod Touch e iPad)
Oitava aula de Lógica de Programação da turma de Técnico em Informática para Internet, do curso Pronatec/UNIMEP, realizada no segundo semestre de 2014.
Aqui são apresentados as técnicas de Desenvolvimento Dirigido a Testes. Simples e prático.
/**Depois que entrei no mundo Java, começei a procurar por conteúdo na internet para estudar, então me deparei com um ótimo site, http://www.argonavis.com.br, de um grande cara chamado Helder Rocha, que disponibiliza este mesmo conteúdo em seu site também. Obrigado pela ajuda a comunidade.*/
Slides do primeiro dia do Workshop (intensivo :) ) sobre Introdução à Programação de Dispositivos Móveis (Google Android, Apple iPhone, iPod Touch e iPad)
Terceira aula de Lógica de Programação da turma de Técnico em Informática para Internet, do curso Pronatec/UNIMEP, realizada no segundo semestre de 2014.
Décima aula de Lógica de Programação da turma de Técnico em Informática para Internet, do curso Pronatec/UNIMEP, realizada no segundo semestre de 2014.
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: N0; => 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