Você está na página 1de 18

Lógica de Programação I

MATERIAL TEÓRICO
UNIDADE 1

Algoritmos

Autoria:
Prof. Me. Claudiney Sanches Junior
Prof. Me. Alexander Gobbato Paulino

Revisão Textual:
Prof.ª Dr.ª Selma Aparecida Cesarin
Orientações de estudo
Para que o conteúdo desta Disciplina seja bem aproveitado e haja maior aplicabilidade na
sua formação acadêmica e atuação profissional, siga algumas recomendações básicas:

Seja original! Conserve seu


Procure manter contato Nunca plagie material e local
com seus colegas e tutores trabalhos. de estudos sempre
para trocar ideias! Isso organizados.
amplia a aprendizagem.

Não se esqueça
de se alimentar
Aproveite as e de se manter
indicações hidratado.
de Material
Complementar.

Mantenha o foco!
Evite se distrair com Determine
as redes sociais. um horário fixo
para estudar.

Assim:
Organize seus estudos de maneira que passem a fazer
parte da sua rotina. Por exemplo, você poderá determinar um
dia e horário fixos como seu “momento do estudo”;

Procure se alimentar e se hidratar quando for estudar; lembre-se de que


uma alimentação saudável pode proporcionar melhor aproveitamento do estudo;

No material de cada Unidade, há leituras indicadas. Entre elas, artigos científicos, livros, ví-
deos e sites para aprofundar os conhecimentos adquiridos ao longo da Unidade. Além disso,
você também encontrará sugestões de conteúdo extra no item Material Complementar, que
ampliarão sua interpretação e auxiliarão no pleno entendimento dos temas abordados;

Após o contato com o conteúdo proposto, participe dos debates mediados em fóruns de
discussão, pois irão auxiliar a verificar o quanto você absorveu de conhecimento, além de
propiciar o contato com seus colegas e tutores, o que se apresenta como rico espaço de troca
de ideias e de aprendizagem.
Unidade 1
Algoritmos

A Necessidade
de Pensar
Os Computadores são máquinas fascinantes que
muitas vezes podem dar a impressão de possuir
inteligência; porém, essas máquinas não têm a
capacidade de pensar, mas sim apenas uma enorme
capacidade de ler, processar e armazenar dados.

A definição de quando e quais dados devem ser


processados cabe ao ser humano, criando, assim,
os Programas de Computadores. Para ilustrar o
conceito de Programa, podemos compará-lo à receita
culinária, que é um conjunto de instruções claras e
objetivas, dispostas logicamente, com a intenção de
tornar capaz qualquer leitor que queira preparar o
prato. Assim, utilizamos a lógica de Programação
com o objetivo de aprender a construir Programas
coerentes e válidos.
Objetivos
Antes de iniciar o desenvolvimento de qualquer
• Estudar a lógica de programação solução, é fundamental conhecer profundamente o
que dá suporte ao raciocínio problema que se pretende solucionar: saber quais
que o ser humano precisa
desenvolver para resolver um serão as entradas, as saídas que se esperam do Sis-
problema de Processamento de tema e como elas serão validadas.
Dados; sem esse raciocínio, a
programação não tem sentido. Para entender melhor a necessidade de uma aná-
• Escolher uma Linguagem de lise do problema, considere a situação de uma pes-
Programação e tentar escrever soa que observa várias pessoas tomando café numa
comandos não produzirá os
padaria: algumas escolhem adoçantes, enquanto
resultados esperados. O estudo
dos principais conceitos de lógica outras escolhem açúcar. As que escolhem adoçante
de Programação o ajudará a se são, na maioria, obesas, e as que escolhem açúcar
tornar um programador melhor.
são magras.

Uma rápida análise pode levar o observador ao se-


guinte raciocínio lógico: adoçante engorda, visto que
a maioria que usa é obesa, e açúcar emagrece; con-
clusão equivocada, por não analisar bem o problema.

Em geral, os programadores não fazem o


