66
Lógica de Programação Prof. Me. Claudio Benossi [email protected] Introdução aos Introdução aos Algoritmos Algoritmos

Lógica de Programação

  • Upload
    zaria

  • View
    18

  • Download
    1

Embed Size (px)

DESCRIPTION

Prof. Me. Claudio Benossi [email protected]. Lógica de Programação. Introdução aos Algoritmos. Sumário. Revisão de algoritmos Linguagem de programação Linguagem estruturada Elaboração de programas. Sumário. Revisão de algoritmos Linguagem de programação Linguagem estruturada - PowerPoint PPT Presentation

Citation preview

Page 1: Lógica de Programação

Lógica de Programação

Prof. Me. Claudio [email protected]

Introdução aos Introdução aos AlgoritmosAlgoritmos

Page 2: Lógica de Programação

SumárioSumário

Revisão de algoritmosRevisão de algoritmos

Linguagem de programaçãoLinguagem de programação

Linguagem estruturadaLinguagem estruturada

Elaboração de programasElaboração de programas

Page 3: Lógica de Programação

SumárioSumário

Revisão de algoritmosRevisão de algoritmos

Linguagem de programaçãoLinguagem de programação

Linguagem estruturadaLinguagem estruturada

Elaboração de programasElaboração de programas

Page 4: Lógica de Programação

Algoritmo – DefiniçãoAlgoritmo – Definição

Descrição de um Descrição de um conjunto finitoconjunto finito de de comandoscomandos para a solução de um problema para a solução de um problema em um em um tempo finitotempo finito..

Page 5: Lógica de Programação

Algoritmo – Exemplo:: Trocar o pneu de um carroAlgoritmo – Exemplo:: Trocar o pneu de um carro

Page 6: Lógica de Programação

Algoritmo – Exemplo:: Trocar o pneu de um carroAlgoritmo – Exemplo:: Trocar o pneu de um carro

1.1. Desparafusar a roda.Desparafusar a roda.

Page 7: Lógica de Programação

Algoritmo – Exemplo:: Trocar o pneu de um carroAlgoritmo – Exemplo:: Trocar o pneu de um carro

2.2. Suspender o carro com um macaco.Suspender o carro com um macaco.

Page 8: Lógica de Programação

Algoritmo – Exemplo:: Trocar o pneu de um carroAlgoritmo – Exemplo:: Trocar o pneu de um carro

3.3. Retirar a roda com o pneu furado.Retirar a roda com o pneu furado.

Page 9: Lógica de Programação

Algoritmo – Exemplo:: Trocar o pneu de um carroAlgoritmo – Exemplo:: Trocar o pneu de um carro

4.4. Colocar o step.Colocar o step.

Page 10: Lógica de Programação

Algoritmo – Exemplo:: Trocar o pneu de um carroAlgoritmo – Exemplo:: Trocar o pneu de um carro

5.5. Abaixar o carro.Abaixar o carro.

Page 11: Lógica de Programação

Algoritmo – Exemplo:: Trocar o pneu de um carroAlgoritmo – Exemplo:: Trocar o pneu de um carro

6.6. Parafusar a roda.Parafusar a roda.

Page 12: Lógica de Programação

Algoritmo – Mais ExemplosAlgoritmo – Mais Exemplos

Pegar um ônibus para o Drummond.Pegar um ônibus para o Drummond.

Fazer um bolo.Fazer um bolo.

Fazer um barco de papel.Fazer um barco de papel.

Page 13: Lógica de Programação

AlgoritmoAlgoritmo

Uma boa lógica de programação é desenvolvida a partir de um conjunto de elementos, entre eles:

Organização

Criatividade

Perseverança

Padronização

Otimização

Page 14: Lógica de Programação

AlgoritmoAlgoritmo

Lógica de programação é a técnica de encadear pensamentos para atingir determinado objetivo. O aprendizado desta técnica é necessário, para quem quer trabalhar com desenvolvimento de sistemas e programas.

Lógica de Programação: raciocínio lógico empregado no desenvolvimento de programas de computador, fazendo uso ordenado dos elementos básicos suportados por um dado estilo de programação.

Page 15: Lógica de Programação

AlgoritmoAlgoritmo

 Algoritmo é uma sequência de passos finitos com o objetivo de solucionar um problema.

