SlideShare uma empresa Scribd logo
1 de 9
Baixar para ler offline
GUIA PRÁTICO PARA CRIAR ALGORITMOS
1 - INTRODUÇÃO
Este guia tem por objetivo ajudá-lo a entender e desenvolver a lógica de programação e criar algoritmos,
propondo formulários, passos e dicas a serem seguidos. Este material não se propõe a ser uma apostila
ou curso completo de algoritmos e lógica de programação, visto que não inclui os fundamentos de
algoritmos, devendo ser usado apenas como material complementar às notas de aula, apostila ou livro.
2 – NOTAÇÃO UTILIZADA
Neste material, onde você encontrar algo entre < > significa que você deve substituir tudo (inclusive o < >
) pelo que que está indicado entre os sinais < >. Onde você encontrar algo entre [ ] indica que este
fragmento é opcional.
A maioria das estruturas será mostrada na forma de formulários a serem preenchidos. Após preencher
todo o formulário, você terá o seu algoritmo completo, devendo descartar apenas as mensagens
instrutivas que aparecem em letras pequenas.
3 - ESTRUTURA GERAL DE UM ALGORITMO
Todo algoritmo tem a seguinte estrutura:
Algoritmo “nome do seu algoritmo”
Variáveis
<nome da variável>,<nome da variável>,...: <tipo>
<nome da variável>,<nome da variável>,...: <tipo>
<nome da variável>,<nome da variável>,...: <tipo>
...
Inicio
<comandos>
...
...
...
FimAlgoritmo
Repare que a figura acima é um formulário que deve ser preenchido.
 Na seção variáveis você especifica o(s) nome(s) da(s) variável(is), separados por vírgula, e no
final, o tipo da(s) variáveis (vide notas de aulas). As regras para criação de nomes de variáveis
devem ser respeitadas (vide notas de aula).
 Na seção inferior, entre as palavras “Inicio” e “FimAlgoritmo”, você coloca os comandos do seu
algoritmo, um abaixo do outro. Esses comandos serão estruturas seqüenciais, condicionais ou
de repetição
4 – PASSOS BÁSICOS PARA CRIAÇÂO DE ALGORITMOS
1. Ler atentamente o problema, procurando identificar os dados (variáveis) de entrada,
processamento e saída e o tipo de dados de cada um (inteiro, real, caracter, string ou lógico).
Normalmente haverá uma variável para cada dado encontrado.
o OBS: Não se preocupe se não conseguir identificar todos os dados logo de início. À
proporção que for criando o algoritmo poderá incluir novas declarações de variáveis
2. Fazer o esboço inicial de solução do problema
o Você pode fazer esse esboço inicial usando linguagem natural, fluxograma ou diagrama
da Chapin. Caso o problema envolva cálculos, pesquise como esses cálculos são feitos.
3. Identificar as estruturas (seqüenciais, condicionais e de repetição) que serão necessárias para
resolver o problema e incluí-las no seu esboço
4. Organizar a sua solução (esboço) na forma de algoritmo. Para obter ajuda para criar as
estruturas de repetição, consulte o item 6
o Declarar as variáveis encontradas, na seção “variáveis”
o Escrever os comandos entre o “Inicio” e “FimAlgoritmo”
5 - COMANDOS NORMALMENTE USADOS EM CADA SEÇÃO DO ALGORITMO
Os algoritmos (programas) são feitos para processar dados, portanto, ao criar um algoritmo, você deve
sempre lembrar das três operações básicas do processamento de dados: ENTRADA,
PROCESSAMENTO e SAÍDA. Normalmente o seu algoritmo terá uma ou mais seções de comandos
relacionados a essas três operações aparecendo uma ou mais vezes no mesmo.
A ordem mais comum dos comandos num algoritmo é a que está descrita abaixo, porém não é uma
regra geral.
Comandos de entrada de dados
Comandos de processamento de dados
Comandos de saída de dados
COMANDOS DE ENTRADA DE DADOS
A seção de entrada de dados normalmente é a primeira que aparece no seu algoritmo, logo após o
“Inicio”, mas pode aparecer em outros pontos do algoritmo também. Na seção de entrada sempre
teremos o seguinte par de comandos para cada dado (variável) de entrada:
Escreva(“<mensagem>: ”)
Leia(<variável>)
 A <mensagem> deve ser uma mensagem bem explicativa para o usuário, informando o que ele
deve digitar. Exemplos:
o “Digite o seu nome: “
o “Digite o número a ser calculado o fatorial: “
o “Digite a nota 1: “ (caso tenha mais de uma nota como dado de entrada)
 Os comandos de entrada podem estar dentro de uma estrutura de repetição (se algum dado de
entrada existir em quantidade maior que 1. Exemplo: dez números, notas de 30 alunos, etc.) ou
dentro de uma estrutura condicional (se houver uma condição para serem solicitados)
COMANDOS DE PROCESSAMENTO DE DADOS
Os comandos de processamento de dados normalmente aparecem APÓS a entrada de dados e usam os
dados de entrada para obter dados (variáveis) de saída. Os comandos normalmente usados para
processamento são:
 Comandos de atribuição: <variável>  <expressão de valor>
 Comandos em sequência (estrutura seqüencial)
 Estruturas de condição
 Estruturas de repetição
 Estruturas combinadas
COMANDOS DE SAÍDA DE DADOS
Os comandos de saída de dados normalmente aparecem após os de processamento, mas algumas
vezes podem estar junto com os de processamento (numa estrutura de repetição ou condicional), e
sempre estão após os e entrada de dados. O comando mais usado na saída é o comando Escreva:
Escreva(“<mensagem>: ”,<variável ou expressão >)
 A <mensagem> também deve ser uma mensagem bem explicativa para o usuário, informando o
resultado que está sendo apresentado. Exemplos:
o “O seu nome é XXXXX”“
o “O fatorial do número digitado é: XXX“
o “A média das notas digitadas é: XXX”
Esse par se repete p/
cada dado (variável) de
entrada
6 – GABARITOS (FORMULÁRIOS) PARA CRIAÇÃO DE ESTRUTURAS
6.1 – ESTRUTURA CONDICIONAL
Quando usar: sempre que encontrar um ou mais comandos que só deverão ser executados caso uma
condição seja verdadeira
Condição
SE _________________________ ENTAO
Comandos a serem executados caso a condição seja verdadeira:
[ SENÃO
Comandos a serem executados caso a condição seja falsa:
]
FIMSE
 Ao lado do SE, coloque a condição a ser testada. Essa condição deve ser uma expressão lógica
