A maior rede de estudos do Brasil

Grátis
62 pág.
DevC++

Pré-visualização | Página 3 de 12

QI - Escola de Educação Profissional 
Apostila de Lógica de Programação 
 
Professor: Eduardo Reus Souza 5 
Introdução 
A disciplina introduz o estudo da programação, destacando a construção de algoritmos. 
Abrange os conceitos fundamentais da programação até o uso de estruturas básicas de 
dados (vetores, matrizes e registros). 
 
QI - Escola de Educação Profissional 
Apostila de Lógica de Programação 
 
Professor: Eduardo Reus Souza 6 
Aula 1 
Apresentação da Disciplina 
1. Considerações iniciais 
1.1. Lógica e Lógica de Programação 
Lógica de programação é a técnica de encadear pensamentos para atingir 
determinado objetivo. Estes pensamentos podem ser descritos como uma seqüência de 
instruções que devem ser seguidas para se cumprir uma determinada tarefa. Gerando ao 
final o que chamamos de programa. 
1.2. Problema 
A definição mais simples para problema é uma situação que precisa ser resolvida 
1.3. Algoritmo 
Algoritmo é uma seqüência ordenada e finita de passos lógicos, bem definas e 
eficazes para a solução de um problema em um tempo finito. 
Reparem que algoritmo não está diretamente relacionado à informática. Uma receita de 
bolo, por exemplo, seria um algoritmo que iria solucionar um problema específico do 
cotidiano humano. 
Reparem também que para um problema podemos ter diversos algoritmos, e que 
muitas vezes, estes só funcionariam dependendo de fatores externos. Como fazer um 
bolo de chocolate visto que faltou luz? A solução provavelmente será diferente da 
solução convencional. 
1.4. Programa 
Um programa não mais é do que um algoritmo computacionalmente aplicável. Isto 
é, serve para resolvermos problemas exclusivos do ambiente computacional. 
Todo programa é um algoritmo, porém nem todo algoritmo é um programa. 
1.5. Formas de se representar um Algoritmo 
Existem várias formas de se representar um algoritmo. Uma delas é escrevê-lo 
através da linguagem natural que usamos no dia-a-dia. Esta maneira, porém, podem 
levar a muitas ambigüidades, passíveis de interpretações errôneas. 
Outra forma de se representar os algoritmos são os fluxogramas convencionais, que 
usam formas geométricas diferentes para as diversas ações. Este método é bastante 
popular pela sua facilidade de compreensão, mas é um pouco limitado, preocupando-se 
muito com detalhes de nível físico da implementação do algoritmo. Outros tipos de 
fluxogramas mais modernos foram criados, mas não obtiveram a mesma popularidade. 
Na medida que os algoritmos tornaram-se muito grandes e complexos, os fluxogramas 
deixaram de ser utilizados para a representação da implementação, sendo direcionados 
para a fase de projeto do software. 
A terceira forma chama-se de pseudocódigo ou metalinguagem. Esta forma de 
representação de um algoritmo assemelha-se muito à forma com que os programas são 
escritos e consiste na descrição dos passos do algoritmo através de frases construídas 
sob uma sintaxe rigorosamente definida. Assim, consegue-se uma descrição do 
QI - Escola de Educação Profissional 
Apostila de Lógica de Programação 
 
Professor: Eduardo Reus Souza 7 
algoritmo livre de ambigüidades e com uma estrutura bastante flexível e completa, onde 
todos os elementos estão representados. 
No estudo da lógica de programação da nossa disciplina, será utilizada a terceira 
forma de representação, utilizando a sintaxe da linguagem de programação C. Não 
utilizaremos o padrão de português estruturado para evitar que nossos algoritmos 
precisem ser reescritos (faça em português, e depois refaça na sintaxe correta da 
linguagem). 
1.6. Regras para a Criação de Algoritmos 
A criação de algoritmos computacionais obedece ao princípio da informática. 
Sendo assim, sempre devemos pensar que nossas soluções devem passar por três 
fases distintas: 
 
 
 
 
Onde: 
Entrada: São os dados que devem ser informados (pelo usuário, ou não) para que o 
programa possa ser executado. 
Processamento: São os procedimentos que devem ser empregados para solucionar o 
problema. Neste podemos incluir operações matemáticas, comparações, repetições, etc. 
Saída: É o resultado final do algoritmo que deve ser entregue a algum lugar ou alguém. 
 
