Lógica de Programação

Transcrição

Lógica de Programação
Curso Programador de Sistemas
Lógica de Programação
Professor
FRANCISCO VERÍSSIMO LUCIANO
Prof. Me. Francisco Veríssimo Luciano
/76
Curso Programador de Sistemas
CURSO:
Programador de Sistemas
DISCIPLINA:
Lógica de Programação
EMENTA
Capacitar o aluno à resolução de problemas algorítmicos, documentando a solução em ferramentas de
representação de algoritmos mais usuais – portugol (pseudocódigo; português estruturado) e diagrama de
blocos.
OBJETIVOS
Desenvolver a capacidade de desenvolvimento de algoritmos necessários para a programação estruturada de
computadores independente da linguagem. Através de exercícios de desenvolvimento de algoritmos
solucionados em portugol e diagrama de blocos, capacitar o aluno a propor soluções algorítmicas enfocando a
validação do mesmo com o uso do teste de mesa.
CONTEÚDO PROGRAMÁTICO
Definição de algoritmo. Etapas da criação de um programa. Importância do Teste de Mesa para o processo de
elaboração do algoritmo. Formas de representação de algoritmos: portugol, diagrama de blocos e diagrama de
Chapin. Definição de variáveis, tipos de dados, expressões aritméticas e lógicas. Comando de entrada e saída
(E/S). Estrutura condicional: simples, composta, encadeada. Estrutura de seleção múltipla. Estrutura de
repetição.. Modularização de algoritmos.
BIBLIOGRAFIA BÁSICA
GUIMARÃES, Â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 – Módulo 1. 1a ed, São Paulo: Makron Books,
1990.
BIBLIOGRAFIA COMPLEMENTAR
FORBELLONE, André Luiz Villar e EBERSPACHER, Henri Frederico. Lógica de Programação - A Construção
de Algoritmos e Estrutura de Dados. 1a ed, São Paulo: Makron Books, 1999.
MANZANO, Jose Augusto N. G. e OLIVEIRA, Jayr F. Algoritmos Lógica para Desenvolvimento de Programação
de Computadores. 16ª Ed, São 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, São Paulo: Makron Books, 1997.
Softwares sugeridos para desenvolvimento dos Diagramas de Blocos:
 MS-Visio
 Dia
Prof. Me. Francisco Veríssimo Luciano
/76
Curso Programador de Sistemas
Noções Preliminares de Lógica e Construção de Algoritmos
Lógica:
- Relacionada à capacidade de raciocinar
- Vinculada à capacidade de pensar
- Lógica de programação é a técnica de encadear pensamentos para atingir determinado objetivo.
Algoritmo:
- Um algoritmo é formalmente uma seqüência finita de passos que levam a execução de uma tarefa.
Um pequeno exemplo: Torre de Hanoi
 Descreva detalhadamente os procedimentos necessários 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 Jesuítas
 Descreva passo a passo os procedimentos necessários para passar os 3 canibais e os 3 jesuítas
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 alguém para buscar os demais;
o O número de canibais nunca poderá ser superior ao de jesuítas em qualquer uma das
margens (considerando-se quem está no barco também).
MARGEM B
MARGEM A
Prof. Me. Francisco Veríssimo Luciano
/76
Curso Programador de Sistemas
Algoritmos
Conceituando:
Algoritmo consiste em um conjunto lógico e finito de ações ( instruções ) que
objetivam resolver um determinado problema.
Um algoritmo desenvolvido não é a única solução possível de um problema, pois, se
assim fosse, cada problema teria um único algoritmo. Algoritmo é um dos caminhos para a
solução de um problema e, em geral, os caminhos que levam a uma solução são muitos. O
aprendizado de algoritmos só é conseguido através de muitos exercícios.
Não 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 lógicos
a serem seguidos para a solução do problema;
d) Codificar os passos do algoritmo na linguagem de programação mais
adequada;
e) Analisar junto aos usuários se o problema foi resolvido. Se a solução não foi
encontrada, dever-ser-á retornar à fase de estudos a fim de localizar-se a
falha.
Estas são, de forma bem geral, as etapas que um analista passa, desde a
apresentação do problema até a sua efetiva solução. Iremos, neste curso, nos ater à etapa
de estudo, também chamada de análise, e à etapa de programação. Mas, antes, vamos
definir o seguinte conceito: programar um computador consiste em elaborar um conjunto
finito de instruções, reconhecidas pelo mesmo, de forma que consiga executá-las. Estas
instruções possuem regras e uma sintaxe próprias, como o português ou o inglês - sendo
chamadas de linguagem de programação.
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 Veríssimo Luciano
/76
Curso Programador de Sistemas
Estrutura de Algoritmos
Antes de utilizarmos uma linguagem de computador, é necessário definir
as ações a serem tomadas pela máquina de forma organizada e lógica, sem
nos atermos às regras rígidas da sintaxe de uma linguagem. Para isso
utilizaremos uma das formas de escrever tais algoritmos, conhecida como
Fluxograma ou Diagrama de Blocos.
Formas de representação de um Algoritmo:
-Fluxograma (Diagrama de Blocos).
-Portugol (Português Estruturado ou Pseudocódigo);
-Diagrama de Chapin;
Exemplos:
Portugol, Português Estruturado ou Pseudocódigo;
Fluxograma ou Diagrama de Blocos;
algoritmo teste
início
A, B: inteiro
A1
B2
se A > B então
A5
senão
A  10
fim se
fim.
Início
A1
B2
F
A>B
V
A5
A  10
Fim
Prof. Me. Francisco Veríssimo Luciano
/76
Curso Programador de Sistemas
Diagrama de Chapin
A1
B2
A>B
F
V
A  10
A5
Exemplificando o algoritmo acima em uma linguagem de programação, como em Pascal, a
solução 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 Veríssimo Luciano
/76
Curso Programador de Sistemas
Variáveis
O computador possui uma área de armazenamento conhecida como memória. Todas
as informações existentes no computador estão ou na memória primária (memória RAM –
Random Access Memory - memória de acesso aleatório) ou na memória secundária (discos,
fitas, CD-ROM, etc). Nós iremos trabalhar, neste curso, somente com a memória primária,
especificamente com as informações armazenadas na RAM.
A memória do computador pode ser entendida como uma seqüência finita de caixas,
que num dado momento, guardam algum tipo de informação, como um número, uma letra,
uma palavra, uma frase, etc. Não importa ao usuário conhecer todas as informações
contidas, basta apenas saber que lá sempre existe alguma informação.
O computador, para poder trabalhar como algumas destas informações, precisa saber
onde, na memória, o dado está localizado. Fisicamente, cada caixa, ou cada posição de
memória, possui um endereço, ou seja, um número que indica onde cada informação está
localizada. Este número é representado através da notação hexadecimal, tendo o tamanho
de quatro ou mais bytes. Abaixo seguem alguns exemplos:
Endereço Físico
3000 : B712
2000 : 12EC
3000 : 0004
Informação
‘João’
12345
‘H’
Como pode ser observado, o endereçamento das posições de memória através de
números hexadecimais é perfeitamente compreendido pela máquina, mas para nós
humanos torna-se uma tarefa complicada. Pensando nisto, as linguagens de programação
de computadores facilitaram o manuseio das posições de memória da máquina, permitindo
que, ao invés de trabalhar diretamente com os números hexadecimais, fosse possível dar
nomes diferentes a cada posição de memória.
Os nomes são de livre escolha do usuário. Com este recurso, os usuários ficaram
livres dos endereços físicos (números hexadecimais) e passaram a trabalhar com endereços
lógicos (nomes dados pelos próprios usuários). Desta forma, o exemplo acima poderia ser
alterado para ter o seguinte aspecto:
Endereço Físico
Nome
Número
Letra
Prof. Me. Francisco Veríssimo Luciano
Informação
‘João’
12345
‘H’
7/76
Curso Programador de Sistemas
Como tínhamos falado, os endereços lógicos são como caixas, que num dado instante
guardam algum tipo de informação. Mas é importante saber que o conteúdo desta caixa não
é algo fixo ou permanente. Na verdade, uma caixa pode conter diversas informações, ou
seja, como no exemplo acima, a caixa (Endereço Lógico) rotulada de “Nome” num dado
momento contém a informação “João”, mas em um outro momento poderá conter uma outra
informação, por exemplo “Pedro”. Com isto queremos dizer que o conteúdo destas caixas (
endereços lógicos ) podem variar, isto é, podem sofrer alterações em seu conteúdo. Tendo
este conceito em mente, a partir de agora iremos chamar de forma genérica, as caixas ou
endereços lógicos, de variáveis.
Posição de
Memória
Memória
Conceituando:
Desta forma, é possível afirmar que uma variável é uma posição de memória,
representada por um nome simbólico (atribuído pelo usuário), a qual contém, num
dado instante, uma informação.
Prof. Me. Francisco Veríssimo Luciano
8/76
Curso Programador de Sistemas
Nomes de Variáveis
 O nome de uma variável é formado por uma letra ou por uma letra seguida de letras
