domingo, 9 de dezembro de 2012

Faça um algoritmo em C que converta uma string em MAIÚSCULAS usando código ASCII e vetor.

Isto seria um programa simples de se fazer. Bastaria usar algumas das funções já existentes na linguagem C/C++. Mas, porém, contudo, os professores exigem dos alunos é que eles usem vetor e a tabela ASCII. E nem todos sabem como fazer. Então, supro esta sua necessidade. Como é que faz? Eis abaixo em partes.

Parte 1: Pegando a String.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

main ()
{
char palavra[20];
int tam,i;

printf("Digite uma palavra: ");
scanf("%s",&palavra);

printf("\nA palavra digitada foi: %s ",palavra);
printf("\n\n");

printf("\n\n");
system("pause");

}

 

O código acima é suficiente para coletar do usuário uma palavra. E sem espaço. Se você usar espaço o programa vai desconsiderar depois do ‘\0’. Se rodar o código acima ele vai apenas receber uma palavra e depois exibir na tela.


Depois de você ler as informações você vai ter que fazer a conversão. Para tal, o código abaixo deve ser inserido no código acima.


tam = strlen(palavra);

for (i=0;i < tam;i++)
{
palavra[i] = palavra[i]-32;
}

 

Você pode usar assim, como acima que funciona. A variavel “tam” através da função strlen() recebe o valor inteiro da quantidade de letras digitada. Você pode economizar escrevendo o código assim:


for (i=0;i < strlen(tam);i++)
{
palavra[i] = palavra[i]-32;
}

 


O que é que muda? A variavel “tam” é usada dentro do laço e vai ter a mesma ação, que é, pegar o tamanho em inteiro da quantidade de letras digitadas na palavra[i]. É esta a função de strlen(tam). Str=string e len=lenght. Tamanho da String. Usando desta maneira, você economiza a linha de atribuição: tam = strlen(palavra);


O código: palavra[i] = palavra[i]-32 é quem converte a sua palavra em minúsculo para MAIÚSCULA. Mas, como é que funciona? Simples: na tabela ASCII toda e qualquer letra minúscula, menos 32, vai para a mesma letra em maiúscula. Não acredita? Faz o teste: abra o Bloco de Notas e segure a tecla ALT da esquerda e então digite no teclado Numérico o número 97. Vai sair a letra ‘a’ em minúsculo. 97-32=65 não é? Então! Faça a mesma coisa. Segure ALT da esquerda e aperte no teclado númerico 65 e você vai ter uma letra A, em maiúscula.


Então é por isto que o código  palavra[i] = palavra[i]-32 vai converter a palavra minúsculo para maiúscula. Não esquecer do que muito se repete: toda cadeia de string é na verdade um vetor. O código completo fica assim:


#include <stdio.h>
#include <stdlib.h>
#include <string.h>

main ()
{
char palavra[20];
int tam,i;

printf("Digite uma palavra: ");
scanf("%s",&palavra);

printf("\nA palavra digitada foi: %s ",palavra);
printf("\n\n");



for (i=0;i < strlen(tam);i++)
{
palavra[i] = palavra[i]-32;
}

printf("A palavra em maiusculas %s " ,palavra);
printf("\n\n");
system("pause");

}

sexta-feira, 30 de novembro de 2012

Caixa eletrônico em C. As notas consideradas são de 100, 50, 20, 10, 5, 2 e 1.

Escrever um algoritmo que leia um valor em Reais. A seguir, calcule o menor número de notas possíveis no qual o valor pode ser decomposto. As notas consideradas são de 100, 50, 20, 10, 5, 2 e 1. A seguir mostre o valor lido e a relação de notas necessárias.

Se você já está estudando vetores abaixo um exemplo de código que fiz. Se você não está estudando vetores, tem outro exemplo no blog que usa apenas variaveis.

Evidente que você pode incrementar o código com um do{ }while(); Também você pode trocar os cout e o cin por printf() e scanf()

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <conio.c>
#include <iostream>
using namespace std;

main (){

int cedulas[] = {100, 50, 20, 10, 5, 2, 1};
int quantidadeTotal = 0;
int valorReais = 0,i=0;
int qtdCedulas[7];
cout << “Valor a sacar “;
cin >> valorReais;

for(i = 0; i < 7; i++)
{
qtdCedulas[i] = (valorReais/cedulas[i]);
valorReais = valorReais % cedulas[i];
quantidadeTotal += qtdCedulas[i];
cout << qtdCedulas[i] << ” Cedulas de.: ” <<cedulas[i] << endl;
}
cout << “Total de Cedulas: ” << quantidadeTotal;

getch();

}

Queria mais? Então! É só isto! Pode parecer simples, mas, eu levei umas horas quebrando a cabeça de como pegar os valores, dividir, tirar inteiro, guardar no segundo vetor. E, funcionou!

Comentando o laço for() onde tudo acontece.

for(i = 0; i < 7; i++)
{
          qtdCedulas[i] = (valorReais/cedulas[i]);

Esta linha acima, o vetor qtdCedulas[i] recebe o resultado da variavel valorReais e dividido pelo valor do vetor cedulas[i], ou seja,  pega o valor que o usuário digita e divide por 100, depois, por 50, 20,10,5,2,1. Assim, cada posição do vetor qtdCedulas[i] armazena a sua quantidade de notas.

valorReais = valorReais % cedulas[i];

Esta linha acima pode ser substituída por esta outra abaixo:

            valorReais %= cedulas[i];

Aqui a variavel valorReais é modificada e passa a conter a cada laço o resto da divisão do valor digitado pelo usuário pelo conteúdo do vetor cedulas[i], ou seja, se você digitar: 254 na posição de cedulas[0] guardará 54, pois, 254/100 (100 é o valor de cédulas[0]).

Na segunda passagem do laço, valorReais receberá o conteúdo de 54/50 (50 é o valor de cédulas[1]), ou seja, resto 4.

E assim por diante.

            quantidadeTotal += qtdCedulas[i];

Esta variável vai contando a quantidade de cédulas armazenado no vetor qtdCedulas[].

cout << “Cedulas de …: ” << cedulas[i] << “\t Qtd …: ” << qtdCedulas[i] << endl;

Esta linha exibe na tela o resultado. E você pode usar o printf();

Isto é tudo!

segunda-feira, 19 de novembro de 2012

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

 
A digitação da matriz segue o padrão. Usando a biblioteca <iostream> você obtém melhor desempenho e mais produtividade. Usar o cout no lugar do printf() é melhor. Usar o cin no lugar do scanf() também, pois, só o fato de não precisar se preocupar com máscaras e outras coisa muito ajuda.
 
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <conio.c>
#include <iostream>
#include <windows.h>

using namespace std;

main (){
int matriz10x10[10][10];
int maiorValor=0,i,j;

// digitando a matriz
for (i=0;i<10;i++){
for (j=0;j<10;j++){
cout << i << " e " << j << " ";
cin >> matriz10x10[i][j];
if (matriz10x10[i][j] > maiorValor)
{
maiorValor = matriz10x10[i][j];
}
}
}

cout << endl;
// exibindo o resultado na tela

cout << "Matriz 10 x 10" << endl;

for (i=0;i<10;i++){
for ( j=0;j<10;j++){
if(maiorValor == matriz10x10[i][j])
{
cout << "Maior valor: " << maiorValor << endl;
cout << "Na linha: " << i << " e na Coluna: " << j << " " ;
}
cout << endl;
}
}

getch();
}

No primeiro conjunto for() da matriz, eu fiz a coleta do valor maior. A medida que o usuário digita o valor da variável maiorValor é comparado e substituido quando um valor maior é encontrado.

 

No segundo conjunto de for() da matriz eu faço a busca do valor, e então apresento a linha a coluna onde o valor está armazenado. Neste código abaixo, substituo a digitação da matriz, pelo preenchimento randômico.

 

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <conio.c>
#include <iostream>
#include <windows.h>

using namespace std;

main (){

int matriz10x10[10][10];
int maiorValor=0,i,j;

// PREENCHIMENTO RANDÔMICO até o número 160

cin >> matriz10x10[i][j];

matriz10x10[i][j] = rand()%160; // randomico
cout << matriz10x10[i][j] << " "; // exibe na tela

if (matriz10x10[i][j] > maiorValor)
{
maiorValor = matriz10x10[i][j]; // compara os numeros
}
}
cout << endl;
}

