Você está na página 1de 76

Curso Programador de Sistemas

Lgica de Programao

Professor
FRANCISCO VERSSIMO LUCIANO

Prof. Me. Francisco Verssimo Luciano

/76

Curso Programador de Sistemas


CURSO:
Programador de Sistemas
DISCIPLINA:
Lgica de Programao
EMENTA
Capacitar o aluno resoluo de problemas algortmicos, documentando a soluo em ferramentas de
representao de algoritmos mais usuais portugol (pseudocdigo; portugus estruturado) e diagrama de
blocos.
OBJETIVOS
Desenvolver a capacidade de desenvolvimento de algoritmos necessrios para a programao estruturada de
computadores independente da linguagem. Atravs de exerccios de desenvolvimento de algoritmos
solucionados em portugol e diagrama de blocos, capacitar o aluno a propor solues algortmicas enfocando a
validao do mesmo com o uso do teste de mesa.
CONTEDO PROGRAMTICO
Definio de algoritmo. Etapas da criao de um programa. Importncia do Teste de Mesa para o processo de
elaborao do algoritmo. Formas de representao de algoritmos: portugol, diagrama de blocos e diagrama de
Chapin. Definio de variveis, tipos de dados, expresses aritmticas e lgicas. Comando de entrada e sada
(E/S). Estrutura condicional: simples, composta, encadeada. Estrutura de seleo mltipla. Estrutura de
repetio.. Modularizao de algoritmos.

BIBLIOGRAFIA BSICA
GUIMARES, ngelo de Moura e LAGES, Alberto de Castilho. Algoritmos e Estruturas de Dados. 1a ed, Rio
de Janeiro: LTC, 1994.
FARRER, Harry et al. Algoritmos Estruturados. 3 ed, Rio de Janeiro: LTC, 1999.
MIZHARI, Victorine Viviane. Treinamento em linguagem C Mdulo 1. 1a ed, So Paulo: Makron Books,
1990.
BIBLIOGRAFIA COMPLEMENTAR
FORBELLONE, Andr Luiz Villar e EBERSPACHER, Henri Frederico. Lgica de Programao - A Construo
de Algoritmos e Estrutura de Dados. 1a ed, So Paulo: Makron Books, 1999.
MANZANO, Jose Augusto N. G. e OLIVEIRA, Jayr F. Algoritmos Lgica para Desenvolvimento de Programao
de Computadores. 16 Ed, So Paulo: Erica, 2004.
WIRTH, Niklaus. Algoritmos e estruturas de dados. Rio de Janeiro: Prentice Hall do Brasil, 1989.
SCHILDT, Herbert. C, completo e total. 3 ed, So Paulo: Makron Books, 1997.

Softwares sugeridos para desenvolvimento dos Diagramas de Blocos:

MS-Visio
Dia
Prof. Me. Francisco Verssimo Luciano

/76

Curso Programador de Sistemas


Noes Preliminares de Lgica e Construo de Algoritmos
Lgica:
- Relacionada capacidade de raciocinar
- Vinculada capacidade de pensar
- Lgica de programao a tcnica de encadear pensamentos para atingir determinado objetivo.

Algoritmo:
- Um algoritmo formalmente uma seqncia finita de passos que levam a execuo de uma tarefa.

Um pequeno exemplo: Torre de Hanoi


Descreva detalhadamente os procedimentos necessrios para passar os 3 discos do Pino 1 para
um dos outros Pinos, obedecendo s seguintes regras:
o Mover somente um disco por vez;
o Nunca poder ficar um disco maior sobre um menor;

Disco 3
Disco 2
Disco 1

Pino 1

Pino 2

Pino 3

Canibais e Jesutas
Descreva passo a passo os procedimentos necessrios para passar os 3 canibais e os 3 jesutas
da margem A para a margem B do rio, obedecendo s seguintes regras:
o No barco s cabem duas pessoas;
o Sempre ter que voltar algum para buscar os demais;
o O nmero de canibais nunca poder ser superior ao de jesutas em qualquer uma das
margens (considerando-se quem est no barco tambm).

MARGEM B
MARGEM A

Prof. Me. Francisco Verssimo Luciano

/76

Curso Programador de Sistemas


Algoritmos
Conceituando:
Algoritmo consiste em um conjunto lgico e finito de aes ( instrues ) que
objetivam resolver um determinado problema.
Um algoritmo desenvolvido no a nica soluo possvel de um problema, pois, se
assim fosse, cada problema teria um nico algoritmo. Algoritmo um dos caminhos para a
soluo de um problema e, em geral, os caminhos que levam a uma soluo so muitos. O
aprendizado de algoritmos s conseguido atravs de muitos exerccios.

No se aprende Algoritmos:
S se aprende Algoritmos:
- Copiando Algoritmos
- Construindo Algoritmos
- Estudando Algoritmos
- Testando Algoritmos
Fases de um Algoritmo
Quando temos um problema e vamos utilizar um computador para resolv-lo,
inevitavelmente temos que passar pelas seguintes etapas:
a) Definir o problema;
b) Realizar um estudo de qual(is) a(s) forma(s) de resolver o problema;
c) Terminada a fase de estudo, elaborar um algoritmo contendo os passos lgicos
a serem seguidos para a soluo do problema;
d) Codificar os passos do algoritmo na linguagem de programao mais
adequada;
e) Analisar junto aos usurios se o problema foi resolvido. Se a soluo no foi
encontrada, dever-ser- retornar fase de estudos a fim de localizar-se a
falha.
Estas so, de forma bem geral, as etapas que um analista passa, desde a
apresentao do problema at a sua efetiva soluo. Iremos, neste curso, nos ater etapa
de estudo, tambm chamada de anlise, e etapa de programao. Mas, antes, vamos
definir o seguinte conceito: programar um computador consiste em elaborar um conjunto
finito de instrues, reconhecidas pelo mesmo, de forma que consiga execut-las. Estas
instrues possuem regras e uma sintaxe prprias, como o portugus ou o ingls - sendo
chamadas de linguagem de programao.
No mundo computacional existe uma grande variedade de linguagens: Pascal, C,
C++, C#, Cobol, Fortran, Delphi, Visual Basic, Java, ASP, PHP, Phyton, Perl, etc.

Prof. Me. Francisco Verssimo Luciano

/76

Curso Programador de Sistemas


Estrutura de Algoritmos
Antes de utilizarmos uma linguagem de computador, necessrio definir
as aes a serem tomadas pela mquina de forma organizada e lgica, sem
nos atermos s regras rgidas da sintaxe de uma linguagem. Para isso
utilizaremos uma das formas de escrever tais algoritmos, conhecida como
Fluxograma ou Diagrama de Blocos.

Formas de representao de um Algoritmo:


-Fluxograma (Diagrama de Blocos).
-Portugol (Portugus Estruturado ou Pseudocdigo);
-Diagrama de Chapin;
Exemplos:
Portugol, Portugus Estruturado ou Pseudocdigo;

Fluxograma ou Diagrama de Blocos;

algoritmo teste
incio
A, B: inteiro
A1
B2
se A > B ento
A5
seno
A 10
fim se
fim.

Incio

A1

B2

A>B

V
A5

A 10

Fim

Prof. Me. Francisco Verssimo Luciano

/76

Curso Programador de Sistemas


Diagrama de Chapin

A1
B2
A>B
F

V
A 10

A5

Exemplificando o algoritmo acima em uma linguagem de programao, como em Pascal, a


soluo apresentada pelos algoritmos acima ficaria da seguinte forma:

Program Teste;
Var
A , B : Integer ;
Begin
A := 1 ;
B := 2 ;
if ( A > B ) then
A := 5
else
A := 10 ;
End.

Prof. Me. Francisco Verssimo Luciano

/76

Curso Programador de Sistemas


Variveis
O computador possui uma rea de armazenamento conhecida como memria. Todas
as informaes existentes no computador esto ou na memria primria (memria RAM
Random Access Memory - memria de acesso aleatrio) ou na memria secundria (discos,
fitas, CD-ROM, etc). Ns iremos trabalhar, neste curso, somente com a memria primria,
especificamente com as informaes armazenadas na RAM.
A memria do computador pode ser entendida como uma seqncia finita de caixas,
que num dado momento, guardam algum tipo de informao, como um nmero, uma letra,
uma palavra, uma frase, etc. No importa ao usurio conhecer todas as informaes
contidas, basta apenas saber que l sempre existe alguma informao.
O computador, para poder trabalhar como algumas destas informaes, precisa saber
onde, na memria, o dado est localizado. Fisicamente, cada caixa, ou cada posio de
memria, possui um endereo, ou seja, um nmero que indica onde cada informao est
localizada. Este nmero representado atravs da notao hexadecimal, tendo o tamanho
de quatro ou mais bytes. Abaixo seguem alguns exemplos:
Endereo Fsico
3000 : B712
2000 : 12EC
3000 : 0004

Informao
Joo
12345
H

Como pode ser observado, o endereamento das posies de memria atravs de


nmeros hexadecimais perfeitamente compreendido pela mquina, mas para ns
humanos torna-se uma tarefa complicada. Pensando nisto, as linguagens de programao
de computadores facilitaram o manuseio das posies de memria da mquina, permitindo
que, ao invs de trabalhar diretamente com os nmeros hexadecimais, fosse possvel dar
nomes diferentes a cada posio de memria.
Os nomes so de livre escolha do usurio. Com este recurso, os usurios ficaram
livres dos endereos fsicos (nmeros hexadecimais) e passaram a trabalhar com endereos
lgicos (nomes dados pelos prprios usurios). Desta forma, o exemplo acima poderia ser
alterado para ter o seguinte aspecto:
Endereo Fsico
Nome
Nmero
Letra

Prof. Me. Francisco Verssimo Luciano

Informao
Joo
12345
H

