Você está na página 1de 178

INTRODUO

PROGRAMAO

ALGORITMO
Algoritmo um conjunto finito de regras com uma
sequncia de operaes para resolver um tipo de problema
especfico.
Caractersticas bsicas de um algoritmo:
Ter fim;
No dar margem dupla interpretao (no ambguo);
Capacidade de receber dados de entrada do mundo
exterior;
Poder gerar informaes de sada para o mundo externo
ao ambiente do algoritmo;
Ser efectivo (todas as etapas especficas no algoritmo
devem ser alcanveis em tempo finito).

FORMAS DE REPRESENTAO DO ALGORITMO

DESCRIO NARRATIVA, faz-se o uso do portugus para


descrever algoritmos.
Exemplo: Receita de bolo:
Providencie manteiga, ovos, 2 Kg de massa, etc.
Misture os ingredientes
Despeje a mistura na frma de bolo
Leve a frma ao forno
Espere 20 minutos
Retire a frma do forno
Deixe arrefecer
Prove
VANTAGENS:
Est escrito em portugus;

DESVANTAGENS:
impreciso;

pouca confiabilidade (a impreciso acarreta a desconfiana);


extenso (normalmente, escreve-se muito para dizer pouca coisa).

FLUXOGRAMA, utilizao de smbolos grficos para representar


algoritmos.
No fluxograma existem smbolos padronizados para
incio, entrada de dados, clculos, sada de dados, fim.

Clculo

Deciso

Entrada

Sada

EXEMPLO

EXPLICAO

incio

Incio do algoritmo

Entrada do Nmero
NUM

Dobro = NUM * 2

DOBRO

Fim

Clculo do dobro do nmero

Apresentao do resultado

Fim do algoritmo

incio / Fim

VANTAGENS:
Uma das ferramentas mais conhecidas;

Figuras dizem muito mais que palavras;


Padro mundial.
DESVANTAGENS:
Pouca ateno aos dados, no oferecendo recursos para descrev-los ou represent-los;

Complica-se medida que o algoritmo cresce.

LINGUAGEM ALGORTMICA, consiste na definio de uma


pseudolinguagem (pseudocdigo), cujos comandos so em
portugus para representar algoritmos em portugus.
EXEMPLO: Algoritmo CALCULA_DOBRO
NUM,DOBRO : inteiro
incio
Leia NUM
DOBRO
2 * NUM
Escreva DOBRO
Fim
VANTAGENS:
Usa o portugus como base;
Pode-se definir quais e como os dados vo estar estruturados;
Passagem quase imediata do algoritmo para uma linguagem de programao qualquer
DESVANTAGENS:
Exige a definio de uma linguagem no real para trabalho;
No padronizado.

Exerccio
Imagine um problema que deveria ser resolvido
por um robot.
Escreva numa folha o que pretende, sendo o
mais claro possvel.
Entregue a folha a um colega e pea-lhe que
elabore o respectivo algoritmo e que escreva
noutra folha as dvidas que surgirem sobre o
problema a resolver.
Depois de esclarecidas as dvidas refaam o
algoritmo inicial.
Classifiquem os dois algoritmos quanto
qualidade.

Linguagens de Programao

As linguagens de programao so conjuntos de palavras utilizadas na


escrita de programas, de acordo com o lxico prprio sujeito a uma
determinada estrutura e, na maior parte das vezes, vocacionadas para uma
particular rea de assuntos.
A nica linguagem que o computador realmente entende designa-se por
linguagem mquina e tem por base zeros e uns (sistema binrio),
representativos da passagem de corrente de baixa e alta tenso pelo cabo
de alimentao do computador.

Linguagem mquina
Linguagem orientada para as mquinas cujas instrues podem ser
directamente utilizadas pelo computador.

PROGRAMA

Conjunto de instrues com uma sequencia lgica e previamente


estabelecida que permite a execuo de tarefas pelo computador

Classificao de Linguagens

As linguagens de programao podem ser classificadas como, linguagens


de alto e de baixo nvel, de acordo com a proximidade que tm ou no das
linguagens humanas, as linguagens de baixo nvel so as que se
encontram orientadas para a mquina (computador), enquanto que as
linguagens de alto nvel no reflectem a estrutura de nenhum computador
em particular.

ASSEMBLY Baixo, mdio nvel L. mquina e assembler


Desenvolvimento de sistemas.

ALGOL, APL, C, COBOL, BASIC, FORTRAN, PASCAL Alto nvel L.


comerciais
Programas de gesto e comercio
Trabalhos acadmicos e investigao cientfica.

EXERCCIOS

1. O que entende por programa?

2. Qual a nica linguagem que o computador entende?

3. Enumere algumas linguagens de programao conhecidas?

4. Que entende por linguagens de alto nvel?

INTERPRETADORES e COMPILADORES

INTERPRETADORES e COMPILADORES
Software para traduo de programas escritos em linguagens de
programao evoludas para linguagem mquina ou assembly.

INTERPRETADORES Traduz instruo por instruo, medida que o


programa vai sendo lido e executado. Fica assim dependente do software
dessa interpretao.
COMPILADORES Traduz a globalidade das instrues de alto nvel para um
programa em cdigo mquina. Poder ser executado autonoma e
independentemente do software que fez a compilao.

INTERPRETADORES e COMPILADORES

A principal diferena entre interpretadores e compiladores o facto dos


interpretadores traduzirem linha a linha qualquer programa escrito numa
dada linguagem de programao para linguagem mquina, de forma a que
o computador possa entender qual o objectivo do programa. Enquanto que
os compiladores efectuam uma traduo total do programa original,
gerando um outro programa escrito em linguagem mquina e pronto a ser
utilizado pelo computador em qualquer ocasio.

PROCESSO DE COMPILAO

No processo de compilao, o programa original, escrito numa qualquer


linguagem de programao evoluda, designado de PROGRAMA FONTE.
Este programa fonte posteriormente submetido ao processo de
compilao, com o auxilio de um compilador que gera um programa
correspondente, escrito numa linguagem mquina ou assembly e
designado por PROGRAMA OBJECTO. A este ultimo adicionada uma
rotina que proporciona a independncia do programa relativamente ao
compilador, gerando-se deste modo um PROGRAMA dito EXECUTVEL.

PROGRAMAS FONTES So guardados em ficheiros com extenso BAS,


PAS, C
PROGRAMAS OBJECTO - So guardados em ficheiros com extenso
OBJ.
PROGRAMAS EXECUTVEIS - So guardados em ficheiros com
extenso EXE

EXERCCIOS

1. Qual a diferena entre interpretador e compilador?

2. Em que consiste o processo de compilao?

3. O que entende por programa fonte, programa objecto e programa


executvel.

4. Qual a extenso dos ficheiros utilizados e gerados num processo de


compilao?

SISTEMAS DE NUMERAO BINRIA E DECIMAL

Os computadores so formados por


circuitos digitais
A informao e os dados so codificados
em zeros e uns (linguagem mquina)

SISTEMAS DE NUMERAO BINRIA E DECIMAL


bit - unidade mnima de informao com que os
sistemas informticos trabalham
Binary Digit

BIT
(0 1)

SISTEMAS DE NUMERAO BINRIA E DECIMAL


Sistema de numerao binria utiliza
combinaes dos dgitos 0 e 1
Toda a informao que circula dentro de um
sistema informtico organizada em grupos de
bits
Os mais frequentes so os mltiplos de 8 bits: 8,
16, 32, etc.

SISTEMAS DE NUMERAO BINRIA E DECIMAL


BYTE BinarY TErm
Os bytes so os agrupamentos de bits mais usados nos sistemas informticos.
Um byte um agrupamento de oito bits.

1 0 1 0 0 1 0 1
Representam informao seja esta relativa a nmeros, caracteres, instrues de
cdigo mquina ou outro tipo de dados.

SISTEMAS DE NUMERAO BINRIA E DECIMAL


1 Byte 8 bits 256 combinaes possveis
No sistema binrio (0 e 1), para determinar o
nmero de combinaes com n bits, basta
calcular 2n
Exemplos:
- 1 bit 21=2 combinaes possveis (0 e 1)

SISTEMAS DE NUMERAO BINRIA E DECIMAL


2 bit 22=4 combinaes possveis
0 0
0 1
1 0
1 1

SISTEMAS DE NUMERAO BINRIA E DECIMAL


