Buscar

Algoritmos - Respostas dos Exercícios

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 206 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 206 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 206 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1 
 
Gabarito dos Exercícios 
de Fixação do Livro 
 2 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores 
 
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. 
1.2 - Competências e Habilidades 
O aprendizado da lógica de programação de computadores é baseado na obtenção preliminar das seguintes competências: 
4 desenvolver algoritmos por meio da divisão estruturada com sub-rotinas e também com os princípios da programação orientada a 
objetos; 
4 desenvolver algoritmos por meio da ação de refinamento sucessivo para uso da estratégia de reaproveitamento de código; 
4 interpretar pseudocódigos (algoritmos textuais escritos em português estruturado) como base de documentação do raciocínio 
lógico (diagramas de blocos) para o desenvolvimento de software; 
4 interpretar algoritmos gráficos (diagramas de blocos) baseados na norma ISO 5807:1985 (E); 
4 interpretar algoritmos textuais (português estruturado) baseados na técnica PDL; 
4 avaliar resultados de teste dos algoritmos desenvolvidos com uso da técnica de teste de mesa; 
4 integrar módulos de programas desenvolvidos separadamente por meio de sub-rotinas; 
4 desenvolver algoritmos segundo os paradigmas da programação estruturada e da programação orientação a objetos. 
O aprendizado da lógica de programação de computadores é baseado na obtenção preliminar das seguintes habilidades: 
4 Selecionar e utilizar técnicas de programação estruturada e/ou orientada a objetos na resolução de problemas computacionais; 
4 Fazer uso de modelos, pseudocódigos, diagramas de blocos na representação da solução de problemas computacionais; 
4 Executar procedimentos de testes de programas. 
 3 
1.3 – Algoritmos: lógica para desenvolvimento de programação de computadores 
É pertinente expor ao colega professor e demais leitores que o livro referido neste gabarito foi publicado em sua primeira edição para 
buscar resolver um problema técnico de sala de aula. Nós, autores, estávamos com grande dificuldade em adotar livros para esse 
tema, pois, apesar de existirem excelentes trabalhos publicados na época, fomos obrigados a adotar de três a quatro obras para tratar o 
período letivo, o que levava a um alto custo para nossos alunos. O problema que tínhamos percebido na ocasião era que os cursos 
deviam seguir um roteiro curricular, na época proposto pelo Ministério da Educação (MEC), em que as obras publicadas não se 
equacionavam de forma adequada a esse propósito. Muitas delas não seguiam uma estrutura didática confortável, o que levava a usar 
algumas partes de cada obra. Muitos desses livros eram adequados para o profissional da área, mas não para alunos iniciantes. Foi 
este o principal motivo que nos levou a pensar em publicar um trabalho que estivesses de acordo com a estrutura curricular de um 
curso, a qual é mantida até o presente momento. 
Outro fator que nos motivou foi, e ainda é, a ausência de obras de lógica de programação com a devida orientação de uso do recurso 
dos diagramas de blocos em todas as fases do desenvolvimento cognitivo do alunos e sua representação junto as técnicas de 
programação empregadas na indústria do software. A maior parte do livros que adotam algum detalhe sobre o uso de diagramas de 
blocos os fazem de forma superficial, dando a ideia errônea que esse recurso é didático, usado somente na fase inicial da 
aprendizagem da programação, gerando mais confusão que solução, pois não há como ser esse recurso meramente didático, tendo 
uma norma internacional que o regimenta. O ISO, como entidade internacional, foca seu trabalho na indústria e nas regras de produção 
de bens e serviços não tendo nenhum objetivo didático nisso. 
Nesse sentido, nosso trabalho é, sem dúvida, o mais completo do mercado, pois em sua evolução, além de representar todos os 
detalhes lógicos operacionais, adota informações sobre o uso do paradigma da programação orientada a objetos e mostra como usar 
os diagramas de blocos para a representações das ações de controle dos métodos em complementação a técnica de UML (Unified 
Modeling Language), que nada trata a esse respeito. Quando optamos colocar essa temática na obra, percebemos não existir nenhum 
trabalho similar, até então publicado. 
Assim, nosso trabalho é uma obra pioneira: é o primeiro livro publicado no Brasil que trata o uso da norma ISO 5807:1985 em todas as 
etapas do desenvolvimento e o uso das técnicas de programação orientada a objetos associados ao estudo de algoritmos 
computacionais. 
Por último, é um trabalho extremamente dinâmico - é um livro “vivo”, pois pelo fato de sermos professores, de atuarmos diariamente na 
sala de aula e usarmos o livro com muita intensidade, sempre estamos ajustando detalhes e propondo recursos que tornam este 
trabalho o mais atualizado publicado, garantindo ao colega professor e alunos o máximo de informação atualizada em um mercado que 
muda constantemente. Essa garantia de atualização só se cessará com nossa partida deste plano terrestre; até lá, sempre teremos 
uma obra renovada e devidamente adequada para uso em sala de aula. 
 4 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores 
2 - Gabarito dos Exercícios 
O material apresentado é de uso exclusivo do professor, com o objetivo de ajudar na preparação de aulas, bem como na escolha dos 
exercícios a serem aplicados durante o curso ministrado, tanto para fixação como para avaliação. 
São apresentadas as respostas dos exercícios de fixação. Para cada exercício de programação são descritos o diagrama de bloco [de 
acordo com norma ISO 5807:1985 (E)] e o código de programa correspondente escrito em PDL (Program Design Language – 
Português Estruturado). 
As soluções fornecidas neste gabarito caracterizam-se por serem as mais genéricas possíveis, a fim de que fique fácil implementar 
qualquer algoritmo em qualquer linguagemde programação de computadores. Não há intenção ou pretensão de que este gabarito 
contenha a melhor resposta para um determinado exercício ou problema, mas apenas uma ideia de como conseguir determinada 
resposta. Fica a critério do professor trabalhar as questões de refinamento algorítmico no sentido de buscar a melhor solução para um 
determinado problema apresentado na obra. 
As respostas do exercícios seguem como nomenclatura de nomes de programas a estrutura C03EX03B, em que C03 indica o capítulo 
e seu número de referência; EX03 indica o exercício e o número de referência do mesmo; e B referenciando a letra que identifica o 
exercício do livro. 
 5 
3 - Exercícios de Fixação do Capítulo 3 
Tópico 3.9 - Exercício 1 
-456 INTEIRO 
.F. LÓGICO 
.Falso. LÓGICO 
.V. LÓGICO 
"0.87" CADEIA 
"0" CARACTERE 
"-9.12" CADEIA 
"-900" CADEIA 
"Casa 8" CADEIA 
"Cinco" CADEIA 
"V" CARACTERE 
0 INTEIRO 
1.56 REAL 
-1.56 REAL 
34 INTEIRO 
45.8976 REAL 
-465 INTEIRO 
678 INTEIRO 
-678 INTEIRO 
-99.8 REAL 
.V. LÓGICO 
1000 INTEIRO 
Tópico 3.9 - Exercício 2 
(X) ENDEREÇO 
(_) 21BRASIL 
(_) FONE$COM 
(X) NAMEUSER 
(X) NOME_USUÁRIO 
(_) NOME*USUÁRIO 
 (_) END*A-6 
 (X) CIDADE3 
 (_) #CABEC 
 (_) REAL 
 (_) REAL$ 
 (_) SOBRE NOME 
 
 6 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores 
Tópico 3.9 - Exercício 3 
a) Diagrama de bloco 
 
Português estruturado 
 
programa C03EX3A 
var 
 C, F : real 
início 
 leia C 
 F ¬ C * 9 / 5 + 32 
 escreva F 
fim 
 
b) Diagrama de bloco 
 
Português estruturado 
 
programa C03EX3B 
var 
 C, F : real 
início 
 leia F 
 C ¬ ((F - 32) * 5) / 9 
 escreva C 
fim 
 
c) Diagrama de bloco 
 
Português estruturado 
 
programa C03EX3C 
var 
 VOLUME, R, ALTURA : real 
início 
 leia R, ALTURA 
 VOLUME ¬ 3.14159 * R ­ 2 * ALTURA 
 escreva VOLUME 
fim 
 
 7 
 
d) Diagrama de bloco 
 
Português estruturado 
 
programa C03EX3D 
var 
 DISTÂNCIA, TEMPO, VELOCIDADE, LITROS_USADOS : 
real 
início 
 leia TEMPO, VELOCIDADE 
 DISTÂNCIA ¬ TEMPO * VELOCIDADE 
 LITROS_USADOS ¬ DISTÂNCIA / 12 
 escreva VELOCIDADE, TEMPO, DISTÂNCIA, 
LITROS_USADOS 
fim 
 
e) Diagrama de bloco 
 
Português estruturado 
 
programa C03EX3E 
var 
 PRESTAÇÃO, VALOR, TAXA, TEMPO : real 
início 
 leia VALOR, TAXA, TEMPO 
 PRESTAÇÃO ¬ VALOR + (VALOR * (TAXA / 100) * 
TEMPO) 
 escreva PRESTAÇÃO 
fim 
 
 
f) Diagrama de bloco 
 
 
Português estruturado 
 
 
programa C03EX3F1 
var 
 A, B, X : inteiro 
início 
 leia A, B 
 X ¬ A 
 A ¬ B 
 B ¬ X 
 escreva A, B 
fim 
 
 
Este programa também pode ser escrito da 
seguinte forma: 
 
programa C03EX3F2 
var 
 A, B, X : real 
início 
 leia A, B 
 X ¬ A 
 A ¬ B 
 B ¬ X 
 escreva A, B 
fim 
 
Este programa também pode ser escrito da 
seguinte forma: 
 
programa C03EX3F3 
var 
 A, B, X : cadeia 
início 
 leia A, B 
 X ¬ A 
 A ¬ B 
 B ¬ X 
 escreva A, B 
fim 
 8 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores 
 
g) Diagrama de bloco 
 
Português estruturado 
 
programa C03EX3G 
var 
 A, B, C, D : inteiro 
 A1, A2, A3, A4, A5, A6 : inteiro 
 M1, M2, M3, M4, M5, M6 : inteiro 
início 
 leia A, B, C, D 
 A1 ¬ A + B 
 A2 ¬ A + C 
 A3 ¬ A + D 
 A4 ¬ B + C 
 A5 ¬ B + D 
 A6 ¬ C + D 
 M1 ¬ A * B 
 M2 ¬ A * C 
 M3 ¬ A * D 
 M4 ¬ B * C 
 M5 ¬ B * D 
 M6 ¬ C * D 
 escreva A1, A2, A3, A4, A5, A6 
 escreva M1, M2, M3, M4, M5, M6 
fim 
 
h) Diagrama de bloco 
 
Português estruturado 
 
programa C03EX3H 
var 
 VOLUME, COMPRIMENTO, LARGURA, ALTURA : real 
início 
 leia COMPRIMENTO, LARGURA, ALTURA 
 VOLUME ¬ COMPRIMENTO * LARGURA * ALTURA 
 escreva VOLUME 
fim 
 i) Diagrama de bloco 
 
Português estruturado 
 
programa C03EX3I 
var 
 N, R : inteiro 
início 
 leia N 
 R ¬ N * N (ou R ¬ N ­ 2) 
 escreva R 
fim 
 
 
 9 
j) Diagrama de bloco 
 
Português estruturado 
 
programa C03EX3J 
var 
 A, B, R : inteiro 
início 
 leia A, B 
 R ¬ (A - B) ­ 2 
 escreva R 
fim 
 
k) Diagrama de bloco 
 
Português estruturado 
 
programa C03EX3K 
var 
 R, US, COTAÇÃO : real 
início 
 leia US, COTAÇÃO 
 R ¬ US * COTAÇÃO 
 escreva R 
fim 
l) Diagrama de bloco 
 
Português estruturado 
 
programa C03EX3L 
var 
 R, US, COTAÇÃO : real 
início 
 leia R, COTAÇÃO 
 US ¬ R / COTAÇÃO 
 escreva US 
fim 
 m) Diagrama de bloco 
 
Português estruturado 
 
programa C03EX3M 
var 
 R, A, B, C : inteiro 
início 
 leia A, B, C 
 R ¬ (A ­ 2) + (B ­ 2) + (C ­ 2) 
 escreva R 
fim 
 
 
 10 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores 
 
n) Diagrama de bloco 
 
Português estruturado 
 
programa C03EX3N 
var 
 R, A, B, C : inteiro 