ou números (quaisquer números);
 Não é permitido o uso de espaços em branco ou de qualquer outro caractere, que não
seja letra ou número;
 Se utilizar mais de uma palavra para compor o nome da variável utilize o “_“
(underline) para separar as palavras. Exemplo: data_nasc ;
 Não pode iniciar com um número.
Conteúdo de uma Variável
As variáveis podem armazenar:
 Valores numéricos;
 Textos (letras, palavras) ou até frases.
Identificadores: Variáveis e Constantes
Considere a fórmula matemática do cálculo do volume de uma esfera:
4
V  R 3
3
onde são encontrados valores que podem ser classificados como:
a) valores constantes, invariantes em todas as aplicações da fórmula, como são os
casos dos valores 4, 3 e   denominam-se CONSTANTES;
b) valores a serem substituídos na fórmula, em cada aplicação; a representação desses
valores, usualmente é feita através de letras, que recebem o nome de VARIÁVEIS e
tornam a fórmula genérica, possível de ser aplicada para resolver uma certa classe de
problemas e não apenas um problema específico;
c) operações a serem feitas sobre determinados operandos (valores), para a obtenção
da solução do problema.
Prof. Me. Francisco Veríssimo Luciano
9/76
Curso Programador de Sistemas
Tipos de Dados
As Linguagens de Programação exigem que no momento que formos trabalhar com
variáveis, indiquemos o tipo de dado que a mesma poderá conter, isto é, se uma dada
posição de memória armazenará um número ou uma letra, etc.
A linguagem Pascal, por exemplo, possui a definição de alguns tipos que deverão ser
usados para se trabalhar com variáveis. Esses tipos são:
Principais tipos de variáveis e dados que armazenam (relembrando...):
Algoritmo
(Portugol)
Pascal
Dados que podem armazenar
a) Inteiro
a) INTEGER
Representa números entre –32.768 até +32.767. Ocupa 2
bytes na memória.
b) Real
b) REAL
Representa os números entre 2,9 x 10-39 até 1,7 x 1038 .
Ocupa 6 bytes na memória.
e) Caracter
e) CHAR
Representa um dos caracteres, da tabela ASCII. Ocupa 1
byte na memória.
d) Cadeia
f) STRING
g) Lógica
Conjunto de caracteres ( CHAR ). Ocupa de 1 a 255 bytes na
memória.
Valor lógico. Assume somente dois valores:
g) BOOLEAN TRUE(Verdadeiro) ou FALSE(Falso). Ocupa 1 byte na
memória.
Outros tipos de Variáveis
Pascal
Dados que podem armazenar
h) WORD
i) BYTE
j) ShortInt
Números de 0 até 65.535. Ocupa 2 bytes na memória.
Números de 0 até 255. Ocupa 1 byte na memória.
Representa os números entre -128 até 128 . Ocupa 1 bytes na memória.
l) LongInt
Representa os números entre - 2.147.483.648 até 2.147.483.648 . Ocupa
4 bytes na memória.
m) Single
Representa os números entre 1,5 x 10 -45 até 3,4 x 1038 . Ocupa 4 bytes na
memória.
n) Double
Representa os números entre 5 x 10-324 até 1,7 x 10308 . Ocupa 8 bytes na
memória.
Prof. Me. Francisco Veríssimo Luciano
10/76
Curso Programador de Sistemas
Iremos gradativamente trabalhar com alguns destes tipos e mostrar as suas
características.
Declaração de Variáveis
É necessário informar, logo no início do programa, quais as variáveis que serão
utilizadas e que tipo de dados cada uma armazenará.
Para declarar uma ou mais variáveis, devemos utilizar, em Pascal, a palavra VAR.
Nos algoritmos feitos em Portugol pode-se utilizar a mesma nomenclatura.
Nos algoritmos construídos com Fluxograma (Diagrama de Blocos) não é necessário
declarar as variáveis. Apenas indicamos a atribuição de valores às variáveis necessárias
(Fig. 1) ou a leitura dos dados para as mesmas( Fig. 2).
Inicio
Inicio
Leia
A  10
A
<Comandos>
<Comandos>
Fim
Fim
Figura 1
Prof. Me. Francisco Veríssimo Luciano
Figura 2
11/76
Curso Programador de Sistemas
Abaixo seguem exemplos de algumas declarações de variáveis 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 ;
Número : INTEGER ;
BEGIN
<comandos> ;
END .
Obs: Os nomes dados às variáveis não podem ser os mesmos nomes de palavras
reservadas do Pascal, tais como PROGRAM, BEGIN, END, VAR, etc…
Prof. Me. Francisco Veríssimo Luciano
12/76
Curso Programador de Sistemas
Comandos de Atribuição
Quando definimos uma variável, é natural atribuirmos a ela uma informação. Uma das
formas de colocar um valor dentro de uma variável, conseqüentemente colocando este dado
na memória do computador, é através da atribuição direta do valor desejado à variável.
Para isso são utilizados os símbolos : = (dois pontos igual) no Pascal e  (seta para
esquerda) em Algoritmos, que significam: atribuir, ou seja, a posição de memória que uma
variável representa receberá uma informação, que será armazenada no interior desta
variável. Exemplos:
Algoritmo
Pascal
PROGRAM Teste;
VAR
X : INTEGER;
BEGIN
X : = 10;
END.
X  10
O Exemplo anterior nos informa que:
a) Foi definida uma variável, a qual demos o Nome de “ X ”, e informamos que esta
variável, ou posição de memória, só poderá aceitar dados que sejam numéricos e que
estejam entre -32768 a +32767 ( tipo INTEGER );
b) Atribuímos à variável “ X ” o valor 10.
A memória se comportaria da seguinte forma, de acordo com os itens acima:
Logo após a declaração da variável e antes da atribuição de valor:
Variável
Conteúdo
X
Indefinido
Após a atribuição de valor:
Variável
X
Conteúdo
10
Variáveis do tipo CHAR (Caractere) e STRING (Cadeia)
As definições de variáveis como sendo do tipo CHAR e STRING, possuem algumas
curiosidades que merecem um cuidado especial por parte do usuário.
Prof. Me. Francisco Veríssimo Luciano
13/76
Curso Programador de Sistemas
Uso do apóstrofro ( ‘ )
Quando estivermos fazendo a atribuição de um valor para uma variável do tipo CHAR
(Caractere) ou STRING (Cadeia), temos que ter o cuidado de colocar o valor (dado) entre
apóstrofos ( ‘ ) - chamados por alguns de “aspas simples” - pois esta é a forma de dizer que
a informação é caractere.
Exemplos:
Algoritmo
Inicio
Letra  ‘A’
Nome  ‘João’
Fim
Pascal
PROGRAM AtribuiString;
VAR
Letra : CHAR ;
Nome : STRING ;
BEGIN
Letra := ‘ A ‘ ;
Nome := ‘ João ’ ;
END.
Manipulação de caracteres individuais em STRING’s (Cadeias)
Muitas vezes é necessário manipular caracteres individuais em uma STRING (Cadeia) . O
Pascal possui uma forma toda especial de permitir tal operação, através do uso de
colchetes( [ ] ) logo após o Nome da variável do tipo STRING (Cadeia) , e o número do
caractere que se deseja manipular entre os colchetes.
Formas de representação de algoritmos:
 Diagrama de Chapin (pronuncia-se “Chapã”)
 Diagrama de Blocos ou Fluxograma: representação gráfica do algoritmo
 Portugol, pseudocódigo ou português estruturado: descrição narrativa do
