(Parte 2 de 5)

- c or dos cabelos ( louros, castanhos, pretos)

- idade Construa um algoritmo que determine e escreva: - a maior idade dos habitantes

- a quantidade 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 entrado como idade. 41) Uma empresa deseja aumentar seus preços em 20%. Construa um algoritmo que leia o código e o preço de custo de cada produto e calcule o preço novo. Calcule também, a média dos preços com e sem aumento. Mostre o código e o preço novo de cada produto e, no final, as médias. A entrada de dados deve terminar quando for lido um código de produto negativo. (Use o comando enquanto-faça) 42) Escrever um algoritmo que leia uma quantidade desconhecida de números e conte quantos deles estão nos seguintes intervalos: [0.25], [26,50], [51,75] e [76,100]. A entrada de dados deve terminar quando for lido um número negativo. 43) Escrever um algoritmo que leia um conjunto não determinado de valores, um de cada vez, e escreve uma tabela com cabeçalho, que deve ser repetido a cada 20 linhas. A tabela conterá o valor lido, seu quadrado, seu cubo e sua

a) Usando um ciclo "EnquantoFaça ...";
b) Usando um ciclo "RepitaAté ...".
Número 1 ? 1 Número 2 ? 14 Número 3 ? 3Número 10 ? –1

raiz quadrada. 4) Escreva um algoritmo que leia 500 valores inteiros e positivos e: a) encontre o maior valor; b) encontre o menor valor; c) calcule a média dos números lidos. 45) Escrever um algoritmo que gera e escreve os números ímpares entre 100 e 200. 46) Escrever um algoritmo que lê 10 valores, um de cada vez, e conta quantos deles estão no intervalo [10,20] e quantos deles estão fora do intervalo, escrevendo estas informações. 47) Escrever um algoritmo que lê 5 pares de valores a, b, todos inteiros e positivos, um par de cada vez, e com a < b, escreve os inteiros pares de a até b, incluindo o a e o b se forem pares. 48) Escrever um algoritmo que leia 5 conjuntos de 2 valores, o primeiro representando o número de um aluno, e o segundo representando a sua altura em centímetros. Encontre o aluno mais alto e o mais baixo. Mostre o número do aluno mais alto e do mais baixo, junto com suas alturas. 49) Escrever um algoritmo que calcula e escreve o produto dos números primos entre 92 e 1478. 50) Escreva um algoritmo que leia uma sequência de valores positivos, terminada por um número negativo ou nulo, e determine o maior elemento dessa sequência e o seu número de ordem: Exemplo: O maior elemento da sequência lida é 14. O seu número de ordem é 2. 51) Escrever um algoritmo que gera e escreve os 5 primeiros números perfeitos. Um número perfeito é aquele que é igual a soma dos seus divisores. (Ex.: 6 = 1+2+3; 28= 1+2+4+7+14 etc). 52) Escrever um algoritmo que lê um valor n que indica quantos valores devem ser lidos para m, valores inteiros e positivos, com leitura de um valor de cada vez. Escreva uma tabela contendo o valor lido, o somatório dos inteiros de 1 até m e o factorial de m. 53) Construa um algoritmo que leia as três notas de 50 alunos de uma turma. Para cada aluno, calcule a média ponderada, como segue: MP = ( n1*2 + n2*4 + n3*3 ) / 10 Além disso, calcule a média geral da turma. Mostre a média de cada aluno e uma mensagem "Aprovado", caso a média seja maior ou igual a sete, e uma mensagem "Reprovado", caso contrário. No final, mostre a média geral. 54) Fazer um algoritmo que leia 5 grupos de 4 valores (A,B,C,D) e mostre-os na ordem lida. Em seguida, ordene-os em ordem decrescente e mostre-os novamente, já ordenados. 5) Foi feita uma estatística nas 50 principais cidades portuguesas para recolher dados sobre acidentes de trânsito. Foram obtidos os seguintes dados: - código da cidade

- distrito (PO, LI, BR,)

- número de veículos de passeio (em 2001)

- número de acidentes de trânsito com vítimas (em 2001) Deseja-se saber: a) qual o maior e o menor índice de acidentes de trânsito e a que cidades pertencem b) qual a média de veículos nas cidades portuguesas c) qual a média de acidentes com vítimas nas cidades do distrito do Porto 56) Uma loja tem 150 clientes registrados e deseja mandar uma correspondência a cada um deles anunciando um bónus especial. Escreva um algoritmo que leia o nome do cliente e o valor das suas compras no ano passado e calcule um bónus de 10% se o valor das compras for menor que 1000€ e de 20%, caso contrário