3 bit 23=8 combinaes possveis
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1

SISTEMAS DE NUMERAO BINRIA E DECIMAL

4 bit 24=16 combinaes


possveis

0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
. . . .
1 1 1 1

SISTEMAS DE NUMERAO BINRIA E


DECIMAL

DECIMAL
0123456789
BINRIO
01

0
1
2
3
4
5
6
7
8
9

0000
0001
0010
0011
0100
0101
0110
0111
1000
1001

SISTEMAS DE NUMERAO BINRIA E


DECIMAL
Converso de decimal para binrio

Efectuar divises sucessivas por 2 at se obter o quociente 1


Em seguida forma-se o numero binrio com 1 do quociente,
seguido de todos os restos obtidos nas divises, mas
tomados por ordem inversa.
Exemplo:

20 2
0 10 2
0 5 2
1 2 2
0 1

20(10) = 10100(2)

SISTEMAS DE NUMERAO BINRIA E DECIMAL


Converso de binrio para decimal
Comeando a ler o nmero da direita para a esquerda:
- Primeiro digito representa a potncia de base 2 e expoente 0;
- Segundo digito representa a potncia de base 2 e expoente 1;
- Terceiro digito representa a potncia de base 2 e expoente 2;
- nsimo digito representa a potncia de base 2 e expoente n-1;

Somar as multiplicaes parciais efectuadas entre o


dgito e a potncia a ele atribuda

SISTEMAS DE NUMERAO BINRIA E DECIMAL


Converso de binrio para decimal
Exemplo:

10100(2) = 20(10)

1 x 24 + 0 x 23 + 1 x 22 + 0 x 21 + 0 x 20
16

0 = 20(10)

UNIDADE MNIMA DE INFORMAO

Binary Digit

1 byte - 8 bits
1 Kbyte - 1024 bytes

BIT

01

1 Mbyte - 1024 Kbytes


1 Gbyte - 1024 Mbytes
1 Tbyte - 1024 Gbytes

EXERCCIOS

Efectue as seguintes converses, apresentando todos os clculos.


1. De decimal para binrio:
a) 49(10)?(2)
b) 58(10)?(2)
c) 31(10)?(2)
d) 37(10)?(2)
2. De binrio para decimal:
a) 111011(2)?(10)
b) 101011(2)?(10)
c) 10101(2)?(10)
d) 100111(2)?(10)
3. Hexadecimal para binrio:
a) 49(16)?(2)
b) 58(16)?(2)
c) 1BC(16)?(2)
d) A2D (16)?(2)

ESTRUTURA DE DADOS= STRUCTURE OF DATA

TIPO DE DADOS

SIMPLES

DEFINIDOS
PELO UTILIZADOR

ENUMERADOS

ESTRUTURADOS

PADRO

INTEIRO

ESTTICOS

DINMICOS

VECTOR/MATRIZ

LISTAS

REGISTO

PILHAS

REAL
SUBCONJUNTOS

FICHEIRO

RVORES

CONJUNTO

GRAFOS

CARACTER
LGICO OU
BOOLEANO

DADOS SIMPLES, so dados em que cada varivel opera apenas com um determinado valor de cada vez;
DADOS ESTRUTURADOS, so dados em que possvel agrupar um conjunto de dados numa mesma varivel.

CONJUNTO ENUMERADO, aquele em que se indicam todos os elementos que o constituem;


Exemplos: CORES=(Verde, Vermelho, Azul, Amarelo, Ciano)
DIADASEMANA=(Segunda, Tera, Quarta, Quinta, sexta, Sbado; Domingo)
SUBCONJUNTOS OU INTERVALOS, so dados em que se define um intervalo, com base num conjunto de ordinais. Indicase o primeiro e o ltimo elemento.
Exemplos: Inteiropequeno = 1..100;
Letramaiuscula = A..Z
Diadetrabalho = Segunda..Sexta
Conjunto de dados Ordinais, corresponde a conjuntos de elementos enumerveis e ordenveis. (qual a ordem de cada
elemento dentro do respectivo conjunto)
INTEIROS: -32768, +32767
REAL: comporta nmeros com casas decimais, por isso dever ser formatado o resultado de uma varivel do tipo REAL;
CARACTERES = CHAR, so letras, algarismos, e caracteres especiais.
LGICO OU BOOLEANO: Verdadeiro(V) ou Falso(F)

ESTRUTURA DE DADOS = STRUCTURE OF DATA

Elementos e estruturas fundamentais usados em programao:


Dados
Instrues bsicas
Expresses
Estruturas de controlo
Subprogramas
Dados, base da informao, so usados num programa sob a forma de constantes e variveis.
Em programao as constantes e as variveis esto associados a identificadores.

Identificadores, so nomes que se atribuem a constantes e a variveis com que se opera dentro de um programa.

Regras para definir os identificadores:


No inclurem espaos entre as palavras
Pode usar o underscore
No conterem outros caracteres para alm das letras do alfabeto e dos dgitos decimais
No podem usar caracteres acentuados
No comear por um dgito decimal
Exemplos de identificadores( de variveis ou de constantes)
Q, Quantidade, Quant, Num, Numero, x2, Taxa_anual. ..

ESTRUTURA DE DADOS = STRUCTURE OF DATA

Constantes: so valores que se mantm inalterados dentro de um programa.


Variveis: so entidades que podem assumir diferentes valores ao longo da execuo do programa.
Nota:

Palavras reservadas, so palavras de utilizao restrita da linguagem; o programador no pode criar variveis
e constantes com estas palavras.

STRING

STRING ou CADEIA DE CARACTERES, um tipo varivel para facilitar a leitura e escrita


de palavras e frases usadas em programas.

STRING, uma sequncia de caracteres envolvida por apstrofos.


Exemplos:
Rua D. Manuel I, n 25
AntniomPedro
46734
Verde
Continua S/N ?

STRING
OPERAES POSSVEIS COM DADOS DO TIPO STRING:
CONCATENAO
COMPARAO
CONCATENAO DE STRINGS:
X, Y, Z Identificadores do tipo string
X=Bom
Y=dia
Z=X+Y
Resultado de Z :

Bom dia

Nme, Apelido1, Apelido2:String


Nome=Antnio
Apelido1=Santos
Apelido2=Costa
Concatenao: Nome+Apelido1+Apelido2
Antnio santos Costa

STRING

COMPARAO DE STRINGS:
As operaes de comparao so realizadas atravs dos operadores relacionais:
=, <>, <, >, >=, <=, tomando como resultado possvel um dos dois valores TRUE ou FALSE.
Nas operaes de comparao de strings so utilizados os critrios:
De ordem alfabtica
De quantidade de caracteres
Do valor do cdigo (ASCII) * American Standard Code for Information Interchange
"Cdigo Padro Americano para o Intercmbio de Informao)

Nota: A tabela cdigo ASCII, surgiu nos anos 60, devido necessidade de criar um padro que fosse utilizado por todos
os computadores, tornando mais fcil a comunicao entre eles e a troca de dados.

STRING

OPERAO

RESULTADO

Livro

<

Livros

True

Revista

>

Livro

True

livro

Livro

True

Lpis

>

Livro

False

Lapiseira

<

Livro

True

Verde

>

Encarnado

True

Verde

>

Vermelho

False

gato

<>

GATO

False

ESTRUTURA DE DADOS = STRUCTURE OF DATA

Os dados so a base de informao, podemos apresent-los em:


Dados alfanumricos
Jos
Rua Gil Vicente, 12 3 Esq
Jornalista
Verde
16 E

Dados numricos
2
-57
32295
6,(3)
2.34E+5

Os dados so classificados quanto ao tipo ou natureza da informao de que so base. Assim


os dados numricos podem ser inteiros, reais,..(ver diapositivo 30))

ESTRUTURA DE DADOS = STRUCTURE OF DATA

Podemos constituir grupos de dados dentro do universo dos tipos de dados, aos quais
se atribui um nome, que se designa por Identificador.

Identificador

dado

Nome

Rui

Nome

Sara

Idade

23

Idade

24

Rui e Sara constituem um pequeno grupo


de dados, cujo identificador nome)

ESTRUTURA DE DADOS = STRUCTURE OF DATA

(Cada tipo de dados tem operaes de acordo com a sua natureza)

Operadores para dados Inteiros