início 
 leia A, B, C 
 R ¬ (A + B + C) ­ 2 
 escreva R 
fim 
 
o) Diagrama de bloco 
 
Português estruturado 
 
programa C03EX3O 
var 
 A, B, C, D, P, S : inteiro 
início 
 leia A, B, C, D 
 P ¬ A * C 
 S ¬ B + D 
 escreva P, S 
fim 
 
 
p) Diagrama de bloco 
 
Português estruturado 
 
programa C03EX3P 
var 
 SM, PR, NS : real 
início 
 leia SM, PR 
 NS ¬ SM + SM * PR / 100 
 escreva NS 
fim 
 
 
q) Diagrama de bloco 
 
Português estruturado 
 
programa C03EX3Q 
var 
 A, R : real 
início 
 leia R 
 A ¬ 3.14159 * R ­ 2 
 escreva A 
fim 
 
 
 11 
r) Diagrama de bloco 
 
Português estruturado 
 
programa C03EX3R 
var 
 VA, VB, VC, NL, BR, TE : inteiro 
 PV, PA, PB, PC, PNL, PBR : real 
início 
 leia VA, VB, VC, NL, BR 
 TE ¬ VA + VB + VC + NL + BR 
 PV ¬ (VA + VB + VC) * 100 / TE 
 PA ¬ VA * 100 / TE 
 PB ¬ VB * 100 / TE 
 PC ¬ VC * 100 / TE 
 PNL ¬ NL * 100 / TE 
 PBR ¬ BR * 100 / TE 
 escreva TE, PV, PA, PB, PC, PNL, PBR 
fim 
 
 
s) Diagrama de bloco 
 
Português estruturado 
 
programa C03EX3S 
var 
 A, B, R1, R2, R3, R4 : real 
início 
 leia A, B 
 R1 ¬ A + B 
 R2 ¬ A - B 
 R3 ¬ A * B 
 R4 ¬ A / B 
 escreva R1, R2, R3, R4 
fim 
 
 
 
t) Diagrama de bloco 
 
Português estruturado 
 
programa C03EX3T 
var 
 VELOCIDADE, DISTÂNCIA, TEMPO : real 
início 
 leia DISTÂNCIA, TEMPO 
 VELOCIDADE ¬ (DISTÂNCIA * 1000) / (TEMPO * 60) 
 escreva VELOCIDADE 
fim 
 
 
 
 
 
 
 12 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores 
u) Diagrama de bloco 
 
Português estruturado 
 
programa C03EX3U 
var 
 VOLUME, RAIO : real 
início 
 leia RAIO 
 VOLUME ¬ (4 / 3) * 3.14159 * (RAIO ­ 3) 
 escreva VOLUME 
fim 
 
 
 
v) Diagrama de bloco 
 
Português estruturado 
 
programa C03EX3V 
var 
 BASE, EXPOENTE, POTÊNCIA : inteiro 
início 
 leia BASE, EXPOENTE 
 POTÊNCIA ¬ BASE ­ EXPOENTE 
 escreva POTÊNCIA 
fim 
 
 
 
w) Diagrama de bloco 
 
Português estruturado 
 
programa C03EX3W 
var 
 PÉS, METROS : real 
início 
 leia PÉS 
 METROS ¬ PÉS * 0,3048 
 escreva METROS 
fim 
 
 
 
x) Diagrama de bloco Português estruturado 
 
programa C03EX3X 
var 
 RAIZ, BASE, ÍNDICE : real 
início 
 leia BASE, ÍNDICE 
 RAIZ ¬ BASE ­ (1 / ÍNDICE) 
 escreva RAIZ 
fim 
 13 
 
y) Diagrama de bloco 
 
Português estruturado 
 
programa C03EX3Y 
var 
 VALOR, SUCESSOR, ANTECESSOR : inteiro 
início 
 leia VALOR 
 SUCESSOR ¬ VALOR + 1 
 ANTECESSOR ¬ VALOR - 1 
 escreva SUCESSOR, ANTECESSOR 
fim 
 
 
 
z) Diagrama de bloco 
 
 
Português estruturado 
 
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 
4 - Exercícios de fixação do capítulo 4 
Tópico 4.7 - Exercício 1 
a) Verdadeiro 
b) Falso 
c) Verdadeiro 
d) Verdadeiro 
e) Verdadeiro 
f) Falso 
g) Falso 
h) Verdadeiro 
i) Falso 
j) Falso 
É ideal que nestes exercícios o aluno perceba a posição das condições verdadeira e falsa. Deve ficar claro que sempre a ação da 
condição verdadeira será executada entre as declarações de instrução se...senão e a ação da condição falsa será executada entre asdeclarações de instrução senão...fim_se, nos casos de decisões compostas. 
Neste exercício não é necessário fazer o aluno efetuar o cálculo do valor das equações; basta apenas apontar se a condição é 
verdadeira ou falsa e indicar qual equação deve ser calculada. 
Tópico 4.7 - Exercício 2 
a) Falso, neste caso executa-se a equação X ¬ (A - B) / C, X = -0,20 
b) Falso, neste caso executa-se a equação X ¬ (A + B) / D * (C + D), X = 7,78 
c) Verdadeiro, neste executa-se a equação X ¬ (A + 2) * (B - 2), X = 4 
d) Falso, neste executa-se a equação X ¬ A - B, X = -1 
e) Verdadeiro, neste executa-se a equação X ¬ A + B, X = 5 
f) Falso, neste executa-se a equação X ¬ D / B, X = 3 
g) Verdadeiro, neste executa-se a equação X ¬ (A + D) / 2, X = 5,50 
h) Verdadeiro, neste executa-se a equação X ¬ (A + D) / 2, X = 5,50 
 15 
Tópico 4.7 - Exercício 3 
a) Diagrama de blocos 
 
 
 
Português estruturado 
 
programa C04EX3A1 
var 
 A, B, DIF : inteiro 
início 
 leia A, B 
 se (A > B) então 
 DIF ¬ A - B 
 senão 
 DIF ¬ B - A 
 fim_se 
 escreva DIF 
fim 
 
 
Este programa poderá ser escrito da seguinte forma, mas o 
primeiro estilo é mais adequado: 
 
programa C04EX3A2 
var 
 A, B, DIF : inteiro 
início 
 leia A, B 
 se (B > A) então 
 DIF ¬ B - A 
 senão 
 DIF ¬ A - B 
 fim_se 
 escreva DIF 
fim 
b) Diagrama de blocos 
 
 16 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores 
Português estruturado 
 
programa C04EX3B1 
var 
 N, R : inteiro 
início 
 leia N 
 se (N < 0) então 
 R ¬ N * (-1) 
 senão 
 R ¬ N 
 fim_se 
 escreva R 
fim 
Este programa poderá ser escrito da seguinte forma, mas o primeiro 
estilo é mais adequado: 
 
programa C04EX3B2 
var 
 N : inteiro 
início 
 leia N 
 se (N < 0) então 
 N ¬ N * (-1) 
 fim_se 
 escreva N 
fim 
 
c) Diagrama de bloco 
 
Português estruturado 
 
programa C04EX3C 
var 
 N1, N2, N3, N4, MD : real 
início 
 leia N1, N2, N3, N4 
 MD ¬ (N1 + N2 + N3 + N4) / 4 
 se (MD >= 5) então 
 escreva "Aluno Aprovado", MD 
 senão 
 escreva "Aluno Reprovado", MD 
 fim_se 
fim 
 
 
 
 
d) Diagrama de bloco 
 
Português estruturado 
 
programa C04EX3D 
var 
 N1, N2, N3, N4, MD, NOVA_MD, EX : real 
início 
 leia N1, N2, N3, N4 
 MD ¬ (N1 + N2 + N3 + N4) / 4 
 se (MD >= 7) então 
 escreva "Aluno Aprovado", MD 
 senão 
 leia EX 
 NOVA_MD ¬ (MD + EX) / 2 
 se (NOVA_MD >= 5) então 
 escreva "Aluno Aprovado em Exame", NOVA_MD 
 senão 
 escreva “Aluno Reprovado”, NOVA_MD 
 fim_se 
 fim_se 
fim 
 
 
 17 
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 
f) Diagrama de bloco 
 
Português estruturado 
 
programa C04EX3F 
var 
 A, B, C, X : inteiro 
início 
 leia A, B, C 
 se (A > B) então 
 X ¬ A 
 A ¬ B 
 B ¬ X 
 fim_se 
 se (A > C) então 
 X ¬ A 
 A ¬ C 
 C ¬ X 
 fim_se 
 se (C > B) então 
 X ¬ C 
 C ¬ B 
 B ¬ X 
 fim_se 
 escreva A, B, C 
fim 
 
 
 
 
 
 
Tópico 4.7 - Exercício 3g 
Neste exercício é enfatizado o conceito de trabalhar com valores numéricos inteiros que sejam divisíveis entre dois valores (seus 
divisores). Para determinar se um valor é divisível por outro, basta verificar se o resto da divisão entre os valores (dividendos e divisores) 
é igual a zero, desde que o quociente da divisão seja um valor inteiro. É por esta razão que está sendo utilizado o operador de divisão div 
e não o operador / (barra). O operador / (barra) deve ser usado quando se deseja obter um quociente real. Observe que não é usado o 
operador mod ou % (operadores que determinam o valor do resto de uma divisão de inteiros quando usados nas linguagens de 
programação PASCAL e C, C++, C#, Java, etc.), por serem exclusivos das linguagens de programação. É importante que o aluno 
aprenda a pensar na solução do problema na forma algorítmica e não com o operador da linguagem de programação em si. Nós 
professores temos a responsabilidade de proporcionar aos nossos alunos o caminho da aprendizagem. O aluno deve aprender a pensar 
o “computador” não pelo caminho mais fácil, mas pelo caminho que fortaleça sua lógica de programação. 
 
 
 
 
 
 
 19 
 
g) Diagrama de bloco 
 
Português estruturado 
 
programa C04EX3G 
var 
 A, B, C, D, RESTO2, RESTO3 : inteiro 
início 
 leia A, B, C, D 
 RESTO2 ¬ A - 2 * (A div 2) 
 RESTO3 ¬ A - 3 * (A div 3) 
 se (RESTO2 = 0) .e. (RESTO3 = 0) então 
 escreva "O valor ", A, " é divisível por 2 e 3" 
 fim_se 
 RESTO2 ¬ B - 2 * (B div 2) 
 RESTO3 ¬ B - 3 * (B div 3) 
 se (RESTO2 = 0) .e. (RESTO3 = 0) então 
 escreva "O valor ", B, " é divisível por 2 e 3" 
 fim_se 
 RESTO2 ¬ C - 2 * (C div 2) 
 RESTO3 ¬ C - 3 * (C div 3) 
 se (RESTO2 = 0) .e. (RESTO3 = 0) então 
 escreva "O valor ", C, " é divisível por 2 e 3" 
 fim_se 
 RESTO2 ¬ D - 2 * (D div 2) 
 RESTO3 ¬ D - 3 * (D div 3) 
 se (RESTO2 = 0) .e. (RESTO3 = 0) então 
 escreva "O valor ", D, " é divisível por 2 e 3" 
 fim_se 
fim 
 
 
 
 
 
 
 
 
 
 
 
 
 20 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores 
Tópico 4.7 - Exercício 3h 
Este exercício também enfatiza o conceito de trabalhar com valores que sejam divisíveis entre dois valores. Neste caso é utilizado o 
operador lógico .ou. nas referências condicionais. 
h) Diagrama de bloco 
 
Português estruturado 
 
programa C04EX3H 
var 
 A, B, C, D, RESTO2, RESTO3 : inteiro 
início 
 leia A, B, C, D 
 RESTO2 ¬ A - 2 * (A div 2) 
 RESTO3 ¬ A - 3 * (A div 3) 
 se (RESTO2 = 0) .ou. (RESTO3 = 0) então 
 escreva "O valor ", A, " é divisível por 2 ou 3" 
 fim_se 
 RESTO2 ¬ B - 2 * (B div 2) 
 RESTO3 ¬ B - 3 * (B div 3) 
 se (RESTO2 = 0) .ou. (RESTO3 = 0) então 
 escreva "O valor ", B, " é divisível por 2 ou 3" 
 fim_se 
 RESTO2 ¬ C - 2 * (C div 2) 
 RESTO3 ¬ C - 3 * (C div 3) 
 se (RESTO2 = 0) .ou. (RESTO3 = 0) então 
 escreva "O valor ", C, " é divisível por 2 ou 3" 
 fim_se 
 RESTO2 ¬ D - 2 * (D div 2) 
 RESTO3 ¬ D - 3 * (D div 3) 
 se (RESTO2 = 0) .ou. (RESTO3 = 0) então 
 escreva "O valor ", D, " é divisível por 2 ou 3" 
 fim_se 
