Escolar Documentos
Profissional Documentos
Cultura Documentos
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).
DESVANTAGENS:
impreciso;
Clculo
Deciso
Entrada
Sada
EXEMPLO
EXPLICAO
incio
Incio do algoritmo
Entrada do Nmero
NUM
Dobro = NUM * 2
DOBRO
Fim
Apresentao do resultado
Fim do algoritmo
incio / Fim
VANTAGENS:
Uma das ferramentas mais conhecidas;
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
Linguagem mquina
Linguagem orientada para as mquinas cujas instrues podem ser
directamente utilizadas pelo computador.
PROGRAMA
Classificao de Linguagens
EXERCCIOS
INTERPRETADORES e COMPILADORES
INTERPRETADORES e COMPILADORES
Software para traduo de programas escritos em linguagens de
programao evoludas para linguagem mquina ou assembly.
INTERPRETADORES e COMPILADORES
PROCESSO DE COMPILAO
EXERCCIOS
BIT
(0 1)
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.
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
DECIMAL
0123456789
BINRIO
01
0
1
2
3
4
5
6
7
8
9
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
20 2
0 10 2
0 5 2
1 2 2
0 1
20(10) = 10100(2)
10100(2) = 20(10)
1 x 24 + 0 x 23 + 1 x 22 + 0 x 21 + 0 x 20
16
0 = 20(10)
Binary Digit
1 byte - 8 bits
1 Kbyte - 1024 bytes
BIT
01
EXERCCIOS
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.
Identificadores, so nomes que se atribuem a constantes e a variveis com que se opera dentro de um programa.
Palavras reservadas, so palavras de utilizao restrita da linguagem; o programador no pode criar variveis
e constantes com estas palavras.
STRING
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
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
Dados numricos
2
-57
32295
6,(3)
2.34E+5
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
Subtraco
Multiplicao
Diviso
Diviso Truncada
DIV
Resto da Diviso
MOD
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)
Subtraco
Multiplicao
Diviso
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
Operadores Relacionais
Igual
Diferente
<>
Menor
<
Menor ou igual
<=
Maior
>
Maior ou igual
>=
Exemplo:
Dados: 4 e 10
OPERAO
RESULTADO
10 = 4
Falso
10 <> 4
Verdadeiro
10 < 4
Falso
10 <= 4
Falso
Not (no)
Conjuno
And (E)
Disjuno
OR (ou)
Exemplo:
Dados: 3 e 5
OPERAAO
RESULTADO
Verdadeiro
Falso
< 3 OR > 5
Verdadeiro
10 <= 4
Falso
Para programao
2ab+3c
2*a*b+3*c
2(a+b)
2*(a+b)
- 4ac
2b
- 4*a*c / 2*b
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
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)]
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:
AND
AND
V
V
V
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
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
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;
FLUXOGRAMA
Incio
Valor1 = 10
Valor2 = 15
Soma
Valor1 + Valor2
Escrever(Soma)
fim
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;
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
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
Fim
SENO
Incio
Instruo 1
Instruo n
Fim
Nota: Se um dos blocos incluir mais do que uma instruo, necessrio delimit-los com as
instrues de incio e fim.
Estrutura SE
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
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
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
V OU F
V OU F
V =TRUE
F = FALSE
OPERANDO 1
OPERADOR
OPERANDO 2
RESULTADO
V (TRUE)
AND (E)
AND (E)
F (FALSE)
AND (E)
AND (E)
Estrutura SE
EXERCCIOS
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;
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;
Cabealho
Const
Inicio=100;
Fim=999;
Zona declarativa
Var
i,j:Integer;
Begin
i:=Inicio;
j:=Fim;
Write(i,j);
End.
Zona Operativa
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
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
...
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
...
Incio
Escrever(digite um caracter);
Ler(caracter);
Caso caracter de
A .. D : escrever( ABCD);
E .. H : escrever( EFGH);
I .. K : escrever( IJLK);
fim;
Fim.
BASEADAS
NUMA CONDIO
(BASED IN A CONDITION)
ENQUANTO FAZER
(WHILE DO)
UTILIZANDO UM CONTADOR
(USING AN ACCOUNTANT)
PARA AT FAZER
(FOR TO DO)
REPETIR AT
(REPEAT UNTIL)
Corpo do Ciclo
instruon
fim
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:
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.
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;
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
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.
Pseudocdigo
11. a. Resoluo
Programa Escrever_mumeros_inteiros;
Variveis
Numero: Inteiro;
Exerccio:
Incio
Numero
20;
Numero + 1; *
Fim;
Fim.
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.
Pseudocdigo
Programa Escrever_soma_mumeros_inteiros;
Variveis
Numero, Soma: Inteiro;
Incio
Soma
Numero
0; *
20;
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.
11. b. Resoluo
Fluxograma
Incio
Numero
20
Numero
<=
200
S
Escrever
Numero
Numero
Numero + 1
fim
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
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
Pseudocdigo
PARA Varivel
Incio
instruo1
instruon
Fim
Corpo do Ciclo
Varvel
Instruo 1
Instruo n
ValorInicial At ValorFinal
14. a. Resoluo
Programa Escrever_Numeros;
Variveis
Numero: Inteiro;
Incio
Para Numero
20 At 200 Fazer
Escrever(numero);
Fim.
14. b. Resoluo
Incio
Numero
20 At 200 Fazer
Escrever( Nmero)
Fim
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.
15. b. Resoluo
Incio
Soma
Numero
Soma
1 At 30 Fazer
Soma + Numero
Escrever(Soma)
Fim
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.
Pseudocdigo
16. a. Resoluo
Programa Escrever_soma_trinta_inteiros;
Variveis
Numero, Soma: Inteiro;
Incio
Soma
Numero
0;
1;
Soma + Numero;
Numero + 1;
Fim;
Escrever( A soma dos inteiros entre 1 e 30 : , Soma);
Fim.
Pseudocdigo
Programa Soma_trinta_inteiros;
Variveis
Numero, Soma: Inteiro;
Incio
Numero
Soma
1;
0;
Repetir
Soma
Numero
Soma + Numero;
Numero + 1;
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
Parte Operativa Corpo geral do programa, as instrues com que se pretende concretizar
as operaes e atingir os objectivos visados.
Linguagem Estruturada
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
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
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.
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