7/76

Curso Programador de Sistemas


Como tnhamos falado, os endereos lgicos so como caixas, que num dado instante
guardam algum tipo de informao. Mas importante saber que o contedo desta caixa no
algo fixo ou permanente. Na verdade, uma caixa pode conter diversas informaes, ou
seja, como no exemplo acima, a caixa (Endereo Lgico) rotulada de Nome num dado
momento contm a informao Joo, mas em um outro momento poder conter uma outra
informao, por exemplo Pedro. Com isto queremos dizer que o contedo destas caixas (
endereos lgicos ) podem variar, isto , podem sofrer alteraes em seu contedo. Tendo
este conceito em mente, a partir de agora iremos chamar de forma genrica, as caixas ou
endereos lgicos, de variveis.

Posio de
Memria

Memria

Conceituando:
Desta forma, possvel afirmar que uma varivel uma posio de memria,
representada por um nome simblico (atribudo pelo usurio), a qual contm, num
dado instante, uma informao.
Prof. Me. Francisco Verssimo Luciano

8/76

Curso Programador de Sistemas


Nomes de Variveis
O nome de uma varivel formado por uma letra ou por uma letra seguida de letras
ou nmeros (quaisquer nmeros);
No permitido o uso de espaos em branco ou de qualquer outro caractere, que no
seja letra ou nmero;
Se utilizar mais de uma palavra para compor o nome da varivel utilize o _
(underline) para separar as palavras. Exemplo: data_nasc ;
No pode iniciar com um nmero.
Contedo de uma Varivel
As variveis podem armazenar:
Valores numricos;
Textos (letras, palavras) ou at frases.
Identificadores: Variveis e Constantes
Considere a frmula matemtica do clculo do volume de uma esfera:

4
V R 3
3
onde so encontrados valores que podem ser classificados como:
a) valores constantes, invariantes em todas as aplicaes da frmula, como so os
casos dos valores 4, 3 e denominam-se CONSTANTES;
b) valores a serem substitudos na frmula, em cada aplicao; a representao desses
valores, usualmente feita atravs de letras, que recebem o nome de VARIVEIS e
tornam a frmula genrica, possvel de ser aplicada para resolver uma certa classe de
problemas e no apenas um problema especfico;
c) operaes a serem feitas sobre determinados operandos (valores), para a obteno
da soluo do problema.
Prof. Me. Francisco Verssimo Luciano

9/76

Curso Programador de Sistemas


Tipos de Dados
As Linguagens de Programao exigem que no momento que formos trabalhar com
variveis, indiquemos o tipo de dado que a mesma poder conter, isto , se uma dada
posio de memria armazenar um nmero ou uma letra, etc.
A linguagem Pascal, por exemplo, possui a definio de alguns tipos que devero ser
usados para se trabalhar com variveis. Esses tipos so:
Principais tipos de variveis e dados que armazenam (relembrando...):
Algoritmo
(Portugol)

Pascal

Dados que podem armazenar

a) Inteiro

a) INTEGER

Representa nmeros entre 32.768 at +32.767. Ocupa 2


bytes na memria.

b) Real

b) REAL

Representa os nmeros entre 2,9 x 10-39 at 1,7 x 1038 .


Ocupa 6 bytes na memria.

e) Caracter

e) CHAR

Representa um dos caracteres, da tabela ASCII. Ocupa 1


byte na memria.

d) Cadeia

f) STRING

g) Lgica

Conjunto de caracteres ( CHAR ). Ocupa de 1 a 255 bytes na


memria.
Valor lgico. Assume somente dois valores:
g) BOOLEAN TRUE(Verdadeiro) ou FALSE(Falso). Ocupa 1 byte na
memria.

Outros tipos de Variveis


Pascal

Dados que podem armazenar

h) WORD
i) BYTE
j) ShortInt

Nmeros de 0 at 65.535. Ocupa 2 bytes na memria.


Nmeros de 0 at 255. Ocupa 1 byte na memria.
Representa os nmeros entre -128 at 128 . Ocupa 1 bytes na memria.

l) LongInt

Representa os nmeros entre - 2.147.483.648 at 2.147.483.648 . Ocupa


4 bytes na memria.

m) Single

Representa os nmeros entre 1,5 x 10 -45 at 3,4 x 1038 . Ocupa 4 bytes na


memria.

n) Double

Representa os nmeros entre 5 x 10-324 at 1,7 x 10308 . Ocupa 8 bytes na


memria.

Prof. Me. Francisco Verssimo Luciano

10/76

Curso Programador de Sistemas


Iremos gradativamente trabalhar com alguns destes tipos e mostrar as suas
caractersticas.

Declarao de Variveis
necessrio informar, logo no incio do programa, quais as variveis que sero
utilizadas e que tipo de dados cada uma armazenar.
Para declarar uma ou mais variveis, devemos utilizar, em Pascal, a palavra VAR.
Nos algoritmos feitos em Portugol pode-se utilizar a mesma nomenclatura.
Nos algoritmos construdos com Fluxograma (Diagrama de Blocos) no necessrio
declarar as variveis. Apenas indicamos a atribuio de valores s variveis necessrias
(Fig. 1) ou a leitura dos dados para as mesmas( Fig. 2).
Inicio

Inicio

Leia

A 10

<Comandos>

<Comandos>

Fim

Fim

Figura 1

Prof. Me. Francisco Verssimo Luciano

Figura 2

11/76

Curso Programador de Sistemas


Abaixo seguem exemplos de algumas declaraes de variveis em Pascal:
a) PROGRAM Teste ;
VAR
A : INTEGER ;
BEGIN
<comandos> ;
END .

b)

PROGRAM Teste ;
VAR
Num : REAL ;
BEGIN
<comandos> ;
END .

c) PROGRAM Teste ;
VAR
X, Palavra : STRING ;
BEGIN
<comandos> ;
END .

d)

PROGRAM Teste ;
VAR
B, Letra : CHAR ;
BEGIN
<comandos> ;
END .

e) PROGRAM Teste ;
VAR
Y : REAL ;
N : INTEGER ;
BEGIN
<comandos> ;
END .

f)

PROGRAM Teste ;
VAR
Letra, Caractere : CHAR ;
Nmero : INTEGER ;
BEGIN
<comandos> ;
END .

Obs: Os nomes dados s variveis no podem ser os mesmos nomes de palavras


reservadas do Pascal, tais como PROGRAM, BEGIN, END, VAR, etc

Prof. Me. Francisco Verssimo Luciano

12/76

Curso Programador de Sistemas


Comandos de Atribuio
Quando definimos uma varivel, natural atribuirmos a ela uma informao. Uma das
formas de colocar um valor dentro de uma varivel, conseqentemente colocando este dado
na memria do computador, atravs da atribuio direta do valor desejado varivel.
Para isso so utilizados os smbolos : = (dois pontos igual) no Pascal e (seta para
esquerda) em Algoritmos, que significam: atribuir, ou seja, a posio de memria que uma
varivel representa receber uma informao, que ser armazenada no interior desta
varivel. Exemplos:
Algoritmo

Pascal

PROGRAM Teste;
VAR
X : INTEGER;
BEGIN
X : = 10;
END.

X 10

O Exemplo anterior nos informa que:


a) Foi definida uma varivel, a qual demos o Nome de X , e informamos que esta
varivel, ou posio de memria, s poder aceitar dados que sejam numricos e que
estejam entre -32768 a +32767 ( tipo INTEGER );
b) Atribumos varivel X o valor 10.
A memria se comportaria da seguinte forma, de acordo com os itens acima:
Logo aps a declarao da varivel e antes da atribuio de valor:
Varivel
Contedo
X
Indefinido
Aps a atribuio de valor:
Varivel
X

Contedo
10

Variveis do tipo CHAR (Caractere) e STRING (Cadeia)


As definies de variveis como sendo do tipo CHAR e STRING, possuem algumas
curiosidades que merecem um cuidado especial por parte do usurio.

Prof. Me. Francisco Verssimo Luciano

13/76

Curso Programador de Sistemas


Uso do apstrofro ( )
Quando estivermos fazendo a atribuio de um valor para uma varivel do tipo CHAR
(Caractere) ou STRING (Cadeia), temos que ter o cuidado de colocar o valor (dado) entre
apstrofos ( ) - chamados por alguns de aspas simples - pois esta a forma de dizer que
a informao caractere.
Exemplos:

Algoritmo
Inicio

Letra A
Nome Joo

Fim

Pascal

PROGRAM AtribuiString;
VAR
Letra : CHAR ;
Nome : STRING ;
BEGIN
Letra := A ;
Nome := Joo ;
END.

Manipulao de caracteres individuais em STRINGs (Cadeias)


Muitas vezes necessrio manipular caracteres individuais em uma STRING (Cadeia) . O
Pascal possui uma forma toda especial de permitir tal operao, atravs do uso de
colchetes( [ ] ) logo aps o Nome da varivel do tipo STRING (Cadeia) , e o nmero do
caractere que se deseja manipular entre os colchetes.

Formas de representao de algoritmos:


Diagrama de Chapin (pronuncia-se Chap)
Diagrama de Blocos ou Fluxograma: representao grfica do algoritmo
Portugol, pseudocdigo ou portugus estruturado: descrio narrativa do
algoritmo

Prof. Me. Francisco Verssimo Luciano

14/76

Curso Programador de Sistemas


Diagrama de Blocos ou Fluxograma
um dos mtodos utilizados para o desenvolvimento de algoritmos. Com esta tcnica
definimos os passos lgicos, a serem seguidos para a soluo de um problema, com o
auxlio de figuras geomtricas. Posteriormente, codificarmos esses passos em uma
linguagem de programao em um computador.
H muitas figuras para construo de Diagramas de Blocos/Fluxogramas. As
principais que utilizaremos, so:
Terminal - para indicar Incio ou Fim do programa;

Processamento - para clculos, classificaes, atribuies de valor, etc.;


Entrada e Sada de Dados - utilizado sempre em conjunto com os verbos
Leia, para indicar a leitura de valores para variveis, ou Escreva, para indicar a
exibio de mensagens e/ou contedo de variveis;
Entrada de Dados via teclado

Sada ou Exibio de Dados em Vdeo - para indicar a exibio dos valores


contidos nas variveis e mensagens (textos) contidas nos programas;
Sada de Dados Impressos;
Deciso - para efetuar um desvio condicional, uma pergunta, para definir se o
programa deve seguir numa direo ou em outra;
Estrutura de controle: repetio (lao para)
Conector - para ligar as seqncias de soluo do problema vindas de
diferentes pontos do Fluxograma;
3

Conector de Pgina - para ligar pontos do Fluxograma na mesma pgina ou


em pginas diferentes; normalmente utiliza-se um nmero junto, para indicar de
que ponto vem e para qual ponto deve seguir o fluxo;
Setas de Orientao do Fluxo - para indicar o sentido a ser seguido.
Prof. Me. Francisco Verssimo Luciano

15/76

Curso Programador de Sistemas


Operadores Aritmticos

(Adio)
Tipo de operandos permitidos: inteiros, reais, cadeias de caracteres.
Operao executada: no caso de inteiros e reais o operando esquerda do +
somado ao operando a sua direita, sendo o tipo do resultado dessa operao
dependente de seus operandos:

(Subtrao)
Tipo de operandos permitidos: inteiros, reais.
Operao executada: o operando esquerda do - subtrado do operando a sua
direita, sendo o tipo do resultado dessa operao dependente de seus operandos:

Se os dois operandos so inteiros, o resultado da operao inteiro;


Se os dois operandos so reais, o resultado da operao real;
Se um dos operandos real e o outro inteiro, o resultado da operao real.

(Multiplicao)
Tipo de operandos permitidos: inteiros, reais.
Operao executada: o operando esquerda do * multiplicado pelo operando a
sua direita, sendo o tipo do resultado dessa operao dependente de seus
operandos:

Se os dois operandos so inteiros, o resultado da soma um valor inteiro;


Se os dois operandos so reais, o resultado da soma um valor real;
Se um dos operandos real e o outro inteiro, o resultado da soma um valor
real;
No caso dos operandos serem ambos cadeias de caracteres o resultado da
operao dado pela cadeia obtida pela concatenao da cadeia dada pelo
primeiro operando com a cadeia dada pelo segundo operando.

Se os dois operandos so inteiros, o resultado da operao um valor inteiro;


Se os dois operandos so reais, o resultado da operao um valor real;
Se um dos operandos real e o outro inteiro, o resultado da operao um
valor real.

(Diviso)
Tipo de operandos permitidos: inteiros, reais.
Operao executada: o operando esquerda do / dividido pelo operando a sua
direita, sendo o resultado dessa operao real.
Prof. Me. Francisco Verssimo Luciano

16/76

Curso Programador de Sistemas


DIV
Tipo de operandos permitidos: ambos do tipo inteiro.
Operao executada: o operando esquerda do DIV dividido pelo operando
sua direita, sendo o resultado desta operao um valor inteiro resultante da
diviso.
Exemplo: 7 DIV 3 resulta 2 (vide abaixo).
MOD
Tipo de operandos permitidos: ambos do tipo inteiro.
Operao executada: o operando esquerda do MOD dividido pelo operando
sua direita, sendo o resultado desta operao o resto inteiro da diviso.
Exemplo: 7 MOD 3 resulta 1 (vide abaixo).
Dividendo 7

3 Divisor

MOD

2 DIV

Prof. Me. Francisco Verssimo Luciano

17/76

Curso Programador de Sistemas


Programas Seqenciais
So programas onde so executadas as linhas de instrues uma aps a outra,
seqencialmente, sem desvios.
1)Faa um algoritmo para ler dois nmeros inteiros, efetuar e mostrar a SOMA dos mesmos.

Inicio

Declarao de variveis
do algoritmo

X, A, B

Escreva
Digite o1
numero:

Leia
A

Escreva
Digite o2
numero:

Leia
B

A+B

Escreva
A Soma
, X

Fim

Prof. Me. Francisco Verssimo Luciano

18/76

Curso Programador de Sistemas


Programa SOMA_INTEIROS
Var
X, A, B : Inteiro
Inicio
Escreva Digite o 1 nmero:
Leia A
Escreva Digite o 2 nmero:
Leia B
X A+B
Escreva A soma , X
Fim.

Outro exerccio:

2)Faa um algoritmo que leia 2 nmeros reais, efetue e mostre a SOMA e a MDIA:

Prof. Me. Francisco Verssimo Luciano

19/76

Curso Programador de Sistemas

Prof. Me. Francisco Verssimo Luciano

20/76

Curso Programador de Sistemas


Programa SOMA_MEDIA_REAIS
Var
X, A, B, MED : real
Inicio
Escreva Digite o 1 nmero:
Leia A
Escreva Digite o 2 nmero:
Leia B
X A+B
Escreva A soma , X
MED X/2
Escreva A Mdia , MED
Fim.
3) Faa um algoritmo que receba dois nmeros inteiros, calcule e mostre o dobro do primeiro
e o triplo do segundo.

INICIO

NUM1, NUM2,
DOBRO,
TRIPLO

"O DOBRO
DE", NUM1, "E
IGUAL A",
DOBRO

LEIA
NUM1
"O TRIPLO
DE", NUM2, "E
IGUAL A",
TRIPLO
LEIA
NUM2
FIM

DOBRO <-NUM1 * 2

Programa Dobro_triplo
NUM1, NUM2, DOBRO, TRIPLO: Inteiro
Incio
Leia NUM1
Leia NUM2
DOBRO NUM1 * 2
TRIPLO NUM2 * 3
Escreva O DOBRO DE , NUM1, E IGUAL A, DOBRO
Escreva O TRIPLO DE , NUM2, E IGUAL A, TRIPLO
Fim.

TRIPLO <-NUM2 * 3

Prof. Me. Francisco Verssimo Luciano

21/76

Curso Programador de Sistemas


Nota-se no diagrama acima que foi usada uma representao
para declarar as variveis do algoritmo. Essa prtica
recomendada para dar mais clareza ao algoritmo. Veja a
seguir a figura (retngulo):

Mais um exerccio

4) Faa um algoritmo que receba pelo teclado as notas de duas provas, dois
trabalhos e uma lista de exerccios. Calcule e mostre a mdia, sabendo que as
provas tm peso 6, os trabalhos, peso 3 e a lista, peso 1.

Prof. Me. Francisco Verssimo Luciano

22/76

Curso Programador de Sistemas


INICIO
P1, P2, T1,
T2, EX, MED

"PROVA
1: "

MED <-- ((P1*6) + (P2 * 6) +


(T1 *3) + (T2*3) + (EX *1))/19

"MDIA = ",
MED

P1
FIM
"PROVA
2: "

P2

"TRAB 1:"

T1

"TRAB 2:"

Programa Media_Ponderada
P1, P2, T1, T2, EX, MED: Real
Incio
Escreva PROVA 1:
Leia P1
Escreva PROVA 2:
Leia P2
Escreva TRAB 1:
Leia T1
Escreva TRAB 2:
Leia T2
Escreva EXERC:
Leia EX
MED ((P1*6) + (P2*6)+(T1*3)+(T2*3)+(EX*1))/10
Escreva MEDIA = , MED

T2

Fim.

"EXERC.:"

EX

Prof. Me. Francisco Verssimo Luciano

23/76

Curso Programador de Sistemas


Exerccios - Programas Seqenciais
1. Fazer o algoritmo que leia dois nmeros inteiros, calcule e exiba a subtrao do primeiro
pelo segundo.
2. Fazer o algoritmo que leia dois nmeros inteiros, calcule e exiba a subtrao do segundo
pelo primeiro.
3. Fazer o algoritmo que leia dois nmeros inteiros, calcule e exiba a multiplicao dos dois
nmeros.
Reais
4. Fazer o algoritmo que receba duas notas de um aluno e seus respectivos pesos, calcule
e exiba a mdia ponderada dessas notas.
MP = (N1 * P1 + N2 * P2) / (P1 + P2)
5. Fazer o algoritmo que leia o valor de um depsito e o valor da taxa de juros. Calcule e
exiba o valor do rendimento e o valor total (depsito + rendimento).
6. Fazer o algoritmo que leia um nmero inteiro, calcule e exiba:
a)
a raiz quadrada desse nmero; b) esse nmero elevado ao quadrado.
7. Fazer o algoritmo que leia o valor do salrio de um funcionrio e o valor do salrio
mnimo. Calcule e exiba quantos salrio mnimos ganha esse funcionrio.
8. Fazer o algoritmo e o programa Pascal que calcule e exiba a rea de um tringulo.
9. Fazer o algoritmo que calcule e exiba a rea de um quadrado.
10. Fazer o algoritmo que calcule e exiba a rea de um crculo.
11. Fazer o algoritmo que calcule e exiba a rea de um trapzio.
12. Fazer o algoritmo que calcule e exiba a rea de um retngulo.
13. Fazer o algoritmo que calcule e exiba a rea de um losango.
14. Fazer o algoritmo que leia o salrio de um funcionrio, calcule e exiba o valor do imposto
de renda a ser pago, sabendo-se que o imposto equivale a 5% do salrio.
15. Fazer o algoritmo que leia o salrio de um funcionrio, calcule e exiba o novo salrio,
sabendo-se que este sofreu um aumento de 25%.
16. Sabe-se que o quilowatt de energia custa um quinto do salrio mnimo. Fazer o algoritmo
que leia o valor do salrio mnimo e a quantidade de quilowatts gasta por residncia.
Calcule e exiba:
Prof. Me. Francisco Verssimo Luciano

24/76

Curso Programador de Sistemas


a)
b)
c)

valor, em reais, de cada quilowatt;


valor, em reais, a ser pago por essa residncia;
novo valor a ser pago por essa residncia, a partir de um desconto de 15%.

17. Fazer o algoritmo que leia o peso de uma pessoa em quilograma, um valor inteiro,
calcule e exiba:
a)
peso dessa pessoa em gramas;
b)
se essa pessoa engordar 15%, qual ser seu novo peso em gramas.
18. Fazer o algoritmo que leia a quantidade de litros de uma represa, um valor inteiro,
calcule e exiba;
a)
a quantidade total em litros se ocorrer um aumento de 34% na sua capacidade,
aps um perodo de chuvas;
b)
a quantidade total em mililitros se ocorrer uma reduo de 40% na sua capacidade,
aps um perodo de seca.
19. Construa o algoritmo que leia dois ns inteiros, calcule a soma e mostre o resultado.
20. Construa o algoritmo que leia trs ns inteiros, calcule a soma e mostre o resultado.
21. Construa o algoritmo que leia dois nmeros reais, calcule a mdia aritmtica entre eles e
mostre o resultado.
22. Construa o algoritmo que leia trs ns reais, calcule a mdia aritmtica entre eles e
mostre o resultado.
23. Construa o algoritmo que leia o preo unitrio e a quantidade vendida de um produto.
Calcule e mostre o valor total vendido.
24. Construa o algoritmo que calcule e mostre a mdia aritmtica entre quatro notas
bimestrais quaisquer fornecidas por um aluno.
25. Construa o algoritmo que leia uma temperatura em graus Centgrados e apresentem-na
convertida em graus Fahrenheit. A frmula de converso F = (9 * C + 160) / 5. Onde F
a temperatura em Fahrenheit e C a temperatura em Centgrados.
26. Construa o algoritmo que leia uma temperatura em graus Fahrenheit e apresentem-na
convertida em graus Centgrados. A frmula de converso C = (F 32) * (5 / 9). Onde F
a temperatura em Fahrenheit e C a temperatura em Centgrados.
27. Construa o algoritmo que calcule e apresente o valor do volume de uma lata de leo,
utilizando a frmula: VOLUME = 3.14159 * (RAIO * RAIO) * ALTURA.
28. Construa o algoritmo e o programa Pascal que efetuem o clculo da quantidade de litros
de combustvel gastos em uma viagem, utilizando-se um automvel que faz 12 km por
litro. Para obter o clculo, o usurio dever fornecer o tempo gasto na viagem e a
velocidade mdia durante a mesma. Desta forma, ser possvel obter a distncia
percorrida com a frmula DISTNCIA = TEMPO * VELOCIDADE. Tendo o valor da
distncia, basta calcular a quantidade de litros de combustvel utilizada na viagem com a
frmula: LITROS_USADOS = DISTNCIA / 12. O algoritmo e o programa Pascal devero
apresentar os valores da velocidade mdia, tempo gasto na viagem, a distncia
percorrida e a quantidade de litros utilizada na viagem.
Bons estudos
Prof. Me. Francisco Verssimo Luciano

25/76

Curso Programador de Sistemas

Programao
condicional ou desvios
condicionais
A partir daqui voc ver algoritmos que
trabalharo com situaes de desvios
condicionais, tomadas de decises

Prof. Me. Francisco Verssimo Luciano

26/76

Curso Programador de Sistemas


Operadores Relacionais

Operador

Resultado

Igual a

<>

Diferente de

<

Menor que

<=

Menor ou igual a

>

Maior que

>=

Maior ou Igual a

Verdadeiro se os dois operandos para o operador forem


iguais. Falso em caso contrrio.
Verdadeiro se os dois operandos para o operador forem
diferentes.Falso em caso contrrio.
Verdadeiro se o operando esquerda do operador for menor
que o operando direita. Falso em caso contrrio.
Verdadeiro se o operando esquerda do operador for menor
ou igual o operando direita. Falso em caso contrrio
Verdadeiro se o operando esquerda do operador for maior
do que o operando direita. Falso em caso contrrio.
Verdadeiro se o operando esquerda do operador for maior
ou igual que o operando direita. Falso em caso contrrio.

Estes operadores so fundamentais para que se possa comparar situaes e


tomar decises. Dessa forma, a partir da compreenso das funcionalidades desses
operadores possvel comear a utilizar um recurso muito importante em
programao: os desvios condicionais, que so um tipo de Estrutura de Controle.
Os desvios condicionais podem ser simples, compostos ou encadeados,
conforme ser visto a seguir.

Desvio Condicional Simples ( se ... ento )


O Desvio Condicional Simples testa uma determinada condio atravs do comando
SE e dos operadores relacionais. Caso a resposta condio seja VERDADEIRA, o
programa sair pelo (ENTO), executando a linha de instrues, ou bloco de instrues,
que vem logo a seguir (ao ENTO). Caso a resposta para a condio seja FALSA, o
programa pular a linha de instrues, ou bloco de instrues, que pertencem ao ENTO e
continuar sua execuo aps os mesmos.
O Fluxograma (Diagrama de Blocos) pode tornar-se bem mais simplificado usandose o mtodo de Deciso Composta ou seja, Desvio Condicional Composto. Este
procedimento ser visto no prximo tpico.
Procure codificar os programas sempre utilizando a endentao (disposio das
linhas com recuos diferentes) pois esta tcnica facilita a depurao de eventuais erros de
codificao e de lgica, alm de facilitar a visualizao e testes de mesa.

Veja a seguir um exemplo de desvio condicional simples: Leia 2 nmeros


inteiros, determinar e exibir o maior deles.
Prof. Me. Francisco Verssimo Luciano

27/76

Curso Programador de Sistemas


Programa MAIOR_NUM;
Var //declarao de variveis
N1, N2 : Inteiro
Inicio
Escreva 1 nmero:
Leia N1
Escreva 2 nmero:
Leia N2
Se (N1 > N2) ento
Escreva O maior o N1: , N1
Fim_se
Se (N2 > N1) ento
Escreva O maior o N2: , N2
Fim_se
Se (N1 = N2) ento
Escreva Os nmeros so iguais

Fim_se
Fim

Prof. Me. Francisco Verssimo Luciano

28/76

Curso Programador de Sistemas


Desvio Condicional Composto ( Se ... Ento ... Seno )
O Desvio Condicional Composto testa uma determinada condio atravs do
comando (SE) e dos operadores relacionais.
Caso a resposta condio proposta seja VERDADEIRO, o programa sair pelo
(ENTO), executando a linha de instrues, ou bloco de instrues, que vem logo a seguir.
Caso a resposta para a condio seja FALSA, o programa sair pelo (SENO) e
executar a linha de instruo, ou bloco de instrues, que vem logo a seguir (ao SENO).
Aps ter executado as instrues do ENTO ou do SENO, o programa continuar
sua execuo na linha seguinte aos mesmos.

Programa MAIOR_NUM;
Var //declarao de variveis
N1, N2 : Inteiro
Inicio
Escreva 1 nmero:
Leia N1
Escreva 2 nmero:
Leia N2
Se (N1 > N2) ento
Escreva O maior o N1: , N1
Seno
Escreva N2 maior ou igual a N1: , N2

Fim_se
Fim

Prof. Me. Francisco Verssimo Luciano

29/76

Curso Programador de Sistemas


Outro exemplo: faa o algoritmo para Ler 2 nmeros inteiros, efetuar e exibir a SOMA dos
mesmos, obedecendo aos critrios:
a) se a SOMA for maior ou igual a 10, ento ao valor da SOMA ser adicionado 5;
b) caso contrrio, do valor da SOMA ser subtrado o valor 7.

Proposta: Faa o portugol para o exerccio


Prof. Me. Francisco Verssimo Luciano

30/76

Curso Programador de Sistemas


Desvio Condicional Encadeado
Existem situaes em que necessitamos fazer teste de uma condio dentro de outra,
isto , se uma determinada condio for satisfeita ento ser feito uma segundo teste, um
terceiro, etc... Nesses casos utilizamos o Desvio Condicional Encadeado (ou SEs
encadeados, ou Ninho de SEs).
No primeiro modelo, se a condio1 for satisfeita, ser executada a linha depois do
primeiro ENTO e o programa continuar. Seno, ser testada uma segunda condio,
depois do primeiro SENO. Se a segunda condio for satisfeita, ser executada a linha
depois do segundo ENTO e o programa continuar. Se a segunda condio tambm no
for satisfeita, ser executada a linha depois do segundo SENO e o programa continuar.

Se (condio1) Ento
<instrues para condio1 verdadeira>
Seno
Se (condio2) Ento
<instrues para condio1 falsa e condio2 verdadeira>
Seno
<instrues para condies 1 e 2 falsas>;
Fim_se

Fim_Se
No segundo modelo, se a condio1 for satisfeita ser testada uma segunda
condio, depois do primeiro ENTO. Se a segunda condio tambm for satisfeita, ser
executada a linha depois do segundo ENTO e o programa continuar. Se a primeira
condio for satisfeita e a segunda no, o programa executar a linha depois do primeiro
SENO e continuar. Se a primeira condio no for satisfeita o programa executar a linha
depois do segundo SENO e continuar, ou seja, no verificar a segunda condio (vide
modelo abaixo).

Se (condio1) Ento
Se (condio2) Ento
<instrues para condies 1 e 2 verdadeiras>
Seno
<instrues para condio1 verdadeira e condio2 falsa>
Fim_se
Seno
Observaes:
para condio1
falsa>
A <instrues
utilizao de blocos
de instrues
feita como explicado anteriormente;
Fim_se
Neste caso a condio2 nem ser analisada.

Prof. Me. Francisco Verssimo Luciano

31/76

Curso Programador de Sistemas

Em uma srie de comandos SE aninhados, a clusula SENO est ligada ao SE


mais prximo no aninhamento. Podemos utilizar vrios SE aninhados, combinando os
formatos descritos.

Veja o exemplo a seguir:

Prof. Me. Francisco Verssimo Luciano

32/76

Curso Programador de Sistemas


Programa MAIOR_NUM;
Var //declarao de variveis
N1, N2 : Inteiro
Inicio
Escreva 1 nmero:
Leia N1
Escreva 2 nmero:
Leia N2
Se (N1 > N2) ento
Escreva O maior o N1: , N1
Seno
Se (N1 = N2) ento
Escreva Os nmeros so iguais
Seno
Escreva O maior o N2: , N2
Fim_se
Fim_se
Fim

Outro exemplo: ler 2 nmeros inteiros e mostr-los em


ordem crescente. Se os nmeros lidos forem iguais,
mostrar uma mensagem OS NMEROS SO
IGUAIS.

Prof. Me. Francisco Verssimo Luciano

33/76

Curso Programador de Sistemas


Inicio
Leia

A,B

B , , A

A<B

A=B

Os
nmeros
so Iguais

A , , B

A , , B

Fim

Program ORDENA
Var
A, B: Inteiro
Inicio
Leia A, B
Se (A = B) Ento
Escreva Os nmeros so iguais:
Escreva A, , B
Seno
Se (A < B) Ento
Escreva A, , B
Seno
Escreva B, , A
Fim_se
Fim_se
Fim.

Prof. Me. Francisco Verssimo Luciano

34/76

Curso Programador de Sistemas


Inicio
Leia

A,B

A>B

A=B

Os
nmeros
so

XB

BA

AX

A , ,
B

Fim

Prof. Me. Francisco Verssimo Luciano

35/76

Curso Programador de Sistemas


Programa ORDENA2;
Var
A, B, X: Inteiro
Incio
Leia A
Leia B
Se (A = B) Ento
Escreva Os nmeros so iguais:
Seno
Se (A > B) Ento
XB
BA
AX
Fim_se
Fim_se
Escreva A , , B
Fim.

Foi empregada acima outra forma de ordenao: mtodo de


substituio de valores. Precisamos de uma varivel auxiliar
(geralmente X ou AUX), que armazena temporariamente os
valores trocados, para o sucesso da ordenao
Teste de Mesa: teste do programa
O Teste de Mesa consiste em adotarmos valores fictcios para as variveis do programa, como se
tivessem sido digitadas, verificando passo a passo o funcionamento do mesmo. Devemos analisar
todas as situaes possveis, para eliminarmos eventuais erros de lgica.
Se adotarmos os valores para o ltimo programa codificado: A = 15 e B = 7
1. Os nmeros no so iguais, portanto iremos testar se A > B;
2. A maior que B, ento:

X = A (ou seja, X passa a ter o valor 15);


A = B (ou seja, A passa a ter o valor 7);
B = X (ou seja, B passa a ter o valor 15).
Prof. Me. Francisco Verssimo Luciano

36/76

Curso Programador de Sistemas


3. Assim, logo aps a ordenao, os valores sero: A = 7 e B = 15
4. Os valores so exibidos em ordem crescente.
Notas:
a) Quando A for menor que B, os valores sero apresentados de acordo com a sua ordem natural
de entrada, pois A no ser > que B.
b) Quando A e B forem iguais, ser exibida a mensagem Os nmeros so iguais.

Operadores Lgicos (E, OU e NO)


Operador E
Faz com que somente seja executada uma determinada operao se todas as
condies mencionadas forem simultaneamente verdadeiras.
Ler um nmero inteiro e informar se o mesmo est entre 20 e 90 ou no.
Inicio
Leia

NUM

NUM >= 20
E

NUM <= 90

O nmero
est fora da
faixa de 20 a
90

O nmero
est na faixa
de 20 a 90

Fim

Prof. Me. Francisco Verssimo Luciano

37/76

Curso Programador de Sistemas


Programa TESTA_LOGICA_E
Var
NUM : Inteiro
Inicio
Leia NUM
Se (NUM >= 20 .E. NUM <= 90) Ento
Escreva O nmero est na faixa de 20 a 90
Seno
Escreva O nmero est fora da faixa de 20 a 90
Fim_se
Fim.
Operador OU
Utilizado quando pelo menos um dos relacionamentos lgicos de uma condio necessita
ser verdadeiro.
Ex.: Solicitar a digitao do sexo de uma pessoa e informar se o mesmo existe ou no.
Inicio
Leia

INF

INF = M
OU
INF = F

Sexo invlido

Sexo vlido

Fim
Prof. Me. Francisco Verssimo Luciano

38/76

Curso Programador de Sistemas


Program TESTA_LOGICA_OU
Var
INF : caractere
Inicio
Leia INF
Se (INF = M .OU. INF = F ) Ento
Escreva Sexo vlido
Seno
Escreva Sexo invlido
Fim_se
Fim.
Operador NO
Utilizado quando se necessita estabelecer que uma determinada condio deve ser
no verdadeira ou deve ser no falsa. Inverte o estado lgico de uma condio.
Solicitar a digitao da mdia de um estudante e verificar: se a mdia no for maior que 5
informar que o mesmo dever fazer exame, seno informar que est aprovado.

Prof. Me. Francisco Verssimo Luciano

39/76

Curso Programador de Sistemas


Programa TESTA_LOGICA_NO
Var
M : Real
Inicio
Leia M
Se NO(M > 5) Ento
Escreva Exame
Seno
Escreva Aprovado
Fim_se
Fim.

Prof. Me. Francisco Verssimo Luciano

40/76

Curso Programador de Sistemas

Exerccios - Programas Condicionais


1. Fazer o algoritmo que leia dois nmeros inteiros distintos e mostrem o maior deles.
2. Fazer o algoritmo que leia dois nmeros inteiros distintos e mostrem o menor deles.
3. Fazer o algoritmo que leia dois nmeros inteiros e mostrem o maior deles. Se os
nmeros lidos forem iguais, devero mostrar a mensagem: Os nmeros digitados so
iguais.
4. Fazer o algoritmo que leia dois nmeros inteiros e mostrem o menor deles. Se os
nmeros lidos forem iguais, devero mostrar a mensagem: Os nmeros digitados so
iguais".
5. Fazer o algoritmo que leia os quocientes de uma equao do 1 grau, calculem e
mostrem a sua raiz. Obs: equao do 1 grau ax + b (a 0).
6. Fazer o algoritmo que leia os quocientes de uma equao do 2 grau, calculem e
mostrem as suas razes. Obs: equao do 2 grau ax 2 + bx + c (a 0). Se o Delta for
menor que zero devero informar que no existem razes reais.
7. Fazer o algoritmo que leia trs valores. Verificar se eles podem ser lados de um tringulo
(um lado no pode ser maior que a soma dos outros dois). Em caso afirmativo, informar
qual o tipo de tringulo formado escaleno (quando possui todos os lados diferentes),
eqiltero (todos os lados iguais) ou issceles (dois lados iguais e um diferente)]. Caso
no formem um tringulo, informar com a mensagem No formam um tringulo.
8. Fazer o algoritmo que leia as duas notas de um aluno e calculem a mdia aritmtica. Se
a mdia for maior ou igual a 7,0 o aluno est aprovado. Se a mdia for menor do que 4,0
o aluno est reprovado. Se o aluno estiver no intervalo de 4,0 a 7,0, ele estar de
exame. Informar a mdia e a situao do aluno aps os clculos.
9. Fazer o algoritmo e o programa Pascal que efetuem o clculo do reajuste de salrio de
um funcionrio. Considere que o funcionrio dever receber um reajuste de 15% caso o
seu salrio seja menor que 500,00. Se o salrio for maior ou igual a 500,00 mas menor
ou igual a 1000,00, o reajuste ser de 10%. Caso o salrio seja maior que 1000,00, o
reajuste ser de 5%. Informar no final o novo salrio.
10. Fazer o algoritmo que leia trs nmeros inteiros distintos e exibam o menor deles.
11. Fazer o algoritmo que leia trs nmeros reais distintos e exibam-nos em ordem
crescente.
12. Fazer o algoritmo que leia trs nmeros inteiros distintos e exibam o maior deles.
13. Fazer o algoritmo que leia trs nmeros inteiros distintos e exibam-nos em ordem
decrescente.
14. Fazer o algoritmo que leia quatro notas de um aluno, calculem e exibam a mdia
aritmtica das notas e a mensagem aprovado, para mdia superior ou igual a 7,0, ou a
mensagem reprovado, para mdia inferior a 7,0.
15. Fazer o algoritmo que leia a idade de uma pessoa e exibam uma mensagem de
maioridade ou no.
16. Fazer o algoritmo que leia dois nmeros inteiros distintos e exibam o menor deles.
Prof. Me. Francisco Verssimo Luciano

41/76

Curso Programador de Sistemas


17. Fazer o algoritmo que leia trs notas de um aluno. Calculem e exibam a mdia aritmtica
entre essas trs notas e uma das mensagens da tabela abaixo:
Mdia
Mensagem
reprovado
0 5
exame
5 7
aprovado
7 10
inclusive exclusive

18. Fazer o algoritmo que leia as 3 notas de um estudante e seus respectivos pesos ( N1:
peso 1 - N2: peso 2 N3: peso 2 ). Calculem e exibam a mdia final (mdia ponderada)
e o conceito final desse estudante. Os conceitos seguem a tabela abaixo:
Mdia final (ponderada)
Conceito
A
8.0 10.0
B
7.0 8.0
C
6.0 7.0
D
5.0 6.0
< 5.0
E
inclusive exclusive

19. Fazer o algoritmo que leia a idade de uma pessoa e classifiquem-na segundo o critrio a
seguir:
Idade
0 a 2 anos
3 a 11 anos
12 a 19 anos
20 a 60 anos
acima de 60 anos

Classificao
Recm-nascido
Criana
Adolescente
Adulto
Idoso

20. Fazer o algoritmo que leia o cdigo correspondente ao cargo de um funcionrio e


exibam o seu cargo e o percentual de aumento ao qual este funcionrio tem direito,
segundo a tabela abaixo:
Cdigo
1
2
3
4
5

Cargo
Escriturrio
Secretria
Caixa
Gerente
Diretor

Percentual
50%
35%
20%
10%
5%

21. Uma companhia de seguros tem trs categorias de seguros baseadas na idade e
ocupao do segurado. Somente pessoas com pelo menos 18 anos e no mais de 70
anos podem adquirir aplices de seguros. Quanto s classes de ocupaes, foram
Prof. Me. Francisco Verssimo Luciano

42/76

Curso Programador de Sistemas


definidos trs grupos de risco. A tabela a seguir fornece as categorias, em funo da
faixa de idade e do grupo de risco:
Idade

baixo
7
4
1

18 a 24
25 a 40
41 a 70

Grupo de Risco
mdio
8
5
2

alto
9
6
3

Fazer o algoritmo que leia a idade e o grupo de risco (b baixo, m mdio ou a alto) e
determinem e exibam o nmero do grupo de risco (1 a 9).
22. Fazer o algoritmo e o programa Pascal que recebam a medida de um ngulo em graus
(um nmero inteiro) e determinem e exibam em que quadrante se localiza esse ngulo.
Considere os quadrantes abaixo:
ngulo
0 90
90 180
180 270
270 360

Quadrante
1 quadrante
2 quadrante
3 quadrante
4 quadrante

inclusive exclusive

23. Uma empresa decidiu dar uma gratificao de Natal aos seus funcionrios, baseada no
nmero de horas-extras e no nmero de horas que o funcionrio faltou ao trabalho. O
valor do prmio obtido consultando-se a tabela a seguir, em que:
H = (nmero de horas-extras) (2/3 * (nmeros de horas-faltas))
H (minutos)
Prmio ($)
> 2400
500
400
1800 2400
300
1200 1800
200
600 1200
<= 600
100
inclusive exclusive

Fazer o algoritmo que leia o nmero de horas-extras e o nmero de horas-faltas de um


funcionrio, em minutos. Em funo desses valores, devero exibir o nmero de horasextras e o nmero de horas-faltas, em horas, e o valor do prmio.

Prof. Me. Francisco Verssimo Luciano

43/76

Curso Programador de Sistemas

REVISO
Vamos fazer agora uma reviso do conceito
que acabamos de ver. O assunto estruturas de
Controle, chamado de Condicional ou Deciso
muito importante em programao. Portanto,
vamos relembrar algumas passagens, para
tudo ficar bem claro.

Prof. Me. Francisco Verssimo Luciano

44/76

Curso Programador de Sistemas


Conforme foi dito anteriormente, uma estrutura de seleo permite a escolha de um conjunto de
aes e/ou estruturas que sero executadas a partir do resultado de uma condio (simples,
composta ou encadeada), representada por uma expresso lgica. Vale a pena explorar um
pouco mais um tipo em particular, de estruturas de deciso.
Como tambm foi citado anteriormente, Exemplo de aplicao de operadores relacionais
necessrio o uso dos Operadores relacionais, tabela verdade: Tendo duas variveis A = 5 e B
para serem estabelecidas comparaes e/ou = 3, os resultados das expresses seriam:
testes lgicos:

Alm dos operadores relacionais, ao lado,


possvel combinar as decises com outros
operadores: os lgicos.
Exemplo de aplicao de operadores lgicos
tabela verdade mostrada abaixo

Exemplo de aplicao de operadores lgicos tabela verdade:

Prof. Me. Francisco Verssimo Luciano

45/76

Curso Programador de Sistemas


Estrutura de deciso simples:
Faa um algoritmo que leia dois valores numricos, efetue a adio e apresente o seu resultado,
somente se o valor somado for maior que 10.
INCIO

Programa Maior_que_10
Var
A: inteiro
B: inteiro
X: inteiro
Incio
Escreva Digite o 1 valor:
Leia A
Escreva Digite o 2 valor:
Leia B
XA+B
Se (X > 10) ento
Escreva X
Fim_se
Fim.

A, B, C

"Digite o 1
valor: "

"Digite o 2
valor: "

A +B

S
X > 10

FIM

Prof. Me. Francisco Verssimo Luciano

46/76

Curso Programador de Sistemas


Estrutura de deciso composta:
Se (condio) ento
Instrues para condio seja verdadeira
Seno
Instrues para a condio seja falsa
Fim_se
Se (sexo = M) ento
Escreva Masculino
Seno
Escreva Feminino
Fim_se

Exerccio:
Faa um algoritmo que leia dois valores numricos e efetue a adio. Se a soma for maior ou igual a
10, uma varivel de resultado R receber X + 5, caso contrrio a varivel R receber X 5.
INCIO

A, B, C

"Digite o 1
valor: "

"Digite o 2
valor: "

A+B

X >= 10

X- 5

X+5

Programa Maior_igual_10
Var
A, B, X, R: inteiro
Incio
Escreva Digite o 1 valor:
Leia A
Escreva Digite o 2 valor:
Leia B
XA+B
Se (X >= 10) ento
RX+5
Seno
RX-5
Fim_se
Escreva Resultado = , R
Fim.

"Resultado
= ", R

Prof. Me. Francisco Verssimo Luciano

47/76

Curso Programador de Sistemas


Outro exerccio: Verificar uma varivel Sexo digitada

Estrutura de deciso encadeada (Ses aninhados):


Nestas estruturas de deciso tem-se uma ou mais decises que esto subordinadas a uma primeira.
Dessa forma, no exemplo abaixo, a segunda condio ser testada apenas se a primeira condio
for verdadeira.

Prof. Me. Francisco Verssimo Luciano

48/76

Curso Programador de Sistemas

Se (1 condio) ento
Instrues para 1 condio verdadeira
Seno
Se (2 condio) ento
Instrues para a 2 condio verdadeira
Seno
Instrues para a 2 condio falsa
Fim_se
Fim_se
Veja exemplo:
Se (sexo = M) ento
Escreva Masculino
Seno
Se (sexo = F) ento
Escreva Feminino
Seno
Escreva Letra Invlida
Fim_se
Fim_se

Exerccio:
Receber duas notas e calcular a mdia aritmtica e mostrar o resultado:
Prof. Me. Francisco Verssimo Luciano

49/76

Curso Programador de Sistemas

INCIO

N1, N2, MED

"Digite 1
nota: "

N1

"Digite 2
nota: "

N2

MED
(N1+N2)/2

S
MED >= 7

S
MED< 4

"Exame"

"Aprovado"

"Reprovado"

Programa Media_aritmetica
Var
N1, N2, MED: real
Incio
Escreva Digite a 1 nota:
Leia N1
Escreva Digite a 21 nota:
Leia N2
MED (N1+ N2)/2
Se (MED >= 7) ento
Escreva Aprovado
Seno
Se (MED < 4) ento
Escreva Reprovado
Seno
Escreva Exame
Fim_se
Fim_se
Fim.

FIM

Ex.: Fazer um algoritmo que ao receber o salrio atual de um funcionrio, calcule o valor do
novo salrio reajustado de acordo com a tabela abaixo:
Prof. Me. Francisco Verssimo Luciano

50/76

Curso Programador de Sistemas

INCIO

SAL,
NOVO_SAL

"Salario
Atual: "

SAL

NOVO_SAL
SAL * 1.05

SAL < =
1000

SAL < =
500
S

NOVO_SAL
SAL * 1.15

NOVO_SAL
SAL * 1.10

Programa Novo_Salario
Var
SAL, NOVO_SAL: real
Incio
Escreva Salrio Atual:
Leia SAL
Se (SAL < = 500) ento
NOVO_SAL SAL * 1.15
Seno
Se (SAL < = 1000) ento
NOVO_SAL SAL * 1.10
Seno
NOVO_SAL SAL * 1.05
Fim_se
Fim_se
Escreva
Novo
Salrio:
,
NOVO_SAL

Fim.

"Novo
Salario: ",
NOVO_SAL

FIM

Prof. Me. Francisco Verssimo Luciano

51/76

Curso Programador de Sistemas


A seguir, um algoritmo que mostra a soluo de um problema de
verificao de SEXO com estrutura encadeada, com 3 possibilidades:

Prof. Me. Francisco Verssimo Luciano

52/76

Curso Programador de Sistemas

Exerccios:
1) O critrio de avaliao semestral de determinada Faculdade segue a regra:
P1 primeira avaliao do semestre. P2 segunda avaliao do semestre.
Ativ nota atribuda pelas atividades realizadas no semestre.
Mdia
=
P1 x 4 + P2 x 4 + Ativ x 2
10
Faa um algoritmo que leia as notas das provas (P1 e P2) e da atividade (Ativ),
calcule e mostre a mdia, seguindo o clculo acima e o resultado de acordo com a
tabela:

Prof. Me. Francisco Verssimo Luciano

53/76

Curso Programador de Sistemas


2) Uma Universidade tem problemas com arredondamento das mdias dos alunos, pois
cada professor estipula um critrio de arredondamento. Devemos elaborar um algoritmo,
para a secretaria da Universidade, resolvendo esse problema. O programa deve solicitar
uma nota e fazer o devido ao arredondamento. Regras:
Notas que ultrapassem 0,5 de resto sero arredondas para CIMA. Ex: 4,6 5,0
Notas que abaixo ou igual a 0,5 de resto sero arredondas para BAIXO. Ex: 4,5 4,0

