Buscar

EM_Capitulo2_vf

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

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

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ê viu 3, do total de 12 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

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

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ê viu 6, do total de 12 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

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

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ê viu 9, do total de 12 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

Prévia do material em texto

Sumário 
 
 
CAPÍTULO 2 – NOÇÕES BÁSICAS SOBRE ALGORITMOS ____________________ 30 
2.1 Introdução ____________________________________________________________ 30 
2.2 Lógica ________________________________________________________________ 30 
2.3 Sequência Lógica_______________________________________________________ 30 
2.4 Instruções _____________________________________________________________ 31 
2.5 O Algoritmo ___________________________________________________________ 32 
2.5.1 Padrão e desvio de Comportamento _____________________________________________ 33 
2.5.2 A arte de pensar para criar _____________________________________________________ 34 
2.6 Exercícios _____________________________________________________________ 37 
2.7 A linguagem algorítmica - Pseudocódigo ___________________________________ 38 
2.8 Regras para Construção de Algoritmos ____________________________________ 38 
2.9 Fases dos Algoritmos – Entrada, Processamento e Saída ______________________ 38 
2.10 Exemplo de algoritmo ___________________________________________________ 39 
2.11 Teste de Mesa _________________________________________________________ 40 
2.12 Exercícios _____________________________________________________________ 40 
 
 
 
 UFMT – Rondonópolis Algoritmo e Técnicas de Programação – Capítulo 2 30 
CAPÍTULO 2 – NOÇÕES BÁSICAS SOBRE 
ALGORITMOS 
 
2.1 Introdução 
 
Este capítulo tem por objetivo despertar no aluno a capacidade de reconhecer os 
requisitos para a construção de um algoritmo. Serão construídos alguns algoritmos que não 
obedecem à regra de construção exigida na matéria, pois somente servem para ilustrar o 
pensamento correto para a construção dos algoritmos. 
 
2.2 Lógica 
 
De acordo com Manzano (1965), para entendermos o que é Lógica precisamos entender 
o que é um problema. Pode-se dizer que problema é uma proposta duvidosa que pode ter 
inúmeras soluções ou é uma questão não resolvida que é objeto de discussão, segundo 
definição do Dicionário Aurélio. 
Para nós, problema é uma questão que foge a uma determinada regra, a qual nos 
impede de atingirmos com sucesso determinado objetivo. Por isso, temos que descobrir as 
regras, a ordem das mesmas e resolver o problema usando um procedimento de 
desenvolvimento. 
A lógica de programação é necessária para pessoas que desejam trabalhar com 
desenvolvimento de sistemas e programas. Ela nos permite definir a sequência lógica para o 
desenvolvimento. 
 
Lógica de programação é a técnica de encadear pensamentos para atingir 
determinado objetivo. 
2.3 Sequência Lógica 
 
Segundo Moraes (2000) estes pensamentos podem ser descritos como uma sequência 
de instruções, que devem ser seguidas para se cumprir uma determinada tarefa. 
 
Sequência lógica são os passos executados até atingir um objetivo ou solução 
de um problema. 
 
 
 UFMT – Rondonópolis Algoritmo e Técnicas de Programação – Capítulo 2 31 
2.4 Instruções 
 
Numa linguagem comum pode-se dizer que instruções são “um conjunto de regras ou 
normas definidas para a realização ou emprego de algo”. Pode-se dizer também que são 
ordens, que quando identificadas, são realizadas. Como exemplo: “Feche os olhos” é uma 
ordem. O ato de fechar os olhos é a execução desta ordem. 
Um conjunto de instruções é determinado para a execução de uma tarefa. Somente este 
conjunto de instruções em uma ordem sequencial lógica é capaz de realizar o processo 
desejado. 
Por exemplo: se quisermos fazer batatas fritas, no estilo palito, precisamos colocar 
em prática uma série de instruções em uma determinada ordem e executá-las para alcançar 
o objetivo. Quais seriam essas instruções? Tente descrevê-las abaixo: 
 
1. 
2. 
3. 
4. 
5. 
 
 
Considerações: 
 