algoritmo
Prof. Me. Francisco Veríssimo Luciano
14/76
Curso Programador de Sistemas
Diagrama de Blocos ou Fluxograma
É um dos métodos utilizados para o desenvolvimento de algoritmos. Com esta técnica
definimos os passos lógicos, a serem seguidos para a solução de um problema, com o
auxílio de figuras geométricas. Posteriormente, codificarmos esses passos em uma
linguagem de programação em um computador.
Há muitas figuras para construção de Diagramas de Blocos/Fluxogramas. As
principais que utilizaremos, são:
Terminal - para indicar Início ou Fim do programa;
Processamento - para cálculos, classificações, atribuições de valor, etc.;
Entrada e Saída de Dados - é utilizado sempre em conjunto com os verbos
Leia, para indicar a leitura de valores para variáveis, ou Escreva, para indicar a
exibição de mensagens e/ou conteúdo de variáveis;
Entrada de Dados via teclado
Saída ou Exibição de Dados em Vídeo - para indicar a exibição dos valores
contidos nas variáveis e mensagens (textos) contidas nos programas;
Saída de Dados Impressos;
Decisão - para efetuar um desvio condicional, uma “pergunta”, para definir se o
programa deve seguir numa direção ou em outra;
Estrutura de controle: repetição (laço para)
Conector - para ligar as seqüências de solução do problema vindas de
diferentes pontos do Fluxograma;
3
Conector de Página - para ligar pontos do Fluxograma na mesma página ou
em páginas diferentes; normalmente utiliza-se um número junto, para indicar de
que ponto vem e para qual ponto deve seguir o fluxo;
Setas de Orientação do Fluxo - para indicar o sentido a ser seguido.
Prof. Me. Francisco Veríssimo Luciano
15/76
Curso Programador de Sistemas
Operadores Aritméticos
+
(Adição)
 Tipo de operandos permitidos: inteiros, reais, cadeias de caracteres.
 Operação executada: no caso de inteiros e reais o operando à esquerda do + é
somado ao operando a sua direita, sendo o tipo do resultado dessa operação
dependente de seus operandos:




-
(Subtração)
 Tipo de operandos permitidos: inteiros, reais.
 Operação executada: o operando à esquerda do - é subtraído do operando a sua
direita, sendo o tipo do resultado dessa operação dependente de seus operandos:



*
Se os dois operandos são inteiros, o resultado da operação é inteiro;
Se os dois operandos são reais, o resultado da operação é real;
Se um dos operandos é real e o outro é inteiro, o resultado da operação é real.
(Multiplicação)
 Tipo de operandos permitidos: inteiros, reais.
 Operação executada: o operando à esquerda do * é multiplicado pelo operando a
sua direita, sendo o tipo do resultado dessa operação dependente de seus
operandos:



/
Se os dois operandos são inteiros, o resultado da soma é um valor inteiro;
Se os dois operandos são 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
operação é dado pela cadeia obtida pela concatenação da cadeia dada pelo
primeiro operando com a cadeia dada pelo segundo operando.
Se os dois operandos são inteiros, o resultado da operação é um valor inteiro;
Se os dois operandos são reais, o resultado da operação é um valor real;
Se um dos operandos é real e o outro é inteiro, o resultado da operação é um
valor real.
(Divisão)
 Tipo de operandos permitidos: inteiros, reais.
 Operação executada: o operando à esquerda do / é dividido pelo operando a sua
direita, sendo o resultado dessa operação real.
Prof. Me. Francisco Veríssimo Luciano
16/76
Curso Programador de Sistemas
DIV
 Tipo de operandos permitidos: ambos do tipo inteiro.
 Operação executada: o operando à esquerda do DIV é dividido pelo operando à
sua direita, sendo o resultado desta operação um valor inteiro resultante da
divisão.
 Exemplo: 7 DIV 3 resulta 2 (vide abaixo).
MOD
 Tipo de operandos permitidos: ambos do tipo inteiro.
 Operação executada: o operando à esquerda do MOD é dividido pelo operando à
sua direita, sendo o resultado desta operação o resto inteiro da divisão.
 Exemplo: 7 MOD 3 resulta 1 (vide abaixo).
