Você está na página 1de 26

Introduo a Computao

Lgica de Programao Conceitos

Algoritmos
Conjunto predeterminado e bem definido de regras e processos destinados a soluo de um problema, com um nmero finito de etapas.

Tipos e Estruturas de dados


Um programa de computador consiste essencialmente de uma srie de operaes sobre um conjunto de dados. Este conjunto de dados tem uma forma ou estrutura que define como estes dados so organizados. Programa = algoritmo + estrutura de dados (Niklaus Wirth)
3

Algoritmos
Conceito central da programao e da Cincia da Computao Programar basicamente construir algoritmos Wirth: Programao Estruturada
Arte ou tcnica de construir e formular algoritmos de uma forma sistemtica

Algoritmos
Wirth: Programas
Formula Formulaes concretas de algoritmos abstratos, baseados em representa representaes e estruturas espec especficas de dados dados
Algoritmos Estruturas de Dados

Algoritmos
Conceito: (Guimares/Lajes)
a descrio de um padro de comportamento em termos de repertrio bem definido e finito de aes primitivas, das quais damos por certo que elas podem ser executadas.

Algoritmos
Algoritmo uma norma executvel para estabelecer um efeito desejvel
Exemplos:
Instrues de uso Indicaes de montagem Receitas de cozinha Partituras Musicais Cronograma de obra

Algoritmos
ESTADO ANTERIOR
Micro-ondas desligado Brinquedo Desmontado Sem almoo Sem msica Terreno Vazio Dados Folha de Pagamento

AO

ESTADO POSTERIOR
Micro-ondas utilizado Brinquedo Montado Almoo Especial Com msica Prdio Construdo Folhas de Pagamento Calculada
8

Algoritmos
Preparar batata frita
Separar batatas; Descascar batatas; Cortar batatas; Preparar leo; Fritar batatas; Servir batatas;

Algoritmos
Para desenvolver um algoritmo, necessrio:
Identificar quem (ou o que...) vai executar as aes Descrever as aes a serem executadas

10

Algoritmos
Quem (ou o que...) vai executar as aes?
Determinar linguagem e abstraes utilizadas Determinar aes primitivas Exemplo:
Construir edifcio: Proprietrio, Engenheiro, Mestre de Obras, Pedreiro...

11

Algoritmos
Descrever as aes a serem executadas utilizando as aes primitivas
Ordem das aes e indicao das decises a serem tomadas conforme os estados intermedirios (Algoritmo) Diviso em etapas intermedirias para melhor compreenso e gerenciamento do processo intermedirio

12

Algoritmos
Exemplos:
Construo do edifcio
Etapas: Fundao, Alvenaria, Cobertura... Aes primitivas: Pedreiro, Mestre de Obras, Engenheiro

13

Algoritmos
Linguagens de Programao:
O computador quem executa as ordens
O Computador uma mquina capaz de seguir uma certa espcie de algoritmos, chamados de programas Possui memria: Armazenar dados Possui CPU: Causar mudanas nos dados armazenados na memria Possuir perifricos de E/S: Comunicar-se com o mundo exterior
14

Algoritmos
Linguagens de Programao:
Identificar as aes primitivas
As aes primitivas so as oferecidas pelas linguagens de programao As aes primitivas, de uma forma geral, no so muito diferentes de uma linguagem para outra, j que as caractersticas do computador no mudam!

15

FERRAMENTAS
Ferramentas de Descrio de Algoritmos
Fluxograma Diagrama de Chapin Portugol

16

FLUXOGRAMAS
Diagrama de Blocos ou Fluxograma
Ferramenta tradicional para apresentao grfica de algoritmos de computao Utiliza smbolos grficos para representar aes e decises, e setas para indicar o fluxo do algoritmo

17

FLUXOGRAMA - SMBOLOS
INCIO/FIM

PROCESSO
Sentido do Fluxo

ENTRADA E SADA

DECISO

CONECTOR
18

EXEMPLO
Ler dois nmero e mostrar o maior, o menor e a soma dos nmeros, nesta ordem.

INCIO Ler A, B S := A+B Sim A > B? No Imprima B, A, S

Imprima A, B, S

FIM
19

DIAGRAMA DE CHAPIN
Ned Chapin - Nassi & Shneiderman Tambm uma ferramenta grfica, que utiliza somente blocos concatenados indicando o fluxo do programa, de cima para baixo

20

10

DIAGRAMA DE CHAPIN - EXEMPLO


