Você está na página 1de 12

ESCOLA SUPERIOR DE TECNOLOGIA E GESTO

CADERNO DE EXERCCIOS

ALGORITMOS E ESTRUTURAS DE DADOS

1. Escreva um algoritmo em linguagem corrente para resolver os seguintes problemas: a) substituir uma lmpada; b) imprimir um documento; 2. Sabendo que o preo de um produto dado pelo seu custo de fabrico, ao qual adicionada a margem do vendedor e os impostos (aplicados ao custo de fabrico), escreva um algoritmo que leia o preo de fabrico e a percentagem do vendedor. O algoritmo dever calcular e escrever o preo de venda ao pblico para as duas situaes seguintes: a) Lendo a taxa de impostos a aplicar. b) Sabendo que a taxa de impostos a aplicar fixa e de 17%.

3. Sabendo que a nota final da disciplina calculada como sendo a mdia ponderada de trs testes (miniteste, teste terico e teste prtico), escreva um algoritmo que determine a nota final de um dado aluno. Considere para tal que os pesos do miniteste, teste terico e teste prtico so 25%, 30% e 45%, respectivamente.

4. Sabendo que a taxa de converso entre escudos e euros 1 euro = 200,482 escudos, escreva um algoritmo para cada uma das seguintes situaes: a) Determinar o valor em euros correspondente a um determinado valor em escudos. b) Determinar o valor em escudos correspondente a um determinado valor em euros. 5. Escreva um algoritmo que para um dado nmero mostre o seu quadrado e o seu cubo. 6. Escreva um algoritmo que leia trs valores e que indique para cada um qual o seu desvio em relao media dos trs valores. 7. Escreva um algoritmo que leia o valor das trs dimenses de um paraleleppedo e apresente o valor da rea de cada uma das suas trs diferentes faces e tambm o valor da rea total de todas as faces. 8. Escreva um algoritmo que leia a nota de um aluno e indique qual a sua situao (Aprovado ou Reprovado). 9. Escreva um algoritmo que verifique se um dado nmero inteiro se encontra no intervalo de 10 a 50.

ESCOLA SUPERIOR DE TECNOLOGIA E GESTO

CADERNO DE EXERCCIOS

ALGORITMOS E ESTRUTURAS DE DADOS

10. Pretende-se um algoritmo que calcule o valor a pagar pelo envio de uma encomenda cujo peso ter que ser inferior a 100 kg. Considere para tal a tabela seguinte. Peso (kg) Tipo de Envio Normal 0-1 Prioritrio Normal 2-100 Prioritrio Taxa Envio: 4 Taxa Prioridade: 2 Taxa Peso: 0.5 11. Escreva um algoritmo que pea o valor da temperatura do dia e o classifique de acordo com a tabela seguinte. Temperatura Classificao 0-7 Muito Frio 8-12 Frio 13-17 Ameno 18-23 Quente 24-45 Muito Quente Valor a Pagar Taxa Envio Taxa Envio + Taxa Prioridade Taxa Envio + (Peso * Taxa Peso) Taxa Envio + (Peso * Taxa Peso) + Taxa Prioridade

12. Escreva um algoritmo que pea uma vogal minscula e a apresente como maiscula. 13. Escrever um algoritmo que pergunte qual o seu sexo e o seu peso e de acordo com estes indique o seu estado conforme a tabela seguinte.
Sexo Peso kg Estado

Masculino
0-50
Muito Magro

Feminino
76-90
Forte

51-60
Magro

61-75
Normal

91-180
Muito Forte

0-40
Muito Magro

41-50
Magro

51-60
Normal

61-70
Forte

71-120
Muito Forte