Dividendo  7
3  Divisor
MOD
2  DIV
1
Prof. Me. Francisco Veríssimo Luciano
17/76
Curso Programador de Sistemas
Programas Seqüenciais
São programas onde são executadas as linhas de instruções uma após a outra,
seqüencialmente, sem desvios.
1)Faça um algoritmo para ler dois números inteiros, efetuar e mostrar a SOMA dos mesmos.
Inicio
Declaração de variáveis
do algoritmo
X, A, B
Escreva
“Digite o1º
numero: “
Leia
A
Escreva
“Digite o2º
numero: “
Leia
B
X
A+B
Escreva
“A Soma
é“, X
Fim
Prof. Me. Francisco Veríssimo Luciano
18/76
Curso Programador de Sistemas
Programa SOMA_INTEIROS
Var
X, A, B : Inteiro
Inicio
Escreva “Digite o 1º número: “
Leia A
Escreva “Digite o 2º número: “
Leia B
X A+B
Escreva “A soma é “ , X
Fim.
Outro exercício:
2)Faça um algoritmo que leia 2 números reais, efetue e mostre a SOMA e a MÉDIA:
Prof. Me. Francisco Veríssimo Luciano
19/76
Curso Programador de Sistemas
Prof. Me. Francisco Veríssimo Luciano
20/76
Curso Programador de Sistemas
Programa SOMA_MEDIA_REAIS
Var
X, A, B, MED : real
Inicio
Escreva “Digite o 1º número: “
Leia A
Escreva “Digite o 2º número: “
Leia B
X A+B
Escreva “A soma é “ , X
MED  X/2
Escreva “A Média é “, MED
Fim.
3) Faça um algoritmo que receba dois números inteiros, calcule e mostre o dobro do primeiro
e o triplo do segundo.
INICIO
NUM1, NUM2,
DOBRO,
TRIPLO
A
"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
Início
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
A
Prof. Me. Francisco Veríssimo Luciano
21/76
Curso Programador de Sistemas
Nota-se no diagrama acima que foi usada uma representação
para declarar as variáveis do algoritmo. Essa prática é
recomendada para dar mais clareza ao algoritmo. Veja a
seguir a figura (retângulo):
Mais um exercício
4) Faça um algoritmo que receba pelo teclado as notas de duas provas, dois
trabalhos e uma lista de exercícios. Calcule e mostre a média, sabendo que as
provas têm peso 6, os trabalhos, peso 3 e a lista, peso 1.
Prof. Me. Francisco Veríssimo Luciano
22/76
Curso Programador de Sistemas
INICIO
P1, P2, T1,
T2, EX, MED
"PROVA
1: "
A
MED <-- ((P1*6) + (P2 * 6) +
(T1 *3) + (T2*3) + (EX *1))/19
"MÉDIA = ",
MED
P1
FIM
"PROVA
2: "
P2
"TRAB 1:"
T1
"TRAB 2:"
Programa Media_Ponderada
P1, P2, T1, T2, EX, MED: Real
Início
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
A
Prof. Me. Francisco Veríssimo Luciano
23/76
Curso Programador de Sistemas
Exercícios - Programas Seqüenciais
1. Fazer o algoritmo que leia dois números inteiros, calcule e exiba a subtração do primeiro
pelo segundo.
2. Fazer o algoritmo que leia dois números inteiros, calcule e exiba a subtração do segundo
pelo primeiro.
3. Fazer o algoritmo que leia dois números inteiros, calcule e exiba a multiplicação dos dois
números.
Reais
4. Fazer o algoritmo que receba duas notas de um aluno e seus respectivos pesos, calcule
e exiba a média ponderada dessas notas.
MP = (N1 * P1 + N2 * P2) / (P1 + P2)
5. Fazer o algoritmo que leia o valor de um depósito e o valor da taxa de juros. Calcule e
exiba o valor do rendimento e o valor total (depósito + rendimento).
6. Fazer o algoritmo que leia um número inteiro, calcule e exiba:
a)
a raiz quadrada desse número; b) esse número elevado ao quadrado.
7. Fazer o algoritmo que leia o valor do salário de um funcionário e o valor do salário
mínimo. Calcule e exiba quantos salário mínimos ganha esse funcionário.
8. Fazer o algoritmo e o programa Pascal que calcule e exiba a área de um triângulo.
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 círculo.
11. Fazer o algoritmo que calcule e exiba a área de um trapézio.
12. Fazer o algoritmo que calcule e exiba a área de um retângulo.
13. Fazer o algoritmo que calcule e exiba a área de um losango.
14. Fazer o algoritmo que leia o salário de um funcionário, calcule e exiba o valor do imposto
de renda a ser pago, sabendo-se que o imposto equivale a 5% do salário.
15. Fazer o algoritmo que leia o salário de um funcionário, calcule e exiba o novo salário,
sabendo-se que este sofreu um aumento de 25%.
16. Sabe-se que o quilowatt de energia custa um quinto do salário mínimo. Fazer o algoritmo
que leia o valor do salário mínimo e a quantidade de quilowatts gasta por residência.
Calcule e exiba:
Prof. Me. Francisco Veríssimo Luciano
24/76
Curso Programador de Sistemas
a)
b)
c)
valor, em reais, de cada quilowatt;
valor, em reais, a ser pago por essa residência;
novo valor a ser pago por essa residência, 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,
após um período de chuvas;
b)
a quantidade total em mililitros se ocorrer uma redução de 40% na sua capacidade,
após um período de seca.
19. Construa o algoritmo que leia dois nºs inteiros, calcule a soma e mostre o resultado.
20. Construa o algoritmo que leia três nºs inteiros, calcule a soma e mostre o resultado.
21. Construa o algoritmo que leia dois números reais, calcule a média aritmética entre eles e
mostre o resultado.
22. Construa o algoritmo que leia três nºs reais, calcule a média aritmética entre eles e
mostre o resultado.
23. Construa o algoritmo que leia o preço unitário e a quantidade vendida de um produto.
Calcule e mostre o valor total vendido.
24. Construa o algoritmo que calcule e mostre a média aritmética entre quatro notas
bimestrais quaisquer fornecidas por um aluno.
25. Construa o algoritmo que leia uma temperatura em graus Centígrados e apresentem-na
convertida em graus Fahrenheit. A fórmula de conversão é F = (9 * C + 160) / 5. Onde F
é a temperatura em Fahrenheit e C é a temperatura em Centígrados.
26. Construa o algoritmo que leia uma temperatura em graus Fahrenheit e apresentem-na
convertida em graus Centígrados. A fórmula de conversão é C = (F – 32) * (5 / 9). Onde F
é a temperatura em Fahrenheit e C é a temperatura em Centígrados.
27. Construa o algoritmo que calcule e apresente o valor do volume de uma lata de óleo,
utilizando a fórmula: VOLUME = 3.14159 * (RAIO * RAIO) * ALTURA.
28. Construa o algoritmo e o programa Pascal que efetuem o cálculo da quantidade de litros
de combustível gastos em uma viagem, utilizando-se um automóvel que faz 12 km por
litro. Para obter o cálculo, o usuário deverá fornecer o tempo gasto na viagem e a
velocidade média durante a mesma. Desta forma, será possível obter a distância
percorrida com a fórmula DISTÂNCIA = TEMPO * VELOCIDADE. Tendo o valor da
distância, basta calcular a quantidade de litros de combustível utilizada na viagem com a
fórmula: LITROS_USADOS = DISTÂNCIA / 12. O algoritmo e o programa Pascal deverão
apresentar os valores da velocidade média, tempo gasto na viagem, a distância
percorrida e a quantidade de litros utilizada na viagem.
Bons estudos
Prof. Me. Francisco Veríssimo Luciano
25/76
Curso Programador de Sistemas
Programação
condicional ou desvios
condicionais
A partir daqui você verá algoritmos que
trabalharão com situações de desvios
condicionais, tomadas de decisões
Prof. Me. Francisco Veríssimo 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 contrário.
Verdadeiro se os dois operandos para o operador forem
diferentes.Falso em caso contrário.
Verdadeiro se o operando à esquerda do operador for menor
que o operando à direita. Falso em caso contrário.
Verdadeiro se o operando à esquerda do operador for menor
ou igual o operando à direita. Falso em caso contrário
Verdadeiro se o operando à esquerda do operador for maior
do que o operando à direita. Falso em caso contrário.
Verdadeiro se o operando à esquerda do operador for maior
ou igual que o operando à direita. Falso em caso contrário.
Estes operadores são fundamentais para que se possa comparar situações e
tomar decisões. Dessa forma, a partir da compreensão das funcionalidades desses
operadores é possível começar a utilizar um recurso muito importante em
programação: os desvios condicionais, que são um tipo de Estrutura de Controle.
Os desvios condicionais podem ser simples, compostos ou encadeados,
conforme será visto a seguir.
Desvio Condicional Simples ( se ... então )
O Desvio Condicional Simples testa uma determinada condição através do comando
SE e dos operadores relacionais. Caso a resposta à condição seja VERDADEIRA, o
programa sairá pelo (ENTÃO), executando a linha de instruções, ou bloco de instruções,
que vem logo a seguir (ao ENTÃO). Caso a resposta para a condição seja FALSA, o
programa pulará a linha de instruções, ou bloco de instruções, que pertencem ao ENTÃO e
continuará sua execução após os mesmos.
O Fluxograma (Diagrama de Blocos) pode tornar-se bem mais simplificado usandose o método de Decisão Composta ou seja, Desvio Condicional Composto. Este
procedimento será visto no próximo tópico.
Procure codificar os programas sempre utilizando a endentação (disposição das
linhas com recuos diferentes) pois esta técnica facilita a depuração de eventuais erros de
codificação e de lógica, além de facilitar a visualização e testes de mesa.
Veja a seguir um exemplo de desvio condicional simples: Leia 2 números
inteiros, determinar e exibir o maior deles.
Prof. Me. Francisco Veríssimo Luciano
27/76
Curso Programador de Sistemas
Programa MAIOR_NUM;
Var //declaração de variáveis
N1, N2 : Inteiro
Inicio
Escreva “1º número: “
Leia N1
Escreva “2º número: “
Leia N2
Se (N1 > N2) então
Escreva “O maior é o N1: “, N1
Fim_se
Se (N2 > N1) então
Escreva “O maior é o N2: “, N2
Fim_se
Se (N1 = N2) então
Escreva “Os números são iguais”
Fim_se
Fim
Prof. Me. Francisco Veríssimo Luciano
28/76
Curso Programador de Sistemas
Desvio Condicional Composto ( Se ... Então ... Senão )
O Desvio Condicional Composto testa uma determinada condição através do
comando (SE) e dos operadores relacionais.
Caso a resposta à condição proposta seja VERDADEIRO, o programa sairá pelo
(ENTÃO), executando a linha de instruções, ou bloco de instruções, que vem logo a seguir.
Caso a resposta para a condição seja FALSA, o programa sairá pelo (SENÃO) e
executará a linha de instrução, ou bloco de instruções, que vem logo a seguir (ao SENÃO).
Após ter executado as instruções do ENTÃO ou do SENÃO, o programa continuará
sua execução na linha seguinte aos mesmos.
Programa MAIOR_NUM;
Var //declaração de variáveis
N1, N2 : Inteiro
Inicio
Escreva “1º número: “
Leia N1
Escreva “2º número: “
Leia N2
Se (N1 > N2) então
Escreva “O maior é o N1: “, N1
Senão
Escreva “N2 é maior ou igual a N1: “, N2
Fim_se
Fim
Prof. Me. Francisco Veríssimo Luciano
29/76
Curso Programador de Sistemas
Outro exemplo: faça o algoritmo para Ler 2 números inteiros, efetuar e exibir a SOMA dos
mesmos, obedecendo aos critérios:
a) se a SOMA for maior ou igual a 10, então ao valor da SOMA será adicionado 5;
b) caso contrário, do valor da SOMA será subtraído o valor 7.
Proposta: Faça o portugol para o exercício
Prof. Me. Francisco Veríssimo Luciano
30/76
Curso Programador de Sistemas
Desvio Condicional Encadeado
Existem situações em que necessitamos fazer teste de uma condição dentro de outra,
isto é, se uma determinada condição for satisfeita então será feito uma segundo teste, um
terceiro, etc... Nesses casos utilizamos o Desvio Condicional Encadeado (ou SE’s
encadeados, ou Ninho de SE’s).
No primeiro modelo, se a condição1 for satisfeita, será executada a linha depois do
primeiro ENTÃO e o programa continuará. Senão, será testada uma segunda condição,
depois do primeiro SENÃO. Se a segunda condição for satisfeita, será executada a linha
depois do segundo ENTÃO e o programa continuará. Se a segunda condição também não
for satisfeita, será executada a linha depois do segundo SENÃO e o programa continuará.
Se (condição1) Então
<instruções para condição1 verdadeira>
Senão
Se (condição2) Então
<instruções para condição1 falsa e condição2 verdadeira>
Senão
<instruções para condições 1 e 2 falsas>;
Fim_se
Fim_Se
No segundo modelo, se a condição1 for satisfeita será testada uma segunda
condição, depois do primeiro ENTÃO. Se a segunda condição também for satisfeita, será
executada a linha depois do segundo ENTÃO e o programa continuará. Se a primeira
condição for satisfeita e a segunda não, o programa executará a linha depois do primeiro
SENÃO e continuará. Se a primeira condição não for satisfeita o programa executará a linha
depois do segundo SENÃO e continuará, ou seja, não verificará a segunda condição (vide
modelo abaixo).
Se (condição1) Então
Se (condição2) Então
<instruções para condições 1 e 2 verdadeiras>
Senão
<instruções para condição1 verdadeira e condição2 falsa>
Fim_se
Senão
Observações:
para condição1
falsa>
 A <instruções
