/Exercicios_Java

Conhecendo e treinando Java

Primary LanguageJavaMIT LicenseMIT

Exercicios_Java

Conhecendo e treinando Java

Esses exercícios são genéricos e podem ser resolvidos em qualquer linguagem que você preferir, apenas tome cuidado e os adapte a medida que você percebe as limitações de cada linguagem.

💼 Skills: pré-requisito para resolver os exercícios sobre estrutura sequencial.

a) Como declarar variáveis

b) Como atribuir valores para variáveis

c) Como funcionam os tipos de dados de cada variável (inteiro, string, etc)

d)Como realizar a entrada de dados usando o teclado

e) Como realizar a saída de dados usando o terminal

f) Como realizar operações matemáticas

Caso você não conheça algum desses assuntos, pare um pouco e dê uma revisada no conteúdo antes de prosseguir.

💼 Skills: pré-requisito para resolver os exercícios sobre estrutura de decisão.

a) Como declarar variáveis

b) Como atribuir valores para variáveis

c) Como funcionam os tipos de dados de cada variável (inteiro, string, etc)

d)Como realizar a entrada de dados usando o teclado

e) Como realizar a saída de dados usando o terminal

f) Como realizar operações matemáticas

g) O que são e como usar os conectores lógicos (and, or)

h) Compreender o que são e como usar condicionais (iF, else, else if e switch case)

Caso você não conheça algum desses assuntos, pare um pouco e dê uma revisada no conteúdo antes de prosseguir.

💼 Skills: pré-requisito para resolver os exercícios sobre estrutura de repetição.

a) Como declarar variáveis

b) Como atribuir valores para variáveis

c) Como funcionam os tipos de dados de cada variável (inteiro, string, etc)

d)Como realizar a entrada de dados usando o teclado

e) Como realizar a saída de dados usando o terminal

f) Como realizar operações matemáticas

g) O que são e como usar os conectores lógicos (and, or)

h) Compreender o que são e como usar condicionais (iF, else, else if e switch case)

i) Compreender o que são e como usar laços de repetição (for, while e do-while)

Caso você não conheça algum desses assuntos, pare um pouco e dê uma revisada no conteúdo antes de prosseguir.

💼 Skills: pré-requisito para resolver os exercícios sobre vetores, array ou listas.

a) Como declarar variáveis

b) Como atribuir valores para variáveis

c) Como funcionam os tipos de dados de cada variável (inteiro, string, etc)

d)Como realizar a entrada de dados usando o teclado

e) Como realizar a saída de dados usando o terminal

f) Como realizar operações matemáticas

g) O que são e como usar os conectores lógicos (and, or)

h) Compreender o que são e como usar condicionais (iF, else, else if e switch case)

i) Compreender o que são e como usar laços de repetição (for, while e do-while)

j) Compreender como declarar vetores, inicializar vetores e como percorrer vetores. (Vale lembrar que vetores, array ou listas são as mesmas coisas, então são só termos diferentes usados para se referir as mesmas coisas.)

Caso você não conheça algum desses assuntos, pare um pouco e dê uma revisada no conteúdo antes de prosseguir.

💼 Skills: pré-requisito para resolver os exercícios sobre Matrizes.

a) Como declarar variáveis

b) Como atribuir valores para variáveis

c) Como funcionam os tipos de dados de cada variável (inteiro, string, etc)

d)Como realizar a entrada de dados usando o teclado

e) Como realizar a saída de dados usando o terminal

f) Como realizar operações matemáticas

g) O que são e como usar os conectores lógicos (and, or)

h) Compreender o que são e como usar condicionais (iF, else, else if e switch case)

i) Compreender o que são e como usar laços de repetição (for, while e do-while)

j) Compreender como declarar vetores, inicializar vetores e como percorrer vetores. (Vale lembrar que vetores, array ou listas são as mesmas coisas, então são só termos diferentes usados para se referir as mesmas coisas.)

k) Compreender o que são matrizes, como são representadas na programação (geralmente como arrays bidimensionais), como acessar elementos em uma matriz (usando índices de linha e coluna), operações básicas com matrizes (como soma, multiplicação, transposição) e como percorrer uma matriz.

Caso você não conheça algum desses assuntos, pare um pouco e dê uma revisada no conteúdo antes de prosseguir.

💼 Skills: pré-requisito para resolver os exercícios sobre Funções.

a) Como declarar variáveis

b) Como atribuir valores para variáveis

c) Como funcionam os tipos de dados de cada variável (inteiro, string, etc)

d)Como realizar a entrada de dados usando o teclado

e) Como realizar a saída de dados usando o terminal

f) Como realizar operações matemáticas

g) O que são e como usar os conectores lógicos (and, or)

h) Compreender o que são e como usar condicionais (iF, else, else if e switch case)

i) Compreender o que são e como usar laços de repetição (for, while e do-while)

j) Compreender como declarar vetores, inicializar vetores e como percorrer vetores. (Vale lembrar que vetores, array ou listas são as mesmas coisas, então são só termos diferentes usados para se referir as mesmas coisas.)

k) Compreender o que são matrizes, como são representadas na programação (geralmente como arrays bidimensionais), como acessar elementos em uma matriz (usando índices de linha e coluna), operações básicas com matrizes (como soma, multiplicação, transposição) e como percorrer uma matriz.

l) Como declarar e usar funções(return e parâmetros)

Caso você não conheça algum desses assuntos, pare um pouco e dê uma revisada no conteúdo antes de prosseguir.

Regras

Construa um programa para cada exercício a seguir;

A interpretação do exercício e como resolve-lo faz parte do exercício;

Você poderá utilizar IDE’s de programação de seu interesse, mas lembre-se, o risco de se acomodar com as comodidades da IDE é seu;

Estrutura Sequencial

1. Faça um Programa que mostre a mensagem "Alo mundo" na tela.

2. Faça um Programa que peça um número e então mostre a mensagem O número informado foi [número].

3. Faça um Programa que peça dois números e imprima a soma.

4. Faça um Programa que peça as 4 notas bimestrais e mostre a média.

5. Faça um Programa que converta metros para centímetros.

6. Faça um Programa que peça o raio de um círculo, calcule e mostre sua área.

7. Faça um Programa que calcule a área de um quadrado, em seguida mostre o dobro desta área para o usuário.

8. Faça um Programa que pergunte quanto você ganha por hora e o número de horas trabalhadas no mês. Calcule e mostre o total do seu salário no referido mês.

9. Faça um Programa que peça a temperatura em graus Fahrenheit, transforme e mostre a temperatura em graus Celsius. C = 5 * ((F-32) / 9).

10. Faça um Programa que peça a temperatura em graus Celsius, transforme e mostre em graus Fahrenheit.

11. Faça um Programa que peça 2 números inteiros e um número real. Calcule e mostre:

a) o produto do dobro do primeiro com metade do segundo .

b) a soma do triplo do primeiro com o terceiro.

c) o terceiro elevado ao cubo.

12. Tendo como dados de entrada a altura de uma pessoa, construa um algoritmo que calcule seu peso ideal, usando a seguinte fórmula: (72.7*altura) - 58

13. Tendo como dado de entrada a altura (h) de uma pessoa, construa um algoritmo que calcule seu peso ideal, utilizando as seguintes fórmulas:

Para homens: (72.7*h) - 58

Para mulheres: (62.1*h) - 44.7

14. João Papo-de-Pescador, homem de bem, comprou um microcomputador para controlar o rendimento diário de seu trabalho. Toda vez que ele traz um peso de peixes maior que o estabelecido pelo regulamento de pesca do estado de São Paulo (50 quilos) deve pagar uma multa de R$ 4,00 por quilo excedente. João precisa que você faça um programa que leia a variável peso (peso de peixes) e calcule o excesso. Gravar na variável excesso a quantidade de quilos além do limite e na variável multa o valor da multa que João deverá pagar. Imprima os dados do programa com as mensagens adequadas.

15. Faça um Programa que pergunte quanto você ganha por hora e o número de horas trabalhadas no mês. Calcule e mostre o total do seu salário no referido mês, sabendo-se que são descontados 11% para o Imposto de Renda, 8% para o INSS e 5% para o sindicato, faça um programa que nos dê:

a) salário bruto.

b) quanto pagou ao INSS.

c) quanto pagou ao sindicato.

d) quanto pagou de IR.

e) desconto total.

f) o salário líquido.

-calcule os descontos e o salário líquido, conforme a tabela abaixo:

+ Salário Bruto : R$

- IR (11%) : R$

- INSS (8%) : R$

- Sindicato ( 5%) : R$

= Salário Liquido : R$

Obs.: Salário Bruto - Descontos = Salário Líquido.

16. Faça um programa para uma loja de tintas. O programa deverá pedir o tamanho em metros quadrados da área a ser pintada. Considere que a cobertura da tinta é de 1 litro para cada 3 metros quadrados e que a tinta é vendida em latas de 18 litros, que custam R$ 80,00. Informe ao usuário a quantidades de latas de tinta a serem compradas e o preço total.

17. Faça um Programa para uma loja de tintas. O programa deverá pedir o tamanho em metros quadrados da área a ser pintada. Considere que a cobertura da tinta é de 1 litro para cada 6 metros quadrados e que a tinta é vendida em latas de 18 litros, que custam R$ 80,00 ou em galões de 3,6 litros, que custam R$ 25,00. Informe ao usuário as quantidades de tinta a serem compradas e os respectivos preços em 2 situações:

a) comprar apenas latas de 18 litros;

b) comprar apenas galões de 3,6 litros.

18. Faça um programa que peça o tamanho de um arquivo para download (em MB) e a velocidade de um link de Internet (em Mbps), calcule e informe o tempo aproximado de download do arquivo usando este link (em minutos).

19. Crie um programa que peça um número ao usuário e armazene ele na variável x. Depois peça outro número e armazene na variável y. Mostre esses números. Em seguida, faça com que x passe a ter o valor de y, e que y passe a ter o valor de x.

Estrutura de Decisão

1. Faça um Programa que peça dois números e imprima o maior deles.

2. Faça um Programa que peça um valor e mostre na tela se o valor é positivo ou negativo.

3. Faça um Programa que verifique se uma letra digitada é "F" ou "M". Conforme a letra escrever: F - Feminino, M - Masculino, Sexo Inválido.

4. Faça um Programa que verifique se uma letra digitada é vogal ou consoante.

5. Faça um programa para a leitura de duas notas parciais de um aluno. O programa deve calcular a média alcançada por aluno e apresentar:

 

A mensagem "Aprovado", se a média alcançada for maior ou igual a sete;

A mensagem "Reprovado", se a média for menor do que sete;

A mensagem "Aprovado com Distinção", se a média for igual a dez.

6. Faça um Programa que leia três números e mostre o maior deles.

7. Faça um Programa que leia três números e mostre o maior e o menor deles.

8. Faça um programa que pergunte o preço de três produtos e informe qual produto você deve comprar, sabendo que a decisão é sempre pelo mais barato.

9. Faça um Programa que leia três números e mostre-os em ordem decrescente.

10. Faça um Programa que pergunte em que turno você estuda. Peça para digitar M-matutino ou V-Vespertino ou N- Noturno. Imprima a mensagem "Bom Dia!", "Boa Tarde!" ou "Boa Noite!" ou "Valor Inválido!", conforme o caso.

11. As organizações CSM resolveram dar um aumento de salário aos seus colaboradores e lhe contrataram para desenvolver o programa que calculará os reajustes. Faça um programa que recebe o salário de um colaborador e o reajuste segundo o seguinte critério, baseado no salário atual:

 

Salários até R$ 280,00 (incluindo): aumento de 20%;

Salários entre R$ 280,00 e R$700,00: aumento de 15%;

Salários entre R$ 700,00 e R$ 1500,00: aumento de 10%;

Salários de R$ 1500,00 em diante: aumento de 5%.

Após o aumento ser realizado; informe na tela;

 

O salário antes do reajuste;

O percentual de aumento aplicado;

O valor do aumento;

O novo salário, após o aumento.

12. Faça um programa para o cálculo de uma folha de pagamento, sabendo que os descontos são do imposto de Renda, INSS, Sindicato e que o FGTS corresponde a 11% do salário bruto, mas não é descontado (é a empresa que deposita). O salário líquido corresponde ao salário bruto menos os descontos. O programa deverá pedir ao usuário o valor da sua hora e a quantidade de horas trabalhadas no mês.

  

Desconto do IR;

Salário Bruto ate R$900,00 (inclusive) – Isento;

Salário Bruto de R$ 1500, 00 (inclusive) – desconto de 5%;

Salario bruto até R$ 2500,00 (Inclusive) – desconto de 10%;

Salário bruto acima de 2500 – Desconto de 20%.

Imprima na tela as informações dispostas conforme o exemplo abaixo.

  

Salário bruto: R$

Desconto IR (5%): R$

Desconto INSS (10%): R$

Desconto Sindicato (3%): R$

FGTS (11%)

Desconto total: R$

Salário líquido: R$

13. Faça um Programa que leia um número e exiba o dia correspondente da semana. (1- Domingo , 2- Segunda, etc). Se digitar outro valor, deve aparecer “valor inválido.

14. Faça um programa que lê as duas notas parciais obtidas por um aluno numa disciplina ao longo de um semestre, e calcule a sua média. A atribuição de conceitos obedece à tabela abaixo:

  

Média de aproveitamento: entre 9.0 e 10.0; Conceito: A

Média de aproveitamento: entre 7.5 e 9.0; Conceito: B

Média de aproveitamento: entre 6.0 e 7.5; Conceito: C

Média de aproveitamento: entre 4.0 e 6.0; Conceito: D

Média de aproveitamento: entre 4.0 e 0.0; Conceito: E

O algoritmo deve mostrar na tela as notas, a média, o conceito correspondente e a mensagem “APROVADO” se o conceito for A, B ou C ou “REPROVADO” se o conceito for D ou E.

15. Faça um programa que peça os 3 lados de um triângulo. O programa deverá informar se os valores podem ser um triângulo. Indique, caso os lados formem um triângulo, se o mesmo é: equilátero, isósceles ou escaleno.

