Vous êtes sur la page 1sur 17

c  


  
          

c    
  
     ë 

c      
    
Caso vocë ainda nëo tenha o instalador do FreePascal, baixe-o aqui. O arquivo ë um
pouco grande, cerca de 25 MB (demora aproximadamente 2 horas em uma conexëo
discada de 56kbps para completar) e estë compactado no formato ZIP. Depois de baixar as
ferramentas necessërias, basta instalar o FreePascal. Para instalar, siga as instruëë es
abaixo:

1.
Descompacte o conteëdo do arquivo .zip que vocë acabou de baixar para uma
pasta pasta temporëria de sua mëquina (ex.: c:\temp)
2.
ÿë atë essa pasta temporëria e rode o programa install.exe
3.
-gora o instalador do FreePascal farë todo o resto; basta escolher uma pasta
definitiva para ele (a padrëo ë c:\pp).

Pronto, o FreePascal jë estë instalado em seu sistema! Simples assim! -gora para rodë-
lo, vë atë a pasta escolhiada durante a instalaëëo. Lë, existe uma subpasta bin; vë
atë ela. Lë estëo todos os executëveis do FreePascal, mas o ënico que nos importa ë
o pp.exe; ele ë o responsëvel pela interface do FreePascal.
 !"
Caso vocë nëo possua um compilador de Pascal (GPC ou FreePascal) jë instalado em
seu Linux, baixe o FreePascal aqui. Lembre-se que ele ë apenas um compilador e vocë
ainda precisarë de uma interface grëfica para facilitar seu trabalho com o Pascal. - mais
interessante e fëcil delas ë o Rhide, que pode ser baixada aqui, em .rpm ou .deb.

c 
   

  # 
 
c

$    
%$
&
'  Î 
 

 
  

  
 

  
 

  


 
   

  

 

  


   
 

 

   
  

  





 
›
 ›

 



 
 
 


  ›

 

  

  

 


 

 ›
  
  

 

    


  

 ›



   
 

  

› 

$
  
*m algoritmo ë uma seqëëncia de passos para realizar um tarefa ou resolver um
problema. Em nosso dia a dia utilizamos algoritmos para realizar nossas atividades,
definindo a seqëëncia de aëëes que devemos fazer para atingir um objetivo. Essas
seqëë ncias de passos geralmente sëo guardadas em nossa memëria. Por exemplo,
quando marcamos um encontro com alguëm, a seqëëncia de procedimientos para esta
situaëëo seria:

X
tomar banho
X
vestir roupa bonita
X
levar guarda-chuva se estiver chovendo
X
pegar ënibus
X
...

Esta seqëëncia de procedimentos nëo anotamos no papel, por que sëo coisas simples
ou que fazemos com bastante freqëëncia. Porëm, para resolver problemas mais
complexos, precisamos anotar no papel os passos, principalmente quando queremos
escrever um programa. Existem diferentes formas de escrever um algoritmo. Neste curso
vamos escrever os algoritmos em uma linguagem intermediëria entre a linguagem falada e
a linguagem de programaëëo. - idëia ë usar termos simples porëm claros e objetivos.
Para ilustrar melhor o que foi falado nesta introduëëo vamos comeëar resolvendo um
simples problema.
å" 
  
 
Na disciplina de matemëtica tivemos trës provas e as notas foram as seguintes:

N1 = 5.5
N2 = 7.0
N3 = 4.5

Gostarëamos saber qual foi a mëdia das trës notas. Qual seria a seqëë ncia de
operaëëes que o computador precisa para fazer este simples cëlculo?.

r
ëë 
Para calcular a më dia, em primeiro lugar precisamos informar ao computador quais sëo
os valores das notas. Depois, pedimos para ele somar as notas e dividir por 3. O resultado
deve ser guardado em algum lugar, para depois mostrar na tela do computador. Esta
seqëë ncia podemos escrever em um algoritmo da seguinte forma:
$
  

1. Atribuir os valores  


 
  

2. Calcular a soma:
   

3. Calcular a m ëáia: 3




4. Mostrar o resultaáo 3
Para fazer os cëlculos, o computador precisa guardar os dados em algum lugar de sua
memëria. Para entender melhor como isso funciona, vamos imaginar que esses lugares
sejam caixas vazias. Portanto ( e  sëo caixas onde vamos guardar o valor das
notas. Por exemplo, quando fazemos )**no algoritmo, estamos informando ao
computador que deve guardar o valor ** na caixa . De forma similiar quando
escrevemos:


    ,
