Você está na página 1de 54

EDGAR TITO - INFORMTICA 2014 Prof.

Ranildo Lopes

U.E PROF EDGAR TITO - NOITE


PROF. RANILDO LOPES
DISCIPLINA: Lgica de Programao

APOSTILA 02
LGICA DE PROGRAMAO

Visite nosso stio


http://ueedgartito.wordpress.com
Nele esto os resumos e trabalho
de sala de aula
Obrigado pela preferncia de nossa ESCOLA!

EDGAR TITO - INFORMTICA 2014 Prof. Ranildo Lopes

Sumrio
I - CONCEITOS INICIAIS .......................................................................................................................................... 3
Lgica de programao......................................................................................................................................... 3
Algoritmo ............................................................................................................................................................... 3
Instruo................................................................................................................................................................ 4
EXERCCIOS ........................................................................................................................................................ 4
Programa de Computador..................................................................................................................................... 4
Fases..................................................................................................................................................................... 4
Diagrama de Blocos .............................................................................................................................................. 5
EXERCCIOS ........................................................................................................................................................ 5
II - VARIVEIS........................................................................................................................................................... 5
Tipos de Variveis ................................................................................................................................................. 6
Numricas ......................................................................................................................................................... 6
Cadeia ou String ou Alfanumricas .................................................................................................................. 6
Caractere .......................................................................................................................................................... 6
Lgico................................................................................................................................................................ 7
Constantes ............................................................................................................................................................ 7
III - EXPRESSES .................................................................................................................................................... 7
Operadores Aritmticos......................................................................................................................................... 7
Operadores Relacionais........................................................................................................................................ 7
Operadores Lgicos .............................................................................................................................................. 8
EXERCCIOS ........................................................................................................................................................ 9
IV COMANDOS BSICOS ................................................................................................................................... 10
Comando de Atribuio....................................................................................................................................... 10
Comando de Entrada .......................................................................................................................................... 10
Comando de Sada.............................................................................................................................................. 10
Primeiro Exemplo Portugus Estruturado e Pascal ......................................................................................... 10
EXERCCIOS - Estrutura Seqencial.................................................................................................................. 12
V ESTRUTURAS DE SELEO .......................................................................................................................... 13
Conceitos............................................................................................................................................................. 13
Seleo Simples.................................................................................................................................................. 13

Seleo Composta .............................................................................................................................................. 13


Exemplo............................................................................................................................................................... 13
EXERCCIOS Estrutura de Seleo................................................................................................................. 14
Alternativa de Mltiplas Escolhas........................................................................................................................ 15
EXERCCIOS Alternativa de Mltiplas Escolhas ............................................................................................. 17
VI ESTRUTURAS DE REPETIO ..................................................................................................................... 17
Comando Enquanto (While - Do) ........................................................................................................................ 17
Comando Repita (Repeat - Until) ........................................................................................................................ 18
EXERCCIOS Comando Enquanto (WHILE) ................................................................................................... 18
Comando Para (For)............................................................................................................................................ 20
EXERCCIOS Comando Para (For) ................................................................................................................. 21
ANEXO I Questes de Raciocnio Lgico .............................................................................................................. 2
ANEXO II - Transferncia de Comandos: Portugus Estruturado para Pascal ........................................................ 3

EDGAR TITO - INFORMTICA 2014 Prof. Ranildo Lopes

I - CONCEITOS INICIAIS
Lgica de programao
a tcnica de encadear pensamentos para atingir determinado objetivo. O aprendizado desta
tcnica necessrio, para quem quer trabalhar com desenvolvimento de sistemas e programas.
Algoritmo
uma seqncia de passos finitos com o objetivo de solucionar um problema.
O estudo da lgica o estudo dos mtodos e princpios usados para distinguir o raciocnio correto
do incorreto. Naturalmente, essa definio no pretende afirmar que s possvel argumentar
corretamente com uma pessoa que j tenha estudado lgica. Afirm-lo seria to errneo quanto
pretender que s possvel correr bem, se estudou fsica e fisiologia, necessrias para a
descrio dessa atividade. Alguns excelentes atletas ignoram completamente os processos
complexos que se desenrolam dentro deles prprios quando praticam o esporte.
Assim tambm acontece no nosso dia-a-dia. Quantas vezes j vimos um algoritmo e no
sabamos que aquela seqncia de passos chamava-se algoritmo.
Um exemplo bem freqente quando queremos falar em algum telefone pblico.
Exemplo de algoritmo para falar em um telefone pblico
1 Retirar o telefone do gancho;
2 Esperar o sinal;
3 Colocar o carto;
4 Discar o nmero;
5 Falar no telefone;
6 Colocar o telefone no gancho.
O algoritmo exatamente esse conjunto de passos que resolveu o problema de uma
pessoa falar no telefone. como se fssemos ensinar uma mquina a fazer alguma tarefa
especfica.
Outro exemplo clssico um algoritmo para resolver o problema de fritar um ovo que
poderia estar escrito em forma de uma receita. A receita um algoritmo, pois formada de aes
que devem ser tomadas para fritar um ovo.
Exemplo de algoritmo para fritar um ovo
1 pegar frigideira, ovo, leo e sal;
2 colocar leo na frigideira;
3 acender o fogo;
4 colocar a frigideira no fogo;
5 esperar o leo esquentar;
6 colocar o ovo;
7 colocar o sal;
8 retirar quando estiver pronto.
Cada linha do algoritmo pode-se chamar de uma instruo, logo, podemos dizer que um
algoritmo um conjunto de instrues.

4
EDGAR TITO - INFORMTICA 2014 Prof. Ranildo Lopes
Assim como fritar um ovo, nos algoritmos computacionais no podemos trocar ou omitir
certas instrues, caso contrrio no obteremos o resultado esperado. Por exemplo, se omitirmos
a instruo acender o fogo, no teremos ao final do algoritmo um ovo frito.
Instruo
Indica a um computador uma ao elementar a ser executada.
At as coisas mais simples podem ser descritas por um algoritmo. Por exemplo:
Algoritmo para o fim de semana
1 vejo a previso do tempo;
2 se fizer sol
vou praia;
seno
vou estudar;
3 almoar;
4 ver televiso;
5 dormir.
EXERCCIOS
1 Fazer um algoritmo para tomar banho:
2 Crie um algoritmo para fazer uma prova:
3 Faa um algoritmo para somar dois nmeros:
Programa de Computador
Nada mais do que um algoritmo escrito numa linguagem de computador (C, Pascal, Fortran,
Delphi, Cobol, Java e outras). a traduo para o ingls do algoritmo feito em portugus. O mais
importante de um programa a sua lgica, o raciocnio utilizado para resolver o problema, que
exatamente o algoritmo.
A forma de escrever um algoritmo em pseudocdigo (algoritmo que no usa nenhuma
linguagem de programao) vai variar de autor para autor, pois, um traduz ao p da letra a
linguagem C, outro, o Pascal, outro, mistura as duas linguagens e assim por diante.
importante lembrar que estas variaes vo sempre ocorrer, podemos dizer que uma
variao de autores adotados.
Fases
A principal finalidade de um computador realizar a tarefa de processamento de dados, isto
, receber dados atravs de dispositivos de entrada que podem ser, por exemplo, teclado, mouse,
scanner, entre outros; realizar operaes com estes dados e gerar uma resposta que ser
expressa em um dispositivo de sada que pode ser, por exemplo, uma impressora, um monitor de
vdeo, entre outros.
Entretanto ao montar um algoritmo, precisamos primeiro dividir o problema apresentado em trs
fases fundamentais:
ENTRADA DE
PROCESSAMENTO
SADA DE DADOS
DADOS
DE DADOS
ENTRADA: So os dados de entrada do algoritmo.
PROCESSAMENTO: So os procedimentos utilizados para chegar ao resultado final.

5
EDGAR TITO - INFORMTICA 2014 Prof. Ranildo Lopes
SADA: So os dados j processados, os resultados, mostrados na tela do computador (monitor
de vdeo) ou impressora.
Diagrama de Blocos
uma forma padronizada para representar os passos lgicos de um determinado processamento.
Com o diagrama, tambm conhecido como fluxograma, 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 do Diagrama de Bloco
Existem diversos smbolos em um diagrama de bloco. Veja no quadro abaixo alguns dos smbolos
que iremos utilizar:
Smbolo
Funo
Indica o incio ou fim de um processamento
Exemplo: Incio do algoritmo

TERMINAL

Processamento em geral
Exemplo: x<- 2+3
PROCESSAMENTO
Indica entrada de dados pelo usurio via teclado
Exemplo: Digite a nota da prova 1
ENTRADA MANUAL DE DADO
Mostra informaes ou resultados
Exemplo: Mostre o resultado do clculo
EXIBIR

EXERCCIOS
1.
Construir um diagrama de blocos que:
- leia quatro nmeros
- calcule a mdia
- mostre o resultado.
2.
Construa fluxograma que:
- leia o salrio de um empregado
- calcule o novo salrio sabendo que l teve um aumento de 15%
- mostre o resultado na tela
3.

Agora faa um algoritmo para o exerccio 2.

II - VARIVEIS
um local na memria principal, isto , um endereo que armazena um contedo.
O contedo de uma varivel pode ser de vrios tipos: inteiro, real, caractere (literal), String
(cadeia), lgico, entre outros.
Uma vez definidos o nome e o tipo de uma varivel, no podemos alter-los no decorrer de um
algoritmo. Por outro lado, o contedo da varivel pode ser modificado no decorrer do programa, de
acordo com a necessidade.
Em algoritmos, as variveis so definidas no incio por meio do comando definido:

EDGAR TITO - INFORMTICA 2014 Prof. Ranildo Lopes


Nome da varivel: tipo da varivel;

Exemplos:
A: inteiro;
X: real;
Nome: string (ou cadeia);
Regras para formao do nome de uma varivel:
1 O primeiro caractere uma letra;
2 Se houver mais de um caractere, poderemos usar letras ou dgitos;
3 Nomes de variveis escritas com letras maisculas sero diferentes de letras minsculas
em muitas linguagens de programao. Lembre-se: peso diferente de PESO;
4 Nenhuma palavra reservada poder ser nome de uma varivel.
Nomes Vlidos
Nome, profissao,n, n1,PESO, A

Nomes No-Vlidos
2X -> Comea por algarismo
peso do aluno -> espao no permitido

Tipos de Variveis
Numricas
So aquelas que armazenam dados numricos, podendo ser divididos em duas classes:
Inteiro: so aqueles que no possuem componentes decimais ou fracionrios, podendo ser
positivos ou negativos.
Normalmente uma varivel do tipo inteira poder ocupar 1, 2 ou 4 bytes na MP.
Exemplos:
10
nmero inteiro positivo
-10
nmero inteiro negativo
Real: so aqueles que podem possuir componentes decimais ou fracionrios, podendo
tambm ser positivos ou negativos.
Normalmente uma varivel do tipo real poder ocupar 4 ou 8 bytes na MP.
Exemplos:
25.03
nmero real positivo com duas casas decimais
235. nmero real positivo com zero casas decimais
-10.5
nmero real negativo com uma casa decimal
Cadeia ou String ou Alfanumricas
So aquelas que possuem letras e/ou nmeros. Pode em determinados momentos conter
somente dados numricos ou somente letras. Se usado somente para armazenamento de
nmeros, no poder ser utilizado para operaes matemticas.
O nmero de bytes possveis para armazenamento de uma varivel desse tipo depender da
quantidade de caracteres.
Exemplos:
Maria
String de comprimento 5
123
String de comprimento 3
A
String de comprimento 1
Caractere
aquele que armazena apenas uma letra ou dgito, uma string de comprimento 1. Se usado
para armazenar nmero no poder ser utilizado para operaes matemticas.

EDGAR TITO - INFORMTICA 2014 Prof. Ranildo Lopes

Normalmente uma varivel do tipo caractere ocupar 1 byte na MP.


Exemplos:
A
caractere que armazena uma letra
5
caractere que armazena um nmero
Lgico
Tambm conhecido como booleano. representado no algoritmo pelos dois nicos valores
lgicos possveis: verdadeiro ou falso. Porm comum encontrar em outras referncias outros
pares de valores lgicos como: sim/no, 1/0, true/false, verdadeiro/falso.
Constantes
Constante um determinado valor fixo que no se modifica ao longo do tempo, durante a
execuo de um programa. Conforme seu tipo, a constante classificada como sendo numrica,
lgica ou literal.
As declaraes das constantes em um algoritmo so feitas antes das declaraes das variveis:
Sintaxe:
Nome da constante = valor da constante;

III - EXPRESSES
O conceito de expresso em termos computacionais est intimamente ligado ao conceito de
expresso (ou frmula) matemtica, onde um conjunto de variveis e constantes numricas
relaciona-se por meio de operadores compondo uma frmula que, uma vez avaliada, resulta num
valor.
Operadores Aritmticos
Os operadores matemticos so:
Operador
+
*
/
Div
Mod

Funo
Somar
Subtrair
Multiplicar
Dividir
Quociente inteiro
Resto da diviso

Os operadores Div e Mod s podem ser aplicados com operandos inteiros.


O operador / sempre conduz a um resultado real.
Com os operadores +, - e * , se pelo menos um dos operandos for real, ento o resultado ser
real.
Exemplos de expresses aritmticas:
3*3=9
9 / 2 = 4.5
9 DIV 2 = 4
9 MOD 2 = 1
2 / 9 = 0.22
2 + 4.6 = 6.6
Operadores Relacionais
Uma expresso relacional uma comparao realizada entre dois valores de mesmo tipo,
tendo como resposta sempre um valor booleano (verdadeiro ou falso). Estes valores so
representados na relao atravs de constantes, variveis ou expresses aritmticas.