que referencia alguma variável atualizada antes do comando SE
 Caso a condição seja verdadeira, o primeiro bloco de comandos será executado (comandos a
serem executados caso a condição seja verdadeira)
 O bloca SENAO (e os comandos a serem executados caso a condição seja falsa) é opcional e
só será executado caso a condição seja falsa
Exemplo: Algoritmo para verificar se um número digitado é par.
algoritmo "soma numeros"
var
num: inteiro
inicio
Escreval("Digite um número: ")
Leia(num)
Se num mod 2 = 0 entao
Escreval(“O número digitado é par”)
Senão
Escreval(“O número digitado é impar”)
FimSe
Fimalgoritmo
6.2 - ESTRUTURAS DE REPETIÇÃO
Para todas as estruturas de repetição na seguir, valem as seguintes instruções:
 Na seção “Comandos a serem executados antes da repetição”, coloque os comandos que
não precisam ser repetidos e precisam ser executados ANTES da repetição. Normalmente são
comandos de preparo para entrada na repetição, inicialização de variáveis acumuladoras,
variáveis de resultado ou contadores, etc.
 Na seção “Comandos a repetir”, coloque os comandos que devem ser repetidos. Esses
comandos podem ser estruturas seqüenciais simples ou outras estruturas (condicionais ou de
repetição).
 Na seção “Comandos a serem executados depois da repetição”, coloque os comandos que
não precisam ser repetidos e precisam ser executados DEPOIS da repetição. Normalmente são
apresentação de resultados (variáveis de saída) processados na repetição.
6.2.1 - REPETIÇÃO CONTADA (PARA)
Quando usar: quando você notar que a repetição deverá ocorrer uma quantidade determinado de vezes
(essa quantidade pode ser fixa ou determinada por dados de entrada que o usuário irá digitar) ou quando
há claramente a necessidade de contagem numérica progressiva ou regressiva, com incremento
qualquer.
Comandos a serem executados antes da repetição:
Variável int Valor inicial Valor final incremento
Para ______ de __________ até _____ [passo ______ ] faca
Comandos a repetir:
FimPara
Comandos a serem executados depois da repetição:
Na seção “Para ... de ... até ... faca”, preencha os espaços em branco com:
 A variável tipo inteiro, que será o contador (variável auxiliar). Ela deve ter sido declarada
 O valor inicial e o valor final da contagem da repetição. Pode ser um número constante (ex: 1),
uma variável (ex: aux) ou uma expressão (aux + 1), desde que seja do tipo inteiro.
 O incremento da contagem, que é o valor que será adicionado à variável de contagem cada
vez que a execução chega no FimPara
o É OPCIONAL: Se o incremento desejado for 1 você pode retirar o “passo” do comando
e não informar o valor do incremento.
o Se o valor final for menor que o valor inicial (contagem regressiva), o passo (incremento)
deve ser um valor inteiro negativo
Exemplo: Criar algoritmo para contar de 2 a 2, sendo que o início e final da contagem será informado
pelo usuário.  Neste caso a palavra “contar” nos dá certeza que a repetição é contada
Algoritmo “contagem 2 a 2, destacando múltiplos de 5”
Var
Cont, inicio, final: inteiro
Inicio
Escreval(“Algoritmo para contar, 2 a 2”)
Escreva(“Digite o número p/ início da contagem: “)
Leia(inicio)
Escreva(“Digite o número p/ final da contagem: “)
Leia(final)
Escreval(“Iniciando contagem...”)
Para cont de inicio ate final passo 2 faca
Escreva(“Contando...”,cont)
Se cont mod 5 = 0 entao
Escreval(“ (múltiplo de 5)”)
Senão
Escreval(“ “)
FimSe
FimPara
Escreval(“Fim!”)
FimAlgoritmo
6.2.2 - REPETIÇÃO CONDICIONAL COM TESTE NO INÍCIO (ENQUANTO)
Quando usar: quando a repetição não se enquadrar no caso da repetição contada e a primeira
execução dos comandos só deve ser executados se uma condição for previamente testada e verdadeira
(os comandos só serão executados pelo menos uma vez se a condição for verdadeira)
Comandos a serem executados antes da repetição:
Condição para iniciar e continuar a repetição:
ENQUANTO _________________________
Comandos a repetir:
FIMENQUANTO
Comandos a serem executados depois da repetição:
Ao lado da palavra “ENQUANTO”, coloque a condição para iniciar e continuar a repetição. Essa
condição deve ser uma expressão lógica que foi previamente preparada na seção “Comandos a serem
executados antes da repetição” e que será atualizada na seção “Comandos a repetir”, através da
alteração do valor de alguma variável que faz parte da expressão lógica.
OBS: Essa condição é testada uma vez no comando enquanto e a cada vez que a execução chega no
comando FimEnquanto. Se o resultado for falso, a execução continua no comando após o FimEnquanto.
Exemplo: Criar um algoritmo para somar números digitados pelo usuário. Ao digitar o número zero a
soma deve ser apresentada
Solução (usando os passos básicos para criação de algoritmos (item 4) )
1. Identificar dados de entrada, processamento e saída:
ENTRADA PROCESSAMENTO SAÍDA
num (inteiro) soma (inteiro) soma (inteiro)
2. Fazer esboço inicial da solução do problema:
1. Solicitar número e aguardar digitação do mesmo (variável num)
2. Acumular o número digitado na memória (variável soma)
3. Se o número digitado não for zero, voltar ao passo 1
4. Senão, mostrar o valor acumulado (variável soma)
3. Neste caso sabemos que precisaremos de uma estrutura de repetição porque o algoritmo
menciona “números digitados pelo usuário”. Como é mais de um número, precisaremos repetir
um comando de leitura de dados. Como não sabemos QUANTOS números o usuário irá digitar,
então a repetição será condicional e pode ser com teste no inicio ou no final. Podemos notar que
haverá repetição também observando que no esboço da solução há a expressão “voltar ao
passo passo 1”. Os passos do esboço inicial que serão repetidos serão os passos 1 e 2, portanto
os comandos relativos a eles ficarão na seção “Comandos a repetir”
4. Organizar a solução na forma de algoritmo:
algoritmo "soma numeros"
var
num,soma: real
inicio
Escreval("Algoritmo para somar números.")
num<-1
Enquanto num<>0 faca
Escreva("Numero a somar (zero encerra): ")
Leia(num)
soma<-soma+num
FimEnquanto
Escreva("A soma dos números digitados é: ",soma)
fimalgoritmo
6.2.3 - REPETIÇÃO CONDICIONAL COM TESTE NO FINAL (REPITA)
Quando usar: quando a repetição não se enquadrar no caso da repetição contada e os comandos
devam ser executados PELO MENOS UMA VEZ, MESMO QUE A CONDIÇÃO PARA REPETIÇÃO NÃO
SEJA SATISFATÓRIA.
Comandos a serem executados antes da repetição:
REPITA
Comandos a repetir:
Condição para parar a repetição:
ATÉ ___________________
Comandos a serem executados depois da repetição:
Ao lado da palavra “ATÉ”, coloque a condição para PARAR a repetição. Essa condição deve ser uma
expressão lógica que foi previamente atualizada na seção “Comandos a repetir” e que será atualizada na
seção “Comandos a repetir”, através da alteração do valor de alguma variável que faz parte da
expressão lógica.
OBS: Essa condição é testada somente APÓS os comandos a repetir. Por isso os comandos a repetir
serão executados sempre, pelo menos uma vez.
Exemplo: algoritmo anterior reescrito com a estrutura REPITA:
algoritmo "soma numeros"
var
num,soma: real
inicio
Escreval("Algoritmo para somar números.")
Repita
Escreva("Numero a somar (zero encerra): ")
Leia(num)
soma<-soma+num
Ate num=0
Escreva("A soma dos números digitados é: ",soma)
fimalgoritmo
Note que a estrutura REPITA se adequou melhor a esse problema, visto que pelo menos um número
deve ser digitado, e que, como não há mais condição para entrar na repetição, não foi mais necessário o
comando “num <- 0” para preparar a condição de repetição
JOGO: QUEBRA-CABEÇA DE ALGORITMOS
Regra básica: imprimir e recortar as linhas de instrução de cada algoritmo. Embaralhar as linhas. O aluno deverá colocar em ordem.
Sugestão de uso:
 Imprimir uma cópia de cada algoritmo e recortar. Os algoritmos são numerados para facilitar a identificação.
 Dividir a turma em equipes e dar um conjunto de peças de cada algoritmo (embaralhadas) para cada equipe. Cada equipe deverá montar
