15
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

Apostila de Exercicios Logica

Embed Size (px)

Citation preview

  • Instituto de Ensino Santo Antonio

    Apostila de

    Exerccios de

    Lgica de Programao

    Curso: Tcnico de Informtica

    Ano: 1 Ano

    Disciplina: Lgica 1

    Verso 2009 Elaborado por: Prof. Fernando Salles Claro

    Remodelado por: Prof. Vitor Hugo Migoto de Gouva

  • 1) Defina os seguintes termos:

    a) VARIVEIS b) CONSTANTES c) PORTUGOL d) FLUXOGRAMA e) ALGORITMO

    2) Dada as seguintes declaraes:

    Var

    Num: inteiro;

    Soma, X: real;

    Simbolo: caracter;

    Nome, Cor, Dia: string;

    Cod, Teste, Tudo: lgico;

    Assinalar os comandos de atribuio invlidos: 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 declaraes do exerccio acima, quais sero os valores armazenados em SOMA, NOME e TUDO, supondo-se que NUM, X, COR, DIA, TESTE e COD valem,

    respectivamente, 25, 2.5, 'Azul', 'Tera', Falso e Verdadeiro ?

    a) Nome = Dia; b) Soma = Raiz(Num) / X + Int(X+1); c) Tudo = no Teste ou Cod e (Soma < X);

    4) Dadas as variveis inteiras X, Y e Z, contendo os valores 2, 5, 9, respectivamente; a varivel NOME do tipo string contendo 'MARIA' e a varivel lgica SIM contendo o valor FALSO,

    observar os resultados das expresses lgicas desenvolvidas a seguir:

    a) (X + Y > Z) E NOME = 'MARIA' b) SIM OU (Y >= X) c) NO SIM E (Z DIV Y + 1 = X) d) (NOME = 'JORGE') E SIM OU (X2 < Z + 10)

  • Apostila de Exerccios de Lgica de Programao

    - 2 -

    5) Dada as declaraes:

    Var

    A,B: REAL;

    NOME, PROFISSAO: STRING;

    Completar o quadro abaixo, com o valor das relaes indicadas, tendo-se em vista os valores

    atribudos s variveis:

    VARIVEIS RELAES

    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 sentenas abaixo?NO D;

    a) D E E; b) ( A > B ) OU ( B < C ); c) NO ( 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 NO D; g) A + B * C/B = 3 E NO ( A = B);

    7) Qual a primeira operao 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 ento

    A = VERDADEIRO;

    seno

    A = FALSO;

    fimse;

    So equivalentes? Explique por qu.

  • Apostila de Exerccios de Lgica de Programao

    - 3 -

    9) Tendo as variveis SALARIO, IR e SALLIQ, e considerando os valores abaixo. Informe se as expresses so verdadeiras ou falsas.

    SALARIO IR SALLIQ EXPRESSO 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 = SALRIO - IR

    10) Sabendo que A=3, B=7 e C=4, informe se as expresses abaixo so verdadeiras ou falsas. a) (A+C) > B ( ) b) B >= (A + 2) ( ) c) C = (B A) ( ) d) (B + A) B ( )

    11) Sabendo que A=5, B=4 e C=3 e D=6, informe se as expresses abaixo so verdadeiras ou falsas.

    a) (A > C) E (C 10 OU (A+B) = (C+D) ( ) c) (A>=C) E (D >= C) ( )

    12) Observe o algoritmo abaixo:

    var

    B1,B2,B3: lgico;

    incio

    se (B1) ento

    C1;

    seno

    se (B2) ento

    se (B3) ento

    C2;

    seno

    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 Exerccios de Lgica de Programao

    - 4 -

    que sero executados ?

    b) Se B1 = FALSO, B2 = VERDADEIRO, B3 = FALSO, quais os comandos que sero 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 sero executados ?

    13) Qual o valor de L aps a execuo do algoritmo abaixo?

    var

    A,B,C: lgico;

    X,Y: real;

    V,L: inteiro;

    incio

    A = V;

    B = V;

    C = F;

    X = 1.5;

    Y = 3.2;

    X = X + 1;

    se ((C) ou ((X + Y > 5) ou ( no A e B))) ento

    L = 0;

    seno

    L = 1;

    fimse;

    fim.

    14) O que est errado no algoritmo abaixo?

    var

    N,PAR,X: inteiro;

    incio

    leia (N);

    X = N mod 2;

    se (X = 0) ento

    PAR = V;

    seno

    PAR = F;

    fimse;

    fim.

  • Apostila de Exerccios de Lgica de Programao

    - 5 -

    15) Escreva um algoritmo para calcular o consumo mdio de um automvel (medido em Km/l), dado que so conhecidos a distncia total percorrida e o volume de combustvel consumido

    para percorr-la (medido em litros).

    FRMULA: ONDE:

    CM = CONSUMO MDIO

    DIST = DISTNCIA

    VOL = VOLUME DE COMBUSTVEL CONSUMIDO

    16) Uma empresa decide dar um reajuste a seus funcionrios de acordo com os seguintes critrios:

    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 salrio reajustado de cada

    funcionrio 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 frmulas:

    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;

    snior maiores de 17 anos.

    19) Construa um algoritmo que leia trs nmeros inteiros e os imprima em ordem crescente.

    20) Escreva um algoritmo que leia a MDIA de um aluno e que determine e imprima a mensagem APROVADO se o aluno teve mdia igual ou superior a 7,0, caso contrrio 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 nmeros fornecidos.

    22) Escreva um algoritmo que leia os trs lados de um tringulo (A, B, C) e que determine e imprima uma mensagem informando o seu tipo, conforme a tabela abaixo:

    Tringulo Equiltero = 3 lados iguais

    Tringulo Issceles = 2 lados iguais

    Tringulo Escaleno = 3 lados diferentes

    VOL

    DISTCM

  • Apostila de Exerccios de Lgica de Programao

    - 6 -

    23) Fazer um algoritmo para achar o maior e o menor nmero de uma srie de 10 nmeros e positivos fornecidos pelo teclado.

    24) Escrever um algoritmo para calcular a srie abaixo e imprimir o resultado de x.

    25) O valor do sen(x) pode ser obtido com boa aproximao dos 30 primeiros termos da srie

    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 mdia de um conjunto de 50 valores inteiros e positivos, fornecidos pelo teclado.

    27) Sendo:

    Fazer um algoritmo para calcular e imprimir h. O nmero N fornecido pelo teclado.

    28) Escreva um algoritmo para calcular o fatorial de um nmero N, fornecido pelo teclado.

    29) Fazer um algoritmo que:

    Leia um nmero real X;

    Determine e imprima o seguinte somatrio:

    Usando os 13 primeiros termos da srie:

    30) Escrever um algoritmo, que leia um conjunto de 23 dados, cada um, contendo o peso e o cdigo do sexo ("F" ou "M") dos alunos de uma classe, calcule e imprima:

    Maior e o menor peso da turma;

    A mdia de peso dos homens;

    A mdia de peso da turma;

    31) Escreva um algoritmo para calcular e imprimir a soma de dez nmeros inteiros quaisquer fornecidos pelo usurio.

    32) Faa um algoritmo para gerar os N primeiros termos da seguinte seqncia:

    1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, . . .

    ...!3!2!1

    xxxxs

    nh

    1...

    4

    1

    3

    1

    2

    11

    nx

    1...

    4

    1

    3

    1

    2

    1

    1

    1

    ...!7!5!3!1

    sen7531

    nnnn

    x

  • Apostila de Exerccios de Lgica de Programao

    - 7 -

    33) Escreva um algoritmo para calcular o reajuste salarial de uma empresa que possui 1000 funcionrios, de acordo com os seguintes critrios:

    os funcionrios com salrio inferior a R$ 10.000,00 devem ter um reajuste de 55%;

    os funcionrios com salrios entre R$ 10.000,01 e R$ 25.000,00 devem ter um reajuste de 30%

    os funcionrios com salrios superior a R$ 25.000,00 deve ter um reajuste de 20%

    34) Uma empresa decide presentear seus 500 funcionrios com um bnus de Natal, cujo valor definido do seguinte modo:

    os funcionrios do sexo masculino com tempo de casa superior a 15 anos tero direito a um bnus de 20% de seu salrio;

    as funcionrias com tempo de casa superior a 10 anos tero direito a um bnus de 25% de seu salrio; e

    os demais funcionrios tero direito a um bnus de R$ 5.000,00.

    Elabore um algoritmo para calcular o valor do bnus concedido a cada funcionrio e o

    impacto de tal atitude no oramento da empresa (ou seja, o montante total dos bnus

    concedidos).

    35) Construir um algoritmo para calcular o valor de S, usando as 20 primeiras fraes da expresso abaixo:

    36) Escreva um algoritmo que determine e imprima todos os nmeros primos compreendidos entre 1 e 100.

    37) Um rei requisitou os servios de um sbio e disse-lhe que pagaria qualquer preo. O sbio necessitando de alimentos, indagou o rei sobre o pagamento, se poderia ser feito com gros

    de trigo dispostos em um tabuleiro de xadrez, de tal forma que o primeiro quadro deveria

    conter apenas um gro de trigo e nos quadros seguintes, o dobro do quadro anterior. O rei

    achou o trabalho barato, pediu que o servio fosse executado, sem se dar conta de que seria

    impossvel efetuar o pagamento. Faa um algoritmo que calcule e imprima a quantidade total

    de gros de trigo que o rei deveria pagar ao sbio.

    38) Dados dois nmeros inteiros A e B, construa um algoritmo para calcular e imprimir a soma de todos os nmeros pares existentes entre A e B.

    39) Elabore um algoritmo que efetue a soma de todos os nmeros mpares que so mltiplos de trs e que se encontram no conjunto dos nmeros 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 converso de graus Fahrenheit para Centgrados obtida pela frmula C = 5/9 (F-32). Escreva um algoritmo que calcule e escreva uma tabela de graus centgrados em funo de

    graus Fahrenheit que variem de 150 at 50 de 0,5 em 0,5.

    20...

    54321

    xxxxxxs

  • Apostila de Exerccios de Lgica de Programao

    - 8 -

    42) Realizou-se uma pesquisa para determinar o ndice de mortalidade infantil em um certo perodo. Construa um algoritmo que leia o nmero de crianas nascidas no perodo e, depois,

    num nmero indeterminado de vezes, o sexo de uma criana morta (M ou F) e o nmero de meses de vida da criana. Como finalizador, teremos a palavra FIM no lugar do sexo da criana. Determine e imprima:

    A porcentagem de crianas mortas no perodo;

    A porcentagem de crianas mortas no perodo do sexo masculino;

    A porcentagem de crianas que viveram dois anos ou menos no perodo.

    43) Fazer um algoritmo para calcular a mdia aritmtica 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 no devem ser considerados.

    45) Construir um algoritmo para fazer a soma de vrios valores inteiros e positivos, fornecidos pelo teclado, o ltimo valor deve ser -1 (flag) e no deve ser considerado.

    46) Modifique o exerccio 5 de modo que seja possvel o clculo do salrio reajustado de um nmero INDETERMINADO de funcionrios segundo o mesmo critrio de reajuste.

    Considere o trmino do clculo quando o usurio informar um salrio igual ou inferior a

    ZERO.

    47) Dado um pas A, com 5.000.000 habitantes e uma taxa de crescimento de 3% ao ano, e um pas B com 7.000.000 habitantes e uma taxa de natalidade de 2% ao ano. Construa um

    algoritmo que calcule e imprima quanto tempo necessrio para que a populao do pas A

    ultrapasse a populao do pas B.

    48) Em uma eleio presidencial, existem 5 candidatos. Os votos foram registrados em fichas. Cada ficha contm um dos cdigos 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 contm o valor ZERO que indica o fim do processamento e que no

    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 Exerccios de Lgica de Programao

    - 9 -

    desconhecida (usar como finalizador a constante FIM).

  • Apostila de Exerccios de Lgica de Programao

    - 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 atravs do

    valor 5, que no deve ser considerado.

    51) Foi realizada uma pesquisa de algumas caractersticas fsicas da populao de uma certa regio, 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.

    Faa um algoritmo que determine e escreva:

    A idade do habitante mais velho;

    A percentagem de indivduos 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 centmetros por ano, enquanto Ciclano tem 1,10 metros e cresce 3 centmetros por ano. Construa um algoritmo que calcule e imprima quantos anos

    sero necessrios 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 formao: 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 contedos 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 subtrao 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 formao: 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 juno 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 dimenso com os mesmos elementos de A, sendo que estes devero 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 penltimo de B e assim por diante.

  • Apostila de Exerccios de Lgica de Programao

    - 11 -

    60) Ler duas matrizes A e B, cada uma de duas dimenses com 5 linhas e 3 colunas. Construir uma matriz C de mesma dimenso, 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 configurao de MAT depois de executado o algoritmo abaixo?

    Algoritmo Quebra_Cabea;

    Tipo

    M1: Matriz[1..4,1..4] de caractere;

    Var

    I, J: inteiro;

    AUX: caractere;

    MAT: M1;

    Incio

    :

    :

    Para I = 1 at 4 faa

    Para J = I + 1 at 4 faa

    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 Exerccios de Lgica de Programao

    - 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 prpria 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 Exerccios de Lgica de Programao

    - 13 -

    65) Escreva um algoritmo que dever:

    a) Ler um vetor de 20 posies do tipo caractere para guardar os nomes dos alunos de sua turma;

    b) Classifique este vetor em ordem crescente utilizando o mtodo de ordenao BUBBLE SORT.

    c) Imprima o vetor devidamente classificado.

    66) Elabore um algoritmo para corrigir provas de mltipla escolha. Assuma que em cada prova encontraremos os seguintes dados: RM, NOME DO ALUNO, MATRIA e BIMESTRE,

    alm de 10 questes numeradas de 1 at 10 e que cada questo possui 5 alternativas

    identificadas pelas letras de a at e. Primeiramente, o algoritmo deve ler o gabarito e o nmero 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, MATRIA, BIMESTRE e a NOTA de cada aluno (assumindo que cada questo correta vale 1 ponto).

    b) A porcentagem de aprovao, assumindo que a nota mnima para aprovao 7.

    67) Escrever um algoritmo para ler um vetor de 25 elementos do tipo inteiro e que:

    a) Aps lido o vetor, verifique se existem nmeros repetidos e caso exista quais so estes nmeros e quantas vezes o mesmo foi repetido.

    68) Dado um vetor de 10 posies do tipo inteiro, construa uma sub-rotina para ler uma matriz N x M do tipo inteiro. Os valores N e M devero ser lidos.

    69) Faa uma sub-rotina para ler um vetor A de N elementos, e um vetor B de M elementos. Os valores M e N devero ser lidos.

    70) Faa um programa para ler as informaes de N alunos, tais como: Nome, idade e sexo. Aps construa sub-rotina para:

    a) Emitir um relatrio ordenado crescentemente pelo Nome; b) Emitir um relatrio ordenado decrescentemente pela idade; c) Informar qual o percentual de alunos do sexo feminino.

    71) Faa uma procedimento para calcular A elevado a um expoente B.

    72) Faa uma procedimento para calcular o fatorial de um nmero X qualquer.

    73) Faa um algoritmo com sub-rotinas necessrias para calcular e imprimir o resultado da seguinte expresso matemtica:

    )!1(...

    !6

    5

    !5

    4

    !4

    3

    !3

    2

    !21

    )1(65432

    n

    nXXXXXXY

    n

  • Apostila de Exerccios de Lgica de Programao

    - 14 -

    74) Faa uma funo 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 minsculas.

    75) Faa uma funo para transformar as letras de uma FRASE de minsculas para maisculas

    76) Dado um vetor com 40 elementos numricos do tipo inteiro, faa uma funo que verifique se um dado valor existe neste vetor.