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
Lógica de Programação
Prof. Me. Claudio [email protected]
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