Buscar

ALGORITMO - etapa_1

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 26 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 26 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 26 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

ALGORITMO
ETAPA 1
INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO
CENTRO UNIVERSITÁRIO
LEONARDO DA VINCI
Rodovia BR 470, Km 71, nº 1.040, Bairro Benedito
89130-000 - INDAIAL/SC
www.uniasselvi.com.br
Curso sobre Algoritmo
Centro Universitário Leonardo da Vinci
Organização
Greisse Moser Badalotti
Autor
Márcio Poffo
Reitor da UNIASSELVI
Prof. Hermínio Kloch
Pró-Reitoria de Ensino de Graduação a Distância
Prof.ª Francieli Stano Torres
Pró-Reitor Operacional de Ensino de Graduação a Distância
Prof. Hermínio Kloch
Diagramação e Capa
Renan Willian Pacheco
Revisão
Harry Wiese
3
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
ALGORITMO
O estudo das técnicas para a resolução de problemas e, consequentemente, a 
automatização de tarefas é essencial para a formação de um bom desenvolvedor de 
software. O aprendizado da lógica de programação serve de base para o aprendizado 
de todas as linguagens de programação existentes atualmente, permitindo que você 
desenvolva um raciocínio rápido e conciso.
Para desenvolver um programa de computador, é necessário, primeiramente, 
investigar e entender o problema e, uma vez compreendido, é possível buscar ou propor 
uma solução para tal – um algoritmo.
Nesta etapa, você estudará os conceitos básicos relacionados à resolução de 
problemas por intermédio de algoritmos, além das formas ou métodos de representação 
de algoritmos, como, por exemplo, textual, pseudolinguagem e fluxograma. Além disso, 
será apresentada uma técnica essencial para a validação e o entendimento de como 
determinado algoritmo funciona e como ele se comporta ao longo de sua execução, 
conhecida como teste de mesa.
4 ALGORITMO
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
1. RESOLUÇÃO DE PROBLEMAS
Neste curso, iniciaremos nossos estudos sobre algoritmos. Mas antes de 
começarmos, seria útil uma refl exão sobre o signifi cado da palavra “lógica”, bem como 
da aplicabilidade de tal conceito no âmbito computacional. Então, o que é lógica? A 
palavra lógica está normalmente vinculada à coerência e à racionalidade. Para Forbellone 
e Eberspächer (2005, p. 1), a lógica pode ser associada com a “correção do pensamento”, 
preocupando-se em determinar quais ações são válidas e quais não são, analisando as 
formas e leis do pensamento. 
Frequentemente, o conceito de lógica aplica-se apenas ao contexto da matemática, 
conforme exemplos de lógica proposicional ilustrados nas Figuras 1.1(a) e 1.1(b). Porém, 
a lógica nos acompanha no dia a dia, quando escrevemos, falamos ou pensamos. As 
Figuras 1.1(c) e 1.1(d) demonstram alguns exemplos de pensamentos lógicos em nosso 
cotidiano.
Figura 1.1 – Exemplos de encadeamento lógico aplicado em diferentes contextos. (a) e (b) silogismos 
da lógica proposicional. (c) e (d) sequência lógica aplicada em atividades do cotidiano.
Todo ser humano é um mamífero.
Pedro é um ser humano.
Logo, Pedro é um mamífero.
O Mercosul é composto por países da América do Sul.
O Brasil compõe o Mercosul.
Logo, o Brasil está localizado na América do Sul.
(a) (b)
José é mais velho que Paola.
Paola é mais velha que Thiago.
Logo, José é mais velho que Thiago.
O lápis está dentro da gaveta.
A gaveta está fechada.
Precisamos primeiro abrir a gaveta para depois pegar 
o lápis.
(c) (d)
Fonte: O autor
O raciocínio lógico nos permite utilizar corretamente as leis do pensamento e 
dos processos de cognição, objetivando a racionalidade e o desenvolvimento de técnicas 
para a produção de soluções logicamente válidas e coerentes. Imagine se, no exemplo 
exposto na Figura 1.2, o disjuntor principal não fosse desligado? Ou se não houvesse 
uma escada disponível? Como trocaríamos a lâmpada queimada?
Figura 1.2 – Sequência lógica dos passos para se trocar uma lâmpada queimada
Fonte: O autor
5
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
ALGORITMO
Manzano e Oliveira (2016) ressaltam a importância do raciocínio lógico quando 
aplicado pelos profissionais da área de tecnologia da informação envolvidos com o 
desenvolvimento de sistemas e programas computacionais, pois estes têm como funções 
o desenvolvimento de soluções para os mais diversos problemas com eficiência e eficácia.
 A lógica de programação permite definir a sequência lógica (sequência de passos/
instruções) para o desenvolvimento. É uma técnica de encadear pensamentos para atingir 
um determinado objetivo ou solucionar um problema. De uma maneira geral, instruções 
referem-se a um conjunto de regras ou nomes definidos para a realização ou emprego 
de algo. No âmbito computacional, uma instrução é o que indica ao computador uma 
ação elementar a executar. 
É importante ressaltar que uma instrução, tomada de forma isolada, não tem 
muito sentido. Deve-se colocar em prática o conjunto de todas as instruções, na 
ordem correta, para se obter o resultado desejado (como exposto na Figura 1.2). E, ao 
organizarmos as instruções de maneira lógica e concisa, elaboramos um algoritmo! 
Mas o que é um algoritmo?
Formalmente, um algoritmo é uma sequência finita de passos (instruções) 
que levam à execução de uma tarefa ou à solução de um determinado problema. 
Considerando que, ao longo do desenvolvimento de um algoritmo estamos definindo 
uma “norma de execução dos passos/instruções”, é necessário obedecermos a algumas 
premissas básicas no momento de sua construção, como a definição de passos/instruções 
simples e sem ambiguidade, e a organização dos passos/instruções de forma ordenada;
O conceito de algoritmo é geral, podendo ser aplicado a qualquer circunstância, 
não estando limitado apenas ao contexto computacional. Perceba que uma receita de 
bolo é um exemplo de algoritmo, contendo os passos, ingredientes, quantidades e a 
sequência necessária para a conclusão de uma tarefa: a preparação de um bolo (Figura 
1.3).
Figura 1.3 – Uma receita de bolo é um algoritmo
Fonte: o autor
6 ALGORITMO
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
Um algoritmo determina um padrão de comportamento a ser seguido, e não deve 
ser confundido com a solução do problema. Ele determina um dos inúmeros caminhos 
(entre outras palavras, o conjunto de passos) que levam à solução para um determinado 
problema. Além disso, um algoritmo garante, sempre que executado sob as mesmas 
condições, o mesmo resultado.
Todo problema a ser solucionado por intermédio de um algoritmo precisa ser 
claro e bem definido. Devemos extrair todas as informações a respeito do problema 
e relacioná-las com o conhecimento atual que se tem do assunto, a fim de descrever 
os passos para se chegar à sua solução. O Algoritmo 1.1 é um exemplo simples e bem 
definido de um algoritmo (sem estruturas mais complexas como seleção e repetição) 
para se resolver o jogo das Torres de Hanói (Figura 1.4). Por definição, temos que:
A Torre de Hanói consiste de uma base com três pinos e um certo número N de 
discos de diâmetros diferentes, colocados um sobre o outro em um dos pinos, em 
ordem decrescente de seus diâmetros, de baixo para cima [...]. O jogo consiste 
em transferir a torre de discos para um dos outros dois pinos, movimentando 
um disco de cada vez, utilizando-se um dos pinos livres como auxiliar e nunca 
colocando um disco sobre outro de diâmetro menor. (DEPARTAMENTO DE 
MÁTEMATICA – UFOP, 2017, p. 1).
Tabela 1.1 – Algoritmo para resolver o problema das Torres de Hanói
Início
1. Mover um disco da haste A para a haste B.
2. Mover um disco da haste A para a haste C.
3. Mover um disco da haste B para a haste C.
4. Mover um disco da haste A para a haste B.
5. Mover um disco da haste C para a haste A.
6. Mover um disco da haste C para a haste B.
7. Mover um disco da haste A para a haste B.
Fim
Fonte: O autor
Figura 1.4 – O problema das Torres de Hanói com três discos de diâmetros diferentes (em ordem 
decrescente por diâmetro) e três hastes: A, B e C. Tendo como objetivo final a transferência 
de todos os discos da haste A (situação inicial) para a haste B (situação final), utilizando a 
haste C como haste auxiliar.Fonte: O autor
7
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
ALGORITMO
A Figura 1.5 ilustra a execução do algoritmo da Tabela 1.1, proposto anteriormente. 
Perceba que para um mesmo problema, podem existir diversos algoritmos que 
solucionem o problema (poderíamos começar movendo o disco menor para a haste C, 
no passo 1). No entanto, deve-se observar qual dentre os possíveis algoritmos é o mais 
eficiente para se economizar horas de processamento.
Figura 1.5 – Ilustração passo a passo de cada uma das etapas descritas no algoritmo da tabela 1.1
Fonte: O autor
Até o momento estudamos algoritmos para resolver problemas das mais diversas 
áreas (veja o exemplo do algoritmo da Tabela 1.2). Isso é possível porque essa estruturação 
sequencial dos passos para se desenvolver um algoritmo não está vinculada apenas ao 
âmbito computacional. O fluxo de execução, independentemente do contexto em que 
o algoritmo está inserido, é linear, de cima para baixo, assim como é a sequência pela 
qual lemos este livro, do início ao fim.
Tabela 1.2 – Algoritmo para ligar o ar-condicionado de uma sala de aula
Início
1.	 Colocar as pilhas no controle do ar-condicionado.
2.	 Se deslocar próximo ao ar-condicionado.
3.	 Ligar o aparelho.
4.	 Selecionar a temperatura desejada.
Fim
Fonte: O autor
8 ALGORITMO
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
1.1. ETAPAS DE UM ALGORITMO
Um algoritmo, quando programado em um computador, é constituído por três 
partes principais: entrada, processamento e saída (Figura 1.6). Isto signifi ca que, para 
resolver qualquer problema computacionalmente, teremos dados que servirão como 
entrada para o algoritmo, procedimentos que irão tratar os dados de entrada (sendo 
estes fornecidos no momento em que o programa está em execução ou podem estar 
embutidos dentro do mesmo), e uma saída – fruto da etapa de processamento.
Figura 1.6 – Etapas básicas de um algoritmo
Fonte: O autor
A etapa de entrada de dados é a parte em que o computador recebe as informações 
necessárias para que o algoritmo possa ser executado com sucesso. Estas informações 
podem ser armazenadas na memória principal de um computador ou na memória 
secundária para algum uso futuro (caso você tenha alguma dúvida sobre a diferença 
entre ambas as memórias, consulte a Figura 1.8, que apresenta a organização das 
estruturas básicas que compõe um computador).
Na etapa de processamento, o computador, por meio de um programa executado 
em sua memória primária, avalia todas as expressões lógicas, relacionais e algébricas, 
assim como todas as estruturas de seleção e repetição presentes no algoritmo. Nesta 
etapa, também é feito a transformação dos dados de entrada, realizando todos os 
procedimentos para se chegar no resultado fi nal.
Por fi m, na etapa de saída, todos os resultados da etapa anterior (ou parte 
deles) são enviados para o mundo externo por intermédio dos dispositivos de saída 
do computador, como: monitor, impressora, fax, caixa de som. Estes resultados podem 
servir como entrada para outro algoritmo, ou serem usados como fonte de informação 
para o usuário do computador, e assim facilitar suas tomadas de decisões.
Vamos analisar um problema computacional prático, a fi m de compreender 
melhor estas três etapas fundamentais de um algoritmo.
Marcelo foi contratado para desenvolver um algoritmo que calcule o Índice de 
Massa Corporal (IMC) de uma pessoa. Tal índice indica se um ser humano adulto está 
acima do peso, obeso ou em seu peso ideal. A fórmula para se calcular o IMC é a seguinte: 
. Como Marcelo deve proceder para desenvolver o algoritmo requerido? 
Quais são os passos e/ou ações que ele deve tomar? Lembre-se de que um algoritmo 
9
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
ALGORITMO
especifica com clareza e de forma correta as instruções que um software deverá conter 
para que, ao ser executado, forneça os resultados esperados.
Num primeiro momento, Marcelo deve compreender bem qual é o problema a ser 
resolvido pelo algoritmo (Figura 1.7). Feito isto, podem-se extrair todas as informações a 
respeito desse problema (dados e operações), relacioná-las com o conhecimento atual (ou 
disponível) que se tem do assunto – cálculo do IMC. Finalmente, uma vez compreendido 
como resolver o problema, resta descrever claramente os passos (ou instruções) para se 
chegar à solução do problema.
Figura 1.7 – A tarefa de especificar um algoritmo
Fonte: EBAH (2017).
Quais são as instruções, então, necessárias para que Marcelo desenvolva o 
algoritmo para o qual fora contratado? Como o objetivo do algoritmo é calcular o IMC 
de uma pessoa adulta (envolvendo a informação de peso e altura dessa mesma pessoa), 
devemos saber quais são os valores a serem considerados na fórmula.
Assim, essas informações devem ser consideradas para a etapa de entrada do 
algoritmo. Sendo que, ao longo do processamento, o peso e a altura serão utilizados 
para efetuar o cálculo necessário da fórmula referida. Portanto, as primeiras instruções 
poderiam ser: “Informe o peso da pessoa” e “Informe a altura da pessoa”.
Munido de todas as informações necessárias para se calcular o IMC, Marcelo 
pode agora se preocupar com a etapa de processamento, a qual irá, de fato, realizar 
a aritmética necessária para se obter o valor do IMC, dividindo o valor do peso pelo 
quadrado da altura. Depois de obtido e armazenado o resultado, Marcelo deve ainda se 
preocupar com a última etapa, a etapa de saída, exibindo o resultado em um monitor 
ou qualquer outro dispositivo de saída do computador.
Viu só? Nem é tão complicado quanto parecia! Veja como ficou o algoritmo 
desenvolvido por Marcelo (algoritmo da Tabela 1.3), descrito em uma linguagem bem 
10 ALGORITMO
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
simples. Antes de começarmos a estudar quais as diversas maneiras para formalizarmos 
um algoritmo, é preciso esclarecer alguns outros aspectos, como a diferença de um 
algoritmo para um programa, e também alguns outros conceitos sobre dados e instruções.
Tabela 1.3 – Algoritmo para efetuar o cálculo do Índice de Massa Corporal (IMC)
Início
1.	 Solicitar e armazenar o peso da pessoa para a qual se deseja calcular o IMC.
2.	 Solicitar e armazenar a altura da pessoa para a qual se deseja calcular o IMC.
3.	 Calcular e armazenar o resultado da fórmula matemática: 
4.	 Exibir o resultado em um dispositivo de saída, como, por exemplo, o monitor.
Fim
Fonte: O autor
Figura 1.8 – Organização dos blocos funcionais de um computador. A memória primária é 
acessada diretamente pela Unidade Lógica e Aritmética (ULA) do microprocessador, 
podendo ser de leitura e escrita (RAM, do inglês Random Access Memory) ou apenas 
de leitura (ROM, do inglês Read Only Memory). Já a memória secundária não é 
acessada diretamente pela ULA, mas sim por meio de controladores, ocasionando 
uma performance/velocidade de acesso e escrita inferior quando comparado à 
memória principal.
Fonte: Wikipédia (2017)
11
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
ALGORITMO
2. ALGORITMOS VS. PROGRAMAS 
Algoritmos são um conjunto de etapas para realizar a execução de uma tarefa 
(CORMEN, 2014). Neste sentido, um algoritmo é um procedimento. Na seção anterior 
foi apresentado um exemplo de algoritmo para executar a tarefa de calcular o IMC de 
uma pessoa. 
Um algoritmo é transformado em programa após ser convertido para uma 
linguagem de programação aceita por um computador real (CORMEN, 2014).
Neste sentido, um programa utiliza representações e estruturas mais específicas 
que dependem de um computador real, que após compilado, pode ser executado por um 
computador real (JUNIOR et al., 2012). Para o aprendizado, é importante desenvolver 
um algoritmo para uma solução, para então depois convertê-lo para uma linguagem 
de programação real. 
Analise o simples algoritmo apresentado na tabela a seguir, que trata de realizar 
a multiplicação entre dois números informados.
Tabela 2.1– Algoritmo para calcular a multiplicação de números positivos
Início
1.	 Solicitar o primeiro número a ser multiplicado.
2.	 Solicitar o segundo número, que será utilizado como multiplicador.
3.	 Calcular a multiplicação seguindo a fórmula matemática: 
4.	 Exibir o resultado em um dispositivo de saída, como, por exemplo, o monitor.
Fim
Fonte: O autor
Agora, para demonstrar a diferença entre algoritmo e programa, vamos antecipar 
um pouco nosso conteúdo, transformando o algoritmo da Tabela 2.1 em pseudocódigo, 
apresentando a seguir a conversão dele para duas linguagens de programação 
interpretadas por computador, Delphi e Java.
12 ALGORITMO
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
Tabela 2.2 – Algoritmo da tabela 2.1 convertido em pseudocódigo
Algoritmo Multiplicao positivos
Declaração de variáveis
 numero1, 
 numero2, 
 resultado, 
 contador: Inteiro;