14. Escreva um algoritmo que v lendo valores do teclado at ser introduzido o valor zero, e apresente a soma e a mdia dos valores introduzidos. 15. Escreva um algoritmo que leia do teclado nmeros inteiros at que a mdia desses nmeros atinja ou ultrapasse um limite mximo indicado previamente pelo utilizador. 16. a) Escreva um algoritmo que permita efectuar sucessivas leituras at ser lido um valor entre 10 e 50. O algoritmo deve mostrar o valor lido que se encontra no intervalo. b) Reformule o algoritmo anterior de forma a que este indique o valor lido caso no se encontre no intervalo dado. 17. Implemente um algoritmo que calcule a soma dos primeiros n nmeros inteiros, sendo n inserido pelo utilizador. 18. Construa um algoritmo, que dado um valor n Ex.: n = 5 [1,10], apresente a sua tabela de multiplicao.

ESCOLA SUPERIOR DE TECNOLOGIA E GESTO

CADERNO DE EXERCCIOS

ALGORITMOS E ESTRUTURAS DE DADOS

5 5 5 5 5 5 5 5 5 5

X X X X X X X X X X

1 2 3 4 5 6 7 8 9 10

=5 = 10 = 15 = 20 = 25 = 30 = 35 = 40 = 45 = 50

19. Escreva um algoritmo que questione o utilizador sobre qual das seguintes operaes aritmticas executar: * Multiplicar x com y + Somar x com y - Subtrair y a x / Dividir x por y Aps a execuo de uma operao o algoritmo deve perguntar ao utilizador se pretende terminar ou realizar mais alguma operao. 20. Construa um algoritmo que permita ao utilizador adivinhar um determinado nmero por tentativas sucessivas. Aps cada tentativa, o algoritmo dever indicar ao utilizador se o nmero a adivinhar mais alto ou mais baixo do que o nmero fornecido. No final, o algoritmo dever indicar quantas tentativas foram necessrias para adivinhar o nmero. 21. Elabore um algoritmo que dada uma data (dia, ms e ano) calcule o dia do ano que equivale a esta data. Ex.: 01/03/2001 60 dias Nota: um ano bissexto se for divisvel por 4 e no for divisvel por 100, ou ento tambm o ser se for divisvel por 400.

ESCOLA SUPERIOR DE TECNOLOGIA E GESTO

CADERNO DE EXERCCIOS

ALGORITMOS E ESTRUTURAS DE DADOS

Turbo Pascal for Windows (ambiente de trabalho)


22. Experimente o seguinte programa em Pascal: program OlaMundo; uses wincrt; {Este o meu primeiro programa em Pascal} begin writeln('Ol Mundo!'); end. a) Altere a mensagem impressa no ecr. b) Acrescente novas mensagens, atravs de novas instrues writeln. 23. Escreva um programa que imprima no cran os dias da semana, cada um em sua linha diferente. Ex: Segunda Tera... 24. Implemente um programa que leia do teclado um nome e um apelido e imprima no cran: O meu nome nomeintroduzido e o meu apelido apelidointroduzido. 25. Rescreva o exerccio 24 com a leitura de uma idade de modo imprimir no cran: O meu nome nomeintroduzido apelidointroduzido e tenho idade anos. 26. Escreva um programa que leia 2 nmeros inteiros do teclado e imprima no cran a sua adio, subtraco, multiplicao e diviso. 27. Escreva um programa que converta um valor de temperatura em graus centgrados para o correspondente em graus Fahrneit (Gfahrneit = Gcent * 1.8 + 32). 28. Construa um programa que dado o raio, determina o permetro e a rea de um crculo. 29. Construa um programa que calcule a mdia de idades de um agregado familiar constitudo por 4 pessoas (pai, me e dois filhos gmeos). 30. Segundo a teoria da relatividade de Einstein a massa de um corpo varia com a sua velocidade de acordo com a seguinte equao:

m=

m0
2 1 v

c2

ESCOLA SUPERIOR DE TECNOLOGIA E GESTO

CADERNO DE EXERCCIOS

ALGORITMOS E ESTRUTURAS DE DADOS

