sábado, 28 de fevereiro de 2015

Lista de Exercícios de C++: 21 a 30

Lista de Exercícios de C++: 21 a 30
  • Receba a altura do degrau de uma escada e a altura que o usuário deseja alcançar subindo a escada. Calcule e mostre quantos degraus o usuário devera subir para atingir seu objetivo, sem se preocupar com a altura do usuário.
As vezes o programador passa mais tempo para entender e planejar a solução do programa do que fazendo o programa. A questão acima, pelo menos dois colegas não souberam o que é que estava sendo pedido. Então fiz a seguinte imagem para entenderem a questão.

 Pronto! Com a imagem se pode saber o que é que a questão quer. Utilizando os degraus da escada, quantos degraus serão necessários para se atingir tal altura? Assim fica fácil de deduzir que é só dividir a altura total pela altura do dos degraus. Se, o usuário digitar que a altura a ser atingida é de 1000 cm, e que cada degrau tem 20cm, é só dividir por 1000cm por 20cm.


 A expressão: qtdDegraus = ((queroSubir*100)/alturaDegraus); que atribuirá à variável qtdDegraus o resultado da multiplicação da quantidade de metros a subir (variável queroSubir) pela divisão do valor da altura de cada degrau. A multiplicação por 100 é para transformar o valor do metro em centímetros e então dividir pela altura de cada degrau que é dado em centímetros.

Faça um programa para converter uma letra maiúscula em letra minúscula. Use a tabela ASCII.
 O que é a tabela ASCII? - Na década de 60, a necessidade de padronização levou ao ASCII (código padrão americano para troca de informações). A tabela ASCII contém 128 números atribuídos aos caracteres correspondentes. O ASCII permite que os computadores armazenem e troquem dados com outros computadores e programas. O texto com formato ASCII não contém informações de formatação, como negrito, itálico ou fontes.

Olhe a tabela ASCII acima. Eu marquei a letra A em MAIÚSCULO e a letra "a" em minúsculo.  A letra em maiúscula tem o valor de 65, enquanto a letra em minúsculo tem o valor 97. Se é para converter a letra em minúsculo para maiúsculo, a operação é de subtração; se é para converter de maiúsculo para minúsculo a operação é de soma.

Veja assim: a letra A=65, se somado mais 32 será igual a 97. E, o número 97 na tabela equivale à letra a em minúsculo. Já a letra B, será 66+32=98. E, se olhar a tabela acima, 98=b. A operação contrário também funciona: 97-32=65. E 65 equivale a letra A em maiúsculo. Veja o código abaixo:


Como é que este código funciona? O compilador vai interpretar a variável como um número somado com 32. E como a variável é do tipo "char" vai retornar o valor do bit e seu equivalente na tabela ASCII. Para fazer a operação inversa, converter de minúsculo para maiúsculo é só trocar o sinal de mais (+) para o sinal de menos (-)  .
Faça um programa para ler um numero inteiro, positivo de três dígitos, e gerar outro
numero formado pelos dígitos invertidos do numero lido. Exemplo:


Numero Lido = 123
Numero Gerado = 321.

 

 


A lógica acima é simples, porém, para o programador iniciante, complicado de se chegar a esta solução.


O código acima faz o seguinte:
1- divide o número por 100, e guarda na variável centena;
2- A variável número muda de valor, e passa a conter o número digitado e depois de dividido por 100, o resto vai para a variável. Exemplo: se for digitado 854, divide por 100, o que dá 8x100=800, o resto é 54. Assim, a variável NUMERO passa a valer este número;
3- A variável dezena, recebe o conteúdo da variável e divide por 10;
4- A variável unidade pega o último número, e divide por 10, e guarda o resto na variável número;

Pronto. Isto foi suficiente para separar os número. A exibição final é só mero arranjo.

  • Leia um numero inteiro de 4 dígitos e imprima 1 dígito por linha.

Esta questão é semelhante à anterior, porém, com outra solução, nesta solução, a divisão é feita sempre por 10, e o resto é armazenado nas variáveis. A solução segue o seguinte padrão:

1- A variável "quinto" recebe o valor do que o usuário digitou em valorUsuario dividido por 10, e o resto é que vai para a variável. Neste caso, quinto recebe o valor da unidade;
2- A variável valorUsuário muda de conteúdo. Ela passa a conter o número digitado dividido por 10;
3- isto se repete até pegar todos os números e lista-os em ordem inversa do que foi feita a operação de divisão e pegando o resto.

  • Leia um valor inteiro em segundos, e imprima-o em horas, minutos e segundos.

A questão é bem esta mesmo. Está numa formação estranha. Eu penso que deveria ser "leia um valor inteiro, e imprima-o em horas, minutos e segundos. E foi isto que fiz. no código acima. É simples o código, mas para o iniciante serve para fixar o conhecimento de variáveis, tipos de variáveis, bem como é útil para desenvolver o raciocínio lógico.

Por outra, tem estudante que sequer sabe quantos segundos tem uma hora. Nestes momentos é que se aprende e vê vários e muitos eventos diferentes da matemática e do cotidiano.


Faça um programa que leia o horário (hora, minuto e segundo) de inicio e a duração, em segundos, de uma experiência biológica. O programa deve resultar com o novo horário (hora, minuto e segundo) do termino da mesma.



Implemente um programa em C que calcule o ano de nascimento de uma pessoa a partir 

de sua idade e do ano atual.






Faça um algoritmo que calcule a media ponderada das notas de 3 provas. A primeira e a segunda prova tem peso 1 e a terceira tem peso 2. Antes de o usuário entrar com as notas do aluno ele deve entrar com o numero de matricula do aluno. Ao final, mostrar a matricula do aluno juntamente com a sua media e indicar se o aluno foi aprovado ou reprovado. A nota para aprovação deve ser igual ou superior a 60 pontos.


Escreva um programa que leia as coordenadas x e y de pontos no R2 e calcule sua distancia da origem (0; 0). 





Três amigos jogaram na loteria. Caso eles ganhem, o premio deve ser repartido proporcionalmente ao valor que cada deu para a realização da aposta. Faca um programa que lê quanto cada apostador investiu, lê o valor do premio, e escreve quanto cada um ganharia. 



    Para o código ficar em uma imagem pequena eu utilizei nas linhas 7,9,11 e 14 DOIS comandos na mesma linha. Observe que há o comando cout, e depois do ponto-virgula, existe outro comando o cin >>.





    Nenhum comentário:

    Postar um comentário