Dicas:

  

Três lados formam um triangulo quando a soma de quaisquer dos dois lados é maior que o terceiro;

Triângulo Equilátero: três lados iguais;

Triângulo Isósceles: quaisquer dois lados iguais;

Triângulo Escaleno: três lados diferentes.

16. Faça um programa que calcule as raízes de uma equação do segundo grau, na forma ax^2 + bx + c. O programa deverá pedir os valores de a, b e c e fazer as consistências, informando ao usuário nas seguintes situações:

  

Se o usuário informar o valor de A igual a zero. a equação não e do segundo grau e o programa não deve fazer pedir os demais valores, sendo encerrado;

Se o delta calculado for negativo, a equação não possui raízes reais. Informe ao usuário e encerre o programa;

Se o delta calculado for igual a zero a equação possui apenas uma raiz real, informe ao usuário;

Se o delta for positivo, a equação possui duas raízes reais, informe-as ao usuário;

17. Faça um Programa que peça um número correspondente a um determinado ano e em seguida informe se este ano é ou não bissexto.

18. . Faça um Programa que peça um número inteiro e determine se ele e par ou ímpar.

19. . Faça um Programa que peça uma data no formato dd/mm/aaaa e determine se a mesma é uma data válida.

20. Faça um Programa que leia 2 números e em seguida pergunte ao usuário qual operação ele deseja realizar. O resultado da operação deve ser acompanhado de uma frase que diga se o número é par ou ímpar e positivo ou negativo

21. Faça um Programa que leia um número inteiro menor que 1000 e imprima a quantidade de centenas, dezenas e unidades do mesmo.Exemplo:326 = 3 centenas, 2 dezenas e 6 unidades

22. Faça um programa que faça 5 perguntas para uma pessoa sobre um crime. As perguntas são:

  

“Telefonou para a vítima? “

“Esteve no local do crime?”

“Mora perto da vítima? “

“Devia para a vítima? “

“Já trabalhou com a vítima? “

O programa deve no final emitir uma classificação sobre a participação da pessoa no crime. Se a pessoa responder positivamente a 2 questões ela deve ser classificada como “Suspeita”, entre 3 e 4 como “Cúmplice” e 5 como “Assassino“. Caso contrário, ele será classificado como “Inocente“.

23. Um posto está vendendo combustíveis com a seguinte tabela de descontos:

Álcool:

  

Até 20 litros: desconto de 3% por litro;

Acima de 20 litros: Desconto de 5% por litro 99.

Gasolina:

  

Até 20 litros: desconto de 4% por litro

Acima de 20 litros, desconto de 6% por litro

Escreva um algoritmo que leia o número de litros vendidos, o tipo de combustível (codificado da seguinte forma: A-álcool. G-gasolina), calcule e imprima o valor a ser pago pelo cliente.

24. Faça um Programa para um caixa eletrônico. O programa deverá perguntar ao usuário a valor do saque e depois informar quantas notas de cada valor serão fornecidas. As notas disponíveis serão as de 1, 5, 10, 50 e 100 reais. O valor mínimo é de 10 reais e o máximo de 600 reais. O programa não deve se preocupar com a quantidade de notas existentes na máquina.

  

Exemplo 1: Para sacar a quantia de 256 reais, o programa fornece duas notas de 100, uma nota de 50, uma nota de 5 e uma nota de 1;

Exemplo 2: Para sacar a quantia de 399 reais, o programa fornece três notas de 100, uma nota de 50, quatro notas de 10, uma nota de 5 e quatro notas de 1.

25. Para doar sangue é necessário ter entre 18 e 67 anos. Faça um aplicativo que pergunte a idade de uma pessoa e diga se ela pode doar sangue ou não. Use alguns dos operadores lógicos OU (||) e E (&&).

26. Uma fruteira está vendendo frutas com a seguinte tabela de preços:

  

Até 5 Kg de morango: R$ 2,50 por Kg

Acima de 5 Kg de morango: R$ 2,20 por Kg

Até 5 Kg de maçã: R$ 1,80 por Kg

Acima de 5 Kg de maçã: R$ 1,50 por Kg

Se o cliente comprar mais de 8 Kg em frutas ou o valor total da compra ultrapassar R$ 25,00, receberá ainda um desconto de 10% sobre este total. Escreva um algoritmo para ler a quantidade (em Kg) de morangos e a quantidade (em Kg) de maças adquiridas e escreva o valor a ser pago pelo cliente.

27. O Hipermercado Tabajara está com uma promoção de carnes que é imperdível. Confira:

  

Até 5 Kg de File Duplo: R$ 4,90 por Kg

Acima de 5 Kg de File Duplo: R$ 5,80 por Kg

Até 5 Kg de Alcatra: R$ 5,90 por Kg

Acima de 5 Kg de Alcatra: R$ 6,80 por Kg

Até 5 Kg de Picanha: R$ 6,90 por Kg

Acima de 5 Kg de Picanha: R$ 7,80 por Kg

Para atender a todos os clientes, cada cliente poderá levar apenas um dos tipos de carne da promoção, porém não há limites para a quantidade de carne por cliente. Se compra for feita no cartão Tabajara o cliente receberá ainda um desconto de 5% sobre o total da compra. Escreva um programa que peça o tipo e a quantidade de carne comprada pelo usuário e gere um cupom fiscal, contendo as informações da compra: tipo e quantidade de carne, preço total, tipo de pagamento, valor do desconto e valor a pagar.

Estrutura de Repetição

1. Faça um programa que peça uma nota, entre zero e dez. Mostre uma mensagem caso o valor seja inválido e continue pedindo até que o usuário informe um valor válido.

2. Faça um programa que leia um nome de usuário e a sua senha e não aceite a senha igual ao nome do usuário, mostrando uma mensagem de erro e voltando a pedir as informações.

3. Faça um programa que leia e valide as seguintes informações:

 

Nome: maior que 3 caracteres;

Idade: entre 0 e 150;

Salário: maior que zero;

Sexo: 'f' ou 'm';

Estado Civil: 's', 'c', 'v', 'd';

4. Supondo que a população de um país A seja da ordem de 80000 habitantes com uma taxa anual de crescimento de 3% e que a população de B seja 200000 habitantes com uma taxa de crescimento de 1.5%. Faça um programa que calcule e escreva o número de anos necessários para que a população do país A ultrapasse ou iguale a população do país B, mantidas as taxas de crescimento.

5. Altere o programa anterior permitindo ao usuário informar as populações e as taxas de crescimento iniciais. Valide a entrada e permita repetir a operação.

6. Faça um programa que imprima na tela os números de 1 a 20, um abaixo do outro. Depois modifique o programa para que ele mostre os números um ao lado do outro.

7. Faça um programa que leia 5 números e informe o maior número.

8. Faça um programa que leia 5 números e informe a soma e a média dos números.

9. Faça um programa que imprima na tela apenas os números ímpares entre 1 e 50.

10. Faça um programa que receba dois números inteiros e gere os números inteiros que estão no intervalo compreendido por eles.

11. Altere o programa anterior para mostrar no final a soma dos números.

12. Desenvolva um gerador de tabuada, capaz de gerar a tabuada de qualquer número inteiro entre 1 a 10. O usuário deve informar de qual numero ele deseja ver a tabuada. A saída deve ser conforme o exemplo abaixo:

  

Tabuada de 5:

5 X 1 = 5

5 X 2 = 10

...

5 X 10 = 50

13. Faça um programa que peça dois números, base e expoente, calcule e mostre o primeiro número elevado ao segundo número. Não utilize a função de potência da linguagem.

14. Faça um programa que peça 10 números inteiros, calcule e mostre a quantidade de números pares e a quantidade de números impares.

15. A série de Fibonacci é formada pela seqüência 1,1,2,3,5,8,13,21,34,55,... Faça um programa capaz de gerar a série até o n−ésimo termo.

16. A série de Fibonacci é formada pela seqüência 0,1,1,2,3,5,8,13,21,34,55,... Faça um programa que gere a série até que o valor seja maior que 500.

17. Faça um programa que calcule o fatorial de um número inteiro fornecido pelo usuário. Ex.: 5!=5.4.3.2.1=120

18. . Faça um programa que, dado um conjunto de N números, determine o menor valor, o maior valor e a soma dos valores.

19. . Altere o programa anterior para que ele aceite apenas números entre 0 e 1000.

20. Altere o programa de cálculo do fatorial, permitindo ao usuário calcular o fatorial várias vezes e limitando o fatorial a números inteiros positivos e menores que 16.

21. Faça um programa que peça um número inteiro e determine se ele é ou não um número primo. Um número primo é aquele que é divisível somente por ele mesmo e por 1.

22. Altere o programa de cálculo dos números primos, informando, caso o número não seja primo, por quais número ele é divisível.

23. Faça um programa que mostre todos os primos entre 1 e N sendo N um número inteiro fornecido pelo usuário. O programa deverá mostrar também o número de divisões que ele executou para encontrar os números primos. Serão avaliados o funcionamento, o estilo e o número de testes (divisões) executados.

24. Faça um programa que calcule o mostre a média aritmética de N notas.

25. Faça um programa que peça para n pessoas a sua idade, ao final o programa devera verificar se a média de idade da turma varia entre 0 e 25,26 e 60 e maior que 60; e então, dizer se a turma é jovem, adulta ou idosa, conforme a média calculada.

26. Numa eleição existem três candidatos. Faça um programa que peça o número total de eleitores. Peça para cada eleitor votar e ao final mostrar o número de votos de cada candidato.

27. Faça um programa que calcule o número médio de alunos por turma. Para isto, peça a quantidade de turmas e a quantidade de alunos para cada turma. As turmas não podem ter mais de 40 alunos.

28. Faça um programa que calcule o valor total investido por um colecionador em sua coleção de CDs e o valor médio gasto em cada um deles. O usuário deverá informar a quantidade de CDs e o valor para em cada um.

29. O Sr. Manoel Joaquim possui uma grande loja de artigos de R$ 1,99, com cerca de 10 caixas. Para agilizar o cálculo de quanto cada cliente deve pagar ele desenvolveu um tabela que contém o número de itens que o cliente comprou e ao lado o valor da conta. Desta forma a atendente do caixa precisa apenas contar quantos itens o cliente está levando e olhar na tabela de preços. Você foi contratado para desenvolver o programa que monta esta tabela de preços, que conterá os preços de 1 até 50 produtos, conforme o exemplo abaixo:

  

Lojas Quase Dois - Tabela de preços

1 - R$ 1.99

2 - R$ 3.98

...

50 - R$ 99.50

30. O Sr. Manoel Joaquim acaba de adquirir uma panificadora e pretende implantar a metodologia da tabelinha, que já é um sucesso na sua loja de 1,99. Você foi contratado para desenvolver o programa que monta a tabela de preços de pães, de 1 até 50 pães, a partir do preço do pão informado pelo usuário, conforme o exemplo abaixo:

  

Preço do pão: R$ 0.18

Panificadora Pão de Ontem - Tabela de preços

1 - R$ 0.18

2 - R$ 0.36

...

50 - R$ 9.00

31. O Sr. Manoel Joaquim expandiu seus negócios para além dos negócios de 1,99 e agora possui uma loja de conveniências. Faça um programa que implemente uma caixa registradora rudimentar. O programa deverá receber um número desconhecido de valores referentes aos preços das mercadorias. Um valor zero deve ser informado pelo operador para indicar o final da compra. O programa deve então mostrar o total da compra e perguntar o valor em dinheiro que o cliente forneceu, para então calcular e mostrar o valor do troco. Após esta operação, o programa deverá voltar ao ponto inicial, para registrar a próxima compra. A saída deve ser conforme o exemplo abaixo:

  

Lojas Tabajara

Produto 1: R$ 2.20

Produto 2: R$ 5.80

Produto 3: R$ 0

Total: R$ 9.00

Dinheiro: R$ 20.00

Troco: R$ 11.00

...

32. Faça um programa que calcule o fatorial de um número inteiro fornecido pelo usuário. Ex.: 5!=5.4.3.2.1=120. A saída deve ser conforme o exemplo abaixo:

  

Fatorial de: 5

5! = 5 . 4 . 3 . 2 . 1 = 120

33. O Departamento Estadual de Meteorologia lhe contratou para desenvolver um programa que leia as um conjunto indeterminado de temperaturas, e informe ao final a menor e a maior temperaturas informadas, bem como a média das temperaturas.

34. Os números primos possuem várias aplicações dentro da Computação, por exemplo na Criptografia. Um número primo é aquele que é divisível apenas por um e por ele mesmo. Faça um programa que peça um número inteiro e determine se ele é ou não um número primo.

35. Encontrar números primos é uma tarefa difícil. Faça um programa que gera uma lista dos números primos existentes entre 1 e um número inteiro informado pelo usuário.

36. Desenvolva um programa que faça a tabuada de um número qualquer inteiro que será digitado pelo usuário, mas a tabuada não deve necessariamente iniciar em 1 e terminar em 10, o valor inicial e final devem ser informados também pelo usuário, conforme exemplo abaixo:

  

Montar a tabuada de: 5

Começar por: 4

Terminar em: 7

Vou montar a tabuada de 5 começando em 4 e terminando em 7:

5 X 4 = 20

5 X 5 = 25

5 X 6 = 30

5 X 7 = 35

Obs: Você deve verificar se o usuário não digitou o final menor que o inicial.

37. Uma academia deseja fazer um senso entre seus clientes para descobrir o mais alto, o mais baixo, a mais gordo e o mais magro, para isto você deve fazer um programa que pergunte a cada um dos clientes da academia seu código, sua altura e seu peso. O final da digitação de dados deve ser dada quando o usuário digitar 0 (zero) no campo código. Ao encerrar o programa também deve ser informados os códigos e valores do clente mais alto, do mais baixo, do mais gordo e do mais magro, além da média das alturas e dos pesos dos clientes.

38. Um funcionário de uma empresa recebe aumento salarial anualmente: Sabe-se que:

  

Esse funcionário foi contratado em 1995, com salário inicial de R$ 1.000,00;

Em 1996 recebeu aumento de 1,5% sobre seu salário inicial;

A partir de 1997 (inclusive), os aumentos salariais sempre correspondem ao dobro do percentual do ano anterior. Faça um programa que determine o salário atual desse funcionário. Após concluir isto, altere o programa permitindo que o usuário digite o salário inicial do funcionário.

39. Faça um programa que leia dez conjuntos de dois valores, o primeiro representando o número do 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 o número do aluno mais baixo, junto com suas alturas.

40. Foi feita uma estatística em cinco cidades brasileiras para coletar dados sobre acidentes de trânsito. Foram obtidos os seguintes dados:

  

Código da cidade;

Número de veículos de passeio (em 1999);

Número de acidentes de trânsito com vítimas (em 1999).

Deseja-se saber:

Qual o maior e menor índice de acidentes de transito e a que cidade pertence;

Qual a média de veículos nas cinco cidades juntas;

Qual a média de acidentes de trânsito nas cidades com menos de 2.000 veículos de passeio.

41. Faça um programa que receba o valor de uma dívida e mostre uma tabela com os seguintes dados: valor da dívida, valor dos juros, quantidade de parcelas e valor da parcela.

  

Os juros e a quantidade de parcelas seguem a tabela abaixo:

Quantidade de Parcelas % de Juros sobre o valor inicial da dívida

1 0

3 10

6 15

9 20

12 25

Exemplo de saída do programa:

Valor da Dívida Valor dos Juros Quantidade de Parcelas Valor da Parcela

R$ 1.000,00 0 1

R$ 1.000,00

R$ 1.100,00 100 3

R$ 366,00

R$ 1.150,00 150 6

R$ 191,67

42. Faça um programa que leia uma quantidade indeterminada de números positivos e conte quantos deles estão nos seguintes intervalos: [0-25], [26-50], [51-75] e [76-100]. A entrada de dados deverá terminar quando for lido um número negativo.

43. O cardápio de uma lanchonete é o seguinte:

  

Especificação Código Preço

Cachorro Quente 100 R$ 1,20

Bauru Simples 101 R$ 1,30

Bauru com ovo 102 R$ 1,50

Hambúrguer 103 R$ 1,20

Cheeseburguer 104 R$ 1,30

Refrigerante 105 R$ 1,00

Faça um programa que leia o código dos itens pedidos e as quantidades desejadas. Calcule e mostre o valor a ser pago por item (preço * quantidade) e o total geral do pedido. Considere que o cliente deve informar quando o pedido deve ser encerrado.

44. Em uma eleição presidencial existem quatro candidatos. Os votos são informados por meio de código. Os códigos utilizados são:

  

1, 2, 3, 4 - Votos para os respectivos candidatos (você deve montar a tabela ex: 1 - Jose/ 2- João/etc)

5 - Voto Nulo

6 - Voto em Branco

Faça um programa que calcule e mostre:

O total de votos para cada candidato;

O total de votos nulos;

O total de votos em branco;

A percentagem de votos nulos sobre o total de votos;

A percentagem de votos em branco sobre o total de votos.

Para finalizar o conjunto de votos tem-se o valor zero.

45. Desenvolver um programa para verificar a nota do aluno em uma prova com 10 questões, o programa deve perguntar ao aluno a resposta de cada questão e ao final comparar com o gabarito da prova e assim calcular o total de acertos e a nota (atribuir 1 ponto por resposta certa). Após cada aluno utilizar o sistema deve ser feita uma pergunta se outro aluno vai utilizar o sistema. Após todos os alunos terem respondido informar:

a) Maior e Menor Acerto;

b) Total de Alunos que utilizaram o sistema;

c) A Média das Notas da Turma.

  

Gabarito da Prova:

01 - A

02 - B

03 - C

04 - D

05 - E

06 - E

07 - D

08 - C

09 - B

10 - A

Após concluir isto você poderia incrementar o programa permitindo que o professor digite o gabarito da prova antes dos alunos usarem o programa.

46. Em uma competição de salto em distância cada atleta tem direito a cinco saltos. No final da série de saltos de cada atleta, o melhor e o pior resultados são eliminados. O seu resultado fica sendo a média dos três valores restantes. Você deve fazer um programa que receba o nome e as cinco distâncias alcançadas pelo atleta em seus saltos e depois informe a média dos saltos conforme a descrição acima informada (retirar o melhor e o pior salto e depois calcular a média). Faça uso de uma lista para armazenar os saltos. Os saltos são informados na ordem da execução, portanto não são ordenados. O programa deve ser encerrado quando não for informado o nome do atleta. A saída do programa deve ser conforme o exemplo abaixo:

  

Atleta: Rodrigo Curvêllo

Primeiro Salto: 6.5 m

Segundo Salto: 6.1 m

Terceiro Salto: 6.2 m

Quarto Salto: 5.4 m

Quinto Salto: 5.3 m

Melhor salto: 6.5 m

Pior salto: 5.3 m

Média dos demais saltos: 5.9 m

Resultado final:

Rodrigo Curvêllo: 5.9 m

47. Em uma competição de ginástica, cada atleta recebe votos de sete jurados. A melhor e a pior nota são eliminadas. A sua nota fica sendo a média dos votos restantes. Você deve fazer um programa que receba o nome do ginasta e as notas dos sete jurados alcançadas pelo atleta em sua apresentação e depois informe a sua média, conforme a descrição acima informada (retirar o melhor e o pior salto e depois calcular a média com as notas restantes). As notas não são informados ordenadas. Um exemplo de saída do programa deve ser conforme o exemplo abaixo:

  

Atleta: Aparecido Parente

Nota: 9.9

Nota: 7.5

Nota: 9.5

Nota: 8.5

Nota: 9.0

Nota: 8.5

Nota: 9.7

Resultado final:

Atleta: Aparecido Parente

Melhor nota: 9.9

Pior nota: 7.5

Média: 9,04

48. Faça um programa que peça um numero inteiro positivo e em seguida mostre este numero invertido.

Exemplo:

 

12376489

=> 98467321

49. Faça um programa que mostre os n termos da Série a seguir:

S = 1/1 + 2/3 + 3/5 + 4/7 + 5/9 + ... + n/m.

Imprima no final a soma da série.

50. Sendo H= 1 + 1/2 + 1/3 + 1/4 + ... + 1/N, Faça um programa que calcule o valor de H com N termos.

Vetor, Array ou Lista

1. Faça um Programa que leia um vetor de 5 números inteiros e mostre-os.

2. Faça um Programa que leia um vetor de 10 números reais e mostre-os na ordem inversa.

3. Faça um Programa que leia 4 notas, mostre as notas e a média na tela.

4. Faça um Programa que leia um vetor de 10 caracteres, e diga quantas consoantes foram lidas. Imprima as consoantes.

5. Faça um Programa que leia 20 números inteiros e armazene-os num vetor. Armazene os números pares no vetor PAR e os números IMPARES no vetor impar. Imprima os três vetores.

6. Leia um vetor de 40 posições e atribua valor 0 para todos os elementos que possuírem valores negativos.

7. Faça um Programa que leia um vetor de 5 números inteiros, mostre a soma, a multiplicação e os números.

8. Faça um Programa que peça a idade e a altura de 5 pessoas, armazene cada informação no seu respectivo vetor. Imprima a idade e a altura na ordem inversa a ordem lida.

9. Faça um Programa que leia um vetor A com 10 números inteiros, calcule e mostre a soma dos quadrados dos elementos do vetor.

10. Faça um Programa que leia dois vetores com 10 elementos cada. Gere um terceiro vetor de 20 elementos, cujos valores deverão ser compostos pelos elementos intercalados dos dois outros vetores.

11. Altere o programa anterior, intercalando 3 vetores de 10 elementos cada.

12. Foram anotadas as idades e alturas de 30 alunos. Faça um Programa que determine quantos alunos com mais de 13 anos possuem altura inferior à média de altura desses alunos.

13. Faça um programa que receba a temperatura média de cada mês do ano e armazene-as em uma lista. Após isto, calcule a média anual das temperaturas e mostre todas as temperaturas acima da média anual, e em que mês elas ocorreram (mostrar o mês por extenso: 1 – Janeiro, 2 – Fevereiro, . . . ).

14. Utilizando listas faça um programa que faça 5 perguntas para uma pessoa sobre um crime. As perguntas são:

  

"Telefonou para a vítima?"

"Esteve no local do crime?"

"Mora perto da vítima?"

"Devia para a vítima?"

"Já trabalhou com a vítima?"

O programa deve no final emitir uma classificação sobre a participação da pessoa no crime. Se a pessoa responder positivamente a 2 questões ela deve ser classificada como "Suspeita", entre 3 e 4 como "Cúmplice" e 5 como "Assassino". Caso contrário, ele será classificado como "Inocente".

15. Faça um programa que leia um número indeterminado de valores, correspondentes a notas, encerrando a entrada de dados quando for informado um valor igual a -1 (que não deve ser armazenado). Após esta entrada de dados, faça:

  

a. Mostre a quantidade de valores que foram lidos;

b. Exiba todos os valores na ordem em que foram informados, um ao lado do outro;

c. Exiba todos os valores na ordem inversa à que foram informados, um abaixo do outro;

d. Calcule e mostre a soma dos valores;

e. Calcule e mostre a média dos valores;

f. Calcule e mostre a quantidade de valores acima da média calculada;

g. Calcule e mostre a quantidade de valores abaixo de sete;

h. Encerre o programa com uma mensagem;

16. Utilize uma lista para resolver o problema a seguir. Uma empresa paga seus vendedores com base em comissões. O vendedor recebe $200 por semana mais 9 por cento de suas vendas brutas daquela semana. Por exemplo, um vendedor que teve vendas brutas de $3000 em uma semana recebe $200 mais 9 por cento de $3000, ou seja, um total de $470. Escreva um programa (usando um array de contadores) que determine quantos vendedores receberam salários nos seguintes intervalos de valores:

  

a. $200 - $299

b. $300 - $399

c. $400 - $499

d. $500 - $599

e. $600 - $699

f. $700 - $799

g. $800 - $899

h. $900 - $999

i. $1000 em diante

Desafio: Crie ma fórmula para chegar na posição da lista a partir do salário, sem fazer vários ifs aninhados.

17. Em uma competição de salto em distância cada atleta tem direito a cinco saltos. O resultado do atleta será determinado pela média dos cinco valores restantes. Você deve fazer um programa que receba o nome e as cinco distâncias alcançadas pelo atleta em seus saltos e depois informe o nome, os saltos e a média dos saltos. O programa deve ser encerrado quando não for informado o nome do atleta. A saída do programa deve ser conforme o exemplo abaixo:

Atleta: Rodrigo Curvêllo

Primeiro Salto: 6.5 m Segundo Salto: 6.1 m Terceiro Salto: 6.2 m Quarto Salto: 5.4 m Quinto Salto: 5.3 m

Resultado final: Atleta: Rodrigo Curvêllo Saltos: 6.5 - 6.1 - 6.2 - 5.4 - 5.3 Média dos saltos: 5.9 m

18. Uma empresa de pesquisas precisa tabular os resultados da seguinte enquete feita a um grande quantidade de organizações:

"Qual o melhor Sistema Operacional para uso em servidores?"

As possíveis respostas são:

1- Windows Server 2- Unix 3- Linux 4- Netware 5- Mac OS 6- Outro

Você foi contratado para desenvolver um programa que leia o resultado da enquete e informe ao final o resultado da mesma. O programa deverá ler os valores até ser informado o valor 0, que encerra a entrada dos dados. Não deverão ser aceitos valores além dos válidos para o programa (0 a 6). Os valores referentes a cada uma das opções devem ser armazenados num vetor. Após os dados terem sido completamente informados, o programa deverá calcular a percentual de cada um dos concorrentes e informar o vencedor da enquete. O formato da saída foi dado pela empresa, e é o seguinte:

    
Sistema Operacional Votos %
Windows Server 1500 17%
Unix 3500 40%
Linux 3000 34%
Netware 500 5%
Mac OS 150 2%
Outro 150 2%
Total 8800
O Sistema Operacional mais votado foi o Unix, com 3500 votos, correspondendo a 40% dos votos.

19. As Organizações Tabajara resolveram dar um abono aos seus colaboradores em reconhecimento ao bom resultado alcançado durante o ano que passou. Para isto contratou você para desenvolver a aplicação que servirá como uma projeção de quanto será gasto com o pagamento deste abono. Após reuniões envolvendo a diretoria executiva, a diretoria financeira e os representantes do sindicato laboral, chegou-se a seguinte forma de cálculo: a.Cada funcionário receberá o equivalente a 20% do seu salário bruto de dezembro; a.O piso do abono será de 100 reais, isto é, aqueles funcionários cujo salário for muito baixo, recebem este valor mínimo; Neste momento, não se deve ter nenhuma preocupação com colaboradores com tempo menor de casa, descontos, impostos ou outras particularidades. Seu programa deverá permitir a digitação do salário de um número indefinido (desconhecido) de salários. Um valor de salário igual a 0 (zero) encerra a digitação. Após a entrada de todos os dados o programa deverá calcular o valor do abono concedido a cada colaborador, de acordo com a regra definida acima. Ao final, o programa deverá apresentar: O salário de cada funcionário, juntamente com o valor do abono; O número total de funcionário processados; O valor total a ser gasto com o pagamento do abono; O número de funcionário que receberá o valor mínimo de 100 reais; O maior valor pago como abono; A tela abaixo é um exemplo de execução do programa, apenas para fins ilustrativos. Os valores podem mudar a cada execução do programa.

Projeção de Gastos com Abono
============================ 

Salário: 1000 Salário: 300 Salário: 500 Salário: 100 Salário: 4500 Salário: 0

Salário - Abono
R$ 1000.00 - R$ 200.00 R$ 300.00 - R$ 100.00 R$ 500.00 - R$ 100.00 R$ 100.00 - R$ 100.00 R$ 4500.00 - R$ 900.00

