Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Instituto de Ensino Santo Antonio Apostila de Exercícios de Lógica de Programação Curso: Técnico de Informática Ano: 1º Ano Disciplina: Lógica 1 Versão 2009 Elaborado por: Prof. Fernando Salles Claro Remodelado por: Prof. Vitor Hugo Migoto de Gouvêa 1) Defina os seguintes termos: a) VARIÁVEIS b) CONSTANTES c) PORTUGOL d) FLUXOGRAMA e) ALGORITMO 2) Dada as seguintes declarações: Var Num: inteiro; Soma, X: real; Simbolo: caracter; Nome, Cor, Dia: string; Cod, Teste, Tudo: lógico; Assinalar os comandos de atribuição inválidos: a) ( ) Simbolo = 5; b) ( ) Soma = Num + 2 * X; c) ( ) Tudo = Soma; d) ( ) Cor = 'Preto' - Raiz(X); e) ( ) Teste = Cod ou (Raiz(X) <> Soma); f) ( ) X = X + 1; g) ( ) Num = '*ABC*'; h) ( ) Dia = 'Segunda'; i) ( ) Soma + 2 = Raiz(X); j) ( ) X:= Nome >= Cod; 3) Com as mesmas declarações do exercício acima, quais serão os valores armazenados em SOMA, NOME e TUDO, supondo-se que NUM, X, COR, DIA, TESTE e COD valem, respectivamente, 25, 2.5, 'Azul', 'Terça', Falso e Verdadeiro ? a) Nome = Dia; b) Soma = Raiz(Num) / X + Int(X+1); c) Tudo = não Teste ou Cod e (Soma < X); 4) Dadas as variáveis inteiras X, Y e Z, contendo os valores 2, 5, 9, respectivamente; a variável NOME do tipo string contendo 'MARIA' e a variável lógica SIM contendo o valor FALSO, observar os resultados das expressões lógicas desenvolvidas a seguir: a) (X + Y > Z) E NOME = 'MARIA' b) SIM OU (Y >= X) c) NÃO SIM E (Z DIV Y + 1 = X) d) (NOME = 'JORGE') E SIM OU (X2 < Z + 10) Apostila de Exercícios de Lógica de Programação - 2 - 5) Dada as declarações: Var A,B: REAL; NOME, PROFISSAO: STRING; Completar o quadro abaixo, com o valor das relações indicadas, tendo-se em vista os valores atribuídos às variáveis: VARIÁVEIS RELAÇÕES A B NOME PROFISSAO A + 1 >= Raiz(B) NOME <> 'ANA' PROFISSAO = 'MEDICO' 3.0 16.0 'MIRIAN' 'ADVOGADO' 5.0 64.0 'PEDRO' 'MEDICO' 2.5 9.0 'ANA' 'PROFESSOR' 6) Se A=127, B=10, C=5, D=FALSO e E=VERDADEIRO. Qual é o valor produzido por cada uma das sentenças abaixo?NÃO D; a) D E E; b) ( A > B ) OU ( B < C ); c) NÃO ( A < B ); d) ( D E E ) OU ( A = B); e) ( D OU E) E ( A < B); f) A + B < C E D OU E E NÃO D; g) A + B * C/B = 3 E NÃO ( A = B); 7) Qual é a primeira operação executada em cada um dos comandos abaixo? a) X + Y - Z; b) A + B / C**2; c) JOAO + JOSE / JOEL; d) MARIA + JOAO + BETE + JULIA; e) X + Y + B**2 + R * 3; 8) Os comandos: A = B = C; e se B=C então A = VERDADEIRO; senão A = FALSO; fimse; São equivalentes? Explique por quê. Apostila de Exercícios de Lógica de Programação - 3 - 9) Tendo as variáveis SALARIO, IR e SALLIQ, e considerando os valores abaixo. Informe se as expressões são verdadeiras ou falsas. SALARIO IR SALLIQ EXPRESSÃO V ou F 100,00 0,00 100,00 (SALLIQ >= 100,00) 200,00 10,00 190,00 (SALLIQ < 190,00) 300,00 15,00 285,00 SALLIQ = SALÁRIO - IR 10) Sabendo que A=3, B=7 e C=4, informe se as expressões abaixo são verdadeiras ou falsas. a) (A+C) > B ( ) b) B >= (A + 2) ( ) c) C = (B –A) ( ) d) (B + A) <= C ( ) e) (C+A) > B ( ) 11) Sabendo que A=5, B=4 e C=3 e D=6, informe se as expressões abaixo são verdadeiras ou falsas. a) (A > C) E (C <= D) ( ) b) (A+B) > 10 OU (A+B) = (C+D) ( ) c) (A>=C) E (D >= C) ( ) 12) Observe o algoritmo abaixo: var B1,B2,B3: lógico; início se (B1) então C1; senão se (B2) então se (B3) então C2; senão C3; C4; fimse; fimse; C5; fimse; fim. Dado o algoritmo acima, responda: a) Se B1 = VERDADEIRO, B2 = VERDADEIRO, B3 = FALSO, quais os comandos Apostila de Exercícios de Lógica de Programação - 4 - que serão executados ? b) Se B1 = FALSO, B2 = VERDADEIRO, B3 = FALSO, quais os comandos que serão executados ? c) Quais os valores de B1, B2 e B3 para que somente o comando C5 seja executado ? d) Se B1 = FALSO, B2 = VERDADEIRO e B3 = VERDADEIRO, quais os comandos que serão executados ? 13) Qual o valor de L após a execução do algoritmo abaixo? var A,B,C: lógico; X,Y: real; V,L: inteiro; início A = V; B = V; C = F; X = 1.5; Y = 3.2; X = X + 1; se ((C) ou ((X + Y > 5) ou ( não A e B))) então L = 0; senão L = 1; fimse; fim. 14) O que está errado no algoritmo abaixo? var N,PAR,X: inteiro; início leia (N); X = N mod 2; se (X = 0) então PAR = V; senão PAR = F; fimse; fim. Apostila de Exercícios de Lógica de Programação - 5 - 15) Escreva um algoritmo para calcular o consumo médio de um automóvel (medido em Km/l), dado que são conhecidos a distância total percorrida e o volume de combustível consumido para percorrê-la (medido em litros). FÓRMULA: ONDE: CM = CONSUMO MÉDIO DIST = DISTÂNCIA VOL = VOLUME DE COMBUSTÍVEL CONSUMIDO 16) Uma empresa decide dar um reajuste a seus funcionários de acordo com os seguintes critérios: 50% para aqueles que ganham menos de R$ 3.000,00; 20% para aqueles que ganham entre R$ 3.000,01 e R$ 10.000 e; 15% para os demais. Escreva um algoritmo para calcular e imprimir o valor do salário reajustado de cada funcionário da empresa. 17) Tendo-se como dados de entrada a altura e o sexo de uma pessoa, construa um algoritmo que calcule seu peso ideal, utilizando as seguintes fórmulas: para homens: (72,7 * h) – 58; para mulheres: (62,1 * h) – 44,7. 18) Elabore um algoritmo que, dada a idade de um nadador, classifique-o em uma das seguintes categorias: infantil A – 5 a 7 anos; infantil B – 8 a 10 anos; juvenil A – 11 a 13 anos; juvenil B – 14 a 17 anos; sênior – maiores de 17 anos. 19) Construa um algoritmo que leia três números inteiros e os imprima em ordem crescente. 20) Escreva um algoritmo que leia a MÉDIA de um aluno e que determine e imprima a mensagem “APROVADO” se o aluno teve média igual ou superior a 7,0, caso contrário o algoritmo deverá imprimir a mensagem “REPROVADO”. 21) Construir um algoritmo, que dado um conjunto de N valores inteiros e positivos, que determine e imprima o maior e o menor dentre os números fornecidos. 22) Escreva um algoritmo que leia os três lados de um triângulo (A, B, C) e que determine e imprima uma mensagem informando o seu tipo, conforme a tabela abaixo: Triângulo Equilátero = 3 lados iguais Triângulo Isósceles = 2 lados iguais Triângulo Escaleno = 3 lados diferentes VOL DIST CM Apostila de Exercícios de Lógica de Programação - 6 - 23) Fazer um algoritmo para achar o maior e o menor número de uma série de 10 números e positivos fornecidos pelo teclado. 24) Escrever um algoritmo para calcular a série abaixo e imprimir o resultado de x. 25) O valor do sen(x) pode ser obtido com boa aproximação dos 30 primeiros termos da série abaixo. Construir um algoritmo que dado o valor de N, calcule e imprima o valor do Sen(n). 26) Construir um algoritmo para calcular a média de um conjunto de 50 valores inteiros e positivos, fornecidos pelo teclado. 27) Sendo: Fazer um algoritmo para calcular e imprimir h. O número N ‚ fornecido pelo teclado. 28) Escreva um algoritmo para calcular o fatorial de um número N, fornecido pelo teclado. 29) Fazer um algoritmo que: Leia um número real X; Determine e imprima o seguinte somatório: Usando os 13 primeiros termos da série: 30) Escrever um algoritmo, que leia um conjunto de 23 dados, cada um, contendo o peso e o código do sexo ("F" ou "M") dos alunos de uma classe, calcule e imprima: Maior e o menor peso da turma; A média de peso dos homens; A média de peso da turma; 31) Escreva um algoritmo para calcular e imprimir a soma de dez números inteiros quaisquer fornecidos pelo usuário. 32) Faça um algoritmo para gerar os N primeiros termos da seguinte seqüência: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, . . . ... !3!2!1 xxx xs n h 1 ... 4 1 3 1 2 1 1 n x 1 ... 4 1 3 1 2 1 1 1 ... !7!5!3!1 sen 7531 nnnn x Apostila de Exercícios de Lógica de Programação - 7 - 33) Escreva um algoritmo para calcular o reajuste salarial de uma empresa que possui 1000 funcionários, de acordo com os seguintes critérios: os funcionários com salário inferior a R$ 10.000,00 devem ter um reajuste de 55%; os funcionários com salários entre R$ 10.000,01 e R$ 25.000,00 devem ter um reajuste de 30% os funcionários com salários superior a R$ 25.000,00 deve ter um reajuste de 20% 34) Uma empresa decide presentear seus 500 funcionários com um bônus de Natal, cujo valor é definido do seguinte modo: os funcionários do sexo masculino com tempo de casa superior a 15 anos terão direito a um bônus de 20% de seu salário; as funcionárias com tempo de casa superior a 10 anos terão direito a um bônus de 25% de seu salário; e os demais funcionários terão direito a um bônus de R$ 5.000,00. Elabore um algoritmo para calcular o valor do bônus concedido a cada funcionário e o impacto de tal atitude no orçamento da empresa (ou seja, o montante total dos bônus concedidos). 35) Construir um algoritmo para calcular o valor de S, usando as 20 primeiras frações da expressão abaixo: 36) Escreva um algoritmo que determine e imprima todos os números primos compreendidos entre 1 e 100. 37) Um rei requisitou os serviços de um sábio e disse-lhe que pagaria qualquer preço. O sábio necessitando de alimentos, indagou o rei sobre o pagamento, se poderia ser feito com grãos de trigo dispostos em um tabuleiro de xadrez, de tal forma que o primeiro quadro deveria conter apenas um grão de trigo e nos quadros seguintes, o dobro do quadro anterior. O rei achou o trabalho barato, pediu que o serviço fosse executado, sem se dar conta de que seria impossível efetuar o pagamento. Faça um algoritmo que calcule e imprima a quantidade total de grãos de trigo que o rei deveria pagar ao sábio. 38) Dados dois números inteiros A e B, construa um algoritmo para calcular e imprimir a soma de todos os números pares existentes entre A e B. 39) Elabore um algoritmo que efetue a soma de todos os números ímpares que são múltiplos de três e que se encontram no conjunto dos números de 1 até 500. 40) Escreva um algoritmo que leia um valor inteiro N e que imprima a sua tabuada de 1 até 10. 41) A conversão de graus Fahrenheit para Centígrados é obtida pela fórmula C = 5/9 (F-32). Escreva um algoritmo que calcule e escreva uma tabela de graus centígrados em função de graus Fahrenheit que variem de 150 até 50 de 0,5 em 0,5. 20 ... 54321 xxxxxx s Apostila de Exercícios de Lógica de Programação - 8 - 42) Realizou-se uma pesquisa para determinar o índice de mortalidade infantil em um certo período. Construa um algoritmo que leia o número de crianças nascidas no período e, depois, num número indeterminado de vezes, o sexo de uma criança morta (“M” ou “F”) e o número de meses de vida da criança. Como finalizador, teremos a palavra “FIM” no lugar do sexo da criança. Determine e imprima: A porcentagem de crianças mortas no período; A porcentagem de crianças mortas no período do sexo masculino; A porcentagem de crianças que viveram dois anos ou menos no período. 43) Fazer um algoritmo para calcular a média aritmética de um conjunto de valores inteiros, positivos e maiores que zero. (considere o valor zero como finalizador do programa). 44) Dado um conjunto de valores inteiros e positivos, fornecidos pelo teclado, fazer um algoritmo para determinar e imprimir o menor valor do conjunto. Um valor com -1 (flag) indica fim dos dados e não devem ser considerados. 45) Construir um algoritmo para fazer a soma de vários valores inteiros e positivos, fornecidos pelo teclado, o último valor deve ser -1 (flag) e não deve ser considerado. 46) Modifique o exercício 5 de modo que seja possível o cálculo do salário reajustado de um número INDETERMINADO de funcionários segundo o mesmo critério de reajuste. Considere o término do cálculo quando o usuário informar um salário igual ou inferior a ZERO. 47) Dado um país A, com 5.000.000 habitantes e uma taxa de crescimento de 3% ao ano, e um país B com 7.000.000 habitantes e uma taxa de natalidade de 2% ao ano. Construa um algoritmo que calcule e imprima quanto tempo é necessário para que a população do país A ultrapasse a população do país B. 48) Em uma eleição presidencial, existem 5 candidatos. Os votos foram registrados em fichas. Cada ficha contém um dos códigos relacionados abaixo: 1, 2, 3, 4, 5 - Voto para os respectivos candidatos 6 - Voto nulo 7 - Voto em branco Construa um algoritmo que: Leias as fichas; Calcule o total de votos de cada candidato; Calcule o total de votos nulos; Calcule o total de votos em branco; Determine o candidato vencedor; Imprima os valores dos itens anteriores. OBS: A última ficha contém o valor ZERO que indica o fim do processamento e que não deve ser considerado. 49) Construa um algoritmo que permita fazer um levantamento do estoque de vinhos de uma adega, tendo como dados de entrada: tipo de vinho (branco, tinto e rosê). Especifique a porcentagem de cada tipo sobre o total geral de vinhos; a quantidade de vinhos é Apostila de Exercícios de Lógica de Programação - 9 - desconhecida (usar como finalizador a constante “FIM”). Apostila de Exercícios de Lógica de Programação - 10 - 50) Construa um algoritmo que, dado um conjunto de valores inteiros e positivos, determine qual o menor e o maior valor do conjunto. O final do conjunto de valores é conhecido através do valor –5, que não deve ser considerado. 51) Foi realizada uma pesquisa de algumas características físicas da população de uma certa região, a qual coletou os seguintes dados referentes a cada habitante para serem analisados: Sexo (“M” ou “F”); Cor dos olhos (“AZUIS”, “VERDES”, “CASTANHOS”); Cor dos cabelos (“LOUROS”, “CASTANHOS”, “PRETOS”); Idade. Faça um algoritmo que determine e escreva: A idade do habitante mais velho; A percentagem de indivíduos do sexo feminino cuja idade está entre 18 e 35 anos inclusive e que tenham olhos verdes e cabelos louros. O final do conjunto de habitantes é reconhecido pelo valor –1 informada como idade. 52) Fulano tem 1,50 metros e cresce 2 centímetros por ano, enquanto Ciclano tem 1,10 metros e cresce 3 centímetros por ano. Construa um algoritmo que calcule e imprima quantos anos serão necessários para que Ciclano seja maior que Fulano. 53) Desenvolver um programa que efetue a leitura de 10 elementos de uma matriz A do tipo vetor. Construir uma matriz B de mesmo tipo, observando a seguinte lei de formação: Se o valor do índice for par, o valor deverá ser multiplicado por 5, sendo ímpar deverá ser somado por 5. Ao final mostrar os conteúdos das duas matrizes. 54) Desenvolver um programa que efetue a leitura de 5 elementos de uma matriz A do tipo vetor. No final, apresente o total da soma de todos os elementos que sejam ímpares. 55) Ler duas matrizes A e B do tipo vetor com 20 elementos. Construir uma matriz C, onde cada elemento de C é a subtração do elemento correspondente de A com B. 56) Ler 15 elementos de uma matriz A do tipo vetor. Construir uma matriz B de mesmo tipo. Observando a seguinte lei de formação: “Todo elemento de B deverá ser o quadrado do elemento de A correspondente”. 57) Ler uma matriz A do tipo vetor com 15 elementos. Construir uma matriz B de mesmo tipo, sendo que cada elemento da matriz B seja o fatorial do elemento correspondente da matriz A. 58) Ler duas matrizes A e B do tipo vetor com 15 elementos cada. Construir uma matriz C, sendo esta a junção das duas outras matrizes. Desta forma, C deverá Ter a capacidade de armazenar 50 elementos. 59) Ler 20 elementos de uma matriz A tipo vetor e construir uma matriz B de mesma dimensão com os mesmos elementos de A, sendo que estes deverão estar invertidos. Ou seja, o primeiro elemento de A passa a ser o último elemento de B. O segundo elemento de A passa a ser o penúltimo de B e assim por diante. Apostila de Exercícios de Lógica de Programação - 11 - 60) Ler duas matrizes A e B, cada uma de duas dimensões com 5 linhas e 3 colunas. Construir uma matriz C de mesma dimensão, onde C é formada pela soma dos elementos da matriz A com os elementos da matriz B. 61) Dada a matriz MAT abaixo: 1 2 3 4 1 O Q * I 2 E A E S 3 R E U T 4 A * * S Qual será a configuração de MAT depois de executado o algoritmo abaixo? Algoritmo Quebra_Cabeça; Tipo M1: Matriz[1..4,1..4] de caractere; Var I, J: inteiro; AUX: caractere; MAT: M1; Início : : Para I = 1 até 4 faça Para J = I + 1 até 4 faça AUX = MAT[ I, J ]; MAT [ I, J] = MAT [ J, I]; MAT [ J, I] = AUX; Fimpara; Fimpara; AUX = MAT[ 1,1]; MAT[1,1] = MAT[4,4]; AUX = MAT[2,2]; MAT[2,2] = MAT[3,3]; MAT[3,3] = AUX; Fim. Apostila de Exercícios de Lógica de Programação - 12 - 62) Escreva um algoritmo que: a) Leia uma matriz 20 x 20 de elementos reais; b) Divida cada elemento de uma linha da matriz pelo elemento da diagonal principal desta linha; c) Imprima a matriz assim modificada. 63) Escreva um algoritmo que: a) Leia uma matriz 10 x 10 de elementos inteiros; b) Calcule e imprima a soma dos elementos situados abaixo da diagonal principal da matriz, incluindo os elementos da própria diagonal principal. 64) Dada a matriz M tridimensional, definida por: Tipo MAT = Matriz[0:1, 1:4, 1:3] de inteiro; Var M: MAT; Assuma que a matriz possui os seguintes valores: 1 2 3 4 1 2 3 4 1 2 3 4 0 1 2 3 4 0 1 1 1 1 0 0 0 1 1 1 5 -5 3 0 1 -3 2 0 0 1 -1 -1 2 2 1 2 3 Dado o vetor VET definido por: Tipo VET = Vetor[1:4] de inteiro; Var V: VET; Assuma que o vetor possui os seguintes valores: VET 2 3 4 0 1 2 3 4 Determinar os elementos: a) M[1,1,2] b) VET[3] c) VET[M[0,1,1] d) M[VET[4], VET[2], VET[1]] e) M[M[VET[4],4,3,VET[M[0,3,1]],2] Apostila de Exercícios de Lógica de Programação - 13 - 65) Escreva um algoritmo que deverá: a) Ler um vetor de 20 posições do tipo caractere para guardar os nomes dos alunos de sua turma; b) Classifique este vetor em ordem crescente utilizando o método de ordenação BUBBLE SORT. c) Imprima o vetor devidamente classificado. 66) Elabore um algoritmo para corrigir provas de múltipla escolha. Assuma que em cada prova encontraremos os seguintes dados: RM, NOME DO ALUNO, MATÉRIA e BIMESTRE, além de 10 questões numeradas de 1 até 10 e que cada questão possui 5 alternativas identificadas pelas letras de “a” até “e”. Primeiramente, o algoritmo deve ler o gabarito e o número de provas a serem corrigidas . A seguir, os dados das provas a serem corrigidas devem ser lids. Ainda, o algoritmo deverá calcular e escrever: a) O RM, NOME DO ALUNO, MATÉRIA, BIMESTRE e a NOTA de cada aluno (assumindo que cada questão correta vale 1 ponto). b) A porcentagem de aprovação, assumindo que a nota mínima para aprovação é 7. 67) Escrever um algoritmo para ler um vetor de 25 elementos do tipo inteiro e que: a) Após lido o vetor, verifique se existem números repetidos e caso exista quais são estes números e quantas vezes o mesmo foi repetido. 68) Dado um vetor de 10 posições do tipo inteiro, construa uma sub-rotina para ler uma matriz N x M do tipo inteiro. Os valores N e M deverão ser lidos. 69) Faça uma sub-rotina para ler um vetor A de N elementos, e um vetor B de M elementos. Os valores M e N deverão ser lidos. 70) Faça um programa para ler as informações de N alunos, tais como: Nome, idade e sexo. Após construa sub-rotina para: a) Emitir um relatório ordenado crescentemente pelo Nome; b) Emitir um relatório ordenado decrescentemente pela idade; c) Informar qual o percentual de alunos do sexo feminino. 71) Faça uma procedimento para calcular A elevado a um expoente B. 72) Faça uma procedimento para calcular o fatorial de um número X qualquer. 73) Faça um algoritmo com sub-rotinas necessárias para calcular e imprimir o resultado da seguinte expressão matemática: )!1( ... !6 5 !5 4 !4 3 !3 2 !2 1 )1(65432 n nXXXXXX Y n Apostila de Exercícios de Lógica de Programação - 14 - 74) Faça uma função que codifique uma mensagem, da seguinte forma: A por Z, B por Y, C por X e assim por diante ... Obs.: a rotina deverá fazer o mesmo para letras minúsculas. 75) Faça uma função para transformar as letras de uma FRASE de minúsculas para maiúsculas 76) Dado um vetor com 40 elementos numéricos do tipo inteiro, faça uma função que verifique se um dado valor existe neste vetor.