Você está na página 1de 41

Tcnicas de Programao

Profa. Elaine J.C.Brito


Tcnicas de Programao

Conceito de Algoritmo
A automao o processo pelo qual uma tarefa deixa de ser executada pelo homem para
ser realizada por mquinas. Para que a automao seja bem sucedida necessrio que a mquina
seja capaz de desempenhar cada uma das etapas constituintes do processo a ser automatizado com
eficincia, de modo a garantir a repetibilidade do mesmo. Portanto necessrio que seja especificado
com clareza e exatido o que deve ser realizado em cada uma das fases do processo a ser
automatizado, bem como a seqncia em que estas fases devem ser realizadas.
especificao da seqncia ordenada de passos que deve ser seguida para a realizao de uma
tarefa, garantindo a sua repetibilidade, d-se o nome
algoritmo.
Algoritmos no se aprende:
Algoritmo no a soluo de um problema, pois, se
assim fosse, cada problema teria um nico algoritmo. Copiando Algoritmos
Algoritmo um caminho para a soluo de um problema, e Estudando Algoritmos
em geral, os caminhos que levam a uma soluo so muitos.
Algoritmos s se aprendem:
O aprendizado de algoritmos no se consegue a no
ser atravs de muitos exerccios. Construindo Algoritmos
Testando Algoritmos

Exemplo de Algoritmo
Imagine o seguinte problema: Calcular a mdia final dos alunos da 1 Srie. Os alunos
realizaro quatro provas: P1, P2, P3 e P4.

Onde: Mdia Final = P1+P2+P3+P4


4

Para montar o algoritmo proposto, faremos trs perguntas:


a) Quais so os dados de entrada?
R: Os dados de entrada so P1, P2, P3 e P4
b) Qual ser o processamento a ser utilizado?
R: O procedimento ser somar todos os dados de entrada e dividi-los por 4 (quatro)
c) Quais sero os dados de sada?
R: O dado de sada ser a mdia final

Algoritmo
Receba a nota da prova1
Receba a nota de prova2
Receba a nota de prova3
Receba a nota da prova4
Calcule Mdia Final somando todas as notas e dividindo o resultado por 4
Mostre a Mdia Final

Variveis
O computador possui uma rea de armazenamento conhecida como memria. Todas as
informaes existentes no computador esto ou na memria primria (memria RAM), ou na memria
secundria (discos, fitas, CD-ROM etc). Ns iremos trabalhar, neste curso, somente com a memria
primria, especificamente com as informaes armazenadas na RAM (memria de acesso aleatrio).

1
Tcnicas de Programao

A memria do computador pode ser entendida como uma seqncia finita de caixas, que
num dado momento, guardam algum tipo de informao, como um nmero, uma letra, uma palavra,
uma frase etc, no importa, basta saber que l sempre existe alguma informao.
O computador, para poder trabalhar com alguma destas informaes, precisa saber onde,
na memria, o dado est localizado. Fisicamente, cada caixa, ou cada posio de memria, possui
um endereo, ou seja, um nmero, que indica onde cada informao est localizada. Este nmero
representado atravs da notao hexadecimal, tendo seu tamanho definido em bytes, pois se
quisermos escrever (ou ler) algum dado da (na) memria do computador, teremos que faze-lo byte a
byte. Abaixo segue alguns exemplos:

Endereo Fsico Informao


3000: B712 Joo
2000: 12EC 12345
3000: 0004 H

Como pode ser observado, o endereamento das posies de memria atravs de nmeros
hexadecimais perfeitamente compreendido pela mquina, mas para ns humanos torna-se uma
tarefa complicada. Pensando nisto, as linguagens de computador facilitaram o manuseio, por parte
dos usurios, das posies de memria da mquina, permitindo que, ao invs de trabalhar
diretamente com o nmero hexadecimal, fosse possvel dar nomes diferentes a cada posio de
memria. Tais nomes seriam de livre escolha do usurio. Com este recurso, os usurios ficaram
livres dos endereos fsicos (nmeros hexadecimais) e passaram a trabalhar com endereos lgicos
(nomes dados pelos prprios usurios). Desta forma, o Exemplo acima, poderia ser alterado para ter
o seguinte aspecto:

Endereo Lgico Informao


Nome Joo
Nmero 12345
Letra H

Como tnhamos falado, os endereos lgicos so como caixas, que num dado instante
guardam algum tipo de informao. Mas importante saber que o contedo desta caixa no algo
fixo, permanente, na verdade, uma caixa pode conter diversas informaes, ou seja, como no
Exemplo acima, a caixa (Endereo Lgico) rotulada de Nome num dado momento contm a
informao Joo, mas em um outro momento, poder conter uma outra informao, por Exemplo
Pedro. Com isto queremos dizer que o contedo de uma destas caixas (endereo lgico) podem
variar, isto podem sofrer alteraes em seu contedo. Tendo este conceito em mente, a partir de
agora iremos chamar de forma genrica, as caixas ou endereos lgicos, de variveis.
Desta forma podemos dizer que uma varivel uma posio de memria, representada por
um Nome simblico (atribudo pelo usurio), a qual contm, num dado instante, uma informao.
Uma varivel possui trs atributos: um nome, um tipo de dado associado mesma e a
informao por ela guardada.

Para o algoritmo da pgina 1 desta apostila, temos 5 variveis:


Nota1, Nota2, Nota3, Nota4 e Mdia

O nome de uma varivel formado por uma letra ou ento por uma letra seguida de letras ou dgitos,
em qualquer nmero. No permitido o uso de espaos em branco ou de qualquer outro caractere,
que no seja letra ou dgito, na formao de um identificador.

2
Tcnicas de Programao

Exemplo:
SALRIO correto
SAL/HORA errado (contm o caractere /)
SAL HORA errado (contm o caractere em branco)
SAL_HORA correto
1ORAMENTO errado (no comea com caractere)
Na formao do nome da varivel d um nome significativo, para que se possa ter idia do
seu contedo sem abri-la. Se utilizar mais de uma palavra para compor o nome da varivel utilize o _
underline para separar as palavras.

Exerccios:

1. Observe os nomes de variveis a seguir, classifique-os como vlidos ou


invlidos. Quando invlidos comente o erro.
TotAL _________________________________________________________________________
1dia __________________________________________________________________________
med$10 _______________________________________________________________________
med1 _________________________________________________________________________
var ___________________________________________________________________________
total geral ______________________________________________________________________

2. Para cada situao a seguir, crie um nome de varivel procurando escolher nomes que
lembre a situao apresentada:
Primeira nota em uma disciplina ________________________
Valor total de uma nota fiscal ________________________
Altura de pessoas ________________________
Data de nascimento ________________________
Quantidade em estoque ________________________

Constantes e Variveis
Considere a frmula matemtica simples do calculo do volume de uma esfera:
4
Volume = R3
3
onde se encontram:
1- Valores que podem ser classificados como:
valores constantes, invariantes em todas as aplicaes da frmula, no caso dos valores 4, 3 e os
quais denomina-se constantes;
valores a serem substitudos na frmula, em cada aplicao; a representao destes valores,
usualmente feita atravs de letras, que recebem o nome de variveis e tornam a frmula genrica,
possvel de ser aplicada para resolver uma certa classe de problemas e no apenas um problema
especfico.
2 - Operaes a serem feitas sobre determinados operandos (Valores), para a obteno da soluo
do problema.

3
Tcnicas de Programao

Tipos de Dados
Vimos que uma varivel como uma caixa que se pode armazenar coisas definidas dentro
dela. Por que coisas definidas? Pegue uma caixa de papel e tente guardar gua dentro dela. Depois
de um curto espao de tempo, ela se desmanchar. Deste mesmo modo so os nossos repositrios,
necessrio definir claramente o que ele devera conter: valores numricos, caracteres, datas.
necessrio que indiquemos o tipo de informao que uma varivel pode conter. Para isto,
a linguagem Pascal possui definido alguns tipos que devero ser usados quando formos trabalhar
com variveis.

Algoritmo Pascal Descrio Espao


Inteiro INTEGER Representa nmeros entre -32768 at +32767. 2 bytes
-39 38
Real REAL Representa os nmeros entre 2.9 x 10 at 1.7 x 10 . 6 bytes

Caracter CHAR Representa um dos caracteres, da tabela ASCII. 1 byte


Cadeia STRING Conjunto de caracteres ( CHAR ). 1 a 255 bytes
Lgica BOOLEAN Valor lgico. Assume TRUE (Verdade) ou FALSE (Falso). 1 byte
WORD Nmeros de 0 at 65535. 2 bytes
BYTE Nmeros de 0 at 255. 1 byte
Shor Int Representa os nmeros entre -128 at 128 . 1 byte
os
LongInt Representa os n entre -2.147.483.648 at 2.147.483.648. 4 bytes
-45 38
Single Representa os nmeros entre 1.5 x 10 at 3.4 x 10 . 4 bytes
-324 308
Double Representa os nmeros entre 5 x 10 at 1.7 x 10 . 8 bytes

Exerccios:

1) Classifique os dados especificados abaixo de acorda com seu tipo,


assinalando com I os dados do tipo inteiro, com R os reais, com L os literais,
com B os lgicos (booleanos), e com N aqueles para os quais no possvel definir a priori um tipo
de dado.
( ) 0 ( ) +0.05 ( ) -0.0
( ) 1 ( ) +3257 ( ) V
( ) 0.0 ( ) a ( ) abc
( ) -1 ( ) +3257 ( ) F
( ) -32 ( ) +3257. ( ) V
( ) +36 ( ) -0.0
( ) -0.001 ( ) F