// exibindo o resultado na tela
// procura onde [i]=linha e em qual coluna [j]
// está o maior valor

cout << "Matriz 10 x 10" << endl;

for (i=0;i<10;i++){
for ( j=0;j<10;j++){
if(maiorValor == matriz10x10[i][j])
{
cout << "Maior valor: " << maiorValor << endl;
cout << "Na linha: " << i << " e na Coluna: " << j << " " ;
}
cout << endl;
}
}

getch();
}

sábado, 17 de novembro de 2012

Declare um vetor de 10 posições e o preencha com os 10 primeiros números impares e o escreva.

Declare um vetor de 10 posições e o preencha com os 10 primeiros números impares e o escreva.

 
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <conio.c>
#include <iostream>
#include <windows.h>

using namespace std;

main (){
int vetor10[10]={1,3,5,7,9,11,13,15,17,19};

cout << "O Vetor[10] com numeros impares" << endl << endl;
for (int i=0;i<10;i++)
{
cout << "Vetor10 " << i << " = " << vetor10[i] << endl;
}

getch();
}

 

Outra maneira de fazer é esta abaixo. Observe que a variável X, começa em –1 para na posição ZERO termos o inicio em 1.

 


#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <conio.c>
#include <iostream>
#include <windows.h>

using namespace std;
main (){

int vetor10[10];
int x=-1;
cout << "O Vetor[10] com numeros impares" << endl << endl;
for (int i=0;i<10;i++)
{
cout << "Vetor 10 [" << i << "] = " << (x=x+2) << endl;

}

getch();
}


Leia um vetor de 12 posições e em seguida ler também dois valores X e Y.

Leia um vetor de 12 posições e em seguida ler também dois valores X e Y quaisquer correspondentes a duas posições no vetor. Ao final seu programa deverá escrever a soma dos valores encontrados nas respectivas posições X e Y.

#include <stdio.h>
#include <conio.c>
#include <conio.h>
#include <stdlib.h>
#include <iostream>
#include <windows.h>
#include <time.h>

using namespace std;

main (){

int vetor12[12];
int valor1=0,valor2=0,somaValor=0;

clrscr();
cout << "O Vetor[12] foi preenchido RANDOMICAMENTE" << endl << endl;
for (int i=0;i<12;i++)
{
vetor12[i] = rand()%100;
cout << "Vetor12 " << i << " = " << vetor12[i] << endl;
}

cout << endl << endl;

gotoxy(20,9);cout << "Somar 2 valores de 2 indices: " << endl << endl;

gotoxy(20,10);cout << "Qual indice 1? ";
cin >> valor1;

gotoxy(20,11);cout << "Qual indice 2? ";
cin >> valor2;

somaValor = vetor12[valor1] + vetor12[valor2];
cout << endl << endl << endl;
gotoxy(20,12);cout << "A soma de " << vetor12[valor1] << " + " << vetor12[valor2] << " = " << somaValor;

getch();
}


Para a função gotoxy(); funcionar você deve seguir estas dicas aqui: Como usar o gotoxy() no Dev C/C++

quarta-feira, 14 de novembro de 2012

Faça um algoritmo que gere a seguinte matriz

Faça um algoritmo que gere a seguinte matriz:

 

1 1 1 1 1 1

1 2 2 2 2 1

1 2 3 3 2 1

1 2 3 3 2 1

1 2 2 2 2 1

1 1 1 1 1 1

 

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <conio.c>
#include <iostream>
#include <windows.h>

using namespace std;

main (){
int matrizFeita[6][6] = {1,1,1,1,1,1,1,2,2,2,2,1,1,2,3,3,2,1,1,2,3,3,2,1,1,2,2,2,2,1,1,1,1,1,1,1};
int x=10,y=10;

for (int i=0;i<6;i++){
for (int j=0;j<6;j++){
cout << matrizFeita[i][j];
}
cout << endl;
}
getch();
}

Uma matriz 20 x 20. Leia também um valor X.

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”.

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <conio.c>
#include <iostream>
#include <windows.h>

using namespace std;