EDGAR TITO - INFORMTICA 2014 Prof. Ranildo Lopes

Os operadores relacionais so:


Smbolo

Descrio

Igual

<>

Diferente

<=

Menor ou igual

>=

Maior ou igual

>

Maior que

<

Menor que

Exemplo de relaes:
X=1
y=2
z=5
X *X+Y>Z
1 * 1 +2>5
1 + 2 >5
3 > 5
Resultado desta expresso: FALSO
Operadores Lgicos
Uma expresso lgica serve para combinar resultados de expresses aritmticas e/ou
relacionais, variveis e/ou constantes, retornando verdadeiro ou falso.
Exemplo de operadores lgicos, matematicamente conhecidos:
E
Ou
No

And
Or
Not

E / AND
Uma expresso AND (E) verdadeira se todas as condies forem
verdadeiras.
OR / OU
Uma expresso OR (OU) verdadeira se pelo menos uma condio for
verdadeira.
NOT / NO Uma expresso NOT (NO) inverte o valor da expresso ou condio,
se verdadeira inverte para falsa e vice-versa.
Tabela E (AND)
VeV=V
VeF=F
FeV=F
FeF=F

Tabela OU (OR)
V ou V = V
V ou F = V
F ou V = V
F ou F = F

As prioridades entre os operadores so:


1 - ( )
2 - funes
3 - No
4 - *, / , Div, Mod, E

Tabela NO (NOT)
No V = F
No F = V

EDGAR TITO - INFORMTICA 2014 Prof. Ranildo Lopes

5 - +, -, Ou
6 - =, < >, <, <=, >, >=.
Observao: em caso de empate entre as prioridades, resolver da esquerda para a direita.
EXERCCIOS
1. Identifique o tipo dos dados:
(a)
inteiro;
(b)
real;
(c)
lgico;
(d)
cadeia ou literal
( ) verdadeiro
( ) aula
( ) -0.342
2.
(a)
(b)

( ) c*d
( ) 897
( ) 35.23

( ) falso
( ) 345
( ) -23

( ) 1 2 3 4
( ) -18.589
( ) Maria

Indique os identificadores como vlidos ou invlidos:


identificador vlido
identificador invlido

( ) ano
( ) media_salario
( ) mdia

( ) ai!
( ) A15B34
( ) aula

( ) 3/1
( ) nome-aluno
( ) 5

3.
Faa a declarao de 2 variveis do tipo inteira, 2 do tipo real, 2 de um nico
caractere e 2 do tipo cadeia de caracteres.

a)
b)
c)
d)
e)

4. Indique qual o resultado das expresses aritmticas abaixo:


Sendo: x = 6.0
y=2
z = 4.0
a=8
b = 7.5
c = 7.7
d = 12
p=4
q=3
r = 10
s = 2.5
x+yz*a=
f)
((z / a) + b * a) d =
d div y =
g)
100 * (q div p) + r =
d mod y =
h)
p * (r mod q) q/2
y div d =
i)
raiz (r (q * q ) ) =
y mod d =
j)
(a + r) * r =
5. Dadas as informaes abaixo, informe qual o valor das relaes (verdadeiro ou
falso):

a)

a = 2.0,
b = 9.0,
a + 1 > = raiz (b)
nome < > ana
profissao = mdico

nome = ana,
( )
( )
( )

profissao = advogado

b)

a = 6.0,
b = 121.0,
a + 1 > = raiz (b)
nome < > ana
profissao = mdico

c)

x = 3, y = 4, z = 16, nome = maria,


( x + y > z ) and (nome = maria)

nome = pedro,
( )
( )
( )

profissao = mdico

resultado = verdadeiro
( )

EDGAR TITO - INFORMTICA 2014 Prof. Ranildo Lopes


(resultado) or ( y > = x )
( )
(not resultado) and ( z div y + 1 = x )
( )
(nome = jos) and ( x + y + z < ( y * y ))
( )

10

IV COMANDOS BSICOS
Comando de Atribuio
Este comando utilizado para atribuir valores a variveis e, em portugol (portugus estruturado),
representado por <- (seta da direita para esquerda).
Exemplos de comandos de atribuio:
Cor <- verde;
Teste <- falso;
Media <- (n1 + n2) / 2;
X <- raiz (16);
Comando de Entrada
O comando de entrada LEIA utilizado para receber dados do teclado.
o comando que permite que o usurio digite dados, possibilitando um dilogo com o
computador. O dado digitado armazenado na varivel indicada no comando.
Lembre-se de que o nome de uma varivel representa uma posio de memria.
Sintaxe:
Leia (nome de uma varivel);
Exemplo:
Leia (n);
Comando de Sada
o comando responsvel por enviar um resultado, uma informao ao usurio. O valor de
cada varivel buscado na memria e mostrado em um dispositivo de sada. Atravs desse
comando o computador pode emitir os resultados e outras mensagens para o usurio atravs da
tela do computador (monitor) ou uma impressora.
Sintaxe:
Escreva (expresso ou varivel ou constantes);
Exemplos:
Escreva ( Aprender lgica com esta apostila ficou bem mais fcil!);
Escreva ( Digite o seu nome: );
Escreva ( A + B );
Escreva (A mdia das notas = , media);
Primeiro Exemplo Portugus Estruturado e Pascal
Algoritmo que l um nome digitado pelo usurio e mostra uma mensagem.
Portugus Estruturado
Programa exemplo1;
Var
nome: literal;
Incio
Escreva (Digite um nome: );
Leia (nome);
Escreva(nome, um nome muito
bonito! );

Fim.

Pascal
Program exemplo1;
Var
nome: string;
Begin
Write (Digite um nome: );
Read (nome);

EDGAR TITO - INFORMTICA 2014 Prof. Ranildo Lopes


Write (nome,
bonito! );

um

nome

muito

End.

11

EDGAR TITO - INFORMTICA 2014 Prof. Ranildo Lopes


EXERCCIOS - Estrutura Sequencial
1.

12

Faa um algoritmo que leia dois nmeros, calcule e imprima a soma desses dois nmeros.

2. Faa um programa que receba dois nmeros reais, calcule e mostre a subtrao do primeiro
nmero pelo segundo.
3. Faa um programa que receba dois nmeros inteiros, calcule e imprima a diviso do primeiro
nmero pelo segundo.
4.

Faa um programa que leia um nmero e informe a metade e o dobro desse nmero.

5. Escreva um programa que receba um nmero via teclado e informe em seguida a metade e o
quadrado desse nmero.
6. Escrever um programa que permita receber o nome e a idade de uma pessoa e em seguida,
informar o nome digitado e a idade da pessoa daqui a 30 anos.
7. Faa um programa que leia trs notas de um aluno, calcule e imprima a mdia aritmtica
entre essas notas.
8. Faa um programa que receba dois nmeros inteiros, calcule e imprima:
- soma do dois nmeros;
- subtrao do primeiro pelo segundo;
- subtrao do segundo pelo primeiro;
- produto dos dois nmeros;
- diviso do primeiro pelo segundo;
- quociente inteiro da diviso do primeiro pelo segundo;
- resto da diviso do primeiro pelo segundo.
9. Faa um programa que receba quatro nmeros inteiros, calcule e mostre a soma desses
nmeros.
10. Faa um programa que receba trs notas e seus respectivos pesos. Calcule e mostre a
mdia ponderada dessas notas.
11. Faa um programa que receba o valor do salrio de um funcionrio. Calcule e mostre o novo
salrio, sabendo-se que este sofreu aumento de 25%.
12. Faa um programa que receba o valor do salrio de um funcionrio e o percentual de
aumento, calcule e mostre o valor do aumento e o novo salrio.
13. Faa um programa que receba o valor do salrio-base de um funcionrio, calcule e mostre o
salrio a receber, sabendo-se que este funcionrio tem gratificao de 5% sobre o salrio-base e
paga imposto de 7% sobre o salrio-base.
14. Faa um programa que receba o valor do salrio-base de um funcionrio, calcule e mostre o
salrio a receber, sabendo-se que este funcionrio tem gratificao de R$ 1.000,00 e paga
imposto de 10% sobre o salrio-base.

EDGAR TITO - INFORMTICA 2014 Prof. Ranildo Lopes

13

V ESTRUTURAS DE SELEO
Conceitos
Os algoritmos at agora seguiram um mesmo padro: entrava-se com dados, estes eram
processados e alguma informao era mostrada na tela.
Dessa forma, o computador mais parecia uma mquina de calcular. O aprendizado de
novos conceitos, como a estrutura de seleo, nos dar uma viso maior da complexidade de
tarefas que ele poder executar.
Um exemplo do nosso dia-a-dia: imagine-se diante de um caixa eletrnico e suponha que
sua senha seja 1234:
Na tela aparece a mensagem:
- Digite sua senha :
E o cursor (
ou | ) fica piscando:
Voc digita os algarismos da sua senha.
Neste momento, a Unidade Lgica e Aritmtica (um dos componentes da CPU) verifica se os
nmeros que voc digitou so iguais a 1234. Caso tenha sido, a transao bancria continua;
mas, se voc digitou algo diferente, aparece na tela a mensagem: SENHA INVLIDA.
Sintaxes:
Seleo Composta
Seleo Simples
Se condio ento
Se condio ento
Incio
Comando (s);
Incio
Comando (s);
Fim
Seno
Incio
Fim;
Comando (s);
Fim;
Podemos constatar que esta estrutura faz parte do nosso cotidiano:
- Se eu no tiver prova, vou ao clube; seno vou estudar.
- Se eu tiver aumento, troco de carro; seno espero o 13 salrio.
- Se minha mdia for maior ou igual a sete, passo direto; seno fao exame final.
A nica coisa diferente a forma como iremos escrev-la, vamos adaptar os algoritmos para uma
linguagem especfica de um modo formal, obedecendo as regras da linguagem.
Exemplo
Algoritmo que l um nmero e mostra uma mensagem dizendo se o nmero digitado ou no
mltiplo de 5.
Pascal:
Portugus Estruturado:
Programa ExemploSe;
Var
num, resto: inteiro;
Incio
Escreva (Digite um nmero: );
Leia (num);
resto <- num mod 5;
Se resto = 0 ento
Escreva (num, mltiplo de
5)
Seno
Escreva (num, no mltiplo
de 5);
Fim.

Program ExemploSe;
Var
num, resto: integer;
Begin
Write (Digite um nmero: );
Read (num);
resto := num mod 5;
If resto = 0 then
Write (num, mltiplo de 5)
Else
Write (num, no mltiplo de
5);
End.

EDGAR TITO - INFORMTICA 2014 Prof. Ranildo Lopes

14

Observaes:
Antes de Else no se usa ponto e vrgula;
O Begin e o End so obrigatrios somente quando se tem mais de um comando dentro
do If e do Else.
EXERCCIOS Estrutura de Seleo
1.
Faa um programa que leia um nmero e informe se o dobro do nmero maior que 35.
2.

Faa um programa que leia um nmero e informe se a metade do nmero menor que 12.

3.
Faa um programa que leia dois nmeros e informe apenas se o primeiro maior que o
segundo.
4.

Faa um programa que leia dois nmeros e informa se o primeiro igual ao segundo.

5.
Faa um programa que leia dois nmeros e informe se o primeiro maior, menor ou igual
ao segundo.
6.

Faa um programa que leia trs nmeros e informe qual dos trs o maior.

7.
.

Fazer um programa que receba um nmero e mostre se ele positivo, negativo ou nulo (0)

8.
Elabore um algoritmo que leia um nmero e mostre o nmero com a mensagem par ou
mpar.
9.
Faa um programa que leia a altura e o sexo de uma pessoa, calcule e imprima seu peso
ideal, utilizando as seguintes frmulas:
Para homens: (72.7 * h) 58
Para mulheres: (62.1 * h) 44.7
(h = altura)
10.
Faa um programa que receba quatro notas de um aluno, calcule e imprima a mdia
aritmtica das notas e a mensagem de aprovado para mdia superior ou igual a 7.0 ou a
mensagem de reprovado para mdia inferior a 7.0.
11.
Faa um programa que calcule e imprima o salrio reajustado de um funcionrio de acordo
com a seguinte regra:
- salrios at R$ 300,00, reajuste de 50%
- salrios maiores que R$ 300,00, reajuste de 30%
12.
A prefeitura do Rio de Janeiro abriu uma linha de crdito para os funcionrios municipais. O
valor mximo da prestao no poder ultrapassar 30% do salrio bruto. Fazer um algoritmo que
permita entrar com o salrio bruto e o valor da prestao e informar se o emprstimo pode ou no
ser concedido.
13.
Ler um nmero qualquer e exibir na tela uma mensagem indicando se ele positivo,
negativo ou nulo (zero). Se ele for positivo, exibir tambm a raiz quadrada deste nmero. Se ele
for negativo voc deve escrever uma mensagem dizendo No possvel calcular a raiz deste
nmero.

EDGAR TITO - INFORMTICA 2014 Prof. Ranildo Lopes

15

14.
Ler um nmero inteiro e exibir na tela a mensagem Par se ele for um nmero par, ou
mpar se ele for um nmero mpar.
15.
Faa um programa que receba trs notas de um aluno, calcule e mostre a mdia
aritmtica e as mensagens de acordo com a tabela abaixo. Para os alunos de exame, calcule e
mostre a nota que dever ser tirada no exame para aprovao, considerando que a mdia no
exame de 6,0.
MDIA
[ 0,0 a ] 3,0
[ 3,0 a ] 7,0
[ 7,0 a 10,0 ]
16.

MENSAGEM
Reprovado
Exame
Aprovado

Faa um programa que receba trs nmeros e os mostre em ordem crescente.

17.
Dados trs valores X, Y e Z, verificar se eles podem ser os lados de um tringulo e, se
forem, verificar se um tringulo eqiltero, issceles ou escaleno. Se eles no formarem um
tringulo informar ao usurio tal situao. Considerar que:
Condio para ser tringulo: O comprimento de cada lado de um tringulo menor que a soma
dos outros dois lados.
Chama-se tringulo eqiltero o tringulo que tem os trs lados iguais;
Chama-se tringulo issceles o que tem o comprimento de dois lados iguais;
Chama-se tringulo escaleno o tringulo que tm os trs lados diferentes.
18.
Faa um programa que receba o cdigo de origem de um produto e informe a sua
procedncia. A procedncia obedece a seguinte tabela:
Cdigo de origem
Procedncia
1
Sul
2
Norte
3
Leste
4
Oeste
5 ou 6
Nordeste
7, 8 ou 9
Sudeste
10 at 20
Centro-oeste
21 at 30
Noroeste
Alternativa de Mltiplas Escolhas
uma alternativa para quando o algoritmo tiver muitos SEs, deixando o programa com uma
estrutura melhor.
Sintaxe:
Alvo 2: comando 2;
Portugus Estruturado
Alvo n: comando n;
Caso <nome da varivel> seja
Fim;
Alvo 1: comando 1;

EDGAR TITO - INFORMTICA 2014 Prof. Ranildo Lopes


Ou
Alvo 3: comando 4;
Caso <nome da varivel> seja
Seno
Alvo 1: comando 1;
comando 5;
Alvo 2: comando 2;
Fim;

16

Pascal
Case <nome da varivel> of
Alvo 1: comando 1;
Alvo 2: comando 2;
Alvo n: comando n;
End;

Ou
Case <nome da varivel> of
Alvo 1: comando 1;
Alvo 2: comando 2;
Alvo 3: comando 4;
Else
comando 5;
End;

Observaes:
No Case tambm pode fazer uso do Else;
Antes do Else se usa ; (ponto e vrgula);
O Case no tem Begin, mas, tem End;
A varivel que far a verificao dever ser declarada do tipo Integer, Char ou Boolean.
Exemplo:
Este programa l a idade de um nadador e informa a sua categoria seguindo as seguintes regras:
Infantil A (5 - 7 anos), Infantil B (8 10 anos), Juvenil A (11 13 anos), Juvenil B (14 17 anos),
Snior (maiores de 18 anos).
Portugus Estruturado
Programa Exemplo;
var
idade: integer;
Incio
Escreva('Idade do nadador: ');
Leia (idade);
Caso idade seja
5..7: Escreva ('Categoria Infantil
A');
8..10:Escreva
('Categoria
Infantil
B');
11..13:Escreva('Categoria JuvenilA');
14..17:Escreva('Categoria JuvenilB');
18..99:Escreva('Categoria Snior');
Seno
Escreva('Idade invlida!');
Fim;
//Fim do Caso
Fim.

Pascal

Program Exemplo;
var
idade: integer;
Begin
Write ('Digite a idade do nadador:
');
Read(idade);
Case idade of
5..7: Write ('Categoria Infantil
A');
8..10:Write
('Categoria
Infantil
B');
11..13:Write('Categoria Juvenil A');
14..17:Write
('Categoria
Juvenil
B');
18..99:Write ('Categoria Snior');
Else
Write('Idade invlida!');
End;
//End do Case
End.

17
EDGAR TITO - INFORMTICA 2014 Prof. Ranildo Lopes
EXERCCIOS Alternativa de Mltiplas Escolhas
1. Faa um programa que receba o cdigo de origem de um produto e informe a sua
procedncia. (Obs.: este o exerccio 14 da estrutura de seleo se, mas, agora ele ser feito
utilizando o escolha caso.) A procedncia obedece a seguinte tabela:
Cdigo de origem
Procedncia
1
Sul
2
Norte
3
Leste
4
Oeste
5 ou 6
Nordeste
7, 8 ou 9
Sudeste
10 at 20
Centro-oeste
21 at 30
Noroeste
2. Faa um programa que leia um nmero digitado pelo usurio e o escreva por extenso se ele
estiver entre 1 e 5 inclusive, caso contrrio mostrar uma mensagem: Opo de nmero invlida!
3. Escrever um algoritmo que leia um peso na Terra e o nmero de um planeta e imprima o
valor do seu peso neste planeta. A relao de planetas dada a seguir juntamente com o valor
das gravidade relativas Terra:
N
gravidade relativa
Planeta
1
0.37
Mercrio
2
0.88
Vnus
3
0.38
Marte
4
2.64
Jpiter
5
1.15
Saturno
6
1.17
Urano
Para calcular o peso no planeta escolhido use a seguinte frmula:
Peso no Planeta = Peso / 10 * gravidade.

VI ESTRUTURAS DE REPETIO
Vamos supor que nossos algoritmos precisaro ser executados mais de uma vez e, para que
no tenhamos que reescrever trechos idnticos que aumentariam consideravelmente o tamanho
do programa, utilizaremos as estruturas de repetio.
Comando Enquanto (While - Do)
Esta estrutura recomenda quando o nmero de repeties for desconhecido. Para que
funcione corretamente necessrio observar:
necessrio um teste (uma condio) para interromper a repetio, esta estrutura testa
a condio e s executa o que est dentro dela se for verdadeira.
A varivel que testa a condio dever ter seu valor atribudo no incio do programa
atravs de um comando de leitura ou de atribuio, antes da estrutura do enquanto e dentro da
estrutura, como ltimo comando.
O Enquanto comea com Incio (Begin) e termina com Fim (End;)
Pode-se usar outras estruturas dentro do Enquanto (While), como: If, Case, etc.

EDGAR TITO - INFORMTICA 2014 Prof. Ranildo Lopes


Sintaxe:
Portugus Estruturado:
ENQUANTO condio FAA
INCIO
Comando 1;
Comando 2;
Comando n;
FIM;

18

Pascal:
WHILE condio DO
BEGIN
Comando 1;
Comando 2;
Comando n;
END;

Exemplo: Faa um programa que leia vrios nmeros e imprima a metade de cada nmero, o
programa termina quando o 0 (zero) for digitado:
PORTUGUS ESTRUTURADO:
PROGRAMA Enquanto1;
VAR
num: INTEIRO;
metade:REAL;
INCIO
ESCREVA (Digite um nmero inteiro
);
LEIA (num);
ENQUANTO num <> 0 FAA
INCIO
metade <- num/2;
ESCREVA (A metade de , num, ,
metade);
ESCREVA (Digite outro nmero ou zero
para sair do programa: );
LEIA (num);
FIM;
FIM.

PASCAL:
PROGRAM Enquanto1;
VAR
num: INTEGER;
metade:REAL;
BEGIN
WRITE ('Digite um nmero inteiro ');
READ(num);
WHILE num <> 0 DO
BEGIN
metade := num/2;
WRITELN ('A metade de ', num, ' ',
metade:0:1);
WRITELN ('Digite outro nmero ou zero
para sair do programa: ');
READ(num);
END;
END.

Comando Repita (Repeat - Until)


Estrutura recomendada quando o nmero de repeties for desconhecido, sendo
necessria uma chave (um teste) para interromper a repetio.
Sua diferena em relao ao enquanto que ela testa a condio ao final, significando que
ela executa o trecho pelo menos uma vez.
Muitas pessoas no entendem por que existe esta estrutura se a estrutura Enquanto
(While) pode fazer o que ela faz. Na verdade tem muito programador que no faz uso dela.
Sintaxe:
Portugus Estruturado:
Repita
comandos;
At condio;

1.

Pascal
Repeat
comandos;
Until condio;
EXERCCIOS Comando Enquanto (WHILE)

Entrar com vrios nmeros e imprimir quantos nmeros foram digitados.

2.
O IBGE fez uma pesquisa, ele quer saber quantos dentistas foram entrevistados. Fazer um
programa que pergunte aos entrevistados qual a sua profisso e ao final diga quantas pessoas
foram entrevistadas e quantas so dentistas (considerar dentista, Dentista e DENTISTA).

19
EDGAR TITO - INFORMTICA 2014 Prof. Ranildo Lopes
3.
Dado um pas A, com 5.000.000 de habitantes e uma taxa de natalidade de 3% ao ano, e
um pas B com 7.000.000 de habitantes e uma taxa de natalidade de 2% ao ano, calcular e
imprimir o tempo necessrio para que a populao do pas A ultrapasse a populao do pas B.
4.
de:

Uma pousada estipulou o preo da diria em R$ 40,00 e mais uma taxa de servios dirios

- R$ 15,00, se o nmero de dias for menor que 10;


- R$ 8,00, se o nmero de dias for maior ou igual a 10.
Criar um algoritmo que imprima o nome, o valor da conta de cada cliente e ao final o total
arrecadado pela pousada.
5.
Criar um algoritmo que entre com vrios nmeros inteiros e positivos e informe a
quantidade de nmeros mltiplos de 3 (trs). O programa ser encerrado quando o usurio digitar
0 (zero) ou menos.
6.
Criar um algoritmo que entre com vrios nmeros inteiros e positivos e informe a mdia dos
nmeros mltiplos de 3 (trs). O programa ser encerrado quando o usurio digitar 0 (zero) ou
menos.
7.
Uma fbrica produz e vende vrios produtos e para cada um deles tem-se o nome,
quantidade produzida e quantidade vendida. Criar um algoritmo que mostre:
- Para cada produto, nome, quantidade no estoque e uma mensagem se o produto tiver menos
de 50 itens no estoque.
8.
Faa um programa que leia a idade e a altura de vrias pessoas. Calcule e informe a mdia
das alturas das pessoas com mais de 50 anos. Para encerrar o programa digite zero para idade.
9.
Faa um programa que leia vrios nmeros, quando o zero for digitado o programa ser
finalizado. Mostre no final desse programa a soma dos nmeros positivos, a soma dos negativos e
a soma total dos positivos e negativos juntos.
10.
O GDF realizou uma pesquisa entre vrios habitantes do DF, coletando dados sobre o
rendimento familiar e o nmero de filhos de cada famlia. O GDF quer saber:
- A mdia dos rendimentos da populao;
- Mdia do nmero de filhos.
11.
Uma empresa decidiu fazer um levantamento em relao aos candidatos que se
apresentarem para preenchimento de vagas no seu quadro de funcionrios. Suponha que voc
seja o programador dessa empresa, criar um programa que leia para cada candidato a idade, o
sexo e se tem experincia no servio (S ou N). Para encerrar o programa, digite zero para idade.
Calcule e escreva:
- O nmero de candidatos do sexo feminino;
- O nmero de candidatos do sexo masculino;
- A idade mdia dos homens que j tem experincia no servio.
12.
Uma empresa classifica seus funcionrios em trs nveis de acordo com um ndice de
produtividade. So eles (1) Excelente, (2) Bom e (3) Regular. Cada nvel acrescenta um abono ao
salrio base do funcionrio, de acordo com a seguinte tabela:
Excelente 80% do salrio base;
Bom
50% do salrio base;

20
EDGAR TITO - INFORMTICA 2014 Prof. Ranildo Lopes
Regular
30% do salrio base.
O programa deve ler a matrcula do funcionrio, seu salrio base e seu nvel de abono. Calcular e
imprimir o salrio a ser pago (salrio a ser pago = salrio base + abono). O programa ser
encerrado quando for digitado 0 para matrcula.
13.
Faa um programa que receba vrios nmeros positivos ou negativos, terminada por zero.
O programa deve fornecer como sada, a soma dos nmeros positivos e a soma dos nmeros
negativos.
14.
Faa um programa que leia os dados de vrios alunos, contendo o nmero da matrcula, as
trs notas e a freqncia. Calcule e mostre: para cada aluno o nmero de matricula, a nota final e
a mensagem (aprovado ou reprovado); a maior e a menor nota da turma; o total de alunos
reprovados;
15.
Faa um programa que receba a idade, a altura e o peso de vrias pessoas. Calcule e
mostre:

A quantidade de pessoas com idade superior a 50 anos;

A mdia das alturas das pessoas com idade entre 10 e 20 anos;

A percentagem de pessoas com peso inferior a 40 quilos entre todas as pessoas


analisadas.
16.
Uma empresa deseja aumentar seus preos em 20%. Faa um programa que leia o cdigo,
o preo de custo de vrios produtos e que calcule o novo preo de cada um deles. Calcule
tambm a mdia de preos com e sem aumento. Mostre o cdigo e o novo preo de cada produto
e, no final, as mdias. A entrada de dados deve terminar quando for recebido um cdigo de
produto menor ou igual a zero.
17.
Faa um programa que apresente um menu de opes para clculo das seguintes
operaes entre dois nmeros: adio, subtrao, multiplicao e diviso. O programa deve
permitir a escolha da operao desejada, a entrada dos nmeros, a exibio do resultado e a volta
ao menu de opes. O programa s termina quando for escolhida a opo de sada.

Comando Para (For)


Esta estrutura de repetio utilizada quando se sabe o nmero de vezes em que um trecho
do programa deve ser repetido.
Sintaxe:
Portugus Estruturado

PASCAL

PARA a<-valor inicial AT valor final FAA


INCIO
Comando 1;
Comando 2;
FIM;

FOR a := valor inicial AT valor final DO


INCIO
Comando 1;
Comando 2;
END;

Observaes:

21
EDGAR TITO - INFORMTICA 2014 Prof. Ranildo Lopes
1. O identificador (a varivel a no exemplo anterior) tem que ser declarada do tipo inteiro
(Integer).
2. A varivel que controla a repetio poder ser impressa se precisarmos dela para numerar
uma lista, posicionar, etc.
3. A varivel que controla a repetio jamais aparecer num comando de leitura dentro do
bloco de repetio.
Exemplo:
Algoritmo para escrever os nmeros de 1 at 10:
Portugus Estruturado
PASCAL
Programa para1;
Var
I : Inteiro;
Incio
Para i <- 1 at 10 faa
Incio
Escreva ( - , i);
fim;
Fim.

Program para1;
Var
I : Integer;
Begin
For i := 1 to 10 do
Begin
Write ( - , i);
End;
End.

EXERCCIOS Comando Para (For)


1.
Imprimir todos os nmeros de 100 at 1.
2.
Criar um algoritmo que imprima todos os nmeros pares no intervalo de 1 a 100.
3.
Criar um algoritmo que entre com cinco nmeros e imprima o quadrado de cada nmero.
4.
Entrar com 10 nmeros e imprimir a metade de cada nmero.
5.
Criar um algoritmo que imprima todos os nmeros de 1 at 100 e a soma deles.
6.
Escreva um programa que receba a idade de 10 pessoas, calcule e imprima a quantidade
de pessoas maiores de idade (idade >= 18 anos).
7.
Entrar com nome, idade e sexo de 10 pessoas. Imprimir o nome se a pessoa for do sexo
masculino e tiver mais de 21 anos.
8.
Em uma eleio presidencial, existem trs candidatos. Os votos so informados atravs de
cdigo. Os cdigos utilizados so:
1, 2, 3
votos para os respectivos candidatos;
0
votos em branco
outros cdigos
votos nulos
Escreva um programa que calcule e imprima:
- total de votos para cada candidato;
- total de votos nulos;
- total de votos em branco.
9.
Criar um algoritmo que entre com quatro notas de cada aluno de uma turma de 20 alunos e
mostre:
- A mdia de cada aluno;
- A mdia da turma;
- Quantos alunos foram aprovados (mdia 7.0)
10.

Imprimir as tabuadas de multiplicar de 1 at 10.

11.

Criar um algoritmo que deixe escolher qual a tabuada de multiplicar que se deseja imprimir

EDGAR TITO - INFORMTICA 2014 Prof. Ranildo Lopes


12.
Um empresa est fazendo a estatstica de seus funcionrios, ela precisa saber quantas
funcionrias tm com mais de 40 anos para encaminh-las para exames de mamografia. Fazer
um programa que leia o nome, a idade e o sexo de seus 10 funcionrios e imprima o nome se for
do sexo feminino e tiver mais de 40 anos.
13.
Faa um programa que receba a idade de 10 pessoas. O programa deve calcular e mostrar
a quantidade de pessoas com idade maior que 18 anos.
14.
Faa um programa que mostre a tabuada de multiplicao (de 1 a 10) para os 6 primeiros
nmeros primos. Ao mudar de uma base para outra o programa deve mostrar uma mensagem ao
usurio e aguardar que alguma tecla seja pressionada para ento montar a tabuada para a
prxima base.
15.
Faa um programa que receba a idade de 15 pessoas, calcule e mostre a quantidade de
pessoas em cada faixa etria.
Faixa etria
1
2
3
4
5

Idade
At 15 anos
De 16 a 30 anos
De 31 a 45 anos
De 46 a 60 anos
Acima de 61 anos

16.
Faa um programa que leia uma srie de nmeros positivos inteiros. Calcule e mostre o
maior nmero digitado. A entrada de dados deve terminar quando um nmero negativo foi
digitado.
17.
Faa um programa que receba um nmero, calcule e mostre o fatorial desse nmero.
Sabe-se que: n! = 1*2*3*...*(n-1)*n;
0! = 1, por definio.

ANEXO I Questes de Raciocnio Lgico


1.
Preencha o quadro a seguir de tal maneira que a soma dos nmeros que ficam sobre
uma linha, ou sobre uma coluna, ou sobre uma diagonal, d sempre 15 e todos os nmeros t de
ser diferentes:

2.
Entram num restaurante para jantar trs mulheres, cada uma com duas filhas. S
existiam 7 lugares. Nenhuma ficou de p. Como isso possvel?

EDGAR TITO - INFORMTICA 2014 Prof. Ranildo Lopes


3.
Tenho 3 camisas: A, B e C. Uma VERDE, uma BRANCA e outra AZUL, no
necessariamente nesta ordem. Sabe-se somanete que a a camisa A VERDE, B no VERDE e
C No AZUL. Quais as cores de A, B, e C, nessa ordem?
4.
Dentro de uma caixa fechada, h uma bola branca e uma bola preta. Numa segunda
caixa fechada, h duas bolas brancas e, numa terceira caixa fechada, h duas bolas pretas. Cada
caixa possui uma etiqueta indicando o contedo das caixas, mas algum misturou as trs
etiquetas de modo que todas as etiquetas esto erradas. Voc seria capaz de escolher apenas
uma das seis bolas de modo tal que, olhando a sua cor, voc possa dizer o contedo de cada uma
das caixas?

ANEXO II - Transferncia de Comandos: Portugus Estruturado para Pascal


Veja como seria a transferncia de alguns comandos de Portugus Estruturado para Pascal:
OBS: Os dados da tabela esto em ordem alfabtica.
Portugus Estruturado
(atribuio)
Algoritmo ou Programa
Cadeia (de caracteres) ou Literal
Caracter
E
Enquanto n <> 0 faa
Escreva (.....)
Fim
Incio
Inteiro
Leia (nome da varivel);
Nome:arranjo [1..10] de cadeia (ou string);
Ou
Para i1 at 10 faa
Se x > 10 ento
Seno
Var ou Variveis

Pascal
:=
Program
String
Char
And
While n <> 0 do
Write (.....);
End
Begin
Integer
Read (nome da varivel);
Nome: array [1..10] of string;
Or
For i:= 1 to 10 do
If x > 10 then
Else
Var

EDGAR TITO - INFORMTICA 2014 Prof. Ranildo Lopes

U.E PROF EDGAR TITO - NOITE


PROF. RANILDO LOPES
DISCIPLINA: Lgica de Programao

APOSTILA 03
LGICA DE PROGRAMAO

Visite nosso stio


http://ueedgartito.wordpress.com
Nele esto os resumos e trabalho
de sala de aula
Obrigado pela preferncia de nossa ESCOLA!

EDGAR TITO - INFORMTICA 2014 Prof. Ranildo Lopes

Variveis x Dados
Varivel o local de memria onde sero armazenados os dados de forma temporria. Em
nossos algoritmos no nos preocuparemos com o endereo real dessas variveis, pois a maioria
das linguagens de programao tornam estes endereos transparentes ao programador.

Para exemplificarmos a diferena entre dados (constantes) e variveis, bem como entender
melhor o endereamento de variveis, podemos citar o exemplo de uma estante de prateleiras,
onde esto guardados livros ou quaisquer outros objetos (veja figura).
Os livros e objetos podem ser chamados de dados, contedo das variveis. Para nos
referenciarmos varivel necessrio darmos um nome mesma, pois no trabalharemos com
endereo de memria propriamente dito, e sim com identificadores.
aconselhvel que o nome da varivel expresse o que vai ser armazenado dentro dela, p.e.
nomeAluno, quantidade_alunos.
As variveis podem ainda ser simples ou compostas. As variveis simples so aquelas que
recebem um nico dado por vez, enquanto que as compostas podem armazenar vrios dados de
uma s vez, porm, esta ltima no objeto de nossa apostila.
Quando declaramos uma varivel, temos que associar a ela algumas caractersticas:

NOME ou IDENTIFICADOR

TIPO do dado

Como dissemos anteriormente, o endereo fsico da varivel no precisa ser declarado, a menos
que estejamos programando em alguma linguagem de baixo nvel, como o ASSEMBLER. As
linguagens de alto nvel procuram espaos livres na memria do computador para associarem
bytes varivel declarada.

Uso das Variveis no Algoritmo


O nome a ser associado varivel (ex.: X, Y, KTI34), no importante para o computador, pois
este servir apenas como uma mera referncia.

Entretanto para outros programadores que

EDGAR TITO - INFORMTICA 2014 Prof. Ranildo Lopes


possam vir a analisar os seus programas, ou at para voc mesmo aps algum tempo,
necessrio que esses nomes sejam expressivos, simples e objetivos.
Vejamos agora alguns exemplos de identificadores:
SALARIO
CONT
TOTAL
DATANASC

Um bom nome para varivel que ir armazenar um valor salarial;


Um bom nome para varivel que ir registrar uma contagem;
Um bom nome para variveis acumuladoras de somas;
Um bom nome para variveis usadas para armazenar uma data de nascimento.

Devemos evitar nomes do tipo: X, K, C1, ABC, etc... a menos que eles expressem algo real.
Nomes de varivel, na maioria das linguagens, NO devem:
Iniciar por nmeros:

1C2, 9ANOS, 100, 4CANTOS, etc...

Ser descontnuos: DATA NASC, FONE COMERC, etc...


Outros requisitos podem aparecer dependendo de cada linguagem.

O COBOL por exemplo

permite nomes longos para variveis, j o CLIPPER, com apenas 10 bytes. O COBOL permite
separadores como hfens, barras, entre outros.

Linguagens derivadas do DBASE permitem

apenas o UnderLine (Nome_Aluno) como caracter separador. A maioria das linguagens apresenta
certas restries livre escolha dos nomes das variveis. A mais evidente a impossibilidade da
utilizao de palavras reservadas da prpria linguagem.

Por exemplo, a palavra MOVE

representa um comando para o COBOL. No possvel utilizarmos este nome como identificador
de qualquer varivel nesta linguagem. J para o CLIPPER, o MOVE pode ser um identificador.
Outras vezes, a linguagem traz consigo algumas variveis reservadas. Tratam-se de algumas
variveis que so automaticamente declaradas pela linguagem. Normalmente elas registram a
data e a hora do sistema operacional, ou algumas informaes internas como cdigos de
perifricos, endereos de memria para buffers, etc.

Escolhendo o TIPO do Identificador da Varivel


O segundo argumento presente na declarao de uma varivel o seu tipo. O tipo de uma
varivel define que tipos de dados podero ser armazenados nela. A declarao (definio das
variveis) ser feita no incio do algoritmo.
Tipo inteiro
Sinaliza que o contedo ser de nmeros e que no ter a parte decimal em sua composio.
Ex.: 1200; -12; 0; etc
Tipo real
Sinaliza que o contedo ser de nmeros e que permitida a digitao da parte decimal.

EDGAR TITO - INFORMTICA 2014 Prof. Ranildo Lopes


Ex.: 1200,00; -12,88; 0; etc
Tipo Literal
Sinaliza que o contedo aqui armazenado ser toda a rede de caracteres alfanumricos e os ditos caracteres especiais. Os
contedos destas variveis SEMPRE sero demonstrados entre aspas (simples ou dupla, dependendo da linguagem);

So variveis que aceitam contedos de qualquer natureza, portanto: nmeros, letras e smbolos
em geral, no podendo estes nmeros ser utilizados para operaes aritmticas.
Ex.: "MARIA JOSE"; "Recife"; "123"; "NOMES"
Observaes:
a) No confundir os valores numricos com os literais ou entre os literais. Vejamos os
casos a seguir.
Caso 1.
42 (inteiro) diferente de 42 (literal) Os tipos so diferentes, logo, seus valores em
memrias so diferentes;
Caso 2.
01(literal) diferente de 1 (literal) Os tipos so iguais, mas a representao em
memria diferente.
Tipo Lgico
Este tipo de varivel no permite o registro de dados numricos ou literais. Uma varivel lgica s
armazena um entre dois valores: VERDADEIRO ou FALSO.
Em nossa disciplina, no nos ateremos ao como exatamente, o computador registra esta
informao na memria. Pode ser por bytes zerados e no zerados, pelas letras V ou F, ou por
um outro mecanismo qualquer. O que nos interessa de fato que este tipo de varivel no
registra outro tipo de informao exceto Verdadeiro ou Falso.
Para efeito de representao, diremos que o contedo de uma varivel lgica ser representado
pelas letras V e F, representando respectivamente, Verdadeiro e Falso:

Tamanho das Variveis


Quando declaramos uma varivel no precisamos delimitar o byte inicial e final que esta ir
ocupar na memria do computador, entretanto imprescindvel entendermos que elas ocupam um
espao na memria e que os tipos de dados trazem definies sobre as variveis, inclusive o que
pode armazenar e os seus limites.
Outros tipos de variveis tambm so tratados por novas linguagens, tais como: HORA,
MEMORANDO, OBJETO. Entretanto aqui s trataremos os tipos mencionados anteriormente, ou
seja: Literal, Inteiro, Real e Lgico..

EDGAR TITO - INFORMTICA 2014 Prof. Ranildo Lopes


Declarao de Variveis
TODAS as variveis que o programa vier a utilizar tm que existir antes de serem referenciadas.
Por esse motivo, necessitamos declarar estas. Como fazer isso? Atravs do comando DECLARE.
Comando DECLARE
DECLARE <Nome da varivel>[,<Nome da varivel>]: <tipo>;
<Nome da varivel> Nome ou identificador da varivel
<Tipo>
Exemplos:

Tipo da varivel definida: Literal, Inteiro, Real e Lgico.


DECLARE NOME : Literal;
DECLARE IDADE : Inteiro;
DECLARE ALTURA: Real;
DECLARE DEPENDENTE: LOGICO;

Podemos declarar diversas variveis utilizando apenas um comando DECLARE.


Exemplos:

DECLARE NOME : Literal;


IDADE : Inteiro;
ALTURA: Real;
DEPENDENTE, LOGICO;

Ou ainda, em uma mesma linha, desde que sejam do mesmo tipo de dados.
Exemplo:
DECLARE IDADE, CONTADOR:inteiro; (obs.: tipo e tamanho iguais}
Observao: As vezes substitumos o comando Declare por Var ou Defina, dependendo da linguagem que estamos
querendo nos aproximar. Outros comandos podero sofrer variaes. Cabendo ao professor da
disciplina fazer os ajustes baseados no direcionamento que queira dar disciplina.

Operadores
Podemos atribuir a uma varivel o resultado de uma expresso numrica. Atribui uma ao que
as linguagens possuem e que representa o ato de preencher o espao da varivel com um
contedo, conforme o tipo de dado (veremos mais detalhadamente em tpico especfico).
Entendemos por expresso numrica um conjunto de operaes aritmticas combinadas entre
operandos e operadores. Mas alm das expresses numricas, existem expresses que exigem
tratamentos particulares, como veremos a seguir.
Operadores Numricos
So elementos (smbolos) utilizados para representar uma operao de cunho aritmtico.
+

indica SOMA

indica SUBTRAO

indica MULTIPLICAO

indica DIVISO

Relembrando um pouco a matemtica elementar, a ordem de execuo de uma expresso


aritmtica segundo as prioridades de operaes :
Parntesis:

( )

Multiplicao e Diviso:

*, /

Soma e Subtrao: + , -

EDGAR TITO - INFORMTICA 2014 Prof. Ranildo Lopes


Obs.: Caso existam numa mesma sentena operadores de mesma ordem de prioridade, a execuo ser feita da esquerda
para direita.

A := 2 * 6 / 3
12
Operadores Relacionais
4

So elementos (smbolos) utilizados

para

realizarmos

operaes

de

comparaes, recebendo como resposta o valor verdadeiro ou falso.

=
igual
a

> maior que

< menor que

= igual a

>= maior ou igual a

<= menor ou igual a

<> diferente

Exemplos:
Dados A = 3, B = 2, C = Jose , D = Jose, NOME = JOSE
A>B

Retorna V

C=D

Retorna V

NOME = "JOSE"

Retorna V (Est sendo comparado o contedo da varivel NOME com a string JOSE.

NOME = D

Retorna F (esto sendo comparados os contedos das variveis NOME e D).

Os operadores relacionais incidem sobre dados e variveis numricas e caracteres. Assim sendo,
podemos comparar no apenas nmeros, mas tambm palavras. Neste sentido, a comparao
respeitar a ordem alfabtica das iniciais de cada uma.
Exemplos:
"MARIA" > "ANA"

Retorna V

"MARIA" < "MARIO" Retorna V


observao: as comparaes s podem ser feitas com elementos dos mesmos tipos.

Operadores Lgicos
Estes elementos so necessrios quando voc deseja realizar comparaes entre resultados lgicos obtendo como
resposta outro valor lgico. Estranho, no? Mas exatamente isso que ocorre. Por exemplo: se voc ler um anuncio sobre
emprego que tenham as seguintes solicitaes:
Precisa-se de pessoas do sexo feminino e com idade mxima 40 anos. O que voc consegue extrair deste anuncio? A
resposta seria: duas exigncias, a saber, o SEXO da pessoa deve ser igual a feminino (F) e a IDADE deve ser menor ou
igual a 40 anos. Logo, estamos diante de duas sentenas, que, dependendo do que seja colocado como dados na
comparao, poderemos ter a possibilidade do resultado ser falso ou verdadeiro. Se o SEXO for igual a M (masculino), a
primeira sentena ser falsa. Para voc poder ocupar a vaga oferecida, necessrio que sejas do sexo feminino e sua idade
esteja na faixa etria solicitada. Para o programa, o raciocnio exatamente igual.
Para que gerenciarmos esta etapa da lgica, utilizaremos os operadores a seguir:
Operador

Detalhamento

Prioridade
de execuo

OU

A sentena que contiver este operador ser verdadeira se pelo


menos uma das expresses nela contida retornar valor verdadeiro.

A sentena que contiver este operador ser verdadeira se as


expresses nela contida resultarem valores verdadeiros.

Quando queremos inverter (negar) o resultado de uma condio ou


expresso lgica.

(Opcionalidade)
E
(Simultaneidade)
NO
(Negao)

Observao: caso sejam colocados os parnteses na sentena, a prioridade de execuo ser alterada iniciando-se pelos elementos
contidos dentro destes. Caso exista mais de uma sentena nesta condio, observar-se-, alm do exposto acima, a
execuo dos comandos da esquerda para a direita da expresso.
Vejamos a TABELA VERDADE a seguir para entendermos melhor.
E

OU

EDGAR TITO - INFORMTICA 2014 Prof. Ranildo Lopes


V

Exemplos:
X = 90 E Z = 100
A >= 67 OU A <= 200
NOME <> "ANA" E NAO (NOME = "MARIA")
(NOME <> "ANA") E (NAO (NOME="MARIA") OU (NOME="PEDRO"))

Entendendo Representaes de Sintaxes


Agora que voc j aprendeu o primeiro comando de nossa linguagem algortmica, importante
aprender a forma sinttica de se representar um comando. Note que, ao enunciarmos o comando
DECLARE, ns utilizamos algumas nomenclaturas e simbologias que voc, certamente,
encontrar em qualquer livro sobre quaisquer linguagens.
Assim, vamos elucidar algumas delas:
Repetindo o comando,
DECLARE <Nome da varivel>[,<Nome da varivel>]: <tipo>;
< >

Delimita o espao reservado para inserirmos um parmetro do comando. A maioria dos comandos das
linguagens possui parmetros.

[ ]

Delimita o espao reservado para inserirmos um parmetro opcional do comando, ou seja, tudo o que
vier entre colchetes nem sempre precisar ser especificado no comando.

Ex:

DECLARE SOMA : Inteiro;


DECLARE SOMA, QUANTIDADE_ALUNOS:inteiro;

Observe ainda que os colchetes [ ] e os delimitadores maior/menor < > podem acumular-se
entre si, ou seja, dentro de um grupo de parmetros opcionais [ ], poderemos ter outros [ [..] ],
dependendo apenas da caracterstica do comando.
Atribuio de Valores a Variveis
At agora, vimos conceitos e exemplos de variveis. Agora vamos aprender a utiliz-las em
algoritmos.
Representaremos o comando de atribuio pela combinao de dois smbolos do teclado, que
so dois pontos e o sinal de igual, sem espaos entre eles(:=). Este smbolo representar a
atribuio de um dado a uma varivel.

EDGAR TITO - INFORMTICA 2014 Prof. Ranildo Lopes


<varivel> := <dado a ser armazenado>
Exemplos:
NOME := "JOO";

Dados Literal tm que vir entre aspas

IDADE := 25;

Dados Inteiros no precisam de aspas

ALTURA := 1,67;

Dados tipo Real, possuem uma vrgula como delimitador entre a parte decimal e a parte inteira
(linguagens comerciais adotam o ponto).

DEPENDE := F;

Dados LOGICO devem vir entre pontos

Tambm podemos atribuir, a uma varivel, o valor de outra:


Exemplo:

ALTURA := IDADE;

a varivel ALTURA recebe o valor de IDADE

Tambm podemos atribuir o resultado de uma expresso numrica, ou de outro tipo, a uma
varivel:
SOMA := QUOEF * (VALOR + 10) / DIVISOR;

Estruturao do Algoritmo
Existem alguns formatos para organizar um algoritmo, porm adotaremos o mais global,
facilitando assim o aprendizado. Vejamos a seguir:
Algoritmo <nome do programa>;
Declare {Local para declarao das variveis}
Incio
{Local para inicializao das variveis / mensagens montando a tela}
{Local para receber dados, processar dados e dar sada nos dados / mensagens}
Fim

Entrada e Sada de Dados


At aqui ns vimos como atribuir um valor a uma varivel dentro de um programa. Mas este valor
foi atribudo pelo prprio programa, no ?
Mas como fazer com que um programa, em um dado momento, receba um valor digitado pelo
usurio?
Como receber este dado atravs do teclado?
Como exibir o resultado de uma operao qualquer no monitor?
Existem nas linguagens de programao, comandos de entrada e sada de dados. No caso do
algoritmo, estes comandos so os seguintes: Leia (entrada), Escreva (sada - tela).
Comando LEIA
Leia <varivel>;
Ou
Leia (<varivel>);
<varivel> Algoritmo
Declare
Inicio

Varivel que receber os dados digitados pelo usurio.

wnome:literal;
Widade:Inteiro;

EDGAR TITO - INFORMTICA 2014 Prof. Ranildo Lopes


Leia wnome;
Leia widade;
<seqncia de comandos>;
Fim

A execuo do comando LEIA provoca uma pausa na execuo do programa. O programa fica
em estado de espera, aguardando a digitao de algo que deva ser atribudo s variveis
especificadas na sintaxe do comando. bom deixar claro que o LEIA, permite um
preenchimento por vez. Se voc desejar digitar vrias informaes referente a mesma
varivel, ter que utilizar uma estrutura de repetio (veremos mais adiante) e fazer com
que o fluxo do programa passe pelo mesmo local onde o LEIA est posicionado
No exemplo acima, veja que o computador aguarda que o usurio digite dois valores distintos
atravs do teclado. Estes dois valores iro ocupar, respectivamente, as variveis NOME e IDADE.
Comando ESCREVA (lista informaes no vdeo)
Escreva <string>[, <varivel>][, <operao>];
Ou
Escreva (<string>[, <varivel>][, <operao>] );
Importante! Pelo menos um dos parmetros deve ser informado quando da utilizao deste comando.
<string> -

Texto que est sendo encaminhado para tela.

<varivel> -

Qualquer varivel utilizada no programa.

<operao> -

Algum clculo executado durante a exibio. Neste caso o processador realiza a operao de clculo e
depois libera o resultado para a exibio na tela.

Por dentro dos termos: string = conjunto de caracteres dentro de uma mesma varivel.
Exemplo:
Algoritmo exemplo;
Declare wnome:Literal;
INICIO
ESCREVA NOME ..:;
LEIA wnome;
ESCREVA "Seu nome ",
FIM;

NOME;

Quando estudamos lgica algortmica no nos preocupamos em que coordenada ou posio a


informao ser exibida, mas sim com o fato de que deve ser dado o comando de sada dos
dados.
No exemplo acima, teremos o contedo da varivel NOME exibido no vdeo logo aps a
mensagem Seu nome , como mostra a ilustrao abaixo.
NOME ..: Karla Silva
Seu nome Karla Silva

Manipulaao de valores
1)

Dados 2 nmeros digitados via teclado, faa um algoritmo capaz de exibir a soma deles no vdeo.
Algoritmo soma;
Declare X:Inteiro;
Y:Inteiro;
SOMA:Inteiro;
Inicio
Leia X;

EDGAR TITO - INFORMTICA 2014 Prof. Ranildo Lopes


Leia y;
SOMA := X + Y;
Escreva SOMA;
Fim
Comentrio

Na soluo acima, declaramos 3 variveis de memria. X e Y foram criadas para armazenar os dois nmeros que
seriam digitados pelo usurio, e SOMA serviu para armazenar o resultado final da operao com essas duas variveis.

Mas quase sempre existe mais de uma maneira de solucionarmos um problema, no ? Com
algoritmos no diferente. Tente repensar o algoritmo acima utilizando apenas 2 variveis, em
vez de 3 ! Como voc pode observar, existem no mnimo duas solues para este problema:
Algoritmo soma;
Declare X:Inteiro;
Y:Inteiro;
SOMA:Inteiro;
Inicio
Leia X;
Leia y;
X := X + Y;
Escreva X;
Fim

Ou ainda:
Algoritmo soma;
Declare X:Inteiro;
Y:Inteiro;
SOMA:Inteiro;
Inicio
Leia X;
Leia y;
Y := X + Y;
Escreva Y;
Fim

Qual a soluo mais eficiente das duas?


Somente o fato de economizar uma varivel torna qualquer uma dessas solues bem mais
eficiente que a primeira. O mesmo caso, sem precisar utilizar as variveis para guardar o
resultado, agiliza ainda mais o processamento. Mas este caso deve ser utilizado s quando voc
no precisar do valor resultante da operao.
Algoritmo soma;
Declare X:Inteiro;
Y:Inteiro;
SOMA:Inteiro;
Inicio
Leia X;
Leia y;
Escreva (X+Y);
Fim

EDGAR TITO - INFORMTICA 2014 Prof. Ranildo Lopes

Conceitos Fundamentais
Contador x Acumulador
Estes nomes so dados a expresses que realizam adio de dados, porm, no primeiro caso,
CONTADOR, a expresso de adio que contabiliza valores fixos e predeterminados. No
segundo caso, ACUMULADOR, a expresso de adio que contabiliza valores variveis.
Exemplo de Contador:
QtdFem := QtdFem + 1 (note que o valor adicionado a quantidade de femininos ser sempre
1)
Exemplo de Acumulador:
SomaIdade := SomaIdade + Idade (note que o valor adicionado a soma das idades ser
varivel)
Observao: na maioria das vezes, estes elementos so iniciados com o 0 (zero).
Percentuais
Encontramos algumas dificuldades quando tratamos estes temas. Aqui daremos algumas regras
bsica para que voc se sinta a vontade no momento do clculo.
Encontrando um valor percentual:

Veja esta continha simples


50 bolas
25 bolas

100 %
x

(50 = Todo)

(25 = Parte do Todo)

Chegaremos a concluso:
X % = 25 x

100 / 50

Estas informaes nos levam a frmula:


<perc> := < Parte do Todo> * 100 / < Todo>
Encontrando um valor final aps aplicao do percentual:

<Novo valor> := <valor anterior> * 1,<valor do percentual>;


Ex.: adicionar 5 % sobre o salrio e informar o valor do novo salrio.
Nsal := Salario * 1,05;
Encontrando um valor adicionado percentualmente a uma varivel:

<Novo valor> := <valor anterior> * 0,<valor do percentual>;


Ex.: adicionar 5 % sobre o salrio e informar o valor acrescido ao salrio.
Reajuste := Salario * 0,05;
Observao: quando voc no sabe o valor a ser aplicado pois vem dentro de uma varivel,
no podemos fazer a aplicao literal do que explicamos neste tpico, mas precisamos

EDGAR TITO - INFORMTICA 2014 Prof. Ranildo Lopes


traduzir em termos de programa este processo. Vamos fazer os mesmos exemplos
anteriores, mas imaginando que o percentual vir em variveis.
a) Nsal := Salario * (1 + perc / 100);
b) Nsal := Salario * (perc / 100);

Maior Valor
Existiro momentos em que voc sentir necessidade de identificar o maior elemento dentro de
um conjunto de dados processados. S existe uma forma de sabermos qual o maior valor:
comparando as grandezas do conjunto. Para descobrirmos qual ser o maior elemento,
inicializaremos uma varivel, que armazenar o maior valor do conjunto, com um valor bem
pequeno para a situao, e, cada dado existente no conjunto iremos comparar com esta dita
varivel. Caso o valor encontrado seja superior, este ser colocado como contedo da varivel
maior, j que este novo dado representa a maior grandeza neste momento do processamento.
Encontrando o maior valor dentro de um conjunto:

Obs.: para entender melhor esse exemplo, bom estar familiarizado com a estrutura de repetio
comentada mais adiante.
Algoritmo
maior;
Declare MAIOR_ID:Inteiro;
Idade:Inteiro;
Cont:Inteiro;
Inicio
MAIOR_ID := 0;
Para cont := 1 at 10 Faa
Inicio
Leia Idade;
Se Idade > MAIOR_ID ento
Inicio
MAIOR_ID := Idade;
Fim
Fim
Escreva A maior idade , MAIOR_ID;
Fim

Menor Valor
De igual forma iremos trabalhar para encontrar o elemento que possui o menor valor. Para tanto,
iremos inicializar uma varivel, que armazenar o menor valor do conjunto, com um valor bem
alto adequado para a situao, e, cada dado existente no conjunto iremos comparar com esta dita
varivel. Caso o valor encontrado seja inferior, este ser colocado como contedo da varivel
menor, j que este novo dado representa a menor grandeza neste momento do processamento.
Encontrando o menor valor dentro de um conjunto:
Algoritmo
Menor;
Declare menor_ID:Inteiro;
Idade:Inteiro;
Cont:Inteiro;
Inicio

EDGAR TITO - INFORMTICA 2014 Prof. Ranildo Lopes


menor_ID := 999;
Para cont := 1 at 10 Faa
Inicio
Leia Idade;
Se Idade < Menor_ID ento
Inicio
menor_ID := Idade;
Fim
Fim
Escreva A menor idade , Menor_ID;
Fim

Estruturas Condicionais
Sabemos que as linhas de um programa estruturado so executadas de cima para baixo de forma
seqencial (na orientao ao objeto, apenas os mtodos seguem este conceito). Mas
freqentemente precisamos mudar este curso natural de acordo com decises a serem tomadas.
Por exemplo, imagine se dentro de um conjunto de alunos voc desejasse verificar a quantidade
de homens. S existiria uma forma para sabermos o resultado: fazendo uma pergunta sobre se os
dados processados continham na varivel SEXO o contedo igual a M.
O comando que realiza esta pergunta o SE, que possui trs situaes bem definidas dentro da
programao: Estrutura Condicional Simples, Composta ou Encadeadas(Ninhos de SEs).
Estrutura Condicional SE (Smples)
Se <condio> ento
inicio
<sequncia de comandos>;
Fim
<condio> -

Expresso lgica qualquer.

<sequncia de comandos> So comandos que sero executados caso o resultado da expresso lgica seja verdadeira.
Esses comandos devem ser escritos entre as delimitaes da gerncia do comando, ou seja, entre as
palavras Incio e fim.

Em tempo de execuo, se a expresso lgica retornar verdadeiro ento a seqncia de


comandos ser executada.
Para fixar esta idia, tente depurar o seguinte algoritmo:
Algoritmo
DECLARE

exemploSE1;
Idade, Numrico, 3
Nome, Caracter , 35
Sexo, Caracter , 1

Inicio
Leia Nome;
Leia Sexo;
Leia Idade;
Se Sexo = M ento
Inicio
Escreva "A idade de ", Nome, , Idade;
Fim
Escreva "Fim da transacao";
Fim

Estrutura Condicional SE (Composta)


Se <condio> ento
Inicio
<sequncia de comandos 1>;

EDGAR TITO - INFORMTICA 2014 Prof. Ranildo Lopes


Fim
seno
inicio
<sequncia de comandos 2>;
Fim
Onde:

<condio> -

Expresso lgica qualquer.

<sequncia de comandos 1> So comandos quaisquer que sero executados caso o resultado da expresso lgica seja
verdadeira (V).
<sequncia de comandos 2> So comandos quaisquer que sero executados caso o resultado da expresso lgica seja
falsa (F)
Seno - Variao do comando, para atender o tratamento de informao que no foi contemplada na <condio>, por ser
falso o resultado. S deve ser utilizado para otimizar ou se precisar tratar a negativa da <condio>.

Para fixar esta idia, tente depurar o seguinte algoritmo:


Algoritmo
DECLARE

exemploSE2;
Idade: Inteiro;
Nome : Literal;
Sexo : Literal;

Inicio
Leia Nome;
Leia Sexo;
Leia Idade;
Se Sexo = M ento
Inicio
ESCREVA "A idade de ", Nome, , Idade, Sexo Masculino;
Fim
seno
Inicio
SE Sexo = F ENTAO
Inicio
ESCREVA "A idade de ", Nome, , Idade, Sexo Feminino;
Fim
Fim
Escreva "Fim da transacao";
Fim

Estrutura Condicional SE (Encadeada)


Aqui vale comentar que esta estrutura no algo preestabelecido, mas sim, uma estrutura
formada de vrias condies, separando informaes e dando os tratamentos de acordo com a
necessidade da questo.

Abaixo segue um modelo hipottico de uma estrutura SE

(Encadeada).
Se

<condio 1> ento


Inicio
<sequncia de comandos 1>;
Se <condio 2> ento
Inicio
<sequncia de comandos 2> ;
Fim
Fim
Seno
Inicio
Se <condio 3> ento
Inicio
<sequncia de comandos 3> ;
Fim
Seno
Inicio
<sequncia de comandos 4> ;
Fim
<sequncia de comandos 5>;

EDGAR TITO - INFORMTICA 2014 Prof. Ranildo Lopes


Fim
Fim

Para exemplificarmos melhor, vejamos o exemplo:


1) Receber dois nmeros (Num1 e Num2).
2) Realize a soma dos dois valores.
2.1) Caso a soma seja maior que zero, mostrar na tela o valor da soma e a mensagem: valor
positivo;
2.2) Caso contrrio, verifique:
2.2.1) se o valor calculado igual a zero. Se for, informar "valor igual a zero", seno;
2.2.2) informar, "valor negativo". (De qualquer maneira, em 2.2, exibir os dois nmeros envolvidos
na soma).
Algoritmo
Declare

PositivoNegativo;
Num1:Inteiro;
Num2:Inteiro;
SOMA:Inteiro;

Inicio
Leia Num1, Num2;
SOMA:= Num1 + Num2;
Se SOMA > 0 ENTAO
Inicio
Escreva SOMA, Valor Positivo;
Fim
Seno
Inicio
Escreva num1, num2;
SE SOMA = 0 ento
Inicio
Escreva "Valor Igual a Zero";
Fim
Seno
Inicio
Escreva "Valor Negativo";
Fim
Fim
Fim

Sobre esta soluo, importante salientar o seguinte:

Note que a esttica, apesar de no influenciar no resultado da execuo do programa, de extrema importncia para o
bom entendimento do mesmo. Perceba que todos os comandos subordinados ao primeiro SE ficam descolados na mesma
margem. Apenas a clusula SENAO fica na mesma margem do SE. O mesmo ocorre com o segundo SE e com todos os
que vierem. A isto damos o nome de EDENTAO.

Veja que o comando Escreva num1, num2 executado independente da condio do segundo SE. por isto que eles
foram escritos aps o SENO do primeiro SE.

Exerccios de Aprendizagem
1) Dados 2 nmeros digitados via teclado, faa um algoritmo capaz de exibir no vdeo o maior deles.
Algoritmo maior;
Declare X:Inteiro;
Y:Inteiro;
Inicio
Leia X;
Leia Y;
Se X > Y Ento

EDGAR TITO - INFORMTICA 2014 Prof. Ranildo Lopes


Inicio
Escreva X;
Fim
Seno
Inicio
Escreva Y;
Fim
Fim
2) Dados 3 nmeros distintos, digitados via teclado, faa um algoritmo capaz de exibir no vdeo o maior deles.
Algoritmo maior;
Declare X:Inteiro;
Y:Inteiro;
Z:Inteiro;
Inicio
Leia X;
Leia Y;
Leia Z;
Se (X > Y) E (X > Z) Ento
Inicio
Escreva X;
Fim
Seno
Inicio
Se (Y > Z) E (Y > X) Ento
Inicio
Escreva Y;
Fim
Seno
Inicio
Escreva Z;
Fim
Fim
Fim
Comentrio:

Note que, para descobrirmos qual o maior entre trs nmeros, precisamos codificar 2 comandos SE encadeados. Se
fossem 4 variveis, seriam 3 SEs.

3) Dados 2 nmeros distintos digitados via teclado, faa um algoritmo capaz de exibi-los em ordem crescente.
Algoritmo Ordenacao;
Declare A:Inteiro;
B:Inteiro;
Inicio
Leia A;
Leia B;
SE A > B Ento
Inicio
Escreva B, A;
Fim
Seno
Inicio
Escreva A, B;
Fim
Fim

Como voc solucionaria este problema se tivssemos de utilizar apenas um comando ESCREVA
?
A primeira imagem que nos vem mente que seria impossvel, tendo em vista que uma
informao ao ser colocada em uma varivel simples ir ocupar o lugar da informao j
existente na outra varivel. Mas em informtica podemos utilizar todas as tcnicas disponveis
para solucionarmos um problema, evitando solues extensas ou complicadas.

EDGAR TITO - INFORMTICA 2014 Prof. Ranildo Lopes


O recurso que vamos dispor nesse momento a utilizao de uma varivel auxiliar. Varivel
auxiliar aquela que ns utilizamos como apoio. Veja que para realizar a troca de dados exposta
a seguir, s com esse recurso.
Algoritmo
Declare

Inicio
Leia
Leia
Se

troca;
A:Inteiro;
B:Inteiro;
X:Inteiro;

A;
B;

A > B Ento
Inicio
X := A;
A := B;
B := X;
Fim

Escreva A , B;
Fim
Comentrio:

Para economizarmos comandos ESCREVA, observe que invertemos os valores de A e B toda vez que a varivel A fosse
maior que B. Assim, independente dos valores de A e B, sempre exibiremos A e B nesta ordem. Para propiciar esta
inverso utilizamos uma varivel auxiliar X.

Se voc no entendeu muito bem o porque da varivel X ter sido utilizada no algoritmo acima,
preste bastante ateno agora:
Deseja-se trocar os valores de duas variveis: A e B, por exemplo.
A

B
10

15

Se fizermos simplesmente A := B, apagaremos o valor original de A colocando o contedo de B


em seu lugar. Assim, as variveis ficariam com o valor 15. Para viabilizar o processo da troca,
temos que recorrer a uma varivel auxiliar que conter provisoriamente o valor de uma das
variveis a fim de devolv-lo para a outra.

2 passo

X:=A

10

3 passo

15

A:=B
B:=X

10
1 passo

EDGAR TITO - INFORMTICA 2014 Prof. Ranildo Lopes

Estruturas de Repetio
Algumas vezes, sentimos necessidade de escrevermos repetidamente o mesmo comando. Em
alguns casos, a quantidade de vezes que temos de escrever indeterminada ou depende de uma
condio.
Existem algumas formas de definir as estruturas de repeties. Algumas lembram at esta ou
aquela linguagem. Em nosso curso iremos no ater a duas estruturas, as quais podemos
representar tranqilamente em qualquer ambiente de programao.
As estruturas so: Enquanto e Para. Cada uma delas possui uma caracterstica que lhe peculiar.
normal ouvir a pergunta: quando iremos utilizar esta ou aquela estrutura?. A resposta
simples, pois depende da habilidade de cada um. Existem momentos que podemos resolver a
mesma questo com todas as duas formas, mas existem momentos que no possvel. Por isso
o segredo encontra-se no exercitar.
Bem, vamos desmistificar estas estruturas.

Comando ENQUANTO
O comando ENQUANTO prende um trecho do programa a um lao (looping), ou seja, podemos
determinar que um certo bloco de comandos seja executado repetidamente enquanto uma
condio for verdadeira.
.
Enquanto <condio> Faa
Inicio
< comandos >;
Fim

{ se<condio> for verdadeira}


{ sero executados os comando deste bloco}

Esta estrutura possui duas formas de aplicao dentro de uma lgica:


a)
b)

Testando sempre uma condio de sada no prprio comando, ou;


Deixando este controle de sada da estrutura por conta de uma condio executada internamente.

1o. Caso

S entra no lao de repetio, se e somente se, a condio for verdadeira. Para sair da repetio, a condio tem que ser
satisfeita.
Enquanto <condio> Faa
incio
< comandos > ;
Fim

2o. Caso

