Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Introdução a Logica de Programação, Notas de estudo de Engenharia Telemática

Conceitos básicos Sobre Lógica de Programação.

Tipologia: Notas de estudo

Antes de 2010

Compartilhado em 30/08/2010

leonardo-muniz-5
leonardo-muniz-5 🇧🇷

5

(4)

18 documentos

1 / 57

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Introdução à Lógica
de Programação
Profa. Elaine Harada T. Oliveira
Introdução à Ciência dos Computadores
DCC/UFAM
1o. semestre/2006
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39

Pré-visualização parcial do texto

Baixe Introdução a Logica de Programação e outras Notas de estudo em PDF para Engenharia Telemática, somente na Docsity!

Introdução à Lógica

de Programação

Profa. Elaine Harada T. Oliveira

Introdução à Ciência dos Computadores

DCC/UFAM

1o. semestre/

Tópicos

• Introdução

• Conceitos gerais

• Raciocínio matemático

• Noções de Lógica

• Algoritmos

• Exercícios

Tópicos

• Algoritmos

  • (^) Por que precisamos de algoritmos?
  • (^) Características
  • (^) Algoritmo x Qualidade
  • (^) Método para construção de algoritmos
    • (^) Método Cartesiano
    • (^) Planejamento Reverso
    • (^) Tabelas de Decisão

• Exercícios

Introdução

  • (^) Muitos anos se passaram desde os primórdios da história da computação.
  • (^) Já vivemos vários paradigmas de programação.
  • (^) Uma base de conhecimento que não mudou e não mudará nunca – a Lógica de Programação.
  • (^) Lógica de Programação e Raciocínio Matemático - interpretação de um problema e a utilização correta de uma fórmula.
  • (^) Não existem “fórmulas” em Informática.
  • (^) Aperfeiçoamento de nossa forma de pensar e raciocinar sobre um problema.
  • (^) Extrair do mesmo uma solução eficiente e eficaz.
  • (^) É preciso aprender a pensar sobre os problemas, extraindo deles o máximo de informações

Introdução

• Inicialmente, veremos conceitos gerais

sobre Programação.

• Posteriormente, vocês terão exercícios de

Raciocínio Matemático que lhes exercitarão

o poder de PENSAR!

• Em seguida, apresentaremos como

desenvolver algoritmos de soluções para

Sistemas.

• E por último, vamos conhecer a Linguagem

C, a fim de vermos nossos algoritmos

funcionando – ao vivo e à cores!

Programação

Estruturada

  • (^) A Programação Estruturada pode ser entendida como uma forma de programar que visa facilitar a escrita, entendimento, validação e manutenção de programas.
  • (^) Para Dijkstra, “a arte de programar consiste na arte de organizar e dominar a complexidade”.
  • A Programação Estruturada procurar reduzir o nível de complexidade através de três níveis: a) desenvolvimento do programa em diferentes fases por refinamento sucessivo (desenvolvimento top-down); b) decomposição do programa total em módulos funcionais, organizados de preferência num sistema hierárquico; c) uso de um número limitado de estruturas básicas de fluxo de controle dentro de cada módulo.

Modularização

• A solução final de um problema é

obtida através de soluções de

subproblemas

• Permite dividir o programa em

módulos com subfunções

claramente delimitadas

• Podem ser implementados

separadamente, por diversos

programadores de uma equipe.

Estruturas de controle

• São representadas pela seqüência

simples, o comando condicional e o

comando repetitivo

• Fornecem ao programador um aumento

da legibilidade e compreensão de cada

módulo de programa.

• Assim, temos como uma das principais

normas da Programação Estruturada:

não usar comandos de desvio (GOTO).

Manutenibilidade

• As revisões sofridas por um programa

( releases ) tanto para correção de erros

quanto para mudanças de especificação,

são consideradas como manutenção de

software.

• Os programas devem passar por testes

exaustivos de confiabilidade antes de