fim 
 
 
 
 
 
 
 
 
 
 
 21 
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_sese (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 
j) Diagrama de bloco 
 
Português estruturado 
 
programa C04EX3J 
var 
 N, RESTO : inteiro 
início 
 leia N 
 RESTO ¬ N - 2 * (N div 2) 
 se (RESTO = 0) então 
 escreva "O valor ", N, " é PAR." 
 senão 
 escreva "O valor ", N, " é IMPAR." 
 fim_se 
fim 
 
 
 
 
 
 
k) Diagrama de bloco 
 
Português estruturado 
 
programa C04EX3K 
var 
 N : inteiro 
início 
 leia N 
 se (N >= 1) .e. (N <= 9) então 
 escreva "O valor está na faixa permitida." 
 senão 
 escreva "O valor está fora da faixa permitida." 
 fim_se 
fim 
l) Diagrama de bloco 
 
Português estruturado 
 
programa C04EX3L 
var 
 N : inteiro 
início 
 leia N 
 se .não. (N > 3) então 
 escreva N 
 fim_se 
fim 
 
 
 23 
m) Diagrama de bloco 
 
Português estruturado 
 
programa C04EX3M 
var 
 NOME : cadeia 
 SEXO : caractere 
início 
 leia NOME, SEXO 
 se (SEXO = "M") .ou. (SEXO = "F") então 
 se (SEXO = "M") então 
 escreva "Ilmo. Sr. ", NOME 
 senão 
 escreva "Ilma. Sra. ", NOME 
 fim_se 
 fim_se 
fim 
 
 
 
 
 
 24 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores 
5 - Exercícios de fixação do capítulo 5 
5.1 - Laço de repetição pré-teste - controle condicional verdadeiro 
Tópico 5.9 - Exercício 1 
a) Diagrama de bloco 
 
Português estruturado 
 
programa C05EX1A 
var 
 QUADRADO, I : inteiro 
início 
 I ¬ 15 
 enquanto (I <= 200) faça 
 QUADRADO ¬ I ­ 2 
 escreva QUADRADO 
 I ¬ I + 1 
 fim_enquanto 
fim 
b) Diagrama de bloco 
 
Português estruturado 
 
programa C05EX1B 
var 
 N, I, R : inteiro 
início 
 leia N 
 I ¬ 1 
 enquanto (I <= 10) faça 
 R ¬ N * I 
 escreva N, " X ", I, " = ", R 
 I ¬ I + 1 
 fim_enquanto 
fim 
 
 
 
 
 
 
 
 25 
 
c) Diagrama de bloco 
 
Português estruturado 
 
programa C05EX1C 
var 
 S, I : inteiro 
início 
 S ¬ 0 
 I ¬ 1 
 enquanto (I <= 100) faça 
 S ¬ S + I 
 I ¬ I + 1 
 fim_enquanto 
 escreva S 
fim 
 
 
 
 
 
 
d) Diagrama de bloco 
 
Português estruturado 
 
programa C05EX1D 
var 
 S, I, RESTO : inteiro 
início 
 S ¬ 0 
 I ¬ 1 
 enquanto (I <= 500) faça 
 RESTO ¬ I - 2 * (I div 2) 
 se (RESTO = 0) então 
 S ¬ S + I 
 fim_se 
 I ¬ I + 1 
 fim_enquanto 
 escreva S 
fim 
 
 
 
 
 
 
 
 26 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores 
 
e) Diagrama de bloco 
 
Português estruturado 
 
programa C05EX1E 
var 
 I, RESTO : inteiro 
início 
 I ¬ 0 
 enquanto (I <= 20) faça 
 RESTO ¬ I - 2 * (I div 2) 
 se (RESTO <> 0) então 
 escreva I 
 fim_se 
 I ¬ I + 1 
 fim_enquanto 
fim 
 
 
 
 
 
 
 
 
f) Diagrama de bloco 
 
Português estruturado 
 
programa C05EX1F 
var 
 I, RESTO : inteiro 
início 
 I ¬ 1 
 enquanto (I < 200) faça 
 RESTO ¬ I - 4 * (I div 4) 
 se (RESTO = 0) então 
 escreva I 
 fim_se 
 I ¬ I + 1 
 fim_enquanto 
fim 
 
 
 
 
 
 
 27 
 
g) Diagrama de bloco 
 
Português estruturado 
 
programa C05EX1G 
var 
 P, I : inteiro 
início 
 P ¬ 1 
 I ¬ 0 
 enquanto (I <= 15) faça 
 escreva P 
 P ¬ P * 3 
 I ¬ I + 1 
 fim_enquanto 
fim 
 
 
 
 
 
 
 
h) Diagrama de bloco 
 
Português estruturado 
 
programa C05EX1H 
var 
 P, I, B, E : inteiro 
início 
 leia B, E 
 P ¬ 1 
 I ¬ 1 
 enquanto (I <= E) faça 
 P ¬ P * B 
 I ¬ I + 1 
 fim_enquanto 
 escreva P 
fim 
 
 
 
 
 
 
 
 28 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores 
 
i) Diagrama de bloco 
 
 
Português estruturado 
 
programa C05EX1I 
var 
 I, ATUAL, ANTERIOR, PRÓXIMO : inteiro 
início 
 ANTERIOR ¬ 0 
 ATUAL ¬ 1 
 I ¬ 1 
 enquanto (I <= 15) faça 
 escreva ATUAL 
 PRÓXIMO ¬ ATUAL + ANTERIOR 
 ANTERIOR ¬ ATUAL 
 ATUAL ¬ PRÓXIMO 
 I ¬ I + 1 
 fim_enquanto 
fim 
 
 
 
 
 
 
 
 
j) Diagrama de bloco 
 
Português estruturado 
 
programa C05EX1J 
var 
 C, F : real 
início 
 C ¬ 10 
 enquanto (C <= 100) faça 
 F ¬ (9 * C + 160) / 5 
 escreva C, F 
 C ¬ C + 10 
 fim_enquanto 
fim 
 
 
 
 
 
 
 
 
 29 
 
k) Diagrama de bloco 
 
Português estruturado 
 
programa C05EX1K 
var 
 I, GRÃO, QUADRO : inteiro 
início 
 GRÃO ¬ 0 
 QUADRO ¬ 1 
 I ¬ 1 
 enquanto (I <= 64) faça 
 GRÃO ¬ GRÃO + QUADRO 
 QUADRO ¬ QUADRO * 2 
 I ¬ I + 1 
 fim_enquanto 
 escreva GRÃO 
fim 
 
l) Diagrama de bloco 
 
Português estruturado 
 
programa C05EX1L 
var 
 I, J, N, S, F : inteiro 
início 
 S ¬ 0 
 I ¬ 1 
 enquanto (I <= 15) faça 
 leia N 
 F ¬ 1 
 J ¬ 1 
 enquanto (J <= N) faça 
 F ¬ F * J 
 J ¬ J + 1 
 fim_enquanto 
 S ¬ S + F 
 I ¬ I + 1 
 fim_enquanto 
 escreva S 
fim 
 
 
 
 
 
 30 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores 
m) Diagrama de bloco 
 
Português estruturado 
 
programa C05EX1M 
var 
 I, N, SOMA : inteiro 
 MÉDIA : real 
início 
 SOMA ¬ 0 
 I ¬ 1 
 enquanto (I <= 10) faça 
 leia N 
 SOMA ¬ SOMA + N 
 I ¬ I + 1 
 fim_enquanto 
 MÉDIA ¬ SOMA / 10 
 escreva SOMA, MÉDIA 
fim 
 
 
n) Diagrama de bloco 
 
Português estruturado 
 
programa C05EX1N 
var 
 TOTAL : inteiro 
 SOMA, MÉDIA, N : real 
início 
 TOTAL ¬ 0 
 SOMA ¬ 0 
 N ¬ 0 
 enquanto (N >= 0) faça 
 leia N 
 se (N >= 0) então 
 SOMA ¬ SOMA + N 
 TOTAL ¬ TOTAL + 1 
 fim_se 
 fim_enquanto 
 se (TOTAL > 0) então 
 MÉDIA ¬ SOMA / TOTAL 
 fim_se 
 escreva MÉDIA, TOTAL, SOMA 
fim 
 
 31 
o) Diagrama de bloco 
 
Português estruturado 
 
programa C05EX1O 
var 
 FAT, R, I, J : inteiro 
início 
 I ¬ 1 
 enquanto (I <= 10) faça 
 R ¬ I - 2 * (I div 2) 
 se (R <> 0) então 
 FAT ¬ 1 
 J ¬ 1 
 enquanto (J <= I) faça 
 FAT ¬ FAT * J 
 J ¬ J + 1 
 fim_enquanto 
 escreva FAT 
 fim_se 
 I ¬ I + 1 
 fim_enquanto 
fim 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 32 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores 
p) Diagrama de bloco 
 
Português estruturado 
 
programa C05EX1P 
var 
 TOTAL, SOMA, R, I : inteiro 
 MÉDIA : real 
início 
 TOTAL ¬ 0 
 SOMA ¬ 0 
 I ¬ 50 
 enquanto (I <= 70) faça 
 R ¬ I - 2 * (I div 2) 
 se (R = 0) então 
 SOMA ¬ SOMA + I 
 TOTAL ¬ TOTAL + 1 
 fim_se 
 I ¬ I + 1 
 fim_enquanto 
 MÉDIA ¬ SOMA / TOTAL 
 escreva SOMA, MÉDIA 
fim 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 33 
q) Diagrama de bloco 
 
Português estruturado 
 
programa C05EX1Q 
var 
 CÔMODO, RESPOSTA : caractere 
 TOTAL, ÁREA, LARGURA, COMPRIMENTO : real 
início 
 TOTAL ¬ 0 
 RESPOSTA ¬ "SIM" 
 enquanto (RESPOSTA = "SIM") faça 
 leia CÔMODO, LARGURA, COMPRIMENTO 
 ÁREA ¬ LARGURA * COMPRIMENTO 
 TOTAL ¬ TOTAL + ÁREA 
 escreva ÁREA, "Deseja calcular novo cômodo? " 
 leia RESPOSTA 
 fim_enquanto 
escreva TOTAL 
fim 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 34 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores 
r) Diagrama de bloco 
 
Português estruturado 
 
programa C05EX1R 
var 
 N, VALOR_MAIOR, VALOR_MENOR : inteiro 
início 
 leia N 
 VALOR_MAIOR ¬ N 
 VALOR_MENOR ¬ N 
 enquanto (N >= 0) faça 
 se (VALOR_MAIOR < N) então 
 VALOR_MAIOR ¬ N 
 fim_se 
 se (VALOR_MENOR > N) então 
 VALOR_MENOR ¬ N 
 fim_se 
 leia N 
 fim_enquanto 
 escreva VALOR_MAIOR, VALOR_MENOR 
fim 
 
 
 
 
 
 
 
 
 
 
 
 
 
 35 
s) Diagrama de bloco 
 
Português estruturado 
 
programa C05EX1S 
var 
 QUOCIENTE, DIVIDENDO, DIVISOR : inteiro 
início 
 leia DIVIDENDO, DIVISOR 
 QUOCIENTE ¬ 0 
 enquanto (DIVISOR <= DIVIDENDO) faça 
 DIVIDENDO ¬ DIVIDENDO - DIVISOR 
 QUOCIENTE ¬ QUOCIENTE + 1 
 fim_enquanto 
 escreva QUOCIENTE 
fim 
 
 
 
 
 
t) Diagrama de bloco 
 
 
 
Português estruturado 
 
programa C05EX1T 
var 
 I : inteiro 
início 
 I ¬ 15 
 enquanto (I <= 200) faça 
 escrevaI ­ 2 
 I ¬ I + 3 
 fim_enquanto 
fim 
 
 
 
 36 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores 
5.2 - Laço de repetição pré-teste - controle condicional falso 
Tópico 5.9 - Exercício 2 
a) Diagrama de bloco 
 
Português estruturado 
 
programa C05EX2A 
var 
 QUADRADO, I : inteiro 
início 
 I ¬ 15 
 até_seja (I > 200) efetue 
 QUADRADO ¬ I ­ 2 
 escreva QUADRADO 
 I ¬ I + 1 
 fim_até_seja 