utilização de blocos
de instruções
é feita como explicado anteriormente;
Fim_se
Neste caso a condição2 nem será analisada.
Prof. Me. Francisco Veríssimo Luciano
31/76
Curso Programador de Sistemas

Em uma série de comandos SE aninhados, a cláusula SENÃO está ligada ao SE
mais próximo no aninhamento. Podemos utilizar vários SE aninhados, combinando os
formatos descritos.
Veja o exemplo a seguir:

Prof. Me. Francisco Veríssimo Luciano
32/76
Curso Programador de Sistemas
Programa MAIOR_NUM;
Var //declaração de variáveis
N1, N2 : Inteiro
Inicio
Escreva “1º número: “
Leia N1
Escreva “2º número: “
Leia N2
Se (N1 > N2) então
Escreva “O maior é o N1: “, N1
Senão
Se (N1 = N2) então
Escreva “Os números são iguais“
Senão
Escreva “O maior é o N2: “, N2
Fim_se
Fim_se
Fim
Outro exemplo: ler 2 números inteiros e mostrá-los em
ordem crescente. Se os números lidos forem iguais,
mostrar uma mensagem “OS NÚMEROS SÃO
IGUAIS”.
Prof. Me. Francisco Veríssimo Luciano
33/76
Curso Programador de Sistemas
Inicio
Leia
A,B
F
F
B , “ “, A
A<B
A=B
V
‘ Os
números
são Iguais
V
A , “ “, B
A , “ “, B
Fim
Program ORDENA
Var
A, B: Inteiro
Inicio
Leia A, B
Se (A = B) Então
Escreva “Os números são iguais: “
Escreva A, “ “, B
Senão
Se (A < B) Então
Escreva A, “ “, B
Senão
Escreva B, “ “, A
Fim_se
Fim_se
Fim.
Prof. Me. Francisco Veríssimo Luciano
34/76
Curso Programador de Sistemas
Inicio
Leia
A,B
F
F
A>B
A=B
V
V
‘ Os
números
são
XB
BA
AX
A , “ “,
B
Fim
Prof. Me. Francisco Veríssimo Luciano
35/76
Curso Programador de Sistemas
Programa ORDENA2;
Var
A, B, X: Inteiro
Início
Leia A
Leia B
Se (A = B) Então
Escreva “Os números são iguais: “
Senão
Se (A > B) Então
XB
BA
AX
Fim_se
Fim_se
Escreva A , “ “, B
Fim.
Foi empregada acima outra forma de ordenação: método de
substituição de valores. Precisamos de uma variável auxiliar
(geralmente X ou AUX), que armazena temporariamente os
valores trocados, para o sucesso da ordenação
Teste de Mesa: teste do programa
O Teste de Mesa consiste em adotarmos valores fictícios para as variáveis do programa, como se
tivessem sido digitadas, verificando passo a passo o funcionamento do mesmo. Devemos analisar
todas as situações possíveis, para eliminarmos eventuais erros de lógica.
Se adotarmos os valores para o último programa codificado: A = 15 e B = 7
1. Os números não são iguais, portanto iremos testar se A > B;
2. A é maior que B, então:
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 Veríssimo Luciano
36/76
Curso Programador de Sistemas
3. Assim, logo após a ordenação, os valores serão: A = 7 e B = 15
4. Os valores são exibidos em ordem crescente.
Notas:
a) Quando A for menor que B, os valores serão apresentados de acordo com a sua ordem natural
de entrada, pois A não será > que B.
b) Quando A e B forem iguais, será exibida a mensagem “Os números são iguais”.
Operadores Lógicos (E, OU e NÃO)
Operador E
Faz com que somente seja executada uma determinada operação se todas as
condições mencionadas forem simultaneamente verdadeiras.
Ler um número inteiro e informar se o mesmo está entre 20 e 90 ou não.
Inicio
Leia
NUM
F
NUM >= 20
E
V
NUM <= 90
‘ O número
está fora da
faixa de 20 a
90 ‘
‘ O número
está na faixa
de 20 a 90 ‘
Fim
Prof. Me. Francisco Veríssimo Luciano
37/76
Curso Programador de Sistemas
Programa TESTA_LOGICA_E
Var
NUM : Inteiro
Inicio
Leia NUM
Se (NUM >= 20 .E. NUM <= 90) Então
Escreva “O número está na faixa de 20 a 90”
Senão
Escreva “O número está fora da faixa de 20 a 90”
Fim_se
Fim.
Operador OU
Utilizado quando pelo menos um dos relacionamentos lógicos de uma condição necessita
ser verdadeiro.
Ex.: Solicitar a digitação do sexo de uma pessoa e informar se o mesmo existe ou não.
Inicio
Leia
INF
F
INF = ‘ M ‘
OU
INF = ‘ F ‘
‘Sexo inválido
‘
V
‘Sexo válido‘
Fim
Prof. Me. Francisco Veríssimo Luciano
38/76
Curso Programador de Sistemas
Program TESTA_LOGICA_OU
Var
INF : caractere
Inicio
Leia INF
Se (INF = ‘M’ .OU. INF = ‘F’ ) Então
Escreva “Sexo válido”
Senão
Escreva “Sexo inválido”
Fim_se
Fim.
Operador NÃO
Utilizado quando se necessita estabelecer que uma determinada condição deve ser
não verdadeira ou deve ser não falsa. Inverte o estado lógico de uma condição.
Solicitar a digitação da média de um estudante e verificar: se a média não for maior que 5
informar que o mesmo deverá fazer exame, senão informar que está aprovado.
Prof. Me. Francisco Veríssimo Luciano
39/76
Curso Programador de Sistemas
Programa TESTA_LOGICA_NÃO
Var
M : Real
Inicio
Leia M
Se NÃO(M > 5) Então
Escreva “Exame”
Senão
Escreva “Aprovado”
Fim_se
Fim.
Prof. Me. Francisco Veríssimo Luciano
40/76
Curso Programador de Sistemas
Exercícios - Programas Condicionais
1. Fazer o algoritmo que leia dois números inteiros distintos e mostrem o maior deles.
2. Fazer o algoritmo que leia dois números inteiros distintos e mostrem o menor deles.
3. Fazer o algoritmo que leia dois números inteiros e mostrem o maior deles. Se os
números lidos forem iguais, deverão mostrar a mensagem: “Os números digitados são
iguais”.
4. Fazer o algoritmo que leia dois números inteiros e mostrem o menor deles. Se os
números lidos forem iguais, deverão mostrar a mensagem: “Os números digitados são
iguais".
5. Fazer o algoritmo que leia os quocientes de uma equação do 1° grau, calculem e
mostrem a sua raiz. Obs: equação do 1° grau  ax + b (a  0).
6. Fazer o algoritmo que leia os quocientes de uma equação do 2° grau, calculem e
mostrem as suas raízes. Obs: equação do 2° grau  ax 2 + bx + c (a  0). Se o Delta for
menor que zero deverão informar que não existem raízes reais.
7. Fazer o algoritmo que leia três valores. Verificar se eles podem ser lados de um triângulo
(um lado não pode ser maior que a soma dos outros dois). Em caso afirmativo, informar
qual o tipo de triângulo formado escaleno (quando possui todos os lados diferentes),
eqüilátero (todos os lados iguais) ou isósceles (dois lados iguais e um diferente)]. Caso
não formem um triângulo, informar com a mensagem “ Não formam um triângulo”.
8. Fazer o algoritmo que leia as duas notas de um aluno e calculem a média aritmética. Se
a média for maior ou igual a 7,0 o aluno está aprovado. Se a média 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 média e a situação do aluno após os cálculos.
9. Fazer o algoritmo e o programa Pascal que efetuem o cálculo do reajuste de salário de
um funcionário. Considere que o funcionário deverá receber um reajuste de 15% caso o
seu salário seja menor que 500,00. Se o salário for maior ou igual a 500,00 mas menor
ou igual a 1000,00, o reajuste será de 10%. Caso o salário seja maior que 1000,00, o
reajuste será de 5%. Informar no final o novo salário.
10. Fazer o algoritmo que leia três números inteiros distintos e exibam o menor deles.
11. Fazer o algoritmo que leia três números reais distintos e exibam-nos em ordem
crescente.
12. Fazer o algoritmo que leia três números inteiros distintos e exibam o maior deles.
13. Fazer o algoritmo que leia três números inteiros distintos e exibam-nos em ordem
decrescente.
14. Fazer o algoritmo que leia quatro notas de um aluno, calculem e exibam a média
aritmética das notas e a mensagem “aprovado”, para média superior ou igual a 7,0, ou a
mensagem “reprovado”, para média inferior a 7,0.
15. Fazer o algoritmo que leia a idade de uma pessoa e exibam uma mensagem de
maioridade ou não.
16. Fazer o algoritmo que leia dois números inteiros distintos e exibam o menor deles.
Prof. Me. Francisco Veríssimo Luciano
41/76
Curso Programador de Sistemas
17. Fazer o algoritmo que leia três notas de um aluno. Calculem e exibam a média aritmética
entre essas três notas e uma das mensagens da tabela abaixo:
Média
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 média final (média ponderada)
e o conceito final desse estudante. Os conceitos seguem a tabela abaixo:
Média 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 critério a
seguir:
Idade
0 a 2 anos
3 a 11 anos
12 a 19 anos
20 a 60 anos
acima de 60 anos
Classificação
Recém-nascido
Criança
Adolescente
Adulto
Idoso
20. Fazer o algoritmo que leia o código correspondente ao cargo de um funcionário e
exibam o seu cargo e o percentual de aumento ao qual este funcionário tem direito,
segundo a tabela abaixo:
Código
1
2
3
4
5
Cargo
Escriturário
Secretária
Caixa
Gerente
Diretor
Percentual
50%
35%
20%
10%
5%
21. Uma companhia de seguros tem três categorias de seguros baseadas na idade e
ocupação do segurado. Somente pessoas com pelo menos 18 anos e não mais de 70
anos podem adquirir apólices de seguros. Quanto às classes de ocupações, foram
Prof. Me. Francisco Veríssimo Luciano
42/76
Curso Programador de Sistemas
definidos três grupos de risco. A tabela a seguir fornece as categorias, em função 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
médio
8
5
2
alto
9
6
3
Fazer o algoritmo que leia a idade e o grupo de risco (b – baixo, m – médio ou a – alto) e
determinem e exibam o número 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 número 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 gratificação de Natal aos seus funcionários, baseada no
número de horas-extras e no número de horas que o funcionário faltou ao trabalho. O
valor do prêmio é obtido consultando-se a tabela a seguir, em que:
H = (número de horas-extras) – (2/3 * (números de horas-faltas))
H (minutos)
Prêmio ($)
> 2400
500
400
1800  2400
300
1200  1800
200
600  1200
<= 600
100
inclusive  exclusive
Fazer o algoritmo que leia o número de horas-extras e o número de horas-faltas de um
funcionário, em minutos. Em função desses valores, deverão exibir o número de horasextras e o número de horas-faltas, em horas, e o valor do prêmio.
Prof. Me. Francisco Veríssimo Luciano
43/76
Curso Programador de Sistemas
REVISÃO
Vamos fazer agora uma revisão do conceito
que acabamos de ver. O assunto estruturas de
Controle, chamado de Condicional ou Decisão
é muito importante em programação. Portanto,
vamos relembrar algumas passagens, para
tudo ficar bem claro.
Prof. Me. Francisco Veríssimo Luciano
44/76
Curso Programador de Sistemas
Conforme foi dito anteriormente, uma estrutura de seleção permite a escolha de um conjunto de
ações e/ou estruturas que serão executadas a partir do resultado de uma condição (simples,
composta ou encadeada), representada por uma expressão lógica. Vale a pena explorar um
pouco mais um tipo em particular, de estruturas de decisão.
Como também foi citado anteriormente, é Exemplo de aplicação de operadores relacionais
necessário o uso dos Operadores relacionais, – tabela verdade: Tendo duas variáveis A = 5 e B
para serem estabelecidas comparações e/ou = 3, os resultados das expressões seriam:
testes lógicos:
Além dos operadores relacionais, ao lado, é
possível combinar as decisões com outros
operadores: os lógicos.
Exemplo de aplicação de operadores lógicos –
tabela verdade mostrada abaixo
Exemplo de aplicação de operadores lógicos – tabela verdade:
Prof. Me. Francisco Veríssimo Luciano
45/76
Curso Programador de Sistemas
Estrutura de decisão simples:
Faça um algoritmo que leia dois valores numéricos, efetue a adição e apresente o seu resultado,
somente se o valor somado for maior que 10.
INÍCIO
Programa Maior_que_10
Var
A: inteiro
B: inteiro
X: inteiro
Início
Escreva “Digite o 1º valor: “
Leia A
Escreva “Digite o 2º valor: “
Leia B
XA+B
Se (X > 10) então
Escreva X
Fim_se
Fim.
A, B, C
"Digite o 1º
valor: "
A
"Digite o 2º
valor: "
B
X
A +B
N
S
X > 10
X
FIM
Prof. Me. Francisco Veríssimo Luciano
46/76
Curso Programador de Sistemas
Estrutura de decisão composta:
Se (condição) então
Instruções para condição seja verdadeira
Senão
Instruções para a condição seja falsa
Fim_se
Se (sexo = ‘M’) então
Escreva “Masculino”
Senão
Escreva “Feminino”
Fim_se
Exercício:
Faça um algoritmo que leia dois valores numéricos e efetue a adição. Se a soma for maior ou igual a
10, uma variável de resultado R receberá X + 5, caso contrário a variável R receberá X – 5.
INÍCIO
A, B, C
"Digite o 1º
valor: "
A
"Digite o 2º
valor: "
B
X
N
R
A+B
X >= 10
X- 5
S
R
X+5
Programa Maior_igual_10
Var
A, B, X, R: inteiro
Início
Escreva “Digite o 1º valor: “
Leia A
Escreva “Digite o 2º valor: “
Leia B
XA+B
Se (X >= 10) então
RX+5
Senão
RX-5
Fim_se
Escreva “Resultado = “, R
Fim.
"Resultado
= ", R
Prof. Me. Francisco Veríssimo Luciano
47/76
Curso Programador de Sistemas
Outro exercício: Verificar uma variável “Sexo” digitada
Estrutura de decisão encadeada (Se’s aninhados):
Nestas estruturas de decisão tem-se uma ou mais decisões que estão subordinadas a uma primeira.
Dessa forma, no exemplo abaixo, a segunda condição será testada apenas se a primeira condição
for verdadeira.
Prof. Me. Francisco Veríssimo Luciano
48/76
Curso Programador de Sistemas
Se (1ª condição) então
Instruções para 1ª condição verdadeira
Senão
Se (2ª condição) então
Instruções para a 2ª condição verdadeira
Senão
Instruções para a 2ª condição falsa
Fim_se
Fim_se
Veja exemplo:
Se (sexo = ‘M’) então
Escreva “Masculino”
Senão
Se (sexo = ‘F’) então
Escreva “Feminino”
Senão
Escreva “Letra Inválida”
Fim_se
Fim_se
Exercício:
Receber duas notas e calcular a média aritmética e mostrar o resultado:
Prof. Me. Francisco Veríssimo Luciano
49/76
Curso Programador de Sistemas
INÍCIO
N1, N2, MED
"Digite 1ª
nota: "
N1
"Digite 2ª
nota: "
N2
MED
(N1+N2)/2
N
S
MED >= 7
N
S
MED< 4
"Exame"
"Aprovado"
"Reprovado"
Programa Media_aritmetica
Var
N1, N2, MED: real
Início
Escreva “Digite a 1ª nota: “
Leia N1
Escreva “Digite a 21ª nota: “
Leia N2
MED  (N1+ N2)/2
Se (MED >= 7) então
Escreva “Aprovado“
Senão
Se (MED < 4) então
Escreva “Reprovado“
Senão
Escreva “Exame“
Fim_se
Fim_se
Fim.
FIM
Ex.: Fazer um algoritmo que ao receber o salário atual de um funcionário, calcule o valor do
novo salário reajustado de acordo com a tabela abaixo:
Prof. Me. Francisco Veríssimo Luciano
50/76
Curso Programador de Sistemas
INÍCIO
SAL,
NOVO_SAL
"Salario
Atual: "
SAL
N
N
NOVO_SAL
SAL * 1.05
SAL < =
1000
SAL < =
500
S
S
NOVO_SAL
SAL * 1.15
NOVO_SAL
SAL * 1.10
Programa Novo_Salario
Var
SAL, NOVO_SAL: real
Início
Escreva “Salário Atual: “
Leia SAL
Se (SAL < = 500) então
NOVO_SAL  SAL * 1.15
Senão
Se (SAL < = 1000) então
NOVO_SAL  SAL * 1.10
Senão
NOVO_SAL  SAL * 1.05
Fim_se
Fim_se
Escreva
“Novo
Salário:
“,
NOVO_SAL
Fim.
"Novo
Salario: ",
NOVO_SAL
FIM
Prof. Me. Francisco Veríssimo Luciano
51/76
Curso Programador de Sistemas
A seguir, um algoritmo que mostra a solução de um problema de
verificação de SEXO com estrutura encadeada, com 3 possibilidades:
Prof. Me. Francisco Veríssimo Luciano
52/76
Curso Programador de Sistemas
Exercícios:
1) O critério de avaliação semestral de determinada Faculdade segue a regra:
P1 – primeira avaliação do semestre. P2 – segunda avaliação do semestre.
Ativ – nota atribuída pelas atividades realizadas no semestre.
Média
=
P1 x 4 + P2 x 4 + Ativ x 2
10
Faça um algoritmo que leia as notas das provas (P1 e P2) e da atividade (Ativ),
calcule e mostre a média, seguindo o cálculo acima e o resultado de acordo com a
tabela:
Prof. Me. Francisco Veríssimo Luciano
53/76
Curso Programador de Sistemas
2) Uma Universidade tem problemas com arredondamento das médias dos alunos, pois
cada professor estipula um critério 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 serão arredondas para CIMA. Ex: 4,6  5,0
Notas que abaixo ou igual a 0,5 de resto serão arredondas para BAIXO. Ex: 4,5  4,0
3) Faça um algoritmo que leia 4 números e imprima: O maior número; O menor número; O
número do meio.
4) Um pediatra elaborou uma lista com pesos prováveis para meninos e meninas entre 1 e
3 anos e, freqüentemente, precisa consultar a lista. Escreva um algoritmo que, dada a
idade de uma criança de 1 a 3 anos, mostre na tela os pesos prováveis 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 Prováveis: Meninos
Pesos Prováveis: 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 começará a
pagá-los por massa. Para isso comprou uma balança e um densímetro e necessitará de
um programa para cálculo. Na balança serão jogados e misturados os conteúdos de
todos os tarros de leite de um determinado produtor. A balança informará a massa e o
densímetro a densidade. O programa receberá, via teclado, esses dois dados mais o
preço por kg de leite vigente naquele dia. Após 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 Veríssimo 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 exercício possibilitará a utilização dos novos recursos aprendidos, através dessa
aplicação pedagógica: faça um algoritmo que leia três valores numéricos, verifique se eles
formam um triângulo. Se sim, mostre o tipo do triângulo. Condições para existência de um
triângulo:
1)
2)
3)
4)
5)
A>0eB>0eC>0
A<B+CeB<A+CeC<A+B
A = B e A = C  Triângulo Equilátero
A = B ou A = C ou B = C  Triângulo Isósceles
A <> B e A <> C e B <> C  Triângulo Escaleno
Para uma reflexão...sempre Antes dos estudos...
O Bambu Chinês (Autor desconhecido)
Depois de plantada a semente do bambu, não 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 é subterrâneo, invisível a olho nu, mas uma maciça
e fibrosa estrutura de raiz que se estende vertical e horizontalmente pela terra está
sendo construída.
Então, no final do 5º ano, o bambu chinês cresce até atingir a altura de 25 metros.
O escritor Stephen Covey escreveu: "Muitas coisas na vida pessoal e profissional são
iguais ao bambu chinês. Você trabalha, investe tempo, esforço, faz tudo o que pode
para nutrir seu crescimento, e às vezes não vê nada por semanas, meses ou anos. Mas
se tiver paciência para continuar trabalhando, persistindo e nutrindo, o seu 5.º ano
chegará, e com ele virão um crescimento e mudanças que você jamais esperava..."
O bambu chinês nos ensina que a persistência e a paciência são os
caminhos para alcançarmos nossos sonhos e que é preciso muita fibra para
chegar às alturas, e ao mesmo tempo, muita humildade e flexibilidade
para se curvar ao chão.
Bons estudos
Prof. Me. Francisco Veríssimo Luciano
55/76
Curso Programador de Sistemas
Estruturas de Controle
Laços de Repetição
Prof. Me. Francisco Veríssimo Luciano
56/76
Curso Programador de Sistemas
Estruturas de Controle: estrutura de seleção (Escolha/caso)