Adio

Subtraco

Multiplicao

Diviso

Diviso Truncada

DIV

Resto da Diviso

MOD

Nota: A diviso de dois nmeros inteiros poder apresentar como


resultado um valor real. O mesmo no ocorre com as demais
operaes possveis com dados inteiros.

ESTRUTURA DE DADOS = STRUCTURE OF DATA

Exemplo:
Dados: 5 e 7

OPERAO

RESULTADO

7+5

12

7-5

7*5

35

7/5

1.4 (Real)

7 DIV 5
7 MOD 5

1 (quociente)
2 (Resto da diviso de 7 por 5)

ESTRUTURA DE DADOS = STRUCTURE OF DATA

Operadores para dados Reais


Adio

Subtraco

Multiplicao

Diviso

Nota: O resultado de operaes reais sempre real.

ESTRUTURA DE DADOS = STRUCTURE OF DATA

Exemplo:
Dados: 2.453 e 4 (Real)

OPERAO

RESULTADO

4 + 2.453

6.453

4 - 2.453

1.547

4 * 2.453

9.812

4 / 2.453

1.6306183

ESTRUTURA DE DADOS = STRUCTURE OF DATA

Operadores Relacionais
Igual

Diferente

<>

Menor

<

Menor ou igual

<=

Maior

>

Maior ou igual

>=

Nota: O resultado de operaes relacionais toma apenas um de


dois valores: Verdadeiro ou Falso. Qualquer tipo de dados pode
ser sujeito a operaes relacionais.

ESTRUTURA DE DADOS = STRUCTURE OF DATA

Exemplo:
Dados: 4 e 10

OPERAO

RESULTADO

10 = 4

Falso

10 <> 4

Verdadeiro

10 < 4

Falso

10 <= 4

Falso

ESTRUTURA DE DADOS = STRUCTURE OF DATA

Operadores Lgicos ou Booleanos


Negao

Not (no)

Conjuno

And (E)

Disjuno

OR (ou)

Nota: O resultado de operaes lgicas ou booleanas toma


apenas um de dois valores: Verdadeiro ou Falso. Qualquer tipo
de dados pode ser sujeito a operaes lgicas.

ESTRUTURA DE DADOS = STRUCTURE OF DATA

Exemplo:
Dados: 3 e 5

OPERAAO

RESULTADO

> 3 AND < 5

Verdadeiro

< 3 AND > 5

Falso

< 3 OR > 5

Verdadeiro

10 <= 4

Falso

ESTRUTURA DE DADOS = STRUCTURE OF DATA

EXPRESSES, so conjuntos de variveis, constantes e operadores, (passveis de tratamento


computorizado).

Para programao

2ab+3c

2*a*b+3*c

2(a+b)

2*(a+b)

- 4ac
2b

- 4*a*c / 2*b

ESTRUTURA DE DADOS = STRUCTURE OF DATA


PRIORIDADE DOS OPERADORES ARITMTICOS
Em programao so considerados trs nveis na hierarquia dos operadores aritmticos.
Nvel 1 - Parnteses
Nvel 2 Multiplicao e Diviso, Div e Mod
Nvel 3 - Adio e Subtrao
(a prioridade mais alta quanto menor o nvel de hierarquia)

PRIORIDADE DOS OPERADORES LGICOS


Nvel 1 - NOT (NO)
Nvel 2 AND (E)
Nvel 3 - OR (OU)

ESTRUTURA DE DADOS = STRUCTURE OF DATA

Exemplos:
A expresso 2*4+1 est sujeita a diferente interpretao comparativamente expresso 2*(4+1)
8+1=9
-b+b2-4ac
2a

2*5=10

numerador
denominador

(primeiro evidencia-se o numerador do denominador, recorrendo utilizao de parnteses)


(-b+b2-4ac) / (2a)
(-b+b2-4ac) / (2*a)
(-b+(b*b)-(4*a*c))
(-b+(b*b)-(4*a*c)) / (2*a)
Nota: se houver uma sequncia de operadores de igual prioridade, a execuo ser na
ordem que aparecem as operaes.

ESTRUTURA DE DADOS = STRUCTURE OF DATA

Comparar as expresses
8/(4*2)

<>

8/8 = 1

3*4/2

8/4*2
2*2 = 4

12/2= 6

3*(4/2)
3*2 = 6

A expresso:
(A > 2) AND NOT (A>20)

Na expresso:
(X=0) OR (X>=2) AND (X<=5)
Ser resolvido primeiro o AND
(X=0) OR [(X>=2) AND (X<=5)]

(A>2) AND (NOT(A>20)

ESTRUTURA DE DADOS = STRUCTURE OF DATA

Exerccio:
Para os valores: a=10; b=12; c=13; d=10, resolva as seguintes expresses:
1. [(a>b) OR (a<c)] AND [(a=c) OR (a>=b)]
R:

2. [(a>=b) OR (a<d)] AND [(a>=d) AND (C>D)]


R:

3. NOT(a=c) AND (c>b)


NOT F
V

AND
AND
V

V
V

A=12; B=13; C=5; D=15

Not[(a<b OR c<d AND d<c) AND (a>b OR c>b)]

NOT[(12<13 OR 5<15 AND 15<5) AND (12>13 OR 5>13)]


NOT [

V OR

NOT [(

V OR

NOT (
NOT

V AND
F
V

F
V

F)

AND (
)

OR F)]

AND

F ]

AND

F)

Pseudocdigo
Os algoritmos podem ser descritos em
uma linguagem chamada pseudocdigo.
A pseudolinguagem pode ser visto como a tentativa de
fundir a expressividade da linguagem natural e o rigor
lgico de esquemas como o fluxograma.
A pseudolinguagem permite a descrio do algoritmo de
uma forma linear, fcil de ler e fcil de compreender.

Pseudocdigo
Cabealho
dado o nome ao algoritmo. Comea com a palavra
PROGRAMA".

Declaraes
Descrio das variveis usadas.

Corpo
Contm a sequncia dos passos (aes) do algoritmo.
Inicia-se com a palavra "Incio e termina com a palavra "Fim".

Comentrios
Cada passo do algoritmo pode iniciar com um comentrio entre
dois parnteses rectos/chavetas. Estes comentrios do uma
breve descrio do passo ou dum grupo de passos seguintes.
Os comentrios so uma parte importante do algoritmo.
Eles servem para tornar a leitura, do algoritmo, mais fcil e clara.

ESTRUTURAS DE CONTROLO

As estruturas de controlo so de vital importncia, na elaborao


de programas organizados, flexveis, que permitem ser alterados com
facilidade.

ESTRUTURAS DE CONTROLO

SEQUENCIAL

DECISO
OU
SELEO

REPETIO
OU
CICLOS

ESTRUTURA SEQUENCIAL
a estrutura de controlo mais simples e consiste na execuo das instrues pela
sequncia definida.
Incio

Incio

20

20;

A + 2;

A+ 2

A / B;

A/ B

Fim.

Fim

O que fazemos com a Estrutura Sequencial?


Problemas simples e limitados: leitura de valores, atribuio de
valores, clculos e escrever resultados.

Exerccio
1.Pretende-se obter a soma de dois
valores 10 e 15.
a) Elabore o algoritmo em pseudocdigo
( d um nome ao programa e declare as
variveis);
b) Faa a representao em fluxograma.

RESOLUO EM PSEUDOCDIGO
Programa soma _dois_valores_dados;
Constantes
Valor1=10;valor2=15;
Variveis
Soma: Inteiro;
Incio
Soma

Valor1 + Valor2;

Escrever( A soma dos valores dados :, Soma);


Fim.

FLUXOGRAMA

Incio

Valor1 = 10

Valor2 = 15

Soma

Valor1 + Valor2

Escrever(Soma)

fim

1.1 Pretende-se obter a soma de dois


valores quaisquer, lidos a partir do teclado.
a) Elabore o algoritmo em pseudocdigo( d
um nome ao programa e declare as
variveis;)
b) Faa a representao em fluxograma.

RESOLUO EM PSEUDOCDIGO

Programa soma_dois_valores_quaisquer;
Variveis
Valor1,Valor2,Soma: Inteiro;
Incio
Escrever( digite o primeiro valor );
Ler(Valor1);
Escrever( digite outro valor );
Ler(Valor2);
Soma

Valor1+Valor2;

