02 fp02

7
Comunicação e Multimédia Lógica Computacional EXERCÍCIOS ANO LETIVO: 2012/2013 II - Algoritmia 1. Elabore um algoritmo que permita somar dois quaisquer números, visualizando o resultado obtido. 2. Elabore um algoritmo que permita calcular a Área de um quadrado. (Área = Lado×Lado) 3. Elabore um algoritmo que permita calcular o perímetro de um quadrado. 4. Faça um algoritmo para ler a base e a altura de um triângulo. Em seguida, escreva a área do mesmo. 5. O preço de um automóvel é calculado pela soma do preço de fábrica com o preço dos impostos (45% do preço de fábrica) e a percentagem do revendedor (28% do preço de fábrica). Faça um algoritmo que leia a marca e o modelo do automóvel e o preço de fábrica e imprima o nome do automóvel e o preço final. 6. Elabore um algoritmo que permita calcular a Média por si obtida à UC de Lógica Computacional, em função das classificações parciais, obtidas a cada componente de avaliação. No final, deverá apresentar a nota e a informação Aprovado/Reprovado, conforme o caso. 7. Elabore um algoritmo que, de entre dois números fornecidos pelo utilizador, permita encontrar o menor deles. 8. Elabore um algoritmo que, de entre três números fornecidos pelo utilizador, permita encontrar o maior deles. 9. Elabore um algoritmo que permita, através da inserção dos lados de um triângulo, identificar de que tipo de triângulo se trata. 10. Elabore um algoritmo que permita converter Km em Milhas ( e vice-versa ) e, se o numero de Km (convertidos ou a converter) for superior a 500, visualizar muito longe.

Transcript of 02 fp02

Page 1: 02 fp02

Comunicação e Multimédia

Lógica Computacional

EXERCÍCIOS

ANO LETIVO: 2012/2013

II - Algoritmia

1. Elabore um algoritmo que permita somar dois quaisquer números, visualizando o

resultado obtido.

2. Elabore um algoritmo que permita calcular a Área de um quadrado. (Área = Lado×Lado)

3. Elabore um algoritmo que permita calcular o perímetro de um quadrado.

4. Faça um algoritmo para ler a base e a altura de um triângulo. Em seguida, escreva a

área do mesmo.

5. O preço de um automóvel é calculado pela soma do preço de fábrica com o preço dos

impostos (45% do preço de fábrica) e a percentagem do revendedor (28% do preço de

fábrica). Faça um algoritmo que leia a marca e o modelo do automóvel e o preço de

fábrica e imprima o nome do automóvel e o preço final.

6. Elabore um algoritmo que permita calcular a Média por si obtida à UC de Lógica

Computacional, em função das classificações parciais, obtidas a cada componente

de avaliação. No final, deverá apresentar a nota e a informação

Aprovado/Reprovado, conforme o caso.

7. Elabore um algoritmo que, de entre dois números fornecidos pelo utilizador, permita

encontrar o menor deles.

8. Elabore um algoritmo que, de entre três números fornecidos pelo utilizador, permita

encontrar o maior deles.

9. Elabore um algoritmo que permita, através da inserção dos lados de um triângulo,

identificar de que tipo de triângulo se trata.

10. Elabore um algoritmo que permita converter Km em Milhas ( e v i c e - v e r s a ) e, se o

numero de Km (convertidos ou a converter) for superior a 500, visualizar “muito longe”.

Page 2: 02 fp02

11. Elabore um algoritmo que permita converter Euros em Escudos e vice-versa,

dependendo da escolha do utilizador.

12. Elabore um algoritmo que permita aceitar e de seguida visualizar o nome de N pessoas.

13. Elabore um algoritmo que permita aceitar apenas valores positivos.

14. Elabore um algoritmo que permita encontrar o maior e menor valor de uma série de

N números positivos fornecidos.

15. Faça um algoritmo que leia N números inteiros positivos e visualize o menor deles.

16. Dada uma série de N valores reais, faça um algoritmo que calcule e escreva a média

aritmética destes valores, entretanto se a média obtida for maior que 8 deverá ser

atribuída 10 para a média.

17. Elabore um algoritmo que permita efetuar a soma dos N primeiros números inteiros

positivos.

18. Elabore um algoritmo que permita calcular a soma dos N primeiros números pares

positivos.

19. Faça um algoritmo que repita a mensagem Introduza a Letra “a” até que se verifique a

sua inserção.

20. Uma empresa tem, para um determinado funcionário, uma ficha contendo o nome,

número de horas trabalhadas num determinado mês e o nº de dependentes.