3) Faa um algoritmo que leia 4 nmeros e imprima: O maior nmero; O menor nmero; O
nmero do meio.

4) Um pediatra elaborou uma lista com pesos provveis para meninos e meninas entre 1 e

3 anos e, freqentemente, precisa consultar a lista. Escreva um algoritmo que, dada a


idade de uma criana de 1 a 3 anos, mostre na tela os pesos provveis para meninos e
meninas da mesma idade, seguindo a tabela:
dade
1 ano
2 anos
3 anos
Exemplo:

Meninos
De 8.5 kg a 12.5kg
De 10.1 kg a 15.2kg
De 11.7 kg a 18 kg

Meninas
De 7.5kg a 11.5kg
De 9.8kg a 14.5kg
De 11.4kg a 17.950kg

Escolha uma idade de 1 a 3 anos: 2


Pesos Provveis: Meninos
Pesos Provveis: Meninas
De 10.1 kg a 15.2kg
De 9.8kg a 14.5kg

5) Desenvolva um algoritmo que atenda seguinte necessidade: uma cooperativa de leite


paga, a cada um de seus produtores cooperados, por volume de leite entregue
diariamente. Devido grande quantidade de fraudes (adicionamento de gua ao leite,
por exemplo) e erros na leitura do volume dos tarros de leite, a cooperativa comear a
pag-los por massa. Para isso comprou uma balana e um densmetro e necessitar de
um programa para clculo. Na balana sero jogados e misturados os contedos de
todos os tarros de leite de um determinado produtor. A balana informar a massa e o
densmetro a densidade. O programa receber, via teclado, esses dois dados mais o
preo por kg de leite vigente naquele dia. Aps isto, o programa dever apresentar em
tela:
1)Os valores digitados;
2)O volume de leite calculado (volume = massa / densidade);
3)O valor em Reais a ser pago a aquele cooperado;
4)Classificar o leite do cooperado dentro de uma das 3 faixas de densidade
existentes:
Prof. Me. Francisco Verssimo Luciano

54/76

Curso Programador de Sistemas

Categoria I (abaixo de 1,14 kg/l);


Categoria II (entre 1,14 e 1,20 kg/l);
Categoria III (acima de 1,20 kg/l);

6) Este exerccio possibilitar a utilizao dos novos recursos aprendidos, atravs dessa
aplicao pedaggica: faa um algoritmo que leia trs valores numricos, verifique se eles
formam um tringulo. Se sim, mostre o tipo do tringulo. Condies para existncia de um
tringulo:
1)
2)
3)
4)
5)

A>0eB>0eC>0
A<B+CeB<A+CeC<A+B
A = B e A = C Tringulo Equiltero
A = B ou A = C ou B = C Tringulo Issceles
A <> B e A <> C e B <> C Tringulo Escaleno

Para uma reflexo...sempre Antes dos estudos...


O Bambu Chins (Autor desconhecido)
Depois de plantada a semente do bambu, no se v nada por aproximadamente 5 anos,
exceto um lento desabrochar de um diminuto broto a partir do bulbo.
Durante 5 anos, todo o crescimento subterrneo, invisvel a olho nu, mas uma macia
e fibrosa estrutura de raiz que se estende vertical e horizontalmente pela terra est
sendo construda.
Ento, no final do 5 ano, o bambu chins cresce at atingir a altura de 25 metros.
O escritor Stephen Covey escreveu: "Muitas coisas na vida pessoal e profissional so
iguais ao bambu chins. Voc trabalha, investe tempo, esforo, faz tudo o que pode
para nutrir seu crescimento, e s vezes no v nada por semanas, meses ou anos. Mas
se tiver pacincia para continuar trabalhando, persistindo e nutrindo, o seu 5. ano
chegar, e com ele viro um crescimento e mudanas que voc jamais esperava..."
O bambu chins nos ensina que a persistncia e a pacincia so os
caminhos para alcanarmos nossos sonhos e que preciso muita fibra para
chegar s alturas, e ao mesmo tempo, muita humildade e flexibilidade
para se curvar ao cho.

Bons estudos

Prof. Me. Francisco Verssimo Luciano

55/76

Curso Programador de Sistemas

Estruturas de Controle
Laos de Repetio

Prof. Me. Francisco Verssimo Luciano

56/76

Curso Programador de Sistemas


Estruturas de Controle: estrutura de seleo (Escolha/caso)

O escolha/caso um comando de tomada de deciso.

Pode ser comparado com o se/seno, porm o escolha/caso no aceita expresses, apenas
variveis.

O escolha/caso testa a varivel e executa a declarao cujo caso corresponda ao valor atual da
varivel.

Sem dvida alguma o mais importante dos dois o se/seno, mas o comando escolha/caso tem
aplicaes valiosas. Mais uma vez vale lembrar que devemos usar o comando certo no local certo. Isto
assegura um cdigo limpo e de fcil entendimento.

O comando escolha/caso prprio para se testar uma varivel em relao a diversos valores prestabelecidos

Usando a estrutura de deciso (se/seno)

SEXO
N

S
SEXO = M

S
Masculino

SEXO = m
N

S
SEXO = F

Feminino

SEXO = f

Sexo
Invlido

Masculino

Feminino

Prof. Me. Francisco Verssimo Luciano

...
Leia SEXO
Se (SEXO = M) ento
Escreva Masculino
Seno
Se (SEXO = m) ento
Escreva Masculino
Seno
Se (SEXO = F) ento
Escreva Feminino
Seno
Se (SEXO = f) ento
Escreva Feminino
Seno
Escreva Sexo Invlido
Fim_se
Fim_se
Fim_se
Fim_se
...

57/76

Curso Programador de Sistemas

Usando a estrutura de seleo (escolha/caso)

...
Leia SEXO
Escolha (SEXO)
Caso M: Escreva Masculino
Caso m: Escreva Masculino
Caso F: Escreva Feminino
Caso f: Escreva Feminino
Seno
Escreva Sexo Invlido
Fim_escolha
...

Usando a estrutura de seleo (escolha/caso)

Prof. Me. Francisco Verssimo Luciano

58/76

Curso Programador de Sistemas

...
Leia MES
Escolha (MES)
Caso 1: Escreva Janeiro
Caso 2: Escreva Fevereiro
Caso 3: Escreva Maro

...
Caso 12: Escreva Dezembro
Seno
Escreva Ms Invlido
Fim_escolha
...

Estruturas de Controle: Teste lgico no incio do looping (Enquanto)


uma estrutura que repete um processamento durante um certo nmero de vezes. Caracteriza-se
por repetir a execuo do trecho de instrues subordinado a esse looping enquanto obedecida a
condio de controle.

N
CONDIO

S
INSTRUES
EXECUTADAS
ENQUANTO A
CONDIO
VERDADEIRA

Enquanto (<condio>) faa


<instrues executadas enquanto a condio verdadeira>
<demais instrues e procedimentos>
Fim_enquanto

DEMAIS
INSTRUES
E PROCEDIMENTOS

Prof. Me. Francisco Verssimo Luciano

59/76

Curso Programador de Sistemas


Ex: Faa um algoritmo que leia cinco nmeros, multiplique-os por trs e exiba-os:

Programa Numeros
Var
I, N, R: inteiro
Incio
I1
Enquanto (I< = 5) faa
Leia N
RN*3
Escreva R
II+1
Fim_enquanto
Fim.

Ex: Faa um algoritmo que leia N nmeros quaisquer, enquanto o usurio desejar,
multiplique-os por trs e exiba-os:

Prof. Me. Francisco Verssimo Luciano

60/76

Curso Programador de Sistemas


Programa Numeros2
Var
N, R: inteiro
RESP: caractere
Incio
RESP S
Enquanto (RESP = S ou RESP = s)
faa
Leia N
RN*3
Escreva R
Escreva Deseja Continuar?
Leia RESP
Fim_enquanto
Fim.

Prof. Me. Francisco Verssimo Luciano

61/76

Curso Programador de Sistemas


Ex.: Faa um algoritmo que escreva os valores pares existentes de 1 a 100:
Inicio

CONT

CONT

1
N

CONT <=
100
S
N

S
CONT
MOD 2 = 0
CONT,
eh par

CONT

CONT + 1

Fim

Programa Numeros_Pares
Var
CONT : inteiro
Incio
CONT 1
Enquanto (CONT < = 100) faa
Se (CONT mod 2 = 0) ento
Escreva CONT, eh par
Fim_se
CONT CONT + 1
Fim_enquanto
Fim.
Prof. Me. Francisco Verssimo Luciano

62/76

Curso Programador de Sistemas


Veja dois exerccios aplicando o conceito de repetio:

1) Faa um algoritmo que calcule o


fatorial de um nmero N.
0! = 1
1! = 1
N! = N * N-1 * ...
Exemplo: 3! = 3 * 2 * 1 6

2) Receber notas de N alunos e no


final mostrar:
A menor nota
A maior nota e
A nota mdia

Prof. Me. Francisco Verssimo Luciano

63/76

Curso Programador de Sistemas


Programa Fatorial_de_N
Var
FAT, CONT, N: inteiro
RESP: caractere
Incio
RESP S
Enquanto (RESP = S ou RESP = s)
faa
FAT 1
CONT 1
Escreva Informe o n para calcular:

Leia N
Enquanto (CONT <= N) faa
FAT FAT * CONT
CONT CONT + 1
Fim_enquanto
Escreva Fatorial de , N, = , FAT
Escreva Deseja Continuar?
Leia RESP
Fim_enquanto
Fim.
Teste de mesa:
CONT
1
2
3
4