Escrever( O resultado :, Soma);


Fim.

FLUXOGRAMA

Incio

Escrever(digite o
primeiro valor)

Ler Valor1

Ler(Valor1)

Ler Valor2

Soma

Incio

Escrever(digite
outro valor)

Valor1 + Valor2
Ler(Valor2)

Escrever(Soma)
Soma

fim

Valor1 + Valor2

Escrever(O
resultado :, Soma)

fim

ESTRUTURAS de DECISO OU SELEO ou CONDICIONAL


Para problemas mais complexos importante que possamos decidir se
uma instruo ou grupos de instrues devem ou no ser executadas,
dependendo de um valor ou de uma expresso.
ESTRUTURAS de DECISO ou SELEO ou CONDICIONAL,
So estruturas de controlo usadas para a resoluo de algoritmos complexos.

ESTRUTURAS de DECISO ou SELEO ou CONDICIONAL

BASEADAS NUMA CONDIO

DE ESCOLHA MLTIPLA

Se Ento Seno

Caso

Estrutura SE,
Permite a seleo entre duas alternativas, dependendo de uma dada condio ou
expresso

Incio

Condio

Instruo se a condio
For verdadeira

Fim

Instruo se a condio
For falsa

Estrutura SE

SE condio ENTO
Incio
Instruo 1

Instruo n

Bloco executado se a condio for verdadeira

Fim
SENO
Incio
Instruo 1

Instruo n

Bloco executado se a condio for falsa

Fim

Nota: Se um dos blocos incluir mais do que uma instruo, necessrio delimit-los com as
instrues de incio e fim.

Estrutura SE

A estrutura SE pode ser definida das seguintes formas:


1.SE ENTO
2.SE ENTO SENO

Se a estrutura estiver definida da forma SE ENTO , ao ser avaliada a


condio ou expresso. Se o valor for verdadeiro, executado bloco de
instrues. Se o valor da condio for falso, o bloco de instrues no
executado.

Caso a estrutura esteja definida da forma SE ENTO SENO, ao ser


avaliada a condio ou expresso. Se o valor for verdadeiro, executado
apenas o primeiro bloco de instrues. Se o valor da condio for falso,
executado apenas o segundo bloco de instrues.

Estrutura SE

Exemplos
1.Ler um valor e enviar para o ecr uma mensagem se o valor for negativo.
a)Represente em pseudocdigo. (declare o nome do programa e as variveis).
b)Represente em fluxograma.
2. Pretende-se saber qual o maior de dois valores introduzidos a partir do
teclado.
a)Represente em pseudocdigo. (declare o nome do programa e as variveis).
b)Represente em fluxograma.

Estrutura SE

1. Resoluo
Pseudocdigo
Mensagem;
Variveis
Num: Inteiro;
Incio
Escrever( digite o nmero);
Ler(Num);
Se Num < 0 Ento
Escrever(mensagem);
Fim.

Estrutura SE

Fluxograma

Incio

Ler Num

Num < 0

Escrever
Mensagem

fim

Estrutura SE

2. Resoluo
Pseudocdigo
Mensagem;
Variveis
Num1,Num2: Inteiro;
Incio
Escrever( digite o nmero);
Ler(Num1);
Escrever( digite o nmero);
Ler(Num2);
Se Num1 > Num2 Ento
Escrever(Num1) *
Seno
Escrever(Num2);
Fim.

Nota:
No

*
pomos

;(ponto

vrgula)

na

instruo

Escrever(Num1) porque a instruo antes da clusula seno.


Quer dizer que no existe mais nenhuma instruo ligada clusula ento.

Estrutura SE

Fluxograma
Incio

Ler Num1

Ler Num2

Num 1
>
Num2

Escrever
Num1

Escrever
Num2

fim

Estrutura SE

Exemplos
3. Escreva o resultado da diviso de 4 por um valor lido a partir do teclado, mas
se esse valor for igual a zero(0) ento escrever diviso no admitida .
(constante)
a)Represente em pseudocdigo. (declare o nome do programa e as variveis).
b)Represente em fluxograma.
3.1. Alterar o exerccio 3 de maneira que o 4 seja uma varivel.
4. Se o Jos arranjar um capacete, ento a Rita leva-o de mota, seno vai de
autocarro.
a)Represente em pseudocdigo.
b) Represente em fluxograma.

Estrutura SE

3. Resoluo

Pseudocdigo
Programa divisao;
Variveis
Valor: Inteiro;
Resultado: Real;
Incio
Escrever( digite o valor para a diviso);
Ler(Valor);
Se valor = 0 Ento
Escrever( Diviso no admitida)
Seno
Incio
Resultado

4 / Valor;

Escrever(Resultado) ;
Fim;
Fim-se;
Fim.

Estrutura SE

Fluxograma
Incio

Ler Valor

Valor
=
0

Resultado

Escrever
Diviso no
admitida

Escrever
Resultado

fim

4 / Valor;

Estrutura SE

3.1. Resoluo

Pseudocdigo
Programa divisao;
Variveis
Valor, Valor1: Inteiro;
Resultado: Real;
Incio
Escrever( digite o valor para o divisor);
Ler(Valor);
Escrever( digite o valor para o dividendo);
Ler(valor1)
Se valor = 0 Ento
Escrever( Diviso no admitida)
Seno
Incio
Resultado

Valor1 / Valor;

Escrever(Resultado) ;
Fim;
Fim-se;
Fim.

Fluxograma
Incio

Ler Valor

Ler Valor1

Valor
=
0

Resultado

Escrever
Diviso no
admitida

Escrever
Resultado

fim

Valor / Valor1

Estrutura SE

4. Resoluo

Pseudocdigo
Programa capacete;
Incio

Se O Jos arranjar um capacete


Escrever( Vai de mota)
Seno
Escrever(Vai de autocarro) ;
Fim-se;
Fim.

Ento

Fluxograma

Incio

Arranjar um
capacete

S
Escrever
Vai de autocarro

Escrever
Vai de mota

fim

Estrutura SE

Exemplos
5. Elabore(faa) o algoritmo que escreva o maior de trs(3)
nmeros, introduzidos a partir do teclado.
a)Represente em pseudocdigo. (declare o nome do programa e as
variveis).
(b) Represente em fluxograma.
5.1. Alterar o exerccio 5 de maneira que escreva o menor.
a)Represente em pseudocdigo.
b) Represente em fluxograma.

Estrutura SE

5. Resoluo

Pseudocdigo

Programa Maior_de_Tres_Numeros;
Variveis
Num1,Num2,Num3: Inteiro;
Incio
Escrever( digite nmero);
Ler(Num1);
Escrever( digite nmero);
Ler(Num2);
Escrever( digite nmero);
Ler(Num3);
Se (Num1 > Num2) E * (Num1 > Num3) Ento
Escrever( O maior : , Num1)
Seno
Se (Num2 > Num1) e (Num2 > Num3) Ento
Escrever( O maior : , Num2)
Seno
Escrever( O maior : , Num3)
Fim-se;
Fim-se;
Fim.

Fluxograma
Incio

Ler Num1

Ler Num2

Ler Num2

(Num 1
>
Num2)

(Num 1
E
>
Num3)

(Num 2
>
Num3)

(Num 2
E
>
Num1)
S

Escrever
Num1

Escrever
Num2

Escrever
Num3

fim

*
Se (IF) (Num1 > Num2) E (AND) (Num1 > Num3) Ento

(Num1 > Num2)

(Num1 > Num3)

V OU F

V OU F

V =TRUE

F = FALSE

OPERADOR E = OPERADOR AND

OPERANDO 1

OPERADOR

OPERANDO 2

RESULTADO

V (TRUE)

AND (E)

AND (E)

F (FALSE)

AND (E)

AND (E)

Estrutura SE

EXERCCIOS

6. Elabore(faa) o algoritmo que calcule e escreva a rea de um quadrado. O valor


introduzido a partir do teclado, o valor tem que ser maior que zero, seno, tem
como output(sada) as seguintes instrues:
- O valor zero ou negativo.
- Soluo com a estrutura repetir.
a. Represente em pseudocdigo. (declare o nome do programa e as variveis).
b. Represente em fluxograma.
7. Elabore(faa) o algoritmo que calcule e escreva a rea de um rectngulo. Os
valores so introduzidos a partir do teclado, valores esses maiores que zero,
seno tem como sada as instrues do exerccio 6.
a. Represente em pseudocdigo. (declare o nome do programa e as variveis).
b. Represente em fluxograma.