Inicio
 Escreva(“Escreva o primeiro numero”);
 Leia(numero1);
 Escreva(“Escreva o segundo numero”);
 Leia (numero2);
 resultado ← 0;
 contador ← 0;
 Enquanto contador < numero2 Faça
 resultado ← resultado + numero1;
 contador ← contador + 1;
 Fim-Enquanto
 Escreva(resultado);
Fim
Fonte: O autor
Agora observe a tabela a seguir, que apresenta o algoritmo acima convertido 
na linguagem Delphi, muito utilizada no desenvolvimento de software. Note que a 
lógica permaneceu a mesma, assim como as estruturas de variáveis. Porém, a sintaxe 
do comando for (loop), que você conhecerá mais adiante, é bem diferente, embora a 
lógica seja a mesma.
13
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
ALGORITMO
Tabela 2.3 – Algoritmo da tabela 2.1 convertido para a linguagem Delphi
procedure TForm1.multiplicacaoPositivos;
var
 numero1,
 numero2,
 resultado,
 contador :Integer;
begin
 numero1 := StrToInt(Edit1.Text);
 numero2 := StrToInt(Edit2.Text);
 contador := 0;
 resultado := 0;
 for contador := 0 to numero2-1 do
 begin
 resultado := resultado + numero1;
 end;
 ShowMessage(IntToStr(resultado)); // apresenta uma mensagem
 end;