fim 
 
 
 
 
b) Diagrama de bloco 
 
Português estruturado 
 
programa C05EX2B 
var 
 N, I, R : inteiro 
início 
 leia N 
 I ¬ 1 
 até_seja (I > 10) efetue 
 R ¬ N * I 
 escreva N, " X ", I, " = ", R 
 I ¬ I + 1 
 fim_até_seja 
fim 
 
 
 
 
 
 
 37 
c) Diagrama de bloco 
 
Português estruturado 
 
programa C05EX2C 
var 
 S, I : inteiro 
início 
 S ¬ 0 
 I ¬ 1 
 até_seja (I > 100) efetue 
 S ¬ S + I 
 I ¬ I + 1 
 fim_até_seja 
 escreva S 
fim 
 
 
 
 
 
 
 
 
 
 
 
 
 
d) Diagrama de bloco 
 
Português estruturado 
 
programa C05EX2D 
var 
 S, I, RESTO : inteiro 
início 
 S ¬ 0 
 I ¬ 1 
 até_seja (I > 500) efetue 
 RESTO ¬ I – 2 * (I div 2) 
 se (RESTO = 0) então 
 S ¬ S + I 
 fim_se 
 I ¬ I + 1 
 fim_até_seja 
 escreva S 
fim 
 
 
 
 
 
 
 
 38 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores 
e) Diagrama de bloco 
 
Português estruturado 
 
programa C05EX2E 
var 
 I, RESTO : inteiro 
início 
 I ¬ 0 
 até_seja (I > 20) efetue 
 RESTO ¬ I – 2 * (I div 2) 
 se (RESTO <> 0) então 
 escreva I 
 fim_se 
 I ¬ I + 1 
 fim_até_seja 
fim 
 
 
 
 
 
 
 
f) Diagrama de bloco 
 
Português estruturado 
 
programa C05EX2F 
var 
 I, RESTO : inteiro 
início 
 I ¬ 1 
 até_seja (I >= 199) efetue 
 RESTO ¬ I - 4 * (I div 4) 
 se (RESTO = 0) então 
 escreva I 
 fim_se 
 I ¬ I + 1 
 fim_até_seja 
fim 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 39 
g) Diagrama de bloco 
 
Português estruturado 
 
programa C05EX2G 
var 
 P, I : inteiro 
início 
 P ¬ 1 
 I ¬ 0 
 até_seja (I > 15) efetue 
 escreva P 
 P ¬ P * 3 
 I ¬ I + 1 
 fim_até_seja 
fim 
 
 
 
 
 
 
 
 
 
 
h) Diagrama de bloco 
 
Português estruturado 
 
programa C05EX2H 
var 
 P, I, B, E : inteiro 
início 
 leia B, E 
 P ¬ 1 
 I ¬ 1 
 até_seja (I > E) efetue 
 P ¬ P * B 
 I ¬ I + 1 
 fim_até_seja 
 escreva P 
fim 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 40 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores 
i) Diagrama de bloco 
 
Português estruturado 
 
programa C05EX2I 
var 
 I, ATUAL, ANTERIOR, PRÓXIMO : inteiro 
início 
 ANTERIOR ¬ 0 
 ATUAL ¬ 1 
 I ¬ 1 
 até_seja (I > 15) efetue 
 escreva ATUAL 
 PRÓXIMO ¬ ATUAL + ANTERIOR 
 ANTERIOR ¬ ATUAL 
 ATUAL ¬ PRÓXIMO 
 I ¬ I + 1 
 fim_até_seja 
fim 
 
 
 
 
 
 
 
j) Diagrama de bloco 
 
 
Português estruturado 
 
programa C05EX2J 
var 
 C, F : real 
início 
 C ¬ 10 
 até_seja (C > 100) efetue 
 F ¬ (9 * C + 160) / 5 
 escreva C, F 
 C ¬ C + 10 
 fim_até_seja 
fim 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 41 
k) Diagrama de bloco 
 
Português estruturado 
 
programa C05EX2K 
var 
 I, GRÃO, QUADRO : inteiro 
início 
 GRÃO ¬ 0 
 QUADRO ¬ 1 
 I ¬ 1 
 até_seja (I > 64) efetue 
 GRÃO ¬ GRÃO + QUADRO 
 QUADRO ¬ QUADRO * 2 
 I ¬ I + 1 
 fim_até_seja 
 escreva GRÃO 
fim 
 
 
 
 42 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores 
 
l) Diagrama de bloco 
 
 
 
 
 
 
 
Português estruturado 
 
programa C05EX2L 
var 
 I, J, N, S, F : inteiro 
início 
 S ¬ 0 
 I ¬ 1 
 até_seja (I > 15) efetue 
 leia N 
 F ¬ 1 
 J ¬ 1 
 até_seja (J > N) efetue 
 F ¬ F * J 
 J ¬ J + 1 
 fim_até_seja 
 S ¬ S + F 
 I ¬ I + 1 
 fim_até_seja 
 escreva S 
fim 
 
 43 
 
 
m) Diagrama de bloco 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Português estruturado 
 
programa C05EX2M 
var 
 I, N, SOMA : inteiro 
 MÉDIA : real 
início 
 SOMA ¬ 0 
 I ¬ 1 
 até_seja (I > 10) efetue 
 leia N 
 SOMA ¬ SOMA + N 
 I ¬ I + 1 
 fim_até_seja 
 MÉDIA ¬ SOMA / 10 
 escreva SOMA, MÉDIA 
fim 
 
 44 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores 
n) Diagrama de bloco 
 
Português estruturado 
 
programa C05EX2N 
var 
 TOTAL : inteiro 
 SOMA, MÉDIA, N : real 
início 
 TOTAL ¬ 0 
 SOMA ¬ 0 
 N ¬ 0 
 até_seja (N < 0) efetue 
 leia N 
 se (N >= 0) então 
 SOMA ¬ SOMA + N 
 TOTAL ¬ TOTAL + 1 
 fim_se 
 fim_até_seja 
 se (TOTAL > 0) então 
 MÉDIA ¬ SOMA / TOTAL 
 fim_se 
 escreva MÉDIA, TOTAL, SOMA 
fim 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 45 
o) Diagrama de bloco 
 
Português estruturado 
 
programa C05EX2O 
var 
 FAT, R, I, J : inteiro 
início 
 I ¬ 1 
 até_seja (I > 10) efetue 
 R ¬ I - 2 * (I div 2) 
 se (R <> 0) então 
 FAT ¬ 1 
 J ¬ 1 
 até_seja (J > I) efetue 
 FAT ¬ FAT * J 
 J ¬ J + 1 
 fim_até_seja 
 escreva FAT 
 fim_se 
 I ¬ I + 1 
 fim_até_seja 
fim 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 46 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores 
p) Diagrama de bloco 
 
Português estruturado 
 
programa C05EX2P 
var 
 TOTAL, SOMA, R, I : inteiro 
 MÉDIA : real 
início 
 TOTAL ¬ 0 
 SOMA ¬ 0 
 I ¬ 50 
 até_seja (I > 70) efetue 
 R ¬ I - 2 * (I div 2) 
 se (R = 0) então 
 SOMA ¬ SOMA + I 
 TOTAL ¬ TOTAL + 1 
 fim_se 
 I ¬ I + 1 
 fim_até_seja 
 MÉDIA ¬ SOMA / TOTAL 
 escreva SOMA, MÉDIA 
fim 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 47 
q) Diagrama de bloco 
 
Português estruturado 
 
programa C05EX2Q 
var 
 CÔMODO, RESPOSTA : cadeia 
 TOTAL, ÁREA, LARGURA, COMPRIMENTO : real 
início 
 TOTAL ¬ 0 
 RESPOSTA ¬ "SIM" 
 até_seja (RESPOSTA <> "SIM") efetue 
 leia CÔMODO, LARGURA, COMPRIMENTO 
 ÁREA ¬ LARGURA * COMPRIMENTO 
 TOTAL ¬ TOTAL + ÁREA 
 escreva ÁREA, "Deseja calcular novo cômodo? " 
 leia RESPOSTA 
 fim_até_seja 
escreva TOTAL 
fim 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 48 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores 
r) Diagrama de bloco 
 
Português estruturado 
 
programa C05EX2R 
var 
 N, VALOR_MAIOR, VALOR_MENOR : inteiro 
início 
 leia N 
 VALOR_MAIOR ¬ N 
 VALOR_MENOR ¬ N 
 até_seja (N < 0) efetue 
 se (VALOR_MAIOR < N) então 
 VALOR_MAIOR ¬ N 
 fim_se 
 se (VALOR_MENOR > N) então 
 VALOR_MENOR ¬ N 
 fim_se 
 leia N 
 fim_até_seja 
 escreva VALOR_MAIOR, VALOR_MENOR 
fim 
 
s) Diagrama de bloco 
 
Português estruturado 
 
programa C05EX2S 
var 
 QUOCIENTE, DIVIDENDO, DIVISOR : inteiro 
início 
 leia DIVIDENDO, DIVISOR 
 QUOCIENTE ¬ 0 
 até_seja (DIVISOR > DIVIDENDO) efetue 
 DIVIDENDO ¬ DIVIDENDO - DIVISOR 
 QUOCIENTE ¬ QUOCIENTE + 1 
 fim_até_seja 
 escreva QUOCIENTE 
fim 
 
 49 
t) Diagrama de bloco 
 
Português estruturado 
 
programa C05EX2T 
var 
 I : inteiro 
início 
 I ¬ 15 
 até_seja (I <= 200) efetue 
 escreva I ­ 2 
 I ¬ I + 3 
 fim_até_seja 
fim 
 
 
 
 
5.3 - Laço de repetição pós-teste - controle condicional falso 
Tópico 5.9 - Exercício 3 
a) Diagrama de blocos 
 
 
 
 
Português estruturado 
 
programa C05EX3A 
var 
 QUADRADO, I : inteiro 
início 
 I ¬ 15 
 repita 
 QUADRADO ¬ I ­ 2 
 escreva QUADRADO 
 I ¬ I + 1 
 até_que (I > 200) 
fim 
 
 
 50 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores 
b) Diagrama de blocos 
 
Português Estruturado 
 
programa C05EX3B 
var 
 N, I, R : inteiro 
início 
 leia N 
 I ¬ 1 
 repita 
 R ¬ N * I 
 escreva N, " X ", I, " = ", R 
 I ¬ I + 1 
 até_que (I > 10) 
fim 
 
 
 
c) Diagrama de blocos 
 
 
 
 
 
 
Português Estruturado 
 
programa C05EX3C 
var 
 S, I : inteiro 
início 
 S ¬ 0 
 I ¬ 1 
 repita 
 S ¬ S + I 
 I ¬ I + 1 
 até_que (I > 100) 
 escreva S 
fim 
 
 51 
d) Diagrama de blocos 
 
PortuguêsEstruturado 
 
programa C05EX3D 
var 
 S, I, RESTO : inteiro 
início 
 S ¬ 0 
 I ¬ 1 
 repita 
 RESTO ¬ I - 2 * (I div 2) 
 se (RESTO = 0) então 
 S ¬ S + I 
 fim_se 
 I ¬ I + 1 
 até_que (I > 500) 
 escreva S 
fim 
 
 
 
 
e) Diagrama de blocos 
 
Português Estruturado 
 
programa C05EX3E 
var 
 I, RESTO : inteiro 
início 
 I ¬ 0 
 repita 
 RESTO ¬ I - 2 * (I div 2) 
 se (RESTO <> 0) então 
 escreva I 
 fim_se 
 I ¬ I + 1 
 até_que (I > 20) 
fim 
 52 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores 
f) Diagrama de blocos 
 
Português Estruturado 
 
programa C05EX3F 
var 
 I, RESTO : inteiro 
início 
 I ¬ 1 
 repita 
 RESTO ¬ I - 4 * (I div 4) 
 se (RESTO = 0) então 
 escreva I 
 fim_se 
 I ¬ I + 1 
 até_que (I >= 200) 
fim 
 
 
 
g) Diagrama de blocos 
 
 
 
 
Português Estruturado 
 
programa C05EX3G 
var 
 P, I : inteiro 
início 
 P ¬ 1 
 I ¬ 0 
 repita 
 escreva P 
 P ¬ P * 3 
 I ¬ I + 1 
 até_que (I > 15) 
fim 
 53 
h) Diagrama de blocos 
 
Português Estruturado 
 