onde m a massa do corpo, m0 a massa em repouso, v a velocidade do corpo e c a velocidade da luz (300000000 m/s). Implemente um programa que permita calcular o valor da massa m de um corpo, dadas a sua velocidade v e a sua massa em repouso. 31. Escreva as instrues (em Pascal) que podero ter dado origem a estas sadas. (Nota: considere que o caracter representa um espao.) a) 45 b) 1.234E+09 c) Pascal d) 12395-587 e) numero123maior_que123.3 f) 90.31-12.71234Pascal g) 402.34 32. Escreva um programa que defina a constante e=2.718281828 e a imprima formatada com 0, 1, 2, 3, 4 e 9 casas decimais. 33. Escreva um programa que leia dois nmeros inteiros com 3 dgitos e que apresente a sua soma no seguinte formato: 456 +123 ---579 34. Escreva um programa que leia o nome, a rua, o nmero, o andar, o lado, o cdigo postal e a localidade de uma pessoa e imprima esses dados com a mesma formatao utilizada no exemplo que se segue. Exemplo: Alberto Baslio Costa Av. IPB,1454D 1234-123Bragana 35. Construa um programa que calcule e imprima a raiz quadrada de um nmero fornecido pelo utilizador. O programa dever verificar se o nmero fornecido positivo, seno dever imprimir uma mensagem adequada. 36. Escreva um programa que leia trs nmeros reais e que informe se estes podem constituir as dimenses de um tringulo. No caso de constiturem um tringulo o programa deve ainda informar se equiltero, issceles ou escaleno. 37. Usando uma estrutura case, escreva um programa que mediante a introduo de um nmero, apresente a sigla do respectivo canal de televiso escrita no ecr de acordo com a seguinte relao: 1-RTP1 2-RTP2
5

ESCOLA SUPERIOR DE TECNOLOGIA E GESTO

CADERNO DE EXERCCIOS

ALGORITMOS E ESTRUTURAS DE DADOS

3-SIC 4-TVI 5-TVE1 6-TVE2 7-CANAL + 38. Um banco conceder um crdito especial aos seus clientes, varivel com o saldo mdio no ltimo ano. Faa um programa que leia o saldo mdio de um cliente e calcule o valor do crdito de acordo com a tabela abaixo. Mostre uma mensagem informando o saldo mdio e o valor do crdito. (use o comando case e no faa repeties): Saldo mdio 0 a 200 201 a 400 401 a 1000 Percentual nenhum crdito 20% do valor do saldo mdio 30% do valor do saldo mdio

39. Escreva um programa que leia trs nmeros e que determine o maior deles. 40. Um quadrado no espao bidimensional pode ser definido pelas coordenadas do seu centro geomtrico e pela medida dos seus lados. Construa um programa que, dados estes valores e as coordenadas bidimensionais de um ponto, verifique se o ponto se encontra dentro do quadrado. 41. Escrever um programa que leia trs nmeros e que indique qual o maior e o menor deles. 42. Escreva um programa que leia uma srie de dgitos como caracteres e calcule o inteiro que tem esses dgitos. Por exemplo, lendo os caracteres 1 5 4 5 8 . calcule o nmero inteiro 15458. Nota: O ltimo caracter introduzido pelo utilizador deve ser o ponto. 43. a) Suponha que um restaurante tem a seguinte ementa: Prego 450$00 Cachorro 180$00 Batatas fritas 120$00 Sumo 100$00 Bolo 70$00 Escreva um programa que receba uma encomenda de doses servidas pelo restaurante e calcule o valor da conta. O programa deve produzir uma factura discriminativa. Exemplo: Preo/Unidade Quantidade Total Cachorro 180$00 2 360$00 Sumo 100$00 3 300$00 Bolo 70$00 2 140$00 Total em Escudos Total em Euros 3.99 800$00

ESCOLA SUPERIOR DE TECNOLOGIA E GESTO

CADERNO DE EXERCCIOS

ALGORITMOS E ESTRUTURAS DE DADOS

b) Implemente um programa com o seguinte menu de opes: 1234Calcular somatrio (somar n , i vezes) Calcular factorial (n*(n-1)*(n-2)**(2)*(1)*(1)) Calcular exponencial (n elevado a e) Sair

