Buscar

eng2_aula3

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Clique para editar o estilo do título mestre
Clique para editar o estilo do subtítulo mestre
*
*
*
Lógica de Programação
Introdução a Algoritmos
 Prof. Paulo Tong
http://professortong.com
professortong@gmail.com
Universidade Estácio de Sá
Resende
Clique para editar o estilo do título mestre
Clique para editar o estilo do subtítulo mestre
*
*
*
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.
Clique para editar o estilo do título mestre
Clique para editar o estilo do subtítulo mestre
*
*
*
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.
Clique para editar o estilo do título mestre
Clique para editar o estilo do subtítulo mestre
*
*
*
● 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.
Clique para editar o estilo do título mestre
Clique para editar o estilo do subtítulo mestre
*
*
*
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.
Clique para editar o estilo do título mestre
Clique para editar o estilo do subtítulo mestre
*
*
*
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
Clique para editar o estilo do título mestre
Clique para editar o estilo do subtítulo mestre
*
*
*
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.
Clique para editar o estilo do título mestre
Clique para editar o estilo do subtítulo mestre
*
*
*
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
Clique para editar o estilo do título mestre
Clique para editar o estilo do subtítulo mestre
*
*
*
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.
Clique para editar o estilo do título mestre
Clique para editar o estilo do subtítulo mestre
*
*
*
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.
Clique para editar o estilo do título mestre
Clique para editar o estilo do subtítulo mestre
*
*
*
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).
Clique para editar o estilo do título mestre
Clique para editar o estilo do subtítulo mestre
*
*
*
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?
Clique para editar o estilo do título mestre
Clique para editar o estilo do subtítulo mestre
*
*
*
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.
Clique para editar o estilo do título mestre
Clique para editar o estilo do subtítulo mestre
*
*
*
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.
Clique para editar o estilo do título mestre
Clique para editar o estilo do subtítulo mestre
*
*
*
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
Clique para editar o estilo do título mestre
Clique para editar o estilo do subtítulo mestre
*
*
*
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).
Clique para editar o estilo do título mestre
Clique para editar o estilo do subtítulo mestre
*
*
*
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.
Clique para editar o estilo do título mestre
Clique para editar o estilo do subtítulo mestre
*
*
*
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
Clique para editar o estilo do título mestre
Clique para editar o
estilo do subtítulo mestre
*
*
*
Programação Estruturada
● Estruturas de Controle
– Aumentam consideravelmente a legibilidade e
compreensão dos programas.
– Proíbe o uso de comandos de desvio (GOTO)
Clique para editar o estilo do título mestre
Clique para editar o estilo do subtítulo mestre
*
*
*
Por que tenho que ver tudo isso?
● Algoritmos, estrutura de dados, programação e redes de computadores.
● O que tudo isso tem haver?
Clique para editar o estilo do título mestre
Clique para editar o estilo do subtítulo mestre
*
*
*
Introdução à Lógica de Programação

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais