Você está na página 1de 43

Unidade I

PROGRAMAO DE
COMPUTADORES

Profa. Fabola Ribeiro

Plano de ensino
Objetivo: desenvolver o raciocnio lgico
por meio da soluo de problemas
prticos sob a forma de algoritmos.
Contedo programtico:
Variveis.
Operadores aritmticos e lgicos.
Algoritmos e fluxogramas.
Desvio condicional simples.
Desvio condicional composto.
p
Estruturas de repetio.

Bibliografia bsica
CARBONI, I. F. Lgica de programao.
1. ed. So Paulo: Thomson, 2003.
FORBELLONE, A. L. Lgica de
programao. 3. ed. So Paulo: Prentice
Hall Brasil, 2005.
MANZANO, J. A. N. G.; OLIVEIRA, J. F.
Algoritmos: lgica para desenvolvimento
de programao. 22. ed. So Paulo:
rica, 2009.

Variveis
Endereo na memria do computador.
Armazena um valor ou caractere.
Precisa ter um nome.
Tipos
Booleana: V (verdadeiro) ou F (falso).
Inteiro: 1, ou 2, ou -15.
Real: 3, 14, ou 152, 444, ou -3.
Char: A, B.
String:
St i
ABC,
ABC ou Maria.
M i

Variveis
Nome: combinao de letras e nmeros,
nunca iniciado por nmeros.
Declarao:
VAR
L N: real.
L,
real
Comandos de atribuio:
N=7

N:=7

N7

O valor 7 armazenado na varivel N


N.

Operadores algbricos

Smbolo

Prioridade de
execuo

Soma

Subtrao

Multiplicao

Diviso

Potenciao

Raiz quadrada

SQR

Resultado inteiro
da diviso

DIV

Resto da diviso

MOD

Operador

Funes matemticas

Nome

Funo

Cosseno

COS(x)

Seno

SEN(x)
( )

Tangente

TAN(x)

Exponencial ex

EXP(x)

Logaritmo neperiano ln(x)

LN(x)

Mdulo ou valor absoluto

ABS(x)

Funes matemticas
Importante: as funes trigonomtricas
so calculadas para ngulos em
radianos.
Converso de um ngulo de graus para
radianos: multiplico o ngulo por e
divido por 180.

Exemplo
Diviso:
11 / 2 = 5,5
Resultado inteiro da diviso:
11 DIV 2 = 5
Resto da diviso:
11 MOD 2 = 1
pois

Interatividade
Desejamos elaborar um algoritmo que
calcule a expresso

e que armazene o resultado na varivel A.


Como devemos escrever essa expresso?
a) SQR(2+SQR(3))
b) A := SQR2+SQR(3)
c) A := SQR(2+3)
d) A := SQR(2+SQR(3))
e) SQR(2+SQR(3)) := A

Algoritmos sequenciais
Procedimento em etapas.
Sem ramificaes estrutura linear.
Um mesmo problema pode ter diversos
algoritmos.

Algoritmos sequenciais
Exemplo: troca do pneu de um carro.
Sinalizao.
Erguer o carro.
Tirar pneu furado.
Colocar novo pneu.
Abaixar carro.
Guardar pneu danificado.
Remover sinalizao.

Algoritmos formas
Linguagem natural (procedimento).
Fluxograma (esquema).
Portugus estruturado
(pseudolinguagem).

Portugus estruturado
Portugus estruturado
(pseudolinguagem).
Estrutura:
Nome do programa
Declarao das variveis
Incio
Comandos
Fim.
Sempre encerro uma ideia
ideia com
ponto e vrgula (;) no final da linha.
Encerro o programa com ponto final
(.).

Fluxograma smbolos
Incio ou fim

Entrada de dados

Sada de dados

Fluxograma smbolos
Clculo

Condicional

Fluxo de dados

Exemplo: dobro de um nmero


Elabore um programa em portugus
estruturado e um fluxograma que d o
dobro de um nmero inteiro dado.
Entrada: um nmero N dado pelo
usurio.
Sada: o dobro do nmero dado, ou seja,
2*N.

Exemplo: dobro de um nmero


Programa em portugus estruturado:
Programa dobro
VAR
N, dobro: inteiro;
Incio
Leia (N);
dobro := 2*N;
Escreva (dobro);
Fim.

Exemplo: dobro de um nmero


Fluxograma:
Incio

Leia (N)

Dobro = 2*N

Dobro

Fim

Interatividade
Qual das alternativas completa corretamente o
programa em portugus estruturado a seguir?
Programa rea_quadrado
VAR
lado, rea: real;
Incio
(?)
rea := lado^2;
Escreva (rea);
Fim.
a) Leia (lado);
b) Escreva (lado);
c) Defina (lado);
d) Leia (rea);
e) Escreva (rea);

Desvios condicionais
Tomada de deciso.
Desvio do fluxo de um programa.
Envolve uma condio:
Expresso lgica que governa a
tomada de deciso
deciso.
Exemplo: MS>=7
Se verdadeira aluno aprovado.
Se falsa aluno de exame.

Desvio condicional simples


Trecho do algoritmo executado apenas
se condio for verdadeira.
Em portugus estruturado:
Se (condio) ento
<instrues>;
<instrues>;
Fim_Se;
Tabulao importante para facilitar a
leitura do programa.
programa

Desvio condicional simples


No fluxograma:

condio

instruo 1

instruo 2

Exemplo: aprovao
Considere o caso no qual um aluno precise
atingir 15 pontos para aprovao em uma
matria. Os pontos so a combinao de
notas de provas e trabalhos. Faa um
programa que, dada a pontuao de um
al no diga se esse aluno
aluno,
al no foi aprovado.
apro ado
Entrada: pontuao do aluno.
Sada: se a pontuao for maior que 15,
aprovado.

Exemplo: aprovao
Programa aprovao
VAR
pontos: real;
Incio
Escreva (entre com a pontuao);
Leia (pontos);
(pontos)
Se (pontos >= 15) ento
Escreva (aprovado);
Fim_Se;
Fim.

Exemplo: aprovao

Incio
Entre com a pontuao

P t
Pontos
F

V
Pontos >= 15

aprovado

Fim

Exemplo: ms de nascimento
Como mtodo de segurana para acesso de
conta bancria pela internet, um banco
pede o ms de nascimento do correntista.
Faa um programa em portugus
estruturado e um fluxograma que emitam
um
m alerta em caso de ms s
superior
perior ao ms
12 (dezembro).
Entrada: ms de nascimento.
Sada: se o ms for maior que 12,
mensagem de erro.

Exemplo: ms de nascimento
Programa segurana
VAR
M: inteiro;
Incio
Escreva (ms de nascimento:);
Leia (M);
(M)
Se (M > 12) ento
Escreva (nmero invlido);
Fim_Se;
Fim.

Exemplo: ms de nascimento
Incio
ms de nascimento

M
F

V
M > 12


nmero
iinvlido
lid

Fim

Interatividade
O que faz o fluxograma abaixo?
Incio

a) D o triplo de um nmero,
se o triplo dele for maior
que 20.

Leia (N)

b)) D o dobro de um nmero,,


se o dobro dele for maior
que 20.

2*N > 20

c) D o triplo de um nmero,
se o dobro dele for maior
que 20.

V
(3* )
Escreva (3*N)
Fim

d) D o ttriplo
i l de
d um nmero,

se o dobro dele for menor


que 20.
e) D o triplo de um nmero.

Desvio condicional composto


Executa uma ao se a condio for
verdadeira.
Executa outra ao se a condio for
falsa.
Em portugus estruturado:
Se (condio) ento
<instruo1>;
Seno
<instruo2>;
Fim Se;
Fim_Se;

Desvio condicional composto


No fluxograma:

instruo2

condio

instruo1

Exemplo: par ou mpar


Elabore um programa que, dado um
nmero, diga se ele par ou mpar.
Nmeros pares: 2.n
Nmeros mpares: 2.n+1
(onde n=0,
n=0 1,
1 2
2...))
Os nmeros pares so mltiplos de 2:
2, 4, 6, 8, 10...
Logo N par, se N MOD 2 = 0
Se um nmero no par
par,
obrigatoriamente ele impar.

Exemplo: par ou mpar


Elabore um programa que, dado um
nmero, diga se ele par ou mpar.
Entrada: nmero N.
N par se N MOD 2 = 0.
Se N par:
Sada: par.
Seno (N mpar)
Sada: mpar.

Exemplo: par ou mpar


Programa par_ou_mpar
VAR
N: inteiro;
Incio
Escreva (Entre com um nmero:);
Leia (N);
(N)
Se (N MOD 2 = 0) ento
Escreva (par);
Seno
Escreva (mpar);
Fim Se;
Fim_Se;
Fim.

Exemplo: par ou mpar

Incio
Entre com um nmero

N
F

V
N MOD 2 = 0

par

mpar
Fim

Exemplo: par ou mpar


Simulao para N=11:
Entre com um nmero:
N=11
11 MOD 2 = 0?

FALSO

Pois 11 MOD 2 = 1
(11 DIV 2 = 5 com resto 1)
mpar

Exemplo: mltiplo de 17
Elabore um programa que, dado um
nmero, diga se ele mltiplo de 17.
Entrada: nmero N.
N mltiplo de 17 se N MOD 17 = 0.
(A diviso de N por 17 exata
exata, ou seja
seja, o
resto da diviso zero)

Exemplo: mltiplo de 17
Programa mltiplo_de_17
VAR
N: inteiro;
Incio
Escreva (Entre com um nmero:);
Leia (N);
(N)
Se (N MOD 17 = 0) ento
Escreva ( mltiplo);
Seno
Escreva (no mltiplo);
Fim Se;
Fim_Se;
Fim.

Exemplo: mltiplo de 17
Incio
Entre com um nmero

N
F

V
N MOD 17 = 0

no
no mltiplo
mltiplo

mltiplo
mltiplo

Fim

Exemplo: mltiplo de 17
Simulao para N=34:
N

N MOD 17

N MOD 17=0?

sada

34

mltiplo

Simulao para N=35:


N

N MOD 17

N MOD 17=0?

sada

35

no
mltiplo

Interatividade
Qual a sada do programa abaixo para N=8?
Programa teste
VAR
N: inteiro;
Incio
( );
Leia (N);
Se (N>8) ento
Escreva (2*N);
Seno
Escreva (N/2);
Fim_Se;
Fim.
Fim
a) 2
b) 4
c) 8
d) 12
e) 16

AT A PRXIMA!

Você também pode gostar