Em cada uma das opes, devem ser pedidos os valores necessrios para efectuar os respectivos clculos (n e i para o somatrio, n para o factorial, n e o e para o exponencial).

44. Seja n um valor inteiro introduzido pelo utilizador, implemente um programa que imprima todos os valores inferiores a n e superiores a zero, que sejam mltiplos de 4.

45. Implemente um programa que permita ao utilizador introduzir um valor inteiro positivo, e depois mostrar a tabuada dos 10 desse nmero, bem como o factorial do mesmo. Este programa deve ser executado at que o valor introduzido seja igual a zero. Exemplo: Introduza um nmero inteiro positivo 4 4 X 1 = 4 4 X 2 = 8 4 X 3 = 12 ... 4 X 10 = 40 4!=24 Introduza um nmero inteiro positivo 0 Fim a) Implemente este exerccio utilizando a estrutura de repetio repeat. b) Implemente este exerccio utilizando a estrutura de repetio while.

46. Implemente um programa, utilizando uma estrutura modular, que permita mostrar as seguintes opes: 12345Abecedrio crescente Abecedrio decrescente Nmeros crescentes 0 - 10 Nmeros decrescentes 10 - 0 Sair

Implemente um procedimento para a criao do menu e um procedimento para cada uma das opes (1-4) do menu.

ESCOLA SUPERIOR DE TECNOLOGIA E GESTO

CADERNO DE EXERCCIOS

ALGORITMOS E ESTRUTURAS DE DADOS

47. Implemente um programa, utilizando uma estrutura modular que permita mostrar o seguinte menu: abcdeNmero par Nmero impar Nmero divisvel por trs Nmero divisvel por 10 Sair

Implemente um procedimento para a criao do menu e um procedimento para cada uma das opes (a-d) do menu. 48. Implemente um programa utilizando uma estrutura modular, que permita efectuar o seguinte: Exemplo: Introduza dois valores: 4 5 Operaes a efectuar: 1- Soma 2- Subtraco 3- Multiplicao 4- Diviso Qual a sua opo? 1 A soma : 9 Pretende continuar? (S/N) S Introduza dois valores: ... 49. Implemente um programa utilizando funes e procedimentos que mediante a introduo dos valores de facturao e despesas calculem os valores do IVA (19%) e IRC (40% do lucro efectivo se facturao > 100 000 seno 30%) a pagar. Frmulas de clculo: Lucro = (Facturao-Despesas) IVA = Lucro-Lucro/1.19 Se facturao>100 000 IRC = (Lucro-IVA)*0.4 Seno IRC = (Lucro-IVA)*0.3 50. Implemente uma funo em que dado um caracter o converta para o respectivo caracter em maisculas caso este seja minsculo, ou vice-versa. Desenvolva agora um programa que utilize esta funo ciclicamente at ser introduzido o caracter =.

51. Desenvolva uma funo que aceite como parmetro um nmero inteiro e devolva True ou False se este for primo ou no. Desenvolva agora um programa que utilize a funo anterior (mostrando a mensagem primo ou no primo) ciclicamente, at que o nmero inserido seja menor ou igual que 0.

ESCOLA SUPERIOR DE TECNOLOGIA E GESTO

CADERNO DE EXERCCIOS

ALGORITMOS E ESTRUTURAS DE DADOS

52. O sen(x) pode ser calculado com base na soma dos termos de uma srie infinita, do tipo: 3 x x5 x7 sen( x) = x + + ... (1) 3! 5! 7! A nvel computacional no vivel calcular o valor da srie at ao infinito, pelo que o sen(x) calculado com um dado erro atravs da seguinte funo: N x 2i 1 sen( x) = ( 1) i 1 (2) (2i 1)! i =1