Obviamente que você descreveu as tarefas em uma ordem adequada, ou seja, 
descascou as batatas antes de fritá-las. 
Pode ser que você tenha descrito 3, ou talvez 4 instruções para realizar o nosso 
objetivo e algum outro colega seu fez mais ou até menos instruções para tal fim. Não se 
assuste, isso é normal. Cada pessoa poderá ter uma ideia diferente da outra para a 
realização de uma tarefa. O importante é alcançar o objetivo. Porém, o tempo para a 
realização do processo também conta. Se você resolveu cozinhar as batatas na água e 
depois secá-las antes de fritá-las, demoraríamos mais para come-las, porém elas ficariam 
mais crocantes. Tudo bem se isso for na sua casa, mas se você pensar em uma lanchonete 
e você está na mesa esperando, qual seria a sua reação se demorasse muito para um 
processo tão simples? 
Você deve ter em mente que dependendo do processo a primeira tentativa de 
solucioná-lo pode não ser a melhor nem a mais rápida. Para alcançar seu objetivo você 
deve também procurar uma maneira de otimizar o processo, diminuindo o número de 
instruções, procurar outra forma de resolver o problema, mais eficaz, mais rápida. Porém 
esta mudança jamais poderá influenciar no resultado final. 
 
 
 UFMT – Rondonópolis Algoritmo e Técnicas de Programação – Capítulo 2 32 
 
Colocar uma instrução fora de uma sequência lógica ou uma instrução tomada em 
separado, não tem muito sentido. Para obtermos o resultado, devemos colocar em prática 
todo o conjunto de instruções, na ordem correta. 
 
Instruções é um conjunto de regras ou normas definidas para a realização ou 
emprego de algo. Em informática, é o que indica a um computador uma ação 
elementar a executar. 
 
2.5 O Algoritmo 
 
De acordo com Venancio (1997), algoritmo é um conjunto de regras que permite 
a resolução de um problema ou a execução de um trabalho, através de um número 
finito de operações. 
 
As regras que definem um algoritmo podem ser entendidas como instruções que 
executadas produzem um resultado. 
 
Vamos agora entender como devemos pensar para começarmos a construção de 
algoritmos. Como exemplo, descrevem-se abaixo algumas frases que podem ser 
consideradas como instruções: 
 
“Iniciar a faixa 5 de um Compact Disc (CD)”; 
“Escovar os dentes”; 
“Chamar por alguém através de um nome”; 
“Informar a sua idade”; 
“Atribuir o valor 5,67 a uma variável”. 
 
Esse exemplo não demonstra um conjunto de instruções, nem mesmo possui uma 
sequência lógica de funcionamento. Para entender uma sequência de instruções devemos 
observar os eventos a elas atribuídos. Até mesmo coisas simples podem ser descritas por 
sequências lógicas, por exemplo: 
Pense no seu objetivo: Chupar uma bala. 
Como chegar ao objetivo: as instruções: 
 
Pegar a bala; 
Retirar o papel; 
 
 
 UFMT – Rondonópolis Algoritmo e Técnicas de Programação – Capítulo 2 33 
Chupar a bala; 
Jogar o papel no lixo; 
Agora, outro objetivo: Somar dois números: 
 
Escreva o primeiro número no retângulo A; 
Escreva o segundo número no retângulo B; 
Some o número do retângulo A como o número do retângulo B e coloque o resultado 
no retângulo C; 
 
 
 
 
 
 
 
Sempre que pensamos em um conjunto de instruções devemos pensar que estas 
tem um objetivo em comum e a sequência é definida para transformar um problema em 
solução. 
2.5.1 Padrão e desvio de Comportamento 
 
Vamos agora a um exemplo mais significativo. Imagine como é o seu despertar. 
Observe as ações a seguir e tente imaginar a execução das mesmas sequencialmente: 
 
“Ao toque do despertador, levantar-se”; 
“Tirar o pijama”; 
“Vestir-se adequadamente”; 
“Tomar café da manhã”; 
“Escovar os dentes”; 
 