programa C05EX3H 
var 
 P, I, B, E : inteiro 
início 
 leia B, E 
 P ¬ 1 
 I ¬ 1 
 repita 
 se (E = 0) então 
 P ¬ 1 
 senão 
 P ¬ P * B 
 fim-se 
 I ¬ I + 1 
 até_que (I > E) 
 escreva P 
fim 
 
 
 54 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores 
 
i) Diagrama de blocos 
 
Português Estruturado 
 
programa C05EX3I 
var 
 I, ATUAL, ANTERIOR, PRÓXIMO : inteiro 
início 
 ANTERIOR ¬ 0 
 ATUAL ¬ 1 
 I ¬ 1 
 repita 
 escreva ATUAL 
 PRÓXIMO ¬ ATUAL + ANTERIOR 
 ANTERIOR ¬ ATUAL 
 ATUAL ¬ PRÓXIMO 
 I ¬ I + 1 
 até_que (I > 15) 
fim 
 
 
 
j) Diagrama de blocos 
 
Português estruturado 
 
programa C05EX3J 
var 
 C, F : real 
início 
 C ¬ 10 
 repita 
 F ¬ (9 * C + 160) / 5 
 escreva C, F 
 C ¬ C + 10 
 até_que (C > 100) 
fim 
 
 
 55 
k) Diagrama de blocos 
 
Português estruturado 
 
programa C05EX3K 
var 
 I, GRÃO, QUADRO : inteiro 
início 
 GRÃO ¬ 0 
 QUADRO ¬ 1 
 I ¬ 1 
 repita 
 GRÃO ¬ GRÃO + QUADRO 
 QUADRO ¬ QUADRO * 2 
 I ¬ I + 1 
 até_que (I > 64) 
 escreva GRÃO 
fim 
 
 
l) Diagrama de blocos 
 
Português estruturado 
 
programa C05EX3L 
var 
 I, J, N, S, F : inteiro 
início 
 S ¬ 0 
 I ¬ 1 
 repita 
 leia N 
 F ¬ 1 
 J ¬ 1 
 repita 
 F ¬ F * J 
 J ¬ J + 1 
 até_que (J > N) 
 S ¬ S + F 
 I ¬ I + 1 
 até_que (I > 15) 
 escreva S 
fim 
 
 56 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores 
m) Diagrama de blocos 
 
Português estruturado 
 
programa C05EX3M 
var 
 I, N, SOMA : inteiro 
 MÉDIA : real 
início 
 SOMA ¬ 0 
 I ¬ 1 
 repita 
 leia N 
 SOMA ¬ SOMA + N 
 I ¬ I + 1 
 até_que (I > 10) 
 MÉDIA ¬ SOMA / 10 
 escreva SOMA, MÉDIA 
fim 
 
 
 
n) Diagrama de blocos 
 
Português estruturado 
 
programa C05EX3N 
var 
 TOTAL : inteiro 
 SOMA, MÉDIA, N : real 
início 
 TOTAL ¬ 0 
 SOMA ¬ 0 
 repita 
 leia N 
 se (N >= 0) então 
 SOMA ¬ SOMA + N 
 TOTAL ¬ TOTAL + 1 
 fim_se 
 até_que (N < 0) 
 se (TOTAL > 0) então 
 MÉDIA ¬ SOMA / TOTAL 
 fim_se 
 escreva SOMA, TOTAL, MÉDIA 
fim 
 
 57 
o) Diagrama de blocos 
 
Português estruturado 
 
programa C05EX3O 
var 
 FAT, R, I, J : inteiro 
início 
 I ¬ 1 
 repita 
 R ¬ I - 2 * (I div 2) 
 se (R <> 0) então 
 FAT ¬ 1 
 J ¬ 1 
 repita 
 FAT ¬ FAT * J 
 J ¬ J + 1 
 até_que (J > I) 
 escreva FAT 
 fim_se 
 I ¬ I + 1 
 até_que (I > 10) 
fim 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 58 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores 
p) Diagrama de blocos 
 
Português estruturado 
 
programa C05EX3P 
var 
 TOTAL, SOMA, R, I : inteiro 
 MÉDIA : real 
início 
 TOTAL ¬ 0 
 SOMA ¬ 0 
 I ¬ 50 
 repita 
 R ¬ I - 2 * (I div 2) 
 se (R = 0) então 
 SOMA ¬ SOMA + I 
 TOTAL ¬ TOTAL + 1 
 fim_se 
 I ¬ I + 1 
 até_que (I > 70) 
 MÉDIA ¬ SOMA / TOTAL 
 escreva SOMA, MÉDIA 
fim 
 
 
 
 
 
 
 
 
 
 
 
 
 59 
q) Diagrama de blocos 
 
Português estruturado 
 
programa C05EX3Q 
var 
 CÔMODO, RESPOSTA : cadeia 
 TOTAL, ÁREA, LARGURA, COMPRIMENTO : real 
início 
 TOTAL ¬ 0 
 RESPOSTA ¬ "SIM" 
 repita 
 leia CÔMODO, LARGURA, COMPRIMENTO 
 ÁREA ¬ LARGURA * COMPRIMENTO 
 TOTAL ¬ TOTAL + ÁREA 
 escreva ÁREA, "Deseja calcular novo cômodo? " 
 leia RESPOSTA 
 até_que (RESPOSTA <> "SIM") 
escreva TOTAL 
fim 
 
 
 
 
 
 
 
 
 
 
 
 
 60 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores 
r) Diagrama de blocos 
 
Português estruturado 
 
programa C05EX3R 
var 
 N, VALOR_MAIOR, VALOR_MENOR : inteiro 
início 
 leia N 
 VALOR_MAIOR ¬ N 
 VALOR_MENOR ¬ N 
 repita 
 se (VALOR_MAIOR < N) então 
 VALOR_MAIOR ¬ N 
 fim_se 
 se (VALOR_MENOR > N) então 
 VALOR_MENOR ¬ N 
 fim_se 
 leia N 
 até_que (N < 0) 
 escreva VALOR_MAIOR, VALOR_MENOR 
fim 
 
s) Diagrama de blocos 
 
Português estruturado 
 
programa C05EX3S 
var 
 QUOCIENTE, DIVIDENDO, DIVISOR : inteiro 
início 
 leia DIVIDENDO, DIVISOR 
 QUOCIENTE ¬ 0 
 repita 
 DIVIDENDO ¬ DIVIDENDO - DIVISOR 
 QUOCIENTE ¬ QUOCIENTE + 1 
 até_que (DIVISOR > DIVIDENDO) 
 escreva QUOCIENTE 
fim 
 61 
 
t) Diagrama de bloco 
 
Português estruturado 
 
programa C05EX3T 
var 
 I : inteiro 
início 
 I ¬ 15 
 repita 
 escreva I ­ 2 
 I ¬ I + 3 
 até_que (I > 200) 
fim 
 
 
 
 
 
 
5.4 - Laço de repetição pós-teste - controle condicional verdadeiro 
Tópico 5.9 - Exercício 4 
a) Diagrama de blocos 
 
Português estruturado 
 
programa C05EX4A 
var 
 QUADRADO, I : inteiro 
início 
 I ¬ 15 
 execute 
 QUADRADO ¬ I ­ 2 
 escreva QUADRADO 
 I ¬ I + 1 
 enquanto_for (I <= 200) 
fim 
 62 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores 
b) Diagrama de blocos 
 
Português estruturado 
 
programa C05EX4B 
var 
 N, I, R : inteiro 
início 
 leia N 
 I ¬ 1 
 execute 
 R ¬ N * I 
 escreva N, " X ", I, " = ", R 
 I ¬ I + 1 
 enquanto_for (I <= 10) 
fim 
 
 
 
 
c) Diagrama de blocos 
 
 
 
Português estruturado 
 
programa C05EX4C 
var 
 S, I : inteiro 
início 
 S ¬ 0 
 I ¬ 1 
 execute 
 S ¬ S + I 
 I ¬ I + 1 
 enquanto_for (I <= 100) 
 escreva S 
fim 
 63 
d) Diagrama de blocos 
 
Português estruturado 
 
programa C05EX4D 
var 
 S, I, RESTO : inteiro 
início 
 S ¬ 0 
 I ¬ 1 
 execute 
 RESTO ¬ I - 2 * (I div 2) 
 se (RESTO = 0) então 
 S ¬ S + I 
 fim_se 
 I ¬ I + 1 
 enquanto_for (I <= 500) 
 escreva S 
fim 
 
e) Diagrama de blocos 
 
Português estruturado 
 
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 
f) Diagrama de blocos 
 
Português estruturado 
 
programa C05EX4F 
var 
 I, RESTO : inteiro 
início 
 I ¬ 1 
 execute 
 RESTO ¬ I - 4 * (I div 4) 
 se (RESTO = 0) então 
 escreva I 
 fim_se 
 I ¬ I + 1 
 enquanto_for (I < 200) 
fim 
 
 
g) Diagrama de blocos 
 
 
Português estruturado 
 
programa C05EX4G 
var 
 P, I : inteiro 
início 
 P ¬ 1 
 I ¬ 0 
 execute 
 escreva P 
 P ¬ P * 3 
 I ¬ I + 1 
 enquanto_for (I <= 15) 
fim 
 
 65 
h) Diagrama de blocos 
 
Português estruturado 
 
programa C05EX4H 
var 
 P, I, B, E : inteiro 
início 
 leia B, E 
 P ¬ 1 
 I ¬ 1 
 execute 
 se (E = 0) então 
P ¬ 1 
 senão 
P ¬ P * B 
 fim-se 
 I ¬ I + 1 
 enquanto_for (I <= E) 
 escreva P 
fim 
 
 66 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores 
 
i) Diagrama de blocos 
 
Português estruturado 
 
programa C05EX4I 
var 
 I, ATUAL, ANTERIOR,PRÓXIMO : inteiro 
início 
 ANTERIOR ¬ 0 
 ATUAL ¬ 1 
 I ¬ 1 
 execute 
 escreva ATUAL 
 PRÓXIMO ¬ ATUAL + ANTERIOR 
 ANTERIOR ¬ ATUAL 
 ATUAL ¬ PRÓXIMO 
 I ¬ I + 1 
 enquanto_for (I <= 15) 
fim 
 
j) Diagrama de blocos 
 
Português estruturado 
 
programa C05EX4J 
var 
 C, F : real 
início 
 C ¬ 10 
 execute 
 F ¬ (9 * C + 160) / 5 
 escreva C, F 
 C ¬ C + 10 
 enquanto_for (C <= 100) 
fim 
 
 
 
 
 
 
 
 67 
 
k) Diagrama de blocos 
 
Português estruturado 
 
programa C05EX4K 
var 
 I, GRÃO, QUADRO : inteiro 
início 
 GRÃO ¬ 0 
 QUADRO ¬ 1 
 I ¬ 1 
 execute 
 GRÃO ¬ GRÃO + QUADRO 
 QUADRO ¬ QUADRO * 2 
 I ¬ I + 1 
 enquanto_for (I <= 64) 
 escreva GRÃO 
fim 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 68 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores 
 
l) Diagrama de blocos 
 
 
Português estruturado 
 
programa C05EX4L 
var 
 I, J, N, S, F : inteiro 
início 
 S ¬ 0 
 I ¬ 1 
 execute 
 leia N 
 F ¬ 1 
 J ¬ 1 
 execute 
 F ¬ F * J 
 J ¬ J + 1 
 enquanto_for (J <= N) 
 S ¬ S + F 
 I ¬ I + 1 
 enquanto_for (I <= 15) 
 escreva S 
fim 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 69 
 
m) Diagrama de blocos 
 
Português estruturado 
 
programa C05EX4M 
var 
 I, N, SOMA : inteiro 
 MÉDIA : real 
início 
 SOMA ¬ 0 
 I ¬ 1 
 execute 
 leia N 
 SOMA ¬ SOMA + N 
 I ¬ I + 1 
 enquanto_for (I <= 10) 
 MÉDIA ¬ SOMA / 10 
 escreva SOMA, MÉDIA 
fim 
 
n) Diagrama de blocos 
 
Português estruturado 
 
programa C05EX4N 
var 
 TOTAL : inteiro 
 SOMA, MÉDIA, N : real 
início 
 TOTAL ¬ 0 
 SOMA ¬ 0 
 execute 
 leia N 
 se (N <= 0) então 
 SOMA ¬ SOMA + N 
 TOTAL ¬ TOTAL + 1 
 fim_se 
 enquanto_for (N >= 0) 
 se (TOTAL > 0) então 
 MÉDIA ¬ SOMA / TOTAL 
 fim_se 
 escreva SOMA, TOTAL, MÉDIA 
fim 
 
 70 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores 
o) Digrama de blocos 
 
Português estruturado 
 
programa C05EX4O 
var 
 FAT, R, I, J : inteiro 
início 
 I ¬ 1 
 execute 
 R ¬ I - 2 * (I div 2) 
 se (R <> 0) então 
 FAT ¬ 1 
 J ¬ 1 
 execute 
 FAT ¬ FAT * J 
 J ¬ J + 1 
 enquanto_for (J <= I) 
 escreva FAT 
 fim_se 
 I ¬ I + 1 
 enquanto_for (I <= 10) 
fim 
 
 71 
 
p) Digrama de blocos 
 
Português estruturado 
 
programa C05EX4P 
var 
 TOTAL, SOMA, R, I : inteiro 
 MÉDIA : real 
início 
 TOTAL ¬ 0 
 SOMA ¬ 0 
 I ¬ 50 
 execute 
 R ¬ I - 2 * (I div 2) 
 se (R = 0) então 
 SOMA ¬ SOMA + I 
 TOTAL ¬ TOTAL + 1 
 fim_se 
 I ¬ I + 1 
 enquanto_for (I <= 70) 
 MÉDIA ¬ SOMA / TOTAL 
 escreva SOMA, MÉDIA 
fim 
 
 
 
 
 
 
 
 
 
 72 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores 
q) Digrama de blocos 
 
Português estruturado 
 
programa C05EX4Q 
var 
 CÔMODO, RESPOSTA : cadeia 
 TOTAL, ÁREA, LARGURA, COMPRIMENTO : real 
início 
 TOTAL ¬ 0 
 RESPOSTA ¬ "SIM" 
 execute 
 leia CÔMODO, LARGURA, COMPRIMENTO 
 ÁREA ¬ LARGURA * COMPRIMENTO 
 TOTAL ¬ TOTAL + ÁREA 
 escreva ÁREA, "Deseja calcular novo cômodo? " 
 leia RESPOSTA 
 enquanto_for (RESPOSTA = "SIM") 
escreva TOTAL 
fim 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 73 
r) Digrama de blocos 
 
Português estruturado 
 
programa C05EX4R 
var 
 N, VALOR_MAIOR, VALOR_MENOR : inteiro 
início 
 leia N 
 VALOR_MAIOR ¬ N 
 VALOR_MENOR ¬ N 
 execute 
 se (VALOR_MAIOR < N) então 
 VALOR_MAIOR ¬ N 
 fim_se 
 se (VALOR_MENOR > N) então 
 VALOR_MENOR ¬ N 
 fim_se 
 leia N 
 enquanto_for (N >= 0) 
 escreva VALOR_MAIOR, VALOR_MENOR 
fim 
 
s) Digrama de blocos 
 
Português estruturado 
 
programa C05EX4S 
var 
 QUOCIENTE, DIVIDENDO, DIVISOR : inteiro 
início 
 leia DIVIDENDO, DIVISOR 
 QUOCIENTE ¬ 0 
 execute 
 DIVIDENDO ¬ DIVIDENDO - DIVISOR 
 QUOCIENTE ¬ QUOCIENTE + 1 
 enquanto_for (DIVISOR <= DIVIDENDO) 
 escreva QUOCIENTE 
fim 
 
 74 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores 
 
t) Diagrama de bloco 
 
Português estruturado 
 
programa C05EX4T 
var 
 I : inteiro 
início 
 I ¬ 15 
 execute 
 escreva I ­ 2 
 I ¬ I + 3 
 enquanto_for (I <= 200) 
fim 
 
 
 
 
5.5 - Laço de Repetição Condicional Seletivo 
Tópico 5.9 - Exercício 5 
a) Digrama de blocos 
 
 
Português estruturado 
 
programa C05EX5A 
var 
 QUADRADO, I : inteiro 
início 
 I ¬ 15 
 laço 
 QUADRADO ¬ I ­ 2 
 escreva QUADRADO 
 saia_caso (I >= 200) 
 I ¬ I + 1 
 fim_laço 
fim 
 75 
b) Diagrama de blocos 
 
 
Português estruturado 
 
programa C05EX5B 
var 
 N, I, R : inteiro 
início 
 leia N 
 I ¬ 1 
 laço 
 R ¬ N * I 
 escreva N, " X ", I, " = ", R 
 saia_caso (I >= 10) 
 I ¬ I + 1 
 fim_laço 
fim 
 
 
 
c) Digrama de blocos 
 
 
 
Português estruturado 
 
programa C05EX5C 
var 
 S, I : inteiro 
início 
 S ¬ 0 
 I ¬ 1 
 laço 
 S ¬ S + I 
 saia_caso (I >= 100) 
 I ¬ I + 1 
 fim_laço 
 escreva S 
fim 
 
 76 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores 
d) Diagrama de blocos 
 
 
Português estruturado 
 
programa C05EX5D 
var 
 S, I, RESTO : inteiro 
início 
 S ¬ 0 
 I ¬ 1 
 laço 
 RESTO ¬ I - 2 * (I div 2) 
 se (RESTO = 0) então 
 S ¬ S + I 
 fim_se 
 saia_caso (I >= 500) 
 I ¬ I + 1 
 fim_laço 
 escreva S 
fim 
 
e) Digrama de blocos 
 
Português estruturado 
 
programa C05EX5E 
var 
 I, RESTO : inteiro 
início 
 I ¬ 0 
 laço 
 RESTO ¬ I - 2 * (I div 2) 
 se (RESTO <> 0) então 
 escreva I 
 fim_se 
 saia_caso (I >= 20) 
 I ¬ I + 1 
 fim_laço 
fim 
 
 77 
f) Diagrama de blocos 
 
Português estruturado 
 
programa C05EX5F 
var 
 I, RESTO : inteiro 
início 
 I ¬ 1 
 laço 
 RESTO ¬ I - 4 * (I div 4) 
 se (RESTO = 0) então 
 escreva I 
 fim_se 
 saia_caso (I >= 199) 
 I ¬ I + 1 
 fim_laço 
fim 
 
 
 
 
 
g) Digrama de blocos 
 
Português estruturado 
 
programa C05EX5G 
var 
 P, I : inteiro 
início 
 P ¬ 1 
 I ¬ 0 
 laço 
 escreva P 
 P ¬ P * 3 
 saia_caso (I >= 15) 
 I ¬ I + 1 
 fim_laço 
fim 
 
 78 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores 
h) Diagrama de blocos 
 
Português estruturado 
 
programa C05EX5H 
var 
 P, I, B, E : inteiro 
início 
 leia B, E 
 P ¬ 1 
 I ¬ 1 
 laço 
 se (E = 0) então 
 P ¬ 1 
 senão 
 P ¬ P * B 
 fim-se 
 saia_caso (I >= E) 
 I ¬ I + 1 
 fim_laço 
 escreva P 
fim 
 
 79 
 
i) Digrama de blocos 
 
Português estruturado 
 
programa C05EX5I 
var 
 I, ATUAL, ANTERIOR, PRÓXIMO : inteiro 
início 
 ANTERIOR ¬ 0 
 ATUAL ¬ 1 
 I ¬ 1 
 laço 
 escreva ATUAL 
 PRÓXIMO ¬ ATUAL + ANTERIOR 
 ANTERIOR ¬ ATUAL 
 ATUAL ¬ PRÓXIMO 
 saia_caso (I >= 15) 
 I ¬ I + 1 
 fim_laço 
fim 
 
j) Diagrama de blocos 
 
Português estruturado 
 
programa C05EX5J 
var 
 C, F : real 
início 
 C ¬ 10 
 laço 
 F ¬ (9 * C + 160) / 5 
 escreva C, F 
 saia_caso (C >= 100) 
 C ¬ C + 10 
 fim_laço 
fim 
 
 
 
 80 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores 
k) Digrama de blocos 
 
Português estruturado 
 
programa C05EX5K 
var 
 I, GRÃO, QUADRO : inteiro 
início 
 GRÃO ¬ 0 
 QUADRO ¬ 1 
 I ¬ 1 
 laço 
 GRÃO ¬ GRÃO + QUADRO 
 QUADRO ¬ QUADRO * 2 
 saia_caso (I >= 64) 
 I ¬ I + 1 
 fim_laço 
 escreva GRÃO 
fim 
 
l) Diagrama de blocos 
 
Português estruturado 
 
programa C05EX5L 
var 
 I, J, N, S, F : inteiro 
início 
 S ¬ 0 
 I ¬ 1 
 laço 
 leia N 
 F ¬ 1 
 J ¬ 1 
 laço 
 F ¬ F * J 
 saia_caso (J >= N) 
 J ¬ J + 1 
 fim_laço 
 S ¬ S + F 
 saia_caso (I >= 15) 
 I ¬ I + 1 
 fim_laço 
 escreva S 
fim 
 
 81 
 m) Digrama de blocos 
 
Português estruturado 
 
programa C05EX5M 
var 
 I, N, SOMA : inteiro 
 MÉDIA: real 
início 
 SOMA ¬ 0 
 I ¬ 1 
 laço 
 leia N 
 SOMA ¬ SOMA + N 
 saia_caso (I >= 10) 
 I ¬ I + 1 
 fim_laço 
 MÉDIA ¬ SOMA / 10 
 escreva SOMA, MÉDIA 
fim 
 
n) Diagrama de blocos 
 
Português estruturado 
 
programa C05EX5N 
var 
 TOTAL : inteiro 
 SOMA, MÉDIA, N : real 
início 
 TOTAL ¬ 0 
 SOMA ¬ 0 
 laço 
 leia N 
 se (N >= 0) então 
 SOMA ¬ SOMA + N 
 TOTAL ¬ TOTAL + 1 
 fim_se 
 saia_caso (N < 0) 
 fim_laço 
 se (TOTAL > 0) então 
 MÉDIA ¬ SOMA / TOTAL 
 fim_se 
 escreva SOMA, TOTAL, MÉDIA 
fim 
 82 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores 
o) Digrama de blocos 
 
Português estruturado 
 
programa C05EX5O 
var 
 FAT, R, I, J : inteiro 
início 
 I ¬ 1 
 laço 
 R ¬ I - 2 * (I div 2) 
 se (R <> 0) então 
 FAT ¬ 1 
 J ¬ 1 
 laço 
 FAT ¬ FAT * J 
 saia_caso (J >= I) 
 J ¬ J + 1 
 fim_laço 
 escreva FAT 
 fim_se 
 saia_caso (I >= 10) 
 I ¬ I + 1 
 fim_laço 
fim 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 83 
p) Diagrama de blocos 
 
Português estruturado 
 
programa C05EX5P 
var 
 TOTAL, SOMA, R, I : inteiro 
 MÉDIA : real 
início 
 TOTAL ¬ 0 
 SOMA ¬ 0 
 I ¬ 50 
 laço 
 R ¬ I - 2 * (I div 2) 
 se (R = 0) então 
 SOMA ¬ SOMA + I 
 TOTAL ¬ TOTAL + 1 
 fim_se 
 saia_caso (I >= 70) 
 I ¬ I + 1 
 fim_laço 
 MÉDIA ¬ SOMA / TOTAL 
 escreva SOMA, MÉDIA 
fim 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 84 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores 
q) Digrama de blocos 
 
Português estruturado 
 
programa C05EX5Q 
var 
 CÔMODO, RESPOSTA : cadeia 
 TOTAL, ÁREA, LARGURA, COMPRIMENTO : real 
início 
 TOTAL ¬ 0 
 RESPOSTA ¬ "SIM" 
 laço 
 leia CÔMODO, LARGURA, COMPRIMENTO 
 ÁREA ¬ LARGURA * COMPRIMENTO 
 TOTAL ¬ TOTAL + ÁREA 
 escreva ÁREA, "Deseja calcular novo cômodo? " 
 leia RESPOSTA 
 saia_caso (RESPOSTA <> "SIM") 
 fim_laço 
escreva TOTAL 
fim 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 85 
r) Diagrama de blocos 
 
Português estruturado 
 
programa C05EX5R 
var 
 N, VALOR_MAIOR, VALOR_MENOR : inteiro 
