Você está na página 1de 33

Introduo Programao

slides de Deise Saccol

Sintaxe diz respeito forma como as instrues


devem ser escritas.
Conjunto de regras formais que especificam a
composio dos algoritmos a partir de letras, dgitos e
outros smbolos.

A violao da sintaxe de uma instruo


impede que o algoritmo seja executado!
2

Semntica diz respeito ao significado lgico das


instrues que sero executadas pelo computador.
Conjunto de regras que especificam o significado de
qualquer programa, sintaticamente vlido.

A violao da semntica de um algoritmo no


impede que ele seja executado. Todavia, ele
processar um resultado errado!
3

Os erros sintticos so identificados


pelos tradutores, enquanto que os
erros semnticos no o so.
Por isso que os erros semnticos
exigem mais ateno para corrigi-los.
4

Fluxograma (Diagrama de Mdulos)


Seus principais smbolos grficos so:
= Incio e final do fluxograma
= Operao de entrada de dados
= Operao de sada de dados em impressora
= Operao de sada de dados em vdeo
= Operaes de processamento
= Deciso
= Seta de Fluxo de Dados
= Conector de Fluxo de Dados
5

Fluxograma do algoritmo Fahrenheit-Celsius


Incio

Incio do algoritmo

Fahrenheit

Entrada da temperatura (F)

Celsius = 5/9 * (Fahrenheit 32)

Clculo da temperatura (C)

Celsius

Apresentao do resultado

Fim

Fim do algoritmo
6

Desc. Narrativa
Solicite a
temperatura em
Fahrenheit.
Transforme de
Fahrenheit para
Celsius.
Informe a
temperatura em
Celsius.

Fluxograma
Incio

Fahrenheit

Celsius = 5/9 *
(Fahrenheit 32)

Ling. Algortmica
Algoritmo Fahrenheit-Celsius
Incio
Ler (Fahrenheit);
Celsius  5/9 * (Fahrenheit
32);
Escrever (Celsius);
Fim

Celsius

Fim
7

Algoritmo ExemploInstruesEntradaSada
Incio

Leia(preoUnit, qtd);
Incio

preoTot  preoUnit * qtd;

Escreva(preoTot);
preoUnit, qtd
Fim.
preoTot 
qtd * preoUnit
preoTot
Fim

Algoritmo ExemploInstruesEntradaSada
Incio
Escreva(informe preo unitrio e quantidade);
Leia(preoUnit, qtd);
preoTot  preoUnit * qtd;
Escrever(Preo total = , preoTot);

Incio
informe
informe
preo
preo
unitrio
Unitrio
e quantidade
e QTD
preoUnit , qtd

Fim.
pre
preoTot
oTot :=

qtd * pre
preoUnit
oUnit
Preo total =,
=+
preoTot
Fim
9

Vantagens

Desvantagens

Descrio
Narrativa

O portugus bastante conhecido Impreciso.

Fluxograma

Padro mundial.
Ferramenta bem conhecida.
Figuras dizem muito mais que
palavras.
Independncia de linguagem de
programao.
Usa o portugus como base.
Define-se melhor quais e como os
dados vo estar estruturados.
Passagem quase imediata do
algoritmo para uma linguagem de
programao qualquer.

Linguagem
Algortmica

por ns.

Pouca confiabilidade (a impreciso


acarreta a desconfiana).
Extenso (normalmente, escreve-se
muito para dizer pouca coisa).
Complica-se medida que o
algoritmo cresce.
Pouca ateno aos dados, no
oferecendo recursos para declar-los.
Exige a definio de uma linguagem
no real para trabalho.
No padronizada.

10

ESTRUTURAS DE DECISO
Comandos de deciso ou desvio fazem parte das
tcnicas de programao, para construir estruturas de
algoritmos que no so totalmente seqenciais.
Com as instrues de desvio pode-se fazer com que o
algoritmo proceda de uma ou outra maneira, de acordo
com as decises lgicas tomadas em funo dos dados
ou resultados anteriores.
As principais estruturas de deciso so:
SE...ENTO
SE...ENTO...SENO
CASO FOR...ENTO
11

So estruturas que, dada a avaliao de uma


expresso lgica (condio), permitem a escolha
de um fluxo de instrues a ser executado.
No mximo s podem existir dois fluxos de instrues:
um, se a condio for V, e outro, se a condio for F.

12

