Beruflich Dokumente
Kultur Dokumente
1 - Informações gerais
1.1 - Base tecnológica para o ensino de lógica de programação
A base tecnológica da lógica de programação para computadores, normalmente é ministrada em vários cursos da área de Tecnologia
da Informação ou Computação, seja em nível técnico (cursos técnicos para formação de programadores em nível médio), nível
tecnológico (cursos de nível superior para formação de analistas de sistemas), bacharelado (cursos de nível superior, como Sistemas
de Informação, Ciência da Computação, Engenharia da Computação, mais recentemente Engenharia de Software, entre outros), não se
esquecendo dos cursos de treinamento empresarial e cursos livres, com algumas denominações diferentes, a saber:
4 Algoritmos e Lógica de Programação;
4 Algoritmos e Pseudocódigos;
4 Algoritmos;
4 Lógica Computacional;
4 Lógica de Programação de Computadores;
4 Lógica de Programação;
4 Lógica;
4 Técnicas de Programação - Lógica;
4 Estudo de Algoritmos Computacionais;
4 Introdução à Lógica de Programação;
4 Introdução ao Algoritmo;
4 Linguagem e Técnica de Programação;
4 Lógica Aplicada à Programação de Computadores;
4 Lógica de Programação - Algoritmos;
4 Técnicas Básicas de Programação de Computadores;
4 Técnicas de Programação - Algoritmos;
4 Entre outras possíveis denominações.
Independentemente da nomenclatura utilizada para designá-la, fica evidente a necessidade de desenvolver as habilidades de raciocínio
lógico aplicado à programação de computadores, por meio da utilização e implementação de algoritmos computacionais. Nesse sentido,
a obra a qual este gabarito pertence busca atender seu público, respeitando as estruturas definidas para o desenvolvimento da
programação de computadores de acordo com a norma internacional ISO 5807:1985 no tocante à elaboração dos desenhos dos
diagramas de blocos (e não fluxogramas, mesmo quando adaptados) e com as estruturas da técnica de documentação de código de
programa PDL (Program Design Language) propostas por Caine e Gordon em 1975 quando da publicação de um artigo na American
Federation of Information Processing Societies, que serve de inspiração para a elaboração e escrita dos algoritmos expressos em
português estruturado.
f) Diagrama de bloco
Português estruturado Este programa também pode ser escrito da Este programa também pode ser escrito da
seguinte forma: seguinte forma:
programa C03EX3Z
var
VALOR, SUCESSOR, ANTECESSOR : inteiro
início
leia VALOR
SUCESSOR ¬ VALOR + 1
ANTECESSOR ¬ VALOR - 1
escreva SUCESSOR, ANTECESSOR
fim
14 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores
Português estruturado Este programa poderá ser escrito da seguinte forma, mas o
primeiro estilo é mais adequado:
programa C04EX3A1
var programa C04EX3A2
A, B, DIF : inteiro var
início A, B, DIF : inteiro
leia A, B início
se (A > B) então leia A, B
DIF ¬ A - B se (B > A) então
senão DIF ¬ B - A
DIF ¬ B - A senão
fim_se DIF ¬ A - B
escreva DIF fim_se
fim escreva DIF
fim
b) Diagrama de blocos
16 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores
Português estruturado Este programa poderá ser escrito da seguinte forma, mas o primeiro
estilo é mais adequado:
programa C04EX3B1
var programa C04EX3B2
N, R : inteiro var
início
N : inteiro
leia N início
se (N < 0) então leia N
R ¬ N * (-1) se (N < 0) então
senão N ¬ N * (-1)
R ¬ N fim_se
fim_se escreva N
escreva R fim
fim
Um ponto a ser observado neste exercício é a necessidade de extrair a raiz quadrada de D (delta), que está sendo representado pela
variável D. Muitos alunos esquecem-se de que para extrair uma raiz quadrada de um número, basta elevá-lo ao inverso de seu índice.
Ao se considerar a extração da raiz quadrada de D, basta fazer D (1/2) ou D 0.5. Essa forma de extração de raiz torna-se
adequada por proporcionar ao aluno a visão necessária para extrair raízes de qualquer outro índice. Assim sendo, para uma raiz
cúbica, basta elevar a 1/3; para uma raiz de índice quatro, basta elevar a 1/4 e assim por diante.
e) Diagrama de bloco
Português estruturado
programa C04EX3E
var
A, B, C, D, X, X1, X2 : real
início
leia A, B, C
se (A = 0) .e. (B = 0) .e. (C = 0) então
escreva "Não é uma equação completa de segundo grau."
senão
D ¬ B 2 - 4 * A * C
se (D = 0) então
X ¬ -B / (2 * A)
escreva X
senão
se (D > 0) então
X1 ¬ (-B + D (1 / 2)) / (2 * A)
X2 ¬ (-B - D (1 / 2)) / (2 * A)
escreva X1, X2
senão
escreva "Não existem raízes reais."
fim_se
fim_se
fim_se
fim
18 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores
i) Diagrama de blocos
Português estruturado
programa C04EX3I
var
A, B, C, D, E, VALOR_MAIOR, VALOR_MENOR : inteiro
início
leia A, B, C, D, E
VALOR_MAIOR ¬ A
se (VALOR_MAIOR < B) então
VALOR_MAIOR ¬ B
fim_se
se (VALOR_MAIOR < C) então
VALOR_MAIOR ¬ C
fim_se
se (VALOR_MAIOR < D) então
VALOR_MAIOR ¬ D
fim_se
se (VALOR_MAIOR < E) então
VALOR_MAIOR ¬ E
fim_se
VALOR_MENOR ¬ A
se (VALOR_MENOR > B) então
VALOR_MENOR ¬ B
22 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores
fim_se
se (VALOR_MENOR > C) então
VALOR_MENOR ¬ C
fim_se
se (VALOR_MENOR > D) então
VALOR_MENOR ¬ D
fim_se
se (VALOR_MENOR > E) então
VALOR_MENOR ¬ E
fim_se
escreva VALOR_MAIOR, VALOR_MENOR
fim
programa C05EX2T
var
I : inteiro
início
I ¬ 15
até_seja (I <= 200) efetue
escreva I 2
I ¬ I + 3
fim_até_seja
fim
programa C05EX3T
var
I : inteiro
início
I ¬ 15
repita
escreva I 2
I ¬ I + 3
até_que (I > 200)
fim
programa C05EX4E
var
I, RESTO : inteiro
início
I ¬ 0
execute
RESTO ¬ I - 2 * (I div 2)
se (RESTO <> 0) então
escreva I
fim_se
I ¬ I + 1
enquanto_for (I <= 20)
fim
64 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores
programa C05EX4T
var
I : inteiro
início
I ¬ 15
execute
escreva I 2
I ¬ I + 3
enquanto_for (I <= 200)
fim
programa C05EX5T
var
I : inteiro
início
I ¬ 15
laço
escreva I 2
saia_caso (I >= 200)
I ¬ I + 3
fim_laço
fim
n) Não é possível resolver este exercício com este tipo de laço de repetição.
q) Não é possível resolver este exercício com esse tipo de laço de repetição.
r) Não é possível resolver este exercício com esse tipo de laço de repetição.
s) Não é possível resolver este exercício com esse tipo de laço de repetição.
programa C05EX6T
var
I : inteiro
início
para I de 15 até 200 passo 3 faça
escreva I 2
fim_para
fim
93
b) Diagrama de blocos
111
Português Estruturado
programa C07EX1B
var
A, B : conjunto[1..8] de inteiro
I, J, X, COMEÇO, FINAL, MEIO, PESQ : inteiro
RESP : cadeia
ACHA : lógico
início
para I de 1 até 8 passo 1 faça
leia A[I]
fim_para
para I de 1 até 8 passo 1 faça
B[I] ¬ A[I] * 5
fim_para
para I de 1 até 7 passo 1 faça
para J de I + 1 até 8 passo 1 faça
se (B[I] > B[J]) então
X ¬ B[I]
B[I] ¬ B[J]
B[J] ¬ X
fim_se
fim_para
fim_para
RESP ¬ "SIM"
enquanto (RESP = "SIM") faça
leia PESQ
COMEÇO ¬ 1
FINAL ¬ 8
ACHA ¬ .Falso.
enquanto (COMEÇO <= FINAL) .e. (ACHA = .Falso) faça
MEIO ¬ (COMEÇO + FINAL) div 2
se (PESQ = B[MEIO]) então
ACHA ¬ .Verdadeiro.
senão
se (PESQ < B[MEIO]) então
FINAL ¬ MEIO - 1
senão
COMEÇO ¬ MEIO + 1
fim_se
fim_se
fim_enquanto
se (ACHA = .Verdadeiro.) então
escreva PESQ, " foi localizado na posição ", MEIO
senão
escreva PESQ, " não foi localizado"
fim_se
leia RESP
fim_enquanto
fim
112 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores
d) Diagrama de blocos
114 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores
Português Estruturado
programa C07EX1D
var
A, B, C : conjunto[1..12] de real
I, J : inteiro
X : real
início
fim
115
g) Diagrama de blocos
118 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores
Português Estruturado
programa C07EX1G
var
A, B : conjunto[1..20] de inteiro
I, J, X, COMEÇO, FINAL, MEIO, PESQ : inteiro
RESP : cadeia
ACHA : lógico
início
para I de 1 até 20 passo 1 faça
leia A[I]
fim_para
para I de 1 até 20 passo 1 faça
B[I] ¬ A[I] + 2
fim_para
para I de 1 até 19 passo 1 faça
para J de I + 1 até 20 passo 1 faça
se (B[I] > B[J]) então
X ¬ B[I]
B[I] ¬ B[J]
B[J] ¬ X
fim_se
fim_para
fim_para
RESP ¬ "SIM"
enquanto (RESP = "SIM") faça
leia PESQ
COMEÇO ¬ 1
FINAL ¬ 20
ACHA ¬ .Falso.
enquanto (COMEÇO <= FINAL) .e. (ACHA = .Falso) faça
MEIO ¬ (COMEÇO + FINAL) div 2
se (PESQ = B[MEIO]) então
ACHA ¬ .Verdadeiro.
senão
se (PESQ < B[MEIO]) então
FINAL ¬ MEIO - 1
senão
COMEÇO ¬ MEIO + 1
fim_se
fim_se
fim_enquanto
se (ACHA = .Verdadeiro.) então
escreva PESQ, " foi localizado na posição ", MEIO
senão
escreva PESQ, " não foi localizado"
fim_se
leia RESP
fim_enquanto
fim
119
j) Diagrama de blocos
Português Estruturado
programa C07EX1J
var
A, B, C, D, E : conjunto[1..15] de inteiro
I, J, X : inteiro
início
para I de 1 até 15 passo 1 faça
leia A[I]
fim_para
para I de 1 até 15 passo 1 faça
leia B[I]
fim_para
para I de 1 até 15 passo 1 faça
C[I] ¬ 0
para J de 1 até A[I] passo 1 faça
C[I] ¬ C[I] + J
122 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores
fim_para
D[I] ¬ 1
para J de 1 até B[I] passo 1 faça
D[I] ¬ D[I] * J
fim_para
E[I] ¬ (C[I] + D[I]) - (A[I] + B[I])
fim_para
para I de 1 até 14 passo 1 faça
para J de I + 1 até 15 passo 1 faça
se (E[I] > E[J]) então
X ¬ E[I]
E[I] ¬ E[J]
E[J] ¬ X
fim_se
fim_para
fim_para
para I de 1 até 15 passo 1 faça
escreva E[I]
fim_para
fim
k) Diagrama de blocos
Português estruturado
programa C07EX1K
var
A, B, C : conjunto[1..10] de inteiro
I, J : inteiro
início
para I de 1 até 10 passo 1 faça
leia A[I]
fim_para
para I de 1 até 10 passo 1 faça
leia B[I]
fim_para
para I de 1 até 10 passo 1 faça
C[I] ¬ A[I] 2 + B[I] 2
fim_para
para I de 1 até 9 passo 1 faça
para J de I + 1 até 10 passo 1 faça
123
l) Diagrama de blocos
Português Estruturado
programa C07EX1L
var
A, B, C, D : conjunto[1..15] de real
I, J : inteiro
X : real
início
para I de 1 até 15 passo 1 faça
leia A[I]
fim_para
para I de 1 até 15 passo 1 faça
leia B[I]
fim_para
para I de 1 até 15 passo 1 faça
leia C[I]
fim_para
para I de 1 até 15 passo 1 faça
D[I] ¬ (A[I] + B[I] + C[I]) 3
fim_para
para I de 1 até 14 passo 1 faça
para J de I + 1 até 15 passo 1 faça
se (D[I] > D[J]) então
X ¬ D[I]
D[I] ¬ D[J]
D[J] ¬ X
fim_se
fim_para
fim_para
para I de 1 até 15 passo 1 faça
escreva D[I]
fim_para
fim
124 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores
m) Diagrama de blocos
Português Estruturado
´
programa C07EX1M
var
A, B, C : conjunto[1..12] de real
I : inteiro
PESQ : real
RESP : cadeia
ACHA : lógico
início
para I de 1 até 12 passo 1 faça
leia A[I]
fim_para
para I de 1 até 12 passo 1 faça
leia B[I]
fim_para
para I de 1 até 12 passo 1 faça
C[I] ¬ A[I] * B[I]
fim_para
RESP ¬ "SIM"
enquanto (RESP = "SIM") faça
leia PESQ
I ¬ 1
ACHA ¬ .Falso.
enquanto (I <= 12) .e. (ACHA = .Falso.) faça
125
n) Diagrama de blocos
126 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores
127
Português Estruturado
programa C07EX1N
var
A, B, C, D : conjunto[1..15] de inteiro
I, J, X, COMEÇO, FINAL, MEIO, PESQ : inteiro
RESP : cadeia
ACHA : lógico
início
para I de 1 até 15 passo 1 faça
leia A[I]
fim_para
para I de 1 até 15 passo 1 faça
leia B[I]
fim_para
para I de 1 até 15 passo 1 faça
leia C[I]
fim_para
para I de 1 até 15 passo 1 faça
D[I] ¬ A[I] + B[I] + C[I]
fim_para
para I de 1 até 14 passo 1 faça
para J de I + 1 até 15 passo 1 faça
se (D[I] > D[J]) então
X ¬ D[I]
D[I] ¬ D[J]
D[J] ¬ X
fim_se
fim_para
fim_para
RESP ¬ "SIM"
enquanto (RESP = "SIM") faça
leia PESQ
COMEÇO ¬ 1
FINAL ¬ 15
ACHA ¬ .Falso.
enquanto (COMEÇO <= FINAL) .e. (ACHA = .Falso.) faça
MEIO ¬ (COMEÇO + FINAL) div 2
se (PESQ = D[MEIO]) então
ACHA ¬ .Verdadeiro.
senão
se (PESQ < D[MEIO]) então
FINAL ¬ MEIO - 1
senão
COMEÇO ¬ MEIO + 1
fim_se
fim_se
fim_enquanto
se (ACHA = .Verdadeiro.) então
escreva PESQ, " foi localizado na posição ", MEIO
senão
escreva PESQ, " não foi localizado"
fim_se
leia RESP
fim_enquanto
fim
128 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores
o) Diagrama de blocos
129
Português Estruturado
programa C07EX1O
var
A : conjunto[1..15] de inteiro
I, J, X, COMEÇO, FINAL, MEIO, PESQ : inteiro
RESP : cadeia
ACHA : lógico
início
para I de 1 até 15 passo 1 faça
leia A[I]
fim_para
para I de 1 até 14 passo 1 faça
para J de I + 1 até 15 passo 1 faça
se (A[I] > A[J]) então
X ¬ A[I]
A[I] ¬ A[J]
A[J] ¬ X
fim_se
fim_para
fim_para
RESP ¬ "SIM"
enquanto (RESP = "SIM") faça
leia PESQ
COMEÇO ¬ 1
FINAL ¬ 15
ACHA ¬ .Falso.
enquanto (COMEÇO <= FINAL) .e. (ACHA = .Falso) faça
MEIO ¬ (COMEÇO + FINAL) div 2
se (PESQ = A[MEIO]) então
ACHA ¬ .Verdadeiro.
senão
se (PESQ < A[MEIO]) então
FINAL ¬ MEIO - 1
senão
COMEÇO ¬ MEIO + 1
fim_se
fim_se
fim_enquanto
se (ACHA = .Verdadeiro.) então
escreva PESQ, " foi localizado na posição ", MEIO
senão
escreva PESQ, " não foi localizado"
fim_se
leia RESP
fim_enquanto
fim
130 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores
p) Diagrama de blocos
Português Estruturado
programa C07EX1P
var
A, B : conjunto[1..10] de cadeia
I, J : inteiro
X : cadeia
início
para I de 1 até 10 passo 1 faça
leia A[I]
fim_para
para I de 1 até 10 passo 1 faça
B[I] ¬A[11 – I]
fim_para
para I de 1 até 14 passo 1 faça
para J de I + 1 até 15 passo 1 faça
se (B[I] > B[J]) então
X ¬ B[I]
B[I] ¬ B[J]
B[J] ¬ X
fim_se
fim_para
fim_para
para I de 1 até 10 passo 1 faça
escreva B[I]
fim_para
fim
131
q) Diagramas de blocos
132 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores
Português estruturado
programa C07EX1Q
var
A : conjunto[1..15] de cadeia
I, J, COMEÇO, FINAL, MEIO, PESQ : inteiro
RESP : cadeia
X : cadeia
ACHA : lógico
início
para I de 1 até 15 passo 1 faça
leia A[I]
fim_para
para I de 1 até 14 passo 1 faça
para J de I + 1 até 15 passo 1 faça
se (A[I] > A[J]) então
X ¬ A[I]
A[I] ¬ A[J]
A[J] ¬ X
fim_se
fim_para
fim_para
RESP ¬ "SIM"
enquanto (RESP = "SIM") faça
leia PESQ
COMEÇO ¬ 1
FINAL ¬ 15
ACHA ¬ .Falso.
enquanto (COMEÇO <= FINAL) .e. (ACHA = .Falso) faça
MEIO ¬ (COMEÇO + FINAL) div 2
se (PESQ = A[MEIO]) então
ACHA ¬ .Verdadeiro.
senão
se (PESQ < A[MEIO]) então
FINAL ¬ MEIO - 1
senão
COMEÇO ¬ MEIO + 1
fim_se
fim_se
fim_enquanto
se (ACHA = .Verdadeiro.) então
escreva PESQ, " foi localizado na posição ", MEIO
senão
escreva PESQ, " não foi localizado"
fim_’se
leia RESP
fim_enquanto
fim
133
i) Diagrama de blocos
143
Português Estruturado
programa C08EX1I
var
A, B : conjunto[1..7,1..7] de inteiro
I, J, K, RI, RJ : inteiro
início
para I de 1 até 7 passo 1 faça
para J de 1 até 7 passo 1 faça
leia A[I,J]
fim_para
fim_para
para I de 1 até 7 passo 1 faça
para J de 1 até 7 passo 1 faça
se (I = J) então
RI ¬ I - 2 * (I div 2)
RJ ¬ J - 2 * (J div 2)
se (RI = 1) .e. (RJ = 1) então
B[I,J] ¬ 1
para K de 1 até A[I,J] passo 1 faça
B[I,J] ¬ B[I,J] * K
fim_para
senão
B[I,J] ¬ 0
para K de 1 até A[I,J] passo 1 faça
B[I,J] ¬ B[I,J] + K
fim_para
fim_se
senão
B[I,J] ¬ 0
para K de 1 até A[I,J] passo 1 faça
B[I,J] ¬ B[I,J] + K
fim_para
fim_se
fim_para
fim_para
para I de 1 até 7 passo 1 faça
para J de 1 até 7 passo 1 faça
escreva B[I,J]
fim_para
fim_para
fim
144 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores
Diagrama de blocos
158 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores
Português estruturado
programa C09EX1
tipo
Dados = registro
NOME : cadeia
ENDEREÇO : cadeia
TELEFONE : cadeia
fim_registro
var
AGENDA : conjunto[1..10] de Dados
X : Dados
I, J, OPÇÃO : inteiro
ACHA : lógico
PESQ : cadeia
início
OPÇÃO ¬ 0
enquanto (OPÇÃO <> 5) faça
escreva "1 - Cadastrar"
escreva "2 - Pesquisar"
escreva "3 - Classificar"
escreva "4 - Apresentar"
escreva "5 - Fim"
leia OPÇÃO
se (OPÇÃO = 1) então
para I de 1 até 10 passo 1 faça
leia AGENDA[I].NOME
leia AGENDA[I].ENDEREÇO
leia AGENDA[I].TELEFONE
fim_para
fim_se
se (OPÇÃO = 2) então
leia PESQ
I ¬ 1
ACHA ¬ .Falso.
enquanto (I <= 10) .e. (ACHA = .Falso.) faça
se (PESQ = AGENDA[I].NOME) então
ACHA ¬ .Verdadeiro.
senão
I ¬ I + 1
fim_se
fim_enquanto
se (ACHA = .Verdadeiro.) então
escreva AGENDA[I].NOME
escreva AGENDA[I].ENDEREÇO
escreva AGENDA[I].TELEFONE
senão
escreva "Registro Inexistente"
fim_se
fim_se
se (OPÇÃO = 3) então
para I de 1 até 9 passo 1 faça
para J de I+1 até 10 passo 1 faça
se (AGENDA[I].NOME > AGENDA[J].NOME) então
X ¬ AGENDA[I]
AGENDA[I] ¬ AGENDA[J]
AGENDA[J] ¬ X
fim_se
fim_para
fim_para
fim_se
se (OPÇÃO = 4) então
para I de 1 até 10 passo 1 faça
escreva AGENDA[I].NOME
escreva AGENDA[I].ENDEREÇO
escreva AGENDA[I].TELEFONE
fim_para
fim_se
fim_enquanto
fim
159
Português Estruturado
programa C09EX2
tipo
Dados = registro
NOME : cadeia
NOTA : conjunto[1..4] de real
fim_registro
var
ALUNO : conjunto[1..20] de Dados
X : Dados
I, J, OPÇÃO, COMEÇO, FINAL, MEIO : inteiro
SOMAR, MÉDIA : real
ACHA : lógico
PESQ : cadeia
início
OPÇÃO ¬ 0
enquanto (OPÇÃO <> 4) faça
escreva "1 - Cadastrar"
escreva "2 - Pesquisar"
escreva "3 - Apresentar"
escreva "4 - fim"
leia OPÇÃO
se (OPÇÃO = 1) então
para I de 1 até 20 passo 1 faça
leia ALUNO[I].NOME
para J de 1 até 4 passo 1 faça
leia ALUNO[I].NOTA[J]
162 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores
fim_para
fim_para
para I de 1 até 19 passo 1 faça
para J de I+1 até 20 passo 1 faça
se (ALUNO[I].NOME > ALUNO[J].NOME) então
X ¬ ALUNO[I]
ALUNO[I] ¬ ALUNO[J]
ALUNO[J] ¬ X
fim_se
fim_para
fim_para
fim_se
se (OPÇÃO = 2) então
leia PESQ
COMEÇO ¬ 1
FINAL ¬ 20
ACHA ¬ .Falso.
enquanto (COMEÇO <= FINAL) .e. (ACHA = .Falso.) faça
MEIO ¬ (COMEÇO + FINAL) div 2
se (PESQ = ALUNO[MEIO].NOME) então
ACHA ¬ .Verdadeiro.
senão
se (PESQ < ALUNO[MEIO].NOME) então
FINAL ¬ MEIO - 1
senão
COMECO ¬ MEIO + 1
fim_se
fim_se
fim_enquanto
se (ACHA = .Verdadeiro.) então
SOMAR ¬ 0
escreva ALUNO[MEIO].NOME
para I de 1 até 4 passo 1 faça
escreva ALUNO[MEIO].NOTA[I]
SOMAR ¬ SOMAR + ALUNO[MEIO].NOTA[I]
fim_se
MÉDIA ¬ SOMAR / 4
escreva MÉDIA
se (MÉDIA >= 5) então
escreva "Aprovado"
senão
escreva "Reprovado"
fim_se
senão
escreva "Registro Inexistente"
fim_se
fim_se
se (OPÇÃO = 3) então
para I de 1 até 20 passo 1 faça
SOMAR ¬ 0
escreva ALUNO[I].NOME
para J de 1 até 4 passo 1 faça
escreva ALUNO[I].NOTA[J]
SOMAR ¬ SOMAR + ALUNO[I].NOTA[J]
fim_para
MEDIA ¬ SOMAR / 4
escreva MÉDIA
se (MÉDIA >= 5) então
escreva "Aprovado"
senão
escreva "Reprovado"
fim_se
fim_para
fim_se
fim_enquanto
fim
163
Diagrama de Blocos
164 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores
165
Português estruturado
programa C09EX3
tipo
Dados = registro
NOME : cadeia
ALTURA : real
fim_registro
var
PESSOA : conjunto[1..15] de Dados
I, J, OPÇÃO : inteiro
SOMAR, MÉDIA : real
início
OPÇÃO ¬ 0
enquanto (OPÇÃO <> 6) faça
escreva "1 - Cadastrar"
escreva "2 - Apresentar <= 1.5"
escreva "3 - Apresentar > 1.5"
escreva "4 - Apresentar > 1.5 e < 2.0"
escreva "5 - Apresentar tudo"
escreva "6 - Fim"
leia OPÇÃO
se (OPÇÃO = 1) então
para I de 1 até 15 passo 1 faça
leia PESSOA[I].NOME
leia PESSOA[I].ALTURA
fim_para
fim_se
se (OPÇÃO = 2) então
para I de 1 até 15 passo 1 faça
se (PESSOA[I].ALTURA <= 1.5) então
escreva PESSOA[I].NOME
escreva PESSOA[I].ALTURA
fim_se
fim_para
fim_se
se (OPÇÃO = 3) então
para I de 1 até 15 passo 1 faça
se (PESSOA[I].ALTURA > 1.5) então
escreva PESSOA[I].NOME
escreva PESSOA[I].ALTURA
fim_se
fim_para
fim_se
se (OPÇÃO = 4) então
para I de 1 até 15 passo 1 faça
se (PESSOA[I].ALTURA > 1.5) .e. (PESSOA[I].ALTURA < 2) então
escreva PESSOA[I].NOME
escreva PESSOA[I].ALTURA
fim_se
fim_para
fim_se
se (OPÇÃO = 5) então
Somar ¬ 0
para I de 1 até 15 passo 1 faça
escreva PESSOA[I].NOME
escreva PESSOA[I].ALTURA
SOMAR ¬ SOMAR + PESSOA[I].ALTURA
fim_para
MÉDIA ¬ SOMAR / 15
escreva MÉDIA
fim_se
fim_enquanto
fim
166 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores
Diagrama de Blocos
167
168 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores
169
Português Estruturado
programa C09EX4
tipo
Dados = registro
MATRICULA : inteiro
NOME : cadeia
SALÁRIO : real
fim_registro
var
FUNC : conjunto[1..20] de Dados
X : Dados
I, J, OPÇÃO, COMEÇO, FINAL, MEIO : inteiro
ACHA : lógico
PESQ : inteiro
início
OPÇÃO ¬ 0
enquanto (OPÇÃO <> 7) faça
escreva "1 - Cadastrar"
escreva "2 - Classificar"
escreva "3 - Pesquisar"
escreva "4 - Apresentar salários > 1000"
escreva "5 - Apresentar salários < 1000"
escreva "6 - Apresentar salários = 1000"
escreva "7 - Fim"
leia OPÇÃO
se (OPÇÃO = 1) então
para I de 1 até 20 passo 1 faça
leia FUNC[I].MATRICULA
leia FUNC[I].NOME
leia FUNC[I].SALÁRIO
fim_para
fim_se
se (OPÇÃO = 2) então
para I de 1 até 19 passo 1 faça
para J de I+1 até 20 passo 1 faça
se (FUNC[I].MATRICULA > FUNC[J].MATRICULA) então
X ¬ FUNC[I]
FUNC[I] ¬ FUNC[J]
FUNC[J] ¬ X
fim_se
fim_para
fim_para
fim_se
se (OPÇÃO = 3) então
leia PESQ
COMEÇO ¬ 1
FINAL ¬ 20
ACHA ¬ .Falso.
enquanto (COMEÇO <= FINAL) .e. (ACHA = .Falso.) faça
MEIO ¬ (COMEÇO + FINAL) div 2
se (PESQ = FUNC[MEIO].MATRICULA) então
ACHA ¬ .Verdadeiro.
senão
se (PESQ < FUNC[MEIO].MATRICULA) então
FINAL ¬ MEIO - 1
senão
COMECO ¬ MEIO + 1
fim_se
fim_se
fim_enquanto
se (ACHA = .Verdadeiro.) então
escreva FUNC[MEIO].MATRICULA
escreva FUNC[MEIO].NOME
escreva FUNC[MEIO].SALÁRIO
senão
escreva "Registro Inexistente"
fim_se
fim_se
se (OPCAO = 4) então
para I de 1 até 20 passo 1 faça
se (FUNC[I].SALÁRIO > 1000) então
escreva FUNC[I].MATRICULA
escreva FUNC[I].NOME
escreva FUNC[I].SALÁRIO
fim_se
fim_para
fim_se
170 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores
se (OPCAO = 5) então
para I de 1 até 20 passo 1 faça
se (FUNC[I].SALÁRIO < 1000) então
escreva FUNC[I].MATRICULA
escreva FUNC[I].NOME
escreva FUNC[I].SALÁRIO
fim_se
fim_para
fim_se
se (OPCAO = 6) então
para I de 1 até 20 passo 1 faça
se (FUNC[I].SALÁRIO = 1000) então
escreva FUNC[I].MATRICULA
escreva FUNC[I].NOME
escreva FUNC[I].SALÁRIO
fim_se
fim_para
fim_se
fim_enquanto
fim
171
a) Diagramas de Blocos
172 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores
Português Estruturado
programa C10EX1A
tipo
Dados = registro
NOME : cadeia
ENDEREÇO : cadeia
TELEFONE : cadeia
fim_registro
var
AGENDA : conjunto[1..10] de Dados
procedimento Cadastrar
var
I : inteiro
início
para I de 1 até 10 passo 1 faça
leia AGENDA[I].NOME
leia AGENDA[I].ENDEREÇO
leia AGENDA[I].TELEFONE
173
fim_para
fim
procedimento Pesquisar
var
ACHA : lógico
PESQ : cadeia
I, J : inteiro
início
leia PESQ
I ¬ 1
ACHA ¬ .Falso.
enquanto (I <= 10) .e. (ACHA = .Falso.) faça
se (PESQ = AGENDA[I].NOME) então
ACHA ¬ .Verdadeiro.
senão
I ¬ I + 1
fim_se
fim_enquanto
se (ACHA = .Verdadeiro.) então
escreva AGENDA[I].NOME
escreva AGENDA[I].ENDEREÇO
escreva AGENDA[I].TELEFONE
senão
escreva “Registro Inexistente”
fim_se
fim
procedimento Classificar
var
X : Dados
I, J : inteiro
início
para I de 1 até 9 passo 1 faça
para J de I+1 até 10 passo 1 faça
se (AGENDA[I].NOME > AGENDA[J].NOME) então
X ¬ AGENDA[I]
AGENDA[I] ¬ AGENDA[J]
AGENDA[J] ¬ X
fim_se
fim_para
fim_para
fim
procedimento Apresentar
var
I : inteiro
início
para I de 1 até 10 passo 1 faça
escreva AGENDA[I].NOME
escreva AGENDA[I].ENDEREÇO
escreva AGENDA[I].TELEFONE
fim_para
fim
var
OPÇÃO : inteiro
início
OPÇÃO ¬ 0
enquanto (OPÇÃO <> 5) faça
escreva "1 - Cadastrar"
escreva "2 - Pesquisar"
escreva "3 - Classificar"
escreva "4 - Apresentar"
escreva "5 - Fim"
leia OPÇÃO
se (OPÇÃO <> 5) então
caso OPÇÃO
seja 1 faça Cadastrar
seja 2 faça Pesquisar
seja 3 faça Classificar
seja 4 faça Apresentar
senão
escreva "Opção inválida - Tente novamente"
fim_caso
fim_se
fim_enquanto
fim
174 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores
b) Diagramas de Blocos
175
176 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores
Português Estruturado
programa C10EX1B
tipo
Dados = registro
NOME : cadeia
NOTA : conjunto[1..4] de real
MÉDIA : real
fim_registro
var
ALUNO : conjunto[1..20] de Dados
procedimento Cadastrar
var
I, J : inteiro
SOMAR : real
X : Dados
início
para I de 1 até 20 passo 1 faça
SOMAR ¬ 0
leia ALUNO[I].NOME
para J de 1 até 4 passo 1 faça
leia ALUNO[I].NOTA[J]
SOMAR ¬ SOMAR + ALUNO[I].NOTA[J]
fim_para
ALUNO[I].MEDIA ¬ SOMAR / 4
177
fim_para
para I de 1 até 19 passo 1 faça
para J de I+1 até 20 passo 1 faça
se (ALUNO[I].NOME > ALUNO[J].NOME) então
X ¬ ALUNO[I]
ALUNO[I] ¬ ALUNO[J]
ALUNO[J] ¬ X
fim_se
fim_para
fim_para
fim
procedimento Pesquisar
var
I, COMEÇO, FINAL, MEIO : inteiro
ACHA : lógico
PESQ: cadeia
início
leia PESQ
COMEÇO ¬ 1
FINAL ¬ 20
ACHA ¬ .Falso.
enquanto (COMEÇO <= FINAL) .e. (ACHA = .Falso.) faça
MEIO ¬ (COMEÇO + FINAL) div 2
se (PESQ = ALUNO[MEIO].NOME) então
ACHA ¬ .Verdadeiro.
senão
se (PESQ < ALUNO[MEIO].NOME) então
FINAL ¬ MEIO - 1
senão
COMEÇO ¬ MEIO + 1
fim_se
fim_se
fim_enquanto
se (ACHA = .Verdadeiro.) então
escreva ALUNO[MEIO].NOME
para I de 1 até 4 passo 1 faça
escreva ALUNO[MEIO].NOTA[I]
fim_se
escreva ALUNO[MEIO].MÉDIA
se (ALUNO[MEIO].MÉDIA >= 5) então
escreva "Aprovado"
senão
escreva "Reprovado"
fim_se
senão
escreva "registro Inexistente"
fim_se
fim
procedimento Todos
var
I, J : inteiro
início
para I de 1 até 20 passo 1 faça
escreva ALUNO[I].NOME
para J de 1 até 4 passo 1 faça
escreva ALUNO[I].NOTA[J]
fim_para
escreva ALUNO[I].MÉDIA
se (ALUNO[I].MÉDIA >= 5) então
escreva "Aprovado"
senão
escreva "Reprovado"
fim_se
fim_para
fim
procedimento Aprovados
var
I, J : inteiro
início
para I de 1 até 20 passo 1 faça
se (ALUNO[I].MÉDIA >= 5) então
escreva ALUNO[I].NOME
escreva ALUNO[I].MÉDIA
fim_se
fim_para
fim
procedimento Reprovados
178 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores
var
I, J : inteiro
início
para I de 1 até 20 passo 1 faça
se (ALUNO[I].MÉDIA < 5) então
escreva ALUNO[I].NOME
escreva ALUNO[I].MÉDIA
fim_se
fim_para
fim
var
OPÇÃO : inteiro
início
OPÇÃO ¬ 0
enquanto (OPÇÃO <> 6) faça
escreva "1 - Cadastrar"
escreva "2 - Pesquisar"
escreva "3 - Apresentar Todos"
escreva "4 - Apresentar Aprovados"
escreva "5 - Apresentar Reprovados"
escreva "6 - Fim"
leia OPÇÃO
se (OPÇÃO <> 6) então
caso OPÇÃO
seja 1 faça Cadastrar
seja 2 faça Pesquisar
seja 3 faça Todos
seja 4 faça Aprovados
seja 5 faça Reprovados
senão
escreva "Opção inválida - Tente novamente"
fim_caso
fim_se
fim_enquanto
fim
179
c) Diagramas de Blocos
180 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores
Português Estruturado
programa C10EX1C
tipo
Dados = registro
NOME : cadeia
ALTURA : de real
fim_registro
var
PESSOA : conjunto[1..15] de Dados
procedimento Cadastrar
var
I : inteiro
início
para I de 1 até 15 passo 1 faça
leia PESSOA[I].NOME
leia PESSOA[I].ALTURA
fim_para
fim
procedimento Apresentar1
181
var
I : inteiro
início
para I de 1 até 15 passo 1 faça
se (PESSOA[I].ALTURA <= 1.5) então
escreva PESSOA[I].NOME
escreva PESSOA[I].ALTURA
fim_se
fim_para
fim
procedimento Apresentar2
var
I : inteiro
início
para I de 1 até 15 passo 1 faça
se (PESSOA[I].ALTURA > 1.5) então
escreva PESSOA[I].NOME
escreva PESSOA[I].ALTURA
fim_se
fim_para
fim
procedimento Apresentar3
var
I : inteiro
início
para I de 1 até 15 passo 1 faça
se (PESSOA[I].ALTURA > 1.5) .e. (PESSOA[I].ALTURA < 2) então
escreva PESSOA[I].NOME
escreva PESSOA[I].ALTURA
fim_se
fim_para
fim
procedimento Apresentar4
var
I : inteiro
SOMAR, MÉDIA : real
início
Somar ¬ 0
para I de 1 até 15 passo 1 faça
escreva PESSOA[I].NOME
escreva PESSOA[I].ALTURA
SOMAR ¬ SOMAR + PESSOA[I].ALTURA
fim_para
MÉDIA ¬ SOMAR / 15
escreva MÉDIA
fim
var
OPÇÃO : inteiro
início
OPÇÃO ¬ 0
enquanto (OPÇÃO <> 6) faça
escreva "1 - Cadastrar"
escreva "2 - Apresentar <= 1.5"
escreva "3 - Apresentar > 1.5"
escreva "4 - Apresentar > 1.5 e < 2.0"
escreva "5 - Apresentar tudo"
escreva "6 - Fim"
leia OPÇÃO
se (OPÇÃO <> 6) então
caso OPÇÃO
seja 1 faça Cadastrar
seja 2 faça Apresentar1
seja 3 faça Apresentar2
seja 4 faça Apresentar3
seja 5 faça Apresentar4
senão
escreva "Opção inválida - Tente novamente"
fim_caso
fim_se
fim_enquanto
fim
182 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores
d) Diagrama de blocos
183
184 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores
185
186 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores
Português Estruturado
programa C10EX1D
var
tipo
Dados = registro
MATRICULA : inteiro
NOME : cadeia
SALÁRIO : real
fim_registro
var
FUNC : conjunto[1..20] de Dados
procedimento Cadastrar
var
I : inteiro
início
para I de 1 até 20 passo 1 faça
leia FUNC[I].MATRICULA
leia FUNC[I].NOME
leia FUNC[I].SALÁRIO
fim_para
fim
procedimento Classificar
var
I, J : inteiro
X : Dados
início
para I de 1 até 19 passo 1 faça
para J de I+1 até 20 passo 1 faça
se (FUNC[I].MATRICULA > FUNC[J].MATRICULA) então
X ¬ FUNC[I]
FUNC[I] ¬ FUNC[J]
FUNC[J] ¬ X
fim_se
fim_para
fim_para
fim
procedimento Pesquisar
var
COMEÇO, FINAL, MEIO, PESQ : inteiro
ACHA : lógico
início
leia PESQ
COMEÇO ¬ 1
FINAL ¬ 20
ACHA ¬ .Falso.
enquanto (COMEÇO <= FINAL) .e. (ACHA = .Falso.) faça
MEIO ¬ (COMEÇO + FINAL) div 2
se (PESQ = FUNC[MEIO].MATRICULA) então
ACHA ¬ .Verdadeiro.
senão
se (PESQ < FUNC[MEIO].MATRICULA) então
FINAL ¬ MEIO - 1
senão
COMEÇO ¬ MEIO + 1
fim_se
fim_se
fim_enquanto
se (ACHA = .Verdadeiro.) então
escreva FUNC[MEIO].MATRICULA
escreva FUNC[MEIO].NOME
escreva FUNC[MEIO].SALÁRIO
senão
escreva "Registro Inexistente"
fim_se
fim
procedimento Apresentar1
var
I : inteiro
início
para I de 1 até 20 passo 1 faça
se (FUNC[I].SALÁRIO > 1000) então
escreva FUNC[I].MATRICULA
187
escreva FUNC[I].NOME
escreva FUNC[I].SALÁRIO
fim_se
fim_para
fim
procedimento Apresentar2
var
I : inteiro
início
para I de 1 até 20 passo 1 faça
se (FUNC[I].SALÁRIO < 1000) então
escreva FUNC[I].MATRICULA
escreva FUNC[I].NOME
escreva FUNC[I].SALÁRIO
fim_se
fim_para
fim
procedimento Apresentar3
var
I : inteiro
início
para I de 1 até 20 passo 1 faça
se (FUNC[I].SALÁRIO = 1000) então
escreva FUNC[I].MATRICULA
escreva FUNC[I].NOME
escreva FUNC[I].SALÁRIO
fim_se
fim_para
fim
var
OPÇÃO : inteiro
início
OPÇÃO ¬ 0
enquanto (OPÇÃO <> 7) faça
escreva "1 - Cadastrar"
escreva "2 - Classificar"
escreva "3 - Pesquisar"
escreva "4 - Apresentar salários > 1000"
escreva "5 - Apresentar salários < 1000"
escreva "6 - Apresentar salários = 1000"
escreva "7 - Fim"
leia OPÇÃO
se (OPÇÃO <> 7) então
caso OPÇÃO
seja 1 faça Cadastrar
seja 2 faça Classificar
seja 3 faça Pesquisar
seja 4 faça Apresentar1
seja 5 faça Apresentar2
seja 6 faça Apresentar3
senão
escreva "Opção inválida - Tente novamente"
fim_caso
fim_se
fim_enquanto
fim
188 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores
programa C10EX2A
var
VAL, TAX, TMP : real
início
leia VAL, TAX, TMP
Prestação(VAL, TAX, TMP)
fim
var
LIMITE : inteiro
início
leia LIMITE
Somatório(LIMITE)
fim
189
c) Diagramas de Blocos
Português Estruturado
programa C10EX2C
var
NÚMERO : inteiro
início
leia NÚMERO
Fibonacci(NÚMERO)
fim
var
B, E : inteiro
início
leia B, E
Potência(B, E)
Fim
var
NÚMERO : inteiro
início
leia NÚMERO
TipoNumérico(NÚMERO)
fim
190 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores
var
A, B, C : inteiro
início
leia A, B, C
Somaquad(A, B, C)
fim
var
A, B, C : inteiro
início
leia A, B, C
Quadsoma(A, B, C)
fim
var
C : real
início
leia C
C2F(C)
Fim
var
DOLAR, COTAÇÃO : real
início
leia DOLAR, COTAÇÃO
Cotdolar(DOLAR, COTAÇÃO)
Fim
191
var
N : inteiro
início
leia N
Divisível1(N)
fim
var
N : inteiro
início
leia N
Divisível2(N)
fim
192 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores
var
N : inteiro
início
leia N
Divisível3(N)
fim
var
N : inteiro
início
leia N
Módulo(N)
fim
193
var
NOME, SEXO : cadeia
início
leia NOME, SEXO
Mensagem(NOME, SEXO)
fim
var
NÚMERO : inteiro
início
leia NÚMERO
Fatorial(NÚMERO)
fim
194 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores
var
PROD_A, PROD_B : inteiro
início
leia PROD_A, PROD_B
Compra(PROD_A, PROD_B)
fim
var
VAL, TAX, TMP, PRE : real
início
leia VAL, TAX, TMP
Prestação(VAL, TAX, TMP, PRE)
escreva PRE
fim
195
var
LIMITE, RESULTADO : inteiro
início
leia LIMITE
Somatório(LIMITE, RESULTADO)
escreva RESULTADO
fim
var
NÚMERO, RESPOSTA : inteiro
início
leia NÚMERO
Fibonacci(NÚMERO, RESPOSTA)
escreva RESPOSTA
fim
196 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores
var
B, E, R : inteiro
início
leia B, E
Potência(B, E, R)
escreva R
fim
e) Diagramas de blocos
Português Estruturado
programa C10EX3E
var
NÚMERO : inteiro
RESPOSTA : cadeia
início
leia NÚMERO
TipoNumérico(NÚMERO, RESPOSTA)
escreva RESPOSTA
fim
197
var
A, B, C, SOMA : inteiro
início
leia A, B, C
Somaquad(A, B, C, SOMA)
escreva SOMA
fim
var
A, B, C, QUAD : inteiro
início
leia A, B, C
Quadsoma(A, B, C, QUAD)
escreva QUAD
fim
198 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores
var
C, F : real
início
leia C
C2F(C, F)
escreva F
fim
var
DOLAR, COTAÇÃO, QUANTIA : real
início
leia DOLAR, COTAÇÃO
Cotdolar(DOLAR, COTAÇÃO, QUANTIA)
escreva QUANTIA
fim
199
j) Diagramas de Blocos
Português Estruturado
programa C10EX3J
var
N : inteiro
RESP : cadeia
início
leia N
Divisível1(N, RESP)
escreva RESP
fim
200 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores
k) Diagramas de Blocos
Português Estruturado
programa C10EX3K
var
N : inteiro
RESP : cadeia
início
leia N
Divisível2(N, RESP)
escreva RESP
fim
l) Diagramas de Blocos
201
Português Estruturado
programa C10EX3L
var
N : inteiro
RESP : cadeia
início
leia N
Divisível3(N, RESP)
escreva RESP
fim
var
N : inteiro
início
leia N
Módulo(N)
escreva N
fim
202 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores
n) Diagramas de Blocos
Português Estruturado
programa C10EX3N
var
NOME, SEXO, SAUDAÇÃO : cadeia
início
leia NOME, SEXO
Mensagem(NOME, SEXO, SAUDAÇÃO)
escreva SAUDAÇÃO
fim
var
NÚMERO, FAT : inteiro
início
leia NÚMERO
Fatorial(NÚMERO, FAT)
escreva FAT
fim
203
p) Diagramas de Blocos
Português Estruturado
programa C10EX3P
var
PROD_A, PROD_B : inteiro
TOTAL : real
início
leia PROD_A, PROD_B
Compra(PROD_A, PROD_B, TOTAL)
escreva TOTAL
fim
204 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores
var
NÚMERO : inteiro
início
leia NÚMERO
escreva Somatório(NÚMERO)
fim
var
NÚMERO : inteiro
início
leia NÚMERO
escreva Fibonacci(NÚMERO)
fim
205
var
VALOR, TAXA, TEMPO : real
início
leia VALOR, TAXA, TEMPO
escreva Prest(VALOR, TAXA, TEMPO)
fim
var
B, E : inteiro
início
leia B, E
escreva Potência(B, E)
fim
var
A, B, C : inteiro
início
leia A, B, C
escreva Somaquad(A, B, C)
fim
206 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores
var
A, B, C : inteiro
início
leia A, B, C
escreva Quadsoma(A, B, C)
fim
var
DOLAR, COTAÇÃO : real
início
leia DOLAR, COTAÇÃO
escreva Cotdolar(DOLAR, COTAÇÃO)
fim
var
VREAL, COTAÇÃO : real
início
leia VREAL, COTAÇÃO
escreva Convdolar(VREAL, COTAÇÃO)
fim
var
F : real
início
leia F
escreva F2C(F)
fim