Fonte: O autor
Na tabela a seguir, apresenta-se o mesmo algoritmo convertido para a linguagem 
Java, também muito utilizada no desenvolvimento de software. Novamente, a sintaxe do 
comando for (loop), é um pouco diferente do algoritmo, embora a lógica seja a mesma.
Tabela 2.4 – Algoritmo da tabela 2.1 convertido para a linguagem Java
 private void multiplicacaoPositivos(){
 int numero1 = 0;
 int numero2 = 0;
 int resultado = 0;
 int contador = 0;
 
 Scanner s = new Scanner(System.in);
 System.out.println("Digite o primeiro número");
 numero1 = s.nextInt();
 System.out.println("Digite o segundo número");
 numero2 = s.nextInt(); 
 for (contador = 0; contador <= numero2-1; contador++){
 resultado = resultado + numero1;
 }
 System.out.println(resultado);
 }
Fonte: O autor
14 ALGORITMO
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
Os programas de computador possuem procedimentos, também chamados por 
funções ou métodos, conforme pode ser analisado nos algoritmos 1.5 e 1.6, que possuem 
o método “multiplicacaoPositivos” que realiza a tarefa do cálculo, o qual é chamado de 
algum ponto do programa (CORMEN, 2014).
3. DADOS E INSTRUÇÕES
Inicialmente, vamos entender a diferença entre dados e informações. Os dados 
representam pequenos significados ou registros não tratados, que isoladamente não 
podem transmitir uma mensagem ou informação. Neste contexto, informação pode ser 
entendida por dados tratados, isto é, o resultado de processamento de dados, dos quais 
podem serem tomadas decisões. Neste caso, a saída de um algoritmo é uma informação, 
isto é, um dado tratado.
Uma instrução, ou ação, comanda o funcionamento da máquina e determina como 
os dados devem ser tratados. Neste sentido, um programa é um conjunto de instruções 
que tratam dados, e estes são transformados em informações (TEIXEIRA, 2011).
As instruções de algoritmos, assim como das linguagens de programação, 
referem-se diretamente aos dados que serão tratados, diferentemente das instruções da 
linguagem de máquina que referem-se à localização física dos dados (TEIXEIRA, 2011). 
Por isso que a programação em linguagens de alto nível torna-se mais fácil e legível.
 