SE ... ENTO ...


- Formato:
Se <operao lgica> ento <aes>
Significado: Se a <operao lgica> resultar em
verdadeiro, ento executar as <aes>. Seno,
simplesmente ignorar as <aes> e seguir para a
prxima instruo no algoritmo.
Usada para decidir se um conjunto de aes
opcionais deve ser executado ou no, dependendo do
valor de algum dado ou de algum resultado que j
tenha sido calculado no algoritmo. O valor do dado
ou do resultado anterior ser testado na operao
lgica.

13

Exemplo da estrutura SE...ENTO:


Avisar se um nmero lido for negativo.
PSEUDOCDIGO:
Ler N
Se (N < 0)
ento exibir negativo!

INCIO

FLUXOGRAMA:
N
OPERAO LGICA:
Poder ser V ou F, dependendo do valor de N, que
foi lido antes.

N<0

Sim

negativo!

No

FIM
14

Semntica: Se a avaliao da condio for V, um


conjunto de comandos do bloco verdade
executado e prossegue-se o fluxo. Caso a
avaliao da condio for F, salta-se para o
primeiro comando aps o fim da estrutura de
deciso simples.
F
No faz nada!

Exp. Lgica

Instruo(es)
executada(s) para
expresso = V

Executar
comando(s)
15

Algoritmo ExemploDecisoSimples
Incio
Incio
Escreva(Digite um valor);
Leia (x);
Digite um valor
Se (x > 0) Ento
Escreva (X > 0);

Fim.

x>0

V
X > 0

Fim

SE ... ENTO ...SENO...


- Formato:
Se <operao lgica>

ento <aes 1>


seno <aes 2>
Significado: Se a <operao lgica> resultar em
verdadeiro, ento executar <aes 1>. Seno,
ignorar <aes 1> e executar <aes 2>.
Usada para decidir entre duas alternativas de aes.
Um dos dois conjuntos de aes ser executado e o
outro no, dependendo do valor de algum dado ou de
algum resultado que j tenha sido calculado no
algoritmo. O valor do dado ou do resultado anterior
ser testado na operao lgica, determinando qual
conjunto de aes ser executado.
17

Exemplo da estrutura SE...ENTO...SENO:


Mostrar a diferena entre 2 nmeros quaisquer.
PSEUDOCDIGO:
Ler N1
Ler N2
Se (N1 > N2)

ento DIF = N1 - N2
seno DIF = N2 - N1

Mostrar DIF

(Obs.: Este algoritmo funciona mesmo se os dois


nmeros forem iguais, pois ser calculado N2 - N1, o
que resultar em 0. Tambm funciona se um ou ambos
forem negativos. Experimente!)
18

INCIO

FLUXOGRAMA:

N1
N2
DIF = N2 - N1

No

N1 > N2

Sim

DIF = N1 - N2

DIF
FIM
19

Alm de executar se a condio for V a deciso


composta tambm executa se a condio for F.
Sintaxes :
Se <expresso lgica> Ento
<instruo nica>;
Seno
<instruo nica> ;

Se <expresso lgica> Ento


Inicio
<instruo1> ;
...
<instruoN> ;
Fim.
Seno
Seqncia ;

Seqncia

Se ... Ento ... Seno ... encadeados


Se <operao lgica> ento <ao 1>
seno se <operao lgica> ento <ao 2>
seno <ao 3>
Exemplo:
se (valor<0) ento res = 0;
seno se (valor>10) ento res = 2;
seno res = 3;

21

Se ... Ento ... Seno ... encadeados


O encadeamento de decises composta
utilizado para aninhar as estruturas Se Ento
F
V
Seno.
Exp. Lgica
F
Exp. Lgica
Instruo(es)
executada(s)
para
expresso = F
ou outras
decises
compostas

Instruo(es)
executada(s)
para
expresso = V

Instruo(es)
executada(s)
para
expresso = V

Executar
instruo(es)

22

Se ... Ento ... Seno ... encadeados


Algoritmo ExemploDecisoCompostaAninhada
Incio
Incio
Escreva(Digite um valor);
Leia (x);
Digite um valor
Se (x > 0) Ento
Escreva (X > 0);
X
Seno
Se (x < 0) Ento
V
F
Escreva (X < 0);
X>0
Seno
F
V
X<
0
X > 0
Escreva (X = 0);
Fim.

X = 0

X < 0

Fim

23