o computador deve fazer a soma dos valores que estëo nas caixa , e  e o resultado
deve guardado na caixa r. - caixa  vamos utilizar para guardar o valor de r dividido por
3. Finalmente quando quesirmos ver o resultado do cëlculo, pedimos ao computador
mostrar o conteëdo da caixa 

Em qualquer momento podemos alterar o conteëdo das caixas utilizando o simbolo = ,


nesse caso o valor anterior da caixa serë apagado e sempre guardarë apenas o ëltimo
valor. -gora imaginemos que temos poucas caixas vazias e para economizar vamos pedir
ao computador que guarde o resultado da mëdia no mesmo lugar onde estava a soma, jë
que a soma nëo serë mais usada. Para isso o comando seria o seguinte:




Neste caso, o computador vai dividir o conteëdo da caixa r por 3 e o resultado vai guardar
na mesma caixa r, apagando o resultado anterior. Este tipo de procedimento podemos fazer
quando nëo precisamos guardar os valores anteriores.

Para colocar o nome das caixas nos algoritmos podemos utilizar qualquer letra ou palavra,
mas sempre ë recomedë vel usar palavras ou letras associadas ao conteë do. Por
exemplo, para guardar a mëdia nës colocamos a letra , poderiamos usar tambëm:
 ( (å'$, etc.

!    ëë 
Para que possamos passar ao computador uma soluëëo em forma de algoritmo de forma
clara e precisa necessitamos de uma linguagem de programaëëo. Neste curso vamos
aprender a linguagem # 
. *ma linguagem de programaëëo ë apenas uma
ferramenta de comunicaëëo para que o computador possa fazer o que nës pedimos. Em
outras palavras, o computador ë um auxiliar para resolver nossos problemas, jë que tem
capacidade de processar rëpido uma grande quantidade de comandos, e a linguagem
Pascal ë uma das linguas que nosso auxiliar entende.
*ma das vantagens de utilizar programas para fazer cëlculos ou resolver problemas ë que
podemos executar quantas vezes seja necessërio, alterando apenas alguns dados. No
exemplo anterior, suponha que queremos saber a mëdia das notas de outro aluno ou de
uma outra disciplina. *sando o programa nëo precisamos fazer nenhum cëlculo
adicional. -penas alteramos os valores de ( e  e obteremos o resultado do novo
cëlculo.
!  # 

Nas prëximas aulas vamos explicar os comandos bësicos da linguagem Pascal, que
utilizaremos para programar e resolver problemas com a ajuda do computador. Por
enquanto ë importante lembrar que um algoritmo nos ajuda a organizar nossas idëias para
resolver o problema antes de passar para a linguagem do computador. Este mëtodo ë util
especialmente para programas longos e complexos. Geralmente, depois que um algoritmo
estë muito bem descrito a passagem para uma linguagem ë relativamente fëcil.
å" 
1.
O computador sabe fazer as operaëëes bësica como a multiplicaëëo,
divisëo, soma e substraëëo. Faëa um algoritmo para o computador calcular o
quadrado de um nëmero.
2.
Como seria o algoritmo para o computador determinar o valor mëximo entre dois
nëmero - e B ?.
3.
Pensa um pouco sobre o problema da mëdia. Imagina agora que temos a nota final
de todos os alunos da classe (20 alunos). Como faria o computador para calcular a
më dia da classe?

-lgumas consideraëëes
1.
Este curso foi preparado com o objetivo de ensinar como resolver problemas usando
os comandos bësicos da linguagem Pascal. Com a base dada neste curso vocë
estarë em condiëëes de explorar todos os comandos da linguagem Pascal e
aprender outras linguagens de programaëëo.
2.
Para acompanhar o curso e testar seus programas, voces vëo precisar de um
 
 . O compilador ë um programa que verifica se seu programa esta
escrito corretamente e o prepara para executar. -qui vocë encontra os detalhes de
como instalar e usar um compilador de Pascal.
3.
- programaëëo së se aprende praticando, por isso ë imprescindëvel fazer os
exercë cios para poder acompanhar o curso.

<-- -nterior | Prëxima -->

     


%$
&
Para escrever nosso primeiro programa vamos voltar ao problema da primeira aula. ÿamos
passar o algoritmo que foi escrito para a linguagem Pascal.

O algoritmo que elaboramos foi o seguinte:

$
  

1. Atribuir os valores  


 
  

2. Calcular a soma:
   

3. Calcular a m ëáia: 3




4. Mostrar o resultaáo 3

Së para lembrar: ( e  contëm as notas, r guarda o resultado da soma e  guarda


o resultado da mëdia.

a    
     
  # 
+
-ntes de passar o algoritmo para a linguagem # 
vamos ver como ë a estrutura de um
programa em # 

¦   nome;
áeclaraëëes {variaveis, tipos, etc.}
 
comanáos {corpo áo programa}


- estrutura do programa em # 
consta de dois componentes: cabeëa e corpo. Na
primeira parte sëo declarados os tipos e variëveis. Mais para frente explicaremos o
significado desta parte. No momento vamos nos concentrar na segunda parte que ë o corpo
do programa. Como podemos observar o corpo do programa comeëa com a palavra 
e acaba com å
-s palavras #  ( e å sëo palavras reservadas da linguagem Pascal e sempre
estarëo presentes em todos os programas. -gora vamos passar o nosso algoritmo da
mëdia para um programa em # 
.

#  
¦  3 

    

3 
 
   {entraáa na primeira nota}
  {entraáa áa segunáa nota}
   {entraáa áa terceira nota}

   {cëlculo áa soma áas notas}
 3
 {cëlculo áa mëáia}
    3 {mostrar o resultaáo}


ÿemos que o algoritmo inteiro foi passado para o corpo do programa. ÿemos tambëm que
na cabeëa aparece a declaraëëo de N1, N2, N3, S e M. Em breve explicaremos porque
sëo importantes as declaraëë es.
O corpo do programa consta geralmente de trës partes principais: entrada de dados,
processamento ou cëlculo e saëda dos resultados, como mostra a seguinte figura:

 

 


  
3


      ë 3


å     
Na entrada de dados nës fornecemos ao computador os dados que ele precisa para
trabalhar. *ma forma simples de fazer isso ë atribuindo valores. Por exemplo, no
programa anterior quando escrevemos )**, estamos indicando ao computador que o
valor de  ë 5,5. -prenderemos outras formas de entrada de dados ao longo do curso.
r ë   
Na saëda visualisamos os resultados dos cëlculos. No Pascal existe o comando  

que ë utilizado para mostrar os dados. No exemplo anterior a linha:
       ë 3

Mostra na tela do computador a seguinte mensagem


o resultaáo áa meáia ë: 5,666

#     
Este ë o lugar onde acontecem todo tipo de cëlculos e onde os resultados sëo gerados.
Este ë tambem o lugar onde as decisëes sëo tomadas de acordo com o resultado dos
cëlculos. Como as decisëes sëo tomadas aprenderemos na prëxima aula.
No exemplo anterior a linha:

  
indica que primeiro sëo somados os valores de ,  e  , depois o resultado ë
guardado no lugar do r

 ëë  ë 
No exemplo anterior utilizamos ( e  para identificar as notas das provas. Na
linguagem de programaëëo estes nomes sëo chamados de  ë . O computador
utiliza as variëveis para guardar em sua memëria os valores de entrada ou os resultados
dos cëlculos. Portanto as variëveis sëo nomes que damos a lugares quando desejamos
guardar alguma coisa na memëria do computador -- por exemplo o resultado da mëdia.
Imagine a memëria do computador como uma pilha de caixas vazias. Se desejamos
guardar alguma coisa nas caixas colocamos una etiqueta para identificar, por exemplo,
 " . -lëm disso anotamos o que estamos guardando. Por exemplo, se usamos a caixa
para guardar livros nos escrevemos:  " 
 . ë exatamente isso que o computador
faz quando nës escrevemos na cabeëa do programa a seguinte linha:

     
Neste caso, o computador procura 3 caixas vazias e coloca a etiqueta ,
, ,
e
 ,
indicando que as caixas guardam nëmeros reais.

ë importante avisar ao computador o que vamos guardar nas caixas para ele procurar
caixas de tamanho adequado. Este processo chamamos de 
 ëë  ë . Na
cabeëa do programa escrevemos a palavra ÿ  para avisar ao computador que nessa parte
estëo as declaraëëes. O nome das variëveis pode ser qualquer palavra, letra ou
combinaëë o de letras com nëmeros, comeëando sempre com uma letra como no
exemplo anterior. Porëm, nao podemos usar como nome de variëvel as palavras
reservadas da linguagem.

$
ë ë  -           ë     +
Geralmente, o computador trabalha bastante com nëmeros reais e inteiros, mas tambëm
pode guardar outros    , como por exemplo, caracteres (um caractere ë uma
letra, sëmbolo ou dëgito), da seguinte forma:

   
a  ë   -            ë +
Isso saberemos mais tarde. Por enquanto vamos treinar o que jë aprendemos. Por exemplo,
vamos fazer um programa para o computador calcular o quadrado de um nëmero N=16.
r
ëë 
ÿamos supor que N seja o nëmero e Q o quadrado deste nëmero. Para calcular o
quadrado multiplicamos o nëmero por ele mesmo.

$
   #  
1. Atribuir N=16 Program quaáraáo;
Var N,Q : Integer;
2. Calcular Q=N*N Begin
N:=16;
3. Mostrar Q Q:=N*N;
Writeln(Q);
Ená.

å"ë 
1.
Nës construë mos uma caixa d'ëgua que tem a forma de um paralelëpedo
(veja figura), e gostarëamos de saber quanto de ëgua vamos armazenar nesta
caixa. Faëa um programa que calcule o volume da caixa dadas as suas
dimensë es: altura=3, largura=5 e comprimento=8.5.
2.
Para saber quando de material foi gasto na construëëo da caixa em forma de
paralelëpedo, precisamos saber a ërea externa da caixa. Modifique o
programa que calcula o volume da caixa, para que ele calcule toda a ërea
externa ao invës do volume. Considere que a caixa deve ser fechada.
3.
O ëndice da massa corpërea (IMC) ë usado pelos nutricionistas para
determinar se estamos magros ou gordos. Faëa um programa que calcule o
IMC de uma pessoa, dada sua altura e peso. O IMC ë calculado como peso
em kg, dividido pelo quadrado da altura, em metros:

-s soluëëes dos exercëcios vocë encontra aqui, porëm recomendamos que vocë
tente resolver antes de olhar as respostas.
-lgumas consideraëëes
- linguagem Pascal tem algumas regras que sempre devemos considerar quando
escrevemos programas.

X
§odos os comandos tem um . no final (com algumas exceëëes)
X
Para alterar o conteëdo de uma caixa ou variëvel utilizamos um ) e nëo um =
como nos algoritmos
X
Para Pascal nëo existe diferenëa entre letras maiusculas e minusculas, portanto
voce pode escrever os comandos e os nomes de variëveis com qualquer letra.
X
Os comentërios dentro do programa nëo sëo considerados pelo computador,
porëm sempre ë recomendavel escrever os comentërios explicando o que faz
cada linha ou bloco do programa. Isso nos ajudarë, por exemplo, a entender o que
faz o programa quando quisermos voltar a usë-lo depois de alguns meses. Para
escrever comentërios dentro do programa vocë pode usar o ë% e ë& ou / e 0

<-- -nterior | Prëxima -->

§   ë 
%$
 &
Em todo momento sempre estamos tomando decisëes de acordo com as condiëë es que
vëo surgindo em nossa vida. Por exemplo, quando saëmos de casa temos que levar
guarda-chuva se estiver chovendo. Dependendo do tempo, se estë fazendo frio ou calor,
temos que decidir que roupa vamos vestir. Da mesma forma, para resolver problemas,
temos que levar em consideraëëo as condiëëes, e de acordo a cada situaëëo temos
que tomar decisëes.
ÿejamos o problema da mëdia da aula anterior. ÿamos supor que agora gostarëamos que
o computador nos informasse de acordo com o resultado da mëdia se fomos aprovados ou
nëo na disciplina de matemëtica. Para tanto, elaboramos o seguinte algoritmo.
$
  
1. Atribuir os valores a   

2. Calcular a soma:
   

3. Calcular a m ëáia: 3




4. Se a m ëáia for maior ou igual a 5: informar aprovaáo

5. Caso contr ërio: informar reprovaáo

O programa correspondente a este algoritmo seria:

#  
Program resultaáo;
Var N1,N2,N3 : Real;
S, M : Real;
Begin
N1:=7.5;
N2:=5.5;
N3:=4.5;
S:=N1+N2+N3;
M:=S/3;
If (M >= 5) Then
Writeln('aprovaáo')
Else
Writeln('reprovaáo');
Ená.

-nalisando o programa observamos que uma condiëëo ë traduzida em Pascal usando os


comandos '1... å!råe a estrutura geral ë a seguinte

Œ conáiëëo § 
fazer tarefa 1


fazer tarefa 2 ;

Dependendo do resultado da condiëë o o computador realiza apenas uma das tarefas. Se


resultado da condiëëo for verdadeiro o computador executa a tarefa 1, e se for falso ele
realiza a tarefa 2.
Existem situaëëes em que devemos fazer apenas uma tarefa; nesse caso nëo utilizamos
o å!rå
Œ conáiëëo § 
fazer tarefa;
Que acontece se existem mais de um comando a ser executado para cada condiëëo? Para
o computador saber que comandos ou tarefas fazem parte de uma condiëëo, vamos usar
blocos. *m bloco ë uma seqëëncia de comandos que comeëa com å'e termina
com å. Portanto a estrutura de IF usando bloco seria:
Œ conáiëëo § 
Œ
comanáo1;
comanáo2;
comanáo3;
......

De forma similar para o ELSE tambëm podemos usar o bloco quando for necessërio.
§   
 
Na aula anterior jë vimos alguns tipos de dados que o computador utiliza, como ' 
para nëmero inteiros, ,
para nëmeros reais e ac  para caracteres.

Nesta aula vamos aprender um novo tipo que ë o 


 . O computador utiliza
variëveis de tipo boolean para saber o resultado de uma condiëëo ou comparaëë o.
Portanto uma variëvel de tipo boolean pode ter apenas dois valores: F-LSO ou
ÿERD-DEIRO, em Pascal isso significa, F-LSE ou §R*E.

ÿejamos um exemplo de como usar as variëveis de tipo boolean. No exemplo anterior,


suponha que precisamos guardar em uma variëvel o resultado (se estamos aprovados ou
nëo). Logo, o programa modificado seria:
#      
Program resultaáo;
Var N1,N2,N3 : Real;
S, M : Real;
Result : Boolean;
Begin
N1:=7.5;
N2:=5.5;
N3:=4.5;
S:=N1+N2+N3;
M:=S/3;
If (M >= 5) Then
Result:=True
Else
Result:=False;
Ená.
Dentro de uma condiëëo podem existir outras condiëëes, como veremos no prëximo
exemplo.
# 
 
Faëa um programa que dados trës nëmeros, mostre qual ë o maior deles.
r
ëë 
Sejam N1, N2 e N3 os trës nëmeros. ÿamos comparar primeiro N1 e N2. Se N1 for
maior, vamos comparar ele com N3. Em caso contrërio vamos comparar N2 com N3.
Dependendo do resultado dessas comparaëëes saberemos quem ë o maior.
$
  
N1 = 3
N2 = 9
N3 = 1
Se N1 > N2 entao
Se N1 > N3 entao
Diga que N1 ë o maior
Senao
Diga que N3 ë o maior
FimSe
Senao
Se N2 > N3
Diga que N2 ë o maior
Senao
Diga que N3 ë o maior
FimSe
FimSe
ÿemos que o algoritmo ficou um pouco diferente mas ainda assim podemos entender o que
faz cada linha. ÿocë pode escrever seu algoritmo como melhor achar, mas sempre escreva
suas idëias em um algoritmo antes de programar. Passar esse algorimo para um programa
ficou mais fëcil.
#  
Program maior;
Var n1, n2, n3: real;
Begin
N1 := 3;
N2 := 9;
N3 := 1;
If (N1>N2) Then
If (N1>N3) Then
writeln ('N1 e o maior')
Else
writeln ('N3 e o maior')
Else
If (N2>N3) then
writeln ('N2 e o maior')
Else
writeln ('N3 e o maior');
Ená.
å" 
1.
Dois alunos fizeram trës provas cada um (P1, P2 e P3), e vocë tem a nota de cada prova de
cada aluno. Mostre um algoritmo que diga qual deles tem a maior mëdia. Depois, transforme
seu algoritmo em programa Pascal.
2.
§  # ë  *ma importante descoberta de Pitëgoras foi o teorema que leva seu
nome, ensinado hoje em escolas de todo o mundo. -o observar os triëngulos retëngulos (que
tëm um ëngulo de 90 graus, chamado ëngulo reto), o filësofo notou que eles obedecem a
uma lei matemëtica: a soma dos quadrados dos catetos (lados menores do triëngulo) ë igual
ao quadrado da hipotenusa (lado maior). ÿeja a figura:

a2 + b2 = c2
Faëa um programa que, dados os trës lados de um triëngulo, determine ele ë um
triëngulo retëngulo ou nëo.

3.
Na aula anterior aprendemos como calcular o ëndice de massa corpërea (IMC) de uma pessoa.
Faëa um programa para que o computador nos informe se estamos magros, normais ou
obesos, de acordo com a seguinte condiëëo: Se o IMC ë menor que 20 estamos magros,
precisamos nos alimentar melhor. Se o IMC estë acima de 25 estamos obesos, devemos
comer menos e fazer mais exercëcios fësicos. Se o IMC estiver entre 20 e 25 estamos
normais, ou seja, nossas alimentaëëo e atividades fësicas estëo balanceadas.
4.
Execute o seguinte programa (isto ë, simule o que o computador faria ao executë-lo). Indique
o que serë mostrado na tela do computador.
5.
Program p;
6.
Var a,b,c,aux: integer;
7.
Begin
8.
a:=5; b:=3; c:=9;
9.
If (a>b) Then Begin
10.
aux:=a; a:=b; b:=aux;
11.
Ená;
12.
If(b>c) Then Begin
13.
aux:=b; b:=c; c:=aux;
14.
Ená;
15.
If(c>a) Then Begin
16.
aux:=c; c:=a; a:=c;
17.
Ená;
18.
Writeln(a,b,c);
19.
Ená.
-s soluëëes dos exercëcios voce encontra aqui, porëm recomendamos que voce tente
resolver antes de olhar a resposta.
-lgumas consideraëëes
X
- linguagem Pascal permite escrever muitos comandos na mesma linha, porem ë
recomendado que seja escrito apenas um comando por linha para facilitar o
entendimento do programa e apenas em casos de comandos simples (por exemplo,
atribuiëëes) usar mais de um comando por linha.
X
-penas com um comando  
 podemos mostrar varios resultados. Neste caso
as variëveis devem ser separadas por um (. §ambëm podemos incluir textos
dentro do  
 usando duas aspas ( ' ), como mostra o seguinte exemplo:
X
       ë       ë 

X
Nëo coloque o .no comando anterior a ELSE, inclusive no comando END

<-- -nterior | Prëxima -->

, ëë 
%$
2&
*ma das grandes vantagens da programaëëo ë que podemos agrupar cëlculos
repetidos e informar ao computador atravës da linguagem de programaëëo que trechos
deve repetir, quantas vezes ou em que condiëëes. Para entender melhor vamos resolver o
seguinte problema.
# 
 
Calcular e mostrar o quadrado de todos os nëmero inteiros de 1 atë 100
r
ëë 
O problema de calcular o quadrado de um nëmero jë vimos na segunda aula. Seja  o
nëmero e  o seu quadrado, portanto )ë.
Como seria a seqëëncia de procedimentos para calcular o quadrado dos primeiros 100
nëmeros inteiros? *ma soluëëo simples seria trocar o valor de  em todo momento,
como mostra o algoritmo 1. Em vez de atribuir o valor de  em todo momento tambëm
podemos calcular somando 1 a seu valor anterior, como mostra o algoritmo 2.

$
   $
  
1. Atribuir N = 1 1. Atribuir N=1
2. Calcular Q = N*N 2. Calcular Q=N*N
3. Mostrar Q 3. Mostrar Q

4. Atribuir N = 2 4. Aáicionar 1 a N
5. Calcular Q = N*N 5. Calcular Q=N*N
6. Mostrar Q - 6. Mostrar Q
-
7. Atribuir N = 3 - 7. Aáicionar 1 a N
8. Calcular Q = N*N > 8. Calcular Q=N*N
9. Mostrar Q 9. Mostrar Q

10. Atribuir N = 4 10. Aáicionar 1 a N


11. Calcular Q = N*N 11. Calcular Q=N*N
12. Mostrar Q 12. Mostrar Q

.............. ..............

Olhando os dois algoritmos vemos que o programa seria muito longo para calcular o
quadrado dos 100 nëmeros. Existe uma forma mais curta de dizer ao computador para
resolver este problema? Olhando o algorimo 2 percebemos que a partir da linha 4 os
comandos se repetem a cada trës linhas. Portanto pedimos ao computador simplesmente
para repetir o seguinte trecho:
Aáicionar 1 a N
Calcular Q=N*N
Mostrar Q
Como resultado temos o algortimo 3 mostrado abaixo. Porëm existe um problema,
precisamos indicar ao computador quantas vezes deve repetir o trecho. *ma forma de fazer
isso ë colocando uma condiëëo. Neste caso a condiëëo seria: repetir o trecho
enquanto  for menor ou igual a 100 como estë escrito no algoritmo 4.

$
    $
  2
1. Atribuir N = 1 1. Atribuir N=1
2. Calcular Q = N*N - 2. Calcular Q=N*N
3. Mostrar Q - 3. Mostrar Q
4. Repetir o seguinte trecho - 4. Repetir enquanáo N <= 100
5. Aáicionar 1 a N > 5. Aáicionar 1 a N
6. Calcular Q = N*N 6. Calcular Q=N*N
7. Mostrar Q 7. Mostrar Q

Observando o algoritmo 4 notamos que ainda tem linhas repetidas. Serë possëvel fazer
ainda mais curto este algoritmo? Em algumas situaëëes ë possëvel reduzir ao
mëximo o nëmero de linhas do algoritmo ou programa. Para isso vamos precisar um
pouco de nossa criatividade e muitas vezes mais da experiëncia. ÿocë mesmo perceberë
isso quando fizermos mais exercëcios. ÿoltando ao nosso algoritmo, podemos fazer uma
pequena alteraëëo no valor de  e eliminar as linhas 2 e 3. Se Inicializamos o  com
zero, o quadrado de 1 poderë ser calculado dentro do bloco de repitiëëo e teremos um
algoritmo reduzido.
$
  
1. Atribuir N=0
2. Repetir enquanáo N <= 100
3. Aáicionar 1 a N
4. Calcular Q=N*N
5. Mostrar Q
No Pascal utilizamos Comando WHILE...DO para indicar ao computador que vamos repetir
um trecho do programa enquanto uma condiëë o for satisfeita. ÿejamos como fica o
algoritmo na linguagem Pascal.
#  

Program quaáraáos;
Var N,Q: Integer;
Begin
N:=0;
While(N <=100) áo
Begin
N:=N+1;
Q:=N*N;
Writeln('o quaáraáo áe
', N, 'eh', Q);
Ená;
Ená.

Observando o programa vemos que alëm do c


 aparecem outras duas palavras
reservadas da linguagem que jë conhecemos: o å. Neste caso, estas palavras
sëo utilizadas para informar ao computador onde comeëa e acaba o trecho do programa
que precisa ser repetido. O formato geral do comando WHILE ë o seguinte:
 Œ conáiëëo 
Œ
blocos áe comanáos

å     
-të agora vimos uma forma de entrada de dados usando apenas atribuëëo. Nesta aula
vamos aprender uma outra forma de entrada de dados bastante utilizada.ë muito
trabalhoso ter que ir ao programa e mudar os valores dos dados cada vez que desejamos
fazer cëlculos com novos dados. Por exemplo, no programa da mëdia temos que alterar
os valores de ( e  se quisermos calcular a mëdia das notas de outro aluno. Ficaria
mais fëcil se pudëssemos informar isso durante a execuëëo do programa. Cada vez
que o programa precisar dos dados nës fornecerëamos atravës do teclado. Para fazer
isso em Pascal existe o comando chamado , 
.
Este comando lë os dados do teclado quando nës digitamos as letras e os nëmeros. Por
exemplo, se desejamos que o computador leia o valor de  do teclado, nës escrevemos a
seguinte linha:
, 
%&;
Neste caso, o computador vai esperar que nës digitemos o nëmero e apertemos a tecla
å§å, para ler o nëmero.
a        ë -
ë    
 +

Para saber a resposta vamos alterar o programa da mëdia da aula anterior.


#  
Program resultaáo;
Var N1,N2,N3 : Real;
S, M : Real;
Begin
Reaáln(N1) ;
Reaáln(N2) ;
Reaáln(N3) ;
S:=N1+N2+N3;
M:=S/3;
If(M >= 5) Then
Writeln('aprovaáo')
Else
Writeln('reprovaáo');
Ená.
Para treinar o que foi aprendido nesta aula vamos resolver um outro problema
# 
 
- Bolsa de ÿalores de Sëo Paulo tem um ëndice que mede o quanto a maioria das
aëëes vale, levando em conta a importëncia relativa de cada empresa na bolsa. Esse
ëndice e atualizado todos os dias.
O ëndice pode mudar devagar (1,5% ao dia, por exemplo) ou muito rëpido (3% ao dia
seria muito rëpido). ÿocë quer saber se o ëndice costuma "cair rëpido" mais do que
"subir rëpido".
Faëa um algoritmo que leia os percentuais de cada dia, e apenas para os dias em que o
ëndice variou mais de 1%, conte ou "mais uma subida" ou "mais uma queda". O algoritmo
termina quando o usuërio entrar "-100".
-o final da execuëëo, o algoritmo deve mostrar o nëmero de subidas e quedas bruscas.
,  
ÿamos supor que ÿ seja o valor percentual das subidas ou quedas. Este valor vamos
informar ao computador cada dia. Depois de vërios dias, quando desejamos saber quantas
quedas e subidas acima de 1% teve a bolsa, digitamos -100. Portanto o -100 ë a
condiëëo para finalizar o cëlculo. §ambëm precisamos guardar o nëmero de subidas
e quedas, para tanto vamos utilizar as variëveis r e  . O algoritmo seria o
seguinte.
$
  
Subiáas=0
Queáas=0
Leia V
Enquanto V n ëo for -100
Se V maior 1 ent ëo
Aáicione 1 a Subiáas
Se V menor que -1
Aáicione 1 a Queáas
Leia V
FimEnquanto
O programa correspondente ao algoritmo ë o seguinte:
#  
Program bolsa;
Var V: real;
Subiáas, Queáas: integer;
Begin
Subiáas := 0;
Queáas := 0;
While (V <> -100) áo
Begin
Reaáln (v);
If (V > 1) Then
Subiáas := Subiáas + 1;
If (V < -1) Then
Queáas := Queáas + 1;
Ená;
writeln ('Dias em que o ináice subiu: ', subiáas);
writeln ('Dias em que o ináice caiu: ', queáas);
ená.

å"ë 
1.
ÿocë nëo ficou contente com o algoritmo para analisar o ëndice da bolsa de valores. -gora
vocë quer saber tambëm quanto, na mëdia, foi o percentual das mudanëas repentinas no
ëndice. Modifique o programa anterior para que ele mostre o seguinte:
ëndice subiu muito : NNN vezes (em mëdia NN% a cada subida brusca)
ëndice caiu muito : NNN vezes (em mëdia NN% a cada queda brusca)
2.
ë    se dice que um nëmero ë primo se este ë divisivel apenas por 1 e ele
mesmo, por exemplo, 17 ë um nëmero primo, enquanto o 15 nëo ë primo, ja que ë
divisivel por 3 e 5. Os nëmeros primos tem sido bastante usados na criptografia, por exemplo,
para a transmissëo mais segura de informaëëes secretas. Imagina, por exemplo que
desejamos transmitir pela internet uma mensagem contendo senha de acesso ë conta do um
banco, se enviamos sem codificar, existe a posibilidade de alguem interceptar a nossa
mensagem e ficar sabendo nossa senha. Os nëmeros primos sëo usados justamente para
codificar uma mensagem e transmitir pela internet sem que outros possam desifrar o conteudo
da mensagem. - vantagem de usar os nëmeros primos se deve ao fato que ë difëcil saber se
um nëmero grande (mais de 100 dëgitos) ë primo ou nëo. Faëa um algoritmo que tenha
como entrada um nëmero N, e mostre os nëmeros primos atë esse nëmero.
3.
Faëa agora um algoritmo que, dados nëmeros de zero atë um mëximo, mostre a soma de
todos os nëo-primos, subtraëda da soma dos primos.
4.
O fatorial de um nëmero N ë o produto de todos os nëmeros de 1 atë N. Por exemplo, o
fatorial de 4 ë 4x3x2x1 = 20. O computador sabe fazer as operaëëes bësicas, porem nëo
sabe como calcular o fatorial de um nëmero. Faëa um programa para o computador calcular
o fatorial de N=10.
5.
Na aula anteior jë vimos como determinar se um nëmero ë divisivel por outro. Faëa um
programa para calcular a soma de todos os nëmeros inteiros menores que 100 e que nëo
sejam divisëveis por 3.

-s soluëëes voce encontra aqui.


-lgumas consideraëëes
X
Os comandos '1 e c
 podem ter mais de uma condiëë o, unidos por , ou
$. Por exemplo:
X
WHILE (N >0 - N <100) DO BEGIN
X
......
X
END;

Isso significa que o bloco dentro do c


 sera repetido enquando o N for maior
que 0 å menor que 100.

X
Em um mesmo comando , 
 podemos ler mais de um dado, por exemplo a
leitura de dados no programa da media pode ser escrito ainda como:
X
Reaáln(N1,N2,N3);
X
 

    ë + No pascal existe um operador chamado
, que calcula o resto de uma divisëo. Por exemplo:

10  3 ë igual a 1

O operador  ë util para saber se um nëmero ë divisivel por outro. Por


exemplo para saber se 50 ë divisivel por 4, calculamos o 50  4. Como o
resultado e igual a 2, concluë mos que 50 nëo ë divisivel por 4. Para um
nëmero ser divisëvel por outro, o resto da divisë o deve ser igual a zero

<-- -nterior | Prëxima -->

Vous aimerez peut-être aussi