Foram processados 5 colaboradores Total gasto com abonos: R$ 1400.00 Valor mínimo pago a 3 colaboradores Maior valor de abono pago: R$ 900.00

20. Faça um programa que carregue uma lista com os modelos de cinco carros (exemplo de modelos: FUSCA, GOL, VECTRA etc). Carregue uma outra lista com o consumo desses carros, isto é, quantos quilômetros cada um desses carros faz com um litro de combustível. Calcule e mostre:

  

a. O modelo do carro mais econômico;

b. Quantos litros de combustível cada um dos carros cadastrados consome para percorrer uma distância de 1000 quilômetros e quanto isto custará, considerando um que a gasolina custe R$ 2,25 o litro. Abaixo segue uma tela de exemplo. O disposição das informações deve ser o mais próxima possível ao exemplo. Os dados são fictícios e podem mudar a cada execução do programa.

Comparativo de Consumo de Combustível

Veículo 1 Nome: fusca Km por litro: 7 Veículo 2 Nome: gol Km por litro: 10 Veículo 3 Nome: uno Km por litro: 12.5 Veículo 4 Nome: Vectra Km por litro: 9 Veículo 5 Nome: Peugeout Km por litro: 14.5

Relatório Final 1 - fusca - 7.0 - 142.9 litros - R$ 321.43 2 - gol - 10.0 - 100.0 litros - R$ 225.00 3 - uno - 12.5 - 80.0 litros - R$ 180.00 4 - vectra - 9.0 - 111.1 litros - R$ 250.00 5 - peugeout - 14.5 - 69.0 litros - R$ 155.17 O menor consumo é do peugeout.

21. Sua organização acaba de contratar um estagiário para trabalhar no Suporte de Informática, com a intenção de fazer um levantamento nas sucatas encontradas nesta área. A primeira tarefa dele é testar todos os cerca de 200 mouses que se encontram lá, testando e anotando o estado de cada um deles, para verificar o que se pode aproveitar deles. Foi requisitado que você desenvolva um programa para registrar este levantamento. O programa deverá receber um número indeterminado de entradas, cada uma contendo: um número de identificação do mouse o tipo de defeito: necessita da esfera; necessita de limpeza; a.necessita troca do cabo ou conector; a.quebrado ou inutilizado Uma identificação igual a zero encerra o programa. Ao final o programa deverá emitir o seguinte relatório:

Relatório de Mouses

Situação Quantidade Percentual
1- Necessita da esfera 40 40%
2- Necessita de limpeza 30 30%
3- Necessita troca do cabo ou conector 15 15%
4- Quebrado ou inutilizado 15 15%

22. A ACME Inc., uma empresa de 500 funcionários, está tendo problemas de espaço em disco no seu servidor de arquivos. Para tentar resolver este problema, o Administrador de Rede precisa saber qual o espaço ocupado pelos usuários, e identificar os usuários com maior espaço ocupado. Através de um programa, baixado da Internet, ele conseguiu gerar o seguinte arquivo, chamado "usuarios.txt":

alexandre       456123789
anderson        1245698456
antonio         123456456
carlos          91257581
cesar           987458
rosemary        789456125
 
Neste arquivo, o nome do usuário possui 15 caracteres. A partir deste arquivo, você deve criar um programa que gere um relatório, chamado "relatório.txt", no seguinte formato:

Relatório de Uso do Espaço em Disco

Nr. Usuário Espaço utilizado % do uso
1 alexandre 434,99 MB 16,85%
2 anderson 1187,99 MB 46,02%
3 antonio 117,73 MB 4,56%
4 carlos 87,03 MB 3,37%
5 cesar 0,94 MB 0,04%
6 rosemary 752,88 MB 29,16%
Espaço total ocupado: 2581,57 MB
Espaço médio ocupado: 430,26 MB
O arquivo de entrada deve ser lido uma única vez, e os dados armazenados em memória, caso sejam necessários, de forma a agilizar a execução do programa. A conversão da espaço ocupado em disco, de bytes para megabytes deverá ser feita através de uma função separada, que será chamada pelo programa principal. O cálculo do percentual de uso também deverá ser feito através de uma função, que será chamada pelo programa principal.

23. Faça um programa que simule um lançamento de dados. Lance o dado 100 vezes e armazene os resultados em um vetor . Depois, mostre quantas vezes cada valor foi conseguido. Dica: use um vetor de contadores(1-6) e uma função para gerar numeros aleatórios, simulando os lançamentos dos dados.

24. Leia um vetor de 5 posições contendo os caracteres de um numero. Em seguida escreva esse numero por extenso.

25. Considere um vetor de trajetórias de 9 elementos, onde cada elemento possui o valor do próximo elemento do vetor a ser lido.

Índice       1    2    3    4    5    6    7     8     9                      
Valor       5    7    6    9     2   8    4     0     3            
Assim, a seqüência da leitura seria 1, 5, 2, 7, 4, 9, 3, 6, 8, 0

Faça um algoritmo que seja capaz de ler esse vetor e seguir a trajetória.

Matriz

1. Leia uma matriz 3 x 3 e escreva a localização (linha e a coluna) do maior valor.

2. Leia uma matriz 6 x 6, conte e escreva quantos valores maiores que 10 ela possui.

3. Leia uma matriz 20 x 20. Leia também um valor X. O programa deverá fazer uma busca desse valor na matriz e, ao final escrever a localização (linha e coluna) ou uma mensagem de “não encontrado”.

4. Leia uma matriz 4 x 4 e troque os valores da 1ª.linha pelos da 4ª.coluna, vice-e-versa. Escrever ao final a matriz obtida

5. Leia duas matrizes 20 x 20 e escreva os valores da primeira que ocorrem em qualquer posição da segunda.

6. Declare uma matriz 5 x 5. Preencha com 1 a diagonal principal e com 0 os demais elementos. Escreva ao final a matriz obtida.

7. Leia duas matrizes 4 x 4 e escreva uma terceira com os 4 maiores elementos entre as primeiras

8. Leia uma matriz 8x 8 e escreva o maior elemento da diagonal principal e a soma dos elementos da diagonal secundaria.

9. Leia uma matriz 6 x 6 e atribuir o valor 0 para os valores negativos encontrados fora das diagonais principal e secundaria.

10. Leia uma matriz 50 x 2, onde cada coluna corresponde a um lado de um triangulo retângulo. Declare um vetor que contenha a área dos respectivos triângulos e o escreva.

11. Leia uma matriz 100 x 10 que se refere respostas de 10 questões de múltipla escolha, referentes a 100 alunos. Leia também um vetor de 10 posições contendo o gabarito d e respostas que podem ser a, b, c ou d. Seu programa deverá comparar as respostas de cada candidato com o gabarito e emitir um vetor Resultado, contendo a pontuação correspondente.

12. Leia uma matriz 4 x 4 e verifique se é palíndromo, isto é, sua leitura a partir de qualquer direção sempre apresentara a mesma seqüência.

   EX.                  SATOR
                        AREPO
                        TENET
                        OPERA
                        ROTAS

13. Criando um tabuleiro de Jogo da Velha Crie um tabuleiro de jogo da velha, usando uma matrizes de caracteres (char) 3×3, onde o usuário pede o número da linha (1 até 3) e o da coluna (1 até 3). A cada vez que o usuário entrar com esses dados, colocar um ‘X’ ou ‘O’ no local selecionado.

14. Faça um jogo de batalha naval, utilize as seguinte regras:

– O primeiro usuário será o que vai configurar o tabuleiro inserindo os navios.
– O tabuleiro deve ter 8×8
– Quando inserido todos os navios o restante será considerado como “água”.
– Cada navio pode ocupar apenas 1 posição
– O jogador deve respeitar o espaço de 1 célula entre os navios
– O jogador que irá descobrir onde os navios estão tem apenas 10 tiros
– O jogador 1 pode posicionar 5 navios

15. Crie uma agenda que armazena, código da pessoa, número do telefone, idade. Sua agenda deve possibilitar:

(1) – inserir um contato
(2) – Remover um contato
(3) – Editar um contato
(4) – buscar um contato pelo Código.

16. Criando um tabuleiro de Jogo da Velha Crie um tabuleiro de jogo da velha, usando uma matrizes de caracteres (char) 3×3, onde o usuário pede o número da linha (1 até 3) e o da coluna (1 até 3). A cada vez que o usuário entrar com esses dados, colocar um ‘X’ ou ‘O’ no local selecionado.

17. Leia uma matriz 8 x 8 e a transforme numa matriz triangular inferior , atribuindo zero a todos os elementos acima da diagonal principal, escrevendo-a ao final.

18. Leia uma matriz 5 x 5 e faça uma troca entre as diagonais superior e inferior. Escreva-a ao final.

19. Leia duas matrizes 10 x 10 e faça uma substituição entre a diagonal inferior da primeira coma diagonal superior da segunda.

20. Considere uma matriz de distância entre cidades 6 x 6:

(Cáceres) (BBugres) (Cuiabá) (VGrande) (Tangará) (PLacerda)
(Cáceres) 63 210 190 190
(BBugres) 63 160 150 95
(Cuiabá) 210 160 10
(VGrande) 190 150 10
(Tangará) 95 80
(PLacerda) 190 80
Considere também um vetor de viagem indo de Cuiabá até Cáceres pela seguinte rota:
Índice 1 2 3 4 5 6
Cidade 3 4 2 5 6 1
Faça um programa que leia a matriz e o vetor e calcule a distancia percorrida durante a viagem.

Função

1. Faça um programa, com uma função que necessite de um argumento. A função retorna o valor de caractere ‘P’, se seu argumento for positivo, e ‘N’, se seu argumento for zero ou negativo.

2. Faça um programa com uma função chamada somaImposto. A função possui dois parâmetros formais: taxaImposto, que é a quantia de imposto sobre vendas expressa em porcentagem e custo, que é o custo de um item antes do imposto. A função “altera” o valor de custo para incluir o imposto sobre vendas.

3. Faça um programa, com uma função que necessite de três argumentos, e que forneça a soma desses três argumentos.

4. Faça uma função que recebe por parâmetro o raio de uma esfera e calcula o seu volume (v = 4/3.P .R3).

5. Faça uma função que recebe por parâmetro o tempo de duração de uma fábrica expressa em segundos e retorna também por parâmetro esse tempo em horas, minutos e segundos.

6. Faça uma função que recebe a idade de uma pessoa em anos, meses e dias e retorna essa idade expressa em dias.

7. Faça uma função que recebe um valor inteiro e verifica se o valor é positivo ou negativo. A função deve retornar um valor booleano.

8. Faça uma função que recebe um valor inteiro e verifica se o valor é par ou ímpar. A função deve retornar um valor booleano

9. Faça uma função que recebe a média final de um aluno por parãmetro e retorna o seu conceito, conforme a tabela abaixo:

Nota Conceito
de 0,0 a 4,9 D
de 5,0 a 6,9 C
de 7,0 a 8,9 B
de 9,0 a 10,0 A

10. Escreva um procedimento que recebes 3 valores reais X, Y e Z e que verifique se esses valores podem ser os comprimentos dos lados de um triângulo e, neste caso, retornar qual o tipo de triângulo formado. Para que X, Y e Z formem um triângulo é necessário que a seguinte propriedade seja satisfeita: o comprimento de cada lado de um triângulo é menor do que a soma do comprimento dos outros dois lados. O procedimento deve identificar o tipo de triângulo formado observando as seguintes definições:

  • Triângulo Equilátero: os comprimentos dos 3 lados são iguais.
  • Triângulo Isósceles: os comprimentos de 2 lados são iguais.
  • Triângulo Escaleno: os comprimentos dos 3 lados são diferentes.

11. A prefeitura de uma cidade fez uma pesquisa entre os seus habitantes, coletando dados sobre o salário e número de filhos. Faça um procedimento que leia esses dados para um número não determinado de pessoas e retorne a média de salário da população, a média do número de filhos, o maior salário e o percentual de pessoas com salário até R$350,00.

12. Faça uma função que leia um número não determinado de valores positivos e retorna a média aritmética dos mesmos.

13. Faça uma função que receba um valor inteiro e positivo e calcula o seu fatorial.

14. Faça um procedimento que lê 50 valores inteiros e retorna o maior e o menor deles.

15. Faça um procedimento que recebe, por parâmetro, um valor N e calcula e escreve a tabuada de 1 até N. Mostre a tabuada na forma:

1 x N = N
2 x N = 2N
...
N x N = N2

16. Faça uma função que recebe, por parâmetro, um valor inteiro e positivo e retorna o número de divisores desse valor.

17. Escreva uma função que recebe, por parâmetro, um valor inteiro e positivo e retorna o somatório desse valor.

18. Faça um programa para imprimir:

1
2   2
3   3   3
.....
n   n   n   n   n   n  ... n
para um n informado pelo usuário. Use uma função que receba um valor n inteiro e imprima até a n-ésima linha.

19. Faça um programa para imprimir:

1
1   2
1   2   3
.....
1   2   3   ...  n
para um n informado pelo usuário. Use uma função que receba um valor n inteiro imprima até a n-ésima linha.

20. Faça um programa que converta da notação de 24 horas para a notação de 12 horas. Por exemplo, o programa deve converter 14:25 em 2:25 P.M. A entrada é dada em dois inteiros. Deve haver pelo menos duas funções: uma para fazer a conversão e uma para a saída. Registre a informação A.M./P.M. como um valor ‘A’ para A.M. e ‘P’ para P.M. Assim, a função para efetuar as conversões terá um parâmetro formal para registrar se é A.M. ou P.M. Inclua um loop que permita que o usuário repita esse cálculo para novos valores de entrada todas as vezes que desejar.

21. Faça um programa que use a função valorPagamento para determinar o valor a ser pago por uma prestação de uma conta. O programa deverá solicitar ao usuário o valor da prestação e o número de dias em atraso e passar estes valores para a função valorPagamento, que calculará o valor a ser pago e devolverá este valor ao programa que a chamou. O programa deverá então exibir o valor a ser pago na tela. Após a execução o programa deverá voltar a pedir outro valor de prestação e assim continuar até que seja informado um valor igual a zero para a prestação. Neste momento o programa deverá ser encerrado, exibindo o relatório do dia, que conterá a quantidade e o valor total de prestações pagas no dia. O cálculo do valor a ser pago é feito da seguinte forma. Para pagamentos sem atraso, cobrar o valor da prestação. Quando houver atraso, cobrar 3% de multa, mais 0,1% de juros por dia de atraso.