2) Sendo:
a, b, c: inteiro
x, y, z: real
r, s: lgico
n, t: string
Quais as atribuies a variveis esto incorretas?

4
Tcnicas de Programao

a) a 11 f) n t k) y 17,3
b) x 11 g) n 15,5 l) t "Certo"
c) r T h) r F m) b 17,5
d) b 15 i) c "Jorge" n) x 19,345678
e) n "Oi" j) z 55,55 o) s "T"

3) Supondo que as variveis Nota, Nome, NMat, SX sejam utilizadas para armazenar a nota, o nome
do aluno, o nmero de matrcula e o sexo, declare-as corretamente, associando o tipo primitivo
adequado ao dado que ser armazenado.

4) Encontre os erros da seguinte declarao de variveis:


Endereo, NFilhos, 5quantidade:inteiro
Idade, X: Caracter
XPTO, C, Peso, R$: Real
Lmpada, C: Lgico

Formas de representao de Algoritmos


Antes de utilizarmos uma linguagem de computador, necessrio organizar as aes a
serem tomadas pela mquina de forma organizada e lgica, sem nos atermos s regras rgidas da
Sintaxe de uma linguagem. Faremos isso atravs dos algoritmos.
Existem diversas formas de representao de algoritmos, dentre as mais conhecidas esto:
Descrio Narrativa;
Diagrama de Bloco ou Fluxograma;
Pseudocdigo, tambm conhecido como Linguagem Estruturada.

1 Descrio Narrativa
Nesta forma de representao, os algoritmos so expressos diretamente em linguagem
natural.
Exemplo:

TROCA DE UM PNEU FURADO:


Afrouxar ligeiramente as porcas
Suspender o carro
Retirar as porcas e o pneu
Colocar o pneu reserva
Apertar as porcas
Abaixar o carro
Dar o aperto final nas porcas
Esta representao pouco usada na prtica porque o uso da linguagem natural muitas vezes d
oportunidade a ms interpretaes, ambigidades e imprecises.
Por exemplo, a instruo afrouxar ligeiramente a porca no algoritmo da troca de pneus est sujeita
a interpretaes diferentes por pessoas distintas. Uma instruo mais precisa seria: afrouxar a porca
girando-a 30 no sentido anti-horrio.

5
Tcnicas de Programao

2 Diagrama de Bloco ou Fluxograma


O que um diagrama de bloco ou fluxograma?
O diagrama de blocos ou fluxograma uma representao grfica de algoritmos onde
formas geomtricas diferentes implicam aes (instrues, comandos) distintos. Tal propriedade
facilita o entendimento das idias contidas nos algoritmos e justifica sua popularidade. Com o
diagrama podemos definir uma seqncia de smbolos, com significado bem definido, portanto, sua
principal funo a de facilitar a visualizao dos passos de um processamento.

Simbologia
Existem diversos smbolos em um diagrama de bloco. No decorrer do curso
apresentaremos os mais utilizados.
Veja no quadro a seguir alguns dos smbolos que iremos utilizar:
Incio e final de um processamento
Terminal Exemplo: Inicio do algoritmo
Indica entrada de dados atravs do teclado
Entrada de dado manual Exemplo: Digite seu nome
Mostra informaes ou resultados
Exibir Exemplo: Exiba a mdia
Processamento geral
Processamento Exemplo : Clculo da mdia
Deciso
Deciso Exemplo : Se mdia >= 5
Dentro do smbolo sempre ter algo escrito, pois somente os smbolos no nos dizem nada.
Veja no exemplo a seguir:

Inicio

N1,N2

Mdia
(N1+N2) / 2

Sim
Aprovado
Mdia

No

Reprovado
Fim

6
Tcnicas de Programao

Exerccios:

1 Faa um fluxograma que receba pelo teclado dois nmeros inteiros, calcule e mostre o dobro do
primeiro e o triplo do segundo.

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

3 Faa um fluxograma que receba pelo teclado um nmero inteiro negativo, calcule e mostre o
quadrado deste nmero.

4 Faa um fluxograma que receba o valor do raio de uma esfera e calcule a sua rea e o seu volume,
baseando-se nas frmulas dadas. Mostre o valor da rea e o valor do volume da esfera. Utilize para
o valor de 3,14.
4 3
2
volume = R
rea = 4R 3

5 Elabore um fluxograma e um programa para ler dois valores inteiros, efetuar e mostrar o resultado
das operaes de adio, subtrao e multiplicao de um nmero pelo outro.

6 Uma loja de animais precisa de um programa para calcular os custos da criao de coelhos. O
custo dado por:

CUSTO = (Nmero_coelhos * 0.70)/18+10.

Deve-se ler o nmero de coelhos, calcular e apresentar o resultado.

7 Segundo a Organizao Mundial de Sade (O.M.S.) o ndice de Massa Corporal (IMC) normal
entre 18.5 e 25 para uma pessoa adulta. Para calcular esse ndice utiliza-se a seguinte frmula:

2
IMC = peso/(altura)

Faa um fluxograma que solicite o peso em Kg e a altura em m de uma pessoa, calcule e exiba o
IMC.

8 Faa um fluxograma que calcule e exiba o troco a ser dado ao cliente. necessrio informar o
valor a ser cobrado e o valor pago.
Troco = valor pago valor a ser cobrado

7
Tcnicas de Programao

3 Pseudocdigo
Esta representao de algoritmos rica em detalhes, como definio dos tipos das
variveis usadas no algoritmo e, por assemelhar-se bastante forma como os programas so
escritos, encontra muita aceitao.
Exemplo:
ALGORITMO Mdia_Calc
Var N1,N2,Mdia: real
INCIO
Escreva ( Digite as duas notas:)
Leia (N1,N2)
Mdia (N1+N2)/2
Escreva ( Sua mdia , Mdia)
FIM

Definio de Variveis
Para definir uma ou mais variveis vamos utilizar a palavra VAR. No algoritmo anterior,
declaramos as variveis N1,N2 e Mdia, todas do tipo Real. Abaixo segue Exemplo de algumas
definies de variveis:
ALGORITMO Teste
VAR
Nome : STRING
Letra, Identificador: CHAR
Soma: INTEIRO
INICIO
<comandos>
FIM

Comando de atribuio
Quando definimos uma varivel natural atribuirmos a ela uma informao. Uma das formas de
colocar um valor dentro de uma varivel, conseqentemente colocar este dado na memria do
computador, atravs da atribuio direta, do valor desejado que a varivel armazena. Para isto
utilizaremos o smbolo
:= (Pascal)
 (Algoritmo)
que significa: recebe, ou seja, a posio de memria que uma varivel representa, receber uma
informao, a qual ser armazenada no interior desta varivel.
Exemplo:
ALGORITMO Teste
VAR
Valor: INTEIRO
INICIO
Valor 10
FIM
O Exemplo acima nos informa que:
a) Foi definida uma varivel, a qual demos o Nome de Valor, e informamos que esta varivel, ou
posio de memria, s poder aceitar dados, que sejam numricos e que estejam entre -32768 a
+32767 ( tipo INTEGER ).
b) Atribumos varivel Valor o valor 10
A memria se comportaria da seguinte forma, de acordo com os itens acima:
a) b)
Varivel Contedo Varivel Contedo
Valor Indefinido Valor 10

8
Tcnicas de Programao

Teste de Mesa
O teste de mesa uma ferramenta de verificao dos algoritmos. dividido em: rea de
memria e rea de tela.
Devemos seguir linha por linha do algoritmo lanando os dados simulando a execuo do
mesmo. Exemplo de teste de mesa do Algoritmo Mdia
Etapa1:
rea de Memria rea de Tela
(O primeiro passo fazer a alocao das (O segundo passo percorrer o algoritmo,
variveis declaras na memria) linha por linha de comando. Na primeira linha
aps o begin temos o comando Escreva, que
N1
exibir na tela uma mensagem, portanto
N2 escrevemos a mensagem na rea de tela)
Mdia Digite as duas notas:
(Observe que elas no apresentam valores)
Etapa2:
rea de Memria rea de Tela
(Na linha seguinte temos o comando Leia, que
recebe o que o usurio digitou na tela para
N1 6.0
atribuir s variveis, ou seja armazena nas
N2 7.0 variveis j alocadas os valores lidos)
Mdia
Digite as duas notas: 6.0 7.0
Etapa3:
Na terceira linha, temos um clculo (Mdia (N1+N2)/2) que feito pelo programa, no sendo
exibido na tela, mas ele atribui o resultado da frmula varivel mdia
rea de Memria rea de Tela
(Nessa etapa a rea de tela no se altera)
N1 6.0 Digite as duas notas: 6.0 7.0
N2 7.0
Mdia 6.5
Etapa4: rea de Tela
rea de Memria (Na quarta linha, temos o comando escreva
que vai exibir uma mensagem na tela, e exibir
N1 6.0
o valor armazenado na varivel mdia)
N2 7.0
Digite as duas notas: 6.0 7.0
Mdia 6.5
Sua mdia 6.5

Atravs dessa simulao pudemos verificar que o programa vai funcionar corretamente. Caso
tivssemos algum erro no algoritmo ele seria identificado durante a execuo do teste de mesa.

Exerccios:
1) Identifique os dados de entrada, processamento e sada no algoritmo abaixo
Receba cdigo da pea Calcule o valor total da pea (Quantidade *
Valor da pea)
Receba valor da pea
Mostre o cdigo da pea e seu valor total
Receba Quantidade de peas

9
Tcnicas de Programao