main (){

int matrizA[3][3];
int i=0,j=0;
int meuNumero=0;

for (i=0;i<3;i++){
for (j=0;j<3;j++){
cout << "Digitando: ";
cin >> matrizA[i][j];
}
}

cout << endl << endl;
cout << "Meu vetor " << endl << endl;

for (i=0;i<3;i++){
for (j=0;j<3;j++){
cout << matrizA[i][j] << " ";
}
cout << endl;
}

cout << "Digite um numero: ";
cin >> meuNumero;

for (i=0;i<3;i++){
for (j=0;j<3;j++){

if(meuNumero == matrizA[i][j])
printf("Linha [%d] Coluna [%d] Numero: [%d][%d] \n", i,j, matrizA[i][j]);

if(meuNumero != matrizA[i][j]){
printf("Linha [%d] Coluna [%d] NAO ENCONTRADO \n", i,j, matrizA[i]);


}
}
getch();
}

lê 30 valores inteiros para um vetor. Encontre o menor e o maior valor deste vetor

Elabore um programa que lê 30 valores inteiros para um vetor. Encontre o menor e o maior valor deste vetor, escrevendo-os juntamente com a sua posição.

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <conio.c>
#include <iostream>
#include <windows.h>

using namespace std;

int vetorA[30],i=0;
int maiorNoVetor = 0;
int menorNoVetor = maiorNoVetor;
int posicaoMenor=0,posicaoMaior=0;

main (){
// este laço solicita entrada dos numeros
for (i=0;i<10;i++)
{
cout << "Indice: " << i << " Valor: "; cin >> vetorA[i];
// este if compara o valor digitado se maiorNoVetor
if (vetorA[i] > maiorNoVetor)
{
maiorNoVetor = vetorA[i];
posicaoMaior = i;
}
// este if compara o valor digitado se menorNoVetor
if (vetorA[i] < maiorNoVetor)
{
menorNoVetor = vetorA[i]; // guarda menor Valor
posicaoMenor = i; // guarda a posição
}
}

cout << endl << endl; // duas linhas em branco na tela

// exibe o vetor na tela.

for (i=0;i<10;i++){
cout << "Indice: " << i << " Valor digitado: " << vetorA[i] << endl;
}

cout << endl << endl; // duas linhas em branco na tela

cout << "O Maior Numero -> " << maiorNoVetor << " na Posicao -> " << posicaoMaior << endl;
cout << "O Menor numero -> " << menorNoVetor << " na Posicao -> " << posicaoMenor << endl;

getch();

}:

segunda-feira, 5 de novembro de 2012

Dois jogos com menu de entrada: Exercício de C.

Faça um programa que após o usuário ter efetuado o login exiba o seguinte menu:

MENU DE JOGOS

---------------------------------------

1. Jogo de dados

2. Adivinhação

3. Sair

----------------------------------------

1. Jogo de dados: neste jogo o usuário irá informar um numero entre 1 e 6. Seu programa irá gerar um número aleatório. Caso o usuário tenha acertado o valor o sistema irá dar os parabéns. Caso tenha errado, o sistema irá informar que o usuário perdeu o valor correto e perguntar se o ele deseja continuar (S-sim ou N – não) Caso o usuário deseje sair o sistema retornará para o menu de jogos.

2. Jogo de adivinhação: neste jogo o usuário irá tentar acertar o número gerado pelo sistema de 1 a 100. Caso o usuário digite um valor menor que o gerado o sistema deverá informar que o número é muito baixo. Caso contrario que o número é muito alto. Este processo deve se repetir até que o usuário acerte o numero gerado. Quando o usuário acertar o valor o sistema deverá dar-lhe os parabéns e perguntar se o mesmo deseja continuar (S-sim ou N – não). Caso não deseje continuar o sistema deverá retornar para o menu de jogos.

 

#include <stdio.h>
#include <conio.c>
#include <conio.h>
#include <stdlib.h>
#include <iostream>
#include <windows.h>
#include <time.h>

using namespace std;

main()
{

int escolheJogo=0;
char usuario[]={"abb"};
int senha=0;

do{
clrscr();
gotoxy(20,8);cout << "Digite Usuario e Senha para entrar: ";
gotoxy(20,11);cout << "Usuario...: ";
gotoxy(32,11); cin >> usuario;

gotoxy(20,12);cout << "Senha ....: ";
gotoxy(32,12); cin >> senha;

gotoxy(23,12);cout << "usuario ou senha nao confere. Tente de novo!";

}while (usuario != "abb" && senha != 123);

do{
clrscr();
gotoxy(25,11);cout << "---------------------------------------" << endl;
gotoxy(25,12);cout << "[1] - JOGO DE DADOS";
gotoxy(25,13);cout << "Voce digita um numero entre 1 e 6." <<endl;
gotoxy(25,14);cout << "O sistema gerara um número aleatorio" << endl;
gotoxy(25,15);cout << "O sistema vai comparar se voce acertou" << endl;
gotoxy(25,16);cout << "---------------------------------------" << endl;

gotoxy(25,18);cout << "---------------------------------------" << endl;
gotoxy(25,19);cout << "[2] - JOGO DE ADIVINHACAO ";
gotoxy(25,20);cout << "Voce digita um numero entre 1 e 100." <<endl;
gotoxy(25,21);cout << "O sistema gerara um número aleatorio" << endl;
gotoxy(25,22);cout << "O sistema vai comparar se voce acertou" << endl;
gotoxy(25,23);cout << "---------------------------------------" << endl;

gotoxy(35,1);cout << "MENU DE JOGOS" << endl;
gotoxy(25,2);cout << "--------------------------------------" << endl;
gotoxy(35,3);cout << "1. Jogo de dados" << endl;
gotoxy(35,4);cout << "2. Adivinhacao" << endl;
gotoxy(35,5);cout << "3. Sair" << endl;
gotoxy(25,6);cout << "--------------------------------------" << endl;
gotoxy(25,8);cout << "O que quer fazer? [ ]";
gotoxy(44,8);cin >> escolheJogo;


switch(escolheJogo)
{
case 1:
{
do{
int minhaSorte=0,sorteio=0;
clrscr();
gotoxy(25,2);cout << "JOGO DOS DADOS" << endl;
gotoxy(25,4);cout << "Digite um numero entre 1 e 6 [ ]";
gotoxy(55,4);cin >> minhaSorte;

sorteio = 1+(int)(6.0 * rand()/(RAND_MAX-1));

if(sorteio == minhaSorte){
clrscr();
gotoxy(25,10);cout << "Parabens! Voce Acertou" << endl;
}else{
clrscr();
gotoxy(25,10);cout << "Nao foi desta vez! Voce Errou!" << endl;
}
gotoxy(15,23);cout << "Tentar de novo? [s] = SIM | Qualquer outra <TECLA> para sair";
}while(getch() == 's');

};break;

case 2:
{
do{
int sorteio=0,meuNumero=0;
clrscr();
gotoxy(25,2);cout << "JOGO DOS DADOS" << endl;

sorteio = 1+(int)(100 * rand()/(RAND_MAX-1));

while (meuNumero != sorteio){
clrscr();
gotoxy(25,4);cout << "Digite um numero entre 1 e 100 [ ]";
gotoxy(57,4);cin >> meuNumero;

if(meuNumero > sorteio )
{
clrscr();
gotoxy(25,10);cout << "Voce digitou um numero maior" << endl;
gotoxy(25,23);cout << "Aperte um tecla";
getch();
}

if (meuNumero < sorteio)
{
clrscr();
gotoxy(25,10);cout << "Voce Digitou um numero Menor " << endl;
gotoxy(25,23);cout << "Aperte um tecla";
getch();
}
if (meuNumero == sorteio)
{
clrscr();
gotoxy(25,10);cout << "Voce Acertou " << endl;
gotoxy(25,23);cout << "Aperte um tecla";
getch();
}
};
gotoxy(15,23);cout << "Tentar de novo? [s] = SIM | Qualquer outra <TECLA> para sair";
}while(getch() == 's');
};break;
case 3:
{
clrscr();
gotoxy(25,20);cout << "F.I.M! Espere um pouco!" << endl;
Sleep(1000);
};break;
default:
{
clrscr();
gotoxy(25,20);cout << "OPCAO INVALIDA" << endl;
getch();
};break;

}
}while(escolheJogo != 3);

}

Um programa para gerenciar os saques de um caixa eletrônico deve possuir um mecanismo para decidir o número de notas de cada valor que deve ser disponibilizado para o cliente que realizou o saque.

Um programa para gerenciar os saques de um caixa eletrônico deve possuir um mecanismo para decidir o número de notas de cada valor que deve ser disponibilizado para o cliente que realizou o saque. Faça um programa que:

· leia a quantia a ser sacada e gerencie os saques e tenha como critério da “distribuição ótima” no sentido que as notas de menor valor sejam distribuídas em menor numero possível, por exemplo, se o a quantia solicitada fosse R$ 87,00, o programa deve indicar 1 nota de R$ 50,00, 3 notas de R$ 10,00 uma nota de R$ 5,00 e 2 notas de R$ 1,00.

· Assuma que o maior valor que pode ser sacado no caixa é igual a R$ 1000,00 e que o caixa possui notas de R$ 50,00, R$ 10,00, R$ 5,00 e R$ 1,00.

 

#include <stdio.h>
#include <conio.c>
#include <conio.h>
#include <stdlib.h>
#include <iostream>
#include <windows.h>
#include <time.h>

using namespace std;

void tela(){
gotoxy(10,2); cout << "|-------------------------------------------------|" << endl;
gotoxy(10,3); cout << "| CAIXA ELETRONICO | ADAO BRAGA | 0 = SAIR |" << endl;
gotoxy(10,4); cout << "|-------------------------------------------------|" << endl;
};
main()
{
int valor, qtd50,qtd10,qtd5,qtd1=0,resto50,resto10=0,resto5=0;
while (valor > 0 )
{
tela();
gotoxy(12,6); cout << "Digite o valor do Saque: "; cin >> valor;

//O Processamento.
// O resto da divisão é separado na variável resto50;
// O resto50 é dividido por 10 e o resultado guardado em resto10
// Faz o mesmo para 5, e 1

qtd50 = (valor / 50); // O valor é dividido por 50.
resto50 = (valor-(qtd50*50));
qtd10 = (resto50 / 10);
resto10 = (valor-(qtd10*10)-(qtd50*50));
qtd5 = (resto10 / 5);
resto5 = (valor-(qtd10*10)-(qtd50*50)-(qtd5*5));
qtd1 = (resto5 /1);

// Apresentação na tela

gotoxy(12, 8);cout << " NOTAS de 50,00 " << qtd50;
gotoxy(12, 9);cout << " NOTAS de 10,00 " << qtd10;
gotoxy(12,10);cout << " NOTAS de 5,00 " << qtd5;
gotoxy(12,11);cout << " NOTAS de 1,00 " << qtd1;

gotoxy(15,23); cout << "TECLE ALGO PARA CONTINUAR";
getch();
clrscr();
}

}

Imagine que o TSE contratou sua empresa para desenvolver o sistema das urnas eletrônicas que serão utilizadas nas próximas eleições do país.

Imagine que o TSE contratou sua empresa para desenvolver o sistema das urnas eletrônicas que serão utilizadas nas próximas eleições do país. O sistema deverá realizar as seguintes ações:

I. O sistema deverá conter pelo menos três candidatos validos para prefeito e mais três para vereadores (que não precisam ser exibidos ao eleitor no ato da votação).

II. O sistema deverá solicitar ao eleitor que vote primeiro para prefeito, informando o número do candidato.

III. A partir do número informado pelo eleitor, o sistema deverá informar o nome, número e partido do candidato e solicitar que o eleitor confirme ou corrija (‘C’-confirmar ou ‘D’ – corrigir).

IV. Após confirmar o voto o sistema deverá solicitar que o eleitor vote em vereador. Da mesma forma que para prefeito, o sistema irá exibir o número, nome, partido do candidato e as opções: confirmar ou corrigir.

V. Caso o eleitor deseje votar na opção nula deverá informar 000 com número do candidato tanto para prefeito como para vereador. Nesta situação o sistema irá exibir uma tela solicitando que o usuário confirme ou corrija seu voto.

VI. O sistema deverá encerrar a votação caso o usuário digite um valor negativo para o número do prefeito.

Ao final da votação o sistema deverá exibir:

a) Número e o percentual de votos de todos os candidatos, tanto para prefeito, como para vereador.