22. Faça uma função que informe a quantidade de dígitos de um determinado número inteiro informado.

23. Reverso do número. Faça uma função que retorne o reverso de um número inteiro informado. Por exemplo: 127 -> 721.

24. Escreva um procedimento que recebe as 3 notas de um aluno por parâmetro e uma letra. Se a letra for A o procedimento calcula a média aritmética das notas do aluno, se for P, a sua média ponderada (pesos: 5, 3 e 2) e se for H, a sua média harmônica. A média calculada também deve retornar por parâmetro.

25. Faça uma função que recebe por parâmetro um valor inteiro e positivo e retorna o valor lógico Verdadeiro caso o valor seja primo e Falso em caso contrário. Intermediário4. Faça um procedimento que recebe por parâmetro os valores necessário para o cálculo da fórmula de báskara e retorna, também por parâmetro, as suas raízes, caso seja possível calcular.

26. Faça um procedimento que recebe a idade de um nadador por parâmetro e retorna , também por parâmetro, a categoria desse nadador de acordo com a tabela abaixo:

Idade Categoria
5 a 7 anos Infantil A
8 a 10 anos Infantil B
11-13 anos Juvenil A
14-17 anos Juvenil B
Maiores de 18 anos (inclusive) Adulto

27. Faça uma função que recebe, por parâmetro, a altura (alt) e o sexo de uma pessoa e retorna o seu peso ideal. Para homens, calcular o peso ideal usando a fórmula peso ideal = 72.7 x alt – 58 e, para mulheres, peso ideal = 62.1 x alt – 44.7.

28. Faça um procedimento que recebe 3 valores inteiros por parâmetro e retorna-os ordenados em ordem crescente.

29. Jogo de Craps. Faça um programa de implemente um jogo de Craps. O jogador lança um par de dados, obtendo um valor entre 2 e 12. Se, na primeira jogada, você tirar 7 ou 11, você um "natural" e ganhou. Se você tirar 2, 3 ou 12 na primeira jogada, isto é chamado de "craps" e você perdeu. Se, na primeira jogada, você fez um 4, 5, 6, 8, 9 ou 10,este é seu "Ponto". Seu objetivo agora é continuar jogando os dados até tirar este número novamente. Você perde, no entanto, se tirar um 7 antes de tirar este Ponto novamente.

30. Data com mês por extenso. Construa uma função que receba uma data no formato DD/MM/AAAA e devolva uma string no formato D de mesPorExtenso de AAAA. Opcionalmente, valide a data e retorne NULL caso a data seja inválida.

31. Embaralha palavra. Construa uma função que receba uma string como parâmetro e devolva outra string com os carateres embaralhados. Por exemplo: se função receber a palavra python, pode retornar npthyo, ophtyn ou qualquer outra combinação possível, de forma aleatória. Padronize em sua função que todos os caracteres serão devolvidos em caixa alta ou caixa baixa, independentemente de como foram digitados.

32. Desenha moldura. Construa uma função que desenhe um retângulo usando os caracteres ‘+’ , ‘−’ e ‘| ‘. Esta função deve receber dois parâmetros, linhas e colunas, sendo que o valor por omissão é o valor mínimo igual a 1 e o valor máximo é 20. Se valores fora da faixa forem informados, eles devem ser modificados para valores dentro da faixa de forma elegante.

33. Quadrado mágico. Um quadrado mágico é aquele dividido em linhas e colunas, com um número em cada posição e no qual a soma das linhas, colunas e diagonais é a mesma. Por exemplo, veja um quadrado mágico de lado 3, com números de 1 a 9:

8  3  4 
1  5  9
6  7  2
Elabore uma função que identifica e mostra na tela todos os quadrados mágicos com as características acima. Dica: produza todas as combinações possíveis e verifique a soma quando completar cada quadrado. Usar um vetor de 1 a 9 parece ser mais simples que usar uma matriz 3x3.

34. Faça uma função que verifique se um valor é perfeito ou não. Um valor é dito perfeito quando ele é igual a soma dos seus divisores excetuando ele próprio. (Ex: 6 é perfeito, 6 = 1 + 2 + 3, que são seus divisores). A função deve retornar um valor booleano.

35. Faça um procedimento que recebe, por parâmetro, a hora de inicio e a hora de término de um jogo, ambas subdivididas em 2 valores distintos: horas e minutos. O procedimento deve retornar, também por parâmetro, a duração do jogo em horas e minutos, considerando que o tempo máximo de duração de um jogo é de 24 horas e que o jogo pode começar em um dia e terminar no outro.

36. Escreva uma função que recebe por parâmetro um valor inteiro e positivo N e retorna o valor de S.

S = 1 + ½ + 1/3 + ¼ + 1/5 + 1/N

37. Escreva uma função que recebe por parâmetro um valor inteiro e positivo N e retorna o valor de S.

S = 1 + 1/1! + ½! + 1/3! + 1/N!

38. Escreva uma função que recebe por parâmetro um valor inteiro e positivo N e retorna o valor de S.

S = 2/4 + 5/5 + 10/6 + 17/7 + 26/8 + ... +(n2+1)/(n+3)

39. Escreva uma função que calcule o valor do co-seno de x através de 20 termos da série seguinte:

co-seno(x) = 1 - x2 + x4 - x6 + ....   2! 4! 6!

40. Escreva uma função que recebe, por parâmetro, dois valores X e Z e calcula e retorna xz. (sem utilizar funções ou operadores de potência prontos)

Programação Orientada a Objetos

Classes, atributos, métodos, membros estáticos e membros instanciáveis

1. Fazer um programa para ler as medidas dos lados de dois triângulos X e Y (suponha medidas válidas). Em seguida, mostrar o valor das áreas dos dois triângulos e dizer qual dos dois triângulos possui a maior área. A fórmula para calcular a área de um triângulo a partir das medidas de seus lados a, b e c é a seguinte (fórmula de Heron):

area = √p(p-a)(p-b)(p-c)

onde p = (a + b + c) / 2

Exemplo:

Enter the measures of triangle X:
3.00
4.00
5.00

Enter the measures of triangle Y: 7.50 4.50 4.02

Triangle X area: 6.0000 Triangle Y area: 7.5638 Larger area: Y