Page 16: Lógica de Programação

Algoritmo - ExemploAlgoritmo - Exemplo

Elabore um algoritmo em linguagem natural para resolver as situações colocadas a seguir:

Um homem precisa atravessar um rio com um barco que possui capacidade de transportar apenas ele e mais uma de suas três cargas, que são: um cachorro, uma galinha e um saco de milho. O que o homem deve fazer para conseguir atravessar o rio sem perder as suas cargas?

Page 17: Lógica de Programação

Algoritmo - ExemploAlgoritmo - Exemplo

Inicio

Homem leva a galinha até a margem direita;

Homem Volta a margem esquerda;

Homem leva o Cachorro até a margem direita;

Homem Volta a margem esquerda levando a galinha;

Homem leva o Saco de Milho até a margem direita;

Homem Volta a margem esquerda;

Homem leva a galinha até a margem direita;

Fim

Page 18: Lógica de Programação

Algoritmo – PropriedadesAlgoritmo – Propriedades

Possui um estado inicialPossui um estado inicial

Possui sequência lógicaPossui sequência lógica

Contém ações claras e precisasContém ações claras e precisas

Possui dados de entradaPossui dados de entrada

Produz estado final previsívelProduz estado final previsível

Deve ser eficazDeve ser eficaz

Page 19: Lógica de Programação

Sequência LógicaSequência Lógica

EntradaEntrada

SaídaSaída

Algoritmo – FluxoAlgoritmo – Fluxo

Page 20: Lógica de Programação

P=2*P=2**R*R

Raio R de uma circunferência

Perímetro P da circunferência

Algoritmo – FluxoAlgoritmo – Fluxo

Page 21: Lógica de Programação

AlgoritmoAlgoritmo

OPERADORES ARITMÉTICOS

+ Adição

- Subtração

* Multiplicação

/ Divisão

Page 22: Lógica de Programação

AlgoritmoAlgoritmo

OPERADORES RELACIONAIS

> Maior que

< Menor que

>= Maior ou Igual

<= Menor ou Igual

= Igual

<> Diferente

Page 23: Lógica de Programação

AlgoritmoAlgoritmo

LINEARIZAÇÃO DE EXPRESSÕES

Para a construção de Algoritmos todas as expressões aritméticas devem ser linearizadas, ou seja, colocadas em linhas.

É importante também ressalvar o uso dos operadores correspondentes da aritmética tradicional para a computacional.

Page 24: Lógica de Programação

AlgoritmoAlgoritmo

Exemplo:

Page 25: Lógica de Programação

AlgoritmoAlgoritmo

MODULARIZAÇÃO DE EXPRESSÕES

A modularização é a divisão da expressão em partes, proporcionando maior compreensão e definindo prioridades para resolução da mesma.

Como pode ser observado no exemplo anterior, em expressões computacionais usamos somente parênteses “( )” para modularização.

Page 26: Lógica de Programação

AlgoritmoAlgoritmo

Na informática podemos ter parênteses dentro de parênteses.

Exemplos de prioridades:

(2+2)/2=2

2+2/2=3

Page 27: Lógica de Programação

AlgoritmoAlgoritmo

OPERADORES ESPECIAIS (MOD e DIV)

 

MOD Retorna o resto da divisão entre 2 números inteiros.

DIV Retorna o valor inteiro que resulta da divisão entre 2 números inteiros.

Page 28: Lógica de Programação

AlgoritmoAlgoritmo

OPERADORES LÓGICOS

Atuam sobre expressões retornando sempre valores lógicos como Falso ou Verdadeiro.

ERETORNA VERDADEIRO SE AMBAS AS PARTES

FOREM VERDADEIRAS.

OUBASTA QUE UMA PARTE SEJA VERDADEIRA PARA

RETORNAR VERDADEIRO.

NÃOINVERTE O ESTADO, DE VERDADEIRO PASSA PARA

FALSO E VICE-VERSA.

Page 29: Lógica de Programação

AlgoritmoAlgoritmo

TABELA VERDADE

A B A E B A OU B NÃO

(A)

V V V V F

V F F V F

F V F V V

F F F F V

Page 30: Lógica de Programação

AlgoritmoAlgoritmo

EXPRESSÕES LÓGICAS

As expressões compostas de relações sempre retornam um valor lógico.