Estrutura SE

6. a. Resoluo

Pseudocdigo

Programa Area_dum_quadrado;
Variveis
valor, Area: Real;
Incio
Escrever( digite o valor dos lados);
Ler(valor);
Se (valor <= 0) Ento
Incio
Escrever( O valor zero ou negativo);
Escrever(Soluo com a estrutura repetir);
Fim
Seno
Inicio
Area

valor * valor;

Escrever( A rea do quadrado : , Area:2:2,m 2);


Fim;
Fim-se;
Fim.

6. b. Resoluo Pseudocdigo
Programa Area_dum_retangulo;
Variveis
largura, comprimento, Area: Real;
Incio
Escrever( digite o valor da largura);
Ler(largura);
Escrever( digite o valor do comprimento);
Ler(comprimento);
Se (largura > 0) And (comprimento > 0) Ento
Incio
area

largura * comprimento;

Escrever('A rea do rectngulo : ', Area:2:2,' ','m2' ');


Fim
Seno
Incio
Escrever( O valor zero ou negativo);
Escrever(Soluo com a estrutura repetir);
Fim;
Fim-se;
Fim.

(Nota: Se, a seguir ao primeiro


valor lido.) Na estrutura Repetir

Estrutura de um Programa Pascal:


Program Nome;

Cabealho

Const
Inicio=100;
Fim=999;

Zona declarativa

Var
i,j:Integer;

Begin
i:=Inicio;
j:=Fim;
Write(i,j);
End.

Zona Operativa

ESTRUTURAS de DECISO ou SELECO ou CONDICIONAL

BASEADAS NUMA CONDIO

DE ESCOLHA MLTIPLA

Se Ento Seno

Caso

DE ESCOLHA MLTIPLA
Caso seletor DE
CASE Seletor OF

Estrutura

CASO
A estrutura CASO permite a escolha entre vrias alternativas;
seleccionada uma instruo ou bloco de instrues com base no
valor de uma expresso designada SELECTOR;
(pode obter-se o mesmo resultado utilizando a estrutura SE
encadeada, mas poderia conduzir a instrues difceis de
compreender)
Tal como a estrutura SE a clusula SENO no obrigatria,
tambm se um dos blocos incluir mais do que uma instruo
necessrio delimit-los com as instrues de incio e fim;

Estrutura CASO
CASO selector de
valor1: ncio
instruo1

instruon
fim

valorn: incio
instruo1

instruon
fim
SENO
incio
instruo1

instruon
fim
fim

Estrutura CASO
Incio

selector

Opo 1

Opo 2

Fim

Opo n

Estrutura CASO

EXERCCIOS
8. Introduza um valor compreendido ente 1 e 6, correspondente aos meses do
primeiro semestre do ano, e que pretendamos apresentar no ecr, por extenso, o
ms correspondente. Se o valor cair fora deste intervalo, escrever valor no
admitido.
a.Represente em pseudocdigo. (declare o nome do programa e as variveis).
b.Represente em fluxograma.
c.Represente o mesmo problema, mas com a utilizao da estrutura de Ses
encadeados.
a. Em pseudocdigo.
b. Em fluxograma.
9. Para o exerccio n 8, apresentar no ecr, por extenso: o ms correspondente;
ano 2010 . Se o valor cair fora deste intervalo, escrever as instrues :valor no
admitido ; era um valor entre 1 e 6.

Estrutura CASO

8. a. Resoluo

Pseudocdigo

Programa Escrever_mes;
Variveis
valor:inteiro;
Incio
Escrever(Digite valor entre 1 e 6);
Ler(valor);
Caso valor de
1 : Escrever(Janeiro);
2 : Escrever(Fevereiro);
3 : Escrever(Maro);
4 : Escrever(Abril);
5 : Escrever(Maio);
6 : Escrever(Junho)
Seno
Escrever(Valor no permitido);
fim;
Fim.

Estrutura CASO

8.b. Fluxograma
Incio

Ler
Valor

Valor

Escrever
Janeiro

Escrever
Fevereiro'

Escrever
Maro

Escrever
Abri

Escrever
Maio

Escrever
Junho
Escrever
Valor no
admitido

Fim

8.c. Pseudocdigo com Ses encadeados


Programa Escrever_mes;
Variveis
Valor:inteiro;
Incio
Esccrever(Digite valor entre 1 e 6);
Ler(Valor);
Se Valor = 1 Ento
Escrever(Janeiro);
Seno
Se Valor = 2 Ento
Escrever(Fevereiro);
Seno
Se Valor = 3 Ento
Escrever(Maro);
Seno
Se Valor = 4 Ento
Escrever(Abril);
Seno
Se Valor = 5 Ento
Escrever(Maio);
Seno
Se Valor = 6 Ento
Escrever(Junho)
Seno
Escrever(Valor no admitido)
fim.se
fim.se
Fim.se
fim.se
fim.se
fim.se
Fim.

8.c. Fluxograma com Ses encadeados


incio

Ler valor
Valor
=1
S

Escrever
Janeiro

Valor
=2
S

Valor
=3
S

Escrever
Fevereiro

Escrever
Maro

Valor
=4

Valor
=5

Escrever
Abril

Escrever
Maio
Valor
=6
S

Escrever
Junho
Escrever
Valor no
admitido
Fim

9. a. Resoluo pseudocdigo

Estrutura CASO

Programa Escrever_mes;
Variveis
valor:inteiro;
Incio
Escrever(Digite valor entre 1 e 6);
Ler(valor);
Caso valor de
1 : incio
Escrever(Janeiro);
Escrever(Ano 2010);
fim;
2 : Incio
Escrever(Fevereiro);
Escrever(Ano 2010);
fim;
3 : Incio
Escrever(Maro);
Escrever(Ano 2010);
fim;
4 : Incio
Escrever(Abril); Escrever(Ano 2010);
fim;
5 : Incio
Escrever(Maio); Escrever(Ano 2010);
fim;
6 : Incio
Escrever(Junho); Escrever(Ano 2010);
fim
Seno
Incio
Escrever(Valor no permitido); Escrever(Era um valor entre 1 e 6);
fim;
fim;

Estrutura CASO

possvel definir intervalos para os valores assumidos pelo selector.


Exemplo

...
Incio
Escrever(digite um nmero);
Ler(num);
Caso num of
1 .. 100 : escrever( Nmero compreendido de 1 a 100);
101 .. 200 : escrever( Nmero compreendido de 101 a 200);
201 .. 500 : escrever( Nmero compreendido de 201 a 500);
fim;
Fim.

Estrutura CASO

possvel definir intervalos para os valores, assumidos pelo selector,


do tipo caracter, neste caso necessrio delimit-los por dois
apstrofos(plicas), por exemplo A.
Exemplo

...
Incio
Escrever(digite um caracter);
Ler(caracter);
Caso caracter de
A .. D : escrever( ABCD);
E .. H : escrever( EFGH);
I .. K : escrever( IJLK);
fim;
Fim.

As estruturas que estudmos possibilitam-nos elaborar algoritmos em que


podemos escolher as instrues a serem executadas. No entanto, cada
instruo s executada uma nica vez. Mas, por vezes, necessrio
REPETIR uma instruo ou bloco de instrues.
ESTRUTURAS DE REPETIO OU CICLOS
UM CICLO constitudo por uma sequncia de instrues CORPO DO
CICLO e por uma ESTRUTURA QUE CONTROLA a execuo dessas
instrues, especificando o NMERO DE VEZES que o corpo do ciclo
executado.
As instrues includas no corpo do ciclo podem ser executadas qualquer
nmero de vezes(ou nenhuma vez), mas esse nmero tem de ser finito.

Estruturas de Repetio ou Ciclos


ESTRUTURAS de REPETIO ou CICLOS
(STRUCTURES of REPETITION or CYCLES)

BASEADAS
NUMA CONDIO
(BASED IN A CONDITION)

ENQUANTO se verificar uma


dada condio
(WHILE to verify one given condition)

ENQUANTO FAZER
(WHILE DO)

UTILIZANDO UM CONTADOR
(USING AN ACCOUNTANT)

PARA AT FAZER
(FOR TO DO)

AT se verificar uma dada


condio
(UNTIL if verifying one given condition)

REPETIR AT
(REPEAT UNTIL)

Estrutura ENQUANTO = STRUCTURE WHILE

ESTRUTURAS BASEADAS NUMA CONDIO

ESTRUTURA ENQUANTO STRUCTURE WHILE

ENQUANTO condio FAZER


Incio
instruo1

Corpo do Ciclo

instruon

(Body of the Cycle)

fim

(WHILE condition TO MAKE) (WHILE condition DO)

Estrutura ENQUANTO

Condio/
Expresso

S
Instruo 1

Instruo n

Estrutura ENQUANTO
A estrutura ENQUANTO possibilita repetir a execuo de uma ou vrias instrues,
enquanto uma determinada condio/expresso, do tipo lgico, tiver valor verdadeiro.
Dois aspectos a salientar na estrutura ENQUANTO:

O corpo do ciclo pode no ser executado nenhuma vez, caso o valor da

condio/expresso seja falso, porque a condio/expresso verificada antes de iniciar o


ciclo.
Normalmente no possvel determinar, partida, o nmero de vezes que o corpo do
ciclo executado, porque o valor da condio que valida o fim do ciclo alterado durante a
execuo desse ciclo, no se sabendo que valor lhe vai ser atribudo.

Nota: Enquanto o valor da condio for verdadeiro executa o ciclo, mas necessrio
alterar o valor durante a execuo do ciclo, para que o ciclo termine, caso contrrio, o ciclo
entra em loop infinito.

STRUCTURE WHILE
The structure WHILE it makes possible to repeat the execution of one or some
instructions, while one determined condition/expression, of the logical type, will have true
value.
Two aspects to point out in the structure WHILE:
The body of the cycle can not be executed no time, in case that the value of the
condition/expression is false, because the condition/expression is verified before initiating
the cycle.
Normally it is not possible to determine, to the departure, the number of times that the
body of the cycle is executed, because the value of the condition that validates the end of
the cycle is modified during the execution of this cycle, if not knowing that value goes to it to
be attributed.
Note: While the value of the condition will be true executes the cycle, but it is necessary
to modify the value during the execution of the cycle, so that the cycle finishes, in case that
contrary, the cycle enters in infinite Loop.

Estrutura ENQUANTO
Exemplo:
Incio
Escrever(digite um nmero);
Ler(Numero);
Enquanto Numero > 0 Fazer
Inicio
Escrever(O nmero maior que zero);
Escrever(outro nmero);
Ler(Numero);
Fim;
Fim.
NOTA: Como se pode observar, o corpo do ciclo executado enquanto o valor da varivel
Numero for maior que zero.
Mas no possvel dizer qual o nmero de vezes que o corpo do ciclo executado: tanto
pode ser nenhuma como uma infinidade de vezes.
NOTE: As if it can observe, the body of the cycle is executed while the value of the variable
number will be greater that zero(>0). But not possible to say which the number of times that
the body of the cycle is executed: as much can be none as a infinity of times.

Estrutura ENQUANTO = STRUCTURE WHILE


EXERCCIOS
10. Elabore(faa) o algoritmo que calcule e escreva a rea de um quadrado. O valor
introduzido a partir do teclado, valide o valor at ser maior que zero. O output(sada) tem as
seguintes instrues:
- O valor para o lado do quadrado : ( apresentar o valor da varivel).
- O resultado da rea do quadrado.
a. Represente em pseudocdigo. (declare o nome do programa e as variveis).
b. Represente em fluxograma.
10. The algorithm elaborates (it makes) that calculates and writes the area of a square. The
value is introduced from the keyboard, validates the value until being bigger that zero.
Output (exit) has the following instructions:
- The value for the side of the square is: (to present the value of the variable).
-The result of the area of the square.
a. It represents in pseudocode. (it declares the name of the program and the variable).
b. It represents in flowchart.

Estrutura ENQUANTO = STRUCTURE WHILE

Pseudocdigo

10. a. Resoluo

Programa Area_dum_quadrado;
Variveis
Lado, Area: Real;
Incio
Escrever( digite o valor dos lados);
Ler(Lado);
Enquanto (Lado <= 0) Fazer
Incio
Escrever( digite outro valor para o lado);
Ler(Lado);
Fim;
Area

Lado * Lado;

Escrever( o valor para lado do quadrado : , Lado:2:2);


Escrever( O resultado da rea do quadrado : , Area:2:2,m 2);
Fim.

Estrutura ENQUANTO = STRUCTURE WHILE

10. b. Resoluo

Fluxograma

Incio

Escrever
digite o valor dos lados

Ler
Lado

Lado
<=
0
S
Escrever
outro valor
para o lado
Ler
Lado

Area

Lado * Lado

Escrever
o valor para lado do
quadrado : , Lado

Escrever
O resultado da rea do
quadrado : , Area:2:2, m2
fim

11. Elabore(faa) o algoritmo que calcule e escreva a rea de um retngulo . Os


valores so introduzidos a partir do teclado, valide os valores at serem maior que
zero. O output(sada) tem as seguintes instrues:
-O valor para o lado doretngulo : ( apresentar o valor da varivel).
-O valor para ocomprimento retngulo :( apresentar o valor da varivel).
- O resultado da rea do retngulo.
a. Represente em pseudocdigo. (declare o nome do programa e as variveis).
b. Represente em fluxograma.

Program Area_dum_retangulo;
Var
Lado, comprimento, Area: Real;
Begin
Writeln('digite o valor da largura');
Read(largura);
While Largura<=0 Do
Begin
Writeln('digite um valor maior que zero para a largura');
Read(Largura);
end;
Writeln('digite o valor do comprimento');
Read(comprimento);
While comprimento<=0 Do
Begin
Writeln('digite um valor maior que zero para o comprimento');
Read(comprimento);
end;
Writeln( o valor para o lado do retngulo : , Lado:2:2);
Writeln( o valor para o comprimento do retngulo : , Comprimento:2:2);
Area:=largura * comprimento;
Writeln('A rea do rectngulo : ', Area:2:2,' ','m2');
End.

Estrutura ENQUANTO = STRUCTURE WHILE


EXERCCIOS
11. Elabore(faa) o algoritmo que mostre no ecr, os nmeros compreendidos entre 20 e 200
incluindo estes.
a. Represente em pseudocdigo. (declare o nome do programa e as variveis).
b. Represente em fluxograma.
11. It elaborates (it makes) the algorithm that it shows in ecr, the numbers understood
between 20 and 200 including these.
a. It represents in pseudocode. (it declares the name of the program and the variable).
b. It represents in flowchart.

Estrutura ENQUANTO = STRUCTURE WHILE

Pseudocdigo

11. a. Resoluo

Programa Escrever_mumeros_inteiros;
Variveis
Numero: Inteiro;

Exerccio:

Incio
Numero

20;

Enquanto (Numero <= 200) Fazer


Incio
Escrever(Numero);
Numero

Numero + 1; *

No escrever os nmeros mas


a soma destes inteiros.
Not to write the numbers but
the addition of these integers
numbers.

Fim;
Fim.

*NOTA: Estamos a incrementar a varivel Numero, para

alterar o valor da varivel , at a condio ser

falsa.

* NOTE: We are to develop the variable Numero, to modify the value of the variable, until the condition to be
false.

Program Escrever_mumeros_inteiros ;
Var
Numero: Integer;
Begin
Clrscr;
Numero:=20;
While (Numero <= 200) Do
Begin
Write(Numero,' ');
Numero:=Numero + 1;
End;
Readln
End.

Estrutura ENQUANTO = STRUCTURE WHILE

Pseudocdigo

11. a. (alterado) Resoluo


(modified)

Programa Escrever_soma_mumeros_inteiros;
Variveis
Numero, Soma: Inteiro;
Incio
Soma
Numero

0; *
20;

Enquanto (Numero <= 200) Fazer


Incio
Soma
Numero

Soma + Numero;
Numero + 1;

Fim;
Escrever( A soma dos inteiros entre 20 e 200 : , Soma);
Fim.

*NOTA: Estamos a atribuir 0 varivel Soma, para ter a certeza que tem de incio o valor zero.
*NOTA: We are to attribute 0 to the variable Soma, to have the certainty that starts with value zero.

Estrutura ENQUANTO = STRUCTURE WHILE

11. b. Resoluo

Fluxograma

Incio

Numero

20

Numero
<=
200

S
Escrever
Numero

Numero

Numero + 1

fim

Estrutura ENQUANTO = STRUCTURE WHILE

11. b. (alterado) Resoluo

Fluxograma

Incio

Soma

Numero

20

Numero
<=
200

Soma

Soma + Numero

Numero

Numero + 1

fim

Escrever
A soma dos inteiros entre
20 e 200 : , Soma

Estrutura REPETIR = STRUCTURE REPEAT


A estrutura REPETIR possibilita repetir a execuo de uma ou vrias instrues, at
que uma determinada condio/expresso, do tipo lgico, tenha valor verdadeiro.
A salientar na estrutura REPETIR:
O corpo do ciclo executado pelo menos uma vez, porque, s depois das instrues do
ciclo serem executadas que verificada a condio/expresso. Se o valor for falso, o
corpo do ciclo de novo executado e apenas termina quando o valor for verdadeiro.
Normalmente no possvel determinar, partida, o nmero de vezes que o corpo do
ciclo executado, porque o valor da condio que valida o fim do ciclo alterado durante a
execuo desse ciclo, no se sabendo que valor lhe vai ser atribudo.
Quando se utiliza a estrutura repetir no necessrio delimitar o corpo do ciclo.

Estrutura REPETIR

REPETIR (repeat)
instruo1

Instruo 1

instruon

Instruo n

AT Condio
(until)

Condio/
Expresso

Corpo do Ciclo
(Body of the Cycle)

Estrutura REPETIR
12. Elabore o algoritmo que, l continuamente nmeros a partir do teclado, at que seja
digitado o valor 1.
a. Represente em pseudocdigo. (declare o nome do programa e as variveis).
b. Represente em fluxograma.
12. The algorithm elaborates that, reads numbers from the keyboard continuously, until value
1 is typed.
a. It represents in pseudocode. (it declares the name of the program and the variable).
b. It represents in flowchart.
13. Calcular a soma de cinco valores lidos a partir do teclado.
a. Represente em pseudocdigo. (declare o nome do programa e as variveis).
b. Represente em fluxograma.
13. To calculate the addition of five values read from the keyboard.
a. It represents in pseudocode. (it declares the name of the program and the variable).
b. It represents in flowchart.

Estrutura REPETIR
12. a. Resoluo

Pseudocdigo

Programa Ler_numeros;
Variveis
Numero: Inteiro;
Incio
Repetir
Escrever(Digite Numero);
Ler(Numero);
At Numero = 1;
Fim.

Estrutura REPETIR
Fluxograma

12. b. Resoluo

Incio

Escrever(Digite
Nmero)

Ler Numero

Numero = 1

N
Fim

Estrutura REPETIR
13. a. Resoluo

Pseudocdigo

Programa Soma_Cinco_Valores;
Variveis
Numero, Soma,Contador: Inteiro;
Incio
Contador

1;

Soma

0;

Repetir
Escrever(Digite Numero);
Ler(Numero)
Soma
Contador

Soma + Numero;
Contador + 1;

At Contador > 5;
Escrever( O resultado da soma dos cinco nmeros :, Soma)
Fim.

Estrutura REPETIR
13. b. Resoluo

Fluxograma

Incio
Soma

Contador

Escrever(Digite Nmero)

Ler Numero

Soma

Soma + Numero

Contador

Contador + 1

Contador>5
N

S
Escrever(Soma)

Fim

Estrutura PARA
A estrutura PARA utilizada para efectuar ciclos incondicionais, (ao contrrio das
outras estruturas).
A salientar na estrutura PARA:
Antes do corpo do ciclo ser executado j se sabe qual o nmero de vezes que este ir ser
executado, (ao contrrio das outras estruturas de repetio).
A execuo das instrues, do corpo do ciclo, controlada por uma varivel varivel de
controlo, que tem de ser do tipo enumervel. O corpo do ciclo executado para uma
sequncia de valores da varivel de controlo

(Incondicional = Que no est sujeito a qualquer condio ou restrio; independente de quaisquer limitaes; que deve
executar-se em quaisquer condies
Enumervel = Que se pode enumerar; contar um a um; sequncia de valores.)

Estrutura PARA = STRUCTURE FOR

Quando o computador encontra a estrutura PARA, inicializa a varivel de

controlo com o primeiro valor da sequncia, de seguida executa as instrues


includas no ciclo e depois actualiza a varivel de controlo com o prximo valor
da sequncia. A execuo do ciclo termina com o ltimo valor da sequncia.

Estrutura PARA = STRUCTURE FOR

ESTRUTURA PARA
Pseudocdigo
PARA Varivel

ValorInicial AT ValorFinal FAZER

Incio
instruo1

instruon
Fim

Corpo do Ciclo

Estrutura PARA = STRUCTURE FOR


Fluxograma

Varvel

Instruo 1

Instruo n

ValorInicial At ValorFinal

Estrutura PARA = STRUCTURE FOR


14. Elabore o algoritmo que mostre no ecr, os nmeros inteiros compreendidos entre 20 e
200, includos.
a. Represente em pseudocdigo. (declare o nome do programa e as variveis).
b. Represente em fluxograma.
14. The algorithm elaborates that it shows in ecr, the numbers between 20 and 200, enclosed
ones.
a. It represents in pseudocode. (it declares the name of the program and the variable).
b. It represents in flowchart.
15. Calcular e escrever a soma dos trinta primeiros nmeros inteiros.
a. Represente em pseudocdigo. (declare o nome do programa e as variveis).
b. Represente em fluxograma.
15. To calculate and to write the addition of the thirty first numbers..
a. It represents in pseudocode. (it declares the name of the program and the variable).
b. It represents in flowchart.

Estrutura PARA = STRUCTURE FOR


Pseudocdigo

14. a. Resoluo

Programa Escrever_Numeros;
Variveis
Numero: Inteiro;
Incio
Para Numero

20 At 200 Fazer

Escrever(numero);
Fim.

Estrutura PARA = STRUCTURE FOR


Fluxograma

14. b. Resoluo

Incio

Numero

20 At 200 Fazer

Escrever( Nmero)

Fim

Estrutura PARA = STRUCTURE FOR


Pseudocdigo

15. a. Resoluo
Programa Soma_Trinta_Inteiros;
Variveis
Numero, Soma: Inteiro;
Incio
Soma

0;

Para Numero

1 At 30 Fazer

Incio
Soma

Soma + Numero;

fim;
Escrever( O resultado da soma dos trinta nmeros :, Soma);
Fim.

Estrutura PARA = STRUCTURE FOR


Fluxograma

15. b. Resoluo
Incio
Soma

Numero

Soma

1 At 30 Fazer

Soma + Numero

Escrever(Soma)

Fim

Elabore o programa que calcule a tabuada de um nmero.

Program Tabuada_dez;
Var
resultado, numero, tabuada: integer;
Begin
Writeln('qual a tabuada');
Read(tabuada);
Writeln;
Writeln;
Writeln('A tabuada do ', tabuada);
Writeln;
Writeln;
for numero :=1 to 10 Do
Begin
resultado:=tabuada * numero;
Writeln(tabuada, '*', numero,'=',resultado);
end;
End.

Estrutura PARA = STRUCTURE FOR

16. Para o exerccio 15 a, utilizar as estruturas Enquanto e Repetir.


a. Represente em pseudocdigo. (declare o nome do programa e as variveis).
b. Represente em fluxograma.
16. For exercise 15, to use the structures While and Repeat.
a. It represents in pseudocode. (it declares the name of the program and the variable).
b. It represents in flowchart.

Estrutura ENQUANTO = STRUCTURE WHILE

Pseudocdigo

16. a. Resoluo
Programa Escrever_soma_trinta_inteiros;
Variveis
Numero, Soma: Inteiro;
Incio
Soma
Numero

0;
1;

Enquanto (Numero <= 30) Fazer


Incio
Soma
Numero

Soma + Numero;
Numero + 1;

Fim;
Escrever( A soma dos inteiros entre 1 e 30 : , Soma);
Fim.

Estrutura REPETIR = STRUCTURE REPEAT


16. a. Resoluo

Pseudocdigo

Programa Soma_trinta_inteiros;
Variveis
Numero, Soma: Inteiro;
Incio
Numero
Soma

1;
0;

Repetir
Soma
Numero

Soma + Numero;
Numero + 1;

At Numero > 30;


Escrever( O resultado da soma dos primeiros trinta nmeros :, Soma)
Fim.

Faa um algoritmo para ler a base e a altura de 50 tringulos e imprimir a sua rea.
Em pseudocdigo:
Programa Triangulo;
Variaveis
Contador: Inteiro;
Base, Altura, Area :Real;
Inicio
Contador 1;
Enquanto Contador < 51 fazer
Incio
Escreva(Digite a base);
Leia (Base
Escreva(Digite a altura);
Leia (Altura)
Area (Base * Altura)/2;
Escreva( Area);
Contador Contador + 1;
Fim
Fim.

Linguagem Estruturada
Numa linguagem estruturada, como o Pascal*, os programas estruturados tm duas partes
principais diferenciadas:
Identificao do Programa
Parte Declarativa Cabealho
Identificao de dados

(Onde se declaram os tipos de dados: constantes, variveis, que se pretendem utilizar no


corpo das instrues do programa)

Parte Operativa Corpo geral do programa, as instrues com que se pretende concretizar
as operaes e atingir os objectivos visados.

* Pascal uma linguagem de programao especialmente concebida para facilitar a escrita


de programas estruturados.

Linguagem Estruturada

Estrutura de um Programa Pascal:


Program Nome;
Const
Inicio=100;
Fim=999;

Zona declarativa

Var
i,j:Integer;
Letra:char;
Begin
i:=Inicio;
j:=Fim;
Write(i,j);
End.

Zona Operativa

Em Pascal
Program triangulo;
var
Base, altura,area:real;
contador:integer;
begin
clrscr;
contador:=1;
while contador < 51 do
begin
writeln('Digite a Base');
read(base);
writeln('Digite a Altura');
read(altura);
area:=(base*altura)/2;
write('Esta a area do triangulo ');
writeln (area);
contador:=contador+1;
end;
end.

Algoritmo Salrio
Uma empresa tem para um determinado funcionrio uma ficha contendo o nome,
nmero de horas trabalhadas e o n de dependentes do funcionrio.
Considere que:
a) A empresa paga 20 euros por hora e 100 euros por dependente.
Sobre o salrio so feito descontos de 11% para a Seg. Social e 20% para IRS.
Faa um algoritmo para ler o Nome, nmero de horas trabalhadas e nmero de
dependentes do funcionrio.
No final pretende-se, que escreva o nome do funcionrio, o salrio bruto e o salrio
lquido.
a)Faa o algoritmo em pseudocdigo.
b)Faa em pascal.
c)Altere o algoritmo para cinco funcionrios.