início 
 leia N 
 VALOR_MAIOR ¬ N 
 VALOR_MENOR ¬ N 
 laço 
 se (VALOR_MAIOR < N) então 
 VALOR_MAIOR ¬ N 
 fim_se 
 se (VALOR_MENOR > N) então 
 VALOR_MENOR ¬ N 
 fim_se 
 leia N 
 fim_laço (N >= 0) 
 escreva VALOR_MAIOR, VALOR_MENOR 
fim 
s) Digrama de blocos 
 
Português estruturado 
 
programa C05EX5S 
var 
 QUOCIENTE, DIVIDENDO, DIVISOR : inteiro 
início 
 leia DIVIDENDO, DIVISOR 
 QUOCIENTE ¬ 0 
 laço 
 DIVIDENDO ¬ DIVIDENDO - DIVISOR 
 QUOCIENTE ¬ QUOCIENTE + 1 
 saia_caso (DIVISOR >= DIVIDENDO) 
 fim_laço 
 escreva QUOCIENTE 
fim 
 86 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores 
 
 
t) Diagrama de bloco 
 
Português estruturado 
 
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 
 
 
 
 
 
 
5.6 - Laço de Repetição Incondicional 
Tópico 5.9 - Exercício 6 
a) Diagrama de blocos 
 
Português estruturado 
 
programa C05EX6A 
var 
 QUADRADO, I : inteiro 
início 
 para I de 15 até 200 passo 1 faça 
 QUADRADO ¬ I ­ 2 
 escreva QUADRADO 
 fim_para 
fim 
 
 87 
b) Diagrama de blocos 
 
 
Português estruturado 
 
programa C05EX6B 
var 
 N, I, R : inteiro 
início 
 leia N 
 para I de 1 até 10 passo 1 faça 
 R ¬ N * I 
 escreva N, " X ", I, " = ", R 
 fim_para 
fim 
c) Diagrama de blocos 
 
Português estruturado 
 
programa C05EX6C 
var 
 S, I : inteiro 
início 
 S ¬ 0 
 para I de 1 até 100 passo 1 faça 
 S ¬ S + I 
 fim_para 
 escreva S 
fim 
 
 
d) Diagrama de blocos 
 
Português estruturado 
 
programa C05EX6D 
var 
 S, I, RESTO : inteiro 
início 
 S ¬ 0 
 para I de 1 até 500 passo 1 faça 
 RESTO ¬ I - 2 * (I div 2) 
 se (RESTO = 0) então 
 S ¬ S + I 
 fim_se 
 fim_para 
 escreva S 
fim 
 
 88 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores 
e) Diagrama de blocos 
 
 
Português estruturado 
 
programa C05EX6E 
var 
 I, RESTO : inteiro 
início 
 para I de 0 até 20 passo 1 faça 
 RESTO ¬ I - 2 * (I div 2) 
 se (RESTO <> 0) então 
 escreva I 
 fim_se 
 fim_para 
fim 
f) Diagrama de blocos 
 
 
Português estruturado 
 
programa C05EX6F 
var 
 I, RESTO : inteiro 
início 
 para I de 1 até 199 passo 1 faça 
 RESTO ¬ I - 4 * (I div 4) 
 se (RESTO = 0) então 
 escreva I 
 fim_se 
 fim_para 
fim 
 
g) Diagrama de blocos 
 
 
 
Português estruturado 
 
programa C05EX6G 
var 
 P, I : inteiro 
início 
 P ¬ 1 
 para I de 0 até 15 passo 1 faça 
 escreva P 
 P ¬ P * 3 
 fim_para 
fim 
 
 89 
h) Diagrama de blocos 
 
Português estruturado 
 
programa C05EX6H 
var 
 P, I, B, E : inteiro 
início 
 leia B, E 
 P ¬ 1 
 para I de 1 até E passo 1 faça 
 P ¬ P * B 
 fim_para 
 escreva P 
fim 
 
i) Diagrama de blocos 
 
Português estruturado 
 
programa C05EX6I 
var 
 I, ATUAL, ANTERIOR, PRÓXIMO : inteiro 
início 
 ANTERIOR ¬ 0 
 ATUAL ¬ 1 
 para I de 1 até 15 passo 1 faça 
 escreva ATUAL 
 PRÓXIMO ¬ ATUAL + ANTERIOR 
 ANTERIOR ¬ ATUAL 
 ATUAL ¬ PRÓXIMO 
 fim_para 
fim 
j) Diagrama de blocos 
 
 
Português estruturado 
 
programa C05EX6J 
var 
 C, F : real 
início 
 para C de 10 até 100 passo 10 faça 
 F ¬ (9 * C + 160) / 5 
 escreva C, F 
 fim_para 
fim 
 
 90 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores 
k) Diagrama de blocos 
 
Português estruturado 
 
programa C05EX6K 
var 
 I, GRÃO, QUADRO : inteiro 
início 
 GRÃO ¬ 0 
 QUADRO ¬ 1 
 para I de 1 até 64 passo 1 faça 
 GRÃO ¬ GRÃO + QUADRO 
 QUADRO ¬ QUADRO * 2 
 fim_para 
 escreva GRÃO 
fim 
 
 
 
l) Diagrama de blocos 
 
 
 
 
Português estruturado 
 
programa C05EX6L 
var 
 I, J, N, S, F : inteiro 
início 
 S ¬ 0 
 para I de 1 até 15 passo 1 faça 
 leia N 
 F ¬ 1 
 para J de 1 até N passo 1 faça 
 F ¬ F * J 
 fim_para 
 S ¬ S + F 
 fim_para 
 escreva S 
fim 
 
 91 
m) Diagrama de blocos 
 
Português estruturado 
 
programa C05EX6M 
var 
 I, N, SOMA : inteiro 
 MÉDIA : real 
início 
 SOMA ¬ 0 
 para I de 1 até 10 passo 1 faça 
 leia N 
 SOMA ¬ SOMA + N 
 fim_para 
 MÉDIA ¬ SOMA / 10 
 escreva SOMA, MÉDIA 
fim 
n) Não é possível resolver este exercício com este tipo de laço de repetição. 
 
 
 
 
o) Diagrama de blocos 
 
 
Português estruturado 
 
programa C05EX6O 
var 
 FAT, R, I, J : inteiro 
início 
 para I de 1 até 10 passo 1 faça 
 R ¬ I - 2 * (I div 2) 
 se (R <> 0) então 
 FAT ¬ 1 
 para J de 1 até I passo 1 faça 
 FAT ¬ FAT * J 
 fim_para 
 escreva FAT 
 fim_se 
 fim_para 
fim 
 
 
 92 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores 
p) Diagrama de blocos 
 
Português estruturado 
 
programa C05EX6P 
var 
 TOTAL, SOMA, R, I : inteiro 
 MÉDIA : real 
início 
 TOTAL ¬ 0 
 SOMA ¬ 0 
 para I de 50 até 70 passo 1 faça 
 R ¬ I - 2 * (I div 2) 
 se (R = 0) então 
 SOMA ¬ SOMA + I 
 TOTAL ¬ TOTAL + 1 
 fim_se 
 fim_para 
 MÉDIA ¬ SOMA / TOTAL 
 escreva SOMA, MÉDIA 
fim 
 
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. 
 
t) Diagrama de bloco 
 
Português estruturado 
 
programa C05EX6T 
var 
 I : inteiro 
início 
 para I de 15 até 200 passo 3 faça 
 escreva I ­ 2 
 fim_para 
fim 
 
 
 93 
6 - Exercícios de fixação do capítulo 6 
Tópico 6.4 - Exercício 1 
a) Diagrama de blocos 
 
 
Português estruturado 
 
programa C06EX1A 
var 
 A : conjunto[1..10] de cadeia 
 I : 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 
 escreva A[I] 
 fim_para 
fim 
 
b) Diagrama de blocos 
 
Português estruturado 
 
programa C06EX1B 
var 
 A, B : conjunto[1..8] de inteiro 
 I : inteiro 
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] * 3 
 fim_para 
 para I de 1 até 8 passo 1 faça 
 escreva B[I] 
 fim_para 
fim 
 
 94 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores 
 
c) Diagrama de blocos 
 
 
 
 
 
 
 
 
 
 
 
 
Português estruturado 
 
programa C06EX1C 
var 
 A, B, C : conjunto[1..20] de real 
 I : inteiro 
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 
 leia B[I] 
 fim_para 
 para I de 1 até 20 passo 1 faça 
 C[I] ¬ A[I] - B[I] 
 fim_para 
 para I de 1 até 20 passo 1 faça 
 escreva C[I] 
 fim_para 
fim 
 
 
 95 
d) Diagrama de blocos 
 
Português estruturado 
 
programa C06EX1D 
var 
 A, B : conjunto[1..15] de inteiro 
 I : 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 
 B[I] ¬ A[I] ­ 2 
 fim_para 
 para I de 1 até 15 passo 1 faça 
 escreva A[I], B[I] 
 fim_para 
fim 
 
e) Diagrama de blocos 
 
 
Português estruturado 
 
programa C06EX1E 
var 
 A, B : conjunto[1..15] de inteiro 
 I, J : 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 
 B[I] ¬ 1 
 para J de 1 até A[I] passo 1 faça 
 B[I] ¬ B[I] * J 
 fim_para 
 fim_para 
 para I de 1 até 15 passo 1 faça 
 escreva A[I], B[I] 
 fim_para 
fim 
 
 96 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores 
f) Diagrama de blocos 
 
Português estruturado 
 
programa C06EX1F 
var 
 A, B : conjunto[1..15] de inteiro 
 C : conjunto[1..30] de inteiro 
 I : 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] ¬ A[I] 
 C[I + 15] ¬ B[I] 
 fim_para 
 para I de 1 até 30 passo 1 faça 
 escreva C[I] 
 fim_para 
fim 
 
g) Diagrama de blocos 
 
Português estruturado 
 
programa C06EX1G 
var 
 A : conjunto[1..20] de cadeia 
 B : conjunto[1..30] de cadeia 
 C : conjunto[1..50] de cadeia 
 I : inteiro 
início 
 para I de 1 até 20 passo 1 faça 
 leia A[I] 
 fim_para 
 para I de 1 até 30 passo 1 faça 
 leia B[I] 
 fim_para 
 para I de 1 até 50 passo 1 faça 
 se (I <= 20) então 
 C[I] ¬ A[I] 
 senão 
 C[I] ¬ B[I - 20] 
 fim_se 
 fim_para 
 para I de 1 até 50 passo 1 faça 
 escreva C[I] 
 fim_para 
fim 
 97 
h) Diagrama de blocos 
 
Português estruturado 
 
programa C06EX1H 
var 
 A, B : conjunto[1..20] de real 
 I, J : inteiro 
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[21 – I] 
 fim_para 
 para I de 1 até 20 passo 1 faça 
 escreva A[I], B[I] 
 fim_para 
fim 
 
i) Diagrama de blocos 
 
Português estruturado 
 
programa C06EX1I 
var 
 A, B, C : conjunto[1..5] de real 
 D : conjunto[1..15] de real 
 I : inteiro 
início 
 para I de 1 até 5 passo 1 faça 
 leia A[I] 
 fim_para 
 para I de 1 até 5 passo 1 faça 
 leia B[I] 
 fim_para 
 para I de 1 até 5 passo 1 faça 
 leia C[I] 
 fim_para 
 para I de 1 até 5 passo 1 faça 
 D[I] ¬ A[I] 
 D[I + 5] ¬ B[I] 
 D[I + 10] ¬ C[I] 
 fim_para 
 para I de 1 até 15 passo 1 faça 
 escreva D[I] 
 fim_para 
fim 
 
 98 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores 
 
k) Diagrama de blocos 
 
Português estruturado 
 
programa C06EX1K 
var 
 A, B : conjunto[1..10] de inteiro 
 I : inteiro 
início 
 para I de 1 até 10 passo 1 faça 
 repita 
 leia A[I] 
 até_que (A[I] >= 0) 
 fim_para 
 para I de 1 até 10 passo 1 faça 
 B[I] ¬ A[I] * (-1) 
 fim_para 
 para I de 1 até 10 passo 1 faça 
 escreva B[I] 
 fim_para 
fim 
 
 
l) Diagrama de blocos 
 
Português estruturado 
 
programa C06EX1L 
var 
 A : conjunto[1..10] de inteiro 
 B : conjunto[1..10] de real 
 I : 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 
 B[I] ¬ A[I] / 2 
 fim_para 
 para I de 1 até 10 passo 1 faça 
 escreva A[I], B[I] 
 fim_para 
fim 
 
 
 99 
 