o seu algoritmo de acordo com a regra básica.
 Avaliar a montagem do algoritmo de cada equipe sendo que a equipe que montar o algoritmo em menor tempo ganha marca 10 pontos, a
segunda 9 pontos e assim por diante.
 A equipe que terminar, recebe outro algoritmo que ainda não tenha sido feito por ela
Algoritmo “contagem regressiva” 1
Variaveis 1
Contagem: inteiro 1
Inicio 1
Para contagem de 10 ate 1 passo -1 faca 1
Escreval(contagem) 1
FimPara 1
Escreva “Fogo!” 1
FimAlgoritmo 1
Algoritmo “maioridade” 2
Variáveis 2
Idade: real 2
Inicio 2
Escreva(“Digite a sua idade: “) 2
Leia(idade) 2
Se idade<18 2
Escreval(“Você é menor de idade”) 2
Senão 2
Escreval(“Você é maior de idade”) 2
FimSe 2
FimAlgoritmo 2

Mais conteúdo relacionado

Mais procurados

Lista de exercícios resolvidos
Lista de exercícios resolvidosLista de exercícios resolvidos
Lista de exercícios resolvidosCrishna Irion
 
Aula 02 - Escolha caso
Aula 02 - Escolha casoAula 02 - Escolha caso
Aula 02 - Escolha casoEder Samaniego
 
Lógica de Programação - Algoritmos
Lógica de Programação - AlgoritmosLógica de Programação - Algoritmos
Lógica de Programação - AlgoritmosRoney Sousa
 
Lista de exercicios vetores, matrizes, registros e sub-algoritmos
Lista de exercicios   vetores, matrizes, registros e sub-algoritmosLista de exercicios   vetores, matrizes, registros e sub-algoritmos
Lista de exercicios vetores, matrizes, registros e sub-algoritmosMauro Pereira
 
Aula Lógica de Programação - cap1
Aula Lógica de Programação - cap1 Aula Lógica de Programação - cap1
Aula Lógica de Programação - cap1 Cloves da Rocha
 
Aula 6 - Estruturas de seleção encadeada - parte 1
Aula 6 - Estruturas de seleção encadeada - parte 1Aula 6 - Estruturas de seleção encadeada - parte 1
Aula 6 - Estruturas de seleção encadeada - parte 1Pacc UAB
 
Algoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoAlgoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoMauro Pereira
 
Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Mariana Camargo
 
Algoritmos - Lógica de Programação
Algoritmos - Lógica de ProgramaçãoAlgoritmos - Lógica de Programação
Algoritmos - Lógica de ProgramaçãoElaine Cecília Gatto
 
Introdução à Programação
Introdução à ProgramaçãoIntrodução à Programação
Introdução à ProgramaçãoMario Sergio
 
Aula 5 - Estruturas de seleção simples e composta - parte 1
Aula 5 - Estruturas de seleção simples e composta - parte 1Aula 5 - Estruturas de seleção simples e composta - parte 1
Aula 5 - Estruturas de seleção simples e composta - parte 1Pacc UAB
 

Mais procurados (20)

Lista de exercícios resolvidos
Lista de exercícios resolvidosLista de exercícios resolvidos
Lista de exercícios resolvidos
 
Aula 02 - Escolha caso
Aula 02 - Escolha casoAula 02 - Escolha caso
Aula 02 - Escolha caso
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Aula 3 algoritmos
Aula 3   algoritmosAula 3   algoritmos
Aula 3 algoritmos
 
Lógica de Programação - Algoritmos
Lógica de Programação - AlgoritmosLógica de Programação - Algoritmos
Lógica de Programação - Algoritmos
 
Aula01 - Logica de Programação
Aula01 - Logica de ProgramaçãoAula01 - Logica de Programação
Aula01 - Logica de Programação
 
Lista de exercicios vetores, matrizes, registros e sub-algoritmos
Lista de exercicios   vetores, matrizes, registros e sub-algoritmosLista de exercicios   vetores, matrizes, registros e sub-algoritmos
Lista de exercicios vetores, matrizes, registros e sub-algoritmos
 
Aula Lógica de Programação - cap1
Aula Lógica de Programação - cap1 Aula Lógica de Programação - cap1
Aula Lógica de Programação - cap1
 
Algoritmos em portugol
Algoritmos em portugolAlgoritmos em portugol
Algoritmos em portugol
 