planejamento e uma análise do problema, preferindo
partir logo para a fase de codificação do Programa,
mas ir logo para o microcomputador pode ser uma
grande armadilha.

6
Esses programadores estão na mesma situação de uma pessoa que pretende
construir uma casa, que inicia as obras sem uma planta. Logo que as paredes
estão erguidas, descobre-se que os cômodos ficaram pequenos, sem ventilação e
que não estão voltados para o sol, sendo necessário reiniciar o trabalho.

Assim, não cometa o erro de iniciar a Programação sem uma planta. Na


Engenharia Civil, a planta determina onde e como será a casa, enquanto em
Computação podemos optar pelos Algoritmos e pelos Fluxogramas.

Algoritmo
Um Algoritmo é uma sequência de passos que visam a atingir objetivos bem
definidos em um determinado período de tempo. É composto por instruções
claras e bem definidas, com o objetivo de resolver o problema; é um caminho que
leva à solução; uma norma de solução a ser trilhada.

Sempre que executado, sob as mesmas condições, produz o mesmo


resultado; uma vez construído, poderá ser traduzido em qualquer Linguagem
de Programação, agregado às funcionalidades disponíveis no ambiente de
desenvolvimento. Costumamos chamar esse processo de Codificação.

Nesse momento, já temos um vocabulário básico que você precisa relembrar:

GLOSSÁRIO
Programa: conjunto de instruções claro e objetivo, disposto logicamente;
Algoritmo: sequência de passos que visam a atingir um objetivo em um determinado
período de tempo;
Análise: levantamento e entendimento do problema.

O Algoritmo é importante, pois representa fielmente o raciocínio lógico e


permite resumir os passos necessários na resolução do problema. Dessa forma,
você não irá se distrair com detalhes computacionais que podem ser acrescentados
mais tarde e focará no que é importante, a lógica da construção do Algoritmo.

Outro fator importante é que o Algoritmo é independente da Linguagem,


permitindo que ele seja codificado em diferentes Linguagens, incorporando as
funcionalidades disponíveis nos diversos ambientes.

Você consegue imaginar, por exemplo, um Algoritmo para “fazer café”?

Seria assim:

1. Encha a chaleira com 750 ml de água;

2. Coloque a chaleira para ferver;

7
Unidade 1
Algoritmos

3. Coloque o filtro no porta-filtro;

4. Coloque duas colheres de sopa de café no filtro;

5. Após a água ter fervido, acrescente aos poucos 500 ml de água sobre o filtro;

6. Aguarde coar;

7. Adoce a gosto.

Se os passos forem seguidos, uma pessoa consegue atingir o objetivo de fazer


café, mas, essa sequência poderia ser escrita de outra forma, visto que ela parte
do princípio de que todos os ingredientes estavam disponíveis.

Como você faria com a previsão de falta de algum ingrediente?

Seria lógico imaginar que os itens com maior probabilidade de faltar nesse
Algoritmo são o pó de café e o filtro.

Assim, refinando o Algoritmo, temos:

1. Encha a chaleira com 750 ml de água;

2. Coloque a chaleira para ferver;

3. Enquanto a chaleira está no fogo

4. Se houver filtro, coloque o filtro no porta-filtro;

5. Senão, desligue a chaleira, vá até o Mercado comprar filtro e volte ao 2;

6. Se houver café, coloque duas colheres de sopa de café no filtro;

7. Senão, desligue a chaleira, vá até o Mercado comprar café e volte ao 2;

8. Após a água ter fervido, acrescente aos poucos 500 ml de água sobre o filtro;

9. Aguarde coar;

10. Adoce a gosto.

Você pode notar que todo Algoritmo é composto por instruções ou comandos
bem definidos, com o objetivo de resolver o problema proposto. No exemplo,
você poderia discordar dos itens selecionados, como tendo a maior probabilidade
de faltar e de fazer variações do Algoritmo de fazer café.

Existem inúmeras possibilidades de caminhos, mas só será considerado