É importante ressaltar que: 
 A ordem das instruções devem ser levadas em consideração. 
 Não existe processamento sem a entrada de dados. 
 A saída de dados deve ser apresentada. 
 O número de instruções deve ser sempre finito. 
 
Exemplo 
Imagine o seguinte problema: calcular a média final dos alunos da 3ª Série. Os 
alunos realizarão quatro provas: P1, P2, P3 e P4. 
Onde: 
 
 Média Final = 
 
A entrada de dados serão as quatro notas. 
O processamento será o cálculo da média propriamente dita. 
A saída de dados será a exibição dessa média. 
1.7. Como proceder na construção de algoritmos? 
1.7.1. Leia com atenção o enunciado do problema 
Nessa primeira etapa devemos compreender perfeitamente o que precisamos 
fazer. A grande maioria dos problemas encontrados nos programas atuais ocorre 
por falhas na interpretação inicial do problema. 
1.7.2. Obtenha os dados de entrada 
Durante a leitura do problema, podemos descobrir quais são os dados que 
precisamos solicitar para a execução do algoritmo. 
Entrada Saída Processamento 
 P1 + P2 + P3 + P4 
 4 
QI - Escola de Educação Profissional 
Apostila de Lógica de Programação 
 
Professor: Eduardo Reus Souza 8 
1.7.3. Obtenha os dados de saída 
Da mesma forma que na entrada de dados, os dados de saída (qual a resposta que 
preciso informar) também pode ser descoberta lendo atentamente a definição do 
problema. 
1.7.4. Determinar o que deve ser feito para transformar as 
entradas determinadas nas saídas especificadas 
Nesta fase é que teremos a construção do algoritmo propriamente dito, pois, a 
partir de alguns requisitos especificados, devemos determinar qual seqüência de 
ações é capaz de transformar um conjunto definido de dados nas informações de 
resultado. 
1.7.5. Testar o algoritmo 
Nesta fase devemos verificar se o algoritmo realmente resolve o problema 
proposto, mesmo com variações nos dados de entrada. Essa é uma das principais 
fases do projeto, afinal, a premissa que devemos ter em relação a um software 
lançado no mercado é a de que este funciona. Chamamos esta etapa de teste de 
mesa. 
Vale ressaltar, que por mais exaustiva que seja a bateria de testes. Um programa 
nunca estará 100% imune a erros. Nessa etapa tentamos chegar o mais próximo 
possível deste índice. 
1.8. Exercícios propostos 
 
1. Especifique as ações necessárias para mover três disco de uma Torre de Hanói, que 
consiste de três hastes (a - b - c), uma das quais serve de suporte para três discos de 
tamanhos diferentes (1 - 2 - 3 ), os menores sobre os maiores. Pode-se mover um 
disco de cada vez para qualquer haste, contanto que nunca seja colocado um disco 
maior sobre um menor. O objetivo é transferir os três disco para outra haste. 
 
 
 
 
 
 
 
 
 
 
 
2. Construa um algoritmo que informe os passos necessários para a trocar o pneu de 
um carro. Tendo como situação inicial que o carro estava em movimento numa 
estrada, que há acostamento e espaço suficiente para a troca. 
c b 
2 
a 
3 
1 
QI - Escola de Educação Profissional 
Apostila de Lógica de Programação 
 
Professor: Eduardo Reus Souza 9 
2. Variáveis e Constantes de memória (RAM) 
2.1. Memória 
Memória é um dispositivo utilizado para guardar de forma temporária ou não algum 
tipo de informação. 
Quando um programa é executado (tornando-se o que chamamos de processo), todo o 
seu conteúdo é posto na memória RAM (Random Access