m) Diagrama de blocos 
 
Português estruturado 
 
programa C06EX1M 
var 
 A : conjunto[1..10] de inteiro 
 I, N : inteiro 
início 
 leia N 
 para I de 1 até 10 passo 1 faça 
 A[I] ¬ N * I 
 fim_para 
 para I de 1 até 10 passo 1 faça 
 escreva A[I] 
 fim_para 
fim 
n) Diagrama de blocos 
 
Português estruturado 
 
programa C06EX1N 
var 
 A : conjunto[1..20] de real 
 SOMA, MÉDIA, VALOR_MAIOR, VALOR_MENOR : real 
 I : inteiro 
início 
 para I de 1 até 20 passo 1 faça 
 leia A[I] 
 SOMA ¬ SOMA + A[I] 
 fim_para 
 VALOR_MAIOR ¬ A[1] 
 VALOR_MENOR ¬ A[1] 
 para I de 2 até 20 passo 1 faça 
 se (VALOR_MAIOR < A[I]) então 
 VALOR_MAIOR ¬ A[I] 
 fim_se 
 se (VALOR_MENOR > A[I]) então 
 VALOR_MENOR ¬ A[I] 
 fim_se 
 fim_para 
 MÉDIA ¬ SOMA / 20 
 escreva VALOR_MAIOR, VALOR_MENOR, MÉDIA 
fim 
 
 100 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores 
 
o) Diagrama de blocos 
 
Português estruturado 
 
programa C06EX1O 
var 
 A, B : conjunto[1..25] de real 
 I : inteiro 
início 
 para I de 1 até 25 passo 1 faça 
 leia A[I] 
 fim_para 
 para I de 1 até 25 passo 1 faça 
 B[I] ¬ (9 * A[I] = 160) / 5 
 fim_para 
 para I de 1 até 25 passo 1 faça 
 escreva A[I], B[I] 
 fim_para 
fim 
p) Diagrama de blocos 
 
Português estruturado 
 
programa C06EX1P 
var 
 A, B : conjunto[1..12] de inteiro 
 I, R : inteiro 
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 
 R ¬ A[I] - 2 * (A[I] div 2) 
 se (R <> 0) então 
 B[I] ¬ A[I] * 2 
 senão 
 B[I] ¬ A[I] 
 fim_se 
 fim_para 
 para I de 1 até 12 passo 1 faça 
 escreva B[I] 
 fim_para 
fim 
 101 
 
q) Diagrama de blocos 
 
Português estruturado 
 
programa C06EX1Q 
var 
 A, B : conjunto[1..15] de real 
 I, R : 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 
 R ¬ I - 2 * (I div 2) 
 se (R = 0) então 
 B[I] ¬ A[I] / 2 
 senão 
 B[I] ¬ A[I] * 1.5 
 fim_se 
 fim_para 
 para I de 1 até 15 passo 1 faça 
 escreva B[I] 
 fim_para 
fim 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 102 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores 
 
 
r) Diagrama de blocos 
 
Português estruturado 
 
programa C06EX1R 
var 
 A, B, C, D : conjunto[1..6] de inteiro 
 I, J, K, R, X, Y : inteiro 
início 
 para I de 1 até 6 passo 1 faça 
 leia A[I] 
 fim_para 
 para I de 1 até 6 passo 1 faça 
 leia B[I] 
 fim_para 
 J ¬ 1 
 K ¬ 2 
 X ¬ 1 
 Y ¬ 1 
 para I de 1 até 6 passo 1 faça 
 R ¬ I - 2 * (I div 2) 
 se (R <> 0) então 
 C[X] ¬ A[J] 
 C[X + 3] ¬ B[J] 
 J ¬ J + 2 
 X ¬ X + 1 
 senão 
 D[Y] ¬ A[K] 
 D[Y + 3] ¬ B[K] 
 K ¬ K + 2 
 Y ¬ Y + 1 
 fim_se 
 fim_para 
 para I de 1 até 6 passo 1 faça 
 escreva C[I], D[I] 
 fim_para 
fim 
 
 
 
 
 
 
 
 103 
 
s) Diagrama de blocos 
 
Português estruturado 
 
programa C06EX1S 
var 
 A, B : conjunto[1..6] de inteiro 
 C : conjunto[1..12] de inteiro 
 I, R : inteiro 
início 
 para I de 1 até 6 passo 1 faça 
 repita 
 leia A[I] 
 R ¬ A[I] - 2 * (A[I] div 2) 
 até_que (R = 0) 
 fim_para 
 para I de 1 até 6 passo 1 faça 
 repita 
 leia B[I] 
 R ¬ B[I] - 2 * (B[I] div 2) 
 até_que (R <> 0) 
 fim_para 
 para I de 1 até 6 passo 1 faça 
 C[I] ¬ A[I] 
 C[I+ 6] ¬ B[I] 
 fim_para 
 para I de 1 até 12 passo 1 faça 
 escreva C[I] 
 fim_para 
fim 
 
 
 
 
 
 
 
 
 
 
 
 104 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores 
t) Diagrama de blocos 
 
Português estruturado 
 
programa C06EX1T 
var 
 A, B : conjunto[1..10] de inteiro 
 C : conjunto[1..20] de inteiro 
 I, R2, R3, R5 : inteiro 
início 
 para I de 1 até 10 passo 1 faça 
 repita 
 leia A[I] 
 R2 ¬ A[I] - 2 * (A[I] div 2) 
 R3 ¬ A[I] - 3 * (A[I] div 3) 
 até_que (R2 = 0) .e. (R3 = 0) 
 fim_para 
 para I de 1 até 10 passo 1 faça 
 repita 
 leia B[I] 
 R5 ¬ B[I] - 5 * (B[I] div 5) 
 até_que (R5 = 0) 
 fim_para 
 para I de 1 até 10 passo 1 faça 
 C[I] ¬ A[I] 
 C[I + 10] ¬ B[I] 
 fim_para 
 para I de 1 até 20 passo 1 faça 
 escreva C[I] 
 fim_para 
fim 
 
 
 
 
 
 
 
 
 
 
 
 105 
u) Diagrama de blocos 
 
Português estruturado 
 
programa C06EX1U 
var 
 A, B : conjunto[1..12] de inteiro 
 C : conjunto[1..24] de inteiro 
 I, R2, R3, R5 : inteiro 
início 
 para I de 1 até 12 passo 1 faça 
 repita 
 leia A[I] 
 R2 ¬ A[I] - 2 * (A[I] div 2) 
 R3 ¬ A[I] - 3 * (A[I] div 3) 
 até_que (R2 = 0) .ou. (R3 = 0) 
 fim_para 
 para I de 1 até 12 passo 1 faça 
 repita 
 leia B[I] 
 R5 ¬ B[I] - 5 * (B[I] div 5) 
 até_que .não. (R5 = 0) 
 fim_para 
 para I de 1 até 12 passo 1 faça 
 C[I] ¬ A[I] 
 C[I + 12] ¬ B[I] 
 fim_para 
 para I de 1 até 24 passo 1 faça 
 escreva C[I] 
 fim_para 
fim 
 
 
 
 
 
 
 
 
 
 
 
 106 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores 
v) Diagrama de blocos 
 
Português estruturado 
 
programa C06EX1V 
var 
 A : conjunto[1..30] de inteiro 
 I, R, QP, QI : inteiro 
início 
 para I de 1 até 30 passo 1 faça 
 leia A[I] 
 fim_para 
 QP ¬ 0 
 QI ¬ 0 
 para I de 1 até 30 passo 1 faça 
 R ¬ A[I] - 2 * (A[I] div 2) 
 se (R = 0) então 
 QP ¬ QP + 1 
 senão 
 QI ¬ QI + 1 
 fim_se 
 fim_para 
 escreva QP, QI 
fim 
w) Diagrama de blocos 
 
Português estruturado 
 
programa C06EX1W 
var 
 A, B, C : conjunto[1..10] de inteiro 
 I : 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] + B[I]) ­ 2 
 fim_para 
 para I de 1 até 10 passo 1 faça 
 escreva C[I] 
 fim_para 
fim 
 
 107 
 
x) Diagrama de blocos 
 
Português estruturado 
 
programa C06EX1X 
var 
 A, B : conjunto[1..6] de real 
 I, R : inteiro 
início 
 para I de 1 até 6 passo 1 faça 
 leia A[I] 
 fim_para 
 para I de 1 até 6 passo 1 faça 
 R ¬ I – 2 * (I div 2) 
 se (R <> 0) então 
 B[I] ¬ A[I + 1] 
 senão 
 B[I] ¬ A[I - 1] 
 fim_se 
 fim_para 
 para I de 1 até 6 passo 1 faça 
 escreva A[I], B[I] 
 fim_para 
fim 
 
 
y) Diagrama de blocos 
 
Português estruturado 
 
programa C06EX1Y 
var 
 A : conjunto[1..15] de inteiro 
 I, TP, R : inteiro 
início 
 para I de 1 até 15 passo 1 faça 
 leia A[I] 
 fim_para 
 TP ¬ 0 
 para I de 1 até 15 passo 1 faça 
 R ¬ A[I] – 2 * (A[I] div 2) 
 se (R = 0) então 
 TP ¬ TP + 1 
 fim_se 
 fim_para 
 escreva TP 
fim 
 
 108 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores 
z) Diagrama de blocos 
 
Português estruturado 
 
programa C06EX1Z 
var 
 A : conjunto[1..10] de inteiro 
 I, TI, R : inteiro 
 PTI : real 
início 
 para I de 1 até 10 passo 1 faça 
 leia A[I] 
 fim_para 
 TI ¬ 0 
 para I de 1 até 10 passo 1 faça 
 R ¬ A[I] – 2 * (A[I] div 2) 
 se (R <> 0) então 
 TI ¬ TI + 1 
 fim_se 
 fim_para 
 PTI ¬ TI / 10 * 100 
 escreva TI, PTI 
fim 
 
 
 109 
7 - Exercícios de fixação do capítulo 7 
Tópico 7.5 - Exercício 1 
a) Diagrama de blocos 
 
Português estruturado 
 
programa C07EX1A 
var 
 A : conjunto[1..12] de inteiro 
 I, J, X : inteiro 
início 
 para I de 1 até 12 passo 1 faça 
 leia A[I] 
 fim_para 
 para I de 1 até 11 passo 1 faça 
 para J de I + 1 até 12 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 
 para I de 1 até 12 passo 1 faça 
 escreva A[I] 
 fim_para 
fim 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 110 Algoritmos - Lógica para Desenvolvimento de Programação de Computadores 
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 
c) Diagrama de blocos 
 
Português estruturado 
 
programa C07EX1C 
var 
 A, B : 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 
 B[I] ¬ 1 
 para J de 1 até A[I] passo 1 faça 
 B[I] ¬ B[I] * J 
 fim_para 
 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é 15 passo 1 faça 
 escreva B[I] 
 fim_para 
fim 
 
 
 
 
 
 
 
 
 
 
 113 
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 
 
 para I de 1 até 12 passo 1 faça 
 leia A[I] 
 fim_para 
 
 para I de 1 até 11 passo 1 faça 
 para J de I + 1 até 12 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 
 
 para I de 1 até 12 passo 1 faça 
 leia B[I] 
 fim_para 
 
 para I de 1 até 11 passo 1 faça 
 para J de I + 1 até 12 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é 12 passo 1 faça 
 C[I] ¬ A[I] + B[I] 
 fim_para 
 
 para I de 1 até 11 passo 1 faça 
 para J de I + 1 até 12 passo 1 faça 
 se (C[I] < C[J]) então 
 X ¬ C[I] 
 C[I] ¬ C[J] 
 C[J] ¬ X 
 fim_se 
 fim_para 
 fim_para 
 
 para I de 1 até 12 passo 1 faça 
 escreva C[I] 
 fim_para 
 
fim 
 
 
 
 
 
 
 
 
 
 
 
 115 
e) Diagrama de blocos 
 
Português estruturado 
 
programa C07EX1E 
var 
 A : conjunto[1..20] de cadeia 
 B : conjunto[1..30] de cadeia 
 C : conjunto[1..50] de cadeia 
 I, J : inteiro 
 X : cadeia 
início 
 para I de 1 até 20 passo 1 faça 
 leia A[I] 
 fim_para 
 para I de 1 até 30 passo 1 faça 
 leia B[I] 
 fim_para 
 para I de 1 até 50 passo 1 faça 
 se (I <= 20) então 
 C[I] ¬

Continue navegando