Aula 6 - Estruturas de seleção encadeada - parte 1
Aula 6 - Estruturas de seleção encadeada - parte 1Aula 6 - Estruturas de seleção encadeada - parte 1
Aula 6 - Estruturas de seleção encadeada - parte 1
 
Introdução a python
Introdução a pythonIntrodução a python
Introdução a python
 
Algoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoAlgoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigo
 
Algoritmo aula 01-f
Algoritmo   aula 01-fAlgoritmo   aula 01-f
Algoritmo aula 01-f
 
Python - Introdução
Python - IntroduçãoPython - Introdução
Python - Introdução
 
Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }
 
Algoritmos - Lógica de Programação
Algoritmos - Lógica de ProgramaçãoAlgoritmos - Lógica de Programação
Algoritmos - Lógica de Programação
 
Introdução à Programação
Introdução à ProgramaçãoIntrodução à Programação
Introdução à Programação
 
Visualg
VisualgVisualg
Visualg
 
Aula 5 - Estruturas de seleção simples e composta - parte 1
Aula 5 - Estruturas de seleção simples e composta - parte 1Aula 5 - Estruturas de seleção simples e composta - parte 1
Aula 5 - Estruturas de seleção simples e composta - parte 1
 
Manual de portugol
Manual de portugolManual de portugol
Manual de portugol
 

Destaque

Lista de exercicios algoritmos com pseudocodigo
Lista de exercicios   algoritmos com pseudocodigoLista de exercicios   algoritmos com pseudocodigo
Lista de exercicios algoritmos com pseudocodigoMauro Pereira
 
Algoritmos e lp parte 2-fundamentos
Algoritmos e lp parte 2-fundamentosAlgoritmos e lp parte 2-fundamentos
Algoritmos e lp parte 2-fundamentosMauro Pereira
 
Redes 4 endereçamento
Redes 4 endereçamentoRedes 4 endereçamento
Redes 4 endereçamentoMauro Pereira
 
Guia para traducao algoritmos x l ps
Guia para traducao algoritmos x l psGuia para traducao algoritmos x l ps
Guia para traducao algoritmos x l psMauro Pereira
 
Lista de exercicios 01 introdução
Lista de exercicios 01 introduçãoLista de exercicios 01 introdução
Lista de exercicios 01 introduçãoMauro Pereira
 
Análise e desenvolvimento de algoritmo para operação em bolsa de valores base...
Análise e desenvolvimento de algoritmo para operação em bolsa de valores base...Análise e desenvolvimento de algoritmo para operação em bolsa de valores base...
Análise e desenvolvimento de algoritmo para operação em bolsa de valores base...Rodrigo Ferreira
 
4. Introdução à linguagem de programação Java – Fundamentos de Programação
4. Introdução à linguagem de programação Java – Fundamentos de Programação4. Introdução à linguagem de programação Java – Fundamentos de Programação
4. Introdução à linguagem de programação Java – Fundamentos de ProgramaçãoManuel Menezes de Sequeira
 
2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...
2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...
2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...Manuel Menezes de Sequeira
 
Algoritmos e lp parte 1-introdução
Algoritmos e lp parte 1-introduçãoAlgoritmos e lp parte 1-introdução
Algoritmos e lp parte 1-introduçãoMauro Pereira
 
Lista de exercicios 02 hardware
Lista de exercicios 02 hardwareLista de exercicios 02 hardware
Lista de exercicios 02 hardwareMauro Pereira
 
Algoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registrosAlgoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registrosMauro Pereira
 

Destaque (11)

Lista de exercicios algoritmos com pseudocodigo
Lista de exercicios   algoritmos com pseudocodigoLista de exercicios   algoritmos com pseudocodigo
Lista de exercicios algoritmos com pseudocodigo
 
Algoritmos e lp parte 2-fundamentos
Algoritmos e lp parte 2-fundamentosAlgoritmos e lp parte 2-fundamentos
Algoritmos e lp parte 2-fundamentos
 
Redes 4 endereçamento
Redes 4 endereçamentoRedes 4 endereçamento
Redes 4 endereçamento
 
Guia para traducao algoritmos x l ps
Guia para traducao algoritmos x l psGuia para traducao algoritmos x l ps
Guia para traducao algoritmos x l ps
 
Lista de exercicios 01 introdução
Lista de exercicios 01 introduçãoLista de exercicios 01 introdução
Lista de exercicios 01 introdução
 
Análise e desenvolvimento de algoritmo para operação em bolsa de valores base...
Análise e desenvolvimento de algoritmo para operação em bolsa de valores base...Análise e desenvolvimento de algoritmo para operação em bolsa de valores base...
Análise e desenvolvimento de algoritmo para operação em bolsa de valores base...
 
4. Introdução à linguagem de programação Java – Fundamentos de Programação
4. Introdução à linguagem de programação Java – Fundamentos de Programação4. Introdução à linguagem de programação Java – Fundamentos de Programação
4. Introdução à linguagem de programação Java – Fundamentos de Programação
 
2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...
2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...
2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...
 
Algoritmos e lp parte 1-introdução
Algoritmos e lp parte 1-introduçãoAlgoritmos e lp parte 1-introdução
Algoritmos e lp parte 1-introdução
 
Lista de exercicios 02 hardware
Lista de exercicios 02 hardwareLista de exercicios 02 hardware
Lista de exercicios 02 hardware
 
Algoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registrosAlgoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registros
 

Semelhante a Guia prático para criar algoritmos

Algoritmo estruturado
Algoritmo estruturadoAlgoritmo estruturado
Algoritmo estruturadodasko
 
Algoritmia (Conceitos)
Algoritmia (Conceitos)Algoritmia (Conceitos)
Algoritmia (Conceitos)Sandro Lopes
 
53297189 apostila-algoritmo-e-logica-i
53297189 apostila-algoritmo-e-logica-i53297189 apostila-algoritmo-e-logica-i
53297189 apostila-algoritmo-e-logica-iEdvan Mateó
 
Algorítmo estruturado
Algorítmo estruturadoAlgorítmo estruturado
Algorítmo estruturadoNaldo Falaschi
 
Algoritmos - Aula 02 - Construcao de algoritmos
Algoritmos - Aula 02 - Construcao de algoritmosAlgoritmos - Aula 02 - Construcao de algoritmos
Algoritmos - Aula 02 - Construcao de algoritmosRodrigo Kiyoshi Saito
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmosjormad
 
Apostila de algoritimos
Apostila de algoritimosApostila de algoritimos
Apostila de algoritimosCleide Soares
 