Em pseudocdigo
Programa salario;
variaveis
Nome:string;
Numdep:inteiro;
numhora, salliq, salbruto, DescontoI, DescontoR:real;
Inicio
Escrever(Nome);
Ler(nome);
Escrever(Nmero de horas);
Ler(horas)
Escrever(Nmero de dependentes);
Ler(numdep);
salbruto (12 * horas) + (40 * dependente)
{DescontoI (salariob*0,11)
DescontoR (salariob*0,20)}
{salliq (salariob - DescontoI, DescontoR)}
Salliq Salbruto-((Salbruto*0.11)+(Salbruto*0.20));
Escrever(nome);
Escrever(salbruto:2:2);
Escrever(salliq:2:2);
Fim.

Program Salario;
Var
Nome:String;
Numhora, Salbruto, Salliq:Real;
Numdep:Integer;
Begin
Clrscr;
Writeln ('Digite O Nome do Funcionrio:');
Read (Nome);
Writeln;
Writeln ('Numero De Horas Trabalhadas:');
Read (Numhora);
Writeln;
Writeln ('E Numero de Dependentes:');
Read (Numdep);
Writeln;
Salbruto:=(20*Numhora)+(100*Numdep);
Salliq:=Salbruto-((Salbruto*0.11)+(Salbruto*0.20));
Write (Nome);
Writeln;
Writeln('Salrio Bruto:',Salbruto:2:2);
Writeln ('Salrio Liquido:,Salliq:2:2);
Readln;
End.

Em Pascal

EXERCCIO - SALRIO
Uma empresa tem para um determinado funcionrio uma ficha contendo o nome,
nmero de horas trabalhadas.
Considere que:
A empresa paga 20 euros por hora e 150 euros de bonus.
Faa um algoritmo para ler o Nome e nmero de horas.
No final pretende-se, que escreva o nome do funcionrio e o ordenado
Nota:
Se no trabalhou no tem vencimento. Se trabalhou mais de 110
horas tem o bnus de 150

a)Faa o algoritmo em pseudocdigo.