Exemplos:

2+5>4

Verdadeiro

3<>3 Falso

Page 31: Lógica de Programação

AlgoritmoAlgoritmo

De acordo com a necessidade, as expressões podem ser unidas pelos operadores lógicos.

Exemplos:

Page 32: Lógica de Programação

AlgoritmoAlgoritmo

VARIÁVEIS

Variáveis são endereços de memória destinados a armazenar informações temporariamente.

* Todo Algoritmo ou programa deve possuir variável!

Page 33: Lógica de Programação

AlgoritmoAlgoritmo

VARIÁVEIS DE ENTRADA E SAÍDA

Variáveis de Entrada armazenam informações fornecidas por um meio externo, normalmente usuários ou discos.

Variáveis de Saída armazenam dados processados como resultados.

Page 34: Lógica de Programação

AlgoritmoAlgoritmo

Exemplo:

De acordo com a figura acima A e B são Variáveis de Entrada e C é uma Variável de Saída.

Page 35: Lógica de Programação

AlgoritmoAlgoritmo

CONSTANTES

Constantes são endereços de memória destinados a armazenar informações fixas, inalteráveis durante a execução do programa.

Exemplo:

PI = 3.1416

Page 36: Lógica de Programação

AlgoritmoAlgoritmo

IDENTIFICADORES

São os nomes dados a variáveis, constantes e programas.

Regras Para construção de Identificadores: Não podem ter nomes de palavras reservadas

(comandos da linguagem);

Devem possuir como 1º caractere uma letra ou Underscore ( _ );

Page 37: Lógica de Programação

AlgoritmoAlgoritmo

Ter como demais caracteres letras, números ou Underscore;

Ter no máximo 127 caracteres;

Não possuir espaços em branco;

A escolha de letras maiúsculas ou minúsculas é indiferente.

Page 38: Lógica de Programação

AlgoritmoAlgoritmo

IDENTIFICADORES

São os nomes dados a variáveis, constantes e programas.

Regras Para construção de Identificadores:

Não podem ter nomes de palavras reservadas (comandos da linguagem);

Devem possuir como 1º caractere uma letra ou Underscore ( _ );

Ter como demais caracteres letras, números ou Underscore;

Ter no máximo 127 caracteres;

Não possuir espaços em branco;

A escolha de letras maiúsculas ou minúsculas é indiferente.

Exemplos:

Page 39: Lógica de Programação

AlgoritmoAlgoritmo

Exemplo:

Page 40: Lógica de Programação

AlgoritmoAlgoritmo

TIPOS DE DADOS

INTEIRO

ADMITE SOMENTE NÚMEROS INTEIROS. GERALMENTE É UTILIZADO PARA REPRESENTAR UMA CONTAGEM (QUANTIDADE).

Page 41: Lógica de Programação

AlgoritmoAlgoritmo

TIPOS DE DADOS

REAL

ADMITE NÚMEROS REAIS (COM OU SEM CASAS DECIMAIS). GERALMENTE É UTILIZADO PARA REPRESENTAR UMA MEDIÇÃO.

Page 42: Lógica de Programação

AlgoritmoAlgoritmo

TIPOS DE DADOS

CARACTERE

ADMITE CARACTERES ALFANUMÉRICOS. OS NÚMEROS QUANDO DECLARADOS COMO CARACTERES TORNAM SE REPRESENTATIVOS E PERDEM A ATRIBUIÇÃO DE VALOR.

Page 43: Lógica de Programação

AlgoritmoAlgoritmo

TIPOS DE DADOS

LÓGICO

ADMITE SOMENTE VALORES LÓGICOS (VERDADEIRO / FALSO).

Page 44: Lógica de Programação

AlgoritmoAlgoritmo

COMANDOS DE I/O (INPUT/OUTPUT)- Entrada e Saída

LER Comando de entrada que permite a leitura de Variáveis de Entrada.

ESCREVER Comando de saída que exibe uma informação na tela do monitor.

IMPRIMIR Comando de saída que envia uma informação para a impressora.

Page 45: Lógica de Programação

SumárioSumário

Revisão de algoritmosRevisão de algoritmos

Linguagem de programaçãoLinguagem de programação

Linguagem estruturadaLinguagem estruturada

Elaboração de programasElaboração de programas

Page 46: Lógica de Programação