Se todos os dias você executa esta mesma ação pela manhã, independente de 
mudar de roupa a cada dia, comer algo diferente no café ou mesmo trocar de creme dental 
paraescovar os dentes, sem alteração na sequência das ações, temos o que chamamos de 
padrão de comportamento. 
Um exemplo mais claro de padrão de comportamento seria o conjunto dos números 
pares de 2 a 20, [2,4,6,8,10,12,14,16,18,20], onde de um número a outro a diferença é dois. 
O padrão de comportamento é o incremento de duas unidades de um número para outro. 
 
Retângulo C Retângulo B Retângulo A 
+ = 
 
 
 UFMT – Rondonópolis Algoritmo e Técnicas de Programação – Capítulo 2 34 
Como observador você deve descobrir o padrão de comportamento para a 
resolução de um problema, independente dos fatores externos ou internos que 
possam existir. 
 
Se em um determinado dia você observar que ao invés de vestir-se antes de tomar o 
café da manhã, esta ação foi executada depois de escovar os dentes, temos então um 
desvio do comportamento. 
Um desvio de comportamento é claramente observado no conjunto dos números 
primos de 1 a 15: [1, 2, 3, 5, 7, 11, 13]. Existe um desvio de comportamento toda vez que é 
encontrado um número que seja divisível por mais algum número além do número 1 e do 
próprio número (regra dos números primos). 
Como bom observador você deve ter a capacidade de prever certas ações que 
desviam o comportamento normal de um procedimento e implementar estas características 
para concluir o objetivo. 
 
2.5.2 A arte de pensar para criar 
 
Consideremos o seguinte exemplo: descascar batatas. Observe as ações a seguir: 
 
“Traga a cesta com batatas do porão”; 
“Traga a panela do armário”; 
“Coloque avental”; 
“Descasque as batatas”; 
“Devolva a cesta ao porão”. 
 
Pense agora: 
 
 Como estas ações podem ser incrementadas? 
 O que pode acontecer para que uma ação não aconteça? 
 Existem algumas condições que devem ser verificadas antes ou depois de cada 
ação? 
 De algum modo você pode tornar esta sequência de ações mais rápida? 
Tente descobrir um padrão comportamental e se existe algum desvio possível nesse 
comportamento. 
 
 
 
 UFMT – Rondonópolis Algoritmo e Técnicas de Programação – Capítulo 2 35 
Essa é a tarefa do construtor de algoritmos, do programador, ou mesmo até de um 
analista de sistemas: observar, levantar dados sobre as ações e informações a respeito da 
execução da tarefa. 
 
Pensar antes de fazer. Fazer e observar. Testar as ações escritas. Tornar 
possível o incremento e o decremento de ações no processo da solução do 
problema. 
 
Voltando as questões acima, podemos responder as questões da seguinte forma: 
As ações podem ser incrementadas da seguinte maneira: 
 
Especificar um número de batatas a serem descascadas; 
Especificar que se deve colocar o avental caso esteja com roupas claras. 
 
Pode se imaginar que o cesto de batatas não esteja no porão e sim na cozinha e o 
mesmo esteja vazio, sem nenhuma batata. 
Vamos supor que se deseja descascar 5 batatas e colocar o avental se estiver com 
roupas claras e buscar o cesto no porão caso ele não esteja na cozinha. Então teremos a 
seguinte sequência de ações: 
 
“Se a cesta não estiver na cozinha então busque a cesta no porão”; 
“Traga a panela do armário”; 
“Se estiver com roupas claras, então coloque o avental”; 
“Descasque uma batata”; 
“Descasque uma batata”; 
“Descasque uma batata”; 
“Descasque uma batata”; 
“Descasque uma batata”; 
“Devolva a cesta no porão”. 
 
A sequência de ações acima poderia ser ainda incrementada. Supomos que na cesta 
do porão caibam apenas 50 batatas e que se deseja descascar batatas até que o número de 
batatas seja suficiente, não ultrapassando o máximo de batatas possíveis de serem 
descascadas. A sequência ficaria: 
 
“Se a cesta não estiver na cozinha, então busque a cesta no porão”; 
“Traga a panela do armário”; 
“Se estiver com roupas claras, então coloque o avental”; 
 
 
 UFMT – Rondonópolis Algoritmo e Técnicas de Programação – Capítulo 2 36 