Algoritmos com Vectores e Matrizes

1) Escreva um algoritmo que leia dois vectores de 10 posições e faça a multiplicação dos elementos de mesmo índice, colocando o resultado em um terceiro vector. Mostre o vector resultante. 2) Escreva um algoritmo que leia e mostre um vector de 20 elementos inteiros. a seguir, conte quantos valores pares existem no vector. 3) Escreva um algoritmo que leia um vector de 100 posições e mostre-o ordenado com ordem crescente. 4) Elaborar um algoritmo que lê um conjunto de 30 valores e os coloca em 2 vectores conforme forem pares ou ímpares. O tamanho do vector é de 5 posições. Se algum vector estiver cheio, escrevê-lo. Terminada a leitura escrever o conteúdo dos dois vectores. Cada vector pode ser preenchido tantas vezes quantas for necessário. 5) Escreva um algoritmo que leia um vector de 13 elementos inteiros, que é o resultado correcto de um boletim do totobola, contendo os valores 1(coluna 1), 2 (coluna 2) e 3 (coluna do meio). Leia, a seguir, para cada apostador, o número do seu cartão e um vector de Respostas de 13 posições. Verifique para cada apostador o números de

estão compreendidos nos intervalos [0..10[, [10..20[,, [90..100]. Admita que o número de alunos não é superior a

acertos, comparando o vector de resultados correctos com o vector de Respostas. Escreva o número do apostador e o número de acertos. Se o apostador tiver 13 acertos, mostrar a mensagem "Ganhador". 6) Escreva um algoritmo que leia um vector de 20 posições e mostre- o. Em seguida, troque o primeiro elemento com o último, o segundo com o penúltimo, o terceiro com o antepenúltimo, e assim sucessivamente. Mostre o novo vector depois da troca. 7) Escreva um algoritmo que leia um vector de 50 posições de números inteiros e mostre somente os positivos. 8) Escreva um algoritmo que leia um vector de 80 elementos inteiros. Encontre e mostre o menor elemento e sua posição no vector. 9) Escreva um algoritmo que leia um vector inteiro de 30 posições e crie um segundo vector, substituindo os valores nulos por 1. Mostre os 2 vectores. 10) Escreva um que leia um vector G de 20 elementos caracter que representa o gabarito de uma prova. A seguir, para cada um dos 50 alunos da turma, leia o vector de respostas (R) do aluno e conte o número de acertos. Mostre o nº de acertos do aluno e uma mensagem APROVADO, se a nota for maior ou igual a 6; e mostre uma mensagem de REPROVADO, caso contrário. 1) Escrever um algoritmo que gera os 10 primeiros números primos acima de 100 e os armazena num vector de X(10) escrevendo, no final, o vector X. 12) Escrever um algoritmo que lê 2 vectores de tamanho 10 e os escreve. Crie, a seguir, um vector de 20 posições que contenha os elementos dos outros 2 vectores em ordem crescente. 13) Escrever um algoritmo que lê 2 vectores X(10) e Y(10) e os escreve. Crie, a seguir, um vector Z que seja a) a união de X com Y; b) a diferença entre X e Y; c) a soma entre X e Y; d) o produto entre X e Y; e) a intersecção entre X e Y. Escreva o vector Z depois de cada cálculo. 14) Escrever um algoritmo que lê um vector K(15) e o escreve. Crie, a seguir, um vector P, que contenha todos os números primos de K. Escreva o vector P. 15) Escrever um algoritmo que lê um vector X(20) e o escreve. Escreva, a seguir, cada um dos valores distintos que aparecem em X dizendo quantas vezes cada valor aparece em X. 16) Construa um algoritmo que leia dois vectores de 200 posições de caracteres. A seguir, troque o 1º elemento de A com o 200º de B, o 2º de A com o 199º de B, assim por diante, até trocar o 200º de A com o 1º de B. Mostre os vectores antes e depois da troca. 17) Construa um algoritmo que leia um código numérico inteiro e um vector de 50 posições de números reais. Se o código for zero, termine o algoritmo. Se o código for 1, mostre o vector na ordem normal. Se o código for 2, mostre o vector na ordem inversa. 18) Construa um algoritmo que leia um vector (A) de 100 posições. Em seguida, compacte o vector, retirando os valores nulos e negativos. Coloque o resultado no vector B. 19) Construa um algoritmo que leia um vector de 500 posições de números inteiros e divida todos os seus elementos pelo maior valor do vector. Mostre o vector após os cálculos. 20) Construa um algoritmo que leia um vector de 80 posições e encontre o menor valor. Mostre-o juntamente com seu número de ordem. 21) Construa um algoritmo que leia dois vectores (A e B) de 50 posições de números inteiros. O algoritmo deve, então, subtrair o primeiro elemento de A do último de B, acumulando o valor, subtrair o segundo elemento de A do penúltimo de B, acumulando o valor, e assim por diante. Mostre o resultado da soma final. 2) Uma empresa de aluguer de vídeos tem guardada, num vector de 500 posições, a quantidade de filmes retirados por seus clientes durante o ano de 2001. Agora, esta empresa está a fazer uma promoção e, para cada 10 filmes retirados, o cliente tem direito a um aluguer grátis. Construa um algoritmo que crie um outro vector contendo a quantidade de alugueres gratuitos a que cada cliente tem direito. 23) Escreva um algoritmo para ler uma sequência de valores reais, positivos, inferiores ou iguais a 100 (percentagensobtidas por um conjunto de alunos num exame), terminados por um valor negativo, e guardar a sequência num vector. Em seguida deve determinar a média e o desvio padrão dos valores lidos e quantos valores 500. Construa em seguida um histograma para os intervalos considerados. 24) Escreva um algoritmo que leia 10 caracteres para um vector e os escreva depois, no ecrã, em ordem inversa. 25) Escreva um algoritmo para gerar uma aposta no totoloto, constituída por 6 números inteiros, não repetidos, pertencentes ao intervalo [1..49]. (Sugestões: utilize a função de geração de números inteiros aleatórios Random). 26) Altere o algoritmo anterior de forma a evitar que surjam números repetidos na chave fornecida. Para tal utilize um vector de Booleanos para manter informação sobre os números que vão sendo gerados.