Entra no lao independente da condio, mas para sair, a condio 2 tem que ser verdadeira. Caso a condio no seja
satisfeita, dizemos que o programa entrou em loop.
Enquanto <condio> Faa
incio
Se < condio 2 > Ento
Incio
sair

EDGAR TITO - INFORMTICA 2014 Prof. Ranildo Lopes


Fim
< comandos > ;
Fim;

Comando PARA
O comando PARA executa um bloco de comandos, gerenciando esta execuo em cima de uma
contagem. Enquanto ela no for satisfeita, ou seja, o valor final no for ultrapassado, os
comandos do bloco sero repetidos a cada nova verificao da condio e obteno de resultado
falso;
Para <var> := <valor_inicial>
Inicio
< comandos > ;
Fim

at

<Valor_final> incr[+/- <valor>] Faa

Se voc utilizar este comando, ir poupar a inicializao da varivel, pois esta assumir como
valor inicial o declarado como <valor_inicial>; no precisar contar a quantidade de vezes que
o lao foi executado, pois esta estrutura tem como uma de suas caractersticas, o adicionar um
determinado valor a varivel <var> baseado no valor utilizado como incremento (+) ou decremento
(-) utilizado no parmetro incr[...] estabelecendo uma contagem at que o valor declarado como
<valor_final> seja alcanado e realizando a ltima execuo dos comandos existentes entre o
Inicio e o Fim. Se o parmetro Incr [ +/- valor] for omitido, o programa assumir por Default
sempre o incremento de + 1.
Vamos utilizar um exemplo para esclarecer cada uma dessas instrues dentro de suas
respectivas estruturas de repeties. Digamos que temos de fazer o computador escrever o
somatrio de 5 idades informadas na tela. Usaremos os comandos aprendidos at agora.
Com a estrutura ENQUANTO
Algoritmo
Declare widade:Inteiro;
Wcont:Inteiro;
Wsomaid:Inteiro;
Inicio
Wcont := 0;
Wsomaid := 0;
Leia widade;
Enquanto wcont < 5 Faa
Inicio
Wcont
:= wcont + 1;
Wsomaid := wsomaid + widade;
Leia widade;
Fim
Escreva O total das idades , wsomaid;

EDGAR TITO - INFORMTICA 2014 Prof. Ranildo Lopes


Fim

Com a estrutura PARA


Algoritmo
Declare widade:Inteiro;
Wcont:Inteiro;
Wsomaid:Inteiro;
Inicio
Wsomaid := 0;
Para wcont := 1 at 5 Faa
Inicio
Leia widade;
Wsomaid := wsomaid + widade;
Fim
Escreva O total das idades , wsomaid;
Fim

Exerccios de Aprendizagem
1)

Elabore um algoritmo capaz de exibir todos os nmeros inteiros, desde o 1 at o 10.


Algoritmo exemplo1;
Declare NUMERO:Inteiro;
Inicio
NUMERO := 1;
Enquanto NUMERO <= 10 Faa
Inicio
Escreva NUMERO;
NUMERO := NUMERO + 1;
Fim
Fim
Comentrio:

2)

Elabore um algoritmo capaz de receber um nmero e, em seguida, listar todos os nmeros de 1 at ele.
exemplo2;
Algoritmo
Declare NUMERO:Inteiro;
LIMITE:Inteiro;
Inicio
Leia LIMITE;
NUMERO:=1
ENQUANTO NUMERO <= LIMITE FAA
Inicio
Escreva NUMERO;
NUMERO := NUMERO + 1;
Fim
Fim
Comentrio:

3)

Note que, utilizamos uma varivel numrica chamada NUMERO que recebeu, inicialmente, o valor 1, e da em diante
foi ciclicamente incrementada de 1 (NUMERO:=NUMERO+1) at que a condio imposta pelo ENQUANTO tornasse
falsa.

Este programa similar ao anterior. A nica sofisticao implementada foi a flexibilizao do limite. Isto tornou o
algoritmo mais genrico, servindo para listar a seqncia de qualquer nmero, e no apenas a do 10. Para alcanar
esta sofisticao, foi necessrio o uso da varivel LIMITE que de fato limitou o lao do Enquanto ao seu contedo,
contedo este que fora recebido logo no incio da execuo do programa, com o comando Leia LIMITE.

Sofisticando ainda mais o programa da 3 questo, vamos fazer com que, alm de listar todos os nmeros de 1 at um
determinado nmero digitado via teclado, ele mostre a soma de todos esses nmeros no final da listagem.
exemplo2;
Algoritmo
Declare NUMERO :Inteiro;
LIMITE :Inteiro;
SOMA
:Inteiro;
Inicio
Leia LIMITE;
NUMERO := 1;
SOMA
:= 0;
Enquanto NUMERO <= LIMITE Faa
Inicio
Escreva NUMERO;

EDGAR TITO - INFORMTICA 2014 Prof. Ranildo Lopes


SOMA
:= SOMA + NUMERO;
NUMERO := NUMERO + 1;
Fim
Escreva SOMA;
Fim
Comentrio:

Perceba que, para acumular os valores parciais assumidos pela varivel NUMERO, precisamos lanar mo de uma
outra varivel, a qual chamamos de SOMA. Assim, a cada ciclo do Enquanto acrescentamos ao valor de SOMA o
novo valor de NUMERO
(SOMA :=SOMA+NUMERO).

Observe tambm que ao declaramos SOMA, na prtica das linguagens, temos que tomar o
cuidado dela ter capacidade de absorver o resultado da expresso. fcil entender por que!
Como SOMA ser um Acumulador dos valores de NUMERO, ela sempre ter valores maiores
que NUMERO, podendo seu montante, exceder a capacidade definida em NUMERO.

Tcnicas de Algoritmizao
Como dissemos anteriormente, no h qualquer receita de bolo para resolvermos um determinado
problema atravs da algoritmizao. Cada caso um caso bem particular. Entretanto, alguns
procedimentos sistemticos podem auxiliar a elucidao de alguns problemas.

Dicas sobre Resoluo de Algoritmos


Nunca d um algoritmo por encerrado antes de testar todas as possibilidades condicionais. S o
teste garante a eficcia do programa. Teste sempre as situaes extremas. Em algoritmos utilize
diversas condies; teste ao menos uma situao que se enquadre em cada condio prevista
pelo algoritmo.
No tente decorar algoritmos. Cada caso um caso, por mais que se assemelhem.
H sempre uma forma melhor de fazer a mesma coisa. Aps o ZERO ERRO, examine se o seu
algoritmo eficiente, isto , se ele no usa variveis demais, se ele facilmente compreendido
por uma terceira pessoa, se os nomes de variveis so auto-expressivos, se o usurio no ter
dificuldade em utiliz-lo, e se o computador no passar muito tempo para process-lo
(performance).
No tente arquitetar, ainda que mentalmente, a soluo de um problema sem antes entender
perfeitamente o que pede no enunciado.
No inicie a algoritmizao sem ter claramente a soluo arquitetada na sua cabea.
No deixe a curiosidade afetar a sua criatividade. Durante o desenvolvimento do seu algoritmo,
no pesas orientao sobre o como fazer, sem antes ter chegado a algum resultado, ainda que
errado.

EDGAR TITO - INFORMTICA 2014 Prof. Ranildo Lopes


Nunca desista de uma soluo. Conclu-a. Chegue at o fim. Teste-a, e somente quando os testes
sinalizarem a sua ineficcia, tente modific-la ou refaz-la.

Tcnica para extrair os dados de um enunciado