As instruções primitivas são os comandos que efetuam as tarefas essenciais para 
a operação de um computador, como a entrada e saída de dados, assim como a sua 
movimentação na memória da máquina. Estas instruções estão inseridas na maioria das 
linguagens de programação, para que destas se consiga desenvolver um programa que 
realize alguma tarefa necessária. Como e de onde estas instruções recebem os dados 
para processar?
•	Dispositivos de entrada: É o meio pelo qual são transferidos os dados do usuário 
ou de dispositivos de memória secundários para a memória do computador. São 
exemplos destes dispositivos: teclado, mouse, discos, pen drives etc.
•Dispositivos de saída: É o meio pelo qual os dados tratados são transferidos do 
computador para o usuário ou aos dispositivos de memória secundários. São 
exemplos destes: monitor de vídeo, impressora, pen drives etc.
A instrução primitiva de atribuição, ou simplesmente conhecida por atribuição, 
é o principal meio para transferir dado para uma variável de memória. Segue na tabela 
a seguir um exemplo de atribuição em pseudocódigo.
15
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
ALGORITMO
Tabela 3.1 – Exemplo de atribuição de valor para uma variável em memória
 variavel1 ← 100
Fonte: O autor
4. MÉTODOS PARA REPRESENTAÇÃO DE ALGORITMOS
Os algoritmos computacionais podem ser descritos como um roteiro para a 
solução de problemas do mundo real, independentemente da plataforma tecnológica 
ou ainda da linguagem de programação (TEIXEIRA, 2011). Isso quer dizer que não 
importa qual tecnologia será utilizada para solucionar um determinado problema, pois 
a lógica independe disso. O que importa são os procedimentos, isto é, as instruções a 
serem seguidas pelo algoritmo estarem corretas, pois é desta forma que os dados gerados 
estarão corretos. Neste sentido, imagine a necessidade de desenvolver um programa 
que calcule o desconto dos produtos vendidos em uma loja de roupas. Se o cálculo não 
estiver correto, serão cobrados os produtos incorretamente.
Para representar os roteiros a serem seguidos pelo computador, foram originadas 
diversas formas de representar os algoritmos, principalmente por pseudocódigos e 
também por fluxogramas (TEIXEIRA, 2011).
4.1 PSEUDOCÓDIGO
O uso da linguagem natural pode provocar alguns problemas durante a 
interpretação do algoritmo, se este estiver em um grau de complexidade elevado. Este 
é um dos motivos do surgimento do pseudocódigo.
O pseudocódigo representa um algoritmo de forma independente das linguagens 
de programação, utilizando um subconjunto da linguagem falada e que não possua 
ambiguidades, possibilitando assim o desenvolvimento de algoritmos mais legíveis 
(GARCIA, 2007).
Um algoritmo deve iniciar pelo seu cabeçalho, que é a primeira linha que apresenta 
a sua identificação, conforme apresentado na primeira linha da Tabela 4.1, cuja linha 
deve apresentar o nome do algoritmo, o qual deve estar relacionado com a tarefa a ser 
executada (EDELWEISS; LIVI, 2014). Logo após, devem ser escritas as declarações, isto 
é, a lista de variáveis a serem utilizadas no algoritmo, cujos nomes devem indicar qual 
sua utilidade no programa, como por exemplo, uma variável que receberá um cálculo, a 
qual pode ser chamada de “resultado” (EDELWEISS; LIVI, 2014). Após a declaração das 
variáveis, entre as palavras reservadas “Inicio” e “Fim”, devem ser escritas as instruções 
do algoritmo. Observe a Tabela 4.1, que exemplifica o formato geral de um algoritmo.
16 ALGORITMO
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
Tabela 4.1 – Formato geral de um pseudocódigo
Algoritmo <identificador>
 Lista deVariáveis