Linguagem de programaçãoLinguagem de programação

Estabelece Estabelece regras de sintaxeregras de sintaxe para que o para que o algoritmo possa ser entendido por uma algoritmo possa ser entendido por uma máquina.máquina.

Page 47: Lógica de Programação

int a, b, c;if (a > 2)

a = b + c;else

a = b – c;return;

Algoritmo

Programa

Raciocínio

Algoritmo × Linguagem de ProgramaçãoAlgoritmo × Linguagem de Programação

Page 48: Lógica de Programação

ProgramaPrograma

Programa é a Programa é a codificaçãocodificação de um algoritmo de um algoritmo em uma linguagem de programação.em uma linguagem de programação.

Um computador é uma máquina que, a Um computador é uma máquina que, a partir de uma partir de uma entradaentrada, realiza um número , realiza um número de de cálculoscálculos matemáticos e lógicos, matemáticos e lógicos, gerando uma gerando uma saídasaída..

Programa é o elemento quePrograma é o elemento que diz ao diz ao computadorcomputador quais cálculos devem ser quais cálculos devem ser realizados.realizados.

Page 49: Lógica de Programação

SumárioSumário

Revisão de algoritmosRevisão de algoritmos

Linguagem de programaçãoLinguagem de programação

Linguagem estruturadaLinguagem estruturada

Elaboração de programasElaboração de programas

Page 50: Lógica de Programação

É uma forma de programação de É uma forma de programação de computadores que preconiza que todos os computadores que preconiza que todos os programas possíveis podem ser reduzidos programas possíveis podem ser reduzidos a apenas três estruturas:a apenas três estruturas: SequênciaSequência

DecisãoDecisão

InteraçãoInteração

O que é linguagem estruturada?O que é linguagem estruturada?

Page 51: Lógica de Programação

Sua principal característica é a utilização Sua principal característica é a utilização de de blocosblocos para solução de um problema. para solução de um problema.

Permite a utilização combinada de sub-Permite a utilização combinada de sub-rotinas compiladas rotinas compiladas separadamenteseparadamente, sem , sem que pertençam ao mesmo programa que pertençam ao mesmo programa propriamente dito.propriamente dito.

CaracterísticasCaracterísticas

Page 52: Lógica de Programação

SumárioSumário

Revisão de algoritmosRevisão de algoritmos

Linguagem de programaçãoLinguagem de programação

Linguagem estruturadaLinguagem estruturada

Elaboração de programasElaboração de programas

Page 53: Lógica de Programação

Passos para elaboração de um programaPassos para elaboração de um programa

1.1. Compreender o problema.Compreender o problema.

2.2. Esboçar um procedimento para resolver Esboçar um procedimento para resolver o problema.o problema.

3.3. Formular o algoritmo.Formular o algoritmo.

4.4. Traduzir o algoritmo para uma linguagem Traduzir o algoritmo para uma linguagem de programação (Codificação).de programação (Codificação).

Page 54: Lógica de Programação

c+bx+ax 2

Passos para elaboração de um programa:: ExemploPassos para elaboração de um programa:: Exemplo

Calcular as raízes reais de:Calcular as raízes reais de:

Page 55: Lógica de Programação

1. Compreender o problema1. Compreender o problema

Exemplo: Equação de 2o. grauExemplo: Equação de 2o. grau

Possibilidades de raízes:Possibilidades de raízes: 02 raízes 02 raízes complexascomplexas;;

02 raízes 02 raízes reais idênticasreais idênticas;;

02 raízes 02 raízes reais distintasreais distintas;;

Condição para haver raízes reais: Condição para haver raízes reais: Δ Δ ≥ ≥ 00

Page 56: Lógica de Programação

2. Esboçar um procedimento para resolver o problema2. Esboçar um procedimento para resolver o problema

Calcular Δ.Calcular Δ.

Se Δ ≥ 0, calcular raízes reais.Se Δ ≥ 0, calcular raízes reais.

Caso contrário, informar que não há raízes Caso contrário, informar que não há raízes reais.reais.

Page 57: Lógica de Programação

3. Formular o algoritmo3. Formular o algoritmo

lerler(a,b,c)(a,b,c)

delta = b^2 – 4*a*cdelta = b^2 – 4*a*c