serem colocados em produção.

• Falhas nesta fase levam a altos níveis de

manutenção, que conseqüentemente,

levam a altos custos.

PseudoLinguagem - PORTUGOL

  • (^) Não podemos representar nossas soluções em

algoritmos totalmente escritos em português.

  • (^) É fácil perceber que a linguagem natural, não

formalizada, geraria ambigüidades.

  • (^) Assim, temos o PORTUGOL, que é uma

pseudolinguagem de programação (simbiose

do Português com o ALGOL e PASCAL)

  • (^) Permite pensarmos no problema e não na

máquina que vai executar o algoritmo.

  • (^) Além disso, não perdemos a flexibilidade e

continuamos a ter a proximidade com a

linguagem humana, facilitando, portanto, a

interpretação.

Noções de Lógica

  • (^) O que é Lógica?
  • (^) Lógica trata da correção do pensamento.
  • (^) Como filosofia, ela procura saber por que pensamos assim e

não de outro jeito.

  • (^) Com arte ou técnica, ela nos ensina a usar corretamente as

leis do pensamento.

  • (^) Poderíamos dizer também que a Lógica é a arte de pensar

corretamente e, visto que a forma mais complexa do

pensamento é o raciocínio, a Lógica estuda ou tem em vista

a correção do raciocínio.

  • (^) Podemos ainda dizer que a lógica tem em vista a ordem da

razão.

  • (^) Isto dá a entender que a nossa razão pode funcionar

desordenadamente, pode pôr as coisas de pernas para o ar.

  • (^) Por isso a Lógica ensina a colocar Ordem no Pensamento.

Noções de Lógica

Exemplos:

a ) Todo o mamífero é animal.

Todo cavalo é mamífero.

Portanto, todo cavalo é animal.

b ) Todo mamífero bebe leite.

O homem bebe leite.

Portanto, todo homem é mamífero e animal.

Algoritmizando a

Lógica

  • (^) Construir algoritmos é o objetivo fundamental de toda a programação, mas, afinal,
  • (^) O que é Algoritmo?
  • (^) “Algoritmo é uma seqüência de passos que visam atingir um objetivo bem definido.”
  • (^) Apesar de achar este nome estranho, algoritmos são comuns em nosso cotidiano, como, por exemplo, uma receita de bolo.
  • (^) Nela está descrita uma série de ingredientes necessários, uma seqüência de diversos passos - ações - a serem cumpridos para que se consiga fazer determinado tipo de bolo - objetivo bem definido aguardado ansiosamente por todos.
  • (^) Para aprimorar nosso conceito de algoritmo, vamos tornar mais evidente alguns outros conceitos, como, por exemplo, o de ação:
  • (^) “ Ação é um acontecimento que a partir de um estado inicial, após um período de tempo finito, produz um estado final previsível e bem definido”, em que:
  • (^) “ Estado é a situação atual de dado objeto.”

Algoritmo

  • (^) Outros algoritmos freqüentemente encontrados são:
    • (^) instruções para se utilizar um aparelho eletrodoméstico;
    • (^) uma receita para preparo de algum prato;
    • (^) guia de preenchimento para declaração do imposto de renda;
    • (^) a regra para determinação de máximos e mínimos de funções por derivadas sucessivas;
    • (^) a maneira como as contas de água, luz e telefone são calculadas mensalmente; etc.
  • (^) São vários os conceitos para algoritmo. Escolhemos alguns para serem apresentados aqui: - (^) “Um conjunto finito de regras que provê uma seqüência de operações para resolver um tipo de problema específico” [KNUTH] - (^) “Seqüência ordenada, e não ambígua, de passos que levam à solução de um dado problema” [TREMBLAY] - (^) “Processo de cálculo, ou de resolução de um grupo de problemas semelhantes, em que se estipulam, com generalidade e sem restrições, as regras formais para a obtenção do resultado ou da solução do problema” [AURÉLIO]