N FAT FAT = FAT * CONT


3
1
1*11
3
1
1*22
3
2
2*36
3
6
----

Prof. Me. Francisco Verssimo Luciano

64/76

Curso Programador de Sistemas


Programa Maior_Menor_Nota
Var
NT, ME, MA, MED: real
N, I: inteiro
RESP: caractere
Inicio
RESP S
Enquanto (RESP=S ou RESP=s) faa
ME 0
MA 0
MED 0
I1
Escreva Digite o numero de alunos:
Leia N
Faa
Escreva Digite a, I, nota:
Leia NT
Se (I = 1) ento
ME NT
MA NT
Seno
Se (NT < ME) ento
ME NT
Fim_se
Se (NT > MA) ento
MA NT
Fim_se
Fim_se
MED MED + NT
II+1
Enquanto (I <= N)
MED MED/N
Escreva Menor nota: , ME
Escreva Maior nota: , MA
Escreva Mdia.......: , MED
Escreva Digite S para continuar:
Leia RESP
Fim_enquanto
Fim

Prof. Me. Francisco Verssimo Luciano

65/76

Curso Programador de Sistemas


Desenvolva o portugol referente ao diagrama acima

Exerccios Propostos:
6)

Faa um algoritmo que calcule o resultado de S na srie dada abaixo. O


usurio deve informar, via teclado, o nmero inteiro que representa o valor
de n:

7) Elaborar um algoritmo que calcule a mdia das notas dos alunos de uma
sala de aula qualquer, sendo que em primeiro lugar dever ser solicitada a
digitao da quantidade de alunos existentes nessa sala e, posteriormente,
a digitao de todas as notas dos alunos da mesma.
Mdia = ( N1 + N2 + N3 + N4 + N5 + ... + Nm ) / m
Exemplo:
Digite a quantidade de alunos da sala (m): 5 <Enter>
Digite N1: 5.5 <Enter>
Digite N2: 4.5 <Enter>
Digite N3: 3.0 <Enter>
Digite N4: 5.0 <Enter>
Digite N5: 7.0 <Enter>
Mdia da sala: 5.0
Prof. Me. Francisco Verssimo Luciano

66/76

Curso Programador de Sistemas


Estruturas de controle
Estruturas de repetio/laos de repetio (faa-enquanto)
Idem estrutura enquanto/faa
A diferena est no controle da repetio que ocorre no final
As instrues sero executadas pelo menos uma vez

Faa
Instruo1
Instruo2
Enquanto (condio)
Instru3

INSTRUO1

INSTRUO2

do
N

{
Instruo1;
Instruo2;
} while(condio);

CONDIO
S

INSTRUO3

Observa-se que a diferena fundamental em relao forma Enquanto/faa, est no controle das
repeties, que ocorre no final. Por conta disso, mesmo que a condio no seja satisfeita, a(s)
instruo (es) do lao ser (ao) executada(s) pelo menos uma vez.
Veja agora, como fica o algoritmo que escreve os valores pares existentes de 1 a 100, usando a nova
estrutura de controle:

Prof. Me. Francisco Verssimo Luciano

67/76

Curso Programador de Sistemas


Programa Fatorial_de_N
Var
FAT, CONT: inteiro
RESP: caractere
Incio
RESP S
Enquanto (RESP = S ou RESP = s) faa
FAT 1
CONT 1
Escreva Informe o n para calcular:
Leia N
Faa
FAT FAT * CONT
CONT CONT + 1
Enquanto (CONT <= N)
Escreva Fatoria de , N, = , FAT
Escreva Deseja Continuar?
Leia RESP
Fim_enquanto
Fim.

Prof. Me. Francisco Verssimo Luciano

68/76

Curso Programador de Sistemas


Exerccios Propostos:
1) Faa um algoritmo para calcular e exibir o resultado de S na srie:

S = x / 1 - x / 2 + x / 3 - x / 4 + x / 5 - ..... + x / 19 - x / 20
2) Faa um algoritmo para calcular e exibir o resultado de S para os N
primeiros termos da srie:

S = 1/(35+36) 2/(36+37) + 3/(37+38) - ... + N


3) calcular o MMC entre trs nmeros.
Exemplo: MMC entre 2, 3 e 4
2,
1,
1,
1,

3,
3,
3,
1,

4
2
1
1

Prof. Me. Francisco Verssimo Luciano

2
2
3
MMC = 12

69/76

Curso Programador de Sistemas


Relembrando: nas pginas anteriores, foram estudadas as estruturas de
controle Enquanto e Faa/enquanto nas memrias de aulas anteriores
Teste lgico no incio do looping (Enquanto)
uma estrutura que repete um processamento durante um certo nmero de vezes. Caracteriza-se
por repetir a execuo do trecho de instrues subordinado a esse looping enquanto obedecida a
condio de controle.

N
CONDIO

S
INSTRUES
EXECUTADAS
ENQUANTO A
CONDIO
VERDADEIRA

Enquanto (<condio>) faa


<instrues executadas enquanto a condio verdadeira>
<demais instrues e procedimentos>
Fim_enquanto

DEMAIS
INSTRUES
E PROCEDIMENTOS

Teste lgico no fim do looping (faa-enquanto)


Idem estrutura enquanto/faa
A diferena est no controle da repetio que ocorre no final
As instrues sero executadas pelo menos uma vez

Prof. Me. Francisco Verssimo Luciano

70/76

Curso Programador de Sistemas


Faa
Instruo1
Instruo2
Enquanto (condio)
Instru3

Observa-se que a diferena fundamental em relao forma Enquanto/faa, est no controle das
repeties, que ocorre no final. Por conta disso, mesmo que a condio no seja satisfeita, a(s)
instruo (es) do lao ser (ao) executada(s) pelo menos uma vez.

Agora veremos a ltima estrutura de controle que o lao PARA


Tem a mesma finalidade das estruturas anteriores, ou seja,
processar instrues por n vezes de acordo com o desejo do
programador
A varivel de controle possui previamente os valores de incio e
fim.

Prof. Me. Francisco Verssimo Luciano

71/76

Curso Programador de Sistemas


...
Incio
...
Para X de 1 at 10 passo 1 faa
Instruo 1
Instruo 2
Fim_para
...
Fim

Na linguagem C:
for (x=1; x<=10; x++)
{
Instruo1;
Instruo 2;
}
Onde: X
1
10
1

varivel de controle
valor inicial da varivel X
valor final da varivel X
passo/salto/variao/incremento de X

Ex.: mostrar todos os valores de 1 a 1250:

Prof. Me. Francisco Verssimo Luciano

72/76

Curso Programador de Sistemas


INCIO

VAL

VAL
1, 1250, 1

Valor = ,
VAL

Programa Nmeros_1_a_1250
Inicio
Var
VAL: inteiro
Para VAL de 1 at 1250 passo 1 faa
Escreva Valor = , VAL
Fim_para
Fim
for (VAL = 1; VAL<=1250;VAL++)
printf(Valor = %d,VAL);

FIM

Ex.: mostrar todos os valores de 1 a 1250 que sejam mltiplos de 7:

Prof. Me. Francisco Verssimo Luciano

73/76

Curso Programador de Sistemas


INCIO

VAL

VAL
1, 1250, 1

N
VAL mod 7 = 0

VAL,
multiplo
de 7

Programa Nmeros_Multiplos_7
Var
VAL: inteiro
Inicio
Para VAL de 1 at 1250 passo 1
faa
Se (VAL mod 7 = 0) ento
Escreva VAL, mltiplo de
7
Fim_se
Fim_para
Fim
for (...)
if (VAL % 7 == 0)
printf(....);

FIM

Prximo exerccio:
Calcular o fatorial de um nmero N
qualquer:

Prof. Me. Francisco Verssimo Luciano

74/76

Curso Programador de Sistemas


Programa Fatorial_N
Var
RESP, N, FAT, VAL: inteiro
Inicio
RESP 1
Enquanto (RESP = 1) faa
FAT 1
Escreva Numero para calculo:
Leia N
Para VAL de 1 at N passo 1 faa

FAT FAT * VAL


Fim_para
Escreva Fatorial de , N, = , FAT
Escreva Digite [1] para continuar:
Leia RESP

Fim_enquanto
Fim

Exerccio: Definir a seqncia


de Fibonacci para os N termos
abaixo:

1,1,2,3,5,8,13,...N

Prof. Me. Francisco Verssimo Luciano

75/76

Curso Programador de Sistemas


Exerccios Propostos faa-os usando o lao PARA:
1) Faa um algoritmo para calcular e exibir o resultado de S na srie:

S = x / 1 - x / 2 + x / 3 - x / 4 + x / 5 - ..... + x / 19 - x / 20
2) Faa um algoritmo para calcular e exibir o resultado de S para os N
primeiros termos da srie: S = 1/(35+36) 2/(36+37)+3/(37+38) - ... + N

3) calcular o MMC entre trs nmeros. Exemplo: MMC entre 2, 3 e 4


2,
3,
4
2
1,
3,
2
2
1,
3,
1
3
1,
1,
1
MMC = 12
4) Faa um algoritmo que receba um numero qualquer como base e
o ensimo expoente faa os clculos. Veja exemplo:
Nmero = 5 e expoente = 3
50 =
1
1
5
=
5
2
5
=
25
3
5
=
125
5) Desenvolva um algoritmo que receba dados para uma pesquisa
entre N alunos, para verificar acessos a redes de relacionamentos:
1 Orkut
2 twitter
3 facebook
4 outros
Para encerrar deve ser digitado 0 (zero) e no final devem ser
mostrados:
Rede
N de alunos
%
------------------------------------------------------Orkut
Twitter
Facebook
Outros
------------------------------------------------------Totais
100
Prof. Me. Francisco Verssimo Luciano

76/76

Você também pode gostar