a) Implemente uma funo para calcular o factorial de um nmero. b) Implemente uma funo para calcular a potncia com expoente inteiro e no negativo. c) Implemente um procedimento que leia x , valor para o qual pretende calcular o seno e o valor de n. d) Com base nos valores lidos no procedimento da alnea anterior e aplicando a srie (2), implemente uma funo para calcular o valor do seno. e) Implemente um programa que calcule o seno de um valor com base na funo da alnea anterior e o envie para o cran, assim como o valor obtido pela funo padro sin(): compare os resultados (teste para x=1 e n=4). 53. Os nmeros de Fibonacci so membros duma sequncia na qual cada nmero igual soma dos dois nmeros anteriores. Por outras palavras, Fi = Fi 1 + Fi 2 onde Fi se refere ao nmero Fibonacci de ordem i. Os dois primeiros nmeros de Fibonacci so por definio iguais a 1, isto , F1=F2=1. Assim, F3 = F2 + F1 = 1 + 1 = 2 F4 = F3 + F2 = 2 + 1 = 3 F5 = F4 + F3 = 3 + 2 = 5 e assim sucessivamente. a) Implemente uma funo no recursiva que determine o nmero de Fibonacci (Fi) de ordem i. Faa o valor de i um parmetro de entrada da funo. b) O mesmo que a alnea anterior, mas agora com uma funo recursiva. c) Com base na funo recursiva, implemente um programa que mostre todos os nmeros de Fibonacci at um nmero especificado pelo utilizador. 54. Implemente um programa que leia um vector com elementos do tipo caracter. O programa dever converter os caracteres do alfabeto portugus minsculos em maisculos, mantendo os restantes. No final, o programa dever mostrar o vector original e o vector resultante desta converso. Exemplo: T u R B o P a S c A L v.1.5 T U R B O P A S C A L V.1.5
9

ESCOLA SUPERIOR DE TECNOLOGIA E GESTO

CADERNO DE EXERCCIOS

ALGORITMOS E ESTRUTURAS DE DADOS

55. Resolva cada uma das seguintes alneas: a) Escreva um procedimento que leia no mximo 20 nmeros do tipo real. A leitura dever terminar com a introduo do nmero zero. b) Escreva um procedimento que guarde num vector apenas os valores positivos introduzidos. c) Escreva um procedimento que guarde num vector os valores negativos introduzidos. d) Escreva um procedimento que apresente no cran os elementos de um vector. e) Implemente um programa que utilize os procedimentos das alneas anteriores. 56. Escreva um programa que utilizando uma estrutura modular: a) Leia do teclado um conjunto de nmeros inteiros at a um mximo de 10 ou at que seja introduzido o valor zero. Os nmeros devero ser convenientemente guardados num vector. b) Copie para um vector os valores positivos. c) Copie para um vector os valores mltiplos de trs. d) Inverta a ordem do vector que contm apenas os elementos positivos, utilizando caso necessitem, um vector auxiliar. e) Mostre os valores positivos e os valores mltiplos de trs, bem como, o vector com a ordem invertida dos elementos positivos. 57. Escreva um programa que permita ler para um array, atravs do teclado, um conjunto de nmeros inteiros. A leitura deve terminar quando for introduzido um nmero negativo, ou ento ao fim de 10 valores introduzidos. Elabore e associe-lhe os seguintes sub-programas: a) Uma funo que devolva o nmero de elementos, contidos no array, que sejam mltiplos do valor existente na primeira posio do array. b) Uma funo que devolva o nmero de elementos, contidos no array, que sejam nmeros primos. c) Uma funo que devolva a posio do valor mnimo. d) Um procedimento que copie os valores situados direita do valor mnimo para outro vector. Este vector dever ser devolvido por referncia. 58. Implemente um programa em Pascal que permita: Ler do teclado um conjunto de nmeros inteiros e guarda-los num vector. Estes valores representam o tempo de espera de um carro numa dada cidade. A leitura deve terminar quando for introduzido um valor impar positivo ou quando forem armazenados 20 valores inteiros; Ler do teclado um conjunto de nmeros inteiros e guarda-los num vector. Estes valores representam a distncia percorrida por um carro numa dada cidade. A leitura deve terminar quando forem introduzidos o mesmo nmero de elementos da leitura anterior;
10

ESCOLA SUPERIOR DE TECNOLOGIA E GESTO

