Buscar

Unidade1

Prévia do material em texto

Conteudista
Prof. Me. Claudiney Sanches Júnior
Revisão Textual
Aline de Fátima Camargo da Silva
Algoritmos
2
Sumário
Objetivos da Unidade .......................................................................................... 3
A Necessidade de Pensar .................................................................................... 4
Algoritmo .................................................................................................................... 6
Como Construir um Algoritmo ................................................................................. 9
Material Complementar ................................................................................... 19
Autoatividade ..................................................................................................... 20
Referências ......................................................................................................... 21
Gabarito .............................................................................................................. 22
3
•	 Analisar	programas	de	computadores	a	fim	de	identificar	sua	estrutura	e	
funcionalidade;
• Descrever a relação entre algoritmos e a solução de problemas computa-
cionais;
• Demonstrar a aplicação do processo de criação de algoritmos em contex-
tos diversos;
• Avaliar e comparar diferentes conceitos de algoritmos para desenvolver 
soluções	coerentes	e	válidas	em	problemas	específicos.
Objetivos da Unidade
Este arquivo PDF contém o mesmo conteúdo visto on-line. Sua disponibili-
zação é para consulta off-line e possibilidade de impressão. No entanto, re-
comendamos que acesse o conteúdo on-line para melhor aproveitamento.
4
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, elas 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 hu-
mano, 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 tor-
nar capaz qualquer leitor que queira preparar o prato. Desse modo, usamos 
a lógica de Programação com o objetivo de aprender a construir Programas 
coerentes e válidos. 
Figura 1 – Programador
Fonte: Freepik
#ParaTodosVerem: a imagem mostra mãos humanas digitando em um teclado de computador. Fim da 
descrição.
Antes de iniciar o desenvolvimento de qualquer solução, é fundamental conhe-
cer profundamente o problema que se pretende solucionar: saber quais serão 
as entradas, as saídas que se esperam do Sistema e como elas serão validadas. 
Para entender melhor a necessidade de uma análise do problema, considere a 
situação de uma pessoa que observa vários indivíduos tomando café em uma 
padaria: algumas escolhem adoçantes, enquanto outras escolhem açúcar. As 
5
que escolhem adoçante são, na maioria, obesas; e as que escolhem açúcar, são 
magras. 
Uma rápida análise pode levar o observador ao seguinte raciocínio lógico: ado-
çante engorda, pois a maioria que usa é obesa, e açúcar emagrece; conclusão 
equivocada, por não analisar bem o problema. 
Em geral, os programadores não fazem o planejamento e uma análise do proble-
ma, preferindo partir logo para a fase de codificação do Programa, mas ir logo 
para o microcomputador pode ser uma grande armadilha. 
Figura 2 – Programação
Fonte: Freepik
#ParaTodosVerem: a imagem mostra uma pessoa sentada à uma mesa, ela usa fones de ouvido. À sua 
frente, um computador e um laptop. Fim da descrição.
Esses programadores estão na mesma situação de uma pessoa que pretende 
construir uma casa, iniciando 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.
6
Algoritmo
Um Algoritmo é uma sequência de passos que visam a atingir objetivos bem de-
finidos em um determinado período de tempo. Ele é composto por instruções 
nítidas e bem definidas, com o objetivo de resolver o problema; é um caminho 
que leva à solução; uma norma de solução a ser trilhada. 
Figura 3 – Algoritmos
Fonte: Freepik
#ParaTodosVerem: a imagem mostra mãos humanas digitando em um computador. O teclado possui uma 
iluminação colorida. Fim da descrição.
Sempre que executado, sob as mesmas condições, produz o mesmo resul-
tado; uma vez construído, poderá ser traduzido em qualquer Linguagem de 
Programação, agregado às funcionalidades disponíveis no ambiente de desen-
volvimento. Costumamos chamar esse processo de Codificação.
Nesse momento, já temos um vocabulário básico que você precisa relembrar:
7
Glossário
• Programa: conjunto de instruções claro e objetivo, disposto 
logicamente;
• Algoritmo: sequência de passos que visam a atingir um ob-
jetivo 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 focalizará no que é relevante, a lógica da construção do Algoritmo. 
Outro fator primordial é que o Algoritmo é independente da Linguagem, pos-
sibilitando que ele seja codificado em diferentes Linguagens, incorporando as 
funcionalidades disponíveis nos diversos ambientes. 
Você conseguiria 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;
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.
8
Como você faria com a previsão de falta de algum ingrediente? 
Seria lógico imaginar que os itens com maior probabilidade de faltar neste 
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 probabilida-
de de faltar e de fazer variações do Algoritmo de fazer café. 
Existem inúmeras possibilidades de caminhos, mas só será considerado correto 
a via que levará a solução e atingir o objetivo. O que ocorreu, neste 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”.
9
Esse Algoritmo está correto, uma vez que atingeseu objetivo; porém, pode ser 
melhorado; quando o aprimoramos, 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ê precisará localizar as en-
tradas 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 será a próxima 
etapa, tendo foco nos resultados. 
Figura 4 – Processamento de dados
Fonte: Freepik
#ParaTodosVerem: a imagem mostra uma “chuva” de dados formados por números e letras em tons de 
azul e magenta. Fim da descrição.
Com esses dados em mãos, você determinará quais passos são necessários para 
transformar as entradas nas saídas desejadas. Depois de estabelecidos os pas-
sos de transformação, você irá construir o Algoritmo e definir os testes. 
Estes são os passos para Construção de Algoritmo: 
10
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 as 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ê necessitará identificar os 
itens 2, 3 e 4, isto é, Entrada, Processamento e Saída. 
Se preferir, poderá responder às seguintes perguntas:
• O que é preciso para fazer? – Com essa pergunta, você conseguirá iden-
tificar 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 proces-
samento. Determinará o passo 4, como deve ser feito, as regras do 
Algoritmo, as limitações e as ações necessárias;
• 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:
11
1. Entrada: (O que preciso?)
• Primeiro número;
• Segundo número.
2. Processamento: (Como chegar ao que quero?)
• Somar os números.
3. Saídas: (O que quero?)
• Números somados.
Agora, fica bem fácil você construir o Algoritmo. Colocando a sequência em for-
ma de comandos, temos:
• Solicite o primeiro número;
• Grave em primeiroN;
• Solicite o segundo número;
• Grave em segundoN;
• Grave em Soma <- primeiroN + segundoN;
• Escreva o valor de Soma.
Como você observou, os passos para a soma de dois números possuem 
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 
às variáveis primeiroN, segundoN e Soma para o Algoritmo.
12
As variáveis são espaços reservados para armazenar dados que utilizamos quan-
do necessário; na construção de um Algoritmo, seria como reservar um espaço 
para que, quando preenchido, possa ser usado. 
No ambiente computacional, as informações são guardadas em um dispositivo 
eletrônico chamado de memória. Você pode imaginar esta como um armário 
repleto de gavetas, que são os locais físicos responsáveis por armazenar objetos. 
Figura 5 – Memória
Fonte: Freepik
#ParaTodosVerem: a imagem mostra uma mão humana segura uma memória de computador, dispositivo 
retangular com detalhes preto, verde e dourado. Fim da descrição.
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 usar no futuro, seria como colocar uma etiqueta na gaveta, 
sendo que cada gaveta pode guardar apenas um dado, sempre do mesmo tama-
nho 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.
13
Saiba Mais
A memória do Computador é formada por inúmeros compo-
nentes 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 arma-
zenamento de um caractere. Diferentes quantidades de bytes 
são agrupadas com o objetivo de armazenar tipos diversos de 
dados e o Sistema só pode manipular os dados se houver iden-
tificaçã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 do uso em Algoritmos de variáveis, é possível que você adote 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.
14
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:
1. Entrada: (O que preciso?)
 Constante:
 • mediaAprovado >= 6,0;
 • mediaReprovado < 3,0.
 Variável:
 • notaProva;
 • notaExercicio.