Inicio
 <Intruções a serem executadas>
Fim
Fonte: O autor
Neste sentido, podemos dizer que um computador é basicamente uma máquina 
que recebe dados, os processa e então os libera de forma tratada. Em um pseudocódigo, 
como em linguagens de programação, as instruções são incluídas uma em cada 
linha, representando a sua ordem de serem executadas. Além disso, a boa prática de 
programação menciona que se deve utilizar a endentação, que é a tabulação na frente 
das linhas, o que torna a leitura do algoritmo mais legível e fácil de compreender. Os 
dados são o local onde os valores são armazenados e as instruções são a manipulação 
destes dados. Durante o desenvolvimento de instruções, aparecem a necessidade de 
utilização de operadores, variáveis e funções, os quais serão estudados mais adiante. 
Agora que entendemos os conceitos de algoritmos e pseudocódigo, vamos propor 
um algoritmo e depois transformá-lo em um pseudocódigo. Tomemos os problemas a 
seguir para serem solucionados por algoritmos.
a) Desenvolver um algoritmo que efetue a soma de dois números inteiros informados 
pelo usuário cujo resultado seja escrito em um dispositivo de saída.
Tabela 4.2 – Algoritmo desenvolvido para o problema atual
Início
1.	 Solicitar o primeiro número ao usuário e então armazená-lo em uma variável.
2.	 Solicitar o segundo número ao usuário e então armazená-lo em uma outra variável.
3.	 Somar os dois números e armazenar o resultado da fórmula matemática em outra 
variável.
4.	 Exibir o resultado em um dispositivo de saída, como, por exemplo, o monitor.
Fim
Fonte: O autor
Agora convertemos o algoritmo atual, escrito na Tabela 4.2, para a linguagem 
pseudocódigo. Observe como o código-fonte é simples e também compreensível. 
17
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
ALGORITMO
Tabela 4.3 – Pseudocódigo desenvolvido para o problema atual
Algoritmo Soma positivos
Declaração de variáveis
 numero1, 
 numero2, 
 resultado: Inteiro;