O escolha/caso é um comando de tomada de decisão.

Pode ser comparado com o se/senão, porém o escolha/caso não aceita expressões, apenas
variáveis.

O escolha/caso testa a variável e executa a declaração cujo caso corresponda ao valor atual da
variável.

Sem dúvida alguma o mais importante dos dois é o se/senão, mas o comando escolha/caso tem
aplicações valiosas. Mais uma vez vale lembrar que devemos usar o comando certo no local certo. Isto
assegura um código limpo e de fácil entendimento.

O comando escolha/caso é próprio para se testar uma variável em relação a diversos valores préestabelecidos
Usando a estrutura de decisão (se/senão)
SEXO
N
S
SEXO = ‘M’
N
S
“Masculino”
SEXO = ‘m’
N
S
SEXO = ‘F’
N
S
“Feminino”
SEXO = ‘f’
“Sexo
Inválido”
“Masculino”
“Feminino”
Prof. Me. Francisco Veríssimo Luciano
...
Leia SEXO
Se (SEXO = ‘M’) então
Escreva “Masculino”
Senão
Se (SEXO = ‘m’) então
Escreva “Masculino”
Senão
Se (SEXO = ‘F’) então
Escreva “Feminino”
Senão
Se (SEXO = ‘f’) então
Escreva “Feminino”
Senão
Escreva “Sexo Inválido”
Fim_se
Fim_se
Fim_se
Fim_se
...
57/76
Curso Programador de Sistemas
Usando a estrutura de seleção (escolha/caso)
...
Leia SEXO
Escolha (SEXO)
Caso ‘M’: Escreva “Masculino”
Caso ‘m’: Escreva “Masculino”
Caso ‘F’: Escreva “Feminino”
Caso ‘f’: Escreva “Feminino”
Senão
Escreva “Sexo Inválido”
Fim_escolha
...
Usando a estrutura de seleção (escolha/caso)
Prof. Me. Francisco Veríssimo Luciano
58/76
Curso Programador de Sistemas
...
Leia MES
Escolha (MES)
Caso 1: Escreva “Janeiro”
Caso 2: Escreva “Fevereiro”
Caso 3: Escreva “Março”
...
Caso 12: Escreva “Dezembro”
Senão
Escreva “Mês Inválido”
Fim_escolha
...
Estruturas de Controle: Teste lógico no início do looping (Enquanto)
É uma estrutura que repete um processamento durante um certo número de vezes. Caracteriza-se
por repetir a execução do trecho de instruções subordinado a esse looping enquanto é obedecida a
condição de controle.
N
CONDIÇÃO
S
INSTRUÇÕES
EXECUTADAS
ENQUANTO A
CONDIÇÃO É
VERDADEIRA
Enquanto (<condição>) faça
<instruções executadas enquanto a condição é verdadeira>
<demais instruções e procedimentos>
Fim_enquanto
DEMAIS
INSTRUÇÕES
E PROCEDIMENTOS
Prof. Me. Francisco Veríssimo Luciano
59/76
Curso Programador de Sistemas
Ex: Faça um algoritmo que leia cinco números, multiplique-os por três e exiba-os:
Programa Numeros
Var
I, N, R: inteiro
Início
I1
Enquanto (I< = 5) faça
Leia N
RN*3
Escreva R
II+1
Fim_enquanto
Fim.
Ex: Faça um algoritmo que leia N números quaisquer, enquanto o usuário desejar,
multiplique-os por três e exiba-os:
Prof. Me. Francisco Veríssimo Luciano
60/76
Curso Programador de Sistemas
Programa Numeros2
Var
N, R: inteiro
RESP: caractere
Início
RESP  ‘S’
Enquanto (RESP = ‘S’ ou RESP = ‘s’)
faça
Leia N
RN*3
Escreva R
Escreva “Deseja Continuar?”
Leia RESP
Fim_enquanto
Fim.
Prof. Me. Francisco Veríssimo Luciano
61/76
Curso Programador de Sistemas
Ex.: Faça 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
Início
CONT  1
Enquanto (CONT < = 100) faça
Se (CONT mod 2 = 0) então
Escreva CONT, “eh par”
Fim_se
CONT  CONT + 1
Fim_enquanto
Fim.
Prof. Me. Francisco Veríssimo Luciano
62/76
Curso Programador de Sistemas
Veja dois exercícios aplicando o conceito de repetição:
1) Faça um algoritmo que calcule o
fatorial de um número 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 média
Prof. Me. Francisco Veríssimo Luciano
63/76
Curso Programador de Sistemas
Programa Fatorial_de_N
Var
FAT, CONT, N: inteiro
RESP: caractere
Início
RESP  ‘S’
Enquanto (RESP = ‘S’ ou RESP = ‘s’)
faça
FAT  1
CONT  1
Escreva “Informe o nº para calcular:
”
Leia N
Enquanto (CONT <= N) faça
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*11
3
1
1*22
3
2
2*36
3
6
----
Prof. Me. Francisco Veríssimo 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’) faça
ME  0
MA  0
MED  0
I1
Escreva “Digite o numero de alunos: “
Leia N
Faça
Escreva “Digite a”, I, “ª nota: “
Leia NT
Se (I = 1) então
ME  NT
MA  NT
Senão
Se (NT < ME) então
ME  NT
Fim_se
Se (NT > MA) então
MA  NT
Fim_se
Fim_se
MED  MED + NT
II+1
Enquanto (I <= N)
MED  MED/N
Escreva “Menor nota: “, ME
Escreva “Maior nota: “, MA
Escreva “Média.......: “, MED
Escreva “Digite S para continuar: “
Leia RESP
Fim_enquanto
Fim
Prof. Me. Francisco Veríssimo Luciano
65/76
Curso Programador de Sistemas
Desenvolva o portugol referente ao diagrama acima
Exercícios Propostos:
6)
Faça um algoritmo que calcule o resultado de S na série dada abaixo. O
usuário deve informar, via teclado, o número inteiro que representa o valor
de n:
7) Elaborar um algoritmo que calcule a média das notas dos alunos de uma
sala de aula qualquer, sendo que em primeiro lugar deverá ser solicitada a
digitação da quantidade de alunos existentes nessa sala e, posteriormente,
a digitação de todas as notas dos alunos da mesma.
Média = ( 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>
Média da sala: 5.0
Prof. Me. Francisco Veríssimo Luciano
66/76
Curso Programador de Sistemas
Estruturas de controle
Estruturas de repetição/laços de repetição (faça-enquanto)
 Idem estrutura enquanto/faça
 A diferença está no controle da repetição que ocorre no final
 As instruções serão executadas pelo menos uma vez
Faça
Instrução1
Instrução2
Enquanto (condição)
Instruçã3
INSTRUÇÃO1
INSTRUÇÃO2
do
N
{
Instrução1;
Instrução2;
} while(condição);
CONDIÇÃO
S
INSTRUÇÃO3
Observa-se que a diferença fundamental em relação à forma Enquanto/faça, está no controle das
repetições, que ocorre no final. Por conta disso, mesmo que a condição não seja satisfeita, a(s)
instrução (ões) do laço 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 Veríssimo Luciano
67/76
Curso Programador de Sistemas
Programa Fatorial_de_N
Var
FAT, CONT: inteiro
RESP: caractere
Início
RESP  ‘S’
Enquanto (RESP = ‘S’ ou RESP = ‘s’) faça
FAT  1
CONT  1
Escreva “Informe o nº para calcular: ”
Leia N
Faça
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 Veríssimo Luciano
68/76
Curso Programador de Sistemas
Exercícios Propostos:
1) Faça um algoritmo para calcular e exibir o resultado de S na série:
S = x / 1 - x / 2 + x / 3 - x / 4 + x / 5 - ..... + x / 19 - x / 20
2) Faça um algoritmo para calcular e exibir o resultado de S para os N
primeiros termos da série:
S = 1/(35+36) – 2/(36+37) + 3/(37+38) - ... + N
3) calcular o MMC entre três números.
Exemplo: MMC entre 2, 3 e 4
2,
1,
1,
1,
3,
3,
3,
1,
4
2
1
1
Prof. Me. Francisco Veríssimo Luciano
2
2
3
MMC = 12
69/76
Curso Programador de Sistemas
Relembrando: nas páginas anteriores, foram estudadas as estruturas de
controle Enquanto e Faça/enquanto nas memórias de aulas anteriores
Teste lógico no início do looping (Enquanto)
É uma estrutura que repete um processamento durante um certo número de vezes. Caracteriza-se
por repetir a execução do trecho de instruções subordinado a esse looping enquanto é obedecida a
condição de controle.
N
CONDIÇÃO
S
INSTRUÇÕES
EXECUTADAS
ENQUANTO A
CONDIÇÃO É
VERDADEIRA
Enquanto (<condição>) faça
<instruções executadas enquanto a condição é verdadeira>
<demais instruções e procedimentos>
Fim_enquanto
DEMAIS
INSTRUÇÕES
E PROCEDIMENTOS
Teste lógico no fim do looping (faça-enquanto)
 Idem estrutura enquanto/faça
 A diferença está no controle da repetição que ocorre no final
 As instruções serão executadas pelo menos uma vez