Se ... Ento ... Seno ... encadeados

NOTE I
Esta abordagem s indicada quando h a
necessidade de se testar condies dentro
de condies. Nestes casos, normalmente,
o algoritmo fica mais rpido, pois menos
testes podem ser efetuados!

24

Se ... Ento ... Seno ... encadeados


Se (x > 0) Ento
Escreva (X > 0);
Se (x < 0) Ento
Escreva (X < 0);
Isso vai funcionar,
Se (x = 0) Ento
mas uma pssima prtica!
Escreva (X = 0);

Se um nmero >0, ento ele no pode ser =0 ou <0.


Por isso, o exemplo acima faz testes desnecessrios!
Note que todas as condies SEMPRE so testadas!
Isso torna a execuo do algoritmo mais lenta!
25

Se ... Ento ... Seno ... encadeados


Se (x MOD 2 = 0) Ento
Se (x > 0) Ento
Se (x/2 >= 3) Ento
Escreva (X par, positivo e maior igual a 6).

O encadeamento acima o mesmo que:


SE (x MOD 2 = 0) E (x > 0) E (x/2 >= 3) Ento
Escreva (X par, positivo e maior igual a 6).

26

CASO ... ENTO...


Formato:
Caso <valor 1> ento <aes 1>
Caso <valor 2> ento <aes 2>
Caso <valor 3> ento <aes 3>
Caso <etc., quantos precisar>
Significado: Se <valor> for igual a <valor 1>, ento
executar <aes 1>. Se for igual a <valor 2>, ignorar
<aes 1> e executar <aes 2>, e assim por diante.
Usada para escolher apenas um conjunto de aes
dentre vrios alternativos. Aqui o teste no mais uma
operao lgica: o prprio valor de algum dado ou
resultado anterior (que pode ser de outros tipos alm
do lgico) que vai determinar qual desses conjuntos
de aes ser executado.
27

CASO ... ENTO...


A deciso mltipla uma especializao da estrutura
de deciso composta aninhada, que permite a
execuo de opes mutuamente exclusivas.
Sintaxe:
Escolha <Seletor>
<Opo1> : <instruo(es)> ;
...
<OpoN> : <instruo(es)> ;
[ Seno <comando(s)> ;] opcional!
Fim Escolha.
28

CASO ... ENTO...


Semntica: realiza a comparao de igualdade para
identificar qual opo tem o mesmo valor do seletor.
Caso todas as condies sejam F, executa-se o
seno (se este existir) ou sai-se da estrutura sem
executar nada.
V
Comando(s)

S = Op1
F
...
V
S = OpN
F

Comando(s)

Comando(s)

29

Exemplo da estrutura CASO...ENTO:


Escolher uma das 4 operaes bsicas para
aplicar em dois nmeros.
PSEUDOCDIGO:

Ler N1
Ler N2
Ler OPERACAO (que ser do tipo caractere)
Caso OPERACAO:
+ ento RESULT = N1 + N2
- ento RESULT = N1 - N2
* ento RESULT = N1 * N2
/ ento RESULT = N1 / N2
caso contrario exibir Operao no vlida!

Exibir RESULT
30

INCIO
FLUXOGRAMA:
N1, N2
OPER
OPER
+

R = N1 + N2

R = N1 - N2

R = N1 * N2

R = N1 / N2

R
FIM
31

Algoritmo ExemploDecisoMltipla
Incio
Escreva(Digite um caracter);
Leia (x);
Escolha (x)
A,E,I,O,U : Escreva (Vogal);
~,^,v : Incio
Escreva(Operador);
Escreva( Lgico);
Fim;
Seno Escreva (Caracter no reconhecido);
Fim Escolha;
Fim.

Exerccios
Leia um nmero inteiro e mostre uma mensagem indicando
se esse nmero par ou mpar, e se positivo ou
negativo.
Leia quatro nmeros inteiros e encontre a mdia aritmtica
simples entre as que correspondem a nmeros pares.
Lembre-se de que no pode haver diviso por zero.
Leia 4 notas, calcule a mdia dessas e escreva: Reprovado
(mdia < 5), Recuperao (mdia >= 5 e < 7) e
Aprovado (mdia >= 7).
Ler um nmero inteiro, e verificar se o nmero corresponde
a um ms vlido no calendrio e escrever o nome do ms,
seno escrever uma mensagem Ms Invlido.
33