27) Considere um conjunto de pontos de coordenadas (xi,yi). Escreva um algoritmo que determine os dois pontos mais distantes, utilizando a) Dois vectores lineares, X[] e Y[], para guardar as coordenadas; b) um único vector bidimensional (matriz), Coordenadas[]. (a distância entre dois pontos de coordenadas (xi,yi) e (xj,yj) é dada por d= (xi-xj)2+(yi-yj) 2 ) 28) Escreva um algoritmo que preencha um vector com uma sequência de números positivos terminada por zero e que seguidamente elimine todos os valores repetidos. a) Suponha que a sequência de valores não repetidos é guardada num outro vector. b) Suponha que a sequência de valores não repetidos é guardada no mesmo vector. 29) Escreva um algoritmo que leia duas vectores e efectue a sua fusão eliminando todos os elementos que estejam repetidos.

30) Escreva um algoritmo que leia uma matriz de 5∞5, representando as altitudes de uma determinada região e determine as coordenadas do(s) ponto(s) mais alto(s). A leitura dos elementos da matriz deve ser feita de tal modo que a posição do écran onde são lidos os elementos corresponda à posição desses elementos na matriz 31) Construa uma função que calcule a soma dos elementos da diagonal principal de uma matriz quadrada nxn 32) Escreva um algoritmo que permita efectuar a leitura de um vector e em seguida permita efectuar a sua ordenação por ordem decrescente ou crescente (selecção efectuada pelo utilizador). 3) Considere um conjunto de N pontos, de coordenadas (xi,yi). Escreva um algoritmo que determine os parâmetros da recta de regressão (recta que melhor se ajusta ao conjunto de pontos), y(x), de acordo com as fórmulas seguintes