CADERNO DE EXERCCIOS

ALGORITMOS E ESTRUTURAS DE DADOS

Calcular a velocidade mdia em cada instante e copia-la para um vector auxiliar; Calcular a distncia total percorrida; Mostrar o vector com os tempos de espera, o vector com a velocidade mdia em cada instante e a distncia total percorrida. 59. Escreva um programa com base num procedimento, que receba dois vectores e que devolva um outro vector em que cada elemento a mdia entre os elementos anlogos dos vectores recebidos. 60. Escreva um programa, que utilizando uma estrutura modular, permita saber se existem valores pares consecutivos num vector. 61. Escreva um programa que utilizando uma estrutura modular: a) Armazene num array uma srie de caracteres lidos a partir do teclado. A leitura deve terminar quando for lida uma letra maiscula ou quando forem lidos 10 caracteres; b) Calcule o nmero total de letras minsculas lidas; c) Calcule o nmero total de dgitos lidos (caracteres de 0 a 9); d) Calcule o nmero total de outros caracteres lidos; e) Determine todas as posies no array, de um determinado caracter solicitado ao utilizador. 62. Escreva um programa que leia para um array uma sequncia de 20 nmeros inteiros. O programa dever conter ainda, um procedimento que retire os elementos repetidos, mantendo os restantes elementos no array original (no poder recorrer a um array auxiliar para efectuar esta operao). 63. Escreva um programa que leia caracteres inseridos pelo utilizador at ser introduzido o caracter . ou serem introduzidos 30 caracteres. O programa dever calcular o nmero de dgitos (0 a 9), letras, letras minsculas, letras maisculas, caracteres que no so letras nem dgitos que foram introduzidos. No caso de existirem caracteres repetidos, o programa deve indicar quais so e quantas vezes foram repetidos. 64. Escreva um programa que leia duas sequncias de caracteres, uma com 20 caracteres e outra com 5 caracteres. O programa deve indicar se a sequencia dos 5 caracteres se encontra na sequncia dos 20 caracteres. No caso positivo, o programa dever indicar a sua posio inicial. 65. Escreva um programa que realize a multiplicao de duas matrizes. a) Implemente um procedimento que pea a dimenso de uma matriz, no podendo ser maior do que 5 X 5, e preencha a matriz com valor inseridos pelo utilizador.

11

ESCOLA SUPERIOR DE TECNOLOGIA E GESTO

CADERNO DE EXERCCIOS

ALGORITMOS E ESTRUTURAS DE DADOS

b) Implemente uma funo que determine se possvel multiplicar duas matrizes dando as suas dimenses. As matrizes devem ter as seguintes dimenses: Matriz1 (m X n), Matriz2 (n X p). c) Implemente um procedimento que dadas as matrizes e as suas dimenses devolva a matriz resultante da multiplicao. Exemplo: 2 -1 3 4 3 0 * 6 -5 1 2 1 -1 = 0 -26 4 2

66. Escreva um programa que leia um array bidimensional de dimenses 4 X 4 e faa a operao indicada no exemplo. Exemplo: 1 5 9 13 2 6 10 14 3 7 11 15 4 8 12 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

67. Considere um sistema para o controlo do inventrio de um bar. O sistema deve guardar a informao das bebidas em stock no bar. Essa informao deve ser a seguinte: - cdigo da bebida - designao da bebida - quantidade em stock - quantidade j consumida - preo unitrio de compra - preo unitrio de venda a) Construa um programa que apresente um menu que permita introduzir novas bebidas em stock, ou actualizar o stock de certas bebidas. O cdigo da bebida deve ser atribudo automaticamente pelo programa. b) Altere o programa para permitir registar o consumo de uma determinada bebida do bar. c) Altere o programa de modo a avisar o utilizador se uma determinada bebida tem um stock abaixo das 10 unidades ou se uma determinada bebida tem o stock a 0. d) Altere o programa de modo a visualizar a informao de um determinado produto, incluindo o seu saldo. e) Altere o programa de modo a visualizar o saldo do bar.

12