Lógica de Programação

Preview:

DESCRIPTION

Prof. Me. Claudio Benossi claudio@beno.com.br. 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

Lógica de Programação

Prof. Me. Claudio Benossiclaudio@beno.com.br

Introdução aos Introdução aos AlgoritmosAlgoritmos

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

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

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..

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

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

1.1. Desparafusar a roda.Desparafusar a roda.

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.

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.

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

4.4. Colocar o step.Colocar o step.

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

5.5. Abaixar o carro.Abaixar o carro.

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

6.6. Parafusar a roda.Parafusar a roda.

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.

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

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.

AlgoritmoAlgoritmo

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

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?

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

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

Sequência LógicaSequência Lógica

EntradaEntrada

SaídaSaída

Algoritmo – FluxoAlgoritmo – Fluxo

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

Raio R de uma circunferência

Perímetro P da circunferência

Algoritmo – FluxoAlgoritmo – Fluxo

AlgoritmoAlgoritmo

OPERADORES ARITMÉTICOS

+ Adição

- Subtração

* Multiplicação

/ Divisão

AlgoritmoAlgoritmo

OPERADORES RELACIONAIS

> Maior que

< Menor que

>= Maior ou Igual

<= Menor ou Igual

= Igual

<> Diferente

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.

AlgoritmoAlgoritmo

Exemplo:

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.

AlgoritmoAlgoritmo

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

Exemplos de prioridades:

(2+2)/2=2

2+2/2=3

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.

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.

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

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

AlgoritmoAlgoritmo

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

Exemplos:

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!

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.

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.

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

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 ( _ );

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.

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:

AlgoritmoAlgoritmo

Exemplo:

AlgoritmoAlgoritmo

TIPOS DE DADOS

INTEIRO

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

AlgoritmoAlgoritmo

TIPOS DE DADOS

REAL

ADMITE NÚMEROS REAIS (COM OU SEM CASAS DECIMAIS). GERALMENTE É UTILIZADO PARA REPRESENTAR UMA MEDIÇÃ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.

AlgoritmoAlgoritmo

TIPOS DE DADOS

LÓGICO

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

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.

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

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.

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

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.

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

É 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?

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

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

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).

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:

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

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.

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

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"););}}

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)

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

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..

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..

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.

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.

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...

QuestõesQuestões

Recommended