Transcript Algoritmo

Lógica de Programação

Introdução aos Algoritmos

Prof. Me. Claudio Benossi [email protected]

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  Elaboração de programas

Algoritmo – Definição  Descrição de um conjunto finito de comandos para a solução de um problema em um tempo finito .

Algoritmo – Exemplo :: Trocar o pneu de um carro

Algoritmo – Exemplo :: Trocar o pneu de um carro 1.

Desparafusar a roda.

Algoritmo – Exemplo :: Trocar o pneu de um carro 2.

Suspender o carro com um macaco.

Algoritmo – Exemplo :: Trocar o pneu de um carro 3.

Retirar a roda com o pneu furado.

Algoritmo – Exemplo :: Trocar o pneu de um carro 4.

Colocar o step.

Algoritmo – Exemplo :: Trocar o pneu de um carro 5.

Abaixar o carro.

Algoritmo – Exemplo :: Trocar o pneu de um carro 6.

Parafusar a roda.

Algoritmo – Mais Exemplos  Pegar um ônibus para o Drummond.

 Fazer um bolo.

 Fazer um barco de papel.

Algoritmo  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

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

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

Algoritmo - 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 - Exemplo Inicio Homem leva a galinha até a margem direita; Homem Volta a margem esquerda; Homem leva o Cachorro até a margem direita; Fim 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;

Algoritmo – Propriedades  Possui um estado inicial  Possui sequência lógica  Contém ações claras e precisas  Possui dados de entrada  Produz estado final previsível  Deve ser eficaz

Algoritmo – Fluxo Entrada Sequência Lógica Saída

Algoritmo – Fluxo Raio R de uma circunferência P=2*  *R Perímetro P da circunferência

Algoritmo

OPERADORES ARITMÉTICOS

+ Adição - Subtração * Multiplicação / Divisão

Algoritmo

OPERADORES RELACIONAIS

> Maior que < Menor que >= Maior ou Igual <= Menor ou Igual = Igual <> Diferente

Algoritmo 

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.

Algoritmo Exemplo:

Algoritmo 

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.

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

Exemplos de prioridades: (2+2)/2=2 2+2/2=3

Algoritmo 

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.

Algoritmo 

OPERADORES LÓGICOS

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

E OU

RETORNA VERDADEIRO SE AMBAS AS PARTES FOREM VERDADEIRAS.

BASTA QUE UMA PARTE SEJA VERDADEIRA PARA RETORNAR VERDADEIRO.

NÃO

INVERTE O ESTADO, DE VERDADEIRO PASSA PARA FALSO E VICE-VERSA.

Algoritmo 

TABELA VERDADE A

V V F F

B

V F V F

A E B

V F F F

A OU B

V V V F

NÃO (A)

F F V V

Algoritmo 

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

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

Exemplos:

Algoritmo 

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!

Algoritmo 

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 processados como resultados.

dados

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

Algoritmo 

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

Algoritmo 

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

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

Algoritmo 

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;

Algoritmo Exemplo:

Algoritmo 

TIPOS DE DADOS

INTEIRO

 ADMITE SOMENTE GERALMENTE É REPRESENTAR (QUANTIDADE).

NÚMEROS UTILIZADO UMA INTEIROS.

PARA CONTAGEM

Algoritmo 

TIPOS DE DADOS

REAL

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

Algoritmo 

TIPOS DE DADOS

CARACTERE

 ADMITE CARACTERES ALFANUMÉRICOS. OS NÚMEROS QUANDO DECLARADOS PERDEM A ATRIBUIÇÃO DE VALOR.

COMO CARACTERES TORNAM SE REPRESENTATIVOS E

Algoritmo 

TIPOS DE DADOS

LÓGICO

 ADMITE SOMENTE (VERDADEIRO / FALSO).

VALORES LÓGICOS

Algoritmo 

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ário  Revisão de algoritmos  Linguagem de programação  Linguagem estruturada  Elaboração de programas

Linguagem de programação  Estabelece máquina.

regras de sintaxe para que o algoritmo possa ser entendido por uma

Algoritmo × Linguagem de Programação Raciocínio Algoritmo int a, b, c; if (a > 2) a = b + c; else a = b – c; return; Programa

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

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

 Programa é o elemento que diz ao computador quais cálculos devem ser realizados.

Sumário  Revisão de algoritmos  Linguagem de programação  Linguagem estruturada  Elaboração de programas

O que é linguagem estruturada?

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

Características  Sua principal característica é a utilização de blocos para solução de um problema.

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

Sumário  Revisão de algoritmos  Linguagem de programação  Linguagem estruturada  Elaboração de programas

Passos para elaboração de um programa 1.

2.

3.

4.

Compreender o problema.

Esboçar um procedimento para resolver o problema.

Formular o algoritmo.

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

Passos para elaboração de um programa :: Exemplo  Calcular as raízes reais de:

ax 2 + bx + c

1. Compreender o problema  Exemplo: Equação de 2o. grau  Possibilidades de raízes:  02 raízes complexas ;  02 raízes reais idênticas ;  02 raízes reais distintas ;  Condição para haver raízes reais: Δ ≥ 0

2. Esboçar um procedimento para resolver o problema  Calcular Δ.

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

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

3. Formular o algoritmo ler (a,b,c) delta = b^2 – 4*a*c se (delta ≥ 0) então r1 = – b – (delta)^(–1/2) r2 = – b + (delta)^(–1/2) escrever (r1,r2) senão escrever (“Não há raiz real”) fim do se fim do algoritmo

4. Codificar #include #include #include int main( void ) { float if { a, b, c, delta, r1, r2; scanf( "%f %f %f" delta = b*b – 4*a*c; (delta >= 0) r1 = – b – sqrt(delta); r2 = – b + sqrt(delta); printf( , &a, &b, &c); "r1 = %f \n r2 = %f" , r1, r2); } else printf( "Nao ha raiz real\n" ); }

Gerando um programa executável  Passos necessários para gerar um programa executável: A.

B.

Codificação Geração de Código Objeto C.

D.

Linkagem Depuração (debug)

Gerando um programa executável Codificação Código fonte Geração de código objeto Código objeto Depuração Bibliotecas Linkagem Programa Executável

Gerando um programa executável A. Codificação  É a escrita de um programa de acordo com uma linguagem de programação.

 Utiliza

Editores de Texto

.

 Resultado: código-fonte .

Gerando um programa executável B. Geração de código-objeto  Tradução do código-fonte para o código de máquina do processador.

 Realizado pelos

Compiladores

.

 Resultado: código-objeto .

Gerando um programa executável C. Linkagem  Rearranja o código do programa  Incorpora as partes referenciadas no código original (obtidas de uma biblioteca ).

 Realizada pelos

Ligadores

.

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

Gerando um programa executável D. Depuração (debug)  Auxilia o programador a eliminar erros dos programas (“bugs”).

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

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

Para saber mais...

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

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

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

Questões