correto o caminho que levar à solução e atingir o objetivo.

O que ocorreu nesse exemplo foi a inclusão de dois testes seletivos, por meio
de uma condição que determina qual ou quais ações serão executadas.

Na versão anterior, você observa que todas as ações são executadas, enquanto
na segunda versão há ações que dependem do teste de verdadeiro ou falso, como
quando perguntamos “se houver filtro” então “coloque o filtro”.

8
Esse Algoritmo está correto, vez que atinge seu objetivo; porém, pode ser
melhorado; quando o melhoramos, estamos refinando o Algoritmo.

A próxima seção detalhará um pouco mais sobre como criar Algoritmos e quais
são os passos necessários.

Como Construir um Algoritmo


Primeiro, deve-se identificar o problema e o objetivo do Algoritmo, fazendo a
leitura do enunciado ou da questão. Em seguida, você deve localizar as entradas
de dados, ou seja, as informações que serão fornecidas e, a partir delas, verificar
os cálculos ou processamento. A identificação das saídas é a próxima etapa, tendo
foco nos resultados.

Com esses dados em mãos, você determina quais passos são necessários para
transformar as entradas nas saídas desejadas. Depois de estabelecidos os passos
de transformação, você irá construir o Algoritmo e definir os testes. A figura 1
apresenta os passos de forma detalhada.

ATENÇÃO!
Passos para Construção de Algoritmo
1º Identificar objetivo;
2º Identificar as “entradas de dados”;
3º Identificar as “saídas de dados”;
4º Determinar o que deve ser feito para transformar entradas em saídas:
- Observar a regras;
- Obedecer a limitações inclusive do computador;
- Determinar ações possíveis de serem realizadas;
5º Construir o Algoritmo;
6º Testar a solução.

Antes de começar a formalização do Algoritmo, você deve identificar os itens


2, 3 e 4, ou seja, Entrada, Processamento e Saída. Se preferir, poderá responder
às seguintes perguntas:

• O que é preciso para fazer? – Com essa pergunta, você conseguirá identificar
as entradas de dados do Algoritmo, ou seja, você dominará o passo 2. Crie
uma lista com todas as entradas;

• Como chegar ao que quero? – Essa pergunta vai localizar o processamento.


Determinará o passo 4, como deve ser feito, as regras do Algoritmo, as
limitações e as ações necessárias;

9
Unidade 1
Algoritmos

• O que quero? – Essa pergunta vai ajudá-lo a identificar as saídas do Sistema.

Para facilitar o seu entendimento de como as perguntas podem colaborar no


processo de elaboração, vamos a um exemplo.

Imagine que você queira criar um Algoritmo para somar dois números. Assim,
teríamos:

Entrada: (O que preciso?)

• Primeiro número;

• Segundo número.

Processamento: (Como chegar ao que quero?)

• Somar os números.

Saídas: (O que quero?)

• Números somados.

Agora fica bem fácil você construir o Algoritmo. Colocando a sequência em


forma de comandos, temos:

1. Solicite o primeiro número;

2. Grave em primeiroN;

3. Solicite o segundo número;

4. Grave em segundoN;

5. Grave em Soma <- primeiroN + segundoN;

6. Escreva o valor de Soma.

Como você observou, os passos para a soma de dois número têm sequência
lógica: você não consegue somar os números sem ter as entradas e sem saber
quais são os números que a pessoa vai utilizar; por isso atribuímos as variáveis
primeiroN, segundoN e Soma para o Algoritmo.

As variáveis são espaços reservados para armazenar dados que utilizamos


quando necessário; na construção de um Algoritmo, seria como reservar um
espaço para que, quando preenchido, possa ser utilizado.

No ambiente computacional, as informações são guardadas em um dispositivo


eletrônico chamado de memória. Você pode imaginar a memória como um armário
repleto de gavetas, que são os locais físicos responsáveis por armazenar objetos.

Os objetos podem ser substituídos, assim como uma variável pode ter seu
dado alterado. Quando se atribui um nome a uma variável, estamos identificando
uma das gavetas. Para utilizar no futuro, seria como colocar uma etiqueta na