Inicio
 Escreva(“Escreva o primeiro numero”);
 Leia(numero1);
 Escreva(“Escreva o segundo numero”);
 Leia(numero2);
 resultado ← numero1 + numero2;
 Escreva(resultado);
 Fim
Fonte: O autor
Basicamente seguiu-se as instruções do algoritmo para implementar o 
pseudocódigo. Por exemplo: para solicitar ao usuário o primeiro número, criou-se a 
variável “numero1” e incluiu-se o comando “ler(numero1)” para o usuário digitar o 
número e atribuir o valor a esta variável. O mesmo foi feito para as demais instruções 
de nosso algoritmo.
b) Desenvolver um algoritmo que efetue o cálculo da média de um aluno, informado 
pelo usuário. Neste caso, o usuário deve informar o nome do aluno, a nota 1 e a nota 
2, e o programa deve calcular a média da nota e então exibir o resultado em um 
dispositivo de saída com o nome do aluno e a sua média.
Tabela 4.4 – Algoritmo desenvolvido para o problema atual
Início
1.	 Solicitar o nome do aluno e armazená-lo em uma variável.
2.	 Solicitar a primeira nota do aluno e então armazená-la em uma outra variável.
3.	 Solicitar a segunda nota do aluno e então armazená-la em uma terceira variável.
4.	 Calcular a média das notas utilizando a fórmula matemática: .
5.	 Exibir o resultado em um dispositivo de saída, como, por exemplo, o monitor.
Fim
Fonte: O autor
Agora convertemos o algoritmo atual, escrito na Tabela 4.4, para a linguagem 
pseudocódigo. Para isso, seguimos o mesmo procedimento: lemos cada instrução e a 
convertemos em código. 
18 ALGORITMO
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
Tabela 4.5 – Pseudocódigo desenvolvido para o problema atual
Algoritmo Soma positivos
Declaração de variáveis
 nome :String;
 nota1, 
 nota2, 
 media: Real;
Inicio
 Escreva(“Escreva o nome do aluno”);
 Leia(nome);
 Escreva(“Escreva a nota 1”);
 Leia(nota1);
 Escreva(“Escreva a nota 2”);
 Leia(nota2);
 media ← (nota1 + nota2)/2;
 Escreva(“O aluno ”, nome, “possui a média ”, media);
 Fim