Algoritmos 1 - Semana 2
Algoritmos 1 - Semana 2Algoritmos 1 - Semana 2
Algoritmos 1 - Semana 2Eder Samaniego
 
Aulas 13 e 14 - Algoritmos
Aulas 13 e 14 - AlgoritmosAulas 13 e 14 - Algoritmos
Aulas 13 e 14 - AlgoritmosJocelma Rios
 
Alg aula 02 - algoritmos 1 tp1
Alg   aula 02 - algoritmos 1 tp1Alg   aula 02 - algoritmos 1 tp1
Alg aula 02 - algoritmos 1 tp1Thalles Anderson
 
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdfAula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdfEizoKato
 
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdfAula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdfEizoKato
 

Semelhante a Guia prático para criar algoritmos (20)

Cap08
Cap08Cap08
Cap08
 
Cap08
Cap08Cap08
Cap08
 
Algoritmo estruturado
Algoritmo estruturadoAlgoritmo estruturado
Algoritmo estruturado
 
Algoritmia (Conceitos)
Algoritmia (Conceitos)Algoritmia (Conceitos)
Algoritmia (Conceitos)
 
53297189 apostila-algoritmo-e-logica-i
53297189 apostila-algoritmo-e-logica-i53297189 apostila-algoritmo-e-logica-i
53297189 apostila-algoritmo-e-logica-i
 
Algorítmo estruturado
Algorítmo estruturadoAlgorítmo estruturado
Algorítmo estruturado
 
Algoritmos - Aula 02 - Construcao de algoritmos
Algoritmos - Aula 02 - Construcao de algoritmosAlgoritmos - Aula 02 - Construcao de algoritmos
Algoritmos - Aula 02 - Construcao de algoritmos
 
Módulo 2 pascal
Módulo 2  pascalMódulo 2  pascal
Módulo 2 pascal
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Apostila de algoritimos
Apostila de algoritimosApostila de algoritimos
Apostila de algoritimos
 
Cap07
Cap07Cap07
Cap07
 
Cap07
Cap07Cap07
Cap07
 
Algoritmos 1 - Semana 2
Algoritmos 1 - Semana 2Algoritmos 1 - Semana 2
Algoritmos 1 - Semana 2
 
Aulas 13 e 14 - Algoritmos
Aulas 13 e 14 - AlgoritmosAulas 13 e 14 - Algoritmos
Aulas 13 e 14 - Algoritmos
 
Alg aula 02 - algoritmos 1 tp1
Alg   aula 02 - algoritmos 1 tp1Alg   aula 02 - algoritmos 1 tp1
Alg aula 02 - algoritmos 1 tp1
 
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdfAula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
 
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdfAula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
 
02 algoritmos
02 algoritmos02 algoritmos
02 algoritmos
 
Estrutura de repetição
Estrutura de repetiçãoEstrutura de repetição
Estrutura de repetição
 
Lógica de programação
Lógica de programaçãoLógica de programação
Lógica de programação
 

Mais de Mauro Pereira

Programação Web - CSS
Programação Web - CSSProgramação Web - CSS
Programação Web - CSSMauro Pereira
 
Redes 7 ferramentas para montagem de redes
Redes 7 ferramentas para montagem de redesRedes 7 ferramentas para montagem de redes
Redes 7 ferramentas para montagem de redesMauro Pereira
 
Exercicio introducao a arquitetura de computadores
Exercicio    introducao a arquitetura de computadoresExercicio    introducao a arquitetura de computadores
Exercicio introducao a arquitetura de computadoresMauro Pereira
 
Introdução à Arquitetura de Computadores
Introdução à Arquitetura de ComputadoresIntrodução à Arquitetura de Computadores
Introdução à Arquitetura de ComputadoresMauro Pereira
 
Sistemas de Numeracao
Sistemas de NumeracaoSistemas de Numeracao
Sistemas de NumeracaoMauro Pereira
 
Lógica binária, potas lógicas e circuitos lógicos
Lógica binária, potas lógicas e circuitos lógicosLógica binária, potas lógicas e circuitos lógicos
Lógica binária, potas lógicas e circuitos lógicosMauro Pereira
 
Trabalho para nota da etapa 2 2017.1
Trabalho para nota da etapa 2 2017.1Trabalho para nota da etapa 2 2017.1
Trabalho para nota da etapa 2 2017.1Mauro Pereira
 
Redes 6 equipamentos ativos da rede
Redes 6 equipamentos ativos da redeRedes 6 equipamentos ativos da rede
Redes 6 equipamentos ativos da redeMauro Pereira
 
Redes 2 padronização e arquitetura de redes
Redes 2 padronização e arquitetura de redesRedes 2 padronização e arquitetura de redes
Redes 2 padronização e arquitetura de redesMauro Pereira
 
Redes 1 introducao historico conceitos
Redes 1 introducao historico conceitosRedes 1 introducao historico conceitos
Redes 1 introducao historico conceitosMauro Pereira
 
6 softwares de manutenção
6 softwares de manutenção6 softwares de manutenção
6 softwares de manutençãoMauro Pereira
 
4.1 softwares e configurações importantes
4.1 softwares e configurações importantes4.1 softwares e configurações importantes
4.1 softwares e configurações importantesMauro Pereira
 
Redes padroes e cabeamento
Redes padroes e cabeamentoRedes padroes e cabeamento
Redes padroes e cabeamentoMauro Pereira
 
Trabalho para nota da etapa 2 2015.2
Trabalho para nota da etapa 2 2015.2Trabalho para nota da etapa 2 2015.2
Trabalho para nota da etapa 2 2015.2Mauro Pereira
 
Exercicio 1 - conceitos camadas e protocolos
Exercicio 1 - conceitos camadas e protocolosExercicio 1 - conceitos camadas e protocolos
Exercicio 1 - conceitos camadas e protocolosMauro Pereira
 
Exercicio 2 endereços, dispositivos, internet-intranet-extranet, padroes, c...
Exercicio 2   endereços, dispositivos, internet-intranet-extranet, padroes, c...Exercicio 2   endereços, dispositivos, internet-intranet-extranet, padroes, c...
Exercicio 2 endereços, dispositivos, internet-intranet-extranet, padroes, c...Mauro Pereira
 
Microprocessadores ii arquitetura
Microprocessadores ii arquiteturaMicroprocessadores ii arquitetura
Microprocessadores ii arquiteturaMauro Pereira
 
