Programacao de Computadores - Alexandre Daliberto Frugoli

145
r.VvtiiT • r-* ■ v» f &*• * wm iu '- i--^ .v.'v'„ •-V.vv. , iftíMfi * .Vi MB» ’ p&Pr ' «*■ . M *y i^,- griTriv «1 ■ . - ■H "■“■■HpBII • '% '>•*, 'i ,,A a .âWWçT^T _...>;V :;/A%- * ' •■ rr /*•*« l9“^ Clílt^A^lvy 22 £ r* 3 Nl ‘-r. /.W- —'-*. íl .'< . A m ' * -V . * •* • ‘*v ,..'• -*W »ÉÍÉÍ /&ÍJ? T L. .-< . m V • ' -Vi ^ y.gwwni 0t* yi.il>->« y»»^ V )^ »«y>'» « i ^*VÍ ' PROGRAMAÇÃO DE ?5- \ fl COMPUTADDRES ?-i Teoria - Exercícios Resolvidos - Exercícios Propostos - Tarefas i iV.V£**3í *• • •■ . ~v • -%y* * cÍV^A j íWfK' ^IISPS f / X - ‘ 'W Ç K f ">:f'ívAv* ^ * • ,\vJ Vvi '„**# *■ í 9^r. -i > ■■ *^8S8RN fc ‘C'7 ’1 -. ’•*■ '**-' áftfs . rW

description

Programação de computadoresEngenharia MecânicaEngenharia ElétricaEntre outras

Transcript of Programacao de Computadores - Alexandre Daliberto Frugoli

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

PROGRAMAÇÃO DE COMPUTADORES

A lexandre Daliberto Frugolï

Christiane Mazur Laurice lla

M irtes V itória Mariano

1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

18

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

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

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

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

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

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

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

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

• 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

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

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

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

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

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

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

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

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 \

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

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

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

40

Exercício 2.Simule o fluxograma a seguir para

a) N=267 b) N=329 c) N=422

Simulação (item 2a).

41

Simulação (item 2b).

Simulação (item 2c).

42

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

i

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

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

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

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

51

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

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

m

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

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

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

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

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.

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

64

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

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

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

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

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

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

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

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

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

Programa Exemplo_Cond_Composto

74

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

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

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

78

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

Simulação (item la).

\

----------------------------------------------------------------------------------— -------------------------------------------------------------------------------- —

Simulação (item lb ).

80

Exercício 2„Simule o fluxograma mostrado a seguir para

a) A=4 b) A=8 c) A=25

81

Simulação (item 2a).

Simulação (item 2b).

Simulação (item 2c).

Exercício 3.Simule o fluxograma mostrado a seguir para

a) A=0 b) A=5 c) A=35

83

Simulação (item 3a).

Simulação (item 3b).

Simulação (item 3c).

84

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

■ mmasmaaamm

86

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

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

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.

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 .

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

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

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

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

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

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

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

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

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.

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

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

• 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

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

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

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

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

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.

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

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

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

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

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

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

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

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

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

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

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

Segue o programa em Português Estruturado.

123

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

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

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

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

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

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

Segue o programa em Português Estruturado.

130

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

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

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

134

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

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

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

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

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

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

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