(Σ representa o somatório de 1 até N): y=a0+a1x a1=(N⋅Σ(xi⋅yi)−Σxi⋅Σyi)/(N⋅Σxi2−(Σxi)2) a0=(Σyi−a1Σxi)/N Calcule também o coeficiente de correlação, que indica a qualidade do ajuste da recta de regressão ao conjunto de pontos, o qual é dado por: r=(N⋅Σ(xi⋅yi)−Σxi⋅Σyi)/[ N⋅Σxi2−(Σxi)2⋅ N⋅Σyi2−(Σyi)2] 34) Elaborar um algoritmo que lê uma matriz M(6,6) e um valor A e multiplica a matriz M pelo valor A e coloca os valores da matriz multiplicados por A em um vector de V(36) e escreve no final o vector V. 35) Escreva um algoritmo que leia um número inteiro A e uma matriz V 30x30 de inteiros. Conte quantos valores iguais a A estão na matriz. Crie, a seguir, uma matriz X contendo todos os elementos de V diferentes de A. Mostre os resultados. 36) Escreva um algoritmo que lê uma matriz M(5,5) e calcula as somas: a) da linha 4 de M b) da coluna 2 de M c) da diagonal principal d) da diagonal secundária e) de todos os elementos da matriz M Escrever essas somas e a matriz. 37) Escrever um algoritmo que lê uma matriz A(15,5) e a escreva. Verifique, a seguir, quais os elementos de A que estão repetidos e quantas vezes cada um está repetido. Escrever cada elemento repetido com uma mensagem dizendo que o elemento aparece X vezes em A. 38) Escrever um algoritmo que lê uma matriz M(10,10) e a escreve. Troque, a seguir: a) a linha 2 com a linha 8 b) a coluna 4 com a coluna 10 c) a diagonal principal com a diagonal secundária d) a linha 5 com a coluna 10. Escreva a matriz assim modificada. 39) Construa um algoritmo que gere a seguinte matriz: 1 1 1 1 1 1 1 2 2 2 2 1 1 2 3 3 2 1 1 2 3 3 2 1 1 2 2 2 2 1 1 1 1 1 1 1 40) Escrever um algoritmo que lê uma matriz M(12,13) e divida todos os 13 elementos de cada uma das 12 linhas de M pelo maior elemento em módulo daquela linha. Escrever a matriz lida e a modificada. 41) Escrever um algoritmo que lê uma matriz M(5,5) e cria 2 vectores SL(5) e SC(5) que contenham, respectivamente, as somas das linhas e das colunas de M. Escrever a matriz e os vectores criados.

42) Construa um algoritmo que calcule a média dos elementos da diagonal principal de uma matriz 10 X 10 de inteiros. 43) Construa um algoritmo que leia uma matriz 15 X 15 de reais e calcule a soma dos elementos da diagonal secundária. 4) Construa um algoritmo que leia uma matriz 20x15 de inteiros. calcule e mostre a soma das linhas pares da matriz. 45) Construa um algoritmo que leia uma matriz 20x20 de reais e some cada uma das linhas, armazenando o resultado da soma em um vector. A seguir, multiplique cada elemento pela soma da sua linha. Mostre a matriz resultante. 46) Construa um algoritmo que leia uma matriz 50x50 de números reais e encontre o maior valor da matriz. A seguir, multiplique cada elemento da diagonal principal pelo maior valor. Mostre a matriz após as multiplicações. 47) Construa um algoritmo que leia uma matriz 50x50 de números reais. A seguir, multiplique cada linha pelo elemento da diagonal principal daquela linha. Mostre a matriz após as multiplicações. 48) Construa um algoritmo que leia uma matriz de 60 linhas e 10 colunas. Depois de lê-la, some as colunas individualmente e acumule a soma na 61ª linha da matriz. Mostre o resultado de cada coluna no vídeo. (Nota: para guardar o resultado é necessário declarar uma matriz de 61 x 10.) 52) Construa um algoritmo lê uma matriz A 7 x 7 de números inteiros e cria 2 vectores ML(7) e MC(7), que contenham, respectivamente, o maior elemento de cada uma das linhas e o menor elemento de cada uma das colunas. Escrever a matriz A e os vectores ML e MC. 53) Considere a seguinte declaração de um programa em Pascal: TYPE Tabnotas = Array[1..25,1..3] of Integer; a) Escreva um algoritmo que leia as notas (de 0 a 20) dos alunos de uma turma (no máximo 25), em três disciplinas, para um array do tipo Tabnotas, e que determine a nota média de cada aluno e a nota média de cada disciplina. Durante a leitura deve ser apresentado no écran o número de ordem do aluno e o numero da disciplina cuja nota o utilizador deve introduzir. b) Altere o algoritmo da alínea anterior, considerando a existência de dois arrays "paralelo", onde são guardados os nomes dos alunos e das disciplinas. Neste caso, deve-se começar por pedir ao utilizador que indique o nome de todos os alunos e de todas as disciplinas e só depois as notas. c) Altere o algoritmo da alínea anterior, de modo a que sejam apresentados no écran os nomes dos alunos aprovados. Um aluno considera-se aprovado se tiver nota superior ou igual a 10, em todas as disciplinas. 5) Escreva uma função que indique o número de vezes que o maior número de uma tabela de N elementos ocorre. (Nota: Só deve ser efectuada uma passagem pela tabela).

(Parte 2 de 5)

Comentários