Microprocessadores ii revisão de linguagem de programação (parte2)
Microprocessadores ii revisão de linguagem de programação (parte2)Microprocessadores ii revisão de linguagem de programação (parte2)
Microprocessadores ii revisão de linguagem de programação (parte2)Mauro Pereira
 

Mais de Mauro Pereira (20)

Programação Web - CSS
Programação Web - CSSProgramação Web - CSS
Programação Web - CSS
 
Redes 7 ferramentas para montagem de redes
Redes 7 ferramentas para montagem de redesRedes 7 ferramentas para montagem de redes
Redes 7 ferramentas para montagem de redes
 
Exercicio introducao a arquitetura de computadores
Exercicio    introducao a arquitetura de computadoresExercicio    introducao a arquitetura de computadores
Exercicio introducao a arquitetura de computadores
 
Introdução à Arquitetura de Computadores
Introdução à Arquitetura de ComputadoresIntrodução à Arquitetura de Computadores
Introdução à Arquitetura de Computadores
 
Sistemas de Numeracao
Sistemas de NumeracaoSistemas de Numeracao
Sistemas de Numeracao
 
Lógica binária, potas lógicas e circuitos lógicos
Lógica binária, potas lógicas e circuitos lógicosLógica binária, potas lógicas e circuitos lógicos
Lógica binária, potas lógicas e circuitos lógicos
 
Trabalho para nota da etapa 2 2017.1
Trabalho para nota da etapa 2 2017.1Trabalho para nota da etapa 2 2017.1
Trabalho para nota da etapa 2 2017.1
 
Redes 6 equipamentos ativos da rede
Redes 6 equipamentos ativos da redeRedes 6 equipamentos ativos da rede
Redes 6 equipamentos ativos da rede
 
Redes 5 cabeamento
Redes 5 cabeamentoRedes 5 cabeamento
Redes 5 cabeamento
 
Redes 3 protocolos
Redes 3 protocolosRedes 3 protocolos
Redes 3 protocolos
 
Redes 2 padronização e arquitetura de redes
Redes 2 padronização e arquitetura de redesRedes 2 padronização e arquitetura de redes
Redes 2 padronização e arquitetura de redes
 
Redes 1 introducao historico conceitos
Redes 1 introducao historico conceitosRedes 1 introducao historico conceitos
Redes 1 introducao historico conceitos
 
6 softwares de manutenção
6 softwares de manutenção6 softwares de manutenção
6 softwares de manutenção
 
4.1 softwares e configurações importantes
4.1 softwares e configurações importantes4.1 softwares e configurações importantes
4.1 softwares e configurações importantes
 
Redes padroes e cabeamento
Redes padroes e cabeamentoRedes padroes e cabeamento
Redes padroes e cabeamento
 
Trabalho para nota da etapa 2 2015.2
Trabalho para nota da etapa 2 2015.2Trabalho para nota da etapa 2 2015.2
Trabalho para nota da etapa 2 2015.2
 
Exercicio 1 - conceitos camadas e protocolos
Exercicio 1 - conceitos camadas e protocolosExercicio 1 - conceitos camadas e protocolos
Exercicio 1 - conceitos camadas e protocolos
 
Exercicio 2 endereços, dispositivos, internet-intranet-extranet, padroes, c...
Exercicio 2   endereços, dispositivos, internet-intranet-extranet, padroes, c...Exercicio 2   endereços, dispositivos, internet-intranet-extranet, padroes, c...
Exercicio 2 endereços, dispositivos, internet-intranet-extranet, padroes, c...
 
Microprocessadores ii arquitetura
Microprocessadores ii arquiteturaMicroprocessadores ii arquitetura
Microprocessadores ii arquitetura
 
Microprocessadores ii revisão de linguagem de programação (parte2)
Microprocessadores ii revisão de linguagem de programação (parte2)Microprocessadores ii revisão de linguagem de programação (parte2)
Microprocessadores ii revisão de linguagem de programação (parte2)
 

