Baixe o app para aproveitar ainda mais
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] ¬
Compartilhar