b)Faa em pascal.

Program Vencimento;
Const
Bonus=150;
Hora=20;
Var
N_horas:Integer;
Ordenado:Real;
Nome:Sring;
Begin
clrscr;
Writeln(Digite o nome do funcionrio);
Read(Nome);
Writeln('Digite o nmero de horas');
Readln(N_horas);
If N_horas>0 Then
Begin
Ordenado:=N_horas*Hora;
If N_horas>110 Then
Begin
Ordenado:=Ordenado+Bonus;
Writeln(Ordenado:8:2);
end
Else
Writeln(Ordenado:8:2);
end
Else
Writeln (' sem vencimenmto');
Writeln(Nome);
Readln
End.

EXERCCIO HABITANTES

Dado o nmero de habitantes de uma aldeia, elabore o pseudocdigo que calcule e


escreva a percentagem de mulheres e de homens.

PSEUDOCDIGO - HABITANTES

Programa Perc_habitantes_aldeia;
Var
NumHabitantes, NumMulheres, NumHomens: Inteiro;
PercMulheres, PercHomens: Real;
Incio
Escrever(Qual o nmero de habitantes da aldeia);
Ler(NumHabitantes);
Escrever(Qual o nmero de mulheres);
Ler(NumMulheres);
Escrever(Qual o nmero de homens);
Ler(NumHomens);
PercMulheres := NumMulheres / NumHabitantes* 100;
PercHomens := NumHomens /Num Habitantes * 100;
Escrever( A percentagem de mulheres : , PercMulheres);
Escrever( A percentagem de homens : , PercHomens);
Fim.