2. Fazer um programa para ler os dados de um produto em estoque (nome, preço e quantidade no estoque). Em seguida:

  • Mostrar os dados do produto (nome, preço, quantidade no estoque, valor total no estoque)
  • Realizar uma entrada no estoque e mostrar novamente os dados do produto
  • Realizar uma saída no estoque e mostrar novamente os dados do produto
  • Para resolver este problema, você deve criar uma CLASSE conforme projeto abaixo:
    Product
    - Name : string
    - Price : double
    - Quantity : int
    + TotalValueInStock() : double
    + AddProducts(quantity : int) : void
    + RemoveProducts(quantity : int) : void

    Exemplo:

    Enter product data:
    Name: TV
    Price: 900.00
    Quantity in stock: 10
    

    Product data: TV, $ 900.00, 10 units, Total: $ 9000.00

    Enter the number of products to be added in stock: 5

    Updated data: TV, $ 900.00, 15 units, Total: $ 13500.00

    Enter the number of products to be removed from stock: 3

    Updated data: TV, $ 900.00, 12 units, Total: $ 10800.00

    3. Fazer um programa para ler os valores da largura e altura de um retângulo. Em seguida, mostrar na tela o valor de sua área, perímetro e diagonal. Usar uma classe como mostrado no projeto abaixo.

    Rectangle
    - Width : double
    - Height : double
    + Area() : double
    + Perimeter() : double
    + Diagonal() : double

    Exemplo:

    Enter rectangle width and height:
    3.00
    4.00
    AREA = 12.00
    PERIMETER = 14.00
    DIAGONAL = 5.00
        

    4. Fazer um programa para ler os dados de um funcionário (nome, salário bruto e imposto). Em seguida, mostrar os dados do funcionário (nome e salário líquido). Em seguida, aumentar o salário do funcionário com base em uma porcentagem dada (somente o salário bruto é afetado pela porcentagem) e mostrar novamente os dados do funcionário. Use a classe projetada abaixo.

    Employee
    - Name : string
    - GrossSalary : double
    - Tax : double
    + NetSalary() : double
    + IncreaseSalary(percentage : double) : void

    Exemplo:

    Nome: Joao Silva
    Salário Bruto: 6000.00
    Imposto: 1000.00
    

    Funcionário: Joao Silva, R$ 5000.00 Qual porcentagem para aumentar o salário? 10.0% Dados atualizados: Joao Silva, R$ 5600.00

    5. Fazer um programa para ler o nome de um aluno e as três notas que ele obteve nos três trimestres do ano (primeiro trimestre vale 30 e o segundo e terceiro valem 35 cada). Ao final, mostrar qual a nota final do aluno no ano. Dizer também se o aluno está aprovado (PASS) ou não (FAILED) e, em caso negativo, quantos pontos faltam para o aluno obter o mínimo para ser aprovado (que é 60% da nota). Você deve criar uma classe Student para resolver este problema.

    Exemplo:

    Entrada: Saída:
    Alex Green
    27.00
    31.00
    32.00
                
    FINAL GRADE = 90.00
    PASS
                
    Entrada: Saída:
    Alex Green
    17.00
    20.00
    15.00
                
    FINAL GRADE = 52.00
    FAILED
    MISSING 8.00 POINTS
                

    6. Fazer um programa para ler um valor numérico qualquer, e daí mostrar quanto seria o valor de uma circunferência e do volume de uma esfera para um raio daquele valor. Informar também o valor de PI com duas casas decimais.

    Exemplo:

    Enter radius: 3.0
    Circumference: 18.85
    Volume: 113.10
    PI value: 3.14
        

    7. Faça um programa para ler a cotação do dólar, e depois um valor em dólares a ser comprado por uma pessoa em reais. Informar quantos reais a pessoa vai pagar pelos dólares, considerando ainda que a pessoa terá que pagar 6% de IOF sobre o valor em dólar. Criar uma classe CurrencyConverter para ser responsável pelos cálculos.

    Exemplo:

    What is the dollar price? 3.10
    How many dollars will be bought? 200.00
    Amount to be paid in reais = 657.20
        

    8. Crie uma classe ContaBancaria com atributos para o número da conta, nome do titular e saldo. Implemente métodos para depósito, saque e consulta de saldo. Adicione um membro estático para a taxa de juros.

    ContaBancaria
    - numero_conta: int
    - nome_titular: string
    - saldo: float
    - taxa_juros: float = 0.05
    + depositar(valor: float): void
    + sacar(valor: float): void
    + consultar_saldo(): float

    Exemplo:

    >> Criando uma nova conta bancária
    Informe o número da conta: 123456
    Informe o nome do titular: Maria Silva
    Informe o saldo inicial: 1000.0
    

    >> Conta criada com sucesso! Número da Conta: 123456 Nome do Titular: Maria Silva Saldo Inicial: 1000.0 Taxa de Juros: 0.05

    >> Realizando um depósito Informe o valor a ser depositado: 500.0

    >> Depósito realizado com sucesso! Novo saldo: 1500.0

    >> Realizando um saque Informe o valor a ser sacado: 200.0

    >> Saque realizado com sucesso! Novo saldo: 1300.0

    >> Consultando saldo Saldo atual: 1300.0

    >> Realizando um saque com valor superior ao saldo disponível Informe o valor a ser sacado: 1500.0

    >> Erro: Saldo insuficiente! Saldo atual: 1300.0

    9. Crie uma classe Livro com atributos para título, autor, ano de publicação e status de empréstimo. Implemente métodos para emprestar e devolver o livro. Adicione um membro estático para contar o número total de empréstimos.

    Livro
    - titulo: string
    - autor: string
    - ano_publicacao: int
    - emprestado: bool
    - total_emprestimos: int = 0
    + emprestar(): void
    + devolver(): void

    Exemplo:

    Livro: "1984" de George Orwell
    Ano de Publicação: 1949
    Status: Disponível
    

    Emprestando o livro... Status: Emprestado Total de empréstimos: 1

    Devolvendo o livro... Status: Disponível

    10. Crie uma classe QuartoHotel com atributos para número do quarto, tipo, preço por noite e status de reserva. Implemente métodos para reservar e liberar o quarto. Adicione um membro estático para contar o número total de reservas.

    QuartoHotel
    - numero: int
    - tipo: string
    - preco_noite: float
    - reservado: bool
    - total_reservas: int = 0
    + reservar(): void
    + liberar(): void

    Exemplo:

    Quarto: 101
    Tipo: Deluxe
    Preço por Noite: 200
    Status: Disponível
    

    Reservando o quarto... Status: Reservado Total de reservas: 1

    Liberando o quarto... Status: Disponível

    11. Crie uma classe Venda com atributos para código da venda, data, valor total e status de pagamento. Implemente métodos para registrar pagamento e cancelar venda. Adicione um membro estático para contar o número total de vendas realizadas.

    Venda
    - codigo: int
    - data: string
    - valor_total: float
    - pago: bool
    - total_vendas: int = 0
    + registrar_pagamento(): void
    + cancelar_venda(): void

    Exemplo:

    Venda: 1
    Data: 2024-06-10
    Valor Total: 1500
    Status: Não Pago
    

    Registrando pagamento... Status: Pago Total de vendas: 1

    Cancelando venda... Venda já paga, não pode ser cancelada

    12. Crie uma classe Funcionario com atributos para matrícula, nome, cargo e horas trabalhadas. Implemente métodos para registrar entrada e saída do funcionário. Adicione um membro estático para contar o total de horas trabalhadas por todos os funcionários.

    Funcionario
    - matricula: int
    - nome: string
    - cargo: string
    - horas_trabalhadas: int
    - total_horas_trabalhadas: int = 0
    + registrar_entrada(horas: int): void
    + registrar_saida(horas: int): void

    Exemplo:

    Funcionário: 123
    Nome: Ana
    Cargo: Desenvolvedora
    Horas Trabalhadas: 0
    

    Registrando entrada de 8 horas... Horas Trabalhadas: 8 Total de horas trabalhadas: 8

    Registrando saída de 5 horas... Horas Trabalhadas: 3 Total de horas trabalhadas: 3

    13. Crie uma classe ItemEstoque com atributos para código, nome, quantidade e preço unitário. Implemente métodos para adicionar e remover itens do estoque. Adicione um membro estático para contar o número total de itens em estoque.

    ItemEstoque
    - codigo: int
    - nome: string
    - quantidade: int
    - preco_unitario: float
    - total_itens_estoque: int = 0
    + adicionar_itens(quantidade: int): void
    + remover_itens(quantidade: int): void

    Exemplo:

    Item: Notebook
    Código: 1
    Preço Unitário: 2000
    Quantidade: 10
    Total em Estoque: 10
    

    Adicionando 5 itens... Quantidade: 15 Total em Estoque: 15

    Removendo 3 itens... Quantidade: 12 Total em Estoque: 12

    14. Crie uma classe Aluno com atributos para matrícula, nome, curso e notas. Implemente métodos para adicionar e remover notas, além de calcular a média das notas. Adicione um membro estático para contar o número total de alunos.

    Aluno
    - matricula: int
    - nome: string
    - curso: string
    - notas: list
    - total_alunos: int = 0
    + adicionar_nota(nota: float): void
    + remover_nota(nota: float): void
    + calcular_media(): float

    Exemplo:

    Aluno: 456
    Nome: Pedro
    Curso: Ciência da Computação
    Notas: []
    

    Adicionando nota 8.5... Notas: [8.5]

    Adicionando nota 9.0... Notas: [8.5, 9.0]

    Removendo nota 8.5... Notas: [9.0]

    Calculando média... Média: 9.0

    15. Crie uma classe Veiculo com atributos para placa, modelo, ano e quilometragem. Implemente métodos para registrar quilometragem e calcular a idade do veículo. Adicione um membro estático para contar o número total de veículos registrados.

    Veiculo
    - placa: string
    - modelo: string
    - ano: int
    - quilometragem: float
    - total_veiculos: int = 0
    + registrar_quilometragem(km: float): void
    + calcular_idade(ano_atual: int): int

    Exemplo:

    Veículo: ABC-1234
    Modelo: Sedan
    Ano: 2015
    Quilometragem: 50000
    

    Registrando 2000 km... Quilometragem: 52000

    Calculando idade em 2024... Idade: 9 anos

    16. Crie uma classe Projeto com atributos para código, nome, data de início e data de término. Implemente métodos para calcular a duração do projeto e verificar se está ativo. Adicione um membro estático para contar o número total de projetos.

    Projeto
    - codigo: int
    - nome: string
    - data_inicio: string
    - data_termino: string
    - total_projetos: int = 0
    + calcular_duracao(): int
    + verificar_ativo(data_atual: string): bool

    Exemplo:

    Projeto: 001
    Nome: Sistema de Vendas
    Data Início: 2023-01-01
    Data Término: 2023-12-31
    

    Calculando duração... Duração: 365 dias

    Verificando se está ativo em 2024-06-10... Ativo: Não

    17. Crie uma classe Pedido com atributos para número do pedido, data, valor total e status de pagamento. Implemente métodos para registrar pagamento e cancelar pedido. Adicione um membro estático para contar o número total de pedidos realizados.

    Pedido
    - numero: int
    - data: string
    - valor_total: float
    - pago: bool
    - total_pedidos: int = 0
    + registrar_pagamento(): void
    + cancelar_pedido(): void

    Exemplo:

    Pedido: 1001
    Data: 2024-06-10
    Valor Total: 500.0
    Status: Não Pago
    

    Registrando pagamento... Status: Pago Total de pedidos: 1

    Cancelando pedido... Pedido já pago, não pode ser cancelado

    18. Crie uma classe Tarefa com atributos para ID, descrição, data de conclusão e status de conclusão. Implemente métodos para concluir e reabrir tarefas. Adicione um membro estático para contar o número total de tarefas concluídas.

    Tarefa
    - id: int
    - descricao: string
    - data_conclusao: string
    - concluida: bool
    - total_tarefas_concluidas: int = 0
    + concluir(): void
    + reabrir(): void

    Exemplo:

    Tarefa: 1
    Descrição: Finalizar relatório
    Data Conclusão: 2024-06-10
    Status: Não Concluída
    

    Concluindo tarefa... Status: Concluída Total de tarefas concluídas: 1

    Reabrindo tarefa... Status: Não Concluída Total de tarefas concluídas: 0

    19. Crie uma classe Compra com atributos para número da compra, data, valor total e status de entrega. Implemente métodos para registrar entrega e cancelar compra. Adicione um membro estático para contar o número total de compras realizadas.

    Compra
    - numero: int
    - data: string
    - valor_total: float
    - entregue: bool
    - total_compras: int = 0
    + registrar_entrega(): void
    + cancelar_compra(): void

    Exemplo:

    Compra: 1001
    Data: 2024-06-10
    Valor Total: 150.0
    Status: Não Entregue
    

    Registrando entrega... Status: Entregue Total de compras: 1

    Cancelando compra... Compra já entregue, não pode ser cancelada

    20. Crie uma classe Turma com atributos para código, nome, professor e número de alunos. Implemente métodos para adicionar e remover alunos. Adicione um membro estático para contar o número total de turmas.

    Turma
    - codigo: int
    - nome: string
    - professor: string
    - numero_alunos: int
    - total_turmas: int = 0
    + adicionar_aluno(): void
    + remover_aluno(): void

    Exemplo:

    Turma: 101
    Nome: Matemática Avançada
    Professor: Dr. Silva
    Número de Alunos: 30
    

    Adicionando aluno... Número de Alunos: 31

    Removendo aluno... Número de Alunos: 30

    Construtores, sobrecarga e encapsulamento

    1. Fazer um programa para ler os dados de uma pessoa (nome e idade). Em seguida:

  • Mostrar os dados da pessoa (nome e idade).
  • Para resolver este problema, você deve criar uma CLASSE conforme projeto abaixo:
    Pessoa
    - Nome : string
    - Idade : int
    + Pessoa(nome : string, idade : int)
    + GetNome() : string
    + GetIdade() : int
    + ExibirDados() : void

    Exemplo:

    Digite os dados da pessoa:
    Nome: João
    Idade: 30
    

    Dados da pessoa: Nome: João, Idade: 30

    2. Crie uma classe Produto com os atributos nome, preço e quantidade. Em seguida:

  • Implemente dois construtores: um que inicialize todos os atributos e outro que inicialize apenas nome e preço, atribuindo um valor padrão para quantidade.
  • Encapsule todos os atributos, garantindo que eles só possam ser acessados através de métodos getters e setters.
  • Permita que o usuário crie um produto utilizando ambos os construtores e exiba os detalhes do produto.
  • Para resolver este problema, você deve criar uma CLASSE conforme projeto abaixo:
    Produto
    - Nome : string
    - Preço : double
    - Quantidade : int
    + Produto(nome : string, preço : double, quantidade : int)
    + Produto(nome : string, preço : double)
    + GetNome() : string
    + GetPreço() : double
    + GetQuantidade() : int
    + SetNome(nome : string) : void
    + SetPreço(preço : double) : void
    + SetQuantidade(quantidade : int) : void

    Exemplo:

    Produto 1:
    Nome: Notebook
    Preço: 3000.00
    Quantidade: 10
    

    Produto 2: Nome: Smartphone Preço: 1500.00 Quantidade: 5 (valor padrão)

    Dados dos produtos: Produto 1: Notebook, $ 3000.00, 10 unidades Produto 2: Smartphone, $ 1500.00, 5 unidades

    3. Crie uma classe Carro com os atributos marca, modelo e ano. Em seguida:

  • Implemente dois construtores: um que inicialize todos os atributos e outro que inicialize apenas marca e modelo, atribuindo o valor padrão 2024 para ano.
  • Encapsule todos os atributos, garantindo que eles só possam ser acessados através de métodos getters e setters.
  • Permita que o usuário crie um carro utilizando ambos os construtores e exiba os detalhes do carro.
  • Para resolver este problema, você deve criar uma CLASSE conforme projeto abaixo:
    Carro
    - Marca : string
    - Modelo : string
    - Ano : int
    + Carro(marca : string, modelo : string, ano : int)
    + Carro(marca : string, modelo : string)
    + GetMarca() : string
    + GetModelo() : string
    + GetAno() : int
    + SetMarca(marca : string) : void
    + SetModelo(modelo : string) : void
    + SetAno(ano : int) : void

    Exemplo:

    Carro 1:
    Marca: Toyota
    Modelo: Corolla
    Ano: 2022
    

    Carro 2: Marca: Honda Modelo: Civic Ano: 2024 (valor padrão)

    Dados dos carros: Carro 1: Toyota, Corolla, Ano: 2022 Carro 2: Honda, Civic, Ano: 2024

    4. Crie uma classe ContaBancaria com os atributos titular, saldo e limite. Em seguida:

  • Implemente um construtor que inicialize todos os atributos, garantindo que o saldo inicial não seja negativo.
  • Encapsule todos os atributos, permitindo que eles sejam acessados apenas através de métodos getters e setters.
  • Crie métodos para depositar e sacar dinheiro, respeitando o limite da conta.
  • Permita que o usuário crie uma conta bancária, realize operações de depósito e saque, e exiba os detalhes atualizados da conta.
  • Para resolver este problema, você deve criar uma CLASSE conforme projeto abaixo:
    ContaBancaria
    - Titular : string
    - Saldo : double
    - Limite : double
    + ContaBancaria(titular : string, saldo : double, limite : double)
    + GetTitular() : string
    + GetSaldo() : double
    + GetLimite() : double
    + SetTitular(titular : string) : void
    + SetSaldo(saldo : double) : void
    + SetLimite(limite : double) : void
    + Depositar(valor : double) : void
    + Sacar(valor : double) : void

    Exemplo:

    Conta 1:
    Titular: Maria Silva
    Saldo: 1000.00
    Limite: 2000.00
    

    Depósito: 500.00 Novo Saldo: 1500.00

    Saque: 300.00 Novo Saldo: 1200.00

    5. Crie uma classe Calculadora com um método soma. Em seguida:

  • Implemente o método soma para aceitar dois parâmetros inteiros e retornar a soma deles.
  • Sobrecargue o método soma para aceitar três parâmetros inteiros.
  • Sobrecargue o método soma para aceitar dois parâmetros do tipo double.
  • Encapsule um atributo privado que armazene o resultado da soma e crie métodos getter para acessá-lo.
  • Permita que o usuário utilize a calculadora para realizar somas com diferentes tipos e números de parâmetros, exibindo os resultados.
  • Para resolver este problema, você deve criar uma CLASSE conforme projeto abaixo:
    Calculadora
    - Resultado : double
    + Soma(a : int, b : int) : int
    + Soma(a : int, b : int, c : int) : int
    + Soma(a : double, b : double) : double
    + GetResultado() : double

    Exemplo:

    Soma de dois inteiros:
    Entrada: 5, 10
    Resultado: 15
    

    Soma de três inteiros: Entrada: 2, 3, 4 Resultado: 9

    Soma de dois doubles: Entrada: 2.5, 3.7 Resultado: 6.2

    6. Crie uma classe Funcionario com os atributos nome, cargo e salario. Em seguida:

  • Implemente três construtores sobrecarregados: um que inicialize todos os atributos, um que inicialize apenas nome e cargo, e outro que inicialize apenas o nome.
  • Encapsule todos os atributos, garantindo que eles sejam acessados apenas através de métodos getters e setters.
  • Crie um método para ajustar o salário do funcionário.
  • Permita que o usuário crie instâncias de funcionários utilizando diferentes construtores e ajuste o salário conforme necessário, exibindo os detalhes do funcionário.
  • Para resolver este problema, você deve criar uma CLASSE conforme projeto abaixo:
    Funcionario
    - Nome : string
    - Cargo : string
    - Salario : double
    + Funcionario(nome : string, cargo : string, salario : double)
    + Funcionario(nome : string, cargo : string)
    + Funcionario(nome : string)
    + GetNome() : string
    + GetCargo() : string
    + GetSalario() : double
    + SetNome(nome : string) : void
    + SetCargo(cargo : string) : void
    + SetSalario(salario : double) : void
    + AjustarSalario(percentual : double) : void

    Exemplo:

    Funcionario 1:
    Nome: Carlos
    Cargo: Analista
    Salario: 5000.00
    

    Funcionario 2: Nome: Ana Cargo: Desenvolvedora Salario: 7000.00

    Ajuste de Salario: Funcionario 1 - Novo Salario: 5500.00 (10% de aumento) Funcionario 2 - Novo Salario: 7350.00 (5% de aumento)

    7. Você foi contratado para desenvolver um sistema de gerenciamento de eventos que permite registrar, editar e calcular o valor total a ser cobrado por um evento de acordo com diferentes pacotes oferecidos pela empresa.

    Requisitos:

    1. Classe Evento:

    A classe deve possuir os seguintes atributos privados:

    • nome (String): nome do evento.
    • data (String): data do evento.
    • local (String): local onde o evento ocorrerá.
    • pacote (String): tipo de pacote escolhido (por exemplo: "Básico", "Premium", "Deluxe").
    • valorBase (double): valor base do evento.

    A classe deve implementar o seguinte construtor:

    • Construtor: Inicializa todos os atributos.

    2. Sobrecarga de métodos:

    Crie um método chamado calcularValorTotal que será sobrecarregado para calcular o valor total do evento com base em diferentes critérios:

    • Versão 1: Sem parâmetros. Calcula o valor total aplicando uma taxa fixa de 10% sobre o valor base.
    • Versão 2: Recebe um parâmetro valorBuffer (double) e calcula o valor total aplicando o valorBuffer e, em seguida, a taxa de 10% sobre o valor base.
    • Versão 3: Recebe dois parâmetros, valorBuffer (double) e valorDJ (double), e calcula o valor total aplicando o valorBuffer, o valorDJ e a taxa de 10% sobre o valor base.

    3. Encapsulamento:

    Implemente métodos get e set para todos os atributos da classe, garantindo que o valor do atributo valorBase seja sempre positivo (não pode ser negativo). Se o valor informado for negativo, deve lançar uma exceção.

    4. Teste:

    Implemente um método main em uma classe de teste para:

    • Criar três objetos da classe Evento usando os diferentes pacotes.
    • Utilizar a sobrecarga do método calcularValorTotal para calcular os valores totais dos eventos de acordo com os tipos de pacotes.
    • Exibir os detalhes dos eventos e seus respectivos valores totais.

    Exemplo de Saída Esperada:

    Evento: Casamento
    Data: 12/12/2024
    Local: Praia
    Pacote: Deluxe
    Valor Total (com buffer, DJ e taxa de 10% sobre valor base): R$ 5.200,00
    

    Evento: Aniversário Data: 25/10/2024 Local: Salão de Festas Pacote: Básico Valor Total (com 10% sobre valor base): R$ 2.200,00

    Evento: Conferência Data: 01/05/2025 Local: Centro de Convenções Pacote: Premium Valor Total (com com buffer e 10% sobre valor base): R$ 4.200,00

    8. Uma empresa de aluguel de veículos deseja criar um sistema de gestão para controlar sua frota de veículos.Cada veículo tem atributos como a placa, modelo, ano de fabricação, e quilometragem. Além disso, alguns veículos têm características especiais, como se são elétricos ou movidos a combustível. A empresa também precisa de uma forma de calcular o tempo que o veículo está disponível para locação e se está em manutenção.

    Você será responsável por criar uma classe Veiculo que encapsula essas informações, com a implementação de diferentes construtores para a inicialização dos objetos de formas variadas, além de métodos sobrecarregados para atualizar o status e calcular o tempo de disponibilidade do veículo.

    Requisitos

    • Classe Veiculo:
      • Atributos privados:
        • placa: String
        • modelo: String
        • anoFabricacao: int
        • quilometragem: float
        • status: String (Pode ser "disponível", "alugado", ou "em manutenção")
        • tipoCombustivel: String (pode ser "eletrico" ou "combustivel")
    • Construtores:
      • Crie um construtor padrão que inicialize os atributos com valores default.
      • Crie um construtor parametrizado que aceite todos os atributos como parâmetros.
      • Crie um construtor alternativo que permita a criação de um veículo passando apenas a placa, o modelo e o ano de fabricação, assumindo que a quilometragem é 0 e o status é "disponível".
    • Métodos de Encapsulamento:
      • Crie getters e setters para todos os atributos. Os setters devem validar a entrada de dados, por exemplo, a quilometragem não pode ser negativa e o status só pode assumir os valores especificados.
    • Sobrecarga de Métodos:
      • Implemente dois métodos sobrecarregados chamados atualizarStatus:
        • Um que atualiza o status do veículo (recebendo uma string como parâmetro).
        • Outro que atualiza o status e a quilometragem ao mesmo tempo (recebendo uma string e um valor float).
    • Método calcularDisponibilidade:
      • Crie um método calcularDisponibilidade que calcula o número de dias que o veículo está disponível.
      • O cálculo pode ser feito de duas formas (use a sobrecarga de métodos):
        • Um método que recebe a data de aluguel e a data de retorno e retorna o número de dias em que o veículo esteve disponível.
        • Outro método que apenas retorna o número de dias desde o último aluguel, considerando a data atual.

    Tarefas

    1. Implemente a classe Veiculo com todos os requisitos acima.
    2. Crie um programa principal que instancia diversos objetos da classe Veiculo usando diferentes construtores.
    3. Atualize o status de um dos veículos para "alugado" e outro para "em manutenção" utilizando os métodos sobrecarregados.
    4. Calcule e exiba o tempo de disponibilidade de dois veículos usando ambos os métodos sobrecarregados de calcularDisponibilidade.

    Desafio Extra:

    Implemente uma validação no método calcularDisponibilidade que verifica se a data de aluguel é válida (ou seja, se não é uma data futura).

    9. Crie uma classe Cliente com os atributos nome e idade. Em seguida:

  • Implemente métodos sobrecarregados para definir a idade do cliente, aceitando diferentes tipos de dados (por exemplo, int e String).
  • Encapsule todos os atributos, garantindo que eles sejam acessados apenas através de métodos getters e setters.
  • Permita que o usuário defina a idade do cliente utilizando diferentes tipos de dados e exiba os detalhes do cliente.
  • Para resolver este problema, você deve criar uma CLASSE conforme projeto abaixo:
    Cliente
    - Nome : string
    - Idade : int
    + Cliente(nome : string, idade : int)
    + GetNome() : string
    + GetIdade() : int
    + SetNome(nome : string) : void
    + SetIdade(idade : int) : void
    + SetIdade(idade : string) : void

    Exemplo:

    Cliente 1:
    Nome: Joana
    Idade: 30 (definido como int)
    

    Cliente 2: Nome: Carlos Idade: quarenta e cinco (definido como String)

    Dados dos clientes: Cliente 1: Nome: Joana, Idade: 30 Cliente 2: Nome: Carlos, Idade: quarenta e cinco

    10. Crie uma classe Pedido com os atributos numero, valor e data. Em seguida:

  • Implemente construtores sobrecarregados que inicializem diferentes combinações de atributos, garantindo que o valor do pedido não seja negativo.
  • Encapsule todos os atributos, garantindo que eles sejam acessados apenas através de métodos getters e setters.
  • Permita que o usuário crie instâncias de pedidos utilizando diferentes construtores e exiba os detalhes do pedido.
  • Para resolver este problema, você deve criar uma CLASSE conforme projeto abaixo:
    Pedido
    - Numero : int
    - Valor : double
    - Data : string
    + Pedido(numero : int, valor : double, data : string)
    + Pedido(numero : int, valor : double)
    + Pedido(numero : int)
    + GetNumero() : int
    + GetValor() : double
    + GetData() : string
    + SetNumero(numero : int) : void
    + SetValor(valor : double) : void
    + SetData(data : string) : void

    Exemplo:

    Pedido 1:
    Numero: 101
    Valor: 250.00
    Data: 01/09/2024
    

    Pedido 2: Numero: 102 Valor: 150.00 Data: 02/09/2024

    Pedido 3: Numero: 103 Valor: 300.00 (Data não informada)

    Dados dos pedidos: Pedido 1: Numero: 101, Valor: 250.00, Data: 01/09/2024 Pedido 2: Numero: 102, Valor: 150.00, Data: 02/09/2024 Pedido 3: Numero: 103, Valor: 300.00, Data: Não informada

    11. Crie uma classe ProdutoPerecivel com os atributos nome, preco, dataValidade e estoque. Em seguida:

  • Implemente construtores sobrecarregados que inicializem diferentes conjuntos de atributos. Garanta que a dataValidade seja uma data futura e que o estoque seja um valor positivo.
  • Encapsule todos os atributos, garantindo que eles sejam acessados apenas através de métodos getters e setters.
  • Permita que o usuário crie instâncias de produtos perecíveis utilizando diferentes construtores e exiba os detalhes do produto.
  • Para resolver este problema, você deve criar uma CLASSE conforme projeto abaixo:
    ProdutoPerecivel
    - Nome : string
    - Preco : double
    - DataValidade : string
    - Estoque : int
    + ProdutoPerecivel(nome : string, preco : double, dataValidade : string, estoque : int)
    + ProdutoPerecivel(nome : string, preco : double, dataValidade : string)
    + ProdutoPerecivel(nome : string, preco : double)
    + GetNome() : string
    + GetPreco() : double
    + GetDataValidade() : string
    + GetEstoque() : int
    + SetNome(nome : string) : void
    + SetPreco(preco : double) : void
    + SetDataValidade(dataValidade : string) : void
    + SetEstoque(estoque : int) : void

    Exemplo:

    Produto 1:
    Nome: Iogurte
    Preco: 5.00
    Data de Validade: 15/09/2024
    Estoque: 100
    

    Produto 2: Nome: Leite Preco: 3.00 Data de Validade: 10/09/2024 Estoque: 50

    Produto 3: Nome: Pão Preco: 1.50 (Data de Validade e Estoque não informados)

    Dados dos produtos: Produto 1: Nome: Iogurte, Preco: 5.00, Data de Validade: 15/09/2024, Estoque: 100 Produto 2: Nome: Leite, Preco: 3.00, Data de Validade: 10/09/2024, Estoque: 50 Produto 3: Nome: Pão, Preco: 1.50, Data de Validade: Não informado, Estoque: Não informado

    12. Crie uma classe ReservaHotel com os atributos numeroQuarto, dataEntrada, dataSaida e precoDiaria. Em seguida:

  • Implemente construtores sobrecarregados que inicializem diferentes combinações de atributos. Garanta que as datas sejam válidas e que o preço da diária seja positivo.
  • Encapsule todos os atributos, garantindo que eles sejam acessados apenas através de métodos getters e setters.
  • Permita que o usuário crie instâncias de reservas utilizando diferentes construtores e exiba os detalhes da reserva.
  • Para resolver este problema, você deve criar uma CLASSE conforme projeto abaixo:
    ReservaHotel
    - NumeroQuarto : int
    - DataEntrada : string
    - DataSaida : string
    - PrecoDiaria : double
    + ReservaHotel(numeroQuarto : int, dataEntrada : string, dataSaida : string, precoDiaria : double)
    + ReservaHotel(numeroQuarto : int, dataEntrada : string, precoDiaria : double)
    + ReservaHotel(numeroQuarto : int, precoDiaria : double)
    + GetNumeroQuarto() : int
    + GetDataEntrada() : string
    + GetDataSaida() : string
    + GetPrecoDiaria() : double
    + SetNumeroQuarto(numeroQuarto : int) : void
    + SetDataEntrada(dataEntrada : string) : void
    + SetDataSaida(dataSaida : string) : void
    + SetPrecoDiaria(precoDiaria : double) : void

    Exemplo:

    Reserva 1:
    Numero do Quarto: 101
    Data de Entrada: 15/09/2024
    Data de Saida: 20/09/2024
    Preco da Diaria: 200.00
    

    Reserva 2: Numero do Quarto: 102 Data de Entrada: 17/09/2024 Preco da Diaria: 180.00

    Reserva 3: Numero do Quarto: 103 Preco da Diaria: 150.00 (Datas não informadas)

    Dados das reservas: Reserva 1: Numero do Quarto: 101, Data de Entrada: 15/09/2024, Data de Saida: 20/09/2024, Preco da Diaria: 200.00 Reserva 2: Numero do Quarto: 102, Data de Entrada: 17/09/2024, Data de Saida: Não informada, Preco da Diaria: 180.00 Reserva 3: Numero do Quarto: 103, Data de Entrada: Não informada, Data de Saida: Não informada, Preco da Diaria: 150.00

    13. Crie uma classe Contrato com os atributos numeroContrato, valorContrato e dataAssinatura. Em seguida:

  • Implemente construtores sobrecarregados que inicializem diferentes combinações de atributos.
  • Encapsule todos os atributos, garantindo que eles sejam acessados apenas através de métodos getters e setters.
  • Adicione métodos para ajustar o valor do contrato e verificar se o contrato está ativo (considerando a data atual em relação à data de assinatura).
  • Permita que o usuário crie instâncias de contratos utilizando diferentes construtores, ajuste o valor do contrato e verifique o status do contrato, exibindo os detalhes do contrato.
  • Para resolver este problema, você deve criar uma CLASSE conforme projeto abaixo:
    Contrato
    - NumeroContrato : int
    - ValorContrato : double
    - DataAssinatura : string
    + Contrato(numeroContrato : int, valorContrato : double, dataAssinatura : string)
    + Contrato(numeroContrato : int, valorContrato : double)
    + Contrato(numeroContrato : int)
    + GetNumeroContrato() : int
    + GetValorContrato() : double
    + GetDataAssinatura() : string
    + SetNumeroContrato(numeroContrato : int) : void
    + SetValorContrato(valorContrato : double) : void
    + SetDataAssinatura(dataAssinatura : string) : void
    + AjustarValorContrato(novoValor : double) : void
    + VerificarStatusContrato() : boolean

    Exemplo:

    Contrato 1:
    Numero do Contrato: 1001
    Valor do Contrato: 50000.00
    Data de Assinatura: 01/01/2024
    

    Contrato 2: Numero do Contrato: 1002 Valor do Contrato: 75000.00 Data de Assinatura: 15/02/2024

    Ajuste de Valor: Contrato 1 - Novo Valor: 55000.00

    Verificação de Status: Contrato 1 - Status: Ativo Contrato 2 - Status: Ativo

    14. Crie uma classe Evento com os atributos nome, local, data e numeroParticipantes. Em seguida:

  • Implemente construtores sobrecarregados que inicializem diferentes combinações de atributos. Garanta que a data não seja uma data passada e que o numeroParticipantes seja um valor positivo.
  • Encapsule todos os atributos, garantindo que eles sejam acessados apenas através de métodos getters e setters.
  • Permita que o usuário crie instâncias de eventos utilizando diferentes construtores e exiba os detalhes do evento.
  • Para resolver este problema, você deve criar uma CLASSE conforme projeto abaixo:
    Evento
    - Nome : string
    - Local : string
    - Data : string
    - NumeroParticipantes : int
    + Evento(nome : string, local : string, data : string, numeroParticipantes : int)
    + Evento(nome : string, local : string, data : string)
    + Evento(nome : string, local : string)
    + GetNome() : string
    + GetLocal() : string
    + GetData() : string
    + GetNumeroParticipantes() : int
    + SetNome(nome : string) : void
    + SetLocal(local : string) : void
    + SetData(data : string) : void
    + SetNumeroParticipantes(numeroParticipantes : int) : void

    Exemplo:

    Evento 1:
    Nome: Conferência de Tecnologia
    Local: Centro de Convenções
    Data: 15/10/2024
    Número de Participantes: 500
    

    Evento 2: Nome: Show de Música Local: Estádio Municipal Data: 22/11/2024

    Evento 3: Nome: Feira de Livros Local: Parque Central Data: 25/09/2024 (Número de Participantes não informado)

    Dados dos eventos: Evento 1: Nome: Conferência de Tecnologia, Local: Centro de Convenções, Data: 15/10/2024, Número de Participantes: 500 Evento 2: Nome: Show de Música, Local: Estádio Municipal, Data: 22/11/2024, Número de Participantes: Não informado Evento 3: Nome: Feira de Livros, Local: Parque Central, Data: 25/09/2024, Número de Participantes: Não informado

    15. Crie uma classe Pagamento com os atributos valor, dataPagamento e tipoPagamento. Em seguida:

  • Implemente construtores sobrecarregados que inicializem diferentes combinações de atributos, garantindo que o valor seja positivo.
  • Encapsule todos os atributos, garantindo que eles sejam acessados apenas através de métodos getters e setters.
  • Permita que o usuário crie instâncias de pagamentos utilizando diferentes construtores e exiba os detalhes do pagamento.
  • Para resolver este problema, você deve criar uma CLASSE conforme projeto abaixo:
    Pagamento
    - Valor : double
    - DataPagamento : string
    - TipoPagamento : string
    + Pagamento(valor : double, dataPagamento : string, tipoPagamento : string)
    + Pagamento(valor : double, dataPagamento : string)
    + Pagamento(valor : double)
    + GetValor() : double
    + GetDataPagamento() : string
    + GetTipoPagamento() : string
    + SetValor(valor : double) : void
    + SetDataPagamento(dataPagamento : string) : void
    + SetTipoPagamento(tipoPagamento : string) : void

    Exemplo:

    Pagamento 1:
    Valor: 500.00
    Data de Pagamento: 10/09/2024
    Tipo de Pagamento: Crédito
    

    Pagamento 2: Valor: 200.00 Data de Pagamento: 05/09/2024

    Pagamento 3: Valor: 150.00 (Data e Tipo de Pagamento não informados)

    Dados dos pagamentos: Pagamento 1: Valor: 500.00, Data de Pagamento: 10/09/2024, Tipo de Pagamento: Crédito Pagamento 2: Valor: 200.00, Data de Pagamento: 05/09/2024, Tipo de Pagamento: Não informado Pagamento 3: Valor: 150.00, Data de Pagamento: Não informado, Tipo de Pagamento: Não informado

    16. Crie uma classe TransacaoBancaria com os atributos numeroTransacao, valor, tipoTransacao e dataTransacao. Em seguida:

  • Implemente construtores sobrecarregados que inicializem diferentes combinações de atributos, garantindo que o valor seja positivo e que a dataTransacao seja válida.
  • Encapsule todos os atributos, garantindo que eles sejam acessados apenas através de métodos getters e setters.
  • Crie métodos para processar a transação e exibir os detalhes da transação.
  • Permita que o usuário crie instâncias de transações bancárias utilizando diferentes construtores e exiba os detalhes da transação.
  • Para resolver este problema, você deve criar uma CLASSE conforme projeto abaixo:
    TransacaoBancaria
    - NumeroTransacao : int
    - Valor : double
    - TipoTransacao : string
    - DataTransacao : string
    + TransacaoBancaria(numeroTransacao : int, valor : double, tipoTransacao : string, dataTransacao : string)
    + TransacaoBancaria(numeroTransacao : int, valor : double, tipoTransacao : string)
    + TransacaoBancaria(numeroTransacao : int, valor : double)
    + GetNumeroTransacao() : int
    + GetValor() : double
    + GetTipoTransacao() : string
    + GetDataTransacao() : string
    + SetNumeroTransacao(numeroTransacao : int) : void
    + SetValor(valor : double) : void
    + SetTipoTransacao(tipoTransacao : string) : void
    + SetDataTransacao(dataTransacao : string) : void
    + ProcessarTransacao() : void

    Exemplo:

    Transação 1:
    Numero da Transação: 12345
    Valor: 1000.00
    Tipo de Transação: Depósito
    Data da Transação: 01/09/2024
    

    Transação 2: Numero da Transação: 12346 Valor: 500.00 Tipo de Transação: Saque Data da Transação: 02/09/2024

    Transação 3: Numero da Transação: 12347 Valor: 300.00 (Tipo de Transação e Data não informados)

    Dados das transações: Transação 1: Numero: 12345, Valor: 1000.00, Tipo: Depósito, Data: 01/09/2024 Transação 2: Numero: 12346, Valor: 500.00, Tipo: Saque, Data: 02/09/2024 Transação 3: Numero: 12347, Valor: 300.00, Tipo: Não informado, Data: Não informado

    17. Crie uma classe ProdutoDigital com os atributos nome, preco, tamanhoArquivo e formato. Em seguida:

  • Implemente construtores sobrecarregados que inicializem diferentes conjuntos de atributos, garantindo que o tamanhoArquivo e o preco sejam valores positivos.
  • Encapsule todos os atributos, garantindo que eles sejam acessados apenas através de métodos getters e setters.
  • Permita que o usuário crie instâncias de produtos digitais utilizando diferentes construtores e exiba os detalhes do produto.
  • Para resolver este problema, você deve criar uma CLASSE conforme projeto abaixo:
    ProdutoDigital
    - Nome : string
    - Preco : double
    - TamanhoArquivo : double
    - Formato : string
    + ProdutoDigital(nome : string, preco : double, tamanhoArquivo : double, formato : string)
    + ProdutoDigital(nome : string, preco : double, tamanhoArquivo : double)
    + ProdutoDigital(nome : string, preco : double)
    + GetNome() : string
    + GetPreco() : double
    + GetTamanhoArquivo() : double
    + GetFormato() : string
    + SetNome(nome : string) : void
    + SetPreco(preco : double) : void
    + SetTamanhoArquivo(tamanhoArquivo : double) : void
    + SetFormato(formato : string) : void

    Exemplo:

    Produto Digital 1:
    Nome: E-book Python Avançado
    Preco: 50.00
    Tamanho do Arquivo: 15.5 MB
    Formato: PDF
    

    Produto Digital 2: Nome: Curso Java Completo Preco: 120.00 Tamanho do Arquivo: 2.5 GB (Formato não informado)

    Produto Digital 3: Nome: Música MP3 Preco: 1.50 (Tamanho do Arquivo e Formato não informados)

    Dados dos produtos digitais: Produto 1: Nome: E-book Python Avançado, Preco: 50.00, Tamanho do Arquivo: 15.5 MB, Formato: PDF Produto 2: Nome: Curso Java Completo, Preco: 120.00, Tamanho do Arquivo: 2.5 GB, Formato: Não informado Produto 3: Nome: Música MP3, Preco: 1.50, Tamanho do Arquivo: Não informado, Formato: Não informado

    18. Crie uma classe PlanoDeSaude com os atributos nomePlano, cobertura, valorMensal e idadeMinima. Em seguida:

  • Implemente construtores sobrecarregados que inicializem diferentes combinações de atributos, garantindo que o valorMensal seja positivo e que a idadeMinima esteja dentro de uma faixa permitida.
  • Encapsule todos os atributos, garantindo que eles sejam acessados apenas através de métodos getters e setters.
  • Permita que o usuário crie instâncias de planos de saúde utilizando diferentes construtores e exiba os detalhes do plano.
  • Para resolver este problema, você deve criar uma CLASSE conforme projeto abaixo:
    PlanoDeSaude
    - NomePlano : string
    - Cobertura : string
    - ValorMensal : double
    - IdadeMinima : int
    + PlanoDeSaude(nomePlano : string, cobertura : string, valorMensal : double, idadeMinima : int)
    + PlanoDeSaude(nomePlano : string, cobertura : string, valorMensal : double)
    + PlanoDeSaude(nomePlano : string, valorMensal : double)
    + GetNomePlano() : string
    + GetCobertura() : string
    + GetValorMensal() : double
    + GetIdadeMinima() : int
    + SetNomePlano(nomePlano : string) : void
    + SetCobertura(cobertura : string) : void
    + SetValorMensal(valorMensal : double) : void
    + SetIdadeMinima(idadeMinima : int) : void

    Exemplo:

    Plano de Saúde 1:
    Nome do Plano: Plano Ouro
    Cobertura: Completa
    Valor Mensal: 500.00
    Idade Mínima: 18
    

    Plano de Saúde 2: Nome do Plano: Plano Prata Cobertura: Básica Valor Mensal: 300.00 (Idade Mínima não informada)

    Plano de Saúde 3: Nome do Plano: Plano Bronze Valor Mensal: 200.00 (Cobertura e Idade Mínima não informadas)

    Dados dos planos de saúde: Plano 1: Nome: Plano Ouro, Cobertura: Completa, Valor Mensal: 500.00, Idade Mínima: 18 Plano 2: Nome: Plano Prata, Cobertura: Básica, Valor Mensal: 300.00, Idade Mínima: Não informada Plano 3: Nome: Plano Bronze, Cobertura: Não informada, Valor Mensal: 200.00, Idade Mínima: Não informada

    19. Crie uma classe ProdutoImportado com os atributos nome, preco, paisOrigem e taxaImportacao. Em seguida:

  • Implemente construtores sobrecarregados que inicializem diferentes combinações de atributos, garantindo que a taxaImportacao e o preco sejam valores positivos.
  • Encapsule todos os atributos, garantindo que eles sejam acessados apenas através de métodos getters e setters.
  • Adicione um método para calcular o preço final do produto, considerando a taxa de importação.
  • Permita que o usuário crie instâncias de produtos importados utilizando diferentes construtores e exiba os detalhes do produto, incluindo o preço final.
  • Para resolver este problema, você deve criar uma CLASSE conforme projeto abaixo:
    ProdutoImportado
    - Nome : string
    - Preco : double
    - PaisOrigem : string
    - TaxaImportacao : double
    + ProdutoImportado(nome : string, preco : double, paisOrigem : string, taxaImportacao : double)
    + ProdutoImportado(nome : string, preco : double, paisOrigem : string)
    + ProdutoImportado(nome : string, preco : double)
    + GetNome() : string
    + GetPreco() : double
    + GetPaisOrigem() : string
    + GetTaxaImportacao() : double
    + SetNome(nome : string) : void
    + SetPreco(preco : double) : void
    + SetPaisOrigem(paisOrigem : string) : void
    + SetTaxaImportacao(taxaImportacao : double) : void
    + CalcularPrecoFinal() : double

    Exemplo:

    Produto Importado 1:
    Nome: Relógio Suíço
    Preco: 1000.00
    País de Origem: Suíça
    Taxa de Importação: 200.00
    Preço Final: 1200.00
    

    Produto Importado 2: Nome: Câmera Japonesa Preco: 500.00 País de Origem: Japão Taxa de Importação: 100.00 Preço Final: 600.00

    Produto Importado 3: Nome: Vinho Francês Preco: 150.00 (País de Origem e Taxa de Importação não informados) Preço Final: 150.00

    Dados dos produtos importados: Produto 1: Nome: Relógio Suíço, Preco: 1000.00, País de Origem: Suíça, Taxa de Importação: 200.00, Preço Final: 1200.00 Produto 2: Nome: Câmera Japonesa, Preco: 500.00, País de Origem: Japão, Taxa de Importação: 100.00, Preço Final: 600.00 Produto 3: Nome: Vinho Francês, Preco: 150.00, País de Origem: Não informado, Taxa de Importação: Não informada, Preço Final: 150.00

    20. Crie uma classe OrdemServico com os atributos numeroOrdem, descricao, valorServico e dataConclusao. Em seguida:

  • Implemente construtores sobrecarregados que inicializem diferentes combinações de atributos, garantindo que o valorServico seja positivo e que a dataConclusao seja uma data válida.
  • Encapsule todos os atributos, garantindo que eles sejam acessados apenas através de métodos getters e setters.
  • Adicione métodos para modificar a descrição do serviço e alterar a data de conclusão.
  • Permita que o usuário crie instâncias de ordens de serviço utilizando diferentes construtores e exiba os detalhes da ordem, incluindo o valor final.
  • Para resolver este problema, você deve criar uma CLASSE conforme projeto abaixo:
    OrdemServico
    - NumeroOrdem : int
    - Descricao : string
    - ValorServico : double
    - DataConclusao : string
    + OrdemServico(numeroOrdem : int, descricao : string, valorServico : double, dataConclusao : string)
    + OrdemServico(numeroOrdem : int, descricao : string, valorServico : double)
    + OrdemServico(numeroOrdem : int, valorServico : double)
    + GetNumeroOrdem() : int
    + GetDescricao() : string
    + GetValorServico() : double
    + GetDataConclusao() : string
    + SetNumeroOrdem(numeroOrdem : int) : void
    + SetDescricao(descricao : string) : void
    + SetValorServico(valorServico : double) : void
    + SetDataConclusao(dataConclusao : string) : void

    Exemplo:

    Ordem de Serviço 1:
    Número da Ordem: 1001
    Descrição: Manutenção do sistema de aquecimento
    Valor do Serviço: 250.00
    Data de Conclusão: 01/10/2024
    

    Ordem de Serviço 2: Número da Ordem: 1002 Descrição: Instalação de câmeras de segurança Valor do Serviço: 450.00 (Data de Conclusão não informada)

    Ordem de Serviço 3: Número da Ordem: 1003 Valor do Serviço: 150.00 (Descrição e Data de Conclusão não informadas)

    Dados das ordens de serviço: Ordem 1: Número: 1001, Descrição: Manutenção do sistema de aquecimento, Valor: 250.00, Data de Conclusão: 01/10/2024 Ordem 2: Número: 1002, Descrição: Instalação de câmeras de segurança, Valor: 450.00, Data de Conclusão: Não informada Ordem 3: Número: 1003, Descrição: Não informada, Valor: 150.00, Data de Conclusão: Não informada