
PedroCunha
Membros-
Total de itens
282 -
Registro em
-
Última visita
Tudo que PedroCunha postou
-
Tente fazer da seguinte maneira no seu for : for ( i = 0; i < 100; i++) { if ( texto[i] == letra ) { pos = i; break; } } return pos; Não testei esse código, então ele pode estar errado. Duas dicas: 1ª -> Como você já tem o tamanho do vetor de char definido (100), use ele no seu for loop , da forma como eu usei; 2ª -> Ao usarmos o if , temos que usar dois sinais de igual (==) e não 1. Att., Pedro
-
Duas coisas: 1ª -> Nas condicionais if , utilizamos dois sinais de igual ( == ) e não um só; 2ª -> As suas duas condicionais são iguais. Dê uma olhada nisso. Att., Pedro.
-
Ajuda em C :> Criptografando e descriptografando
pergunta respondeu ao comum05 de PedroCunha em C, C++
Procure no google sobre a função rand() . Ela vai te ajudar com isso, :D. Att., Pedro -
Programa editado. Agora ele mostra os valores do sorteio em ordem crescente de valor.
-
Então Mateus..tenho a mesma dúvida que você. Até hoje não descobrir como apagar post, ¬¬.
-
Acho que uma opção para você, como linguagem orientada a objetos seria C++, pois você já tem um passado com C. Att., Pedro
-
Funcionou? Qual foi o resultado que você obteve?
-
Só uma observação. Se você utilizar essa fórmula, sempre vai obter 0 como resultado, pois o valor de s é sempre menor ou igual que o maior valor digitado pelo usuário. Essa fórmula também é desnecessária, visto que a fórmula da área do triângulo retângulo é (base * altura)/2 , que nesse caso é (catetoA * catetoB)/2. Att., Pedro.
-
Mateus, só uma dica. Edite seus posts invés de postar novos para evitar encher o tópico.
-
Você poderia usar a struct. Ex.: struct VariaveisGlobais { int Idades; string Nomes, sexos; }; VariaveisGlobais GlobaisObj; Att., Pedro
-
[Novato] O que há de errado com as minhas funções?
pergunta respondeu ao RumblefishX de PedroCunha em C, C++
Só complementando a resposta do Rodrigo, a declaração char[4] = {"Joao"}; ocorre porque são 4 chars, ou seja, um vetor de chars, que é basicamente uma string. Logo, não tem 4 elementos, e sim 4 letras. -
[Novato] O que há de errado com as minhas funções?
pergunta respondeu ao RumblefishX de PedroCunha em C, C++
Você declarou nome como nome[4] porque o nome é João na primeira função. Mas e depois? Olhe a sua segunda função. Att., Pedro -
Helena, não sei se você já resolveu seu problema, mas de qualquer forma fiz o código para esse programa. Funciona corretamente. Vou postar o código aqui no fórum: #include <cstdlib> #include <iostream> #include <locale> using namespace std; int NumerosSorteados[15] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; int MaiorOcorrencia[25] = {2, 11, 1, 19, 15, 23, 13, 4, 25, 12, 9, 21, 22, 24,14, 17, 20, 3, 6, 10, 5, 7, 18, 16, 8}; int NumerosAleatorios[25] = {1, 2, 3, 4, 5, 6, 7, 8 ,9, 10, 11, 12, 13, 14, 15, 16, 17, 18 ,19, 20, 21, 22, 23, 24, 25}; struct VariaveisGlobais { int NumerosdoUsuario[8]; int NumerosIguais[8]; int NumerosFinais[15]; }; VariaveisGlobais GlobalObj; void Continuar(); int Sair(); void Pergunta(); void ChecarNumerosdoUsuario (); void Pergunta() { int i = 0; int j = 0; cout << "Entre 8 números entre 1 e 25, diferentes entre si.\n" << endl; while (i < 8) { cin >> GlobalObj.NumerosdoUsuario[i]; for (j = 0; j < i; j++){ if(GlobalObj.NumerosdoUsuario[i] == GlobalObj.NumerosdoUsuario[j]) { cin.sync(); cout << "\nVoce já digitou esse numero. Digite um numero diferente: " << endl; break; } } if(j == i) { if(GlobalObj.NumerosdoUsuario[i] < 1 || GlobalObj.NumerosdoUsuario[i] > 25) { cout << "\nNumero invalido. Digite novamente: " << endl; } else { for (j = 0; j < 15; j++) { if(GlobalObj.NumerosdoUsuario[i] == NumerosSorteados[j]) break; } if(j < 15) { i++; } else { cout << "\nNúmero não está no vetor. Tente denovo." << endl; cout << "\n"; } } } } ChecarNumerosdoUsuario(); } void ChecarNumerosdoUsuario() { int temp = 0; int temp2 = 0; for (int l = 0; l < 8; l++) { GlobalObj.NumerosFinais[l] = GlobalObj.NumerosdoUsuario[l]; } for (int m = 8; m < 13; m++) { srand(time(0)); int s = m + (rand() % (25-m)); temp = MaiorOcorrencia[m]; MaiorOcorrencia[m] = MaiorOcorrencia[s]; temp = MaiorOcorrencia[m]; GlobalObj.NumerosFinais[m] = temp; for (int a = 0; a < m; a++) { if (GlobalObj.NumerosdoUsuario[a] == GlobalObj.NumerosFinais[m]) { GlobalObj.NumerosFinais[m] = 0; m--; } } for (int b = 0; b < m; b++) { if ( GlobalObj.NumerosFinais[b] == GlobalObj.NumerosFinais[m]) { GlobalObj.NumerosFinais[m] = 0; m--; } } } for (int n = 13; n < 15; n++) { srand(time(0)); int t = n + (rand() % (25-n)); temp2 = NumerosAleatorios[n]; NumerosAleatorios[n] = NumerosAleatorios[t]; temp2 = NumerosAleatorios[n]; GlobalObj.NumerosFinais[n] = temp2; for (int a = 0; a < n; a++) { if (GlobalObj.NumerosdoUsuario[a] == GlobalObj.NumerosFinais[n]) { GlobalObj.NumerosFinais[n] = 0; n--; } } for (int b = 0; b < n; b++) { if ( GlobalObj.NumerosFinais[b] == GlobalObj.NumerosFinais[n]) { GlobalObj.NumerosFinais[n] = 0; n--; } } } cout << "\nEsses são os números do seu sorteio:\n" << endl; cout << "\n"; cin.sync(); for (int n = 0; n < 14; n++) { for (int o = 0; o < 14; o++) { if ( GlobalObj.NumerosFinais[o] > GlobalObj.NumerosFinais[o+1]) { int temp = GlobalObj.NumerosFinais[o]; GlobalObj.NumerosFinais[o] = GlobalObj.NumerosFinais[o+1]; GlobalObj.NumerosFinais[o+1] = temp; } } } for (int p = 0; p < 15; p++) { cout << GlobalObj.NumerosFinais[p] << " "; } cout << "\n\n"; Sair(); } void Continuar()// Função utilizada para saber se o usuário deseja continuar usando o programa { char Opcao = ''; cout << "Deseja continuar usando o programa?(S/N)\n" << endl; cin >> Opcao; cout << "\n\n" << endl; cin.sync(); switch(Opcao) { case 'S': { system("cls"); Pergunta(); break; } case 's': { system("cls"); Pergunta(); break; } case 'N': { Sair(); break; } case 'n': { Sair(); break; } default : { Sair(); break; } } } int Sair()// Função usada para fechar o programa. Criei ela separadamente por questões de organização e praticidade para o switch. { cout << "Adeus!" << endl; cin.get(); return 0; } int main() { setlocale(LC_ALL, "Portuguese"); Pergunta(); return 0; } Att., Pedro
-
Às ordens.
-
Sim. Basta abrir o arquivo .txt para leitura no seu programa.
-
Sim. Uso o Code::Blocks há algum tempo já, e acho ela ótima como IDE. Se tiver alguma dúvida, é só postar que irei te ajudar, :D.
-
Bom, mesmo que você transformasse em inteiros, eventualmente você precisaria usar alguma condicional. Quanto ao que você falou das datas, não entendi da forma que você escreveu. Att., Pedro.
-
Olha amigo, como só sei C++, fiz o código em C++, porém, pelo código você pode ver como a lógica funciona: #include <cstdlib> #include <iostream> #include <locale> using namespace std; struct VariaveisGlobais//Struct utilizada para armazenar variáveis globais. { int Numero, NumeroMaximo; }; VariaveisGlobais GlobalObj; void Pergunta();// Protótipo das funções; int Tabuada(int, int);// Protótipo das funções; void Continuar();// Protótipo das funções; int Sair();// Protótipo das funções; void Pergunta()// Função utilizada para perguntar o número que será utilizada na tabuada { cout << "Digite o número que você deseja saber a tabuada [ -1 para sair] \n" << endl; cin >> GlobalObj.Numero; if (GlobalObj.Numero == -1) { cout << "\n"; Sair(); } else { cout << "\nDigite até que número você quer saber a tabuada\n" << endl; cin >> GlobalObj.NumeroMaximo; if (GlobalObj.NumeroMaximo == -1) { cout << "\n"; Sair(); } else { cout << "\n\n"; cin.sync(); Tabuada(GlobalObj.Numero, GlobalObj.NumeroMaximo); } } } int Tabuada (int Numero, int NumeroMaximo) //Função utilizada para calcular a tabuada até n x x { int n = 0; cout << "--------------TABUADAS DE " << GlobalObj.Numero << "--------------" << endl; cout << "\n"; cin.sync(); do { cout << GlobalObj.Numero * n << endl; n++; } while (n <= GlobalObj.NumeroMaximo); cout << "\n"; cout << "--------------TABUADAS DE " << GlobalObj.Numero << "--------------" << "\n\n"; Continuar(); } void Continuar()// Função utilizada para saber se o usuário deseja continuar usando o programa { char Opcao = ''; cout << "Deseja continuar usando o programa?(S/N)\n" << endl; cin >> Opcao; cout << "\n\n" << endl; cin.sync(); switch(Opcao) { case 'S': { system("cls"); Pergunta(); break; } case 's': { system("cls"); Pergunta(); break; } case 'N': { Sair(); break; } case 'n': { Sair(); break; } default : { Sair(); break; } } } int Sair()// Função usada para fechar o programa. Criei ela separadamente por questões de organização e praticidade para o switch. { cout << "Adeus!" << endl; cin.get(); return 0; } int main() { setlocale(LC_ALL, "Portuguese");//Função para uso de acentos Pergunta(); return 0; } A lógica é simples: basta pegar o número que o usuário digitar e ir multiplicando por n, e após cada multiplicação aumentar o valor de n em 1 (n++), até atingir um limite que você estipular. Qualquer dúvida estou à disposição. Att., Pedro.
-
Você pode dividir a horário em 3 perguntas, e depois no programa, incrementar o valor resultante da terceira pergunta em 1 e depois jogar na tela da seguinte forma: cout << numHoras << ":" << numMinutos << ":" << numSegundos << endl; Att., Pedro. Edit: Acho que você vai precisar de um if, para o caso dos segundos serem iguais à 60, pois nesse caso você vai precisar zerar a contagem e aumentar o minuto em 1. Edit2: Estava atoa em casa e resolvi fazer o código. Funciona perfeitamente, mas como te disse, alguns ifs são necessários. #include <cstdlib> #include <iostream> using namespace std; struct VariaveisGlobais // Aqui usei uma struct para segurar os valores das Horas, Minutos e Segundos, pois além de ser mais organizado, é mais prático. { int Horas, Minutos, Segundos; }; VariaveisGlobais HorariosObj; void Pergunta();// Protótipo das funções. void Horarios(int, int, int);// Protótipo das funções. int Sair();// Protótipo das funções. void Pergunta() { do { cout << "Entre o valor das horas:" << endl; cin >> HorariosObj.Horas; cout << "\n"; cin.sync(); } while (HorariosObj.Horas > 24); // Coloquei esse while para o caso do usuário colocar um valor maior que 24 para o valor das horas. cout << "Entre o valor dos minutos:" << endl; cin >> HorariosObj.Minutos; cout << "\n"; cin.sync(); cout << "Entre o valor dos segundos" << endl; cin >> HorariosObj.Segundos; cout << "\n"; cin.sync(); Horarios(HorariosObj.Horas, HorariosObj.Minutos, HorariosObj.Segundos);// Aqui chamo a função que fará os cálculos necessários e mostrará os valores. } void Horarios (int Horas, int Minutos, int Segundos) { char Opcao; if (HorariosObj.Minutos > 60) { HorariosObj.Horas += HorariosObj.Minutos / 60; // No caso dos minutos serem maiores que 60, aumentaremos o valor das horas em: ValorMinutos/60. HorariosObj.Minutos = HorariosObj.Minutos % 60;// No caso dos minutos serem maiores que 60, // o seu novo valor será o resto da divisão (%) do valor dos minutos por 60. if (HorariosObj.Horas > 24) { HorariosObj.Horas -= 24;// No caso de o resultado das horas ser maior que 24, seu novo valor será: ValorAntigo - 24. } } if (HorariosObj.Segundos > 60) { HorariosObj.Minutos += HorariosObj.Segundos/60;// No caso dos segundos serem maiores que 60, aumentaremos o valor dos minutos em: ValorSegundos/60. if (HorariosObj.Minutos > 60)// Usei esse if no caso do usuário usar um valor igual ou maior que 3600 para os segundos, ou seja, 1 hora. { HorariosObj.Horas += HorariosObj.Minutos/60; if (HorariosObj.Horas > 24) { HorariosObj.Horas -= 24; } HorariosObj.Minutos = HorariosObj.Minutos % 60; HorariosObj.Segundos = HorariosObj.Segundos % 60;// No caso dos segundos serem maiores que 60, } //o seu novo valor será o resto da divisão (%) do valor dos segundos por 60. } cout << HorariosObj.Horas << ":" << HorariosObj.Minutos << ":" << HorariosObj.Segundos << endl;// Aqui eu jogo os valores obtidos na tela, usando os cout << "\n"; // dois pontos (:) para separá-los, como já é padrão. cout << "Quer continuar a usar o programa? (S/N)" << endl; cin >> Opcao; cout << "\n"; cin.sync(); switch (Opcao) // Aqui usei um switch bem simples para dar ao usuário a chance de rodar o programa novamente. { case 'S': { Pergunta(); break; } case 's': { Pergunta(); break; } case 'N': { Sair(); break; } case 'n': { Sair(); break; } default: { Sair(); break;} } } int Sair()// Função usada para fechar o programa. Criei ela separadamente por questões de organização e praticidade para o switch. { cout << "Adeus!" << endl; cin.get(); return 0; } int main() { Pergunta();//Aqui chamo a função que fará o programa começar seu loop, dentro de main. return 0; } Att., Pedro
-
Programa - Mostrando como usar vetores, arquivos, strings, etc.
pergunta respondeu ao PedroCunha de PedroCunha em Tutoriais & Dicas - C, C++
CÓDIGO FOI ATUALIZADO -
Bom, como não sabemos o número de leituras mas temos duas condições para que terminemos de perguntar os nomes e salários, podemos usar um while. (Obs.: Farei o código em C++, pois não conheço C muito bem, só para te mostrar a lógica, ok? Fiz o máximo de coisas em C) #include <iostream> #include <cstring> #include <locale> #include <stdio.h> #include <cstdlib> using namespace std; float Salarios [100]; char Nomes[100][50]; int i = 1; void NomeseSalarios(float, char); void MostrarFuncionarioseSalarios(); void MostrarSalariosMaioresQue5000(); void NomeseSalarios(float Salarios[100], char Nomes[100][50]) { cout << "OBS.: Para mostrar a lista de funcionários e seus salários e os funcionários\n" " que recebem mais que R$ 5000 digite 'Enter' no nome do usuário ou 0 no valor do salário" << "\n" << endl; do { cout << "\n"; cin.sync(); cout << "Qual é o nome do funcionário?\n" << endl; cin.get(Nomes[i-1],50); cout << "\n"; cin.sync(); cout << "Qual é o salário do funcionário?\n" << endl; cin >> Salarios[i-1]; if (strncmp(Nomes[i-1], "Enter", 6) == 0 || Salarios[i-1] == 0) { cout << "\n"; MostrarFuncionarioseSalarios(); } else { cout << "\n"; cin.sync(); i++; } } while (i <= 100); MostrarFuncionarioseSalarios(); } void MostrarFuncionarioseSalarios() { int j; cout << "\n"; cout << "Os funcionários e seus salários são:\n" << endl; cin.sync(); for (j = 0; j <= i-1; j++) { if (strncmp(Nomes[j], "Enter", 6) == 0 || Salarios[j] == 0) { } else { cout << Nomes[j] << " - " << Salarios[j] << endl; } } MostrarSalariosMaioresQue5000(); } void MostrarSalariosMaioresQue5000() { int k; cout << "\n"; cout << "Os funcionários que tem salários maiores que R$5000 são:\n" << endl; cin.sync(); for(k = 0; k <= i; k++) { if (Salarios[k] > 5000) { cout << Nomes[k] << endl; } } cout << "\n\n"; cout << "Até mais!" << endl; exit(0); } int main() { setlocale(LC_ALL, "Portuguese"); NomeseSalarios(Salarios, Nomes); return 0; } Olha, para ir para as funções de calcular o usuário pode digitar "Enter" como nome ou 0 como valor do salário. Qualquer dúvida sobre o código é só perguntar. P.S.: Desculpe a demora, é que por não estar usando as strings do C++ tive que dar uma pesquisada.
-
Você pode fazer um array e usando um for loop fazer com que o índice (i) seja o número de linha. Logo, vetor[0] seria o número de linhas de uma, vetor[1] seria o número de linhas de outra, etc.
-
Bom, se para uma específica da certo, faça de todas separadamente e depois some os valores.
-
[URGENTE #C] Ajude-me nesse exercicio super dificel.
pergunta respondeu ao Progamador - Joao de PedroCunha em C, C++
Qual é a sua dúvida em particular? EDIT: Amigo, resolvi esse exercício, mas resolvi em C++. Se quiser, posto o código aqui.