Fonte: O autor
4.2 FLUXOGRAMA
O pseudocódigo, conforme já mencionado, é uma das formas de representar 
um algoritmo de maneira que não fique ambíguo e seja independente das linguagens 
de programação. Porém, podemos também representar um algoritmo através de um 
fluxograma, também conhecido por diagrama de blocos. A utilização de fluxograma 
é outra forma de representar a solução para um problema. Fluxograma é uma forma 
de representação gráfica que auxilia no processo de início do desenvolvimento de um 
programa, facilitando o entendimento de seus passos e de seu processo (OKUYAMA; 
MILETTO; NICOLAO, 2014). 
Fluxograma é um instrumento gráfico bastante utilizado para a organização e 
metodologias de processos, pois facilita o entendimento (VERGUEIRO, 2002). O termo 
fluxograma pode ser ainda entendido como a representação gráfica de um fluxo de 
trabalho, desenvolvido geralmente por recursos de figuras geométricas normalizadas, 
assim como setas que as unem (VERGUEIRO, 2002). Além disso, fluxograma tem por 
finalidade apresentar de forma rápida e mais compreensível o fluxo de informações e 
as ações da sequência operacional de algum processo.
Um exemplo de um processo é um serviço de uma biblioteca que possui um certo 
método, em que as pessoas (bibliotecários, funcionários, estudantes) realizam tarefas, 
como empréstimo de livros e devoluções, por exemplo, o que pode ser implantado em 
19
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
ALGORITMO
um sistema de informação. Para isso, é necessário desenvolver um fluxograma para 
compreender todo o processo, e depois implementá-lo em linguagens de programação 
(VERGUEIRO, 2002).
Neste sentido, um fluxograma preocupa-se com todos os detalhes existentes 
em um algoritmo, utilizando as figuras geométricas para representar as ações a serem 
executadas, assim como a entrada e saída de dados, as unidades de armazenamento, o 
fluxo dos dados e também tomadas de decisões (RITA, 2009).
De forma geral, o fluxograma pode ser entendido como uma representação 
esquemática de um processo, desenvolvido através de gráficos, que ilustra a sequência 
de passos de forma descomplicada (JUNIOR et al., 2012). Em um fluxograma, cada 
passo é representado por um desenho (forma geométrica), representando o problema 
de forma geral (JUNIOR et al., 2012). Os principais elementos de um fluxograma são 
apresentados na figura a seguir.
Figura 4.2.1 – Elementos mais utilizados de um fluxograma
20 ALGORITMO
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
Fonte: Rita (2009, p. 18-19).
Agora que entendemos a conceituação de fluxograma, vamos desenvolver um 
fluxograma para o algoritmo descrito na Tabela 2.1 deste caderno de estudos? Apenas 
para relembrar, o problema a ser resolvido é: desenvolver um algoritmo que realize a 
multiplicação entre dois números informados.
Vamos desenvolver este fluxograma passo a passo:
a. Inicialize nosso algoritmo com a figura geométrica elipse, figura que demarca 
o início e fim do algoritmo.
b. Logo após, crie um paralelogramo inserindo como texto as variáveis que 
receberão a entrada de dados, que neste caso são “numero1” e “numero2”.
c. Aplique a seta da elipse de início para o paralelogramo (dados).
d. Em seguida, crie um retângulo, e neste escreva o cálculo da multiplicação, 
utilizando a variável “resultado” recebendo o resultado do cálculo.
e. Aplique a seta do paralelogramo (dados) para o retângulo.
f. Crie um outro paralelogramo, cuja descrição será a variável “resultado”.
g. Crie uma elipse, com a descrição “Fim”.
h. Inclua as setas nas últimas figuras criadas.
Veja na figura a seguir como deve ficar nosso fluxograma.
21
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
ALGORITMO
Figura 4.2.2 – Fluxograma para algoritmo da tabela 2.1 deste caderno de estudos
Fonte: O autor
Conforme se pode analisar na figura acima, temos um fácil entendimento do 
processo que foi desenvolvido como solução do problema.A utilização de fluxograma 
também garante que diferentes pessoas que entrarem para trabalhar em um projeto 
compreendam os processos mais facilmente.
Vejamos outro exemplo de fluxograma, um pouco mais complexo por ter uma 
condição (if). Vamos desenvolver o fluxograma para a devolução de uma obra para 
uma biblioteca.
Figura 4.2.3 – Fluxograma para o processo de devolução de obras de uma biblioteca
Fonte: O autor
22 ALGORITMO
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
5. TESTE DE MESA
Teste de mesa é um meio de validar um algoritmo. Através do teste de mesa 
podemos analisar o que ocorre com as variáveis e regras de um algoritmo durante o 
fluxo de um programa (MELO, 2013). O teste de mesa, também chamado de teste de 
bancada, é uma das ferramentas mais utilizadas para verificar se um algoritmo está 
sendo executado corretamente (LEITE, 2006). O teste de mesa aponta para o programador 
exatamente o que o programa está processando no momento.
Além disso, podemos descrever um teste de mesa como a tarefa de verificar se 
cada um dos passos programados no algoritmo, após o desenvolvimento do mesmo, 
está correto. Para fazer um teste de mesa, deve ser lida cada uma das instruções do 
algoritmo e ir anotando em um papel, ou em uma tabela, o resultado de cada um dos 
passos, o que facilita perceber se existe algum erro ou ainda algum outro meio melhor 
para a solução do problema.
Na tabela a seguir, descrevem-se os procedimentos para executar um teste de 
mesa simples:
Tabela 5.1 – Procedimentos para executar um teste de mesa simples
1.	 Desenvolver uma tabela em que cada coluna se refere a uma variável utilizada no 
programa.
2.	 Executar as instruções previstas no algoritmo.
3.	 Verificar se os resultados estão corretos.
4.	 Concluir os testes após um número razoável de resultados corretos.
Fonte: O autor
Agora que aprendemos o conceito e como funciona um teste de mesa, que tal 
aprendermos na prática? Então vamos rever o algoritmo da Tabela 2.1 deste caderno, e 
desenvolveremos o teste de mesa. Analise os dados da figura a seguir que apresenta o 
passo a passo, e logo depois a explicação de cada uma das linhas do nosso teste de mesa.
Figura 4.2.4 – Teste de mesa para o algoritmo da tabela 2.1 deste caderno
Fonte: O autor
23
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
ALGORITMO
Vamos agora analisar o teste de mesa realizado: No passo “Início”, as variáveis 
ainda estavam com valor zero, pois o programa ainda não havia iniciado, apenas a 
declaração das variáveis. No passo 1, foi solicitado um número para o usuário, o qual 
foi atribuído para a variável “numero1”. No passo 2, o segundo número foi solicitado 
ao usuário, o qual foi atribuído para a variável “numero2’. No passo 3, foi realizado o 
cálculo e atribuído o resultado para a variável “resultado”, que no passo 4 foi exibido 
o resultado na tela.
24 ALGORITMO
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
REFERÊNCIAS
CORMEN, T. H. Desmistificando algoritmos. Rio de Janeiro: Elsevier, 2014.
DEPARTAMENTO DE MATEMÁTICA – UFOP. Disponível em: <http://www.iceb.
ufop.br/demat/perfil/arquivos/0.091292001363381611.pdf>. Acesso em: 20 mar. 
2017. 
EBAH. Disponível em: <http://www.ebah.com.br/content/ABAAAAFywAF/
algoritmos-logica-programacao?part=2>. Acesso em: 20 mar. 2017.
EDELWEISS, N.; LIVI, M. A. C. Algoritmos e programação: com exemplos em Pascal 
e C. Porto Alegre: Bookman, 2014.
FORBELLONE, I. V.; EBERSPACHER, H. F. Lógica de programação: a construção de 
algoritmos e estruturas de dados. São Paulo: Prentice Hall, 2005.
GARCIA, N. Linguagem de programação de computadores. E-book, 2007.
JUNIOR, D. P.; NAKAMITI, G. S.; ENGELBRECHT, A. M; BIANCHI, F. Algoritmos e 
programação de computadores. Rio de Janeiro: Elsevier, 2012.
LEITE, M. Técnicas de programação: uma abordagem moderna. Rio de Janeiro: 
Brasport, 2006.
MANZANO, J. A. N. G.; OLIVEIRA, J. F. Algoritmos: lógica para desenvolvimento 
de programação de computadores. São Paulo: Saraiva, 2016.
MELO, D.T. Lógica de programação com VisualG: uma abordagem prática. Mococa-
SP: Ed. do Autor, 2013.
OKUYAMA, F. Y.; MILETTO, E. M.; NICOLAO, M. Desenvolvimento de software: 
conceitos básicos. Porto Alegre: Bookman, 2014.
RITA, S. Treinamento em lógica de programação. São Paulo: Digerati, 2009.
TEIXEIRA, C. Construção de algoritmos no século XXI. Independentes, 2011.
VERGUEIRO, W. Qualidade em serviços de informação. São Paulo: Arte & Ciência, 
2002.
25
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
ALGORITMO
WIKIPÉDIA. Desenvolvido pela Wikimedia Foundation. Apresenta conteúdo 
enciclopédico. Disponível em: <https://pt.wikipedia.org/wiki/Computador>. Acesso 
em: 20 mar. 2017.
Centro Universitário Leonardo da Vinci
Rodovia BR 470, km 71, n° 1.040, Bairro Benedito
Caixa postal n° 191 - CEP: 89.130-000 - lndaial-SC
Home-page: www.uniasselvi.com.br

Outros materiais