Ler dois nmero e mostrar o maior, o menor e a soma dos nmeros, nesta ordem.
Sim Ler A, B S := A+B A > B? No

Imprima A, B, S

Imprima B, A, S

21

PORTUGOL
Pseudolinguagem de programao onde as aes primitivas so expressas por comandos em portugus

22

11

PORTUGOL - BENEFCIOS
Aplica os conceitos da Programao Estruturada Possibilita o desenvolvimento independente da linguagem de programao, porm facilmente convertida para a linguagem

23

PORTUGOL - BENEFCIOS
Facilita a validao do algoritmo e a sua documentao de forma mais clara, por utilizar comando na nossa lngua portugus.
Possibilita concentrar-se no problema, e no na linguagem.

24

12

PORTUGOL - Estrutura
Nome { rea de definies } ... { rea de procedimentos } ... { rea de comandos } Inicio ... Fim.

25

PORTUGOL - EXEMPLO
Var; inteiro: A, B, S; Incio; Leia A,B; S:= A+B; Se A>B ento imprima A,B,S; seno imprima B,A,C; fim-se; fim.

26

13

PORTUGOL - EXEMPLO
Elementos da linguagem: sublinhados Smbolo de seqnciamento: ;
Estrutura de controle: seqncia simples Separa os comandos

Comando que indica o incio do programa


Incio;

Comando que indica o fim do programa


Fim.

27

SOLUO DE PROBLEMA
Utilizando FLUXOGRAMA Problema: Clculo da Mdia Escolar
Calcular a mdia anual de um aluno, recebendo as quatro notas bimestrais. Se a mdia for maior ou igual a 7, o aluno aprovado. Seno o aluno reprovado.

28

14

SOLUO DE PROBLEMAS
PASSO 1: Apresentar o problema
INCIO Calcular a mdia e determinar a aprovao do aluno FIM
29

SOLUO DE PROBLEMAS
PASSO 2: Detalhar entrada e sada
INCIO Entrar 4 Notas Calcular a mdia e determinar a aprovao do aluno Apresentar se Aprovado ou no FIM
30

15

SOLUO DE PROBLEMAS
PASSO 3: Refinar o problema
INCIO Calcular a mdia Entrar 4 Notas Sim No

Mdia >=7

Imprimir Aprovado

Imprimir Reprovado

FIM
31

SOLUO DE PROBLEMAS
PASSO 4: Detalhar utilizando variveis e aes primitivas
INCIO Ler N1,N2,N3,N4 Calcular M:=(N1+N2+N3+N4)/4 Sim M >=7 No

Imprimir Aprovado

Imprimir Reprovado

FIM
32

16

SOLUO DE PROBLEMA
Utilizando PORTUGOL Problema: Clculo da Mdia Escolar
Calcular a mdia anual de um aluno, recebendo as quatro notas bimestrais. Se a mdia for maior ou igual a 7, o aluno aprovado. Seno o aluno reprovado.

33

SOLUO DE PROBLEMA
Aes primitivas PORTUGOL - utilizadas neste problema:
Leia Atribua Se ... Ento ... Seno ... Fim-se Escreva

34

17

SOLUO DE PROBLEMA
PASSO 3: Refinar o problema
programa MDIA; Incio; entre 4 notas; calcule mdia; se mdia >= 7 ento mostre Aprovado; seno mostre Reprovado; fim-se; fim.
35

SOLUO DE PROBLEMA
PASSO 4: Detalhar utilizando variveis e aes primitivas
programa MDIA; var N1,N2,N3,N4 : real; MEDIA : real; Incio; leia N1, N2, N3, N4; MEDIA := (N1+N2+N3+N4)/4 se MDIA >= 7 ento escreva Aprovado; seno escreva Reprovado; fim-se; fim.
36

18

EXERCCIOS - SEQNCIA SIMPLES


Exerccio 1
Clculo da rea de um crculo

Exerccio 2
Clculo do salrio lquido do professor, dado o valor da hora-aula, o nmero de horas ministradas e o percentual do desconto de INSS

37

EXERCCIOS - SEQNCIA SIMPLES


Exerccio 3
Ler uma temperatura em graus Centgrados e apresent-la convertida em graus Farenheit, A frmula de converso : F:= (9*C+160)/5, onde F a temperatura em Farenheit e C a temperatura em Centgrados

38

19

EXERCCIOS - SEQNCIA SIMPLES