Prof. Me. Francisco Veríssimo Luciano
70/76
Curso Programador de Sistemas
Faça
Instrução1
Instrução2
Enquanto (condição)
Instruçã3
Observa-se que a diferença fundamental em relação à forma Enquanto/faça, está no controle das
repetições, que ocorre no final. Por conta disso, mesmo que a condição não seja satisfeita, a(s)
instrução (ões) do laço será (ao) executada(s) pelo menos uma vez.
Agora veremos a última estrutura de controle que é o laço PARA
 Tem a mesma finalidade das estruturas anteriores, ou seja,
processar instruções por “n” vezes de acordo com o desejo do
programador
 A variável de controle possui previamente os valores de início e
fim.
Prof. Me. Francisco Veríssimo Luciano
71/76
Curso Programador de Sistemas
...
Início
...
Para X de 1 até 10 passo 1 faça
Instrução 1
Instrução 2
Fim_para
...
Fim
Na linguagem C:
for (x=1; x<=10; x++)
{
Instrução1;
Instrução 2;
}
Onde: X
1
10
1
 variável de controle
 valor inicial da variável X
 valor final da variável X
 passo/salto/variação/incremento de X
Ex.: mostrar todos os valores de 1 a 1250:
Prof. Me. Francisco Veríssimo Luciano
72/76
Curso Programador de Sistemas
INÍCIO
VAL
VAL
1, 1250, 1
“Valor = “,
VAL
Programa Números_1_a_1250
Inicio
Var
VAL: inteiro
Para VAL de 1 até 1250 passo 1 faça
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 múltiplos de 7:
Prof. Me. Francisco Veríssimo Luciano
73/76
Curso Programador de Sistemas
INÍCIO
VAL
VAL
1, 1250, 1
S
N
VAL mod 7 = 0
VAL,
“é multiplo
de 7”
Programa Números_Multiplos_7
Var
VAL: inteiro
Inicio
Para VAL de 1 até 1250 passo 1
faça
Se (VAL mod 7 = 0) então
Escreva VAL, “é múltiplo de
7”
Fim_se
Fim_para
Fim
for (...)
if (VAL % 7 == 0)
printf(“....”);
FIM
Próximo exercício:
Calcular o fatorial de um número N
qualquer:
Prof. Me. Francisco Veríssimo Luciano
74/76
Curso Programador de Sistemas
Programa Fatorial_N
Var
RESP, N, FAT, VAL: inteiro
Inicio
RESP  1
Enquanto (RESP = 1) faça
FAT 1
Escreva “Numero para calculo: “
Leia N
Para VAL de 1 até N passo 1 faça
FAT  FAT * VAL
Fim_para
Escreva “Fatorial de “, N, “ = “, FAT
Escreva “Digite [1] para continuar: “
Leia RESP
Fim_enquanto
Fim
Exercício: Definir a seqüência
de Fibonacci para os N termos
abaixo:
1,1,2,3,5,8,13,...N
Prof. Me. Francisco Veríssimo Luciano
75/76
Curso Programador de Sistemas
Exercícios Propostos – faça-os usando o laço PARA:
1) Faça um algoritmo para calcular e exibir o resultado de S na série:
S = x / 1 - x / 2 + x / 3 - x / 4 + x / 5 - ..... + x / 19 - x / 20
2) Faça um algoritmo para calcular e exibir o resultado de S para os N
primeiros termos da série: S = 1/(35+36) – 2/(36+37)+3/(37+38) - ... + N
3) calcular o MMC entre três números. 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) Faça um algoritmo que receba um numero qualquer como base e
o enésimo expoente faça os cálculos. Veja exemplo:
Número = 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 Veríssimo Luciano
76/76

Documentos relacionados