2. 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
3. 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 for-
ma de comandos, temos:
15
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;
11. início
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”;
16
Observe que o Algoritmo ganhou um texto entre { }, que significa a inserção 
de comentários os quais não influenciam a execução do programa. No final de 
cada instrução também existe um ponto-e-vírgula (;), cujo 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 refina-
mento que recebe o nome de Português Estruturado.
Figura 6 – Linguagem de programação
Fonte: Freepik#ParaTodosVerem: a imagem mostra uma mão humana que toca com o dedo indicador em uma tela, na 
qual estão códigos de programação. Fim da descrição.
21. senão
22. se mediaFinal < mediaReprovado então
23. escrever “Reprovado”;
24. senão
25. escrever “Exame”;
26. fimSe
27. fimSe.
17
O Português Estruturado é uma forma de representação de Algoritmos consi-
derada 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 em uma Linguagem corrente. 
Para que o Algoritmo rode de forma a se tornar um Programa escrito em 
Português Estruturado, você deverá refiná-lo, acrescentado os tipos primiti-
vos das variáveis, as quais têm de ser definidas segundo o tipo de dados que 
a receberá.
 Os tipos podem modificar de acordo com a Linguagem de Programação escolhi-
da, 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 intei-
ros. São exemplos destes: 20; 0; 
-125 e 40.
Real
Pode armazenar qualquer valor 
pertencente ao conjunto dos nú-
meros reais e inteiros (nulo, po-
sitivo ou negativo). São exemplos 
de números inteiros -22,4; 0; 8 e 
5,30.
Caractere
Pode armazenar valores alfanu-
méricos e caracteres especiais, 
por exemplo, “Análise de Siste-
mas”, “Rebecca”, “Thaís” e “ok”.
Lógico
Pode armazenar apenas valores 
verdadeiro (V) – true ou falso (F) 
– false.
Em resumo, neste texto, exploramos os conceitos fundamentais relacionados 
à estruturação de algoritmos e à representação em Português Estruturado. 
Observamos como os comentários e pontos-e-vírgulas são cruciais para a clare-
za e a precisão na escrita de algoritmos, e como o ponto final marca o término 
do programa. 
Além disso, discutimos a importância de refinarmos os algoritmos, adicionando 
tipos primitivos às variáveis de acordo com o tipo de dados que elas irão conter. 
18
Essa ação é essencial para que o algoritmo se torne um programa eficaz em 
Português Estruturado. 
Ainda, destacamos os tipos básicos de programação, como Inteiro, Real, Caractere 
e Lógico, e como eles são usados para armazenar diferentes tipos de informa-
ções. Compreender esses conceitos é um passo fundamental no caminho para 
se tornar um programador competente e eficiente.
19
Sites
Portugol WebStudio
O Portugol WebStudio é uma ferramenta on-line que auxilia na aprendiza-
gem de programação usando a linguagem Portugol. 
https://bit.ly/3uNnBMx
Portugol – Download
Esta é outra ferramenta relacionada ao Portugol, que permite o desen-
volvimento de algoritmos e programas, você pode fazer o download da 
ferramenta por meio deste link:
https://bit.ly/4194VTB
Livro
Fundamentos da Programação de Computadores 
Este livro é uma valiosa referência para quem deseja aprofundar seus co-
nhecimentos em programação. Ele aborda os conceitos fundamentais da 
programação de computadores.
ASCENCIO, A. F. G.; CAMPOS, E. A. V. Fundamentos da Programação de 
Computadores. Pearson, 2012.
Vídeo
Portugol – Introdução aos Algoritmos
Este é um vídeo de introdução aos algoritmos usando a linguagem Portu-
gol. O vídeo fornece uma visão geral do processo de desenvolvimento de 
algoritmos, o que é fundamental para qualquer pessoa que deseje apren-
der a programar.
https://www.youtu.be/zflLegafGA
Material Complementar
20
1 – Qual das alternativas a seguir define corretamente o conceito de algorit-
mo? Assinale a alternativa correta.
a. Um algoritmo é uma sequência de instruções que descreve como resolver 
um problema específico.
b. Um algoritmo é uma sequência de comandos que descreve como executar 
um programa.
c. Um algoritmo é uma sequência de passos que descreve como realizar uma 
tarefa.
Autoatividade
Atenção, estudante! Veja o gabarito desta autoatividade no fim deste conteúdo.
21
CARBONI, I. de F. Lógica de Programação. São Paulo: Pioneira Thomson Learning, 
2003.
FORBELLONE, A. L. V.; EBERSPÄCHER, H. F. Lógica de programação: a constru-
ção de Algoritmos e estruturas de dados. 3. ed. São Paulo: Prentice Hall, 2005.
MAGRI, J. A. Lógica de Programação: ensino prático. São Paulo: Érica, 2003.
UCCI, W.; SOUZA, R. L.; KOTANI, A. M. Lógica de programação: os primeiros pas-
sos. 2. ed. São Paulo: Érica, 1991.
Referências
22
Questão 1 
a) Um algoritmo é uma sequência de instruções que descreve como resolver 
um problema específico.
Feedback: a definição correta de algoritmo é aquela que o descreve como uma 
sequência de instruções que esboça como resolver um problema específico. As 
demais alternativas não estão corretas, pois descrevem o algoritmo como uma 
sequência de comandos ou passos, mas não especificam que esses comandos 
ou passos são instruções para resolver um problema específico.
Gabarito
	Objetivos da Unidade
	A Necessidade de Pensar
	Algoritmo
	Como Construir um Algoritmo
	Material Complementar
	Autoatividade
	Referências
	Gabarito

Continue navegando