b) O nome, número de votos do candidato vencedor (prefeito e vereador).

c) O percentual de votos nulos.

 

#include <stdio.h>
#include <conio.c>
#include <conio.h>
#include <stdlib.h>
#include <iostream>
#include <windows.h>
#include <time.h>

using namespace std;

void titsup(){ // função que apresenta titulo na tela
gotoxy(15,2);cout << "ELEICOES MUNICIPAIS: PREFEITO E VEREADORES" << endl;
};

main()
{ // variaveis
int eleicoes,prefeitos,vereadores,contaGeral=0,contaGVereador=0;
int prefAdao=0,prefEddie=0,prefValeria=0,votoNuloPref=0;
int vereadorMCarmo=0,vereadorFRodrigues=0,vereadorJRossie=0,votoNuloVereador=0;
float perPrefAdao,perPrefEddie,perPrefValeria,perVotoNuloPref;
float perVerMCarmo,perVerFRodrigues, perVerJRossie,perNuloVereador;

do{ //inicio do laço
clrscr(); //limpa a tela
titsup(); // executa a função
// primeiro menu de opções
gotoxy(15, 9);cout << "1 - VOTAR PARA PREFEITO! ";
gotoxy(15,10);cout << "2 - VOTAR PARA VEREADOR! ";
gotoxy(15,11);cout << "0 - SAIR! ";

gotoxy(15,14);cout << "Digite aqui sua opcao: "; cin >> eleicoes;
//criação do menu dos PREFEITURÁVEIS
switch(eleicoes){
case 0:break; // sair do sistema
case 1: // para votar para prefeitos
{
clrscr();
titsup();
// MENU DE OPÇÕES
gotoxy(20,7);cout << "CANDIDATOS A PREFEITO" << endl;
gotoxy(15, 9);cout << "101 - ADAO BRAGA ";
gotoxy(15,10);cout << "201 - EDDIE SANTANA";
gotoxy(15,11);cout << "301 - VALERIA DOURADO";
gotoxy(15,12);cout << "000 - Anula voto";
gotoxy(15,16);cout << "Digite aqui sua opcao: ";cin >> prefeitos;
//processamento das opções para prefeitos
switch(prefeitos){
case 101:prefAdao++;contaGeral++;break;
case 201:prefEddie++;contaGeral++;break;
case 301:prefValeria++;contaGeral++;break;
case 000:votoNuloPref++;contaGeral++;break;
default:gotoxy(15,20);cout << "OPCAO INVALIDA! ... APERTE UMA TECLA!";getch();
}
};break;
case 2: // para votar para vereadores
{
clrscr();
titsup();
// MENU DE OPÇÕES DE VEREADORES
gotoxy(20, 7);cout << "CANDIDATOS A VEREADOR" << endl;
gotoxy(15, 9);cout << "102 - MARIA DO CARMO! ";
gotoxy(15,10);cout << "202 - FIRMINO RODRIGUES";
gotoxy(15,11);cout << "302 - JULIE ROSSIE";
gotoxy(15,12);cout << "000 - Anula voto";
gotoxy(15,16);cout << "Digite aqui sua opcao: "; cin >> vereadores;
//processamento das opções para vereadores
switch(vereadores){
case 102:vereadorMCarmo++;contaGVereador++;break;
case 202:vereadorFRodrigues++;contaGVereador++;break;
case 302:vereadorJRossie++;contaGVereador++;break;
case 000:votoNuloVereador++;contaGVereador++;break;
default:gotoxy(15,20);cout << "OPCAO INVALIDA! ... APERTE UMA TECLA!";getch();
}
};break;
//Resposta Padrão Menu ELEIÇÕES
default:gotoxy(15,20);cout << "OPCAO INVALIDA! ... APERTE UMA TECLA!";getch();
}
}while(eleicoes != 0); // fim do Laço Do... while

clrscr();
titsup();

// processando percentuais PREFEITO
perPrefAdao = (prefAdao*100)/contaGeral;
perPrefEddie = (prefEddie*100)/contaGeral;
perPrefValeria = (prefValeria*100)/contaGeral;
perVotoNuloPref = (votoNuloPref*100)/contaGeral;

//Processando Percentuais VEREADORES.

perVerMCarmo = (vereadorMCarmo*100)/contaGVereador;
perVerFRodrigues = (vereadorFRodrigues*100)/contaGVereador;
perVerJRossie = (vereadorJRossie*100)/contaGVereador;
perNuloVereador = (votoNuloVereador*100)/contaGVereador;

// resultados apresentados em TELA PREFEITOS.
gotoxy(10,9); cout << "RESULTADOS DAS ELEICOES PARA PREFEITOS";
gotoxy(10,11); cout << "Total de Votos .............: " << contaGeral << endl;
gotoxy(10,12); cout << "Prefeito Adao Braga ........: " << prefAdao << " Votos. Sao " << perPrefAdao << " % " << endl;
gotoxy(10,13); cout << "Prefeito Eddie Santana......: " << prefEddie << " Votos. Sao " << perPrefEddie << " % " << endl;
gotoxy(10,14); cout << "Prefeita Valeria Dourado....: " << prefValeria << " Votos. Sao " << perPrefValeria << " % " << endl;
gotoxy(10,15); cout << "Votos Nulos para Prefeito...: " << votoNuloPref << " Votos. Sao " << perVotoNuloPref << " % " << endl;

// resultados apresentados em TELA VEREADORES.
gotoxy(10,18); cout << "RESULTADOS DAS ELEICOES PARA VEREADORES";
gotoxy(10,19); cout << "Total de Votos Vereadores........: " << contaGVereador << endl;
gotoxy(10,20); cout << "Vereadora Maria do Carmo ........: " << vereadorMCarmo << " Votos. Sao " << perVerMCarmo << "%" << endl;
gotoxy(10,21); cout << "Vereador Firmino Rodrigues ......: " << vereadorFRodrigues << " Votos. Sao " << perVerFRodrigues << "%" << endl;
gotoxy(10,22); cout << "Vereadora Julie Rossie ..........: " << vereadorJRossie << " Votos. Sao " << perVerJRossie << "%" << endl;
gotoxy(10,23); cout << "Votos Nulos para Vereador .......: " << votoNuloVereador << " Votos. Sao " << perNuloVereador << "%" << endl;
getch();
}

