Por que criamos algoritmos?

Download Report

Transcript Por que criamos algoritmos?

Algoritmos e Programação

Thyago Maia Tavares de Farias Aula 2

Sumário

 Por que criamos algoritmos?

 Representações de um algoritmo

 Regras básicas para Português Estruturado

 Linearização de expressões

 Modularização de expressões

Por que criamos algoritmos?

     Linguagem natural não pode ser interpretada por um computador; Computadores são projetados para executar tarefas bem determinadas a partir de determinadas instruções; Para desenvolver software, utilizamos linguagens de programação; A linguagem algorítmica é similar a uma linguagem de programação; Logo, aprendendo a criar algoritmos, estamos aptos a programar em qualquer linguagem de programação;

Por que criamos algoritmos?

LINGUAGEM NATURAL PORTUGUÊS, INGLÊS...

INSTRUÇÕES ALGORITMO ADAPTAÇÃO ALTO NÍVEL CÓDIGO-FONTE EM LINGUAGEM DE PROGRAMAÇÃO 01000101001....

BAIXO NÍVEL LINGUAGEM DE MÁQUINA COMPILAÇÃO TRADUÇÃO

Representações de um Algoritmo

 Descrição narrativa;  Fluxograma  Pseudocódigo, Português Estruturado ou Portugol; SUBJETIVIDADE PRECISÃO

Representações de um Algoritmo

 Descrição Narrativa:  Preferencialmente um verbo por frase;  Frases curtas e simples;  Objetividade;  Evitar palavras com sentido dúbio;

Exemplo

 Descrição Narrativa:  Dobro de um número (Dobro = Número x 2):  Digitar um número;  Gravar em uma variável;  Multiplicar o número digitado por 2;  Gravar o resultado em outra variável;  Mostrar o resultado da operação.

Representações de um algoritmo

 Fluxogramas    Descrevem o fluxo de ação de um determinado trabalho lógico, seja manual ou mecânico; Usa símbolos convencionais, permitindo poucas variações; Representado por símbolos geométricos;

Exemplo

 Fluxograma para lidar com uma lâmpada que não funciona LÂMPADA NÃO FUNCIONA A LÂMPADA ESTÁ PLUGADA ?

SIM NÃO PLUGUE A LÂMPADA VERIFIQUE O BOCAL NÃO A LÂMPADA ESTÁ QUEIMADA ?

SIM TROQUE A LÂMPADA

Representações de um algoritmo

 Português estruturado (Portugol)  Linguagem mais restrita que o português em linguagem natural;  Simplificação extrema do português;  Significados bem definidos para todos os termos utilizados nas instruções;  Possui um conjunto de palavras e regras específicas (sintaxe da linguagem);  Representação utilizada no curso;

Representações de um algoritmo

 Português estruturado (Portugol)  Normalmente as implementações são feitas em papel, escritos a mão;  Atualmente também são utilizados programas que interpretam, testam e executam algoritmos;

Desafio

  Escreva um algoritmo que ajude o homem do barco a levar o lobo, a ovelha e a caixa de verduras para o outro lado do lago. Utilize a descrição narrativa para representar o algoritmo. Lembrando que lobos comem ovelhas e ovelhas comem as verduras da caixa quando o homem está na outra margem!

Resposta do desafio

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.

14.

15.

Pega a ovelha Vai para a outra margem Deixa a ovelha Volta a margem inicial Pega a caixa de verduras Vai para a outra margem Deixa a caixa de verduras e pega a ovelha Volta a margem inicial Deixa a ovelha e pega o lobo Vai para a outra margem Deixa o lobo Volta a margem inicial Pega a ovelha Vai para a outra margem Deixa a ovelha

Linearização de expressões

  Para contrução de algoritmos que realizam cálculos matemáticos, TODAS expressões aritméticas devem ser linearizadas; Linearizadas = Colocadas em linha;

Linearização de expressões

 Operadores aritméticos disponíveis para o português estruturado:  Adição (+)       Subtração (-) Multiplicação (*) Divisão (/) Divisão inteira (\) Exponenciação (^ ou Exp) Módulo, ou resto da divisão (%)