EXERCCIO APOSTAR
Supomos que nos so atribudas 100 unidades monetrias para fazer apostas num jogo.
O jogo consiste no seguinte: de cada vez que se fizer uma jogada, o programa gera aleatoriamente um
valor que pode ser 0(zero) ou 1(um);
Se o valor obtido for 0(zero), o jogador perde o que apostar;
Se for 1(um) ganha um valor igual ao da sua aposta.
O programa deve perguntar quanto queremos apostar e faz-lo dentro de um ciclo que dure enquanto o
nmero de jogadas no ultrapassar 10 e enquanto tivemos dinheiro.
No podem ser aceites apostas superiores ao dinheiro em cada momento.

a) Em Pascal

Program apostar;
Var
disponivel, aposta, aleatorio, contador:Integer;
Begin
disponivel:=100;
contador:=0;
While (disponivel>0) and (contador<10) do
Begin
Writeln('Quanto aposta');
Writeln;
Readln(aposta);
If aposta<=disponivel then
Begin
randomize; aleatorio:=random(2);
If aleatorio=1 then
Begin
Writeln('ganhou');
disponivel:=disponivel+aposta;
end
else
begin
Writeln('Perdeu');
disponivel:=disponivel-aposta;
end;
contador:=contador+1;
end;
Writeln;
Writeln('Dinheiro no momento : ',disponivel);
Writeln;
end;
Readln;
End.

randomize; aleatorio:=random(2);

Program Cores ;
Uses
Crt;
Var
Cor:Integer;
Begin
Clrscr;
cor:=0;
Repeat
Textcolor(cor);
Writeln('PASCAL');
Cor:=Cor+1;
Until cor>15;
readln;
End.

Estrutura de um Programa Pascal


Program Nome;
Uses
CRT;
Const
A=10;
Var

Se A=10.5, o Z tem
que ser declarado como
Real.

Zona Declarativa

Z : Integer;
Begin
Clrscr;
Z := 2*A;
Writeln(Ol, Bom Dia!);
Writeln;
Writeln(O valor de Z :, Z);
Readln;
End.

Zona Operativa

Você também pode gostar