10
gaveta, sendo que cada gaveta pode guardar apenas um dado, sempre do mesmo
tamanho da reserva inicial.

A utilização da memória é feita pelo programador, mas o Sistema Operacional


gerenciará e deverá tornar transparente ao programador seu controle de acesso,
velocidade, segurança dos dados e disponibilidade.

VOCÊ SABIA?
A memória do Computador é formada por inúmeros componentes eletrônicos
com capacidade de armazenar os dados na forma binária, ou seja, por meio de
0 e 1, denominado BIT. O agrupamento de 8 bits forma 1 BYTE e nele é possível o
armazenamento de um caractere. Diferentes quantidades de bytes são agrupadas
com o objetivo de armazenar tipos diferentes de dados e o Sistema só pode manipular
os dados se houver identificação que represente o endereço de armazenamento.
Assim, o nome que você atribui a um espaço reservado na memória receberá essa
identificação e permitirá sua manipulação.

Além da utilização em Algoritmos de variáveis, é possível que você utilize


constantes. Uma constante é um dado que não sofre nenhuma alteração no
decorrer do tempo, isto é, seu valor é constante do início até o fim da execução
do Algoritmo e no tempo. Uma constante das mais conhecidas é o número π, que
tem o valor constante de 3.1415926535.

As variáveis e as constantes têm um nome que as identifica e que deve ser


criado conforme as seguintes regras:

• O primeiro caractere deve ser uma letra;

• Os nomes devem ser formados por caracteres pertencentes às letras do


alfabeto e aos números. Se o identificador for composto por mais de uma
palavra, a segunda palavra deve iniciar com o caractere em maiúscula;

• Não pode haver espaços em branco no identificador;

• Os nomes escolhidos devem ser explicativos do seu conteúdo;

• Nomes longos dificultam a codificação e por isso devem ser evitados;

• Não utilizar acentuação ou cedilha;

• Os nomes das variáveis não podem ser os mesmos de palavras reservadas da


Linguagem de Programação que será utilizada.

Com essa definição em mente, vamos a outro exemplo.

Construir um Algoritmo para calcular a média e verificar se um aluno terá


exame, sabendo que a prova tem peso 6,0 e os exercícios 4,0 e o usuário irá
digitar de 0 a 10 cada nota:

11
Unidade 1
Algoritmos

Entrada: (O que preciso?)

Constante

• mediaAprovado >= 6,0;

• mediaReprovado < 3,0.

Variável:

• notaProva;

• notaExercicio.

Processamento: (Como chegar ao que quero?)

Corrigir notaProva para peso 6,0

Corrigir notaExercicio para peso 4,0

Somar as notas

Se maior que mediaAprovado então aprovado

Senão

Se verificar menor mediaReprovado

então reprovado

Senão exame

Saída: (O que quero?)

mediaFinal;

Situação – aprovado, exame ou reprovado.

Vamos ver como fica a construção do Algoritmo. Colocando a sequência em


forma de comandos, temos:

1. Programa CalculaStatusAluno;

2. {Declaração das Variáveis}

3. variavel real notaProva <-0.0;

4. variavel real notaExercicios <-0.0;

5. variavel real mediaFinal <-0.0;

6. variavel real corrigirNotaProva <-0.0;

7. variavel real corrigirNotaExercicio <-0.0;

8. {Declaração das Constantes}

9. constante real mediaAprovado <- 6,0;

10. constante real mediaReprovado <- 3,0;

12
11. inicio

12. escrever “Digite a Nota da Prova:”;

13. ler notaProva;

14. escrever “Digite a Nota dos Exercícios:”;

15. ler notaExercicios;

16. corrigirNotaProva <- notaProva*0,60;

17. corrigirNotaExercicio <- notaExercicio*0,40;

18. mediaFinal<- corrigirNotaProva+corrigirNotaExercicio;