Linearização de expressões

 Operadores relacionais  Realizam a comparação entre dois operandos ou duas expressões e resultam em valores lógicos (verdadeiro ou falso)  Ex.: 2+5 > 4 resultaria VERDADEIRO;  Ex.: 2 = 7 resultaria FALSO;

Linearização de expressões

 Operadores relacionais disponíveis no Português estruturado:  Maior (>)  Menor (<)  Maior ou igual (>=)  Menor ou igual (<=)  Igual (=)  Diferente (<>)

Linearização de expressões

 Operadores lógicos  Atuam em expressões, também resultando em valores lógicos VERDADEIRO ou FALSO;  Tipos de operadores:  E: Resulta verdadeiro se AMBAS AS PARTES forem verdadeiras;  OU: Resulta verdadeiro se UMA DAS PARTES é verdadeira;  NÃO: Nega uma afirmação. Se verdadeiro, torna-se falso; Se falso, torna-se verdadeiro;

Linearização de expressões

 Exemplos:  (2+5 > 4) e (3 <> 3) resulta FALSO  Pois VERDADEIRO e FALSO resulta FALSO;  (2=2) ou (3<1) resulta VERDADEIRO  Pois VERDADEIRO ou FALSO resulta VERDADEIRO;  NAO (3<1) resulta VERDADEIRO  Pois FALSO resulta VERDADEIRO devido a inversão de valores definido por NÃO;

Linearização de expressões

 Tabelas-Verdade  Mostra os resultados das aplicações dos operadores lógicos conforme os valores dos operandos envolvidos: A V V F F B V F V F A E B A OU B NAO A NÃO B V V F F F F F V V F V V V F F V

Modularização de expressões

      É a divisão de uma expressão por partes; Proporciona maior compreensão; Define prioridades na resolução das mesmas; Modularizamos expressões através dos parênteses ( ); Podemos utilizar parênteses dentro de parênteses (( )); Indicam quais sub-expressões serão executados primeiro;

Modularização de expressões

   Exemplo: (2+2)/2 resulta 2; Mas 2+2/2 resulta 3;  1.

2.

3.

4.

5.

Ordem de prioridade dos operadores aritméticos: Exponenciação Multiplicação Divisão Adição Subtração

Modularização de expressões

 1.

2.

3.

Ordem de prioridade dos operadores lógicos: E OU NÃO    Exemplo: (2>3) ou (3<2) e (2<3) resultaria FALSO (2>3) e (3<2) ou (2<3) resultaria VERDADEIRO

Modularização de Expressões

 Ordem de prioridade dos operadores disponíveis no Português estruturado: 1.

2.

3.

Operadores aritméticos Operadores relacionais Operadores lógicos

Exercícios

 Escreva as expressões abaixo na forma linearizada:

Respostas

 1ª expressão: a + b/c  2ª expressão: ((2/3 – (5-3)) + 1) * 5

Exercícios

 Escreva as seguintes expressões linearizadas na forma matemática convencional:  4 + (5/3) * 8 – 4/2 – 5  8/4 – 2 + (5 + 4) / (3 – 1)

Exercícios

 Resolva as expressões lógicas, determinando se a expressão é VERDADEIRA ou FALSA:  2 > 3  (6 < 8) OU (3 > 7)  NÃO (2 < 3)  (2=2) E (1 > 10) OU (5<4)

Respostas

 Resolva as expressões lógicas, determinando se a expressão é VERDADEIRA ou FALSA:  2 > 3 = FALSO  (6 < 8) OU (3 > 7) = VERDADEIRO  NÃO (2 < 3) = FALSO  (2=2) E (1 > 10) OU (5<4) = FALSO

Forma geral de um algoritmo

Algoritmo “ nome do algoritmo ” Var Aqui declaramos as variáveis dos algoritmo Inicio Aqui declaramos as instruções do algoritmo fimalgoritmo