Upload
rubens
View
213
Download
0
Embed Size (px)
DESCRIPTION
logict
Citation preview
Aristteles foi o primeiro autor a elaborar um
sistema rigoroso de critrios para o raciocnio. A
funo da lgica domar a louca energia do
pensamento sem diminu-la. No um fim, mas um meio: um instrumento preliminar para a
reflexo sobre a realidade. Por isso, as
anotaes que Aristteles comps sobre o
assunto foram reunidas com o nome de
Organon em grego, A Ferramenta.
Lgica uma parte da filosofia que estuda o fundamento, a
estrutura e as expresses humanas do conhecimento.
Lgica de programao a tcnica de encadear
pensamentos para atingir determinado objetivo.
Exemplos de ordenao do raciocnio:
Todo mamfero um animal.
Todo homem mamfero.
Portanto, todo homem um animal.
Timbaba uma cidade de Pernambuco
Quem nasce em Timbaba timbaubense
Portanto, todos os timbaubenses so pernambucanos.
Timbaba uma cidade de Pernambuco
Quem nasce em Timbaba timbaubense
Portanto, todos os timbaubenses so pernambucanos.
Pernambuco ABRANGENTE
Timbaba MDIO
Timbaubenses ESPECFICOS
Vamos pensar em novos exemplos:
? ??
???
?????
??????
?????????
???????????
Um pensamento pode ser representado emvrios idiomas, embora sempre expresse amesma ideia, o mesmo raciocnio.
A ideia concebida. Em seguida racionalizada,ordenada, e formalizada atravs darepresentao em uma certa linguagem deprogramao, como C#, Delphi, Java, PHP, entreoutras.
Entretanto, cada linguagem de programao, assim como os idiomas da linguagem natural (linguagem falada e escrita, Portugus, Ingls, Espanhol, Alemo), tem suas especificidades.
Para que possamos representar formalmente um raciocnio, sem nos preocuparmos com um linguagem de programao especfica, usamos os ALGORITMOS.
Dado: Representa um fato bsico que pode sofrer manipulao.
Pode ser de diversos tipos como:
Numrico: Composto apenas por nmeros que normalmente utilizaremos em operaes aritmticas. Ex.: 2, 20.3, 25.
Alfanumrico ou texto: Composto por letras, smbolos e/ou nmeros que normalmente no sero usados em operaes aritmticas. Ex.: Antonio, 2, [email protected], casa, Java.
Imagens: Composto por figuras ou fotos.
udio: Composto por sons ou rudos.
Vdeo: Composto por imagens ou figuras em movimento.
Informao: Quando atravs de processamento ou interpretao, de acordo com um contexto, um significado atribudo a um ou vrios dados temos uma informao. Este significado d um valor adicional ao dado alm do valor do fato representado.
Exemplo: Nestes exemplos, para cada dado foi atribudo um significado que foram respectivamente: dias, anos, smbolo monetrio do real e telefone.
38 dias
38 anos
R$ 38,00
Telefone 9999-8888
Sistema Computacional: Um sistema baseado em computador um composto de infraestrutura tecnolgica cujos elementos so organizados para coletar, manipular e processar dados em informaes.
Desenvolvimento de Software: A cincia que trata dodesenvolvimento de software conhecida comoEngenharia de Software. Ela prever que para sedesenvolver um software deve haver um processo desoftware definido. O processo de software mais tradicional conhecido como Modelo Cascata, representado abaixo:
Etapas do modelo cascata:
Requisito: Identificao do que o software deve fazer.
Anlise: Os dados necessrios e como eles se relacionamso definidos.
Projeto: Determina como as funcionalidades do sistemasero implementadas.
Codificao: O programa construdo, traduzindo-se oprojeto em cdigo.
Teste: Verifica se as funcionalidades implementadasatendem aos requisitos especificados.
Implantao: O software instalado e colocado em uso.
Manuteno: O software sofre manuteno para correo,adaptao ou acrscimo funcional.
PROCESSAMENTO DE DADOS
Consiste em um conjunto de atividades ordenadas com o objetivo de manipular dados iniciais em informaes desejveis:
PROCESSAMENTO ELETRNICO DE DADOS
Quando o processamento de dados realizado por equipamentos eletrnicos, por exemplo, computadores, temos o que denominamos de processamento eletrnico de dados.
Dependendo da quantidade de dados que desejamos processar e do processamento que desejamos realizar, a quantidade de instrues de cada atividade pode variar de uma a centenas ou milhares de instrues.
PROCESSAMENTO ELETRNICO DE DADOS
Exemplo1: Para encontrarmos o maior nmero entre dois nmeros iniciais, precisamos basicamente de cinco instrues: 1 Obter o primeiro nmero; 2 Obter o segundo nmero; 3 Comparar o primeiro com o segundo nmero; 4 Armazenar o maior nmero comparado; 5 Exibir o nmero memorizado.
PROCESSAMENTO ELETRNICO DE DADOS Exemplo2: Para encontrarmos o maior nmero entre trs nmeros iniciais, precisamos basicamente de oito instrues: 1 Obter o primeiro nmero; 2 Obter o segundo nmero; 3 Obter o terceiro nmero; 4 Comparar o primeiro com o segundo nmero; 5 Armazenar o maior nmero comparado; 6 Comparar o terceiro com o maior nmero armazenado; 7 - Armazenar o maior nmero comparado; 8 Exibir o nmero memorizado.
PROGRAMA Conjunto de instrues escrito de forma que um computador seja capaz de executar para processar dados. Sendo uma mquina eletrnica, o computador est submetido as regras da eletrnica digital. Com isso, as diversas regras das linguagens naturais (portugus, ingls, espanhol, etc.) no so entendidas pelo computador. Ento foram criadas linguagens de programao com regras prprias, indicando como as instrues devero ser codificadas.
PROGRAMAO a atividade de elaborar um programa.
PROGRAMADOR
O profissional responsvel pela elaborao do programa.
Antes de escrever o programa propriamente dito, comum primeiro fazermos um representao abstrata, sem muitos detalhes, da idia (lgica) que temos para resolver o problema para o qual o programa est sendo criado. Os arquitetos ou engenheiros civis normalmente fazem algo parecido. Quando um cliente solicita que eles elaborem um projeto para a construo de um imvel, antes de desenhar a planta arquitetnica eles primeiro fazem um rascunho (croqui) para entender melhor o desejo do cliente e verificar com ele se a soluo desenhada no croqui resolve o desejo do cliente. Quando verificado que realmente atende, a planta finalmente elaborada com todos os detalhes necessrios, de acordo com as regras da engenharia civil.
No caso da programao, a representao da lgica de programao da forma algortmica.
O que um Algoritmo ?
formalmente uma sequencia finita de passos que levam a execuo
de uma tarefa. Podemos pensar em algoritmo como uma receita, uma
sequencia de instrues que do cabo de uma meta especfica. Estas
tarefas no podem ser redundantes, nem subjetivas na sua definio,
devem ser claras e precisas.
uma forma de representao textual da lgica de programao, que
utiliza palavras como comandos. O programador deve conhecer as
palavras predeterminadas da linguagem algortmica que pode utilizar e o
que cada palavra representa. Dizemos que as palavras da linguagem
algortmica so palavras escritas, como as palavras relacionadas a
seguir: INICIO, FIM, LEIA , ESCREVA.
INICIO Usado para iniciar um algoritmo
FIM Usado para finalizar um algoritmo
LEIA Usado para entrada de dados
ESCREVA Usado para exibir um resultado
:= Usado para atribuir um valor
E como precisamos detalhar essa sequncia de aes/passos, ento necessrio pensar com
ordem.
Quer dizer: usar a Lgica!
No dia a dia usamos algoritmos, mas osconhecemos como receitas.
Ao fazer um bolo precisamos seguir uma receita.
Exerccio: Vamos pensar numa receita de fritar umovo ou para se escovar os dentes.
1. Levantar da mesa aps almoo;
2. Dirigir-se ao banheiro;
3. Pegar escova , creme dental e fio dental;
4. Passar o fio dental entre os dentes;
5. Por creme dental na escova;
6. Comear a escovar os dentes de trs pra frente
em movimentos circulares;
7. Escovar a lngua;
8. Enxaguar a boca ;
9. Enxuga-se com a toalha boca e mos;
10. Guarda escova , creme dental e fio dental;
11. Sa do banheiro;
12. Fim .
1. Pega-se o ovo, margarina, sal e frigideira;
2. Pe margarina e sal na frigideira;
3. Leva-se a frigideira a fogo brando;
4. Depois da margarina derretida quebra o ovo na panela;
5. Espera assar o lado inferior do ovo;
6. Em seguida vira o lado;
7. Desliga o fogo;
8. Pe o ovo no prato para saborear e
9. Fim .
Situao Problema => Fazer um Bolo
Dados de entrada => ingredientes (ovos, trigo,acar, fermento etc.)
Processamento:
Unte tabuleiro com manteiga;
Misture fermento,trigo,ovos,leite;
liquidificar a massa;
Coloque a massa no tabuleiro;
Ligue o forno;
Coloque tabuleiro no forno;
Aguarde at o bolo assar;
Desligue o forno;
Tire o bolo do forno;
Saida de dados => Bolo Pronto
S
O
L
U
O
Situao Problema => Tomar Banho; Dados de entrada => Pessoa suja;
Processamento: 1. Tirar a roupa;2. Ir para debaixo do chuveiro;3. Abrir o registro;4. Ensaboar-se;5. Passar shampoo nos cabelos;6. Enxaguar todo o corpo;7. Fechar o registro;
Dados de sada => Pessoa Limpa:
S
O
L
U
O
Observao:
Existem algumas diferenas entre o nosso algoritmo e aquele
utilizado pelo computador ?
SIM
Nosso Computador
Portugus Ingls
Pseudocdigos Linhas de Cdigos
reais e robustas
Exemplo Clssico: Algoritmo para a troca de uma
lmpada utilizando o portugus coloquial.
Embora essas atividades paream bvias,
normalmente as realizamos inconscientemente
para alcanar os nossos objetivos.
V. 1
Pegar uma escada
Pegar uma lmpada nova
Posicionar a escada abaixo da lmpada a ser trocada
Subir na escada
Retirar a lmpada velha
Colocar a lmpada nova
A sequenciao:
uma forma de reger o fluxo das aes a serem
executadas;
A ordem importante;
No exemplo da troca da lmpada a
sequenciao linear;
E se a lmpada no estiver queimada?
De acordo com o algoritmo que desenvolvemos a
troca seria feita independentemente de a
lmpada estar ou no queimada!
Essa possibilidade no foi prevista.
Podemos verificar se a lmpada acende antes de
buscar a escada e a lmpada.
Para solucionar a possibilidade de a lmpada no estar queimada podemos refinar um pouco mais o nosso algoritmo anterior.
Como?
Efetuando um teste. Vamos l!
V. 2
Acionar o interruptor;
Se a lmpada no acender, ento:
Pegar uma escada;
Pegar uma lmpada nova;
Posicionar a escada abaixo da lmpada a ser trocada;
Subir na escada;
Retirar a lmpada velha;
Colocar a lmpada nova;
Note que agora estabelecemos uma condio ao
nosso algoritmo:
Se essa condio for verdadeira (???)
efetuaremos a troca da lmpada, seguindo os
prximos passos.
Se a condio for falsa (???) ento os passos
relativos troca da lmpada no sero
executados.
Quer dizer, a lmpada, que est funcionando, no
ser trocada.
Essa condio de teste que estabelecemos o
chamado Teste de Seleo.
Dada uma condio, ento as aes a serem
executadas dependero da avaliao dessa
condio (verdadeira ou falsa).
V. 2
Acionar o interruptor;
Se a lmpada no acender, ento:
Pegar uma escada;
Pegar uma lmpada nova;
Posicionar a escada abaixo da lmpada a ser
trocada;
Subir na escada;
Retirar a lmpada velha;
Colocar a lmpada nova;
O algoritmo v.2 parece ser adequado, mas, e no
caso de a lmpada nova estiver defeituosa?
Podemos melhorar o nosso algoritmo ao ponto de
ter que trocar a lmpada, quantas vezes for
necessrio, at que funcione.
Refinando...
Notemos que o algoritmo v.3 no especifica at
quando o teste da lmpada ser feito.
Refinando ainda mais o algoritmo v.3, porm,
agora teremos que lidar com o problema descrito
logo a cima.
Acionar o interruptor;
Se a lmpada no acender, ento:
Pegar uma escada;
Pegar uma lmpada nova;
Posicionar a escada abaixo da lmpada a ser trocada;
Subir na escada;
Retirar a lmpada velha;
Colocar a lmpada nova;
Se a lmpada no acender, ento:
Retirar a lmpada queimada;
Colocar outra lmpada nova;
Se a lmpada no acender, ento:
Retirar a lmpada queimada;
Colocar outra lmpada nova;
Se a lmpada no acender, ento:
Retirar a lmpada queimada;
Colocar outra lmpada nova;
Se a lmpada no acender, ento:
. . . at quando???
V. 3
O trecho:
Enquanto a lmpada no acender, faa:
Retirar a lmpada queimada;
Colocar uma lmpada nova;
Condio de Parada
v.4
Acionar o interruptor;
Se a lmpada no acender, ento:
Pegar uma escada;
Pegar uma lmpada nova;
Posicionar a escada abaixo da lmpada a ser trocada;
Subir na escada;
Retirar a lmpada velha;
Colocar a lmpada nova;
Enquanto a lmpada no acender, faa:
Retirar a lmpada queimada;
Colocar uma lmpada nova;
Notemos que, at o momento, definimos um
algoritmo para a troca de apenas uma lmpada
(na verdade, o conjunto: lmpada, soquete,
interruptor), testando esse conjunto e trocando
tantas lmpadas sejam necessrias at que o
conjunto funcione.
E se precisssemos trocar vrias lmpadas??
Por exemplo 10...
V.5
Ir at o interruptor do primeiro soquete;
Enquanto a quantidade de soquetes testados for menor do que dez, faa:
Acionar o interruptor
Se a lmpada no acender, ento
Pegar uma escada
Pegar uma lmpada nova
Posicionar a escada abaixo da lmpada a ser trocada
Subir na escada
Retirar a lmpada velha
Colocar a lmpada nova
Enquanto a lmpada no acender, faa:
Retirar a lmpada queimada;
Colocar uma lmpada nova;
Ir at o interruptor do prximo soquete;
Lgica de programao a tcnica de encadear
pensamentos para atingir determinado objetivo.
Por que estamos estudando Lgica de
Programao?
R: para aprendermos a construir algoritmos
coerentes e vlidos.
Um homem que pesa 100 quilos, e seus 2 filhos, um pesando 40
quilos e o outro pesando 60, precisam atravessar o rio. O nico
barco disponvel s pode carregar at 100 quilos de cada vez.
Como eles podero chegar at a outra margem?
V.5
Ir at o interruptor do primeiro soquete;
Enquanto a quantidade de soquetes testados for igual a dez, faa:
Acionar o interruptor Teste de seleo
Se a lmpada no acender, ento
Pegar uma escada
Pegar uma lmpada nova
Posicionar a escada abaixo da lmpada a ser trocada
Subir na escada
Retirar a lmpada velha
Colocar a lmpada nova
Enquanto a lmpada no acender, faa: Estrutura de parada
Retirar a lmpada queimada;
Colocar uma lmpada nova;
Ir at o interruptor do prximo soquete;
Estrutura de repetio
Qualquer pessoa pode resolver o problema de
trocar a lmpada do seu modo.
Entretanto, o computador tradicional no
tem conhecimento prvio nem adquire
experincias, por isso devemos determinar
detalhadamente as aes que desejamos que
ele execute.
Como?
Prevendo possveis obstculos e a forma de transp-
los = descrever um sequncia finita de aes que
garantam a soluo do problema.
Algoritmos
algoritmo "somar"
// Funo : Somar dois nmeros
// Seo de Declaraes
var
numero1, numero2, soma: inteiro
inicio
// Seo de Comandos
leia (numero1)
leia (numero2)
soma := numero1 + numero2
escreva (soma)
fimalgoritmo
REPRESENTAO E ARMAZENAMENTO DOS DADOS
Na programao podemos representar e armazenar os dados de duas maneiras: Varivel ou Constante, conforme veremos a seguir:
Varivel: Um programa pode ser executado diversas vezes, com a vantagem de que em cada execuo forneamos dados de entrada diferentes. Na codificao do programa, o dado representado mas o valor dele s ser fornecido quando o programa for executado. Como pode ser fornecido qualquer valor, esta representao do dado chamada de varivel. O programador deve ter o cuidado de declarar todas as variveis que vai utilizar em seu algoritmo, de acordo com o tipo de dado que a varivel vai representar. Os dados ocupam espao na memria do computador. A declarao de varivel reserva espao na memria do computador para os dados que a varivel representa.
Tipo de varivel Os tipos de variveis que iremos utilizar so:
Caracter ou literal: Armazena dado textual, que normalmente
no usado em operaes matemtica. Os dados literais so
descritos entre aspas. Ex.: Carlos, Turma de Informtica
Inteiro: Armazena dado numrico inteiro. Ex.: 150
Real ou numrico: Armazena dado numrico com decimais.
Ex.: 2.5, 125.65
Lgico: Armazena apenas os valores lgicos. Os dados lgicos
so descritos sem aspas e podem ser apenas VERDADEIRO ou
FALSO.
Declarao de varivel
O espao reservado pela declarao depende do tipo de dado
declarado. O programador apenas faz a declarao e o sistema
operacional encarrega-se de reservar o espao especfico.
Sintaxe para declarao de variveis:
var
:
Exemplo:
var
numero1 : real
nome, cpf : literal
Constante: Quando em um algoritmo temos a necessidade de representar um dado que no sofrer alterao, ao invs de variveis temos uma constante.
var
nota1, nota2, media: real
inicio
// Seo de Comandos
leia (nota1)
leia (nota2)
media:= (nota1 + nota2) / 2 CONSTANTE
escreva (A media foi: , media)
fim
Atribuio de dados
A atribuio a ao de guardar um dado a uma varivel. J sabemos que o comando LEIA recebe o dado e guarda em uma varivel, mas na atribuio o dado no recebido da digitao de um usurio via teclado, mas conforme o programador. A atribuio ocorre atravs do comando := (dois pontos e igual sem espao entre eles). Quando encontramos este comando l-se Recebe.
:=
Exemplo: resposta := numero1 + numero2 numero := 125 nome := Joo
1. Escreva um algoritmo para ler 3 nmeros inteiros e mostrar a
soma deles.
2. Escreva um algoritmo para ler 3 nmeros reais e mostrar
soma deles.
3. Escreva um algoritmo para ler 4 nmeros e mostrar: a) a
soma do primeiro nmero com o segundo; b) a soma do
terceiro nmero com o quarto; c) a soma do resultado do
item a com o resultado do item b.
4. Escreva um algoritmo para ler 2 nmeros para as variveis
numero1 e numero2, inverter os valores das variveis e
mostr-las na tela. Exemplo: Se o valor digitado para a
varivel numero1 for 40 e o valor digitado para a varivel
numero2 for 250, o processamento do algoritmo dever fazer
com que a varivel numero1 fique com o valor 250 e a
varivel numero2 fique com 40.