Page 1
r.VvtiiT •
r-* ■ v» f
&*• *
■ w m i u'- i- - ^ .v . ' v ' „
• -V.vv. ,
iftíMfi
* .Vi MB» ’ p&Pr
' «*■.M *y i^ ,- g riT riv «1 ■
• . -■ H "■“■■HpBII
• '% '> • * , ' i , ,A a .â W W ç T ^ T_...>;V :;/A%- * ' •■ •
r r/*•*« l9“^
Clílt^A lvy
22£r* 3
■ N l ‘-r. /.W-
—'-*.íl. '< .
A m
'* - V . * •* • ‘*v ,..'•
- * W » É Í É Í
/&ÍJ?T L . .-<. mV • ' -Vi ^
y.gwwni 0 t* y i.i l> -> « y » » ^ V ) ^ »«y>'» « i
*VÍ ' PROGRAMAÇÃODE
?5- \
► ■
fl COMPUTADDRES? - i Teoria - Exercícios Resolvidos - Exercícios Propostos - Tarefas
i
iV.V£**3í * • • • ■ . ~v •
-%y* *
cÍV ^ A j • íW fK'
IISPS f/ X - ‘ 'W Ç K f "> :f'ívA v* * • ,\v J
Vvi'„ * * # * ■
í 9 r.
-i > •
■■
* 8S8RNfc• •
” v £ ‘C'7’1 -. ’•*■'**-'
áftfs .rW
Page 3
PROGRAMAÇÃO DE COMPUTADORES
A lexandre Daliberto Frugolï
Christiane Mazur Laurice lla
M irtes V itória Mariano
1
Page 4
CAPÍTULO Página
CAPÍTULO 1. VARIÁVEIS, ATRIBUIÇÕES, OPERAÇÕES E5
FUNÇÕES.
1.1. Computador. 5
1.2. Variáveis - conceitos. 7
1.3. Tipos de variáveis. 8
1.4. Variáveis inteiras e reais - representação. 10
1.5. Declaração de variáveis. 10
1.6. Comando de atribuição. 11
1.7. Constantes. 13
1.8. Operadores algébricos. 13
1.9. Principais funções matemáticas. 15
1.10. Exemplos de sintaxe de expressões. 15
Tarefa 1. Variáveis, atribuições, operações e funções. 19
CAPÍTULO 2. ALGORITMOS SEQUENCIAIS. 23
2.1. Algoritmos sequenciais. 23
Tarefa 2. Algoritmos sequenciais. 39
CAPÍTULO 3. DESVIOS CONDICIONAIS. 65
3.1. Desvios condicionais (comandos de seleção). 65
3.2. Condição. 65
3.3. Decisão. 66
2
Page 5
3.4. Desvio condicional simples. ©7
3.5. Desvio condicional composto. 69
Tarefa 3. Desvios condicionais. 79
CAPÍTULO 4. OPERADORES LÓGICOS. 95
4.1. Operadores lógicos. 95
Tarefa 4. Operadores lógicos. 107
CAPÍTULO 5. ESTRUTURAS DE REPETIÇÃO. 113
5.1. Loops ou laços de repetição. 113
5.2. Variáveis - contadores e acumuladores. 113
5.2.1. Contadores. 114
5.2.2. Acumuladores. 115
5.3. Estruturas de repetição. 116
5.3.1. Estruturas de repetição condicionais. 116
5.3.1 .1 . "ENQUANTO...FAÇA". 117
5.3 .1 .2 . "REPITA ...ATÉ". 124
5.3.2. Estrutura de repetição incondicional. 131
5.3.2. "PARA". 132
Tarefa 5. Estruturas de repetição. 135
3
Page 7
CAPÍTULO 1. VARIÁVEIS, ATRIBUIÇÕES, OPERAÇÕES E FUNÇÕES.
1.1. Computador.
É comum ouvirmos que algumas das vantagens que o uso do
computador nos proporciona são as seguintes:
• elevada velocidade de processamento de dados;
• grande capacidade de armazenamento de dados e informações;
• execução de longas sequências de instruções e
• realização de tarefas repetitivas com rapidez e precisão.
Essas características estão relacionadas ao esquema simplificado da
figura 1.1.
Figura 1.1. Esquema simplificado (computador).
5
Page 8
0 esquema de funcionamento geral do computador encontra-se na
figura 1.2 .
UNIDADESDE
ENTRADA
Figura 1.2 . Esquema geral (computador).
As unidades de entrada correspondem às entradas de dados no
computador por meio de teclado, disco, mouse etc.
As unidades de saída correspondem aos meios pelos quais os
resultados e as informações processadas "saem", ou seja, disco, vídeo,
impressora etc.
A unidade central de processamento (CPU ou UCP) é responsável por
executar as operações e por controlar os componentes do sistema. Nela, a
unidade de controle informa aos outros componentes o que e quando
fazer. Os registradores armazenam os dados temporariamente, atuando
como memória de trabalho para a unidade aritmética e lógica.
CPU
UNIDADE DE CONTROLE
REGISTRADORES
UNIDADE LÓGICA E ARITMÉTICA
UNIDADESDE
SAÍDA
6
Page 9
1.2. Variáveis - conceitos.
Quando, na Matemática, estudamos funções, usamos o conceito e
variável.Vejamos um exemplo: na função y=2x+3, x é a variável
independente e y é variável dependente. Nesse caso, podemos substituir x
por qualquer número, mas, dado que x assumiu algum valor, o resultado
em y está totalmente condicionado (determinado) ao valor específico de x.
Se pensarmos em x=5, obrigatoriamente teremos y=13, pois 2.5+3=13.
No caso das linguagens de programação, o conceito de variável
remete ao descrito acima, mas com algumas particularidades.
Em geral, pensa-se na variável como um endereço na memória da
máquina (computador). A variável é representada por um símbolo
(identificador) e seu conteúdo é atualizado sempre que necessário. Os
símbolos que representam as variáveis são escolhidos pelo programador.
As variáveis permitem a realização de cálculos e "guardam" os
resultados obtidos. Podemos imaginar a variável como uma caixa com
tampa que pode conter algum dado. Se precisarmos conhecer esse dado,
abrimos a tampa da caixa. Para que possamos fazer identificações, a caixa
precisa ter uma etiqueta com nome, ou seja, um identificador.
A variável é definida de acordo com o conjunto de valores que ela
pode receber. Assim, as variáveis são classificadas nos seguintes tipos:
7
Page 10
inteiro, real, caracter e lógico (verdadeiro ou falso). Neste trabalho,
abordaremos, predominantemente, os tipos inteiro e real.
1.3. Tipos de variáveis.
Vimos que as variáveis podem guardar números (inteiros ou reais),
nomes, textos etc. Embora, nosso foco esteja nas variáveis "numéricas",
faremos, a seguir, uma breve apresentação dos tipos mais usados de
variáveis.
• Variável do tipo booleana (boolean).É utilizada para guardar e
manipular informações do tipoverdadeiro ou falso (trueor false). Isso é
um bit de informação.
• Variável do tipo inteiro (integer).Usada para guardar números
inteiros. É bastante utilizada em situações de contagens como, por
exemplo, número de batimentos cardíacos por minuto, número de
elementos de amostra, número de pessoas com determinada faixa de
renda, número de peças defeituosas produzidas mensalmente por uma
indústria etc.
8
Page 11
Variável do tipo real (real). Usada para guardar números reais com
finitas casas depois da vírgula.É utilizada em situações que necessitam de
números fracionárioscomo, por exemplo, peso de uma viga, altura de uma
pessoa, média das notas de uma turma etc.
• Variáveis dos tipos char e string. Guarda textos. O tipo char é
usado para caracteres simples e o stringpode guardar até 255
caracteres.
No quadro 1.1, temos um resumo dos quatro tipos básicos de
variáveis (inteiro, real, caracter e lógico).
Quadro 1.1. Tipos de variáveis.
T IP O S DE V A R IÁ V EIS
INTEIRO:qualquer número inteiro, negativo,
Exemplos: 1; 137; -15; 0.
nulo ou positivo.
REAL: qualquer número real, negativo,
Exemplos: 1; 0; -4; 12,75; 3,1413; -0,345.
nulo ou positivo.
CARACTER: qualquer conjunto de caracteres alfanuméricos.
Exemplos: "Casa 23"; "Maria"; "Número".
LÓGICO: falso ou verdadeiro.
9
Page 12
1.4. Variáveis inteiras e reais - representação.
As variáveis inteiras e reais podem ser representadas por letras ou
por combinações de letras e algarismos, mas não podem ser iniciadas por
algarismos.
Vejamos um exemplo de representação de variáveis: vamos supor
que as variáveis envolvidas em determinado problema sejam duas notas
recebidas por um aluno e a média dessas notas.Para certa pessoa, as duas
notas podem ser designadas por X e Y e a média, por Z.Outra pessoa
pode escolher os símbolos NI e N2 para a representação das duas notas e
o símbolo ME para a representação da média.
1.5. Declaração de variáveis.
Na programação de computadores com linguagens de alto nível,
antes de procedermos às instruções, devemos fazer a declaração (prévia)
de todas as variáveis que serão usadas. A declaração das variáveis é um
ato de "reserva" de uma região da memória que será variável durante a
execução de um programa. Também devemos indicar o tipo de dado que
a variável receberá.
Vamos declarar variáveis com a instrução VAR, seguida pelas
variáveis com seus respectivos tipos. Isso deve ser feito antes do início do
10
Page 13
programa, mas depois da declaração do nome do programa.Devemos
ressaltar que a instrução VAR não atribui um valor á variável, apenas
reserva espaço para ela na memória.
No próximo capítulo, discutiremos conceitos como algoritmos e
programação em Português Estruturado (Portugol) e faremos exemplos
que demandam a declaração de variáveis.
Se precisarmos definir mais variáveis do mesmo tipo, podemos fazer
isso com várias instruções separadas ou em apenas uma linha. Em ambos
os casos, não devemos escrever VAR novamente.
Destacamos que há linguagens de programação para as quais é
possível atribuir um valor a uma variável no momento da declaração.
1 .6 . Comando de atribuição .
O comando de atribuição (ou simplesmente a atribuição) indica o
que a variável vai receber como conteúdo em determinado momento. Ou
seja, atribuímos um valor inicial a uma variável e esse valor pode ser
alterado durante a execução do programa. A ideia de atribuição está
relacionada com "dar" um novo valor a uma variável.
O comando de atribuição pode ser escrito pelos símbolos mostrados
no quadro 1.2 .
l l
Page 14
Quadro 1.2. Símbolos - comando de atribuição.
Neste trabalho, optamos por utilizar como símbolo (operador)
de atribuição.No lado esquerdo do operador colocamos a variável e, no
lado direito, colocamos o novo valor ou a expressão que produzirá o novo
valor.
Vejamos dois exemplos:
• A := 7 (a variável A "recebe" a constante 7)
• e := 8*s (a variável e "recebe" a expressão 8*s)
Aproveitamos para mostrar, por meio de um exemplo, a diferença
entre uma igualdade "matemática" e uma atribuição via seu comando.
Matematicamente, se escrevermos x=2 (lido como x igual a 2) ou
2=x (lido como 2 igual a x), estamos fazendo igualdade idênticas.No
entanto, do ponto de vista da atribuição, somente há sentido em
escrevermos x :=2 (lido como x recebe 2), pois, sendo o número 2 uma
constante, não há sentido em escrevermos 2 :=x (lido como 2 recebe x).
Vejamos outro exemplo: considere a equação matemática: t = t + 2.
Essa equação não tem solução matemática para t, pois não há um número
real que seja igual a ele mesmo somado com 2 .
12
Page 15
Em programas computacionais, lemos a equação anterior como "o
novo valor de t é o valor antigo de t somado com 2", ou seja, t "recebe" t
mais 2 .
Em outras palavras, inicialmente, o valor atribuído à variável t é
carregado na memória, depois, adiciona-se 2 a esse valor, e, finalmente, o
novo resultado é recolocado na memória (em t).
1.7. Constantes.
Diferentemente das variáveis em geral, as constantes não podem
sofrer uma atribuição no decorrer de um programa.
Uma vez recebido um valor, ele não pode ser alterado.
A declaração das constantes é feita de modo parecido aos das
variáveis, mas com a palavra CONST em lugar da palavra VAR.
1.8. Operadores algébricos.
Para fazermos programas que envolvem cálculos, são necessários os
operadores algébricos listados no quadro 1.3.
13
Page 16
Quadro 1.3. Operadores algébricos.
ADIÇÃO +
SUBTRAÇÃO -
MULTIPLICAÇÃO *
DIVISÃO /
POTENCIAÇÃO A
RAIZ QUADRADA SQR
"QUOCIENTE INTEIRO" DA DIVISÃO DIV
"RESTO INTEIRO" DA DIVISÃO MOD
A hierarquia da execução das operações algébricas está dada abaixo.
• Primeiro nível de hierarquia: exponenciação.
• Segundo nível de hierarquia: multiplicação e divisão.
• Terceiro nível de hierarquia: adição e subtração.
Os cálculos são realizados segundo os níveis de hierarquia listados,
mas, com o uso dos parênteses, podemos estabelecer uma "nova"
prioridade de cálculo.
Devemos atentar para o fato de que o operador de divisão (/) e o
operador DIV não são idênticos. Vejamos, a seguir, um exemplo dessa
diferença.
A divisão de 11 por 2 resulta em 5,5, pois 11/2 é 5,5. Já 11 DIV 2 é
5 e não 5,5, pois o operador DIV retorna o quociente inteiro da divisão.
14
Page 17
Como o operador MOD retorna o resto inteiro da divisão, 11 MOD
2 é 1, pois 11 dividido por 2 é 5 e resta 1 (11 = 2x5 +1).
Outro exemplo: 48 DIV 5 é 9 e 48 MOD 5 é 3, pois 48 dividido por 5
resulta em 9, restando 3 (48 = 5x9 + 3).
1.9. Principais funções matemáticas.
As principaisfunções matemáticas e suas respectivas sintaxes estão
listadas no quadro 1.4.
Quadro 1.4. Principais funções matemáticas.
Cosseno COS(argumento)
Seno SEN(argumento)
Tangente TAN(argumento)
Exponencial de base e EXP(argumento)
Logaritmo neperiano LN(argumento)
Módulo ABS(argumento)
1.10. Exemplos de sintaxe de expressões.
Vamos fazer, no exemplo 1.1, algumas aplicações de sintaxe de
expressões numéricas utilizando o comando de atribuição e as funções e
15
Page 18
os operadores já descritos. Devemos lembrar que chaves e colchetes têm
de ser ''transformados" em parênteses.
Exemplo 1.1. Escreva as expressões abaixo utilizando a sintaxe, o
comando de atribuição, as funções e os operadores conhecidos.
a)y = 7 83í — - 4 |-5 * +1
b)z = 7
5 - V 2-5"
c) y = 3 -^ 7 2’
d) Vt t^ W
e) 9 = 3cos(62 - 8)
f) C = 3[õ2 a/3 - 4(1 - In 8)]
Dado:
16
Page 19
Resolução.
a) y := 7*((8A3)*(3/5-4)-5A2+ l) ou y :=7*(8A3*(3/5-4)-5A2+ l)
b) z:=7*((8A3)*(3/(5-2A(l/2 ))-5A2) ou z:=7*(8A3)*(3/(5-2A(l/2 ))-5A2)
c) N:=3-7A(2/3)
d) f:=(77-6A(l/3 ))A(l/2 )
e) g:=3*COS(6A2-8)
f) C :=3*((6A2)*(3A(l/2 ))-4*(l-LN (8)) ou C :=3*(6A2*(3A(l/2))-4*(l-LN (8))
17
Page 21
Tare fa l.V a r iá v e is , atribu ições, operações e funções.
Nome:
Número:Q UJLcs C j^ TyytQ Ç*
fò O 0' 1 ) 2 t GTurm a:£ f í ? > . 4 o i
Exercício 1 .Matematicamente, podemos tanto escrever y=3 como 3=y.
Por que, usando o comando de atribuição, somente há sentido em
escrevermos y:=3 (e não 3:=y)?
Exercício 2.Se fizermos 12/5 e 12 DIV 5 obteremos os mesmos
resultados? Justifique.
19
Page 22
Exercício 3. Explique o significado da seguinte atribuição: N:=N+1.
Exercício 4 . Vimos que osímbolo representa o comando de
atribuição. Assim, interprete a expressão S0MA:=A1+A2+A3.
20
Page 23
Exercício 5 .Escreva as expressões abaixo utilizando a sintaxe, o comando
de atribuição, as funções e os operadores conhecidos.
a)A = 5 6 - 72 V - 4 ] + 9
v 5 - V ã J
b)z = 4 - 2
f
f i
\
\5 - Vã /
- cos 52
c) y - 8
d) H = t]i 7 — \I6
2 „ „2e) g = —sen(3 - 5 )
f) C = (1 + V2)[7 - 3(cos 5 + In 4)]
21
Page 25
CAPÍTULO 2. ALGORITMOS SEQUENCIAIS.
2.1. Algoritmos sequenciais.
Um algoritmo pode ser conceituado como um procedimento definido
e com etapas finitas no qual se recebem um ou mais valores (dados de
entrada) e geram-se um ou mais valores (informações de saída).
Dizemos que o algoritmo é o passo a passo envolvido na resolução
de um problema.
Um algoritmo é classificado como sequencial se não apresentar
desvios ou ramificações em virtude de condições ou restrições.
Vejamos um exemplo de elaboração de um algoritmo relacionado
aos cálculos de valores da função do segundo grau dada por y=3x2+2x.
O dado de entrada é determinado valor que será atribuído à variável
x e a informação de saída é o resultado que será assumido pela variável y.
Não há um único algoritmo capaz de representar essa situação, mas
uma opção é a mostrada a seguir.
• Etapa 1. Dê um valor para variável x. Esse valor pode ser qualquer
número real.
• Etapa 2. Eleve ao quadrado o valor atribuído a x, multiplique-o por 3 e
adicione, a esse resultado, o dobro do valor atribuído a x. Atribua o
resultado final à variável y.
23
Page 26
Etapa 3. Exiba (escreva) o valor assumido pela variável y.
Reforçamos que todo algoritmo deve ser uma sequência finita de
etapas efetivamente definidas. Logo, todo algoritmo tem "começo e fim".
Os algoritmos podem ser representados por meio da linguagem
natural (passo a passo de resolução de um problema), de um fluxograma
(esquema) ou do que chamamos de Português Estruturado (pseudo-
linguagem de programação).
Os símbolos que serão usados neste livro para a representação
esquemática dos algoritmos, ou seja, por meio de fluxogramas, estão
indicados no quadro 2 .1.
Quadro 2.1. Símbolos - algoritmos representados esquematicamente por
fluxogramas.
Terminal - Início ou Fim
Entrada de Dados
Processamento +■ Seta - Linha de Fluxo
24
Page 27
Faremos também a representação dos algoritmos por uma pseudo-
linguagem computacional conhecida como Português Estruturado ou
Portugol.
Podemos dizer que o Português Estruturado é uma simplificação
extrema da língua portuguesa, limitando-se a algumas poucas palavras e
estruturas com significados muito bem definidos. A sintaxe dessa
linguagem é o conjunto de palavras e regras que definem o formato das
suas sentenças válidas.
Apesar de o Português Estruturado ser umalinguagem muito
simplificada, apresenta todos os elementos básicos e estruturas
semelhantes aos de uma linguagem típica de programação de
computadores, como, por exemplo, o Pascal e a linguagem C.
Resumidamente, um algoritmo escrito em Português Estruturado
deve conter os seguintes constituintes principais:
• Nome do programa
• Declaração de variáveis
• Início
• Comandos (leia, escreva, atribuições, desvios condicionais,
estruturas de repetição etc.)
• Fim
Os exemplos que seguem farão aplicações dos conceitos vistos até o
momento.
25
Page 28
Exem plo 2 .1 . Faça um fluxograma e escreva um programa em Português
Estruturado para um algoritmo que leia o valor do lado de um quadrado
(em cm) e exiba a sua área (em cm2).
Resolução.
Vamos chamar de L o valor do lado do quadrado (em cm) e de A a
sua área (em cm2).Sabemos que a área de um quadrado é calculada pelo
quadrado do valor do seu lado, ou seja, A=L2.
Visto que todo fluxograma algoritmo deve ter início e fim, leitura de
dados de entrada, instruções de processamento (cálculos) e saída de
informações, a representação do exemplo 2.1 é a mostrada abaixo.
Para escrever o algoritmo como um programa em Português
Estruturado, devemos nos basear no fluxograma e inserir o nome do
26
Page 29
programa e a prévia declaração das variáveis, tanto as relativas à entrada
de dados como as relativas à saída de informações, conforme segue.
Programa Area_do_Quadrado
Var
L, A: real;
Início
Escreva ("Entre com o valor do lado do quadrado em cm");
Leia (L);
A: = LA2;
Escreva ("A área do quadrado é, em cm2", A);
Fim.
Observações.
• O nome do programa não deve conter acentos e espaçamento entre
caracteres.
• A declaração das variáveis deve ser feita antes do início do programa e
inclui os símbolos utilizados e o tipo (precedido de dois pontos).
• Os textos entre aspas relativos ao comando "escreva" não são rígidos e
são de autoria do programador, visando à orientação do usuário.
• Os comandos "escreva" e "leia" têm funções distintas. Pelo comando
"escreva", o usuário pode ver um texto de orientação e, por exemplo,
inserirum dado de entrada. Mas é somente pelo comando "leia" que o
dado inserido pelo usuário é atribuído a uma variável.
27
Page 30
• Ao final de cada instrução, usamos ponto e vírgula.
• Após o último comando de "fim", usamos o ponto final.
Exem plo 2 .2 . Faça um fluxograma e escreva um programa em Português
Estruturado para um algoritmo que leia dois números e exiba a sua soma
e o seu produto.
Resolução.
Vamos chamar de NI e N2 os números fornecidos pelo usuário, de S
a sua soma e de P o seu produto. Logo, S é calculado por N1+N2 e P, por
N1*N2. O fluxograma referente ao exemplo 2.2 é o ilustrado a seguir.
O programa em Português Estruturado relativo ao exemplo 2.2 está
apresentado a seguir.
28
Page 31
Programa Soma_e_Produto
Var
N l, N2, S, P: real;
Início
Escreva ("Digite dois números");
Leia (N l, N2);
S:=N1+N2;
P: = N1*N2;
Escreva ("A soma é", S, "e o produto é", P);
Fim.
Exemplo 2.3. Faça um fluxograma e escreva um programa em Português
Estruturado para um algoritmo que mostre a média aritmética de três
números dados pelo usuário.Simule esse programa para as entradas 1,0 e
-1 e, também 5, -7 e 12.
Resolução.
Vamos chamar de N l, N2 e N3 os números fornecidos pelo usuário e
de M a média aritmética desses três números. Logo, M é calculada como
Nl + N2 + N3um terço da soma de N l, N2 e N3, ou seja, N - 3 .
O fluxograma relativo ao exemplo 2.3 é o ilustrado a seguir.
Observe que se não forem usados os parênteses no processamento
M:= (Nl+N2+N3)/3, a expressão não estará correta quanto ao objetivo de
calcular a média de três números.
29
Page 32
Em Português Estruturado, temos o programa abaixo.
Programa Media_Tres_Números
Var
M, N l, N2, N3: real;
Início
Escreva ("Entre com três números");
Leia (N l, N2, N3);
M:=(Nl+N2+N3)/3;
Escreva ("O resultado é", M);
Fim.
As simulações solicitadas no enunciado estão apresentadas no
quadro que segue.
30 i
Page 33
NI N2 N3 M
1 0 -1 0
5 -7 12 3,33
Exemplo 2.4. Faça um fluxograma e um programa em Português
Estruturado que, dado o raio de uma esfera (em cm), calcule e escreva a
área da sua superfície (em cm2) e o seu volume (em cm3).
Resolução.
Vamos chamar de R o valor do raio da esfera (em cm), de A aárea
da sua superfície (em cm2) e de V o seu volume (em cm3).
As fórmulas que possibilitam os cálculos de A e de V são A = 4tcR2 e
Se aproximarmos a constante ^por 3,14, temos que 4tt = 12,56 e
4 2- tu = 4,191 Assim, as fórmulas anteriores ficam A s l2 ,5 6 R e
•3
V = 4,19R .0 fluxograma relativo ao exemplo 2.4 é o ilustrado a seguir.
31
Page 34
Em Português Estruturado, temos o programa que segue.
Programa Area_Volume_Esfera
Var
R, A, V: real;
Início
Escreva ("Entre com o raio da esfera, em cm");
Leia (R );
A: = 12,56*RA2;
V:=4,19*RA3;
Escreva ("A área é", S, "cm2 e o volume é", V, "cm3");
Fim.
32
Page 35
Exemplo 2.5. Faça um fluxograma e um programa em Português
Estruturado que, dados dois números inteiros e positivos, calcule e mostre
o resto inteiro da divisão do primeiro número pelo segundo número.
Resolução.
Vamos chamar de NI e N2 os números fornecidos pelo usuário e de
R o resto inteiro da divisão do primeiro número pelo segundo número.
Logo, R é dado por NI MOD N2, conforme indicado no fluxograma abaixo.
Em Português Estruturado, temos o programa que segue.
33
Page 36
Programa MOD
Var
N l, N2, R: inteiro;
Inicio
Escreva ("Digite o primeiro número inteiro e positivo");
Leia (N l);
Escreva ("Digite o segundo número inteiro e positivo");
Leia (N2);
R := Nl MOD N2;
Escreva ("O resto inteiro da divisão do primeiro número pelo segundo
número é", R);
Fim.
Embora o enunciado não tenha solicitado simulações, apresentamos
alguns exemplos no quadro que segue.
N l N 2 R
15 9 6
9 15 9
5 3 2
3 5 3
Exem plo 2 .6 . Faça um fluxograma e um programa em Português
Estruturado que, dado um número inteiro de segundos, distribua-o no
valor equivalente em horas, minutos e segundos. Simule o resultado para
23452 segundos.
34
Page 37
Resolução.
Vamos utilizar as variáveis abaixo no exemplo 2.5.
• T : número inteiro de segundos (tempo total, fornecido pelo usuário).
• TH: parte do tempo equivalente em horas "inteiras".
• TM: parte do tempo equivalente em minutos "inteiros".
• TS: parte do tempo equivalente em segundos "inteiros".
Devemos lembrar que 1 hora equivale a 3600 segundos e que 1
minuto equivale a 60 segundos.
Os operadores DIV e MOD são especialmente indicados para a
resolução deste exemplo.
Se tomarmos o quociente inteiro da divisão do tempo total T por
3600, teremos a parte do tempo equivalente em horas "inteiras" (TH), ou
seja, TH é calculado como T DIV 3600.
Se tomarmos o resto inteiro da divisão de T por 3600 (T MOD 3600)
e o dividirmos por 60, poderemos obter TM e TS fazendo,
respectivamente, ((T MOD 3600) DIV 60) e ((T MOD 3600) MOD 60),
conforme mostrado no fluxograma que segue.
35
Page 38
Em Português Estruturado, temos o programa que segue.
Programa Conversao_de_Segundos
Var
T, TH, TM, TS: inteiro;
Início
Escreva ("Entre com o tempo total, em segundos");
Leia (T );
TH : = T DIV 3600;
TM: = (TMOD 3600) DIV 60;
TS := (T MOD 3600) MOD 60;
Escreva ("Tempo=", TH, "horas", TM, "min", TS, "seg");
Fim.
36 \
Page 39
A fim de simularmos o resultado para T = 23452 segundos, vamos
fazer, inicialmente, os seguintes cálculos:
• 23452 DIV 3500 = 5
• 23452 MOD 3600 = 1852
O resultados acima são devidos ao fato de que, se dividirmos 23452
por 3600, temos o quociente inteiro 6 (3600x6=21600), com resto igual a
1852 (23452-21600=1852).Logo:
• TH = T DIV 3600 = 23452 DIV 3600 = 6 horas
. TM = (T MOD 3600) DIV 60 = 1852 DIV 60 = 30 minutos
• TS= (T MOD 3600) MOD 60 = 1852 MOD 60 = 52 segundos
Portanto, 23542 seg = 6 horas 30 min 52 seg.
Exem plo 2 .7 . Faça um programa em Português Estruturado que leia o
seu nome, a sua altura (em m) e seu peso (em kg) e mostre o seu IMC
(índice de Massa Corporal).
Resolução.
Vamos chamar de H a sua altura (em m) e de P o seu peso (em kg).
PO IMC é calculado pela seguinte fórmula: / M C - —y , Sendo NOME a
ri
variável que representa o seu nome, o programa relativo ao exemplo 2.7 é
o apresentado a seguir.
37
Page 40
Programa Nome_e_IMC
Var
NOME: caractere;
IMC, P, H:real;
Início
Escreva ("Digite o seu nome");
Leia (NOME);
Escreva ("Digite a sua altura em m");
Leia (H);
Escreva ("Digite o seu peso em kg");
Leia (P);
IMC := P/HA2;
Escreva (NOME, ", seu índice de Massa Corporal é", IMC, "kg/m2");
Fim.
38
Page 41
Tarefa 2. Algoritmos sequenciais.
Nome:
Número: Turma:
Exercício 1.Simule o fluxograma a seguir para as situações abaixo,
a) X=7 e Y=3 b) X=13 e Y=22 c )X = 2 e Y = 6
39
Page 43
Exercício 2.Simule o fluxograma a seguir para
a) N=267 b) N=329 c) N=422
Simulação (item 2a).
41
Page 44
Simulação (item 2b).
Simulação (item 2c).
42
Page 45
Exercício 3. Dada a altura (em cm) e dado o raio (em cm) de um cilindro,
calcular e mostrar a área da sua lateral (em cm2). Defina claramente as
variáveis a serem utilizadas e faça um fluxograma e um programa em
Português Estruturado para a situação em estudo.
43
Page 47
Exercício 4. (Adaptado - Enade 2008). Após a construção de uma
barragem, detectou-se a presença de uma camada permeável (de
espessura ee comprimento I), que se estende ao longo de toda a
barragem (de extensão d), cuja seção transversal está ilustrada a seguir.
Essa camada provoca, por infiltração, a perda de volume de água
armazenada.
Sabe-se que, sob condições de fluxo laminar, a velocidade de fluxo
aparente da água por um meio poroso pode ser calculada pela Lei de
Darcy, que estabelece que essa velocidade é igual ao produto do
coeficiente de permeabilidade do meio pelo gradiente hidráulico — perda
de carga hidráulica por unidade de comprimento percorrido pelo fluido, ou
seja, Ah/I. A vazão de água pelo meio é o produto da velocidade de fluxo
pela área da seção atravessada pela água, normal à direção do fluxo.
Suponha que o coeficiente de permeabilidade da camada permeável seja
45
Page 48
igual a 10~4m/s, que ocorram perdas de carga hidráulica somente no
trecho percorrido pela água dentro dessa camada e que a barragem e as
demais camadas presentes sejam impermeáveis. Sob essas condições,
escreva um programa em Português Estruturado, que dados valores para
e, I, d eAh (em metros), calcule e mostre a vazão Q perdida por
infiltração pela camada permeável. Simular o programa para e=18 m,
1=450 m, Ah=190 m e d=830 m.
46
Page 50
Exercício 5.Para dada disciplina, a média semestral do aluno é ponderada
pela nota da primeira prova, que tem peso 2, e da segunda nota, que tem
peso 3. Faça um fluxograma e um programa em Português Estruturado
que calcule e escreva a média semestral do aluno, dadas as notas das
duas provas feitas no semestre.
48
Page 52
Exercício 6. Faça um fluxograma e um programa em Português
Estruturado que, dados o consumo médio de combustível (em litros) de
um veículo por km rodado e a distância percorrida por esse automóvel (em
km), calcule e mostre o volume de combustível gasto. Sabendo o preço do
litro de combustível, calcular e mostrar também o valor gasto para rodar a
distância percorrida pelo veículo. Dê exemplos que simulem o programa
elaborado.
50
Page 54
Exercício 7. Faça um fluxograma e um programa em
Estruturado que leia dois números diferentes de zero e efetue
dobro do inverso da soma desses números.
Português
; mostre o
52
Page 55
Exercício 8. Faça um fluxograma e um programa em Português
Estruturado que leia dois números inteiros e positivos, identificados por X
e Y, e efetue e mostre os resultados das operações de adição, subtração,
multiplicação, divisão de X por Y, a raiz quadrada do produto de X por Y, o
cubo da soma do dobro de X com um terço de Y e o quádruplo do inverso
do produto de X por Y.
53
Page 57
Exercício 9. Faça um fluxograma e um programa em Português
Estruturado que, dada a temperatura de um corpo em graus Celsius,
calcule e exiba o valor da referida temperatura em graus Fahrenheit e em
Kelvin. Faça simulações para -5°C , 23°C, 39°C e 100 °C.
, ~ T c ~ Tf - 3 2 Tk -273Dado: — = — ------ = -----
5 9 5
: ;
55
Page 59
Exercício 10.Faça um programa em Português Estruturado que, dados
pelo usuário dois números inteiros identificados por A e B, calcule e exiba:
(>3A2+5B2-4, D=3A/B2-5.A, E=4.A/(B2-2A), F=A DIV 3, G=A MOD 3 e
ll=A/3. Faça simulações para A=2 e B=5, para A=8 e B=1 e para A=15 e
15-10.
57
Page 61
Exercício 11.Faça um programa em Português Estruturado que, dados o
coeficiente angular e o coeficiente linear de uma função do primeiro grau,
mostre a sua raiz.
59
Page 62
Exercício 12. Faça um fluxograma e programa em Português Estruturado
para a situação exposta a seguir: Clarice, proprietária da loja "Mais Moda",
pretende adquirir certa quantidade de modelos diferentes de blusas e
outra quantidade de modelos diferentes de saias. De quantos modos
Clarice poderá combinar os modelos de blusas e de saias nos manequins
que ficam na vitrine da sua loja?
Dê alguns exemplos de simulação do programa elaborado.
Dados:
• Número de modelos de blusas adquiridas.
© Número de modelos de saias adquiridas.
60
Page 64
Exercício 13. À temperatura ambiente, o benzeno
éum líquido incolor, inflamável e tóxico, cujo rótulo de
risco encontra-se ilustrado na figura 1. A inalação dos
seus vapores pode causar câncer e desordens , ,Figura 1. Rotulo derisco - benzeno
sanguíneas como a anemia. _____________________
Os sintomas dessa inalação incluem dor de cabeça, tontura, sonolência e
náusea, podendo levar à inconsciência, convulsão e morte.O benzeno é
utilizado como solvente de graxas e ceras, removedor de tintas e aditivo
de gasolina, pois aumenta a sua octanagem e reduz o "bater de bielas"
dos motores.
À 25 °C, sua densidade (ou seja, o quociente entre a massa e o volume,
lido muitas vezes como "massa sobre volume") é de aproximadamente 879
kg/m3. O benzeno deve ser armazenado em recipientes bem fechados, em
local fresco, seco, bem ventilado e distante de fontes de ignição, calor e
chamas.
Elabore um programa em Português Estruturado que, dados o raio e a
altura de um cilindro circular reto utilizado para o armazenamento de
benzeno líquido à temperatura ambiente, forneça ao usuário a massa de
benzeno contida nesse recipiente cilíndrico. Considere que o benzeno deva
ocupar 90% da capacidade volumétrica do cilindro.
Page 65
Observação: a figura 2 fornece a imagem e a fórmula de cálculo da
capacidade volumétrica V de um cilindro, sendo que R representa o raio do
cilindro e L representa a sua altura.
63
Page 67
CAPÍTULO 3. DESVIOS CONDICIONAIS.
3.1. Desvios condicionais (comandos de seleção).
Além dos algoritmos sequenciais, também denominadoslineares, há
problemas e situações que necessitam da introdução de comandos de
seleção (desvios condicionais simples e desvios condicionais compostos)
para que as decisões possamser tomadas.
3.2. Condição.
Chamamos de condição à expressão lógica que norteia a tomada de
certa decisão.
Por exemplo, imagine que, após a realização do exame final, a média
mínima para que um aluno seja aprovado em determinada disciplina seja
igual a 5.
Se chamarmos de M a variável que indica a média do aluno, temos
que a condição para que o estudante seja aprovado é M>=5. Em outras
palavras, nesse exemplo, a expressão lógica que norteia a tomada de
decisão (ser aprovado ou ser reprovado) é M>=5.
65
Page 68
3.3. Decisão.
A decisão é tomada em função de uma condição ser ou não ser
satisfeita. Assim, a tomada de decisão implica a escolha de qual trecho do
algoritmo deve ser executado de acordo com o resultado obtido e com a
sua comparação a uma condição estabelecida.
Voltando ao exemplo do item 3.2, se a média M do aluno for igual a
7,3, poderíamos construir um algoritmo cuja decisão seria exibir o texto
"aluno aprovado na disciplina".
A condição que oferece o critério de decisão ou é satisfeita ou não é
satisfeita, ou seja, admitem-se apenas duas respostas possíveis. Assim, a
decisão envolverá, no máximo, duas opções: uma ação no caso de a
condição ser verdadeira (V) e outra ação no caso de a condição ser falsa
(F). Nessas situações, temos o chamado desvio condicional composto.
Há casos que apresentam somente a primeira alternativa: neles, se a
condição for falsa (F), o algoritmo continuará o fluxo de instruções
posteriores ao desvio condicional. Nessas situações, temos o chamado
desvio condicional simples.
Em vez de usarmos as notações de condição verdadeira, indicada
por (V), e de condição falsa, indicada por (F), podemos utilizar,
respectivamente, "sim" (S) e "não" (N).
66
Page 69
0 desvio condicional simples é uma estrutura utilizada em algoritmos
e programas computacionais na qual se indica uma tomada de decisão, ou
seja, um algoritmo é executado caso determinada condição seja
verdadeira (V).
Abaixo, apresenta-se a sintaxe do desvio condicional simples para
programas elaborados em Português Estruturado.
Se (CONDIÇÃO) então
cinstruções a serem executadas no caso de a condição ser verdadeira>;
Fim_se;
Genericamente, o fluxograma relacionado ao desvio condicional
simples é o mostrado na figura a seguir.
3.4. Desvio condicional simples
67
Page 70
Exemplo 3.1. Imagine a situação descrita no item 3.2, ou seja, dada a
média M de um aluno, exibir o texto "aluno aprovado na disciplina" caso
essa média seja igual a 5 ou maior do que 5. Faça um fluxograma e um
programa em Português Estruturado relativos a esse exemplo.
Resolução.
Seguem o fluxograma e o Estruturado relativos ao exemplo 3.1.
68
Page 71
Programa Desvio_Cond_Simples_Media_Aluno
Var
M: real;
Início
Leia (M);
Se (M>=5) então
Escreva ("Aluno aprovado na disciplina");
Fim_Se;
Fim.
3.5. Desvio condicional composto.
O desvio condicional composto é uma estrutura utilizada em
algoritmos e programas computacionais. Nela, indica-se uma tomada de
69
Page 72
decisão de executar um trechodo algoritmo caso determinada condição
seja verdadeira (V) e outra tomada de decisão de executar outro trechodo
algoritmo caso essa condição seja falsa (F).
Abaixo, apresenta-se a sintaxe do desvio condicional composto para
programas elaborados em Português Estruturado.
Se (CONDIÇÃO) então
cinstruções a serem executadas no caso de a condição ser verdadeira>;
Senão
cinstruções a serem executadas no caso de a condição ser falsa>;
Fim_se;
Genericamente, o fluxograma relacionado ao desvio condicional
composto é o mostrado na figura a seguir.
70
Page 73
Exemplo 3.2. Imagine a novamente situação descrita no item 3.2, mas
com um acréscimo: dada a média M de um aluno, exibir o texto "aluno
aprovado na disciplina" caso essa média seja igual a 5 ou maior do que 5
e exibir o texto "aluno reprovado na disciplina" caso essa média seja
menor do que 5. Faça um fluxograma e um programa em Português
Estruturado relativos a esse exemplo.
Resolução.
Seguem o fluxograma e o Estruturado relativos ao exemplo 3.2.
71
Page 74
Programa Desvio_Cond_Composto_Media_Aluno
Var
M: real;
Início
Leia (M);
Se (M>=5) então
Escreva ("Aluno aprovado na disciplina");
Senão
Escreva ("Aluno reprovado na disciplina");
Fim_Se;
Fim.
72
Page 75
Exemplo 3.3.Faça um fluxograma e um programa em Português
Estruturado para a situação descrita a seguir. Dados dois números,
calcular o dobro da soma dos números dados. Se o valor obtido nesse
cálculo for maior ou igual a 28, mostrar o quadrado da soma dos números.
Senão, mostrar a soma dos quadrados dos números.
Resolução.
Vamos chamar de A e de B os números fornecidos pelo usuário
(entradas) e vamos acumular em C o dobro da soma dos números dados,
ou seja, o dobro da soma A+B, ou seja, C = 2(A+B).
A condição a ser verificada é se o valor acumulador em C é ou não é
maior ou igual a 28.
O resultado final, que será acumulado na variável R, pode ser
calculado como o quadrado da soma dos números (se o valor acumulado
na variável C for maior ou igual a 28) ou como a soma dos quadrados dos
números (se o valor acumulado na variável C for menor do que 28).
Vejamos, a seguir, um fluxograma e um programa em Português
Estruturado referentes ao exemplo 3.3. Observamos que se trata de um
caso típico de uso do desvio condicional composto.
73
Page 76
Programa Exemplo_Cond_Composto
74
Page 77
Var
A, B, C, R: real;
Início
Escreva ("Entre com dois numeros")
Leia (A, B);
C := 2*(A+B);
Se (0 = 2 8 ) então
R := (A+B)A2;
Senão
R := AA2+BA2;
Fim_Se;
Escreva ("0 resultado é", R);
Fim.
Embora o enunciado não tenha solicitado simulações, apresentamos
alguns exemplos no quadro que segue.
75
Page 78
Exemplo 3.4.Faça um programa em Português Estruturado que leia dois
valores numéricos e realize sua adição. Caso essa adição resulte em um
valor menor do que 12, "o primeiro número recebe o segundo". Caso
contrário, "o segundo número recebe o primeiro".
Resolução.
Vamos chamar o primeiro número de N l, o segundo de N2 e a soma
deles de S, ou seja, S=N1+N2.
O enunciado propõe que se S for menor do que 12, Nl passa a ter o
valor atribuído a N2 (e N2 permanece com sua atribuição original).
Se S for igual a 12 ou maior do que 12, N2 passa a ter o valor
atribuído a Nl (e Nl permanece com sua atribuição original). Um
programa em Português Estruturado que atende a esses requisitos é o
apresentado a seguir.
Por exemplo, se Nl for 10 e N2 for 3, temos que S vale 13 e é maior
do que 12. Nesse caso, Nl passa a valer 3 e N2 continua recebendo 3.
Já se Nl for -4 e N2 for 10, temos que S vale 6 e é menor do que
12. Nesse caso, N2 passa a valer -4 e Nl continua recebendo -4.
Observe que, independentemente de a condição ser verdadeira ou
falsa, no final, esse algoritmo iguala, por meio de regras distintas, Nl e
N2.
76
Page 79
Vejamos, abaixo, o programa solicitado.
I ’rograma Um_numero_recebe_outro
Var
N l, N2, S: real;
Início
Escreva ("Entre com dois números indicados por Nl e N2")
Leia (N l, N2);
S := N1+N2;
Se (S<12) então
Nl := N2;
Senão
N2 := N l;
Fim_Se;
Escreva ("No final, temos Nl=", N l, "e N2=", N2);
I im.
No quadro a seguir estão mostradas algumas simulações de
insultados obtidos pela aplicação do programa acima.
N l N2 S N l N2
9 0 9 0 0
8 23 31 8 8
-5 -7 -12 -7 -7
1,2 14,3 15,5 1,2 1,2
5 7 12 5 5
32 -20 12 32 32
77
Page 81
Tarefa 3. Desvios condicionais.
Nome:
Número: Turma:
Exercício 1.Simule o fluxograma mostrado a seguir para
a) A=3 e B=2 b) A=3 e B=-2
79
Page 82
Simulação (item la).
\
----------------------------------------------------------------------------------— -------------------------------------------------------------------------------- —
Simulação (item lb ).
80
Page 83
Exercício 2„Simule o fluxograma mostrado a seguir para
a) A=4 b) A=8 c) A=25
81
Page 84
Simulação (item 2a).
Simulação (item 2b).
Simulação (item 2c).
Page 85
Exercício 3.Simule o fluxograma mostrado a seguir para
a) A=0 b) A=5 c) A=35
83
Page 86
Simulação (item 3a).
Simulação (item 3b).
Simulação (item 3c).
84
Page 87
Exercício 4. Faça um fluxograma e um programa em Português
Estruturado para a seguinte situação: dados dois números reais, calcular o
triplo do seu produto. Se esse resultado for maior do que 25, apresentar o
valor do cubo da soma dos números dados. Senão, apresentar o valor da
soma dos cubos dos números dados. Realize simulações para 1 e 10, para
1 e -4 e para 0 e 6,5.
85
Page 89
Exercício 5. Faça um fluxograma e um programa em Português
Estruturado para a seguinte situação: dado um número inteiro e positivo,
verificar se este número é par ou é ímpar.
■■■87
Page 90
Exercício 6= Faça um fluxograma e um programa em Português
Estruturado para a seguinte situação: dado um número inteiro e positivo,
verificar se este número é par. Caso o seja, mostrar a sua raiz cúbica.
Senão, mostrar o cubo do número. Dê exemplos de simulações para o
programa elaborado.
88
Page 91
Exercício 7. Faça um fluxograma e um programa em Português
Estruturado para a seguinte situação: dados os coeficientes a, b e c da
função do 2o grau y=ax2+bx+c, mostrar, se existirem, as raízes dessa
função. Dê exemplos de simulações para o programa elaborado.
Page 93
Exercício 8. Elabore um fluxograma e um programa em Português
Estruturado que calcule e mostre, para cada dado aluno, a sua média M
em Estatística, sendo
• N l: nota do aluno na I a prova (0<N1<10)
• N2: nota do aluno na 2a prova (0<N2<10)
• f: fator do aluno devido à entrega de exercícios (l,0 < f< l,3 ).
Se a média do aluno calculada pela fórmula anterior resultar em um valor
superior a 10 (dez), a média será 10 (dez). Simule o programa para Nl=8,
N2=8,5 e f= l,2 .
Page 95
Exercício 9. Faça um fluxograma e um programa em Português
Estruturado para a seguinte situação: dadas as notas NP1 e NP2 das
provas de uma disciplina, calcular a média semestral MS de um aluno pela
Mc _ 2NP1 + 3NP2fórmula 1 . Sabendo que a média semestral mínima para a
aprovação sem exame é 7,0, verificar se o aluno foi aprovado sem exame
ou se ele deve fazer exame.
Se o estudante for aprovado sem exame, sua média final MF é a própria
média semestral MS.
Se o estudante tiver de fazer exame, sua média final MF é calculada pela
MS + Efórmula — , sendo E a nota obtida no exame. Nesse caso, o
aluno será aprovado se MF for maior ou igual a 5,0. Caso contrário, o
estudante será reprovado.
93
Page 97
CAPÍTULO 4. OPERADORES LÓGICOS
4.1. Operadores lógicos.
No capítulo 1, vimos os operadores algébricos, que nos permitem
fazer as diversas operações matemáticas.
Além deles, os operadores lógicos também são muito empregados na
construção de algoritmos. O uso combinado dos diversos tipos de
operadores proporciona a execução das tarefas mais comuns de
processamento de dados.
Os operadores lógicos utilizados neste livro estão indicados no
quadro 4.1.
Quadro 4.1. Operadores lógicos.
OPERADOR OPERAÇÃO
NÃO (NOT) Negação
E (AND) Conjunção lógica
OU (OR) Disjunção lógica
A prioridade dos operadores lógicos está mostrada abaixo.
• Prioridade mais alta: NOT
• Prioridade média: AND
• Prioridade mais baixa: OR
95
Page 98
Assim, a expressão(A>5) E NÃO (A > 12 ) é equivalente àexpressão
(A > 5) E (NÃO (A > 1 2 )).
Já na expressão (A=0) OU (A>=3) AND (A<=6), a prioridade é
dada ao operador lógico E (ele é o primeiro a ser resolvido). Logo, essa
expressão equivale a (A=0) OU((A>=3) AND (A<=6)).
Assim como feito com os operadores algébricos, em caso de dúvidas,
é aconselhável utilizar os parênteses para garantir a prioridade desejada.
Exemplo 4.1. Considere o trecho de programa abaixo, escrito em
Português Estruturado.
SE (A*B>=5) E (A>B) ENTÃO
C := (A DIV 3)/2;
SENÃO
C := (B DIV 3)/2;
FIM_SE;
Simule esse trecho de programa para
a) A=2 e B=10;
b) A=1 e B=2;
c) A=6 e B=5.
Resolução.
Vamos testar as seguintes duas condições para cada simulação:
96
Page 99
A*B>=5 (condição 1)
A>B (condição 2)
a) A=2 e B=10
• A*B = 2*10 = 20. Portanto, a condição 1 é verdadeira, pois, nesse
caso, temos A*B>=5.
• A=2 é menor do que B=10. Portanto, a condição 2 é falsa, pois, nesse
caso, não temos A>B.
Logo, como não temos a condição 1E a condição 2 satisfeitas, o
valor atribuído a C é dado por (B DIV 3)/2.
Visto que B DIV 3 = 10 DIV 3 = 3, pois 10 = 3.3+1, então C é 3/2,
ou seja, C recebe o valor 3/2.
b) A=1 e B=2
• A*B = 1*2 = 2. Portanto, a condição 1 é falsa, pois, nesse caso, temos
A*B<5.
• A=1 é menor do que B=2. Portanto, a condição 2 é falsa, pois, nesse
caso, não temos A>B.
Logo, como não temos a condição 1E a condição 2 satisfeitas, o
valor atribuído a C é dado por (B DIV 3)/2.
Visto que B DIV 3 = 2 DIV 3 = 0, pois 2 = 0.3+2, então C é 0/2=0,
ou seja, C recebe o valor 0.
97
Page 100
c) A=6 e B=5
• A*B = 6*5 = 30. Portanto, a condição 1 é verdadeira, pois, nesse caso,
temos A*B>=5.
• A=6 é maior do que B=5. Portanto, a condição 2 é verdadeira, pois,
nesse caso, temos A>B.
Logo, como temos a condição 1E a condição 2 satisfeitas, o valor
atribuído a C é dado por (A DIV 3)/2.
Visto que A DIV 3 = 6 DIV 3 = 2, pois 6 = 2.3+0, então C é 2/2=1,
ou seja, C recebe o valor 1.
Exemplo 4.2. Considere o trecho de programa abaixo, escrito em
Português Estruturado.
SE (A*B>=5) OU (A>B) ENTÃO
C := (A DIV 3)/2;
SENÃO
C := (B DIV 3)/2;
FIM_SE;
Simule esse trecho de programa para
a) A=2e B=10;
b) A=1 e B=2;
c) A=6 e B=5.
98
Page 101
Vamos testar as seguintes duas condições para cada simulação:
• A*B>=5 (condição 1)
• A>B (condição 2)
a) A=2 e B=10
• A*B = 2*10 = 20. Portanto, a condição 1 é verdadeira, pois, nesse
caso, temos A*B>=5.
• A=2 é menor do que B=10. Portanto, a condição 2 é falsa, pois, nesse
caso, não temos A>B.
Logo, como temos a condição 10U a condição 2 satisfeitas, o valor
atribuído a C é dado por (A DIV 3)/2.
Visto que A DIV 3 = 2 DIV 3 = 0, pois 2 = 0.3+2, então C é 0/2=0,
ou seja, C recebe o valor 0.
b) A=1 e B=2
• A*B = 1*2 = 2. Portanto, a condição 1 é falsa, pois, nesse caso, temos
A*B<5.
• A=1 é menor do que B=2. Portanto, a condição 2 é falsa, pois, nesse
caso, não temos A>B.
Logo, como não temos a condição ÍOU a condição 2 satisfeitas, o
valor atribuído a C é dado por (B DIV 3)/2.
Resolução.
99
Page 102
Visto que B DIV 3 = 2 DIV 3 = 0, pois 2 = 0.3+2, então C é 0/2=0,
ou seja, C recebe o valor 0.
c) A=6 e B=5
• A*B = 6*5 = 30. Portanto, a condição 1 é verdadeira, pois, nesse caso,
temos A*B>=5.
• A=6 é maior do que B=5. Portanto, a condição 2 é verdadeira, pois,
nesse caso, temos A>B.
Logo, como temos a condição ÍOU a condição 2 satisfeitas, o valor
atribuído a C é dado por (A DIV 3)/2.
Visto que A DIV 3 = 6 DIV 3 = 2, pois 6 = 2.3+0, então C é 2/2=1,
ou seja, C recebe o valor 1.
Exem pío 4 .3 . Considere o trecho de programa abaixo, escrito em
Português Estruturado.
SE (A=5) E NÃO (B<3) ENTÃO
A := 2*B;
SENÃO
B := A;
FIM_SE;
Simule esse trecho de programa para
a) a =7 e B=4;
100
Page 103
b) A=7 e B=2;
c) A=5 e B=8.
Resolução.
Vamos testar as seguintes duas condições para cada simulação:
• A>=5 (condição 1)
• NÃO (B<3) (condição 2)
a) A=7 e B=4
• A=7 é maior do que 5. Portanto, a condição 1 é verdadeira, pois, nesse
caso, temos A>=5.
• B=4 é maior do que 3. Portanto, a condição 2 é verdadeira, pois, nesse
caso, não temos B<3.
Logo, como temos a condição 1E a condição 2 satisfeitas, o novo
valor atribuído a A é dado por 2*B, ou seja, 2*4=8.
Concluímos que o resultado da simulação é A=8 e B=4.
b) A=7 e B=2
• A=7 é maior do que 5. Portanto, a condição 1 é verdadeira, pois, nesse
caso, temos A>=5.
• B=2não é maior do que 3. Portanto, a condição 2 é falsa, pois, nesse
caso, temos B<3.
101
Page 104
Logo, como não temos a condição 1E a condição 2 satisfeitas, o
novo valor atribuído a B é o valor original de A, ou seja, 7.
Concluímos que o resultado da simulação é A=7 e B=7.
c) A=5 e B=8
• A=5 é igual a 5. Portanto, a condição 1 é verdadeira, pois, nesse caso,
temos A>=5.
• B=8 é maior do que 3. Portanto, a condição 2 é verdadeira, pois, nesse
caso, não temos B<3.
Logo, como temos a condição 1E a condição 2 satisfeitas, o novo
valor atribuído a A é 2*B, ou seja, 2*8=16.
Concluímos que o resultado da simulação é A=16 e B=8.
Exemplo 4.4. Considere o trecho de programa abaixo, escrito em
Português Estruturado.
SE (A>12) OU NÃO (A MOD 2 = 0) ENTÃO
A := A/2-1;
SENÃO
A := (A+1)A3;
FIM_SE;
Simule esse trecho de programa para
a) A=5; b) A=6;
102
c) A=26.
Page 105
Vamos testar as seguintes duas condições para cada simulação:
• A>12 (condição 1)
• NÃO (A MOD 2 = 0) (condição 2)
a) A=5
• A=5 é menor do que 12. Portanto, a condição 1 é falsa, pois, nesse
caso, nãotemos A>12.
• A MOD 2 = 5 MOD 2 = 1, pois 5=2.2+1. Portanto, a condição 2 é
verdadeira, pois, nesse caso, não temos A MOD 2 = 0.
Logo, como temos a condição ÍOU a condição 2 satisfeitas, o novo
valor atribuído a A é dado por A/2-1, ou seja, 5/2-1=1,5.
Concluímos que o resultado da simulação é A = l,5 .
b) A=6
• A=6 é menor do que 12. Portanto, a condição 1 é falsa, pois, nesse
caso, temos A>12.
• A MOD 2 = 6 MOD 2 = 0, pois 6=2.3+0. Portanto, a condição 2 é falsa,
pois, nesse caso, temos A MOD 2 = 0.
Logo, como não temos a condição ÍOU a condição 2 satisfeitas, o
novo valor atribuído a A é dado por (A+1)A3, ou seja, (6 + l)A3=343.
Concluímos que o resultado da simulação é A=343.
Resolução.
103
Page 106
c) A=26
• A=26 é maior do que 12. Portanto, a condição 1 é verdadeira, pois,
nesse caso, temos A>12.
• A MOD 2 = 26 MOD 2 = 0, pois 26=2.13+0. Portanto, a condição 2 é
falsa, pois, nesse caso, temos A MOD 2 = 0.
Logo, como temos a condição ÍOU a condição 2 satisfeitas, o novo
valor atribuído a A é dado por A/2-1, ou seja, 26/2-1=12.
Concluímos que o resultado da simulação é A=12.
Exemplo 4.5. Considere o trecho de programa abaixo, escrito em
Português Estruturado.
SE (ABS(X-7) > ABS(Y-3)) OU (Y+ l > X) ENTÃO
X := (X-7)*Y;
Y := X;
SENÃO
Y := (Y-3)*X;
X := Y;
FIM_SE;
Simule esse trecho de programa para
a) X=-6 e Y = l; b) X=2 e Y=8; c) X = ll e Y=-4.
Resolução.
Lembrando que o operador ABS refere-se ao módulo do operando,
vamos testar as seguintes duas condições para cada simulação:
104
Page 107
• ABS(X-7) > ABS(Y-3)(condição 1)
• Y+ l > X(condição 2)
a) X=-6 e Y=1
• ABS(X-7)=ABS(-6-7)=ABS(-13)=13 e ABS(Y-3)=ABS(l-3)=ABS(-2)=2.
Portanto, a condição 1 é verdadeira, pois, com ABS(X-7)=13 e com
ABS(Y-3)=2, temos ABS(X-7)>ABS(Y-3).
• Y + l= l+ l= 2 e X=-6. Portanto, a condição 2 é verdadeira, pois, com
Y+ l=2 e X=-6, temos Y+1>X.
Logo, como temos a condição 10U a condição 2 satisfeitas, o novo
valor atribuído a X é dado por (X-7)*Y=(-6-7)*l=-13 e o novo valor
atribuído a Y é X=-13.
Concluímos que o resultado da simulação é X=-13 e Y=-13.
b) X=2 e Y=8
• ABS(X-7)=ABS(2-7)=ABS(-5)=5 e ABS(Y-3)=ABS(8-3)=ABS(5)=5.
Portanto, a condição 1 é falsa, pois, com ABS(X-7)=5 e ABS(Y-3)=5,
não temos ABS(X-7)>ABS(Y-3).
• Y+ l =8+1=9 e X=2. Portanto, a condição 2 é verdadeira, pois, com
Y+ l=9 e X=2, temos Y+1>X.
105
Page 108
Logo, como temos a condição 10U a condição 2 satisfeitas, o novo
valor atribuído a X é dado por (X-7)*Y=(2-7)*8=-40 e o novo valor
atribuído a Y é X=-40.
Concluímos que o resultado da simulação é X=-40 e Y=-40.
c) X = ll eY=-4i
• ABS(X-7)=ABS(11-7)=ABS(4)=4 e ABS(Y-3)=ABS(-4-3)=ABS(-7)=7.
Portanto, a condição 1 é falsa, pois, com ABS(X-7)=4 e ABS(Y-3)=7,
não temos ABS(X-7)>ABS(Y-3).
• Y+ l=-4+l=-3 e X= ll.Logo, a condição 2 é falsa, pois, com Y+l=-3 e
X = l l , não temos Y+1>X.
Logo, como não temos a condição ÍOU a condição 2 satisfeitas, o
novo valor atribuído a Y é dado por (Y-3)*X=(-4-3)*ll=-77 e o novo valor
atribuído a X é Y=-77.
Concluímos que o resultado da simulação é X=-77 e Y=-77.
106
Page 109
Tarefa 4. Operadores lógicos.
Nome:
Número: Tyrm a :
Exercício 1. Considere o trecho de programa abaixo, escrito em
Português Estruturado.
SE (FA3 MOD 3 > 1) OU (H+5>2*F) ENTÃO
M := FA3 DIV 3;
SENÃO
M := FA3 DIV 2;
FIM_SE;
Simule esse trecho de programa para
a) F=2 e H = l; b) F=1 e H=2; c) F=3 e H=20.
107
Page 110
Português Estruturado.
SE (FA3 MOD 3 > 1) E (H+5>2*F) ENTÃO
M := FA2 DIV 3;
SENÃO
M := FA2 DIV 2;
FIM_SE;
Simule esse trecho de programa para
a) F=2 e H = l; b) F=1 e H=2; c) F=3 e H=20.
Exercício 2. Considere o trecho de programa abaixo, escrito em
108
Page 111
Português Estruturado.
SE (AA2-3*B >=6) OU (B>A-1) ENTÃO
C:= (1-B)*A+1;
SENÃO
C := (1-B)*(A+1);
Simule esse trecho de programa para
a) A=4 e B=5; b) A=3 e B=5; c) A=0 e B=8.
Exercício 3. Considere o trecho de programa abaixo, escrito em
I
I
109■ M H ! BHH
iriMnMwrmTruwwnmii
Page 112
Exercício 4. Considere o trecho de programa abaixo, escrito em
Português Estruturado.
SE NÃO (ABS(A) >=3) E (2*B>(A+3)) ENTÃO
A := -B;
B := B+2;
SENÃO
A := -2*B;
B := B + l;
Simule esse trecho de programa para
a) A=2 e B = l; b) A=1 e B=0;
no
/
c) A=-5 e B=8.
Page 113
Exercício 5. Considere o trecho de programa abaixo, escrito em
Português Estruturado.
SE NÃO (ABS(A-B) DIV 4 >=3) E (2*B>(A+3)/2) ENTÃO
A := -B;
B := B+2;
SENÃO
A : = -2*B;
B := B + l;
Simule esse trecho de programa para
a) A=2 e B = l; b )A = le B = 0 ; c) A=-5 e B=8.
lll
Page 115
CAPÍTULO 5. ESTRUTURAS DE REPETIÇÃ O .
5 .1 . Loops ou Saços de repetição.
Na construção de algoritmos, é comum depararmos com situações
em que precisamos repetir várias vezes uma sequência de operações ou
de instruções. Essas repetições podem ser estruturadas nos chamados
loops ou laços de repetição.
Nos laços, determinada sequência de ações é repetida por um
número finito e específico de vezes, até que umacondição seja satisfeita.
Enquanto a condição for verdadeira (V), as instruções são executadas.
As estruturas de repetição que usam os laços podem ser
classificadas de acordo com o seguinte critério:
• repetição com teste no início;
• repetição com teste no final;
• repetição com variável de controle.
5 .2 . V ariáve is - contadores e acum uladores.
Nos algoritmos que usam estruturas de repetição, em geral há a
necessidade de utilizarmos variáveis do tipo contador e/ou acumulador.
113
Page 116
5.2.1. Contadores.
Um contador é uma variável usada para contar o número de vezes
que um evento ou uma instrução ocorre, ou seja, para contar a
quantidade de vezes que uma instrução é executada.
De modo geral, um contador pode ser expresso de acordo com o
seguinte esquema:
VARIÁVEL :=VARIÁVEL + CONSTANTE
O esquema acima pode ser lido assim: "o novo valor da variável é o
seu valor antigo somado com um valor constante".
O caso mais frequentemente observado é: CONT :=CONT + 1.
Vamos interpretá-lo: um contador é uma variável qualquer,
identificada por um símbolo escolhido pelo programador, que recebe "ela
mesma mais um valor (umaconstante)". No caso do exemplo em análise,
ou seja, CONT :=CONT + 1 , a variável CONT está recebendo o valor dela
mesma mais 1 (incremento igual a 1).
O mais usual é que a constante 1 seja o valor a ser somado ao
contador, mas isso não é obrigatório. Poderíamos ter qualquer valor como
constante, por exemplo, o número 2, se desejássemos contar de 2 em 2.
Devemos ressaltar que a variável do contador deve ter um valor
inicial conhecido, isto é, ela deve ser inicializada.
114
Page 117
Normalmente, inicializa-se a variável do contador com o valor zero,
ou seja, zera-se a variável antes de começarmos a utilizá-la. Para zerar
uma variável basta atribuir a ela o valor zero, ou seja, VARIÁVEL := 0.
5.2.2. Acumuladores.
Um acumulador (ou somador) é usado para contabilizar somatórios
(representados, normalmente, pelo símbolo £).
De modo geral, umacumulador pode ser expresso de acordo com o
seguinte esquema:
VARIÁVEL1 :=VARIÁVEL1 + VARIÁVEL2
O esquema acima pode ser lido assim: "o novo valor da variável 1 é
o seu valor antigo somado com o valor da variável 2".
O tipo frequentemente observado é: AC1:=AC1 + AC2.
Vamos interpretá-lo: um acumulador ou somador é uma variável
qualquer que recebe "ela mesma mais outra variável". No caso em estudo,
ou seja,ACl := AC1 + AC2, a variável AC1 está recebendo o valor dela
mesma mais ovalor da variável AC2. A variável a AC2 representa o valor a
ser somado, acumulado na variável AC1.
Devemos ressaltar que a variável Ido acumulador deve ter um valor
inicial conhecido, isto é, ela deve ser inicializada. Normalmente, inicializa-
115
Page 118
se a variável do acumulador com zero, ou seja, zera-se a variávelantes de
começar a utilizá-la. Para zerar uma variável, basta atribuir a ela o valor
zero: VARIÁVEL1 := 0.
5.3. Estruturas de repetição.
As estruturas de repetição possibilitamque uma sequência de
instruções seja executada diversas vezes, até que dada condição seja
satisfeita: repete-se um conjunto deinstruções sem que haja a
necessidade escrevê-las várias vezes.
Assim como as estruturas de decisão ou de seleção, as estruturas de
repetição envolvem a avaliação de uma condição ou um teste.
As estruturas de repetição podem ser genericamente classificadas
em condicionais e emincondicionais.
5.3.1. Estruturas de repetição condicionais.
Os comandos inseridos dentro de estruturas de repetição
classificadas como condicionais têm sua execução repetida até que
a condição lógica estabelecida seja satisfeita.
Há, basicamente, dois tipos de repetições condicionais: o comando
"ENQUANTO...FAÇA" e o comando "REPITA...ATÉ".
116
Page 119
5.3.1.1. "ENQUANTO...FAÇA"
A sintaxe do comando "ENQUANTO...FAÇA"é a apresentada abaixo.
ciniciar a variável de controle>;
Enquanto (condição for verdadeira) faça
<instruções>;
<atualizar a variável de controle>;
Fim_Enquanto;
No momento em que a condição passa a ser falsa, o processamento
é desviado para "fora do loop".
Genericamente, o fluxograma relacionado ao comando de repetição
"ENQUANTO... FAÇA"é o mostrado na figura a seguir.
117
Page 120
Exem plo 5 .1 . Faça um fiuxograma e um programa em Português
Estruturado no qual se mostre a tabuada de um número inteiro e positivo
fornecido pelo usuário. Use o comando "ENQUANTO ... FAÇA".
Resolução.
Vamos chamar a variável de controle de I, o número inteiro e
positivo fornecido pelo usuário de N e dado resultado exibido de R,
conforme mostrado no fiuxograma.
Segue o programa em Português Estruturado.
118
Page 121
Programa Tabuada_enquanto
Var
N, I , R: inteiro;
Início
Escreva ("Tabuada de qual número?")
Leia (N);
I := 1;
Enquanto (I<=10) faça
R := N*I;
Escreva (N, "x", I, "=", R);
Fim_Enquanto;
Fim.
Exem plo 5 .2 . Faça um fluxograma e um programa em Português
Estruturado no qual se mostre o quadrado de cada um dos números
inteiros entre 13 e 85 (inclusive). Use o comando "ENQUANTO...FAÇA".
Resolução.
Vamos chamar a variável de controle de I e o resultado exibido de R,
conforme mostrado no fluxograma a seguir.
119
Page 122
Segue o programa em Português Estruturado.
Programa Quadrados_de_numeros
Var
I, R: inteiro;
Início
I := 13;
Enquanto (I<=85) faça
R := I A2;
I := 1+1;
Escreva ("R=", R);
Fim_Enquanto;
Fim.
120
Page 123
Exem plo 5 .3 . Faça um fluxograma e um programa em Português
Estruturado no qual se mostre o fatorial de um número inteiro e positivo
fornecido pelo usuário. Use o comando "ENQUANTO ... FAÇA".
Resolução.
Vamos chamar a variável de controle de I, o número inteiro e
positivo fornecido pelo usuário de N e o fatorial desse número de R,
conforme mostrado no fluxograma a seguir.
121
Page 124
Segue o programa em Português Estruturado.
Programa Fatorial
Var
N, I, R: inteiro;
Início
R := 1;
I := 1;
Enquanto (I<=N) faça
R := R*I;
I := 1+1;
Fim_Enquanto;
Escreva ("R=", R);
Fim.
Exem plo 5 .4 . Faça um fluxograma e um programa em Português
Estruturado que calcule e mostre a idade média de um grupo de N
pessoas, conhecendo a idade de cada uma das pessoas. Use o comando
"ENQUANTO ... FAÇA".
Resolução.
Vamos chamar a variável de controle de I, o número de pessoas de
N, a idade de cada pessoa de IDADE, a soma das idades de S e a idade
média de M, conforme mostrado no fluxograma a seguir.
122
Page 125
Segue o programa em Português Estruturado.
123
Page 126
Programa Idadejmedia
Var
I,N, S, IDADE:inteiro;
M: real;
Início
s := 1;I := 1;
Escreva ("Entre com o número de pessoas");
Leia (N);
Enquanto (I<=40) faça
Escreva ("Qual é a idade da pessoa?");
Leia (IDADE);
S := S+IDADE;
I := 1+1;
Fim_Enquanto;
M := S/N;
Escreva ("A idade média do grupo de pessoas é", M);
Fim.
5 .3 .1 .2 . Comando "R EP IT A ...A T É"
A sintaxe do comando "REPITA ... ATÉ"é a apresentada abaixo.
ciniciar a variável de controle>;
Repita
<instruções>;
otualizar a variável de controle>;
Até (condição ser verdadeira);
124
Page 127
Genericamente, o fluxograma relacionado ao comando de repetição
"REPITA ... ATÉ"é o mostrado na figura a seguir.
A diferença básica entre as duas estruturas de repetição estudadas
até o momento é que a estrutura "ENQUANTO...FAÇA" testa a condição
antes de executar o bloco de comandos e a estrutura "REPITA...ATÉ"
executa o bloco de comandos e depois testa a condição. Assim, a
estrutura "REPITA...ATÉ" deve ser usada sempre que se queira executar o
bloco de comandos pelo menos uma vez.
Exemplo 5 .5 . Faça um fluxograma e um programa em Português
Estruturado no qual se mostre a tabuada de um número inteiro e positivo
fornecido pelo usuário. Use o comando "REPITA ...ATÉ".
125
Page 128
Resolução.
Vamos chamar a variável de controle de I, o número inteiro e
positivo fornecido pelo usuário de N e o resultado exibido de R, conforme
mostrado no fluxograma abaixo.
Segue o programa em Português Estruturado.
126
Page 129
Programa Tabuada_repita
Var
N, I, R: inteiro;
Início
Escreva ("Tabuada de qual número?")
Leia (N);
I := 1;
Repita
R := N*I;
Escreva (N, "x", I, R);
I := 1+1;
Até (I > 10);
Fim.
Exem plo 5 .6 . Faça um fluxograma e um programa em Português
Estruturado no qual se mostre o triplo do quadrado de cada um dos
números inteiros e ímpares entre 20 e 60. Use o comando "REPITA
...ATÉ".
Resolução.
Vamos chamar a variável de controle de I e o resultado exibido de R,
conforme mostrado no fluxograma a seguir.
127
Page 130
Segue o programa em Português Estruturado.
Programa Triplo_quadradoJmpares
Var
N, I, R: inteiro;
Início
I := 21;
Repita
R := 3 * (IA2);
Escreva (R=", R);
I := 1+2;
Até (I >60);
Fim.
128
Page 131
Veja que, no exemplo 5.6, poderíamos ter escrito R := 3*1 A2 em vez
de R := 3 * (IA2), pois a potenciação tem prioridade em relação ao
produto.
Nesse exemplo, o contador teve incremento de 2 (I := 1+2), pois
estávamos interessados apenas nos números ímpares e não em todos os
números inteiros entre 20 e 60.
Exem plo 5 .7 . Faça um fluxograma e um programa em Português
Estruturado no qual se calcule a média aritmética de duas provas para
cada aluno de uma turma de N estudantes. Use o comando "REPITA
...ATÉ".
Resolução.
Vamos chamar a variável de controle de I, as notas das duas provas
de NI e de N2, o número de estudantes na turma de N e a média de cada
aluno de M.
Foi dito que M é a média aritmética das notas das duas provas, ou
seja, M é dada pela soma das notas dividida por 2.
Vejamos o fluxograma a seguir.
129
Page 132
Segue o programa em Português Estruturado.
130
Page 133
Programa Media_de_duas_notas
Var
N, I : inteiro;
N l, N2, M: real;
Início
I : = 1;
Escreva ("Entre com a quantidade de alunos");
Leia (N);
Repita
Escreva ("Número do aluno" I) ;
Escreva ("Entre com as notas dos alunos");
Leia (N l, N2);
M := (Nl+N2)/2;
Escreva ("A média do aluno é", M);
I := 1+1;
Até (I > N);
Fim.
5.3.2. Estrutura de repetição incondicional.
Os comandos inseridos dentro de uma repetição incondicional têm
sua execução repetida determinado número de vezes. A principal repetição
condicional é a estrutura "PARA variável DE x ATÉ y PASSO z FAÇA".
131
Page 134
5.3.2.1. "PARA".
Para utilizarmos a estrutura "PARA variável DE x ATÉ y PASSO z
FAÇA" vamos o seguinte:
• * representa o valor inicial que a variável de controle assumirá;
• /representa o valor final que a variável de controle assumirá;
• zrepresenta o incremento que ocorrerá na variável em cada repetição.
A sintaxe do comando "PARA variável DE x ATÉ y PASSO z FAÇA"é a
apresentada abaixo.
Para variável de controle de x até y passo z faça
<instruções>;
Fim_Para;
Exemplo 5.8. Faça um fluxograma e um programa em Português
Estruturado no qual se mostre a tabuada de um número inteiro e positivo
fornecido pelo usuário. Use o comando "PARA".
Resolução.
Vamos chamar a variável de controle de I, o número inteiro e
positivo fornecido pelo usuário de N e o resultado exibido de R.
Vejamos, a seguir, o programa em Português Estruturado referente
ao exemplo 5.8.
132
Page 135
Programa Tabuada_para
Var
N, I , R: inteiro;
Início
Escreva ("Tabuada de qual número?")
Leia (N);
I := 1;Para I de 1 até 10 passo 1 faça
R := N*I;
Escreva (N, "x", I, R);
Fim_para;
Fim.
133
Page 137
Tarefa 5. Estruturas de repetição.
Nome:
Número: Turma:
Exercício 1. Elabore um fluxograma e um programa em Português
Estruturado que calcule e mostre o dobro da raiz cúbica de cada número
inteiro entre 21 e 315 (inclusive).
135
Page 138
Exercício 2. Elabore um fluxograma e um programa em Português
Estruturado que calcule e mostre o quadrado de cada número inteiro
contido em um intervalo cujos extremos são fornecidos pelo usuário.
136
Page 139
Exercido 3. Elabore um fluxograma e um programa em Português
Estruturado que calcule e mostre a raiz quadrada do triplo de cada número
inteiro par entre 55 e 85.
137
Page 140
Exercício 4. Elabore um fluxograma e um programa em Português
Estruturado que, dadas as notas N l, N2 e N3 de três provas, calcule e
mostre a média M de cada estudante de uma turma de N alunos. Suponha
que M seja calculada pela fórmula abaixo.
77 4./V1 + 3JV2 + 2JV3
138
Page 142
Exercício 6. Elabore um fluxograma e um programa em Português
Estruturado que calcule e mostre o salário médio dos N funcionários de
uma empresa, sabendo cada um dos salários.
140
Page 143
Exercício 7. Elabore um fluxograma e um programa em Português
Estruturado que leia um valor N inteiro e positivo, calcule o valor de S
dado pela expressão que segue e, também, escreva o valor de S.
S = 1 + 1/1! + 1/2! + 1/3! + ... + 1/N!--------------------------------------------------------------- -
141
Page 144
Exercício 8. Imagine que a prefeitura de uma pequena cidade tenha feito
uma pesquisa com uma amostra de 300 pessoas adultas e do sexo
masculino. Nessa pesquisa, foram coletados dados sobre o salário e
número de filhos dos entrevistados. A prefeitura deseja saber a média do
salário e a média do número de filhos para a amostra analisada. Faça um
fluxograma e um programa em Português Estrutura que calcule e mostre
as informações requeridas pela prefeitura.
142