Trabalho de LP 2


Obs.: Faça os programas selecionados em C++, manuscritos, de forma organizada e legível, para entregá-los no dia marcado para a segunda prova. A resolução correta de todos os exercícios valerá 2 pontos na segunda prova.


1) Faça um programa que leia um valor com vírgula no programa principal (float). Chame em seguida uma função arredonda que arredonda o valor lido. Mostre o valor arredondado no programa principal. Obs.: considere que o valor lido terá sempre 2 casas decimais e a lógica para arredondamento é apresentada abaixo:

Valor: Valor arredondado que deverá ser apresentado:

7.13 7.00 ou 7

7.50 7.00 ou 7

7.51 8.00 ou 8

7.6 8.00 ou 8


2) Considerando uma variável s do tipo char, faça um laço de repetição que mostre o valor asc de todas as letras minúsculas, de a até z.

Saída do programa:

Valor asc de a: 97

Valor asc de b: 98

...

Valor asc de z: 122


3) Crie um programa em C que mostra se um valor é primo ou não (se for digitado um valor negativo ou 0 mostre mensagem “valor inválido”. NOTA: o valor a verificar deve ser passado pela linha de comando.

Dica:

>>> void main (int argc, char *argv[])

>>> quando argc ==1, não foi passado argumento nenhum

>>> o argv[0] é sempre o próprio nome do programa

Exemplos:

c:\>primo 20

c:\>20 Não é primo

c:\>primo 17

c:\>17 é primo


c:\>primo -17

c:\>Valor Inválido


4) Leia 3 variáveis numéricas inteiras A, B e C no main(). (1,2)

a) chame uma função triplo que triplicará o valor de A, usando passagem de parâmetro por referência.

b) calcule e mostre o fatorial de B, usando para isso uma função fatorial e passagem de parâmetro por valor.

Para os esquecidos :>):

Fat = valor

para i de valor-1 até 2 passo -1

Fat = Fat * i

próximo



5) Leia 2 vetores com 10 posições cada, um contendo 10 nomes (char nome[10][30]) e outro contendo 10 salários (float sal[10]). Mostre no final o nome das pessoas que tiveram o menor e maior salários.

Exemplo:

Saída do programa:

Maior Salário: Maria Silva, 3500,00

Menor Salário: Juca Silva, 250,00


Dica:

char nome[10][31];

float sal[10];

printf("Digite um nome:\n");

gets(nome[0]);

printf("Digite uma salario:\n");

scanf("%f",&sal[0]);

puts(nome[0]);

printf("%f",sal[0]);



6. Escreva um programa que leia um vetor inteiro de 30 posições e crie um segundo vetor, substituindo os valores nulos por 1. Mostre os 2 vetores.

7. Escreva um que leia um vetor G de 20 elementos caracter que representa o gabarito de uma prova. A seguir, para cada um dos 50 alunos da turma, leia o vetor 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.

8. Escreva um programa que leia um vetor de 13 elementos, que é o Gabarito de um teste da loteria esportiva, 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 vetor de Respostas de 13 posições. Verifique para cada apostador o números de acertos, comparando o vetor de Gabarito com o vetor de Respostas. Escreva o número do apostador e o número de acertos. Se o apostador tiver 13 acertos, mostrar a mensagem "Ganhador".

9. Escrever um programa que gera os 30 primeiros números primos a partir de 100 e os armazena em um vetor de X[100] escrevendo, no final, o vetor X.

10. Escrever um programa que lê 2 vetores de tamanho 10. Crie, a seguir, um vetor S de 20 posições que contenha os elementos dos outros 2 vetores em ordem crescente. Obs.: copie primeiro os valores para o vetor S para depois ordená-los

11. Escrever um programa que lê 2 vetores X(10) e Y(10) . Crie, a seguir, um vetor Z que seja

12. Escrever um programa que lê um vetor K(15). Crie, a seguir, um vetor P, que contenha todos os números primos de K. Escreva o vetor P.

13. Escrever um programa que lê um vetor X(20). Escreva, a seguir, cada um dos valores distintos que aparecem em X dizendo quantas vezes cada valor aparece em X.

14. Faça um programa que leia dois vetores 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 vetores antes e depois da troca.

15. Faça um programa que leia um código numérico inteiro e um vetor de 50 posições de números. Se o código for zero, termine o programa. Se o código for 1, mostre o vetor na ordem como ele foi lido. Se o código for 2, mostre o vetor na ordem inversa, do último até o primeiro.

16. Faça um programa que leia um vetor (A) de 100 posições. Em seguida, compacte o vetor, retirando os valores nulos e negativos, colocando o resultado em um vetor B de 100 posições (deixe em branco as posições não utilizadas).

17. Faça um programa que leia um vetor (A) de 100 posições. Em seguida, compacte o vetor, retirando os valores nulos e negativos, colocando o resultado em um vetor B de 100 posições (Defina o vetor B com o número exato de posições para que seja suficientemente grande para conter o vetor A sem os valores nulos).

