Guia prático para criar algoritmos

9
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”

Transcript of Guia prático para criar algoritmos

Page 1: Guia prático para criar algoritmos

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 apostilaou curso completo de algoritmos e lógica de programação, visto que não inclui os fundamentos dealgoritmos, 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 estefragmento é opcional.

A maioria das estruturas será mostrada na forma de formulários a serem preenchidos. Após preenchertodo o formulário, você terá o seu algoritmo completo, devendo descartar apenas as mensagensinstrutivas 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áveisdevem ser respeitadas (vide notas de aula).

Na seção inferior, entre as palavras “Inicio” e “FimAlgoritmo”, você coloca os comandos do seualgoritmo, um abaixo do outro. Esses comandos serão estruturas seqüenciais, condicionais oude 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 problemao 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ço4. Organizar a sua solução (esboço) na forma de algoritmo. Para obter ajuda para criar as

estruturas de repetição, consulte o item 6o Declarar as variáveis encontradas, na seção “variáveis”o Escrever os comandos entre o “Inicio” e “FimAlgoritmo”

Page 2: Guia prático para criar algoritmos

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ê devesempre 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 comandosrelacionados 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 é umaregra geral.

Comandos de entrada de dadosComandos de processamento de dadosComandos 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 sempreteremos 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 eledeve 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 deentrada existir em quantidade maior que 1. Exemplo: dez números, notas de 30 alunos, etc.) oudentro 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 osdados de entrada para obter dados (variáveis) de saída. Os comandos normalmente usados paraprocessamento 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 algumasvezes podem estar junto com os de processamento (numa estrutura de repetição ou condicional), esempre 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 oresultado 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

Page 3: Guia prático para criar algoritmos

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 umacondição seja verdadeira

Condição

SE _________________________ ENTAOComandos a serem executados caso a condição seja verdadeira:

[ SENÃOComandos 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ógicaque referencia alguma variável atualizada antes do comando SE

Caso a condição seja verdadeira, o primeiro bloco de comandos será executado (comandos aserem executados caso a condição seja verdadeira)

O bloca SENAO (e os comandos a serem executados caso a condição seja falsa) é opcional esó será executado caso a condição seja falsa

Exemplo: Algoritmo para verificar se um número digitado é par.algoritmo "soma numeros"var num: inteiroinicio 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”) FimSeFimalgoritmo

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 quenão precisam ser repetidos e precisam ser executados ANTES da repetição. Normalmente sãocomandos 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. Essescomandos podem ser estruturas seqüenciais simples ou outras estruturas (condicionais ou derepetição).

Na seção “Comandos a serem executados depois da repetição”, coloque os comandos quenão precisam ser repetidos e precisam ser executados DEPOIS da repetição. Normalmente sãoapresentação de resultados (variáveis de saída) processados na repetição.

Page 4: Guia prático para criar algoritmos

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 quandohá claramente a necessidade de contagem numérica progressiva ou regressiva, com incrementoqualquer.

Comandos a serem executados antes da repetição:

Variável int Valor inicial Valor final incremento

Para ______ de __________ até _____ [passo ______ ] facaComandos a repetir:

FimParaComandos 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 FimParao É 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á informadopelo 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: inteiroInicio 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

Page 5: Guia prático para criar algoritmos

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 primeiraexecuçã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:

FIMENQUANTOComandos a serem executados depois da repetição:

Ao lado da palavra “ENQUANTO”, coloque a condição para iniciar e continuar a repetição. Essacondição deve ser uma expressão lógica que foi previamente preparada na seção “Comandos a seremexecutados antes da repetição” e que será atualizada na seção “Comandos a repetir”, através daalteraçã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 nocomando 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 asoma deve ser apresentadaSoluçã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ÍDAnum (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 14. Senão, mostrar o valor acumulado (variável soma)

3. Neste caso sabemos que precisaremos de uma estrutura de repetição porque o algoritmomenciona “números digitados pelo usuário”. Como é mais de um número, precisaremos repetirum 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 quehaverá repetição também observando que no esboço da solução há a expressão “voltar aopasso passo 1”. Os passos do esboço inicial que serão repetidos serão os passos 1 e 2, portantoos comandos relativos a eles ficarão na seção “Comandos a repetir”

4. Organizar a solução na forma de algoritmo:

Page 6: Guia prático para criar algoritmos

algoritmo "soma numeros"var num,soma: realinicio 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 comandosdevam ser executados PELO MENOS UMA VEZ, MESMO QUE A CONDIÇÃO PARA REPETIÇÃO NÃOSEJA 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 umaexpressão lógica que foi previamente atualizada na seção “Comandos a repetir” e que será atualizada naseção “Comandos a repetir”, através da alteração do valor de alguma variável que faz parte daexpressão lógica.OBS: Essa condição é testada somente APÓS os comandos a repetir. Por isso os comandos a repetirserão executados sempre, pelo menos uma vez.

Exemplo: algoritmo anterior reescrito com a estrutura REPITA:algoritmo "soma numeros"var num,soma: realinicio 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)fimalgoritmoNote que a estrutura REPITA se adequou melhor a esse problema, visto que pelo menos um númerodeve ser digitado, e que, como não há mais condição para entrar na repetição, não foi mais necessário ocomando “num <- 0” para preparar a condição de repetição

Page 7: Guia prático para criar algoritmos
Page 8: Guia prático para criar algoritmos

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” 1Variaveis 1Contagem: inteiro 1Inicio 1Para contagem de 10 ate 1 passo -1 faca 1Escreval(contagem) 1FimPara 1Escreva “Fogo!” 1FimAlgoritmo 1

Algoritmo “maioridade” 2Variáveis 2Idade: real 2

Page 9: Guia prático para criar algoritmos

Inicio 2Escreva(“Digite a sua idade: “) 2Leia(idade) 2Se idade<18 2Escreval(“Você é menor de idade”) 2Senão 2Escreval(“Você é maior de idade”) 2FimSe 2FimAlgoritmo 2