2) Faa um algoritmo para Calcular o estoque mdio de uma pea, sendo que
ESTOQUEMDIO = (QUANTIDADE MNIMA + QUANTIDADE MXIMA) /2
3) Faa o Teste de mesa do algoritmo anterior com dados definidos por voc.
4) Construa um diagrama de blocos que :
Leia a cotao do dlar
Leia um valor em dlares
Converta esse valor para Real
Mostre o resultado
5) Desenvolva um diagrama de blocos que:
Leia 4 (quatro) nmeros
Calcule o quadrado para cada um
Somem todos e
Mostre o resultado
6) Construa um diagrama de blocos para pagamento de comisso de vendedores de peas, levando-
se em considerao que sua comisso ser de 5% do total da venda e que voc tem os seguintes
dados:
Identificao do vendedor
Cdigo da pea
Preo unitrio da pea
Quantidade vendida

E depois faa um teste de mesa.

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


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

Uso das aspas ( )


Quando estivermos fazendo a atribuio de um valor para uma varivel do tipo CHAR (Caracter) ou
STRING (Cadeia), temos que ter o cuidado de colocar o valor (dado) entre aspas ( ), pois esta a
forma de informar que a informao caracter.
Exemplo:
ALGORITMO Teste
VAR
Letra : CHAR
Nome : STRING
INICIO
Letra A
Nome Joo
FIM
Quando definimos uma varivel como sendo do tipo STRING no estamos alocando 1 posio de
memria apenas, mas na verdade, estamos alocando at 255 caixas, uma para cada caracter da
STRING ( lembre-se que uma STRING pode ter no mximo 255 caracteres ). possvel definir
variveis do tipo STRING(Cadeia) com menos de 255 caracteres. Para isto, basta colocar, aps a
palavra STRING(Cadeia), o nmero de caracteres desejados entre colchetes [ ].

10
Tcnicas de Programao

Exemplo:
ALGORITMO Define
VAR
Nome: STRING[80]
INICIO
FIM
Desta forma, o espao ocupado por uma varivel STRING(Cadeia) passa de 255 bytes para apenas
80 bytes, na memria.

Operadores aritmticos
Os operadores aritmticos so os seguintes:

+ Soma.

- Diferena.

/ Diviso

* Multiplicao

Retorna o resto da diviso de um nmero inteiro por outro.


mod
Ex: 10 div 3 retorna o resto da diviso de 10 por 3, ou seja, 1.

Retorna o quociente da diviso inteira de um nmero por outro.


div
Ex: 5 div 2 retorna o quociente da operao 5/2, ou seja, 2.

Temos tambm algumas funes matemticas e de converso pr definidas no Pascal.

sqr(x ) Retorna o valor do quadrado de x.

sqrt( x) Retorna o valor da raiz quadrada de x.

sin( x) Retorna o valor do seno de x em radianos

cos( x) Retorna o valor do cosseno de x. em radianos

abs( x) Valor absoluto de um nmero x.

arctan( x) Retorna o valor do arco tangente de x em radianos

ln( x) Retorna o logaritmo neperiano de x.

trunc( x) Retorna o valor de x com a parte decimal removida.

exp(x ) Retorna o exponencial de x.

Exp(ln(x)*y) Retorna x elevado a y

Pi Retorna o valor de (3,1415...)

Random(x) Retorna um nmero aleatrio entre 0 e x

Int(x) Retorna a parte inteira de x

Frac(x) Retorna a parte fracionria de x

Round(x) Arredonda x para um inteiro

11
Tcnicas de Programao

Hierarquia das Operaes Aritmticas


1 ( ) Parnteses
2 Exponenciao
3 Multiplicao, diviso (o que aparecer primeiro)
4 + ou (o que aparecer primeiro)
Exemplo:

Exerccios:
1) Suponha que X, Y e Z so variveis reais, com os respectivos valores:
X = 2.0, Y = 3.0, Z=0.5. Calcule o resultado das seguintes expresses:
X*YZ X * (Y-Z) X+Y*Z
y (y-1)
(X+Y)*Z X 1 X

2) Dada a declarao de variveis:


VAR A, B, C : inteiro
X, Y, Z : real
NOME, RUA : literal[20]
So dados os valores seguintes:
A=1 B=2 C=3 X = 2.0 Y = 10.0 Z = -1.0
NOME = PEDRO RUA = TIRADENTES
Determine o resultado da avaliao das expresses a seguir:
B
A+C/B A+B/C C/B/A Z*X
B B
-( X ) (-X) NOME+RUA

Comandos de Entrada e Sada


O computador no uma mquina isolada, pois ele precisa se comunicar com o mundo
exterior, com vdeo, impressora, teclado, discos, fitas etc. Para realizar esta comunicao existem
comandos que permitem que informaes sejam exibidas, por exemplo, no vdeo, como tambm
existem comandos que permitem que informaes sejam colocadas na memria do computador
atravs do teclado do PC.
Os comandos que iremos ver so os comandos LEIA e ESCREVA, respectivamente,
comando de entrada e de sada ( em Pascal escreve-se READ e WRITE ).
Exemplo 1: Escrever um algoritmo para ler um valor numrico do teclado e atribu-lo a uma varivel
do tipo numrica.
ALGORITMO LeNmero
VARIVEIS
Num : INTEIRO
INICIO
LEIA(Num)
FIM

12
Tcnicas de Programao

O algoritmo acima, executar os seguintes comandos:


a) Define uma varivel rotulada Num, a qual s poder armazenar dados numricos, que estejam
compreendidos entre -32768 a +32767 ( INTEIRO ), sendo que inicialmente o contedo desta varivel
est indefinido.
b) interrompe o processamento at que uma informao seja digitada, seguida do pressionamento da
tecla ENTER. Caso a informao digitada seja compatvel com o tipo INTEGER (INTEIRO), este valor
ser armazenado dentro da varivel Num.
Exemplo 2: Fazer um algoritmo para escrever no vdeo do PC uma mensagem qualquer.
ALGORITMO EscreveMsg
INICIO
ESCREVA (Alo Mundo )
FIM
Obs.: A mensagem est entre aspas porque representa uma cadeia de caracteres.
perfeitamente possvel mandar escrever o contedo de variveis no vdeo. Desta forma, o Exemplo
acima poderia ser escrito do seguinte modo:
ALGORITMO EscreveMsg
VARIVEIS
Msg : CADEIA
INICIO
Msg Alo Mundo
ESCREVA (Msg)
FIM

Agora em Pascal:
Todos os programas tero a primeira linha indicando que iremos digitar um programa:

program Primeiro_Programa;

... na segunda linha indicamos quais unidades sero usadas ( no nosso caso importante sempre
definir o uso da unidade crt que traz variveis de controle de som, vdeo e teclado)...

uses crt;

... na terceira linha indicamos o inicio do programa...

begin

... aps o begin vem o corpo do programa com todas as aes que devem ser feitas; por exemplo,
escrever Bem vindo ...

writeln ('Bem vindo');

... para que o programa aguarde um enter antes de encerrar usamos o comando readln(assim d
tempo de ler a mensagem)...

readln;

13
Tcnicas de Programao

... e, finalmente indicamos que o programa acabou...

end.

Temos ento:

program Primeiro_Programa;
uses crt;
begin
writeln ('Bem vindo');
readln;
end.
Para que o computador escreva tambm o seu nome, s acrescentar mais um comando
writeln:

program Segundo_Programa;
uses crt;
begin
writeln ('Bem vindo');
writeln ('seu nome');
readln;
end.
Observao Importante:
Begin no termina com ";" porque representa o comeo de um bloco de comandos, que
termina com o comando end.
Todo programa Pascal termina com end seguido de "." (ponto final) Quando o end no indica
o fim do programa ele no deve ser seguido do ponto final.
O nome de um programa (que vem depois do comando program) segue a regra de
nomenclatura de variveis

WRITE / WRITELN
Com o exemplo anterior podemos concluir que o comando writeln escreve algo na tela e se
posiciona na linha seguinte. O comando write tambm escreve na tela, mas permanece na mesma
linha. Observe:

write('Nome da escola:');
writeln('COTIL');
exibe na tela:

Nome da escola:COTIL

A frase "Nome da escola::" foi escrita pelo write. Na mesma linha o comando writeln
escreveu COTIL e em seguida foi para a linha de baixo.
Para escrever ao mesmo tempo vrios itens com um nico writeln ou com um nico write.
colocamos tudo o que queremos escrever entre os parnteses do comando, separando cada item por
vrgulas:

writeln('Eu tenho ' , 2008-1992 , ' anos.');

14
Tcnicas de Programao

Com esse exemplo pudemos verificar que possvel fazer operaes aritmticas no Pascal.
Veja alguns exemplos:
Program Calculos;
Uses crt;
Begin
Writeln (4+2);
Writeln (4-2);
Writeln (4*2);
Writeln (4/2);
Writeln (5 div 2);
Writeln (5 mod 2);
Writeln ((2+2)/(3-1)*3);
readln;
End.

Utilizando variveis no Pascal


O programa a seguir armazena o valor 6 na varivel "numero" e depois mostra o valor
dessa varivel:

program Exibe_Numero;
uses crt;
var
numero: integer;
begin
numero:=6;
writeln(numero);
readln;
end.
Como j explicado, o valor de uma varivel pode variar de acordo com os comandos que
executarmos. Veja:

program Exibe_Numero_2;
uses crt;
var
numero: integer;
begin
numero:= 8;
writeln(numero);
numero:= 4+2;
writeln(numero);
numero:= numero*2;
writeln(numero);
readln;
end.
Ao ser executado, esse programa faz os seguintes passos:
Atribui varivel "numero" o valor 8
Mostra na tela o valor da varivel "numero", ou seja, 8.
Atribui varivel "numero" o valor 6(resultado da expresso 4+2)., que substitui o valor
anterior (ou seja, o computador perde o valor 8 ).
Mostra na tela o valor da varivel "numero", ou seja, 6.
Atribui varivel nmero o valor da varivel nmero multiplicado por 2. Antes da nova
atribuio o valor armazenado em nmero 6. No momento da nova atribuio esse valor
ser multiplicado por 2 e s ento atribudo o resultado varivel , ou seja, 12. partir desse
momento o valor anterior 6 perdido.
Mostra na tela o valor da varivel "numero", ou seja, 12.

15
Tcnicas de Programao

Quando no queremos perder o valor armazenado, no podemos utilizar a mesma varivel,


devemos utilizar mais de uma varivel em um mesmo programa. Alis, a maior parte dos programas
precisa usar vrias delas.

program aposentadoria;
uses crt;
var
idade: integer;
idade_maxima: integer;
begin
idade:=55;
idade_maxima:=70;
writeln('A idade do funcionrio ',idade, 'anos.');
write('Faltam ');
write(idade_maxima - idade);
writeln(' anos para ele se aposentar.');
readln;
end.
Neste exemplo o valor da varivel "idade" se mantm na memria do computador at o fim
da execuo do programa, perceba que no foi atribudo um segundo valor essa varivel.

Variveis tipo real


Quando utilizamos variveis do tipo real, o resultado exibido em notao exponencial,
uma forma de representao de nmeros muito til quando trabalhamos com valores muito grandes
ou muito pequenos, e freqentemente utilizada em Fsica e Qumica. O valor 2.3050000000E+02
a.
quer dizer 2.3050000000(ou seja, 2.305) vezes 10 Elevado 2 potncia, ou seja, 230,5.
Acredito que seja mais interessante exibir o nmero em um formato com duas casas
decimais, como "230.50". Para fazer isso, precisamos formatar a sada. Veja um exemplo:
writeln(preco:6:2);
O valor 6 representa quantos caracteres sero necessrios na tela para representar o
nmero a ser exibido e o valor 2 representa o nmero de casas decimais.
Exemplo:

program troco;
uses crt;
var
preo, recebido,troco: real;
begin
preco:=21.5;
recebido:=50;
writeln('O valor a ser cobrado R$',preco:4:2);
writeln('O valor recebido foi de R$',recebido:4:2);
troco:=recebido-preco;
writeln(' Seu troco de R$',troco:4:2);
readln;
end.
Se aumentarmos o valor 4 para 5, perceberemos que aparece um espao entre o $ e o nmero
exibido. Isso acontece porque o nmero tende a ser alinhado direita dentro do espao reservado
para ele; como o nmero exibido tem 4 caracteres, um espao em branco inserido no incio do valor
para preencher todo o espao reservado. Experimente modificar tanto o nmero de casas decimais
reservado quanto o nmero de caracteres reservados (2 e 4, respectivamente) para perceber como
eles funcionam.

16
Tcnicas de Programao

Regra importante: Inicializar variveis


Quando declaramos uma varivel, reservado um espao na memria do computador para
armazenar informaes. Esse espao de memria pode ter sido usado anteriormente por outro
programa e ter qualquer valor armazenado nessa posio de memria. Os compiladores Pascal mais
antigos, no limpam esses espaos de memria por isso devemos ter o hbito de inicializar as
variveis que sero exibidas ou utilizadas para clculos, garantindo assim que no vamos trabalhar
com lixo de memria.

Recebendo valores
Os comandos write e writeln so utilizados para exibir valores na tela, para ler valores
digitados pelo usurio utilizamos READLN.
Exemplo:
program eco;
uses crt;
var
nome: string;
begin
writeln('Digite seu nome:');
readln(nome);
writeln('Ol ', nome);
readln;
end.
Se quisermos fazer um programa que calcula a mdia entre dois nmeros digitados pelo
usurio, ento podemos digitar algo como:

program boletim;
uses crt;
var
nota1, nota2, media: real;

begin
writeln('Digite a primeira nota:');
readln(nota1);
writeln('Digite a segunda nota:');
readln(nota2);
write('As notas digitadas foram: ');
writeln(nota1:4:1, ' e ', nota2:4:1);
media:= (nota1 + nota2) / 2;
writeln('A mdia : ', media:4:1);
readln;
end.
Sua tela deve ter ficado assim:

Digite a primeira nota:


5.5
Digite a segunda nota:
8.5
As notas digitadas foram: 5.5 e 8.5
A mdia das : 7.0

Faa as seguintes alteraes:

17
Tcnicas de Programao

program boletim_2;
uses crt;
var
nota1, nota2, media: real;
begin
writeln('Digite duas notas:');
readln(nota1, nota2);
write('As notas digitadas foram: ');
writeln(nota1:4:1, ' e ', nota2:4:1);
media:= (nota1 + nota2) / 2;
writeln('A mdia : ', media:4:1);
readln;
end.
Ao executar esse programa, digite as duas notas separando-as por pelo menos um espao
em branco, ou ento por ENTER. Pressione ENTER quando terminar a segunda nota. Sua tela deve
ter ficado mais ou menos assim:
Digite duas notas:
5.5 8.5
As notas digitadas foram: 5.5 e 8.5
A mdia : 7.0
Agora vamos fazer uma pequena experincia. Ao executar o programa calcula_media, o
que acontece se voc digitar dois valores seguidos na mesma linha, separados por espaos?
Digite uma nota:
5.5 8.5
Digite outra nota:
7.5
As notas que voc digitou foram: 5.5 e 7.5
A mdia das notas : 6.5
O valor 8.5 foi ignorado. Na verdade, o comando readln l a linha inteira que voc digitou e
depois olha a lista de variveis nos parnteses aps o comando, para associar cada valor digitado a
uma varivel. Quando o programa executou a linha de comando readln(nota1) digitamos dois valores
na mesma linha, mas o comando s esperava por um nico valor na linha; logo, ele jogou fora o
segundo valor.

Read em vez de Readln


O comando read tambm permite que o usurio digite um ou mais valores e os armazena
em variveis, com algumas diferenas em relao ao readln.
O comando read, verifica tudo o que o usurio digitou em uma linha, mas no joga fora o
restante da linha digitada; ele guarda o resto da linha na memria, para que possa ser usada pelo
prximo comando read ou readln.

Um exemplo pode esclarecer melhor:

program tres_valores;
uses crt;
var
a,b,c: integer;
begin
writeln('Digite trs nmeros:');
read(a);
writeln('a:',a);
read(b);
writeln('b:',b);
read(c);
writeln('c:',c);
readln;
end.

18
Tcnicas de Programao

Ao executar o programa, experimente digitar valores na mesma linha, ou em linhas


diferentes, ou mesmo dois valores numa linha e um em outra. O read no se importa com a forma
como voc passou os dados, se existem dados que o usurio digitou o computador usa aquilo que
precisar desses dados e s pede mais dados se for necessrio.
Exemplo:
program boletim_3;
uses crt;
var
nota1, nota2, media: real;
begin
writeln('Digite uma nota:');
read(nota1);
writeln('Digite outra nota:');
read(nota2);
write('As notas digitadas foram: ');
writeln(nota1:4:1, ' e ', nota2:4:1);
media:= (nota1 + nota2) / 2;
writeln('A mdia : ', media:4:1);
readln;
end.
Ao executar o programa, quando o computador digitar "Digite uma nota:", experimente
digitar duas, separadas por espao. Veja o que acontece:

Digite uma nota:


5.5 8.5
Digite outra nota:
As notas digitadas foram: 5.5 e 8.5
A mdia : 7.0
O computador armazenou tudo o que foi digitado; quando executou read(nota1) ele verificou
o que tinha sido digitado e pegou apenas um valor - 5.5 - e o atribuiu varivel "nota1". O valor 8.5
ficou reservado para um prximo comando de entrada de dados. Ento, ele executou o writeln('Digite
outra nota:'); e quando apareceu outro comando read, como ele ainda tinha dados que tnhamos
digitado mas ele no havia usado, ele pegou o valor que estava guardado 8.5 - e atribuiu-o varivel
"nota2".
Exerccios:
Escreva um algoritmo (fluxograma e pseudocdigo) para cada um dos
exerccios a seguir:
1.Calcular a mdia entre dois nmeros quaisquer.
2. Calcular o valor de y como funo de x, segundo a funo y(x) = 3x+2, num
domnio real
3.Calcular o consumo mdio de um automvel (medido em Km/l), dado que so conhecidos a
distncia total percorrida e o volume de combustvel consumido para percorr-la (medido em litros)
4.Clculo do quadrado de um nmero, ou seja, o produto de um nmero por si mesmo.
5.Ler uma temperatura em graus centgrados e apresenta-la convertida em graus Fahrenheit. A
frmula de converso : F ( 9 * C + 160) / 5. Onde F a temperatura em Farenheit e C a
temperatura em Centgrados.
6. er uma temperatura em graus Fahrenheit e apresenta-la convertida em graus centgrados. A
frmula de converso : C ( F - 32) * (5 / 9). Onde F a temperatura em Farenheit e C a
temperatura em Centgrados.
7.Calcular e apresentar o valor do volume de uma lata de leo, utilizando a frmula:
2
VOLUME 3.14159 * R * ALTURA.
8.Ler dois valores para as variveis A e B, efetuar a troca dos valores de forma que a varivel A
passe a possuir o valor da varivel B e que a varivel B passe a possuir o valor da varivel A.

19
Tcnicas de Programao

Operadores Relacionais
Os operadores relacionais so utilizados para comparaes. Estes operadores sempre
retornam valores lgicos (verdadeiro ou falso/ True ou False). Para estabelecer prioridades no que diz
respeito a qual operao executar primeiro, utilize os parnteses.
Os operadores relacionais so:
a) Igual a =
b)Diferente de <>
c) Maior que >
d) Menor que <
e) Menor Igual <=
f) Maior Igual >=
Exemplo: Tendo duas variveis A=5 e B=3. Os resultados das expresses seriam:

Operadores Lgicos
Os operadores lgicos realizam as operaes da lgebra booleana. Os operadores so os
seguintes:
a) AND (E) b) OR (OU) c) NOT (NO)
Hierarquia das Operaes Lgicas Hierarquia entre os Operadores:
1 Not 1 Aritmticos e Literais
2 And 2 Relacionais
3 Or 3 Lgicos

Exemplo:
a) Operador AND: b) Operador OR: c) Operador NOT:
TRUE AND TRUE => TRUE TRUE OR TRUE => TRUE NOT TRUE => FALSE
TRUE AND FALSE => FALSE TRUE OR FALSE => TRUE NOT FALSE => TRUE
FALSE AND TRUE => FALSE FALSE OR TRUE => TRUE
FALSE AND FALSE => FALSE FALSE OR FALSE => FALSE

Exemplo: Suponha que temos trs variveis A = 5, B = 8 e C =1 Os resultados das expresses


seriam:

20
Tcnicas de Programao

Exerccios:
1) Tendo as variveis SALARIO, IR e SALLIQ, e considerando os valores
abaixo. Informe se as expresses so verdadeiras ou falsas.

2) Sabendo que A=3, B=7 e C=4, informe se as expresses abaixo so verdadeiras ou falsas.
a) (A+C) > B b) B >= (A + 2) c) C = (B A) d) (B + A) <= C e) (C+A) > B
3) Sabendo que A=5, B=4 e C=3 e D=6, informe se as expresses abaixo so verdadeiras ou
falsas.
a) (A > C) AND (C <= D) b) (A+B) > 10 OR (A+B) = (C+D) c) (A>=C) AND (D >= C)
4) Suponha que X, Y e Z so variveis reais, e A e B variveis lgicas, com os respectivos valores:
X = 2.0, Y = 3.0, Z=0.5, A = .V. e B =.F.
Calcule o resultado das seguintes expresses:
B .E. A .OU. X <> Y/2 B .E. (A .OU. X <> Y/2)
5) Dada a declarao de variveis:
VAR A, B, C : inteiro
X, Y, Z : real
NOME, RUA : literal[20]
L1, L2 : lgico
So dados os valores seguintes:
A=1 B=2 C=3 X = 2.0 Y = 10.0 Z = -1.0
L 1= .V. L2 = .F. NOME = PEDRO RUA = PEDRINHO
Determine o resultado da avaliao das expresses a seguir:
NOME = RUA L1 .OU. L2
(L1 .E. (.NO. L2)) (L2 .E. (.NO. L1))
X>Y .E. C <=B (C 3 * A) < (X + 2 * Z)
(L1 .E.(.NO. L2)).OU. (L2 .E. (.NO. L1))
6) De acordo com a tabela de operadores lgicos estudada no item 7.2 da apostila, determine o
resultado lgico das expresses mencionadas, assinalando se so verdadeiras ou falsas. Considere
para as respostas os seguintes valores: X=1, A=3, B=5, C=8 e D=7
.NO. (X>3) Verdadeiro ( ) Falso ( )
(X < 1) .E. .NO. (B > D) Verdadeiro ( ) Falso ( )
.NO. (D < 0) .E. (C > 5) Verdadeiro ( ) Falso ( )
.NO. (X > 3) .OU. (C < 7) Verdadeiro ( ) Falso ( )
(A > B) .OU. (C > B) Verdadeiro ( ) Falso ( )
(X >= 2) Verdadeiro ( ) Falso ( )
(X < 1) .E. (B >= D) Verdadeiro ( ) Falso ( )
(D < 0) .OU. (C > 5) Verdadeiro ( ) Falso ( )
.NO. (D > 3) .OU. .NO. (B < 7) Verdadeiro ( ) Falso ( )
(A >B) .OU. .NO. (C> B) Verdadeiro ( ) Falso ( )

21
Tcnicas de Programao

Estrutura de deciso
Os comandos de deciso ou desvio fazem parte das tcnicas de programao que
conduzem a estruturas de programas que no so totalmente seqenciais. Com as instrues de
SALTO ou DESVIO pode-se fazer com que o programa proceda de uma ou outra maneira, de acordo
com as decises lgicas tomadas em funo dos dados ou resultados anteriores. As principais
estruturas de deciso so: Se Ento, Se ento Seno e Caso Selecione

Estrutura SEENTOSENO (IFTHENELSE)


A estrutura de deciso SE/IF normalmente vem acompanhada de um comando, ou seja,
se determinada condio for satisfeita pelo comando SE/IF ento execute determinado comando.
SE <Condio FOR verdade> ENTO
<Comandos>
[SENO
<Comandos>] Colchete indica que o comando opcional

Imagine um algoritmo que determinado aluno somente estar


aprovado se sua mdia for maior ou igual a 5.0, veja no exemplo de
algoritmo como ficaria.
SE MEDIA >= 5.0 ENTO ALUNO APROVADO

A estrutura de deciso SE/ENTO/SENO, funciona exatamente como a estrutura SE,


com apenas uma diferena, em SE somente podemos executar comandos caso a condio seja
verdadeira, diferente de SE/SENO pois sempre um comando ser executado independente da
condio, ou seja, caso a condio seja verdadeira o comando da condio ser executado, caso
contrrio o comando da condio falsa ser executado.
Em algoritmo ficaria assim:
SE MDIA >= 5.0 ENTO
ALUNO APROVADO
SENO
ALUNO REPROVADO
Em diagrama, observe a figura ao lado.
No exemplo anterior est sendo executada uma condio que, se
for verdadeira, executa o comando APROVADO, caso contrrio
executa o segundo comando REPROVADO. Podemos tambm
dentro de uma mesma condio testar outras condies. Como no
exemplo a seguir:

22
Tcnicas de Programao

Outro Exemplo: Dados dois valores A e B quaisquer, faa um algoritmo que imprima se A > B, A < B,
ou A=B

ALGORITMO Maior
VARIVEIS
A,B : INTEIRO
INICIO
ESCREVA(Digite os valores A e B );
LEIA (A,B)
SE A > B ENTO
ESCREVA(A maior que B )
SENO
SE A < B ENTO
ESCREVA(A menor que B )
SENO
ESCREVA(A igual a B )
FIM

Exerccios:
1) Faa um teste de mesa do diagrama apresentado abaixo, de acordo com os
dados fornecidos:

INICIO

SALBASE

GRATIF

SALBRUTOSALBASE+GRATIF

V F
SALBRUTO
IRSALBRUTO*(20/100) IRSALBRUTO*(15/100)
>100

SALLIQSALBRUTO-IR

SALLIQ

Teste o diagrama com os dados a seguir: FIM


SALBASE GRATIF
3000,00 1200,00
1200,00 400,00
500,00 100,00

23
Tcnicas de Programao

Memria
SALBASE GRATIF SALBRUTO IR SALLIQ

Dados de Sada
SALLIQ

2. Indique a sada dos trechos de programa em portugus estruturado, mostrado a seguir. Para os
clculos considere os seguintes valores: A = 2, B = 3, C= 5 e D = 9.

a. se .no. (D>5) ento


X (A+B) * D
d. se (A > 2) .ou. .no. (B < 7) ento
seno
XA+B2
X (A B) / C
seno
escreva X
XAB
escreva X
Resposta:___________________________
Resposta:_________________________
b. se (A > 2) .e. (B < 7) ento
X (A+2) * (B - 2)
e. se .no. (A > 2) .ou. .no. (B < 7) ento
seno
XA+B
X (A + B) / D * (C + D)
seno
escreva X
XA /B
escreva X
Resposta:___________________________
Resposta:_________________________
c. se (A = 2) .ou. (B < 7) ento
X (A+2) * (B - 2)
seno
X (A + B) / D * (C + D)
escreva X

Resposta:___________________________

3. Seja o seguinte algoritmo:


x,y,z: inteiro
resposta: string;
INICIO
leia (x);
leia (y);

24
Tcnicas de Programao

z (x*y) + 5;
se z <= 0
ento resposta A
seno se z <= 100
ento resposta B
seno resposta C;
escreva (z,resposta);
FIM

Faa um teste de mesa e complete o quadro a seguir para os seguintes valores:

x y z resposta sada
3 2
150 3
7 -1
-2 5
50 3

4. Seja o seguinte algoritmo:


a, b, c:inteiro
mens:string
INICIO
leia (a,b,c);
se (a<b+c) e (b<a+c) e (c<a+b) ento
se (a=b) e (b=c) ento
mens 'Tringulo Equiltero'
seno a b c mens
se (a=b) ou (b=c) ou (a=c) ento 1 2 3
mens 'Tringulo Issceles' 3 4 5
seno 2 2 4
mens 'Tringulo Escaleno' 4 4 4
seno 5 3 3
mens 'No e possvel formar um tringulo';
escreva (mens);
fim.
Faa um teste de mesa e complete o quadro ao lado:

25
Tcnicas de Programao

Deciso no Pascal

Estrutura condicional simples


Exemplo:
program ex_1;
uses crt;
var
A,B:integer;
Begin
Clrscr;
writeln('Digite dois nmeros:');
readln(A);
readln(B);
IF A=B THEN
writeln('Nmeros iguais');
readln;
end.