Uma empresa realizou uma pesquisa com os seus fornecedores, na qual foram coletados os seguintes dados referentes aos produtos fornecidos

Uma empresa realizou uma pesquisa com os seus fornecedores, na qual foram coletados os seguintes dados referentes aos produtos fornecidos:

  • ID, Valor e Percentual de aumento

Obs. Se o produto não tiver sofrido alteração de preço, o percentual de aumento será igual a 0.

Faça um programa que determine e escreva:

  • O novo valor de cada um dos produtos.
  • A quantidade de produtos mais caros que R$ 100,00 (após aumento) e que tiveram aumento superior a 5%.
  • A média de valor dos produtos que não sofreram aumento.
  • O valor do produto mais caro (após aumento).

Obs.: o programa solicita dados até que o ID digitado seja zero.

#include <stdio.h>
#include <conio.c>
#include <conio.h>
#include <stdlib.h>
#include <iostream>
#include <windows.h>
#include <time.h>

using namespace std;

main()
{
int ID;
float valor=0,pAumento=0.00,novoValor,mediaSemAumento,maisCaroPos=0.00,somaSemAumento=0.00;
int pMaisQ100=0,aumMaisQ5=0,contaSemAumento=0;

while (ID > 0 ) {

clrscr();
gotoxy(15,2);cout << ":: PESQUISANDO FORNECEDORES - [0] para Sair ::" << endl;

gotoxy(15,5);cout << "Qual o ID ..........: "; cin >> ID;
gotoxy(15,6);cout << "Qual o valor .......: "; cin >> valor;
gotoxy(15,7);cout << "Quantos % aumento...: "; cin >> pAumento;

novoValor = valor + (valor*pAumento)/100;

// verificar e contar valor acima de 100 depois do aumento
if (novoValor > 100)
{pMaisQ100++;}
// verificar e contar valor que tiveram mais de 5% de aumento
if (pAumento > 5)
{aumMaisQ5++;}
// verifica se teve Zero de aumento, conta os valores e soma os valores
// calcula a média dos valores que não sofreram aumento
if (pAumento == 0 ){
contaSemAumento++;
somaSemAumento = (somaSemAumento+valor);
mediaSemAumento = (somaSemAumento/contaSemAumento);
}

if (novoValor > maisCaroPos)
{
maisCaroPos = novoValor;
}

clrscr();
gotoxy(15, 9);cout << ":: VALORES ::" << endl;
gotoxy(15,11);cout << "Produto ..........: " << ID << endl;
gotoxy(15,12);cout << "Valor do Produto ...: " << valor << endl;
gotoxy(15,13);cout << "Percentural aument..: " << pAumento << endl;
gotoxy(15,14);cout << "Novo Valor ........: " << novoValor << endl;
gotoxy(15,15);cout << "Qtd maiores que 100.: " << pMaisQ100 << endl;
gotoxy(15,16);cout << "Qtd acima de +5% ...: " << aumMaisQ5 << endl;
gotoxy(15,17);cout << "Qtd sem Aumento ....: " << contaSemAumento << endl;
gotoxy(15,18);cout << "Soma sem Aumento ...: " << somaSemAumento << endl;
gotoxy(15,19);cout << "Media sem Aumento ..: " << mediaSemAumento << endl;
gotoxy(15,20);cout << "Valor mais caro.. ..: " << maisCaroPos << endl;

gotoxy(20,22); cout << "APERTE UMA TECLA PARA CONTINUAR";
getch();

}
}

Foi realizada uma pesquisa com 200 pessoas que assistiram uma peça de teatro, em relação a sua opinião sobre a mesma.

Foi realizada uma pesquisa com 200 pessoas que assistiram uma peça de teatro, em relação a sua opinião sobre a mesma. Cada espectador respondeu a um questionário que solicitava os seguintes dados:

  • idade da pessoa;
  • o identificador da pessoa;
  • opinião em relação à peça(de 0 a 10).

Faça um programa que, a partir destes dados, calcule e imprima:

  1. A quantidade de respostas 10.
  2. A média de idade das pessoas que responderam o questionário.
  3. A percentagem de pessoas que responderam 5 ou menos para a opinião da peça.
  4. O identificador da pessoa mais velha.

* Considere que a maior idade não é repetida

 

#include <stdio.h>
#include <conio.c>
#include <conio.h>
#include <stdlib.h>
#include <iostream>
#include <windows.h>
#include <time.h>

using namespace std;