“Se o numero de batatas é insuficiente então Descasque uma batata”; 
“Se o numero de batatas é insuficiente então Descasque uma batata”; 
“Se o numero de batatas é insuficiente então Descasque uma batata”; 
“Se o numero de batatas é insuficiente então Descasque uma batata”; 
. 
. (50 vezes) 
. 
“Devolva a cesta no porão”. 
Assim notamos um comportamento repetitivo nas nossas ações, muito maior que o 
exemplo anterior. Deste modo temos que imaginar um modo de simplificar as instruções 
contidas no conjunto, pois se queremos descascar apenas 10 batatas, ainda teremos que 
responder 40 vezes que não queremos mais descascar para podermos devolver a cesta no 
porão. 
Deste modo a seguinte sequência de ações pode solucionar o nosso problema: 
 
“Se a cesta não estiver na cozinha, então busque a cesta no porão”; 
“Traga a panela do armário”; 
“Se estiver com roupas claras, então coloque o avental”; 
“Enquanto o número de batatas não for suficiente faça Descasque uma batata”; 
“Devolva a cesta no porão”. 
 
Deste modo podemos descascar nenhuma até N batatas escrevendo apenas uma 
linha de ação. 
Segundo Guimarães (1994), há dois conceitos de algoritmo: 
 
 
 
 
 
 
 
 
Os programas de computador nada mais são do que algoritmos escritos em uma 
linguagem de computador (Pascal, C, Cobol, Fortran, Basic, entre outras) e que são 
executados por uma máquina, no caso um computador. 
Um algoritmo é a descrição de um padrão de comportamento, expressado em termos de 
um repertório bem definido e finito de ações “primitivas”, das quais damos por certo que 
elas podem ser executadas. 
Um texto estático, capaz de cobrir toda uma classe de acontecimentos, no mesmo 
nível de detalhe conforme o relato de um observador. 
 
 
 
 UFMT – Rondonópolis Algoritmo e Técnicas de Programação – Capítulo 2 37 
2.6 Exercícios 
 
a) Crie a sua sequência lógica do momento que você acorda até o momento de 
chegar à universidade. 
b) Descreva em detalhes a sequência lógica para trocar um pneu de um carro. 
c) Faça um algoritmo para trocar uma lâmpada. Descreva com detalhes. 
d) Coloque as seguintes instruções em uma ordem lógica de comportamento: 
(Discar para o 102 – Informações): 
 
 ( ) “Pressionar a tecla 2”; 
 ( ) “Colocar o fone no gancho”; 
 ( ) “Anotar o número informado”; 
 ( ) “Pressionar a tecla 0”; 
 ( ) “Pressionar a tecla 1”; 
 ( ) “Aguardar na linha”; 
 ( ) “Tirar o fone do gancho”; 
 ( ) “Solicitar um número de Telefone”; 
 
e) Descreva com suas palavras como você pode ter uma boa sequência de instruções 
para alcançar um objetivo. 
f) Dados dois baldes, um balde azul e um balde amarelo, cada um deles contendo 
tinta nas cores: azul no balde amarelo e amarelo no balde azul. Crie uma sequência 
de instruções para trocar a tinta dos baldes de modo que cada qual fique com a 
tinta de acordo com a sua cor. 
g) Considere que x possui um valor inicial 15 e foram executadas as seguintes 
instruções: 
 X = X + 3; 
 X= X – 6; 
 X = X / 2; 
 X = 3X. 
 
 Qual será o valor de x ao final destas instruções? 
 
 
 
 UFMT – Rondonópolis Algoritmo e Técnicas de Programação – Capítulo 2 38 
2.7 A linguagem algorítmica - Pseudocódigo 
 
Os algoritmos são descritos em uma linguagem chamada pseudocódigo, ou seja, 
falso código. Os algoritmos são independentes de uma Linguagem de Programação (LP). 
Ao contrário de uma LP, não existe um formalismo rígido de como deve ser escrito o 
algoritmo. 
O algoritmo deve ser fácil de ser interpretado e fácil de codificar, ou seja, ele 
deve ser o intermediário entre a linguagem falada e a LP. 
O que vimos até agora é o que chamamos de algoritmos nãocomputacionais. O 
que há de comum entre os algoritmos computacionais e os algoritmos não computacionais 
são que ambos possuem um conjunto de instruções em uma ordem lógica para a execução 
de uma tarefa. 
 