Exerccio 4
Ler dois valores para as variveis A e B, e efetuar a troca dos valores de forma que a varivel A passe a possuir o valor da varivel B e que a varivel B passe a possuir o valor da varivel A. Apresentar os valores trocados

39

EXEMPLO - ALGORITMO
Tipo de Tringulo

20

PROBLEMA

Problema: Desenvolva o algoritmo para um programa que receba o tamanho dos trs lados de um tringulo e indique se este tringulo equiltero, issceles ou escaleno.

41

PASSOS
Passo 1: Entenda o Problema! Passo 2: Identifique as Entradas. Passo 3: Identifique as Sadas. Passo 4: Identifique as transformaes necessrias. Passo 5: Construa o fluxograma. Passo 6: Teste o algoritmo/fluxograma Passo 7: Converta para PORTUGOL Passo 8: Teste o algoritmo/Portugol
42

21

Passo 1: Entenda o Problema!


O Tringulo uma figura geomtrica com trs lados, onde o tamanho de cada lado menor que a soma do tamanho dos dois outros lados. Um tringulo equiltero um tringulo em que seus trs lados so iguais. O tringulo issceles tem dois lados de tamanho igual e um lado diferente. J o tringulo escaleno tem os trs lados diferentes.
43

Passo 2: Identifique as Entradas.

Eu preciso receber o tamanho dos lados do tringulo. Sem estes, no possvel eu resolver o problema! Assim, a entrada composta pelo tamanho dos trs lados do tringulo.

44

22

Passo 3: Identifique as Sadas.


O programa ter que informar se o tringulo

equiltero, issceles ou escaleno. Ou ento que os lados no so de um tringulo. Ou seja, o programa retornar uma das seguintes mensagens:
-

No um tringulo! Tringulo Equiltero. Tringulo Issceles. Tringulo Escaleno.


45

Passo 4: Identifique as transformaes necessrias. O problema consiste em receber o tamanho

dos lados de um tringulo e inicialmente certificar-se de que estes tamanhos so vlidos, verificando se cada um destes lados menor que a soma dos dois outros lados. Se esta condio no for verificada, os lados dados no de um tringulo!

46

23

Passo 4: Identifique as transformaes necessrias. Depois eu preciso verificar se os trs lados

so iguais. Neste caso, o tringulo equiltero. Se s dois lados forem do mesmo tamanho, o tringulo issceles. Se porm nenhum dos lados forem iguais, o tringulo escaleno.

47

Passo 5: Construa o fluxograma.

O fluxograma consiste na representao grfica das operaes do programa, indicando os fluxos das operaes executadas, deste o incio at o fim.

48

24

Fluxograma Conceitual
Utilize as expresses que voc usou ao descrever o problema, sem se preocupar com sua formulao matemtica. Enfoque sobre O QU ser feito.

49

Fluxograma Operacional
Converta as expresses conceituais em expresses matemticas, utilizando operadores aritmticos, relacionais e lgicos. Enfoque sobre COMO ser feito.

50

25

Incio

Incio

Ler Lados do Tringulo

Ler A, B, C

um tringulo?

A>(B+C) e B>(C+A) e C>(A+B) ?

Mensagem = "No Tringulo!"

Trs lados iguais?

Mensagem = "No Tringulo!"

A=B e B=C ?

Mensagem = "Equiltero"

Dois lados iguais?

Mensagem = "Equiltero"

A=B ou B=C ou C=A ?

Mensagem = "Issceles"

Mensagem = "Escaleno"

Mensagem = "Issceles"

Mensagem = "Escaleno"

Escreva Mensagem

Escreva Mensagem

Fim

Fim

51

PROGRAMA Tipo_Triangulo; VAR A, B, C : REAL; Mensagem : LITERAL; INCIO LER A, B, C; SE ((A<B+C) .E. (B<A+C) .E. (C<A+B)) ENTO { Tringulo!} SE ((A=B) .E. (B=C)) ENTO {Todos os Lados Iguais.} Mensagem := EQUILTERO; SENO SE ((A=B).OU.(B=C).OU.(C=A)) ENTO {Dois Lados Iguais.} Mensagem := ISSCELES; SENO {Todos lados diferentes} Mensagem := ESCALENO; FIM-SE; FIM-SE; SENO Mensagem := No Tringulo; FIM-SE; ESCREVA Mensagem; FIM.

PORTUGOL

52

26

Você também pode gostar