main()
{
int idade=0,contador=0,conta10=0,contaIdade=0,somaIdade=0;
int contaMenor5=0,nPesq=200,maisVelha=0;
char sexo,sexoMaisVelha;
float notaPeca=0.00,mediaIdades=0.00,porcentagem=0.00;

do { // começa a repetição

gotoxy(15,2);cout << "Pesquisa Literaria - 200 OPINIOES " << endl << endl;
gotoxy(15,4);cout << "Qual sua Idade? "; cin >> idade;
gotoxy(15,5);cout << "Qual seu Sexo [f | m] ? "; cin >> sexo;
gotoxy(15,6);cout << "Que nota voce da a peca: [0 a 10] "; cin >> notaPeca;
clrscr();

contaIdade++; //conta as idade
somaIdade = (somaIdade+idade); //soma as idades
mediaIdades = (somaIdade/contaIdade); // calcula a media das idades

if (idade > maisVelha) // compara a idade e aponta o sexo
{
maisVelha=idade;
sexoMaisVelha=sexo;
}

if (notaPeca == 10){conta10++;} // conta as notas 10
if (notaPeca <= 5){contaMenor5++;} //conta as notas menores que 5

contador++; //incrementa o contador para encerrar a pesquisa

}while (contador <= nPesq); //termina a repetição

porcentagem = (contaMenor5 * 100)/contador; // calcula a porcentagem menor 5%
gotoxy(15,17);cout << " ........ RESULTADOS ......: " << endl;
gotoxy(15,18);cout << "Idade da pessoa mais Velha.: " << maisVelha;
gotoxy(15,19);cout << "Sexo da pessoa mais Velha..: " << sexoMaisVelha;
gotoxy(15,20);cout << "Deram notas baixas .......: " << contaMenor5;
gotoxy(15,21);cout << "Deram nota 10 .............: " << conta10;
gotoxy(15,22);cout << "Soma de todas as idades....: " << somaIdade;
gotoxy(15,23);cout << "Media das idades ..........: " << mediaIdades;
gotoxy(15,24);cout << "% das notas abaixo de 5 ...: " << porcentagem;

getch();
}:

Faça um programa que solicite ao usuário 10 números inteiros e, ao final, informe a quantidade de números ímpares e pares lidos.

Faça um programa que solicite ao usuário 10 números inteiros e, ao final, informe a quantidade de números ímpares e pares lidos. Calcule também a soma dos números pares e a média dos números ímpares.

#include <stdio.h>
#include <conio.c>
#include <conio.h>
#include <stdlib.h>
#include <iostream>
#include <windows.h>
#include <time.h>

using namespace std;

main()
{

int numeros=0,nImpares=0,nPares=0,somaPares=0,somaImpares=0;
float mediaImpares = 0.00;

gotoxy(5,5);cout << "Digite abaixo 10 Numeros: " << endl << endl;


for (int i=0; i<10; i++) //inicia a repetição “for” até 10
{
cout << "Meu numero: "; cin >> numeros; // recebe a digitação
if (numeros %2 == 0) //verifica se o resto da divisão por 2 é zero.
{
nPares++; // se o número é par, incrementa o contador
somaPares=somaPares+numeros; // aqui, soma os números pares
}
else
{
nImpares++; // se não é par, é impar. Incrementa o contador
somaImpares=somaImpares+numeros; //soma os impares
}
}

if(nImpares >0)
mediaImpares = (float)somaImpares/nImpares; //media dos impares

gotoxy(10,18);cout << "RESULTADO" << endl;
gotoxy(10,19);cout << "-----------------------------" << endl;
gotoxy(10,20);cout << "Quant. Pares ......: " << nPares;
gotoxy(10,21);cout << "Quant. Impares.....: " << nImpares;
gotoxy(10,22);cout << "Soma dos Pares ....: " << somaPares;
gotoxy(10,23);cout << "Media dos Impares..: " << mediaImpares;

getch();

}

domingo, 4 de novembro de 2012

Faça um programa que exiba a sequencia completa 0/100, 2/96, 4/92,6/88,…,50/0

 

Faça um programa que exiba a sequencia completa 0/100, 2/96, 4/92,6/88,…,50/0

O algoritmo, pelo que entendi, o numerador vai de 2 em 2 e o denominador de 4 em 4. Sendo que um vai de 0 a 50, e o outro de 100 a 0.

 

#include <stdio.h>

#include <conio.c>

#include <conio.h>

#include <stdlib.h>

#include <iostream>

#include <windows.h>

#include <time.h>

using namespace std;

main()

{

// declaração de variaveis

int numerador=-2;

int denominador=104;

/* laço while será executado enquanto

o valor da variavel DENOMINADOR for

maior que ZERO.

*/

while (denominador > 0){

numerador=numerador+2; // variavel conta de 2 em 2

denominador = denominador-4; // variavel diminui de 4 em 4

cout << numerador << " " << denominador << endl;

}

getch();

}

Como usar o gotoxy() no Dev C++

Para você que não consegue usar a função gotoxy(x,y).

Para você que sempre que vai usar a função gotoxy() e recebe como resposta do compilador a informação:

error: `gotoxy' undeclared (first use this function)

A solução é esta que apresento aqui, e logo abaixo:

1 – Faça o download deste arquivo: conioc.zip.

São apenas três arquivos:

O arquivo conio.c: coloque ele na pasta C:\Dev-Cpp\include
O arquivo conio.h: coloque ele na pasta C:\Dev-Cpp\include
O arquivo libconio.a coloque na pasta C:\Dev-Cpp\lib

Com isto você poderá usar as seguintes funções:

textcolor(), textbackground(), clrscr(), gotoxy() […] Use o seguinte também: #include<conio.c>

Configurando o Dev C/C++ para inserir código padrão.

Para quem faz programas de computadores com toda e qualquer IDE deve conhecer suas facilidades e recursos. É fundamental para que, se possa, produzir mais, e melhor. Pois bem! Seguindo esta tônica esta dica é para quem usa o Dev C/C++.

É o seguinte: se você usa as mesmas bibliotecas, não tem que digitar todas as linhas das bibliotecas. Neste caso, todas as vezes tenho que digitar várias linhas de bibliotecas. Então, você pode configurar o DEV C/C++ para inserir o código acima automaticamente. Para você configurar um código padrão você faz esta configuração em poucos cliques. Esta dica é para quem usa o DEV C/C++.

1) – Clique em TOOLS; depois clique em Editor Options.

Imagem 006

2) – Na tela do Editor Options você vai clicar em CODE. E depois na parte de baixo clique em Default Source

Imagem 009

Clique em OK. Todas as vezes que você for iniciar um novo arquivo, este bloco de código já aparece no novo arquivo, economizando tempo e digitação. Bem como evita erros, uma vez que você, terá este código inserido corretamente e automaticamente. Não vai deixar errado não é?

terça-feira, 2 de outubro de 2012

de 13 a 20: exercícios em Netbeans Java

Os exercícios abaixo, alguns, apenas alguns, não estão completos, no entanto, está funcionando e a lógica, ainda que não seja a de um programador experiente, auxilia ao estudante iniciante a entender o código, e não copie e cole no seu trabalho escolar, use-o como auxilio.

Se você chegou aqui por meio do google ou do bing, certamente que seu professor também. Então evite dores de cabeça para você mesmo. Use o código para aprender.

13) - Uma empresa decidiu fazer um levantamento em relação aos candidatos que se apresentarem para preenchimento de vagas no seu quadro de funcionários. Supondo que você seja o programador dessa empresa, faça um Programa que leia para cada candidata a idade, o sexo (M ou F) e a experiência no serviço (S ou N). Para encerrar a entrada de dados, digite zero para a idade. Calcule e escreva:

  • número de candidatos do sexo feminino;
  • número de candidatos do sexo masculino;
  • a idade média dos homens que já têm experiência no serviço;
  • a porcentagem dos homens com mais de 45 anos entre o total dos homens;
  • número de mulheres com idade inferior a 35 anos e com experiência no serviço;
  • a menor idade entre as mulheres que já têm experiência no serviço.
 
import javax.swing.JOptionPane;
public class QuadroFuncionarios {
public static void main(String[] args) {

int SuaIdade=1,somaIdadeFeminina=0,somaIdadeMasculino=0;
double idadeMediaMasculina=0;
double idadeMediaFeminina=0;
String Experiencia;

int ContaFeminino=0,ContaMasculino=0;
while(SuaIdade != 0){

SuaIdade = Integer.parseInt(JOptionPane.showInputDialog("Qual sua Idade"));
int OSexo = Integer.parseInt(JOptionPane.showInputDialog("Qual seu Sexo? \t\n1-Para Feminino \t\n2-Para Masculino"));

switch(OSexo)
{
case 1: ContaFeminino++;somaIdadeFeminina+=SuaIdade;break;
case 2: ContaMasculino++;somaIdadeMasculino+=SuaIdade;break;
}
Experiencia = JOptionPane.showInputDialog("Tem Experiência?");
}
idadeMediaMasculina = (somaIdadeMasculino/ContaMasculino);
idadeMediaFeminina = (somaIdadeFeminina/ContaFeminino);
JOptionPane.showMessageDialog(null,"\nQTD Masculino.: "+ContaMasculino + "\nQTD Feminino.: "+ContaFeminino +"\nIMM = "+idadeMediaMasculina + "\nIMF = "+idadeMediaFeminina, "Resultado",JOptionPane.INFORMATION_MESSAGE);
}

}


 

14. Faça um Programa que receba a idade e o peso de 15 pessoas. Calcule e imprima as médias dos pesos das pessoas da mesma faixa etária. As faixas etárias são: de 1 a 10 anos, de 11 a 20 anos, de 21 a 30 anos e maiores de 30 anos.


 



import javax.swing.JOptionPane;
public class Dados15Pessoas {
public static void main(String[] args) {
int suaIdade=0;
int seuPeso=0;
int contaFaixa1a10=0,contaFaixa11a20=0,contaFaixa21a30=0,contaFaixa30a65=0;
int somaFaixa1a10=0,somaFaixa11a20=0,somaFaixa21a30=0,somaFaixa30a65=0;
for (int i = 0; i < 5; i++) {

suaIdade = Integer.parseInt(JOptionPane.showInputDialog("Digite a idade: "));
seuPeso = Integer.parseInt(JOptionPane.showInputDialog("Digite o Peso: "));

switch(suaIdade){

case 0-9:contaFaixa1a10++;somaFaixa1a10+=suaIdade;break;
case 10-20:contaFaixa11a20++;somaFaixa11a20+=suaIdade;break;
case 20-31:contaFaixa21a30++;somaFaixa21a30+=suaIdade;break;
case 31-65:contaFaixa30a65++;somaFaixa30a65+=suaIdade;break;
default: JOptionPane.showMessageDialog(null,"Acima da Idade. Aposentado","VELHOTE",JOptionPane.INFORMATION_MESSAGE);
}
}
JOptionPane.showMessageDialog(null,"Entre 0 a 10 = "+somaFaixa1a10+ "\nEntre 11 a 20 = "+somaFaixa11a20+ "\nEntre 20-30 "+somaFaixa21a30+ "\nEntre Maior que 30 = " +somaFaixa30a65,"FAIXA ETARIA",JOptionPane.INFORMATION_MESSAGE);
}

}


15. Faça um Programa que receba duas notas de 6 alunos e calcule e imprima: a média entre essas 2 notas de cada aluno; a mensagem de acordo com a tabela abaixo:


    Média Mensagem




    • De 0 a 5.0 reprovado;


    • De 5.1 a 6.9 recuperação;


    • De 7.0 a 10 aprovado;


    • total de alunos aprovados e o total de alunos reprovados;


    • a média geral da Programa, isto é, a média entre as médias dos alunos.

     



    import javax.swing.JOptionPane;
    public class NotasDeSeisAlunos {
    public static void main(String[] args) {
    double nota1 = 0, nota2 = 0;
    double mediaAluno1=0,mediaAluno2=0;
    int NumeroAprovados=0;

    // ALUNO 1
    for (int i = 0; i < 2; i++)
    {
    double Nota1 = Double.parseDouble(JOptionPane.showInputDialog("Notas do Aluno 1"));
    nota1 += Nota1;
    }

    mediaAluno1 = nota1/2;

    if ((mediaAluno1 >0) && (mediaAluno1 <=5) )
    {
    JOptionPane.showMessageDialog(null, "Media do Aluno 1 = " +mediaAluno1 + "\nREPROVADO!");
    }
    if ((mediaAluno1 >=5.1 ) && (mediaAluno1 <=6.9) )
    {
    JOptionPane.showMessageDialog(null, "Media do Aluno 1 = " +mediaAluno1 + "\nRECUPERAÇÃO!");
    }

    if ((mediaAluno1 >=7 ) && (mediaAluno1 <=10) )
    {
    JOptionPane.showMessageDialog(null, "Media do Aluno 1 = " +mediaAluno1 + "\nAPROVADO!");
    }
    if(mediaAluno1 >= 7){
    NumeroAprovados++;
    }
    // ALUNO 2
    for (int i = 0; i < 2; i++)
    {
    double Nota2 = Double.parseDouble(JOptionPane.showInputDialog("Notas do Aluno 2"));
    nota2 += Nota2;
    }

    mediaAluno2 = nota2/2;

    if ((mediaAluno1 >0) && (mediaAluno2 <=5) )
    {
    JOptionPane.showMessageDialog(null, "Media do Aluno 2 = " +mediaAluno2 + "\nREPROVADO!");
    }
    if ((mediaAluno1 >=5.1 ) && (mediaAluno2 <=6.9) )
    {
    JOptionPane.showMessageDialog(null, "Media do Aluno 2 = " +mediaAluno2 + "\nRECUPERAÇÃO!");
    }

    if ((mediaAluno1 >=7 ) && (mediaAluno2 <=10) )
    {
    JOptionPane.showMessageDialog(null, "Media do Aluno 2 = " +mediaAluno2 + "\nAPROVADO!");
    }
    if(mediaAluno2 >= 7){
    NumeroAprovados++;
    }

    JOptionPane.showMessageDialog(null, "Total de Aprovados: " +NumeroAprovados);
    }
    }





    16. Faça um Programa que receba a idade e a altura de várias pessoas. Calcule e imprima a média das alturas das pessoas com mais de 50 anos. Para encerrar a entrada de dados, digite idade  <= zero.




    import javax.swing.JOptionPane;

    public class MediaAlturaIdade50 {
    public static void main(String[] args) {

    double media=0;
    int DigitaIdade=0;
    int SomaIdade50=0;
    int ContaIdade=0;
    // for (int i = 0; i < 10; i++) {

    do{
    DigitaIdade = Integer.parseInt(JOptionPane.showInputDialog("Digite a Idade"));

    if(DigitaIdade >= 50){
    SomaIdade50+=DigitaIdade;
    ContaIdade++;}
    }while(DigitaIdade != 0);

    media = (SomaIdade50/ContaIdade);

    JOptionPane.showMessageDialog(null,"\nSoma das Idades "+SomaIdade50 + "\nQTD digitados "+ContaIdade + "\nMedia das Idades..: "+ media,"Media das Idades >50 = ",JOptionPane.INFORMATION_MESSAGE);
    }
    }

     


    17.  Cada espectador de um cinema respondeu a um questionário no qual constava sua idade e a sua opinião em relação ao filme: ótimo - 3, bom - 2, regular - 1. Faça um Programa que receba a idade e a opinião de 15 espectadores, calcule e imprima:



    • a média das idades das pessoas que responderam ótimo;


    • a quantidade de pessoas que responderam regular;


    • a porcentagem de pessoas que responderam bom entre todos os espectadores analisados.


     


    import javax.swing.JOptionPane;
    public class EspectadorCinema {
    public static void main(String[] args) {
    int contaOtimo=0,contaBom=0,contaRegular=0,somaIdadeOtimo=0,i;
    double mediaIdadeOtimo=0,porcentagemBom=0;

    for ( i = 0; i <= 2; i++)
    {

    int idade = Integer.parseInt(JOptionPane.showInputDialog("Qual sua Idade? "));
    int suaOpiniao = Integer.parseInt(JOptionPane.showInputDialog("Sua opinião sobre o Filme? \n\n\t\t| 1 = Ótimo | 2 = Bom | 3 = Regular |"));
    switch(suaOpiniao){

    case 1: contaOtimo++;somaIdadeOtimo+=idade;break;
    case 2: contaBom++;break;
    case 3: contaRegular++;break;
    }
    }
    mediaIdadeOtimo = (somaIdadeOtimo/contaOtimo);
    JOptionPane.showMessageDialog(null, "\t Total Otimo: " +contaOtimo + "... Media Idade: " + mediaIdadeOtimo + "\t\n Total Bom: " +contaBom +" Porcentagem BOM: "+porcentagemBom + "\t\nTotal Regular: " +contaRegular," Resultado ",JOptionPane.INFORMATION_MESSAGE);
    }
    }

     

    18) -  Certa firma fez uma pesquisa de mercado para saber se as pessoas gostaram ou não de um novo produto lançado. Para isso forneceu o sexo do entrevistado e sua resposta (sim ou não). Sabendo que foram entrevistadas 10 pessoas, faça um Programa que calcule e imprima:



    • número de pessoas que responderam sim;
    • número de pessoas que responderam não;
    • número de mulheres que responderam sim;
    • a porcentagem de homens que responderam não entre todos os homens analisados.

     

    import javax.swing.JOptionPane;
    public class PesquisaMercado {
    public static void main(String[] args) {
    int contaSimF=0,contaNaoM=0,totalFM=0;
    int contaF=0,contaM=0;

    for (int i = 1; i <= 10; i++)
    {
    String seuSexo = JOptionPane.showInputDialog("Qual seu Sexo: \n\t(f) = Feminino \n\t(m) = Masculino");
    String respSim = JOptionPane.showInputDialog("Gostou do Produto x : \n\t(S) = SIM \n\t(N) = NÃO");

    if (("f".equals(seuSexo)) || ("F".equals(seuSexo)))
    {
    contaF++;
    if (("s".equals(seuSexo)) || ("S".equals(seuSexo)))
    {
    contaSimF++;
    }

    }
    if (("m".equals(seuSexo)) || ("M".equals(seuSexo)))
    {
    contaM++;
    if (("M".equals(seuSexo)) || ("m".equals(seuSexo)))
    {
    contaNaoM++;
    }
    }
    }
    totalFM=(contaF+contaM);
    JOptionPane.showMessageDialog(null, "Total Mulheres = " +contaF + "\nTotal Homens = " +contaM + "\nTotal Geral FM = "+totalFM + "\nMulheres/SIM = "+contaSimF +"\nHomens/Nao = "+contaNaoM);
    }

    }


    19. Faça um Programa que receba 10 números, calcule e imprima a soma dos números pares e a soma dos números primos.

     


    import javax.swing.JOptionPane;
    public class ContaParesImpares {
    public static void main(String[] args) {

    int numeros=0,numerosPares=0,numerosPrimos=0,divisores=0;
    for (int i = 1; i <= 11; i++) {

    numeros = Integer.parseInt(JOptionPane.showInputDialog("Digite 10 Numeros: "));

    if (numeros % 2 ==0){
    numerosPares++;
    }
    if (numeros % 2 == 0){
    divisores++;
    if (divisores <= 2)
    {
    numerosPrimos++;
    }
    }
    }
    JOptionPane.showMessageDialog(null, "Numeros Pares: " +numerosPares + "\nNumeros Primos: "+numerosPrimos);
    }

    }


    20. Uma loja utiliza os seguintes códigos para as transações de cada dia: 'v' - para compras à vista 'p' - para compras a prazo É dada uma lista de transações contendo o valor de cada compra e o respectivo código da transação. Faça um Programa que calcule e imprima:

     



    • valor total das compras à vista;


    • valor total das compras a prazo;


    • valor total das compras efetuadas;


    • valor a receber pelas compras a prazo, isto é, primeira parcela, sabendo que estas serão pagas em três vezes. Sabe-se que são efetuadas 25 transações por dia.

      import javax.swing.JOptionPane;
      public class TiposVendas {
      public static void main(String[] args) {

      double vendas=0,valorVendasV=0,valorVendasP=0,valorTotal=0;

      for (int i = 0; i < 5; i++)
      {

      String tiposVendas = JOptionPane.showInputDialog("Tipo de Venda \nV = Venda a Vista \n P = Venda a Prazo");
      vendas = Double.valueOf(JOptionPane.showInputDialog(tiposVendas));
      // Netbeans sugeriu e eu aceitei usar .equals.

      if (("V".equals(tiposVendas))|| ("v".equals(tiposVendas)))
      {
      valorVendasV+=vendas;
      }
      if (("P".equals(tiposVendas))||("p".equals(tiposVendas)))
      {
      valorVendasP = vendas/3;
      valorVendasP += vendas;
      }
      }
      valorTotal = (valorVendasV+valorVendasP);
      JOptionPane.showMessageDialog(null, "Vendas a Vista = "+valorVendasV + "\nVendas a Prazo = "+valorVendasP + "\nTotal de Vendas = "+valorTotal,"Compras",JOptionPane.INFORMATION_MESSAGE);
      }
      }