sese (delta (delta ≥ ≥ 0) 0) entãoentão

r1 = – b – (delta)^(–1/2)r1 = – b – (delta)^(–1/2)

r2 = – b + (delta)^(–1/2)r2 = – b + (delta)^(–1/2)

escreverescrever(r1,r2)(r1,r2)

senãosenão

escreverescrever(“Não há raiz real”)(“Não há raiz real”)

fim do sefim do se

fim do algoritmofim do algoritmo

Page 58: Lógica de Programação

4. Codificar4. Codificar

#include <stdio.h>#include <stdio.h>#include <stdlib.h>#include <stdlib.h>#include <math.h>#include <math.h>intint main( main(voidvoid)){{

floatfloat a, b, c, delta, r1, r2; a, b, c, delta, r1, r2;scanf(scanf("%f %f %f""%f %f %f", &a, &b, &c);, &a, &b, &c);delta = b*b – 4*a*c;delta = b*b – 4*a*c;ifif (delta >= (delta >= 0)0){{

r1 = – b – sqrt(delta);r1 = – b – sqrt(delta);r2 = – b + sqrt(delta);r2 = – b + sqrt(delta);printf(printf("r1 = %f \n r2 = %f""r1 = %f \n r2 = %f", r1, r2);, r1, r2);

}}elseelse

printf(printf("Nao ha raiz real\n""Nao ha raiz real\n"););}}

Page 59: Lógica de Programação

Gerando um programa executávelGerando um programa executável

Passos necessários para gerar um Passos necessários para gerar um programa executável:programa executável:

A.A. CodificaçãoCodificação

B.B. Geração de Código ObjetoGeração de Código Objeto

C.C. LinkagemLinkagem

D.D. DepuraçãoDepuração (debug) (debug)

Page 60: Lógica de Programação

Códigofonte

Códigoobjeto

Bibliotecas Programa Executável

Geração de código objeto

Linkagem

DepuraçãoCodificação

Gerando um programa executávelGerando um programa executável

Page 61: Lógica de Programação

Gerando um programa executável A. CodificaçãoGerando um programa executável A. Codificação

É a escrita de um programa de acordo É a escrita de um programa de acordo com uma linguagem de programação.com uma linguagem de programação.

Utiliza Utiliza Editores de TextoEditores de Texto..

Resultado: Resultado: código-fontecódigo-fonte..

Page 62: Lógica de Programação

Gerando um programa executável B. Geração de código-objetoGerando um programa executável B. Geração de código-objeto

Tradução do código-fonte para o código Tradução do código-fonte para o código de máquina do processador.de máquina do processador.

Realizado pelos Realizado pelos CompiladoresCompiladores..

Resultado: Resultado: código-objetocódigo-objeto..

Page 63: Lógica de Programação

Gerando um programa executável C. LinkagemGerando um programa executável C. Linkagem

Rearranja o código do programaRearranja o código do programa

Incorpora as partes referenciadas no Incorpora as partes referenciadas no código original (obtidas de uma código original (obtidas de uma bibliotecabiblioteca).).

Realizada pelos Realizada pelos LigadoresLigadores..

Resultado: Resultado: código executávelcódigo executável pelo pelo processador.processador.

Page 64: Lógica de Programação

Gerando um programa executável D. Depuração (debug)Gerando um programa executável D. Depuração (debug)

Auxilia o programador a eliminar erros dos Auxilia o programador a eliminar erros dos programas (“bugs”).programas (“bugs”).

Permite:Permite: execução passo-a-passo.execução passo-a-passo.

visualização do estado do programa através visualização do estado do programa através das variáveis.das variáveis.

Page 65: Lógica de Programação

SEBESTA, R. W. SEBESTA, R. W. Conceitos de linguagens Conceitos de linguagens de programaçãode programação. 4ª ed. Bookman, 2000.. 4ª ed. Bookman, 2000.

Dicionário de Linguagens de Dicionário de Linguagens de Programação:Programação:http://users.erols.com/ziring/dopl.htmlhttp://users.erols.com/ziring/dopl.html

Dicionário de algoritmos e estruturas de Dicionário de algoritmos e estruturas de dados:dados:http://www.nist.gov/dads/http://www.nist.gov/dads/

Para saber mais...Para saber mais...

Page 66: Lógica de Programação

QuestõesQuestões