Nesse exemplo, a frase nmeros iguais s ser exibida se a condio a=b for verdadeira.
Observe que na estrutura if then s usado o ;(ponto e vrgula) aps o comando a ser
executado caso a condio seja verdadeira e esse ponto e virgula encerra a estrutura. Nesse
exemplo, o comando writeln que vem logo aps o then ser executado e em seguida a estrutura
condicional encerrada, assim, o comando que vem depois do ponto e virgula executado
independente da condio testada, pois ele se encontra fora da estrutura de deciso.
Vamos observar esse outro exemplo, que contm um erro que iremos corrigir em seguida:

program ex_2;
uses crt;
var
N1,N2,N3,M:real;
Begin
Clrscr;
writeln('Digite trs notas:');
readln(N1,N2,N3);
M:=(N1+N2+N3)/3;
IF M>=7 THEN
writeln('Mdia = ',M:4:1);
writeln('Aprovado');
readln;
end.

No exemplo, o comando writeln('Mdia = ',M:4:1) est dentro da estrutura condicional ou


seja ser executado quando a mdia for 7 ou mais. O ponto e virgula encerra a estrutura, ento de
qualquer forma executado o comando seguinte, ou seja, independente da mdia do aluno, ser
exibida a mensagem aprovado. Para corrigir esse problema devemos colocar todos os comandos a
serem executados se a condio for verdadeira entre um begin e um end. Observe a seguir:
program ex_2;
uses crt;
var
N1,N2,N3,M:real;
Begin
Clrscr;
writeln('Digite trs notas:');
readln(N1,N2,N3);
M:=(N1+N2+N3)/3;
IF M>=7 THEN
begin
writeln('Mdia = ',M:4:1);
writeln('Aprovado');
end;
readln;
end.

26
Tcnicas de Programao

Agora os dois comandos sero executados apenas se a condio testada na estrutura if


then for verdadeira (ou seja, se Mdia for maior ou igual a sete)
Vamos ento definir a seguinte regra: quando forem necessrios mais de um comando
dentro da estrutura condicional devemos colocar todos eles entre um begin e um end.

Exerccios:
1) Escreva um algoritmo (fluxograma e pseudocdigo) para cada um dos
exerccios a seguir:
a) Efetuar a leitura da idade de uma pessoa e se ela tiver 18 anos ou
mais escrever a mensagem que ela maior de idade.
b) Altere o programa anterior para que alm de escrever a mensagem que ela maior, escrever
uma segunda mensagem dizendo que ela pode dirigir.

Estrutura condicional composta


Exemplo:
program ex_3;
uses crt;
var
A,B:integer;
Begin
Clrscr;
writeln('Digite dois nmeros:');
readln(A);
readln(B);
IF A=B THEN
writeln('Nmeros iguais')
ELSE
writeln('Nmeros diferentes');
readln;
end.

Nesse exemplo, a frase Nmeros iguais s ser exibida se a condio A=B for verdadeira e
a frase Nmeros diferentes s ser exibida se a condio A=B for falsa ou seja no for verdadeira.
Obs.: No se usa ;(ponto e vrgula) antes do else.
A mesma regra do begin e end valem para a estrutura composta, veja exemplo:

program ex_4;
uses crt;
var
N1,N2,N3,M:real;
Begin
Clrscr;
writeln('Digite trs notas:');
readln(N1,N2,N3);
M:=(N1+N2+N3)/3;
IF M>=7 THEN
begin
writeln('Mdia = ',M:4:1);
writeln('Aprovado');
end
ELSE
begin
writeln('Mdia = ',M:4:1);
writeln('Reprovado');
end;
readln;
end.

Podemos melhorar esse algoritmo. Veja que nas duas condies ou seja no if e no else
temos o comando writeln('Mdia = ',M:4:1).Se desejamos exibir a mdia de qualquer forma, esse
comando deve ser colocado fora da estrutura de deciso.

27
Tcnicas de Programao

program ex_5;
uses crt;
var
N1,N2,N3,M:real;
Begin
Clrscr;
writeln('Digite trs notas:');
readln(N1,N2,N3);
M:=(N1+N2+N3)/3;
writeln('Mdia = ',M:4:1);
IF M>=7 THEN
writeln('Aprovado')
ELSE
writeln('Reprovado');
readln;
end.

Exerccios:
1) Escreva um algoritmo para cada um dos exerccios a seguir:
a) Ler 2 numeros e apresentar a diferena do maior pelo menor.
b) Ler um nmero e dizer se o nmero digitado par ou mpar
c) Em um curso, a nota final do aluno calculada a partir do seu desempenho em 3 aspectos do
trabalho semestral. Existe um exame intermedirio que vale 30% da nota final. Ao trabalho de
laboratrio dada uma nota que vale 20% da nota final. O exame final completa o restante.
Faa um algoritmo que leia o nome do estudante e suas notas em cada item, calcule e
informe o nome do estudante, suas notas intermedirias, sua nota final e uma indicao
sobre a sua aprovao ou no, sabendo que a nota final mnima para aprovao 6.
d) Faa um algoritmo que leia o nome de um funcionrio, as horas trabalhadas no dia e o seu
salrio/hora. Calcule o que ele tem a receber e escreva o nome do funcionrio, as horas
trabalhadas e o salrio a receber. OBS. Se a jornada de trabalho for maior que 8 horas, esta
diferena ser considerada hora-extra, a qual tem um acrscimo de 50%.

Estrutura condicional composta aninhada


Exemplo:
program ex_6;
uses crt;
var
N1,N2,N3,M:real;
Begin
Clrscr;
writeln('Digite trs notas:');
readln(N1,N2,N3);
M:=(N1+N2+N3)/3;
writeln('Mdia = ',M:4:1);
IF M>=7 THEN
writeln('Aprovado');
ELSE
IF (M>=4) THEN
begin
writeln('Exame');
writeln('Voc precisa tirar',10-M, 'no Exame');
end
ELSE
begin
writeln('Voc deveria ter estudado mais.');
writeln('Reprovado');
end;
readln;
end.

Observe que embora o contedo do primeiro else seja extenso, ele composto de um nico
comando if, portanto no precisa de begin end.

28
Tcnicas de Programao

Exerccios:
1) Escreva um algoritmo (fluxograma e pseudocdigo) para cada um dos
exerccios a seguir:
a) Efetuar a leitura da idade de uma pessoa e se ela tiver 18 anos ou
mais escrever duas mensagens: Maior de idade e J pode dirigir
alem disso, solicite que ela digite seu sexo e caso seja do sexo masculino, escreva a
mensagem Alistamento militar obrigatrio.
b) Desenvolva um algoritmo que recebe dois valores a e b, verifique se a divisvel por b e
informe os valores recebidos e o resultado da verificao. Lembre-se que nenhum nmero
divisvel por 0.
c) Em certa instituio de ensino, a mdia final calculada de duas formas, valendo a que
apresentar resultado mais interessante para o aluno. Durante o semestre, trs notas so
obtidas. Uma forma de definir a mdia final calcular a mdia aritmtica. A outra uma
mdia ponderada, com pesos 3, 2 e 4, respectivamente. Desenvolva um algoritmo que
informe o nome do aluno, suas notas, a mdia aritmtica, a mdia ponderada e qual delas foi
considerada.

Combinando condies
Exemplo:

program ex_7;
uses crt;
var
N1,N2,N3,M:real;
Aulas_dadas,Faltas,Limite:integer;
Begin
Clrscr;
writeln('Digite o nmero de aulas dadas:');
readln(aulas_dadas);
Limite:=aulas_dadas*0,25;
writeln('Digite o nmero de faltas:');
readln(faltas);
writeln('Digite trs notas:');
readln(N1,N2,N3);
M:=(N1+N2+N3)/3;
writeln('Mdia = ',M:4:1);
IF (M>=7) AND (faltas<=Limite) THEN
writeln('Aprovado');
ELSE
IF (M>=4) AND (faltas<=Limite) THEN
begin
writeln('Exame');
writeln('Voc precisa tirar',10-M, 'no Exame');
end
ELSE
begin
writeln('Voc deveria ter estudado mais e/ou faltado menos.');
writeln('Reprovado');
end;
readln;
end.

Obs:Quando existe mais de uma condio, essas devem estar entre parnteses.

29
Tcnicas de Programao

Exerccios:
1. Escreva um algoritmo para cada um dos exerccios a seguir:

a. Dados trs valores X, Y e Z, verificar se eles podem ser os


comprimentos dos lados de um tringulo e, se forem, verificar se um
tringulo eqiltero, issceles ou escaleno. Se no forem um tringulo escrever uma
mensagem. Considerar que:
i. O comprimento de cada lado de um tringulo menor que a soma dos
outros dois lados;
ii. Chama-se tringulo eqiltero o que tem 3 lados iguais;
iii. Chama-se tringulo isosceles o que tem o comprimento de 2 lados
iguais
iv. Chama-se tringulo escaleno o que tem 3 lados diferentes

Exerccios de fixao:

1. Efetuar a leitura de trs valores (variveis A,B e C) e apresentar os


valores em ordem crescente.
2. Efetuar a leitura de trs valores (variveis A,B e C) e efetuar o clculo da equao do
segundo grau, apresentando as duas razes, se para os valores informados for possvel
efetuar o referido clculo.
3. Certa mquina realiza a cobrana automtica de valores at R$ 50,00. Ela informada que
valor deve ser cobrado, recebe uma nota de R$ 50,00 e precisa devolver o troco. As notas
disponveis para o troco so de R$ 10,00, R 5,00 e R$ 1,00. Desenvolva um algoritmo que
calcule o troco e informe quantas notas de cada valor devem ser usadas. Os valores no
necessrios no devem ser informados.
4. Faa um programa que determine a data cronologicamente maior de duas datas fornecidas
pelo usurio. Cada data dever ser formada por trs nmeros inteiros ( 1 para dia, 2 para
ms e 3 para ano).

30
Tcnicas de Programao

Mltiplas escolhas Estrutura CASE


Em alguns programas existem comandos mutuamente exclusivos, isto , se um comando
for executado, os demais no sero. Quando este for o caso, um comando seletivo o mais indicado,
e este comando seletivo em Pascal o CASE OF, veja exemplos:

No exemplo do diagrama de blocos anterior, recebido uma varivel Op e testado seu


contedo, caso uma das condies seja satisfeita, atribudo para a varivel Titulo a String Opo
X, caso contrrio atribudo a string Opo Errada.

31
Tcnicas de Programao

Exemplo em Pascal:
program ex_8;
uses crt;
var
idade:integer;
Begin
Clrscr;
writeln('Digite a idade:');
readln(idade);
CASE idade OF
0..3:writeln('Beb');
4..10:Begin
writeln('Criana');
writeln('Aproveite para brincar bastante');
end;
11..18: Begin
writeln('Adolescente');
writeln('Acabou a brincadeira, hora de estudar');
end;
ELSE
writeln('Adulto');
end;
readln;
end.

Note que na estrutura CASE temos a mesma regra: para mais de um comando
dentro da condio temos que utilizar begin e end.
A condio pode ser uma lista de valores aceitveis:
CASE Letra OF
A ,E ,I O ,U : writeln(Vogais );
FIM;
Obs.: O comando CASO s aceita valores do tipo CHAR,INTEGER ou BOOLEAN.

Exerccios:
1.Escrever um algoritmo que dada uma varivel inteira DiaSem, com valores
entre 1 e 7, escreva o correspondente dia da semana.
2. A nota final de um estudante calculada a partir de trs notas atribudas
respectivamente a um trabalho de laboratrio, a uma avaliao semestral e a um exame final.A
mdia das trs notas mencionadas anteriormente obedece aos pesos a seguir:
Trabalho de laboratrio peso 2
Avaliao semestral peso 3
Exame final peso 5
Faa um programa que receba as trs notas, calcule e mostre a mdia ponderada e o
conceito que segue a tabela abaixo:

MDIA PONDERADA CONCEITO

8,0 10,0 A
7,0 8,0 B
6,0 7,0 C
5,0 6,0 D
0,0 5,0 E

32
Tcnicas de Programao

3.Faa um programa que receba a mdia do primeiro semestre e a mdia do segundo semestre
de um aluno, calcule e mostre a mdia anual (sabendo que a mdia do segundo semestre tem
peso dois e a do primeiro semestre tem peso um ) e a mensagem que segue a tabela abaixo.
Para alunos de exames, calcule e mostre a nota que dever ser tirada no exame para a
aprovao, considerando a seguinte frmula: Exame = 12 - Mdia Anual

MDIA ARITMTICA MENSAGEM

00 3,0 Reprovado
3,0 6,0 Exame
6,0 10,0 Aprovado

4.Faa um programas que receba quatro valores. Opo, A, B e C. Opo um valor inteiro e
positivo e A,B e C so valores reais.Escreva os nmeros A,B e C obedecendo tabela a seguir.
Observao: Caso o valor digitado para opo seja invlido, ou seja, diferente de 1, 2 e 3, exibir
mensagem de opo invlida.

VALOR DE Opo FORMA DE ESCREVER

1 A,B e C em ordem crescente.


2 A, B e C em ordem decrescente.
3 O maior fica entre os outros dois nmeros.

5.Faa um programa que mostre o menu de opes a seguir, receba a opo do usurio e os
dados necessrios para cada opo e mostre o resultado
Menu de opes:
1. Somar os dois nmeros
2. Raiz quadrada de um nmero
Digite a opo desejada:

Processos de Repetio
Muitas vezes temos a necessidade de repetir um trecho de programa. Neste caso, ser
criado o chamado looping ou lao de repetio, que executa um determinado conjunto de comandos
tantas vezes quantas forem necessrias.

Looping com varivel de controle


Os loopings que possuem um nmero pr-determinado de execues podero ser
processados atravs da estrutura PARA.

Estrutura de repetio PARA-FAA (FOR ... TO... DO)


Essa estrutura tem o seu funcionamento controlado por uma varivel denominada contador.
Sendo assim, poder executar um determinado conjunto de instrues um determinado nmero de
vezes.
Exemplo em Pascal
program ex_9;
uses crt;
var
N:integer;
Begin
Clrscr;
writeln('Escrevendo os nmeros de 1 a 100');
FOR N:=1 TO 100 DO
write(I,' - ');
readln;
end.

33
Tcnicas de Programao

Nesse exemplo, inicializamos a varivel N com o valor 1 e esse valor ser incrementado de
1 em 1 at alcanar o limite superior de 100. Para cada incremento ser escrito o valor de I e um
hfen para separar os valores, como pede o comando writeln, (como esse looping composto de um
nico comando, no usamos begin e end.)
Se quisermos que a contagem seja regressiva devemos utilizar FOR DOWNTO DO
Exemplo em Pascal

program ex_10;
uses crt;
var
N:integer;
Begin
Clrscr;
writeln('Escrevendo os nmeros de 10 a 0');
FOR N:=10 DOWNTO 0 DO
begin
clrscr;
write(I);
end;
readln;
end.

Exerccios:
1) Escreva um algoritmo (fluxograma e pseudocdigo) para cada um dos
exerccios a seguir:

a) Escrever os nmeros pares entre 0 e 50.


b) Escrever um algoritmo/programa em Pascal que escreve a soma dos nmeros mltiplos de 7
entre 100 e 200.
c) Escrever um algoritmo/programa em Pascal que escreve a soma dos nmeros que no so
mltiplos de 13 entre 100 e 200.
d) Apresentar o total da soma obtida dos cem primeiros nmeros inteiros ( 1 + 2 + ... + 99 + 100)
e) Calcular a soma de dez nmeros quaisquer fornecidos pelo usurio.
f) Apresentar os resultado de um tabuada de um nmero qualquer. Esta dever ser impressa
no seguinte formato:
Considerando o nmero 2
2X1=2
2X2=4
2X3=6
(...)
2 X 10 = 20
g) Calcular o Fatorial de um nmero qualquer solicitado pelo usurio. Sabendo que: 5! = 5 * 4 *
3 * 2 * 1 = 120
h) Faa um programa que escreva todas as letras do alfabeto em ordem . Obs. A varivel de
controle deve ser ordinal (ou seja, pode ser integer, mas tambm char).
i) Faa um programa que simule um relgio digital no meio da tela com hora,minuto e segundo.
j) Ler 5 valores para a, um de cada vez, e conta quantos destes valores so negativos,
escrevendo esta informao.
k) Escreva um programa que apresente a srie e Fibonacci at o n-simo termo. A srie de
Fibonacci formada pela seqncia: 1, 1, 2, 3, 5, 8, 13,21,34,...etc. Esta srie caracteriza-se
pela soma de um termo posterior com seu anterior subseqente.

34
Tcnicas de Programao

l) Uma empresa decide dar um aumento de 30% aos funcionrios cujo salrio inferior a 500.
O algoritmo deve permitir o clculo do salrio reajustado de 10 funcionrios segundo o
mesmo critrio de reajuste.
2) Escreva um programa usando um for dentro do outro que pea a altura e a largura de um
retngulo e desenhe-o totalmente preenchido e formado por asteriscos.
Ex. : **********
**********
**********
3) Faa um programa que cadastre 10 pessoas, onde ser perguntado o sexo e a idade da pessoa.
Ao final ser exibida a mdia de idade do sexo masculino e feminino, e a maior e menor idade
cadastrada.
4) Escrever um algoritmo/programa em Pascal que l 20 valores, um de cada vez, e conta quantos
deles esto em cada um dos intervalos [0, 25], (25, 50], (50, 75], (75, 100], escrevendo esta
informao.
5) Escrever um algoritmo/programa em Pascal semelhante ao anterior que calcula as mdias
aritmticas de cada intervalo e as escreve, juntamente com o nmero de valores de cada
intervalo.
6) Escrever um algoritmo/programa em Pascal que l um nmero e calcula e escreve quantos
divisores ele possui.
7) Escrever um algoritmo/programa em Pascal que l um nmero e escreva se ele " primo" ou "no
primo"
8) Escrever um algoritmo/programa em Pascal que l um valor X e calcula e escreve os 20 primeiros
2 3 4 i
termos da srie: 1 + 1/x + 1/x + 1/x + ... Considere que para calcular x no pascal utiliza-se
a seguinte sintaxe: exp(ln(x)*i)
9) Escrever um algoritmo/programa em Pascal que l N, inteiro e positivo e calcula e escreve o
termo de ordem N da sucesso abaixo:
ordem: 1 2 3 4 5 6 7 8 ...
sucesso: -1 0 5 6 11 12 17 18 ...

Looping com teste lgico no incio

Estrutura de Repetio ENQUANTO-FAA (WHILE DO)


Neste caso, o bloco de operaes ser executado enquanto a condio x for verdadeira. O
teste da condio ser sempre realizado antes de qualquer operao.
Enquanto a condio for verdadeira o processo se repete. Podemos utilizar essa estrutura
para trabalharmos com contadores.
Em diagrama de bloco a estrutura a seguinte:
Exemplo de Contador:

35
Tcnicas de Programao

Algoritmo

ALGORITMO ExEnquanto
ENQUANTO <Condio for verdadeira> FAA
<Comandos>
FIM ENQUANTO

Exemplo em Pascal

program ex_enquanto;
uses crt;
var
N1,N2,N3,M:real;
Cont:integer;
Begin
Clrscr;
Cont:=1;
While cont<=40 do
begin
writeln('Digite trs notas:');
readln(N1,N2,N3);
M:=(N1+N2+N3)/3;
writeln('Mdia = ',M:4:1);
cont:=cont+1;
end;
readln;
end.

Esse programa vai calcular a mdia de 40 alunos. Perceba que antes da estrutura While,
inicializado o contador com valor 1. O programa verifica que o valor do contador (1) menor que 40,
ento ele executa os comandos do loop, definidos entre o begin e o end. Depois de calcular e exibir a
mdia do 1 aluno, executa o comando cont:=cont+1 que faz com que o contador seja incrementado
em 1 unidade e retorna para fazer a verificao. Perceba que depois de calcular e exibir a mdia do
40 aluno, o contador passa para 41 e retorna para fazer a verificao; como cont no menor ou
igual a 40 ele no executa os comandos do loop e pula para o prximo comando aps o end; que
encerra o loop.

Estrutura de repetio REPITA-AT ( Repeat Until)


Neste caso, executa-se primeiro o bloco de operaes e somente depois realizado o teste
de condio. Se a condio for verdadeira, o fluxo do programa continua normalmente. Caso
contrrio so processados novamente os comandos antes do teste da condio.

Exemplo:

36
Tcnicas de Programao

Algoritmo

REPITA
<Comandos>
ATE <Condio for verdadeira>

Exemplo:
Esse programa calcula a mdia de trs notas e verifica se o usurio deseja calcular outra
mdia, se sim, ele retorna, se no ele encerra o programa.

program ex_repita;
uses crt;
var
N1,N2,N3,M:real;
Resposta:char;
Begin
Clrscr;
REPEAT
writeln('Digite trs notas:');
readln(N1,N2,N3);
M:=(N1+N2+N3)/3;
writeln('Mdia = ',M:4:1);
writeln('Deseja calcular nova media? (S para sim N para No)');
readln(resposta);
resposta:=upcase(resposta);
UNTIL resposta='N';
readln;
end.

Exerccios:
1) Quais so as estruturas de repetio existentes no Pascal ?

2) Qual a principal diferena entre o WHILE-DO e o REPEAT-UNTIL ?

3) Em que situaes mais indicado o uso da estrutura FOR ?

4) Em que situaes no podemos utilizar a estrutura FOR ?

5) Escreva um programa Pascal que leia um conjunto de 100 nmeros inteiros positivos e determine
a quantidade de nmeros pares e nmeros mpares contidos no mesmo.

6) Dado o trecho de programa abaixo:

readln(N)
R := 1;
I := 2;
while I <= N-1 do
begin
R := R * 2;
I := I + 1;
end;
write(R);

Reescreva-o utilizando:

37
Tcnicas de Programao

a) o comando FOR
b) o comando REPEAT

7) Escreva um programa Pascal que apresente o menu de opes abaixo:

OPES:
1 -SAUDAO
2 -BRONCA
3 -FELICITAO
0 -FIM

O programa deve ler a opo do usurio e exibir, para cada opo, a respectiva
mensagem:

1 -Ol. Como vai ?


2 -Vamos estudar mais.
3 -Meus Parabns !
0 -Fim de servio.
Enquanto a opo for diferente de 0 (zero) deve-se continuar apresentando as opes.
Obs: use como estrutura de repetio o comando REPEAT e como estrutura condicional o comando
CASE.

8) Faa um programa que leia 3 valores inteiros (N, X, Y) e mostre todos os nmeros mltiplos de N
entre X e Y.

9) Um programa que receba trs notas de um aluno, calcule e mostre a mdia aritmtica e a
mensagem que segue a tabela abaixo. Para alunos de exame, calcule e mostre a nota que dever
ser tirada no exame para aprovao, considerando que a mdia no exame 6.0.
Mdia Mensagem
0,0 at 3,0 Reprovado
3,0 (inclusive) at 7,0 Exame
7,0 (inclusive) at 10,0 (inclusive) Aprovado

10) Faa um programa que receba o cdigo correspondente ao cargo de um funcionrio e o seu
salrio atual e mostre o cargo, o valor do aumento e seu novo salrio. Os cargos na tabela a seguir:

Cdigo Cargo Percentual


1 Escriturrio 50%
2 Secretrio 35%
3 Caixa 20%
4 Gerente 10%
5 Diretor No tem aumento

11) Faa um programa que receba a idade de um nadador e mostre a sua categoria usando as regras
a seguir:

a. Infantil de 5 a 7;
b. Juvenil de 8 a 10;
c. Adolescente de 11 a 15;
d. Adulto de 16 a 30;
e. Snior acima de 30.

12) Faa um programa que leia o nmero de termos, determine e mostre os valores de acordo com a
srie abaixo:

Srie 2, 7, 3, 4, 21, 12, 8, 63, 48, 16, 189, 192, 32, 567, 768, 64......

13) Faa um programa que receba vrios nmeros, calcule e mostre:

a) a soma dos nmeros digitados;


b) a quantidade de nmeros digitado;

38
Tcnicas de Programao

c) a mdia dos nmeros digitados;


d) o maior nmero digitado;
e) o menor nmero digitado;
f) a mdia dos nmeros pares.

14) Faa um programa que leia um valor n, inteiro e positivo, calcule e mostre a soma S da seguinte
forma: S= 1 + 1/2 +1/3+1/4+...+1/n

15) Uma loja utiliza o cdigo V para transao a Vista e P para transao a prazo. Faa um programa
que receba o cdigo e o valor das transaes e mostre:
a) o valor total das vendas a vista;
b) o valor total das vendas a prazo;
c) o valor total das vendas efetuadas.

16) A prefeitura de uma cidade fez uma pesquisa entre seus habitantes, coletando dados sobre o
salrio e o nmero de filhos. A prefeitura deseja saber:
a) a mdia dos salrios da populao;
b) a mdia dos nmero de filhos;
c) o maior salrio
d) a porcentagem de pessoas com salrios at R$ 320,00

17) Cada espectador de um cinema respondeu a um questionrio no qual constava sua idade e a sua
opinio em relao ao filme: timo, bom e regular. Faa um programa que recebe a idade e a opinio
das pessoas, calcule e mostre ao final:
a) a mdia das idades das pessoas que responderam timo;
b) a quantidade de pessoas que respondeu regular;
c) a porcentagem de pessoas que respondeu bom entre os entrevistados.

18) Foi feita uma estatstica em cinco cidades brasileiras para coletar dados sobre acidentes de
trnsito. Foram obtidos os seguintes dados:
a. Cdigo da cidade;
b. Nmero de veculos de passeio em 2006;
c. Nmero de acidentes de trnsito com vtimas em 2006.
Deseja-se saber:
a. qual o maior e o menor ndice de acidentes de trnsito;
b. qual a mdia de veculos nas cinco cidades juntas;
c. qual a mdia de acidentes de transito nas cidades com menos de 2000 veculos de
passeio.

19) Uma empresa possui 10 funcionrios com as seguintes caractersticas: cdigo, nmero de
horas trabalhadas no ms, turno de trabalho(M-Matutino, V- Vespertino ou N-Noturno), categoria
(O-Operrio ou G-Gerente), valor da hora trabalhada. Sabendo-se que essa empresa deseja
informar sua folha de pagamento, faa um programa que:
Leia as informaes dos funcionrios, exceto o valor da hora trabalhada, no permitindo
que sejam informados turnos nem categorias inexistentes. Trabalhar sempre com a
digitao de letras maisculas;
Calcule o valor da hora trabalhada de acordo com a tabela s seguir:

Categoria Turno Valor da Hora trabalhada


G N 18% do salrio mnimo
G M ou V 15% do salrio mnimo
O N 13% do salrio mnimo
O M ou V 10% do salrio mnimo

Adote o valor de R$410,00 para o salrio mnimo.

39
Tcnicas de Programao

Calcule o salrio inicial dos funcionrios com base no valor da hora trabalhada e no
nmero de horas trabalhadas.
Calcule o valor do auxlio-alimentao recebido por funcionrio de acordo com o seu
salrio inicial, conforme a tabela a seguir:
Salrio Inicial Auxlio Alimentao
At R$500,00 20% do salrio inicial
Entre R$500,00 e R$800,00 15% do salrio inicial
Acima de R$800,00 5% do salrio inicial
Mostre o cdigo, nmero de horas trabalhadas, valor da hora trabalhada, salrio inicial,
auxlio-alimentao e o salrio final(salrio inicial + auxlio-alimentao)

20) Uma empresa contratou 15 funcionrios temporrios. De acordo com o valor de vendas
mensais, os funcionrios adquirem pontos que determinaro seus salrios ao final de cada ms.
Sabe-se que esses funcionrios trabalharo nos meses de novembro a janeiro do ano
subseqente.
Faa um programa que:
Leia as pontuaes nos trs meses de cada funcionrio;
Calcule e mostre a pontuao geral de cada funcionrio nos trs meses;
Calcule e mostre a mdia das pontuaes de cada funcionrio nos trs meses
Determine e mostre a maior pontuao atingida entre os funcionrios nos trs meses.

Bibliografia:

Saliba, Walter Luiz Caram


Tcnicas de Programao
Makron Books

Manzano,Jos A e Oliveira Jayr F


Algoritmos
Editora rica

Apostila do Curso Bsico de Lgica de Programao


Paulo Srgio de Moraes
Centro de Computao - Unicamp

40

Você também pode gostar