19. se mediaFinal >= mediaAprovado então

20. escrever “Aprovado”;

21. senão

22. se mediaFinal < mediaReprovado então

23. escrever “Reprovado”;

24. senão

25. escrever “Exame”;

26. fimSe

27. fimSe.

Observe que o Algoritmo ganhou um texto entre { }, que significa a inserção


de comentários que não influenciam a execução do programa. No final de cada
instrução também existe um ponto-e-vírgula ( ; ), que tem como objetivo avisar
ao Computador que a instrução acabou e que haverá outra em seguida.

O ponto ( . ) significa o fim do Programa. O Algoritmo na primeira linha atribui


um nome para o Programa. Essa estrutura é a representação do processo de
refinamento que recebe o nome de Português Estruturado.

O Português Estruturado é uma forma de representação de Algoritmos


considerada por muitos como pseudolinguagem de Programação. Pode ser
atribuída por alguns autores como Portugol ou pseudocódigo, que representa a
lógica para resolver um problema numa Linguagem corrente.

Para que o Algoritmo rode de forma a se tornar um Programa escrito em


Português Estruturado, você deve refiná-lo, acrescentado os tipos primitivos das
variáveis, que têm de ser definidas segundo o tipo de dados que a receberá.

Os tipos podem variar de acordo com a Linguagem de Programação escolhida,


mas os tipos básicos de Programação permanecem e são assim especificados:

• Inteiro: pode armazenar números de qualquer natureza (nulo, positivo ou


negativo), desde que pertença ao conjunto dos números inteiros. São exem-
plos de números inteiros 20; 0; -125 e 40;

13
Unidade 1
Algoritmos

• Real: pode armazenar qualquer valor pertencente ao conjunto dos números


reais e inteiros (nulo, positivo ou negativo). São exemplos de números
inteiros -22,4; 0; 8 e 5,30;

• Caractere: pode armazenar valores alfanuméricos e caracteres especiais,


como, por exemplo, “Análise de Sistemas”, “Rebecca”, “Thaís” e “ok”;

• Lógico: pode armazenar apenas valores verdadeiro (V) – true ou falso (F) –
false.

EXPLORE
Alguns exemplos de implementação de Portugol para testar podem ser
encontrados em:
PortugolIDE – https://goo.gl/fcKjF6
WebPortugol – https://goo.gl/HpdwXH

14
Material Complementar
Indicações para saber mais sobre os assuntos abordados nesta Unidade:

Exemplos de implementação de Portugol para testar seu Algoritmo podem ser encontrados.
Acesse os links e explore as ferramentas e se lembre de que os autores das ferramentas de-
senvolveram variações do Portugol, de maneira que o Algoritmo deve sofrer ajuste para rodar
nos ambientes, mas esses ajustes são abordados por eles no help ou no site das ferramentas;

Vídeos

Portugol - Introdução aos Algoritmos #1


https://youtu.be/_zflLegafGA

Livros
Fundamentos da Programação de Computadores
Ana Fernanda Gomes Ascencio, Edilene Aparecida Veneruchi de Campos.
Ler Capitulo 1 – Conceitos Básicos.

Sites
Portugol
https://goo.gl/yQovXA

WebPortugol
https://goo.gl/HpdwXH

15
Unidade 1
Algoritmos

Referências
CARBONI, Irenice de Fátima. Lógica de Programação. São Paulo: Pioneira
Thomson Learning, 2003.

FORBELLONE, André Luiz Villar; EBERSPÄCHER, Henri Frederico. Lógica de


programação: a construção de Algoritmos e estruturas de dados. 3.ed. São Paulo:
Prentice Hall, 2005.

MAGRI, João Alexandre. Lógica de Programação: ensino prático. São Paulo:


Érica, 2003.

UCCI, Waldir; SOUZA, Reginaldo Luiz; KOTANI, Alice Maymi. Lógica de


programação: os primeiros passos. 2.ed . São Paulo: Érica, 1991

16
São Paulo
2018

Você também pode gostar