Universidade Estácio de Sá
Resende
Lógica de Programação
Introdução a Algoritmos
Prof. Paulo Tong
http://professortong.com
professortong@gmail.com
1
Conteúdo
● Fornecer o conceito de algoritmos, estruturas
de dados.
● Introduzir as estruturas básicas de controle.
● Apresentar o conceito de programação
estruturada e modularização.
2
Introdução
● O conceito central da programação e da ciência
da computação em geral é o de algoritmo.
● A programação é a arte de ou técnica de
construir e formular algoritmos de uma forma
sistemática.
● Programas de computadores são formulações
concretas de algoritmos abstratos, baseados em
representações e estrutura especificas de dados.
3
● Em um algoritmo devemos distinguir dois
aspectos complementares:
– Estático: Texto contendo instruções
(comandos) que devem ser executados em uma
ordem prescrita.
– Dinâmico: Os efeitos que tais comandos
podem ter durante a execução dos mesmos no
tempo, dado um conjunto de “valores iniciais”.
● A execução de um algoritmo é um evento
dinâmico, evoluindo no tempo.
● Daí vem a dificuldade no entendimento de
algoritmos, ou seja, como visualizar as estruturas
dinâmicas.
4
Conceitos Básicos: Algoritmos
● Ação
– Evento que ocorre num período de tempo finito,
estabelecendo um efeito intencionado e bem
definido, como por exemplo:
● Caminhar até a próxima esquina.
● Colocar um livro em cima de uma mesa.
● Atribuir o valor 3.14 a uma variável.
– Estamos interessados primeiramente nos efeitos
que as ações produzem.
– Ações de efeito imprevisíveis não nos interessam.
– Algoritmos determinísticos.
5
Conceitos Básicos: Algoritmos
● Estado
– O conjunto de propriedades do objeto que são
relevantes para nós na situação considerada.
● Batatas com casca ou descascadas.
● Valor de uma variável em um certo instante de
execução.
● Processo ou Evento
– Uma sequência temporal de ações.
●
●
●
●
Trazer a cesta com batatas;
Pegar a panela do armário;
Descascar as batatas;
Guardar a cesta;
R1
6
Conceitos Básicos: Algoritmos
● Padrão de Comportamento
– Suponha que no dia seguinte alguém relate o
mesmo evento.
– Pode-se dizer que temos o mesmo evento?
– Não, pois ocorreram em momentos diferentes.
– O que eles tem em comum?
● O mesmo padrão de comportamento.
7
Exercício
● Qual é o padrão de comportamento
utilizados para gerar essas duas sequências?
a) 1, 5, 9, 13, 17, 21
b) 1, 1, 2, 3, 5, 8, 13, 21, 34, 55
8
Conceitos Básicos: Algoritmos
● 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.
– Norma executável para estabelecer um certo
efeito desejado, que na prática será geralmente a
obtenção de uma solução a um certo tipo de
problema.
9
Conceitos Básicos: Algoritmos
● Considere o evento R2
●
●
●
●
●
Trazer a cesta com batatas;
Pegar a panela do armário;
Colocar o avental;
Descascar as batatas;
Guardar a cesta;
● O efeito ainda é o mesmo de R1, ou seja,
batatas descascadas.
● Considere agora que uma condição é usada
para colocar o avental
– Somente se estiver usando roupa branca.
10
Conceitos Básicos: Algoritmos
● Podemos escrever uma algoritmos que cubra
os dois eventos.
●
●
●
●
●
Trazer a cesta com batatas;
Pegar a panela do armário;
SE “roupa é branca” ENTÃO “colocar o avental”;
Descascar as batatas;
Guardar a cesta;
● Conectivo condicional: SE...ENTÃO
– A execução ou não da ação está condicionada
ao resultado da inspeção (Verdadeiro ou Falso).
11
Conceitos Básicos: Algoritmos
● Suponha que exista 20 batatas a serem
descascadas.
●
●
●
●
●
●
●
●
Trazer a cesta com batatas;
Pegar a panela do armário;
SE “roupa é branca” ENTÃO “colocar o avental”;
Descascar as batatas;
....
....
Descascar as batatas;
Guardar a cesta;
– Qual seria uma forma mais inteligente de
fazer isso?
12
Conceitos Básicos: Algoritmos
● Concectivo repetitivo: ENQUANTO...FAÇA
●
●
●
●
Trazer a cesta com batatas;
Pegar a panela do armário;
SE “roupa é branca” ENTÃO “colocar o avental”;
ENQUANTO “houver batatas” FAÇA
– Descascar as batatas;
● Guardar a cesta;
– A execução de ENQUANTO “inspeção” FAÇA
“ação”, corresponde à execução repetida do
comando SE...ENTÃO.
– Isso exemplifica o poderio do conceito de
algoritmo
● Texto estático capaz de cobrir toda uma
classe de acontecimentos.
13
Conceitos Básicos: Algoritmos
● Nessa relação entre um texto estático e
eventos evoluindo no tempo reside um grande
perigo:
– É fácil construir um algoritmo que não seja
executável em tempo finito.
– Ex: Enquanto “roupa é branca” Faça “Descasque
uma batata”
● Algoritmos devem ser determinísticos
– Dadas as mesmas condições iniciais, ele deve
produzir o mesmo resultado no fim.
14
Conceitos Básicos: Programas
● Computadores: Máquinas capazes de seguir
uma certa espécie de algoritmos, chamados
programas.
● Capazes de entender linguagem de máquina
Algoritmo na forma natural
“linguagem de programação”
Compilador
Linguagem de Máquina
15
Conceitos Básicos: Programas
● Tipos de programas
– Fonte: Texto com um programa que o usuário
pode ler. Escrito em uma linguagem de
programação
● C, C++, Pascal, Fortran, Basic, Cobol, etc...
– Objeto: Código de máquina gerado pelo
compilador
– Executável: Resultado de um link-editor que une
vários códigos objetos e produz um executável
(.exe no DOS).
16
Conceitos Básicos: Estruturas de Dados
● Um programa de computador precisa
representar e armazenar dados. Isso se dá por
intermédio das estruturas de dados.
● Uma estrutura de dados retrata as relações
lógicas existente entre os dados.
● Tipos primitivos:
– Inteiro, real, lógico e caracter
● Tipos compostos podem ser construídos
com base nos tipos primitivos.
17
Programação Estruturada
● Uma metodologia de projeto de programas
visando:
–
–
–
–
Facilitar a escrita dos programas.
Facilitar a leitura.
Permitir a verificação a priori
Facilitar a manutenção e modificação.
● Modularização
– Uma boa estratégia para resolver um problema
complexo é dividí-lo em partes e resolver cada
parte separadamente.
– Dividir e conquistar.
– Módulos coesos
● Cada módulo implementa uma
tarefa bem definida
18
Programação Estruturada
● Estruturas de Controle
– Aumentam consideravelmente a legibilidade e
compreensão dos programas.
– Proíbe o uso de comandos de desvio (GOTO)
19
Por que tenho que ver tudo isso?
● Algoritmos, estrutura de dados, programação
e redes de computadores.
● O que tudo isso tem haver?
20
Introdução à Lógica de Programação
21
Download

programas. - prof. paulo tong home page