Guia prático para criar algoritmos

  • 1. GUIA PRÁTICO PARA CRIAR ALGORITMOS 1 - INTRODUÇÃO Este guia tem por objetivo ajudá-lo a entender e desenvolver a lógica de programação e criar algoritmos, propondo formulários, passos e dicas a serem seguidos. Este material não se propõe a ser uma apostila ou curso completo de algoritmos e lógica de programação, visto que não inclui os fundamentos de algoritmos, devendo ser usado apenas como material complementar às notas de aula, apostila ou livro. 2 – NOTAÇÃO UTILIZADA Neste material, onde você encontrar algo entre < > significa que você deve substituir tudo (inclusive o < > ) pelo que que está indicado entre os sinais < >. Onde você encontrar algo entre [ ] indica que este fragmento é opcional. A maioria das estruturas será mostrada na forma de formulários a serem preenchidos. Após preencher todo o formulário, você terá o seu algoritmo completo, devendo descartar apenas as mensagens instrutivas que aparecem em letras pequenas. 3 - ESTRUTURA GERAL DE UM ALGORITMO Todo algoritmo tem a seguinte estrutura: Algoritmo “nome do seu algoritmo” Variáveis <nome da variável>,<nome da variável>,...: <tipo> <nome da variável>,<nome da variável>,...: <tipo> <nome da variável>,<nome da variável>,...: <tipo> ... Inicio <comandos> ... ... ... FimAlgoritmo Repare que a figura acima é um formulário que deve ser preenchido.  Na seção variáveis você especifica o(s) nome(s) da(s) variável(is), separados por vírgula, e no final, o tipo da(s) variáveis (vide notas de aulas). As regras para criação de nomes de variáveis devem ser respeitadas (vide notas de aula).  Na seção inferior, entre as palavras “Inicio” e “FimAlgoritmo”, você coloca os comandos do seu algoritmo, um abaixo do outro. Esses comandos serão estruturas seqüenciais, condicionais ou de repetição 4 – PASSOS BÁSICOS PARA CRIAÇÂO DE ALGORITMOS 1. Ler atentamente o problema, procurando identificar os dados (variáveis) de entrada, processamento e saída e o tipo de dados de cada um (inteiro, real, caracter, string ou lógico). Normalmente haverá uma variável para cada dado encontrado. o OBS: Não se preocupe se não conseguir identificar todos os dados logo de início. À proporção que for criando o algoritmo poderá incluir novas declarações de variáveis 2. Fazer o esboço inicial de solução do problema o Você pode fazer esse esboço inicial usando linguagem natural, fluxograma ou diagrama da Chapin. Caso o problema envolva cálculos, pesquise como esses cálculos são feitos. 3. Identificar as estruturas (seqüenciais, condicionais e de repetição) que serão necessárias para resolver o problema e incluí-las no seu esboço 4. Organizar a sua solução (esboço) na forma de algoritmo. Para obter ajuda para criar as estruturas de repetição, consulte o item 6 o Declarar as variáveis encontradas, na seção “variáveis” o Escrever os comandos entre o “Inicio” e “FimAlgoritmo”
  • 2. 5 - COMANDOS NORMALMENTE USADOS EM CADA SEÇÃO DO ALGORITMO Os algoritmos (programas) são feitos para processar dados, portanto, ao criar um algoritmo, você deve sempre lembrar das três operações básicas do processamento de dados: ENTRADA, PROCESSAMENTO e SAÍDA. Normalmente o seu algoritmo terá uma ou mais seções de comandos relacionados a essas três operações aparecendo uma ou mais vezes no mesmo. A ordem mais comum dos comandos num algoritmo é a que está descrita abaixo, porém não é uma regra geral. Comandos de entrada de dados Comandos de processamento de dados Comandos de saída de dados COMANDOS DE ENTRADA DE DADOS A seção de entrada de dados normalmente é a primeira que aparece no seu algoritmo, logo após o “Inicio”, mas pode aparecer em outros pontos do algoritmo também. Na seção de entrada sempre teremos o seguinte par de comandos para cada dado (variável) de entrada: Escreva(“<mensagem>: ”) Leia(<variável>)  A <mensagem> deve ser uma mensagem bem explicativa para o usuário, informando o que ele deve digitar. Exemplos: o “Digite o seu nome: “ o “Digite o número a ser calculado o fatorial: “ o “Digite a nota 1: “ (caso tenha mais de uma nota como dado de entrada)  Os comandos de entrada podem estar dentro de uma estrutura de repetição (se algum dado de entrada existir em quantidade maior que 1. Exemplo: dez números, notas de 30 alunos, etc.) ou dentro de uma estrutura condicional (se houver uma condição para serem solicitados) COMANDOS DE PROCESSAMENTO DE DADOS Os comandos de processamento de dados normalmente aparecem APÓS a entrada de dados e usam os dados de entrada para obter dados (variáveis) de saída. Os comandos normalmente usados para processamento são:  Comandos de atribuição: <variável>  <expressão de valor>  Comandos em sequência (estrutura seqüencial)  Estruturas de condição  Estruturas de repetição  Estruturas combinadas COMANDOS DE SAÍDA DE DADOS Os comandos de saída de dados normalmente aparecem após os de processamento, mas algumas vezes podem estar junto com os de processamento (numa estrutura de repetição ou condicional), e sempre estão após os e entrada de dados. O comando mais usado na saída é o comando Escreva: Escreva(“<mensagem>: ”,<variável ou expressão >)  A <mensagem> também deve ser uma mensagem bem explicativa para o usuário, informando o resultado que está sendo apresentado. Exemplos: o “O seu nome é XXXXX”“ o “O fatorial do número digitado é: XXX“ o “A média das notas digitadas é: XXX” Esse par se repete p/ cada dado (variável) de entrada
  • 3. 6 – GABARITOS (FORMULÁRIOS) PARA CRIAÇÃO DE ESTRUTURAS 6.1 – ESTRUTURA CONDICIONAL Quando usar: sempre que encontrar um ou mais comandos que só deverão ser executados caso uma condição seja verdadeira Condição SE _________________________ ENTAO Comandos a serem executados caso a condição seja verdadeira: [ SENÃO Comandos a serem executados caso a condição seja falsa: ] FIMSE  Ao lado do SE, coloque a condição a ser testada. Essa condição deve ser uma expressão lógica que referencia alguma variável atualizada antes do comando SE  Caso a condição seja verdadeira, o primeiro bloco de comandos será executado (comandos a serem executados caso a condição seja verdadeira)  O bloca SENAO (e os comandos a serem executados caso a condição seja falsa) é opcional e só será executado caso a condição seja falsa Exemplo: Algoritmo para verificar se um número digitado é par. algoritmo "soma numeros" var num: inteiro inicio Escreval("Digite um número: ") Leia(num) Se num mod 2 = 0 entao Escreval(“O número digitado é par”) Senão Escreval(“O número digitado é impar”) FimSe Fimalgoritmo 6.2 - ESTRUTURAS DE REPETIÇÃO Para todas as estruturas de repetição na seguir, valem as seguintes instruções:  Na seção “Comandos a serem executados antes da repetição”, coloque os comandos que não precisam ser repetidos e precisam ser executados ANTES da repetição. Normalmente são comandos de preparo para entrada na repetição, inicialização de variáveis acumuladoras, variáveis de resultado ou contadores, etc.  Na seção “Comandos a repetir”, coloque os comandos que devem ser repetidos. Esses comandos podem ser estruturas seqüenciais simples ou outras estruturas (condicionais ou de repetição).  Na seção “Comandos a serem executados depois da repetição”, coloque os comandos que não precisam ser repetidos e precisam ser executados DEPOIS da repetição. Normalmente são apresentação de resultados (variáveis de saída) processados na repetição.
  • 4. 6.2.1 - REPETIÇÃO CONTADA (PARA) Quando usar: quando você notar que a repetição deverá ocorrer uma quantidade determinado de vezes (essa quantidade pode ser fixa ou determinada por dados de entrada que o usuário irá digitar) ou quando há claramente a necessidade de contagem numérica progressiva ou regressiva, com incremento qualquer. Comandos a serem executados antes da repetição: Variável int Valor inicial Valor final incremento Para ______ de __________ até _____ [passo ______ ] faca Comandos a repetir: FimPara Comandos a serem executados depois da repetição: Na seção “Para ... de ... até ... faca”, preencha os espaços em branco com:  A variável tipo inteiro, que será o contador (variável auxiliar). Ela deve ter sido declarada  O valor inicial e o valor final da contagem da repetição. Pode ser um número constante (ex: 1), uma variável (ex: aux) ou uma expressão (aux + 1), desde que seja do tipo inteiro.  O incremento da contagem, que é o valor que será adicionado à variável de contagem cada vez que a execução chega no FimPara o É OPCIONAL: Se o incremento desejado for 1 você pode retirar o “passo” do comando e não informar o valor do incremento. o Se o valor final for menor que o valor inicial (contagem regressiva), o passo (incremento) deve ser um valor inteiro negativo Exemplo: Criar algoritmo para contar de 2 a 2, sendo que o início e final da contagem será informado pelo usuário.  Neste caso a palavra “contar” nos dá certeza que a repetição é contada Algoritmo “contagem 2 a 2, destacando múltiplos de 5” Var Cont, inicio, final: inteiro Inicio Escreval(“Algoritmo para contar, 2 a 2”) Escreva(“Digite o número p/ início da contagem: “) Leia(inicio) Escreva(“Digite o número p/ final da contagem: “) Leia(final) Escreval(“Iniciando contagem...”) Para cont de inicio ate final passo 2 faca Escreva(“Contando...”,cont) Se cont mod 5 = 0 entao Escreval(“ (múltiplo de 5)”) Senão Escreval(“ “) FimSe FimPara Escreval(“Fim!”) FimAlgoritmo
  • 5. 6.2.2 - REPETIÇÃO CONDICIONAL COM TESTE NO INÍCIO (ENQUANTO) Quando usar: quando a repetição não se enquadrar no caso da repetição contada e a primeira execução dos comandos só deve ser executados se uma condição for previamente testada e verdadeira (os comandos só serão executados pelo menos uma vez se a condição for verdadeira) Comandos a serem executados antes da repetição: Condição para iniciar e continuar a repetição: ENQUANTO _________________________ Comandos a repetir: FIMENQUANTO Comandos a serem executados depois da repetição: Ao lado da palavra “ENQUANTO”, coloque a condição para iniciar e continuar a repetição. Essa condição deve ser uma expressão lógica que foi previamente preparada na seção “Comandos a serem executados antes da repetição” e que será atualizada na seção “Comandos a repetir”, através da alteração do valor de alguma variável que faz parte da expressão lógica. OBS: Essa condição é testada uma vez no comando enquanto e a cada vez que a execução chega no comando FimEnquanto. Se o resultado for falso, a execução continua no comando após o FimEnquanto. Exemplo: Criar um algoritmo para somar números digitados pelo usuário. Ao digitar o número zero a soma deve ser apresentada Solução (usando os passos básicos para criação de algoritmos (item 4) ) 1. Identificar dados de entrada, processamento e saída: ENTRADA PROCESSAMENTO SAÍDA num (inteiro) soma (inteiro) soma (inteiro) 2. Fazer esboço inicial da solução do problema: 1. Solicitar número e aguardar digitação do mesmo (variável num) 2. Acumular o número digitado na memória (variável soma) 3. Se o número digitado não for zero, voltar ao passo 1 4. Senão, mostrar o valor acumulado (variável soma) 3. Neste caso sabemos que precisaremos de uma estrutura de repetição porque o algoritmo menciona “números digitados pelo usuário”. Como é mais de um número, precisaremos repetir um comando de leitura de dados. Como não sabemos QUANTOS números o usuário irá digitar, então a repetição será condicional e pode ser com teste no inicio ou no final. Podemos notar que haverá repetição também observando que no esboço da solução há a expressão “voltar ao passo passo 1”. Os passos do esboço inicial que serão repetidos serão os passos 1 e 2, portanto os comandos relativos a eles ficarão na seção “Comandos a repetir” 4. Organizar a solução na forma de algoritmo:
  • 6. algoritmo "soma numeros" var num,soma: real inicio Escreval("Algoritmo para somar números.") num<-1 Enquanto num<>0 faca Escreva("Numero a somar (zero encerra): ") Leia(num) soma<-soma+num FimEnquanto Escreva("A soma dos números digitados é: ",soma) fimalgoritmo 6.2.3 - REPETIÇÃO CONDICIONAL COM TESTE NO FINAL (REPITA) Quando usar: quando a repetição não se enquadrar no caso da repetição contada e os comandos devam ser executados PELO MENOS UMA VEZ, MESMO QUE A CONDIÇÃO PARA REPETIÇÃO NÃO SEJA SATISFATÓRIA. Comandos a serem executados antes da repetição: REPITA Comandos a repetir: Condição para parar a repetição: ATÉ ___________________ Comandos a serem executados depois da repetição: Ao lado da palavra “ATÉ”, coloque a condição para PARAR a repetição. Essa condição deve ser uma expressão lógica que foi previamente atualizada na seção “Comandos a repetir” e que será atualizada na seção “Comandos a repetir”, através da alteração do valor de alguma variável que faz parte da expressão lógica. OBS: Essa condição é testada somente APÓS os comandos a repetir. Por isso os comandos a repetir serão executados sempre, pelo menos uma vez. Exemplo: algoritmo anterior reescrito com a estrutura REPITA: algoritmo "soma numeros" var num,soma: real inicio Escreval("Algoritmo para somar números.") Repita Escreva("Numero a somar (zero encerra): ") Leia(num) soma<-soma+num Ate num=0 Escreva("A soma dos números digitados é: ",soma) fimalgoritmo Note que a estrutura REPITA se adequou melhor a esse problema, visto que pelo menos um número deve ser digitado, e que, como não há mais condição para entrar na repetição, não foi mais necessário o comando “num <- 0” para preparar a condição de repetição
  • 7.
  • 8. JOGO: QUEBRA-CABEÇA DE ALGORITMOS Regra básica: imprimir e recortar as linhas de instrução de cada algoritmo. Embaralhar as linhas. O aluno deverá colocar em ordem. Sugestão de uso:  Imprimir uma cópia de cada algoritmo e recortar. Os algoritmos são numerados para facilitar a identificação.  Dividir a turma em equipes e dar um conjunto de peças de cada algoritmo (embaralhadas) para cada equipe. Cada equipe deverá montar o seu algoritmo de acordo com a regra básica.  Avaliar a montagem do algoritmo de cada equipe sendo que a equipe que montar o algoritmo em menor tempo ganha marca 10 pontos, a segunda 9 pontos e assim por diante.  A equipe que terminar, recebe outro algoritmo que ainda não tenha sido feito por ela Algoritmo “contagem regressiva” 1 Variaveis 1 Contagem: inteiro 1 Inicio 1 Para contagem de 10 ate 1 passo -1 faca 1 Escreval(contagem) 1 FimPara 1 Escreva “Fogo!” 1 FimAlgoritmo 1 Algoritmo “maioridade” 2 Variáveis 2 Idade: real 2
  • 9. Inicio 2 Escreva(“Digite a sua idade: “) 2 Leia(idade) 2 Se idade<18 2 Escreval(“Você é menor de idade”) 2 Senão 2 Escreval(“Você é maior de idade”) 2 FimSe 2 FimAlgoritmo 2