Ir para conteúdo
Fórum Script Brasil

PedroCunha

Membros
  • Total de itens

    282
  • Registro em

  • Última visita

Tudo que PedroCunha postou

  1. 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
  2. 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.
  3. Procure no google sobre a função rand() . Ela vai te ajudar com isso, :D. Att., Pedro
  4. Programa editado. Agora ele mostra os valores do sorteio em ordem crescente de valor.
  5. Então Mateus..tenho a mesma dúvida que você. Até hoje não descobrir como apagar post, ¬¬.
  6. Acho que uma opção para você, como linguagem orientada a objetos seria C++, pois você já tem um passado com C. Att., Pedro
  7. PedroCunha

    escrever formula em c

    Funcionou? Qual foi o resultado que você obteve?
  8. PedroCunha

    escrever formula em c

    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.
  9. Mateus, só uma dica. Edite seus posts invés de postar novos para evitar encher o tópico.
  10. PedroCunha

    estrutura de dados

    Você poderia usar a struct. Ex.: struct VariaveisGlobais { int Idades; string Nomes, sexos; }; VariaveisGlobais GlobaisObj; Att., Pedro
  11. 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.
  12. 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
  13. 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
  14. PedroCunha

    Manipulação de txt

    Sim. Basta abrir o arquivo .txt para leitura no seu programa.
  15. 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.
  16. PedroCunha

    Algoritmo horário.

    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.
  17. PedroCunha

    tabuada

    Fico feliz em ajudar, :D.
  18. PedroCunha

    tabuada

    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.
  19. PedroCunha

    Algoritmo horário.

    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
  20. PedroCunha

    Ajuda!

    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.
  21. 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.
  22. Bom, se para uma específica da certo, faça de todas separadamente e depois some os valores.
  23. Qual é a sua dúvida em particular? EDIT: Amigo, resolvi esse exercício, mas resolvi em C++. Se quiser, posto o código aqui.
×
×
  • Criar Novo...