2.8 Regras para Construção de Algoritmos 
 
Para escrevermos um algoritmo precisamos descrever a sequência de 
instruções, de maneira simples e objetiva. Para isso utilizaremos algumas técnicas: 
 Utilizar apenas uma instrução por linha; 
 Ser objetivo; 
 Fazer apenas o que o algoritmo pede. Fazer a mais atrasa o processo e fazer 
a menos o invalida. 
 
2.9 Fases dos Algoritmos – Entrada, Processamento e Saída 
 
Definimos que algoritmos possuem uma ordem lógica de instruções para a 
execução de uma tarefa. Para montar um algoritmo precisamos dividir o problema 
apresentado em três fases fundamentais: 
 
 
 
 
 
 
Onde temos: 
 
ENTRADA PROCESSAMENTO SAÍDA 
 
 
 UFMT – Rondonópolis Algoritmo e Técnicas de Programação – Capítulo 2 39 
Entrada: São os dados de entrada do algoritmo, os valores iniciais que podem 
ser descritos ou solicitados; 
Processamento: São os procedimentos (instruções) utilizados para se alcançar 
o resultado final (objetivo do algoritmo); 
Saída: São os dados processados que podem ser exibidos, retornados ou 
impressos. 
 
2.10 Exemplo de algoritmo 
 
Vamos imaginar o seguinte problema: Calcular a média final dos alunos da terceira 
série. Os alunos realizarão quatro provas: P1, P2, P3 e P4. 
Onde: Média Final (MF) = P1 + P2 + P3 + P4 dividido por 4. 
Para montarmos o algoritmo proposto, responda as seguintes perguntas: 
 
 Quais são os dados de entrada? 
 
 
 Você possui os valores iniciais ou terá que solicitá-los? 
 
 
 Qual será o procedimento a ser executado? 
 
 
 Quais são os dados de saída? 
 
 
 
Algoritmo: 
 
“Receba a nota da Prova 1”; 
“Receba a nota da Prova 2”; 
“Receba a nota da Prova 3”; 
“Receba a nota da Prova 4”; 
“Some as notas recebidas e divida por 4”; 
“Mostre o resultado da divisão”. 
 
 
 UFMT – Rondonópolis Algoritmo e Técnicas de Programação – Capítulo 2 40 
 
2.11 Teste de Mesa 
 
Após o desenvolvimento de um Algoritmo ele deverá ser sempre testado. Este 
teste é conhecido como Teste de Mesa, que significa, seguir as instruções do algoritmo de 
maneira precisa para verificar se o procedimento utilizado para a resolução do problema 
está correto ou não. 
O teste deve ser realizado com a criação de uma tabela que sugere o 
mapeamento de uma memória computacional com o espaço para todos os dados, tanto de 
entrada como de saída, que deve ser preenchida conforme a execução do algoritmo numa 
forma sequencial. 
 
 Sugerimos a tabela abaixo para o teste do algoritmo acima. Percorra o algoritmo e 
preencha a tabela abaixo conforme a posição dos dados. 
 
P1 P2 P3 P4 MF 
 
 
 
 
 
2.12 Exercícios 
 
a) Identifique os dados de entrada, processamento e saída do seguinte algoritmo: 
“Receba o Código da peça”; 
“Receba o Valor da peça”; 
“Receba a Quantidade de peças”; 
“Calcule o valor total de peças (Qtd multiplicado pelo valor da peça)”; 
“Mostre o código da peça e seu valor total”. 
 
b) Faça um algoritmo para calcular o estoque médio de uma peça, sendo que 
ESTOQUEMEDIO = (QUANTIDADE MÍNIMA + QUNTIDADE MÁXIMA) dividido por 2. 
 
c) Escreva um algoritmo que recebe três valores e informe a soma dos mesmos.

Outros materiais