Considerando que:

A empresa paga 12 euros por hora e 40 euros por cada dependente.

Sobre o salário são feito descontos de 8,5% para o INSS e 5% para IRS.

Faça um algoritmo para ler o nome do funcionário, o número de horas trabalhadas e o

número de dependentes. Após a leitura, deverá processar a folha de vencimento do

funcionário indicando (entre outros que ache convenientes): o nome do funcionário, o

salário bruto, os valores descontados para cada tipo de imposto e o salário líquido.

21. Elabore um algoritmo que permita calcular o fatorial de um número, tendo em conta

que:

Page 3: 02 fp02

1 2 5 6 7 9

1 5 7 9

1 5 7 9

22. Faça um algoritmo que permita ler a base e a altura de N triângulos e que imprima as

respetivas áreas.

23. Elabore um algoritmo que leia e armazene as notas de uma turma de N alunos numa

disciplina e calcule a sua média. O professor pode apenas inserir as notas dos alunos

que entender, não sendo imperativo que haja a inserção das 60 notas visto que certos

alunos podem faltar ao Exame.

24. Elabore um algoritmo que leia e armazene os valores anuais de Precipitação de N

Localidades. Para além disso pretende-se que apresente o valor máximo, o valor

mínimo e a média dos valores lidos.

25. Elabore um algoritmo que permita contar todos os números pares e ímpares

introduzidos, aleatoriamente, pelo utilizador.

26. Elabore um algoritmo que mostre dados estatísticos tendo como base um universo de

N entrevistas realizadas com o objetivo de saber quantas pessoas começaram a

trabalhar com menos de 18 anos, mais de 18 anos e qual o sexo, [M,F].

27. Elabore um algoritmo que permita efetuar somas entre dois números fracionários

supondo que o denominador é comum. O resultado deverá ser apresentado no

formato: x/y

28. Elabore um algoritmo que permita ordenar um vetor de N números por ordem crescente

ou decrescente, mediante a escolha do utilizador.

29. Elabore um algoritmo que permita efetuar a procura de um determinado número,

fornecido pelo utilizador, num vetor de N posições, carregado aleatoriamente com

números de 1 a 100.

30. Elabore um algoritmo que permita apagar todos os números pares de um vetor de

100 posições, reordenando-o de seguida e garantindo que não ficam posições vazias

entre valores.

Original

Incorreto

Correcto

Page 4: 02 fp02

31. Elabore um algoritmo que permita fazer uma inserção ordenada por ordem crescente

de N números inteiros.

32. Elabore um algoritmo que permita armazenar uma lista de N números inteiros e de

seguida permita, de acordo com uma escolha, ordenar essa mesma lista por ordem

crescente ou decrescente.

33. Elabore um algoritmo que permita efetuar o registo de N automóveis. Para cada

automóvel pretende-se que sejam guardadas as seguintes características: Ref. do

Chassi, Marca e Ano de fabrico. Pretende-se ainda que seja permitido consultar os

registos efetuados (tantas vezes quantas o utilizador quiser), sendo, para isso,

fornecida pelo utilizador a Ref. do Chassi.

34. Um determinado partido político (“SóPromete”) pretende ter um programa que lhe

permita controlar os votos dos partidos adversários (e do seu) e no fim lhe forneça

uma análise comparativa no que diz respeito à posição em que cada partido ficou nas

eleições. Elabore um algoritmo que sirva de solução ao que é pretendido pelo partido

“SóPromete”, tendo em atenção o seguinte:

Além do partido referido existem mais dois: “JáPrometi” e “VouPrometer”;

As eleições decorrem em 10 regiões distintas devendo ficar armazenados os votos de

cada partido;

A análise pretendida consta numa relação da posição em que cada partido ficou

após o apuramento de todos os votos de todas as regiões sendo a terminologia a

seguinte:

a) O Partido com mais votos : “Partido vencedor das eleições”;

b) O segundo partido com mais votos: “Partido quase vencedor das eleições”;

c) O último partido: “Partido que volta a tentar para o ano”.

Se possível pretende-se também que forneça a mesma relação anterior mas relativa

a cada região.

35. Um determinado hipermercado está a fazer uma campanha promocional no seu posto de

combustível, de acordo com a tabela seguinte:

Tipo

Combustível

Desconto por quantidade Preço Base

(€/L) Até 20 L Até 40 L Acima de 40

L

Gasolina 95 3% 5% 8% 1,479

Gasóleo 4% 7% 10% 1,334

Page 5: 02 fp02

Escreva um algoritmo que permita ler o número de litros vendidos e o tipo de combustível e

calcule o valor (com desconto) a pagar. O algoritmo deverá, obrigatoriamente, utilizar

estruturas de decisão SE… ENTÃO e ESCOLHE… CASO.

36. O algoritmo apresentado a seguir contém alguns erros. Identifique-os e corrija-os,

explicando a consequência que cada um deles teria na execução do programa.

inicio

real valor, média, soma

contador

soma <- 0

contador <- 1

enquanto valor > 0 faz

escrever "Introduza o ",contador, "º valor\n",contador,"º valor = "

valor

soma <- soma + valor

contador <- contador + 1

soma <- soma - valor

media <- soma / contador – 2

se media < 0 entao

escrever "ATENÇÃO valor NEGATIVO \n média = ", media

senao

escrever "média = ", media, "\nIntroduziu ",contador - 2, " valores"

fimse

37. Sem recorrer a dados estruturados (vetores), desenhe um algoritmo que permita:

a) ler, repetidamente, números inteiros positivos, num mínimo de 4;

b) as entradas deverão ser validadas (os valores referem-se a resultados de uma

avaliação [escala 0-20]);

c) o programa deverá ser interrompido através de uma instrução dada pelo utilizador;

d) no final, o algoritmo deverá apresentar as três notas mais elevadas, de entre todas

as introduzidas.

38. Considere o seguinte algoritmo:

inicio

inteiro N, valor, M, contador

escrever "Quantos valores quer ler?\nN = "

ler N

para contador de 1 ate N passo 1

escrever "Introduza o ",contador, "º número\nN_",contador, " = "

ler valor

se valor > M entao

M <- valor

fimse

proximo

escrever "-----------------\n"

escrever "M = ", M

fim

Page 6: 02 fp02

38.1. Faça a traçagem do algoritmo,

completando a tabela seguinte.

38.2. Analise o algoritmo e simule o que

apareceria na tela (ecrã) quando

executado, usando os dados de 38.1.

Tela

N Contador valor M

6

4

25

-3

43

12

7

38.3. Proponha um enunciado para o algoritmo apresentado.

39.

39.1 Escreva um algoritmo que permita ler um vetor linha de tamanho N, a definir pelo

utilizador e depois o ordene por ordem crescente.

39.2. Introduza as alterações que julgue necessárias para que o algoritmo implementado

em 5.1 possibilite ordenar o vetor por ordem crescente/decrescente, conforme escolha

do utilizador.

Nota: O algoritmo nunca poderá ser interrompido caso o utilizador se engane introduza uma escolha inválida.

40. Escreva um algoritmo que permita somar duas fracções. A estrutura do algoritmo deverá

respeitar as seguintes indicações:

O utilizador deverá ser solicitado a introduzir as duas fracções em separado;

Para facilitar, cada fracção deverá ser lida pedindo o numerador e o denominador, em

separado;

O programa deverá identificar se o denominador das duas fracções é o mesmo e, nesse

caso, apresentar o resultado somando os numeradores;

Se os denominadores forem diferentes, o programa deverá encontrar o mínimo múltiplo

comum e depois apresentar o resultado.

41. Considere o seguinte algoritmo:

inicio

inteiro num, i

escrever “Introduza um número \nN = “

ler num

Page 7: 02 fp02

enquanto num > 0 faz

i <- i+1

escrever “Introduza um número \nN = “

ler num

fimenquanto

Escrever “Foram introduzidos “, i, “números”

Fim

41.1. Explique o objetivo deste algoritmo e apresente o significado de cada linha;

41.2. Altere o algoritmo fornecido, usando uma estrutura de repetição REPETE… ATE, em

substituição da estrutura ENQUANTO… FAZ, mas de forma que o resultado do algoritmo

não seja alterado.

42. Desenvolva um algoritmo que leia um número e crie uma capicua. Por exemplo, lendo 367 deverá

obter a capicua 367763.

43. Escreva um algoritmo que:

Permita implementar um jogo simples, em que o utilizador tenta adivinhar um número

inteiro (igual ou inferior a 10000) gerado aleatoriamente pelo computador;

A cada tentativa, o programa deverá indicar se o número introduzido é menor ou maior

do que o número gerado;

O jogo termina quando o utilizador acertar no número gerado;

No final do jogo deverá ser apresentado o número total de tentativas utilizadas pelo

jogador;

Armazene todas as tentativas utilizadas num vector.

Nota: para gerar um número aleatório igual ou inferior a 10000 deverá incorporar o seguinte código no seu

programa:

inteiro numero

numero <- aleatorio() * 10000