18. Faça um programa que leia um vetor de 500 posições de números e divida todos os seus elementos pelo maior valor do vetor. Mostre o vetor após os cálculos.

19. Faça um programa que leia um vetor de 10 posições. Mostre então os 3 menores valores do vetor.

20. Faça um programa que leia dois vetores (A e B) de 50 posições de números. O programa 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.

21. Uma locadora de vídeos tem guardada, em um vetor de 500 posições, a quantidade de filmes retirados por seus clientes durante o ano de 1993. Agora, esta locadora está fazendo uma promoção e, para cada 10 filmes retirados, o cliente tem direito a uma locação grátis. Faça um programa que crie um outro vetor contendo a quantidade de locações gratuitas a que cada cliente tem direito.

22. Faça um programa que leia um vetor A[10]. Preencha então um vetor B[10] com o fatorial de cada valor de A respeitando as posições, caso o referido valor for positivo ou nulo. Deixe os valores negativos intactos. Mostre o vetor B.

23. Faça um programa que leia um vetor A[10]. Preencha então um vetor B[10] com o fatorial de cada valor de A respeitando as posições, caso o referido valor for positivo ou nulo. Substitua no final os valores negativos por 0 (zero). Mostre o vetor B.

24. Faça um programa que leia um vetor A[10]. Inverta então os valores de A. troque o primeiro pelo último, segundo pelo penúltimo e assim por diante. Mostre o vetor A após as alterações.

25. Elaborar um programa que lê duas matrizes M(4,6) e N(4,6) e cria uma matriz que seja:

26. Elaborar um programa 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 vetor de V(36) e escreve no final o vetor V.

27. Escreva um programa que leia um número inteiro A e uma matriz V 30x30 de números. 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.

28. Escreva um programa que lê uma matriz M(5,5) e calcula as somas:

29. Escrever um programa 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 mesagem dizendo que o elemento aparece X vezes em A.

30. Escrever um programa 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.

31. Escrever um programa que lê uma matriz M(10,10) e a escreve. Troque, a seguir:

32. Escrever um programa que lê uma matriz M(10,10) e a escreve. Troque, a seguir:

33. Escrever um programa 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.

34. Escrever um programa que lê uma matriz M(5,5) e cria 2 vetores SL(5) e SC(5) que contenham, respectivamente, as somas das linhas e das colunas de M. Escrever a matriz e os vetores criados.

35. Escreva um programa que lê uma matriz M[5,5]. Substitua, a seguir, todos os valores negativos da matriz pelo seu módulo. Exemplo: substitua -2 por 2, -16 por 16, assim por diante.

36. Escreva um programa que lê uma matriz M[6,6]. A seguir, troque os elementos da primeira coluna com os elementos da segunda coluna, os da terceira coluna com a quarta coluna e os elementos da quinta coluna com os elementos da sexta coluna.

37. Repita o exercício anterior, trocando os elementos das linhas, ao invés das colunas.

38. Leia uma matriz M[5,5]. A seguir, ordene os elementos da matriz M e mostre como ficou a Matriz ordenada, linha por linha.

39. Faça um programa que calcule a média dos elementos da diagonal principal de uma matriz 10 X 10 de números.

40. Faça um programa que calcule a média dos elementos da diagonal secundária de uma matriz 10 X 10 de números.

41. Faça um programa 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

42. Faça um programa que gere a seguinte matriz:

1 3 3 3 3 2

3 1 3 3 2 3

3 3 1 2 3 3

3 3 2 1 3 3

3 2 3 3 1 3

2 3 3 3 3 1

43. Faça um programa que leia uma matriz numérica 15 X 15 e calcule a soma dos elementos da diagonal secundária.

44. Faça um programa que leia uma matriz 20x15 de números. calcule e mostre a soma das linhas pares da matriz.

45. Faça um programa que leia uma matriz 20x20 de números e some cada uma das linhas, armazenando o resultado da soma em um vetor. A seguir, multiplique cada elemento pela soma da sua linha. Mostre a matriz resultante.

46. Faça um programa que leia uma matriz 50x50 de números 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. Faça um programa que leia uma matriz 50x50 de números. A seguir, multiplique cada linha pelo elemento da diagonal principal daquela linha. Mostre a matriz após as multiplicações.

48. Faça um programa 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. (Lembrete: para guardar o resultado é necessário declarar uma matriz de 61 x 10.)

49. Na teoria dos sistemas, define-se como elemento minimax de uma matriz o menor elemento da linha onde se encontra o maior elemento da matriz. Escreva um programa que leia uma matriz 10 X 10 de números e encontre seu elemento minimax, mostrando também sua posição.

50. Escrever um programa que lê uma matriz 17x17 e:

  1. calcula a média aritmética dos elementos hachurados na letra a;

  2. o maior elemento da linha onde se encontra o menor elemento da área hachurada na letra b;


Escreva os valores calculados nos itens 1 e 2 e a matriz.