Quando nos deparamos com um enunciado pequeno, nos sentimos a vontade para resolve-lo pois
os dados existentes neste so poucos. Porm, quando nos deparamos com um enunciado mais
complexo, existe a tendncia natural de pensarmos que algo muito difcil de resolver. Mas, por
incrvel que parea, o maior problema encontra-se em nosso lidar com o desafio e o encarar
friamente. Justamente para melhor lhe capacitar a interpretar um texto que estamos te dando
esta dica.
Todos os programas possuem 3 fases bem definidas e nestas, os seus dados necessrios.
Quando voc tiver domnio sobre estas trs fases, o algoritmo fluir naturalmente.
Procure identificar a 1 fase que a da identificao dos dados de entrada; a 2 fase e a que
verifica os dados relativos ao processamento (condies de encerramento, clculos, mensagens,
etc; a 3 fase aquela aonde voc descobre quais os dados de sada, ou seja, aps o
processamento, aonde iro ser colocado estes dados?
Vamos exemplificar.
Elaborar um algoritmo que receba a matrcula, o nome e o salrio de 50 funcionrios,
imprimindo ao final, o somatrio dos salrios e a mdia salarial.
Vamos por em prtica nosso aprendizado.
1 fase (Dados de Entrada)
Ser lido na tela a MATRICULA, NOME E SALRIO;
Leia Matricula;
Leia Nome;
Leia Salrio;
2 fase (Processamentos)
Sero processados dados de 50 funcionrios. (isto implica dizer que
precisaremos de uma varivel para contabilizar e gerenciar este processo); O
melhor comando para gerenciar um valor predefinido o PARA.
Cada elemento que for processado, ser acumulado o valor do salrio (somatrio
dos salrios).
AcumSal := AcumSal + Salrio;

EDGAR TITO - INFORMTICA 2014 Prof. Ranildo Lopes


Observe que para clculo da mdia salarial necessrio sabermos o somatrio
dos salrios e dividir o mesmo pela quantidade de pessoas que os possuem.
Como sabemos que existiro 50 pessoas, para encontrar a mdia super
simples.
Calcular a mdia dos salrios.
Media := AcumSal / 50;
3 fase (Dados de Sada)
Dar sada no valor da mdia calculada.
Escreva A mdia salarial , Media;

Montando o Algoritmo
Algoritmo exemplo;
Declare AcumSal:Real;
Cont
:Inteiro;
Salrio: Real;
Media :Real;
Nome
:Literal;
Inicio
AcumSal := 0
Para cont := 1 at 50 faa
Inicio
Leia Matricula;
Leia Nome;
Leia Salrio;
AcumSal := AcumSal + Salrio;
Fim
Media := AcumSal / 50;
Escreva A mdia Salarial , Media;
Fim

Faclimo, no!

Com estas competncias adquiridas nesse mdulo, voc deve exercitar e chegar num estgio de
habilidade que lhe permitir obter sucesso nas demais competncias que sero ministradas a
voc em sala de aula.
Lembre-se: Os exerccios que esto na apostila dedicada s para este fim, devem ser praticados e
esgotados, pois isto o far crescer em situaes as mais adversas dentro do mundo da
programao.
Sucesso a todos!

EDGAR TITO - INFORMTICA 2014 Prof. Ranildo Lopes

Desafios Resolvidos

Como fazer para descobrir a quantidade de elementos iguais ao maior do


conjunto?
Simples. Primeiro, voc dever encontrar o maior;
Em segundo lugar, verificar quais os elementos so iguais a este maior
encontrado.
Aqui damos uma dica. Ao encontrar um elemento cujo valor seja superior
quele que representa o maior, temos duas tarefas a fazer. Uma atribuir o
valor do elemento para ser o maior e em seguida inicializar a quantidade
com o numeral 1 (um). Mas porque 1 (um)? Pelo fato de que acabamos de
encontrar um nmero maior e com certeza, nesse momento ele nico.
Como fazer para contabilizar todos os iguais? A prpria pergunta j a
resposta: cada vez que voc encontrar algum valor igual ao maior,
contabilizaremos mais um.
Vamos ao Exemplo?
Elaborar um algoritmo que receba idade de 50 pessoas e informe ao final,
a maior delas e quantas pessoas a possuem.

Algoritmo resolvidos1;
Declare
Ma_idade:Inteiro;
Qt_maid :Inteiro;
Cont
:Inteiro;
Widade :Inteiro;
Inicio
Ma_idade := 0;
Qt_maid := 0;
Para cont := 1 at 50 faa
Inicio
Leia widade;
Se widade > Ma_idade ento
Inicio
Ma_idade := widade;
Qt_maid := 1;
Fim
Seno
Inicio
Se widade = Ma_idade ento
Inicio
Qt_maid := Qt_maid + 1;
Fim
Fim
Fim
Escreva A maior idade ..........................: , Ma_idade;
Escreva Quantidade de pessoas com a maior idade...: , Qt_maid;
Fim

Como fazer para descobrir a quantidade de elementos iguais aos dois maiores
elementos do conjunto?
Agora ficou mais fcil. Precisamos atentar para um pequeno detalhe:
quando encontrarmos um elemento que superior ao primeiro, este ltimo
passa a ser o segundo maior. Para no perdermos o contedo original do
maior, passaremos seus contedos para as respectivas variveis e depois
procederemos naturalmente colocando o elemento maior no seu referido
lugar. Vejamos parte do cdigo a seguir.

EDGAR TITO - INFORMTICA 2014 Prof. Ranildo Lopes


Ma_idade2
Qt_maid2
Ma_idade1
Qt_maid1

:=
:=
:=
:=

Ma_idade1;
Qt_maid1;
widade;
1;

Percebeu como simples? Isso fazemos em todos os momentos em que


queremos verificar o maior e o segundo maior. No demais tomar cuidado
com o segundo maior, pois apesar do valor as vezes, ser inferior ao
primeiro, nada garante que ele o seja em relao ao segundo. Desta forma,
precisamos fazer a comparao para termos certeza.
Vamos ao Exemplo?
Elaborar um algoritmo que receba idade de 50 pessoas e informe ao final,
as duas maiores idades e quantas pessoas as possuem.

Algoritmo
Declare

Ma_idade1:Inteiro;
Ma_idade2:Inteiro;
Qt_maid1 :Inteiro;
Qt_maid2 :Inteiro;
Cont
:Inteiro;
Widade
:Inteiro;

Inicio
Ma_idade1 := 0;
Ma_idade2 := 0;
Qt_maid1 := 0;
Qt_maid2 := 0;
Para cont := 1 at 50 faa
Inicio
Leia widade;
Se widade > Ma_idade1 ento
Inicio
Ma_idade2 := Ma_idade1;
Qt_maid2 := Qt_maid1;
Ma_idade := widade;
Qt_maid := 1;
Fim
Seno
Inicio
Se widade = Ma_idade1 ento
Inicio
Qt_maid1 := Qt_maid1 + 1;
Fim
Seno
Inicio
Se widade > Ma_idade2 ento
Inicio
Ma_idade2 := widade;
Qt_maid2 := 1;
Fim
Seno
Inicio
Se widade = Ma_idade2 ento
Inicio
Qt_maid2 := Qt_maid2 + 1;
Fim
Fim
Fim
Fim
Fim
Escreva A maior idade ..........................:
Escreva Quant. de pessoas com a maior idade.......:
Escreva A segunda maior idade ..................:
Escreva Quant. de pessoas com Seg. maior idade....:
Fim

,
,
,
,

Ma_idade1;
Qt_maid1;
Ma_idade2;
Qt_maid2;

EDGAR TITO - INFORMTICA 2014 Prof. Ranildo Lopes

U.E PROF EDGAR TITO - NOITE


PROF. RANILDO LOPES
DISCIPLINA: Lgica de Programao

APOSTILA 05
LGICA DE PROGRAMAO

Visite nosso stio


http://ueedgartito.wordpress.com
Nele esto os resumos e trabalho
de sala de aula

EDGAR TITO - INFORMTICA 2014 Prof. Ranildo Lopes

Obrigado pela preferncia de nossa ESCOLA!

INTRODUO
Aautomatizaodetarefasumaspectomarcantedasociedademoderna.Oaperfeioamentotecnolgicoalcanado,
comrespeitoaisto,temcomoelementosfundamentaisaanliseeaobtenodedescriesdaexecuodetarefasemtermos
deaessimplesosuficiente,talquepudessemserautomatizadasporumamquinaespecialmentedesenvolvidaparaestefim,
OCOMPUTADOR.
Emcinciadacomputaohumprocessodedesenvolvimentosimultneoeinterativodemquinas(hardware)edos
elementosquegerenciamaexecuoautomtica(software)deumadadatarefa.Eessadescriodaexecuodeumatarefa,
comoconsideradaacima,chamadaalgoritmo.
OobjetivodessecursoaLgicadeProgramaodandoumabasetericaeprtica,suficientementeboa,paraque,o
alunodomineosalgoritmoseestejahabilitadoaaprenderumalinguagemdeprogramao.Sermostradotambmumgrupode
algoritmosclssicosparatarefascotidianas,taiscomo:ordenaoepesquisa.

DEFINIODEALGORITMO
Sebuscarmosnaliteratura,veremosqueiremosencontrarumgrandequantidadedeconceitosrelacionadosdefinio
deALGORITMO.Aseguirsolistadasvriasdessasdefinies.

"OconceitocentraldaPROGRAMAOedaCINCIADACOMPUTAOoconceitodealgoritmos,isto,programar
basicamenteconstruiralgoritmos."
adescrio,deformalgica,dospassosaseremexecutadosnocumprimentodedeterminadatarefa.
"O algoritmo pode ser usado como uma ferramenta genrica para representar a soluo de tarefas independente do
desejo de automatizlas, mas em geral est associado ao processamento eletrnico de dados, onde representa o
rascunhoparaprogramas(Software)."
"Serve como modelo para programas, pois sua linguagem intermediria linguagem humana e s linguagens de
programao,sendoento,umaboaferramentanavalidaodalgicadetarefasaseremautomatizadas."
"Um algoritmo uma receita para um processo computacional e consiste de uma srie de operaes primitivas,
interconectadas devidamente, sobre um conjunto de objetos. Os objetos manipulados por essas receitas so as
variveis."
Oalgoritmopodetervriosnveisdeabstraesdeacordocomanecessidadederepresentarouencapsulardetalhes
inerentesslinguagensdeprogramao.Ex:Certamenteumalgoritmofeitocomoobjetivodeservircomomodelopara
uma linguagem de 3 gerao diferente daquele para uma linguagem de IV gerao. Mas isso no impede que a
ferramentaemsipossaserusadaemambosocaso.
Como qualquer modelo, um algoritmo uma abstrao da realidade. A abstrao o processo de identificar as
propriedades relevantes do fenmeno que esta sendo modelado. Usando o modelo abstrato, podemos nos centrar
unicamentenaspropriedadesrelevantesparans,dependendodafinalidadedaabstrao,eignorarasirrelevantes.
aformapelaqualdescrevemossoluesdeproblemasdonossomundo,afimde,seremimplementadasutilizandoos
recursosdomundocomputacional.Comoestepossuseveraslimitaesemrelaoaonossomundo,exigeque,sejam
impostas algumas regras bsicas na forma de solucionar os problemas, para que, possamos utilizar os recursos de
HARDWAREeSOFTWAREdisponveis.Pois,osalgoritmos,apesardeservirempararepresentarasoluodequalquer
problema,nocasodoProcessamentodeDados,elesdevemseguirasregrasbsicasdeprogramaoparaquesejam
compatveiscomasLINGUAGENSDEPROGRAMAO.
SegundoWirth,programassoformulaesconcretasdealgoritmosabstratos,baseadosemrepresentaeseestruturas
especficasdedados
Deformabemsimples,umalgoritmopodeserdefinidocomoumconjuntodepassoslgicos,bemdefinidos,
quedescreveasoluodeumproblema.
Aopensarmosnasoluodeumproblema,encontramosaesimperativasquesoexpressaspor
comandos.OsalgoritmosnosoaplicadosapenasaomundodaInformtica;pelocontrrio,usamosatsem
perceberalgoritmosemtodososmomentosdenossavida.Umareceitadecozinhaclaramenteumalgoritmo.

EDGAR TITO - INFORMTICA 2014 Prof. Ranildo Lopes

EXEMPLO1:FaaumalgoritmoparaIrdecasaparaotrabalhodenibus

Soluo1
AlgoritmoTrajeto_Casa
incio
1) Andaratopontodenibus
2) Aguardaronibus
3) Aoavistaronibuscorreto,fazersinal
4) Entrarnonibuspelaportatraseira
5) Pagarpassagem
6) Escolherumassentoesentar
7) Quandochegarprximodolocalasaltar,darosinalparadescida
8) Noponto,descerdonibus,pelaportadianteira
9) Andaratotrabalho
fim
Observasequeessealgoritmofoiresolvidoem9passos.Noentanto,fatoquesenpessoasbuscaremsolues
paraomesmoproblema,provavelmente,teremosnrespostasdiferentes.Istodecorrenormalmente,daabstraodoproblema,
davisodoproblemasobngulosdiferentes,commaioroumenorriquezadedetalhes.

Poroutrolado,devemospercebesequeoalgoritmodescritorevelaumasituaoperfeita,semcondicionais,sem
excees.Assimcomonanossarotina,improvveltermossituaesperfeitas,essasexceestambmocorremnosprogramas
decomputador.
Vamosrefazerestealgoritmodeformaaintroduziralgumascondies.

Soluo2
AlgoritmoTrajeto_Casa
incio
1) Andaratopontodenibus
2) Aguardaronibus
3) Quandoavistaronibuscorreto,fazersinal
seonibusnoparar,ento

Empensamento,xingaromotorista

Reclamarparasiquevaichegaratrasado

seestivermuitoatrasadoento

PegarumaVan

Senao

VoltarparaoPasso2

fimse
senao

sePessoa>=65anosento

Entrarpelaportadianteira

senao

Entrarpelaportatraseira

Pagarpassagem

sehouvertrocoento
Aguardartroco

fimse

fimse

sehouverlugardisponvelento

Sentar

seno
Escolheromelhorlugarempealipermanecer

EDGAR TITO - INFORMTICA 2014 Prof. Ranildo Lopes

fimse
fimse
4) Quandochegarprximodolocalasaltar,darosinalparadescida
5) Noponto,descerdonibus,pelaportadianteira
6) Andaratotrabalho
fim

Com certeza, a brincadeira que fiz da condio Se o nibus no parar deve ter levado vocs a pensarem em
inmerasnovascondies,comoporexemplo:qualseriaasuareao,senumdiadechuva,onibuspassasseporsobreuma
poaelhesujassetodaaroupa?
Veja quo complexo pode se tornar um simples algoritmo. Devemos lembrar que detalhes so essenciais na
confecodeumalgoritmo,todavia,elesdevemestardeacordocomocontexto.Almdisso,importantequevenhamosa
relatarapenasosdetalhesrelevantes.
Por exemplo, a soluo 2 est apropriada para ensinarmos uma pessoa que no est acostumada a andar de
nibus. Todavia, este algoritmo causaria problemas se estivssemos programando um rob. Considerando esta situao,
deveramos ser mais precisos no passo Quando chegar prximo do local a saltar, dar o sinal de descida. Nesse caso,
deveramosdizerAxmetrosdolocalasaltar,darosinaldedescidaouNaalturaxdaRuay....
Assim,lembremsedeusaroBOMSENSO!

Podemos pensar tambm num algoritmo como um mecanismo de transformao de entradas em


sadas.Assim,umalgoritmoaoserexecutado,receberalgumasentradas,queseroprocessadasenosdevolver
algumassadas.

FLUXODECONTROLEEMALGORITMOS
Um algoritmo um texto esttico, onde temos vrios passos que so lidos e interpretados de cima para baixo.
Para que venhamos a obter o(s) resultado(s) deste algoritmo, necessitamos executlo, o que resulta em um processo
dinmico.
Nofluxodecontroleidentificamosemcadapassodaexecuoqualoprximocomandoaserexecutado.
A compreenso da lgica de programaode um algoritmo est diretamente ligadaa
compreenso de seu fluxo de controle. A partir de uma compreenso correta, podemos traar as
diversasexecuespossveisdeumalgoritmo.Setestarmostodasessaspossibilidades,eobtivermos
resultadoscorretos,podemostercertezadeestarentregandoumprodutofinalconfivel.
Osiniciantesnomundodaprogramaoencontramalgumadificuldadeemdiminuira
distncia conceitual que separa a representao esttica de um algoritmo do(s) processo(s)
dinmico(s)desuaexecuo.
importantefrisarquequandonospropomosa
entender um algoritmo, lidamos fisicamente com um texto, mas mentalmente temos
processos.

EDGAR TITO - INFORMTICA 2014 Prof. Ranildo Lopes

CRIANDOALGORITMOS
Toda linguagem composta de sintaxe e semntica, onde a sintaxe corresponde forma e a semntica
correspondeaocontedo.
importantequeseaprendaasintaxedoscomandos,masaprincipalpreocupaodeveserdecomousaresses
comandos.

Regrasparacriaodebonsalgoritmos

1.

2.

3.

4.

5.
6.
7.
8.

Use comentrios com freqncia. Isto torna o algoritmo mais legvel e facilita o entendimento da lgica
empregada. Seus algoritmos devero ser lidos e entendidos por outras pessoas (e por voc mesmo) de tal
formaquepossamsercorrigidoserecebermanuteno.
Obs: No se esquea de atualizar os comentrios, em caso de manuteno. Pior do que um programa sem
comentrios,umprogramacomcomentrioserrados.
Usecomentrios,tambm,nocabealhodoalgoritmo,incluindo,principalmente:
- descriodoquefazoalgoritmo
- autor
- datadecriao
Escolhanomesdevariveissignificativos,todaviaevitenomesmuitolongos.
Ex:
PrefiraSalBrutoouSalarioBrutoaoinvsdeSBouVAR1

PrefiraTotAlunosAprovDiretaaoinvsde
TotalAlunosAprovacaoDireta
Destaqueaspalavraschavedasestruturasdecontroleecomandoscomsublinhado.
Ex:
semedia>=7ento

...

senao

...

fimse
Utilizeespaoselinhasembrancoparamelhoraralegibilidade.
Coloque apenas um comando por linha. Vrios comandos em uma linha causam ilegibilidade e dificulta a
depurao.
Utilizeparntesesparaaumentaralegibilidadeeprevenirsedeerros.
Useidentaonoscomandosdeacordocomonvelqueestejam,ouseja,alinhecomandosdemesmonvele
desloquecomandosdenvelinferior.
Ex.:
incio

comando1;

secondicao1ento

comando2;

comando3;

senao

comando4;

comando5;

fimse

comando6;
fim

Mtodoparadesenvolvimentodealgoritmos
1.

Faa uma leitura de todo o problema at o final, a fim de formar a primeira impresso. A seguir, releia o
problemaefaaanotaessobreospontosprincipais.

EDGAR TITO - INFORMTICA 2014 Prof. Ranildo Lopes


2.
3.
4.
5.
6.

7.

8.

Verifique se o problema foi bem entendido. Questione, se preciso, ao autor da especificao sobre suas
dvidas.Releiaoproblemaquantasvezesforprecisoparatentarentendlo.
Extraiadoproblematodasassuassadas.
Extraiadoproblematodasassuasentradas.
Identifiquequaloprocessamentoprincipal.
Verifique se ser necessrio algum valor intermedirio que auxilie a transformao das entradas em sadas.
Esta etapa pode parecer obscura no incio, mas com certeza no desenrolar do algoritmo, estes valores
apareceronaturalmente.
Testecadapassodoalgoritmo,comtodososseuscaminhosparaverificarseoprocessamentoestgerandoos
resultadosesperados.
Crievaloresdetesteparasubmeteraoalgoritmo.
Revejaoalgoritmo,checandoasboasnormasdecriao.

Você também pode gostar