
super slot
Membros-
Total de itens
9 -
Registro em
-
Última visita
Tudo que super slot postou
-
Boa noite pessoal sou iniciante em C++ e estou tentando resolver um trabalho que o prof passou para fazer. tenho que explicar o que o programa faz e traduzir para o portugol, mas estou com duvidas em alguns pontos e estou precisando da ajuda de todos. segue o codigo: class Calc{ public: qint32 cont,j,valorTemp,MaxResult; // string declaraçoes vector<bool> valorPreenchido; QString temp; qint8 euristica,qtdCartas; Calc(qint8 serie,qint8 nivel,Tabuleiro ** tabuleiro){ cont = 0; euristicaDeGeracaoDeFormula(serie,nivel); srand ( (unsigned)time(0) ); *tabuleiro = new Tabuleiro(1,qtdCartas); gerarFormulasPai(&(*tabuleiro)); } ~Calc(){} void gerarFormulasPai(Tabuleiro ** tabuleiro){ \\ duvida não sei o que faz gerarResultados(&(*tabuleiro)); qint8 caso; for(int i = 0; i < (*tabuleiro)->getQtdCartas(); i++){ switch(euristica){ case 1: gerarFormulaSoma(&(*tabuleiro),i); break; case 2: caso = rand() % 2;// acho que a função rand divide as duasformulas para poder fazer o sorteio aleatorio e armazenar na string qint8 euristica. switch(caso){ case 0: gerarFormulaSoma(&(*tabuleiro),i);break; case 1: gerarFormulaSub(&(*tabuleiro),i);break; } case 3: caso = rand() % 4; // acho que a função rand divide as quatro formulas para poder fazer o sorteio aleatorio e armazenar na string qint8 euristica switch(caso){ case 0: gerarFormulaSoma(&(*tabuleiro),i);break; case 1: gerarFormulaSub(&(*tabuleiro),i);break; case 2: gerarFormulaMult(&(*tabuleiro),i);break; case 3: gerarFormulaDiv(&(*tabuleiro),i);break; } break; case 4: caso = rand() % 5; // a função rand divide as cinco formulas para poder fazer o sorteio aleatorio e armazenar na string qint8 euristica. switch(caso){ case 0: gerarFormulaSoma(&(*tabuleiro),i);break; case 1: gerarFormulaSub(&(*tabuleiro),i);break; case 2: gerarFormulaMult(&(*tabuleiro),i);break; case 3: gerarFormulaDiv(&(*tabuleiro),i);break; case 4: gerarFormulaPercent(&(*tabuleiro),i);break; } break; } } void gerarResultados(Tabuleiro ** tabuleiro){ \\ duvida não sei o que faz qint8 i; valorPreenchido = vector<bool>(MaxResult,false); while(cont < (*tabuleiro)->getQtdCartas()/2){ // acho que aqui preenche de par em par i = rand() % (*tabuleiro)->getQtdCartas(); if( (*tabuleiro)->getResultadoCarta(i) == INT_MIN){ valorTemp = rand() % MaxResult; while(valorPreenchido.at(valorTemp) == true){valorTemp = rand() % MaxResult;} valorPreenchido.at(valorTemp) = true; (*tabuleiro)->setResultadoCarta(i, valorTemp); j = rand() % (*tabuleiro)->getQtdCartas(); while((*tabuleiro)->getResultadoCarta(j) != INT_MIN ){ j = rand() % (*tabuleiro)->getQtdCartas(); } (*tabuleiro)->setResultadoCarta(j, valorTemp); cont++; } } } void gerarFormulaSoma(Tabuleiro ** tabuleiro, qint8 i){ \\ duvida não sei o que faz if ((*tabuleiro)->getResultadoCarta(i) > 0) valorTemp = rand() % (*tabuleiro)->getResultadoCarta(i); else valorTemp = 0; temp = QString::number(valorTemp) + " + " + QString::number((*tabuleiro)->getResultadoCarta(i) - valorTemp) + " = "; (*tabuleiro)->setFormulaCarta(i,temp); } void gerarFormulaDiv(Tabuleiro ** tabuleiro, qint8 i){ \\ duvida não sei o que faz vector<qint32> quocientes; for(j = 1; j < (*tabuleiro)->getResultadoCarta(i)+1; j++){ if( (*tabuleiro)->getResultadoCarta(i) % j == 0) quocientes.push_back(j); } if(!quocientes.empty()){ valorTemp = rand() % quocientes.size(); temp = QString::number((*tabuleiro)->getResultadoCarta(i) * quocientes[valorTemp]) + " / " + QString::number(quocientes[valorTemp]) + " = "; } else temp = "0 * 0 = "; (*tabuleiro)->setFormulaCarta(i,temp); quocientes.clear(); } void gerarFormulaPercent(Tabuleiro ** tabuleiro, qint8 i){ \\ duvida não sei o que faz if ((*tabuleiro)->getResultadoCarta(i) > 0) valorTemp = rand() % (*tabuleiro)->getResultadoCarta(i); else valorTemp = 0; temp = QString::number(valorTemp) + " + " + QString::number((*tabuleiro)->getResultadoCarta(i) - valorTemp) + " = "; (*tabuleiro)->setFormulaCarta(i,temp); } void euristicaDeGeracaoDeFormula(qint8 serie, qint8 nivel){ // acho que pega os dados da euristica qint 8 e distribui nestes 7 niveis de dificuldades do jogo 1 switch(serie){ case 1: switch(nivel){ case 1: case 2: euristica = 1; qtdCartas = 4;MaxResult = 5; break; case 3: case 4: euristica = 2; qtdCartas = 8;MaxResult = 5; break; case 5: case 6: case 7: euristica = 2; qtdCartas = 16;MaxResult = 10; break; } case 2: switch(nivel){ // acho que pega os dados da euristica qint 8 e distribui nestes 7 niveis de dificuldades do jogo 2 case 1: case 2: euristica = 5; qtdCartas = 4;MaxResult = 100; break; case 3: case 4: euristica = 5; qtdCartas = 8;MaxResult = 200; break; case 5: case 6: case 7: euristica = 5; qtdCartas = 16;MaxResult = 500; break; } break; case 3: switch(nivel){ // acho que pega os dados da euristica qint 8 e distribui nestes 7 niveis de dificuldades do jogo 3 case 1: case 2: euristica = 5; qtdCartas = 4;MaxResult = 200; break; case 3: case 4: euristica = 6; qtdCartas = 8;MaxResult = 100; break; case 5: case 6: case 7: euristica = 6; qtdCartas = 16;MaxResult = 200; break; } break; } } } } };
-
Mil desculpas mas acho que houve um erro na hora de eu postar as imagens do meu pdf. mas o problema é este : 1- Escreva um programa que leia APENAS DOIS valores inteiros positivos x e n (n pode ser zero), e escrever o valor de X elevado a N ATENÇÃO: Para calcular x elevado a N o programa deve calcular o produto X * X * X * X * X * X ... * X (n vezes); OU SEJA, você NÃO PODE se utilizar de funções de exponenciação da biblioteca matemática. ATENÇÃO: Para valores não permitidos (x ≤ 0 ou n < 0), o programa termina sem nada executar. ENTRADA 10 e 0 3 e 2 2 e 3 -1 e 10 SAIDA 1 9 9 <nenhuma saida> 2° problema Escreva um programa que leia APENAS UM VALOR INTEIRO POSITIVO (utilizando “%d”), e escreva o número ao contrário, conforme exemplo abaixo. ATENÇÃO: NÃO UTILIZAR STRINGS – todas as leituras e escritas deverão utilizar “%d”. ATENÇÃO: Para um valor não positivo digitado, o programa termina sem nada executar. Exemplos de QUATRO execuções diferentes do programa: ENTRADA 123 1023 007 0 SAIDA 321 3201 7 <nenhuma saida> 3º problema Escreva um programa que leia APENAS UM valor inteiro positivo n, e imprima várias linhas formando um quadrado cujos lados são compostos por n caracteres ′*′, seguindo o modelo dado no exemplo abaixo. ATENÇÃO: Para um valor não positivo digitado, o programa termina sem nada executar. Exemplos de DUAS execuções diferentes do programa: ENTRADA 4 -2 SAIDA um quadrado formado por * <nenhuma saida>
-
Pessoal estou precisando muito resolver estes problemas, pois estou tendo dificuldades e não tenho nem ideia de por onde começar:
-
Dúvida com algoritmo de reserva de passagens
pergunta respondeu ao super slot de super slot em Lógica de Programação
Não eu gostaria de passar para um sistema de vetores utilizando o sistema de contadores com o sistema de repetição do FimEnquanto mas estou em duvida de como passar. -
Olá pessoal estou com duvida em resolver este problema abaixo, eu tenho a resposta dele mas em linguagem pascal, como eu passo ele para o portugol estou com duvida se alguém puder me ajudar eu agradeço. Escrever um algoritmo que faça reserva de passagens aéreas de uma companhia. Além da leitura do número dos vôos e quantidade de lugares disponíveis, ler vários pedidos de reserva, constituídos do número da carteira de identidade do cliente e do número do vôo desejado. Para cada cliente, verificar se há disponibilidade no vôo desejado. Em caso afirmativo, imprimir o número da identidade do cliente, e o número do vôo, atualizando o número de lugares disponíveis. Caso contrário, avisar ao cliente da inexistência de lugares. Indicando o fim dos pedidos de reserva, existe um passageiro cujo número da carteira de identidade e 9999. Considere fixo e igual a 40 o número de vôos da companhia. Minha resposta em pascal. program Matricula; uses crt; const NVOOS=40; var Voos, Lugares : array[1..NVOOS] of integer; NVoo, {numero do voo desejado} Cliente, {codigo do cliente} nv : integer; begin clrscr; writeln(‘AeroCefet: Programa de Reservas Aereas’); {Leitura dos códigos dos vôos e respectivas qtde de lugares} for nv:=1 to NVOOS do begin write(‘Numero do voo: ‘); readln(Voos[nv]); writeln; write(‘Qtde de lugares do voo ’, Voos[nv], ‘? ‘); readln(Lugares[nv]); end; writeln;writeln(‘Voos configurados! Tecle algo para continuar!’); clrscr; {Leitura do código do (primeiro) cliente e voo desejado} write(‘Informe o codigo do cliente: ‘); readln(Cliente); writeln;write(‘Informe o voo desejado: ‘); readln(NVoo); {Enquanto não digitar 9999 como código de cliente....} while Cliente <> 9999 do begin {Primeiro verifica a existência do voo} nv := 1; while (nv <= 37) AND (Nvoo <> Voos[nv]) do nv := nv + 1; if Nvoo = Voos[nv] {O laco parou porque achou o voo?} then {=> SIM} begin {Verifica a existência de lugar} if Lugares[nv] > 0 {...Tem lugar neste voo?} then begin {...sim!} Lugares[nv] := Lugares[nv] – 1; {menos um lugar livre!} writeln(‘Cliente: ‘, Cliente, ‘ voo: ‘, Nvoo, ‘ CONFIRMADO!’); end else {...não!} writeln(‘Cliente: ‘, Cliente, ‘ voo: ‘, Nvoo, ‘ LOTADO!’); end else {=> NÃO} writeln(‘Cliente: ‘, Cliente, ‘ Voo: ‘, Nvoo, ‘ INEXISTENTE!’); {Leitura do próximo cliente e voo desejado} writeln; writeln; write(‘Informe o codigo do cliente: ‘); readln(Cliente); writeln; write(‘Informe o voo desejado: ‘); readln(NVoo); end; {fim do while} end. como eu passo ele para o portugol?
-
(Resolvido) algoritmos para tirar espacos em branco
pergunta respondeu ao super slot de super slot em Lógica de Programação
Resolvido vejam a resposta: I=1 J=1 Enquanto ( I <=N) faça Se( P = “ “ ) então; Achou ----- 0; Enquanto ( I <=N e Achou = 0 ) faça Se ( P < > “ “ ) então Achou ----- 1; Senão I ------ I +1; FimSe; FimEnquanto; Senão S [J] P ; I ------ I +1; J ------ J +1; FimSe; FimEnquanto -
(Resolvido) algoritmos para tirar espacos em branco
pergunta respondeu ao super slot de super slot em Lógica de Programação
1 H 2 O 3 J 4 E 5 6 7 8 F 9 U 10 I 11 12 13 A 14 15 16 17 A 18 U 19 L 20 A quero tirar os espaços em branco 6,7.12,15 e 16 e não tenho ideia de como começa este algoritmo pois é um trabalho valendo ponto e não tenho ideia de como ele começa. Resolvido vejam a resposta: I=1 J=1 Enquanto ( I <=N) faça Se( P = “ “ ) então; Achou ----- 0; Enquanto ( I <=N e Achou = 0 ) faça Se ( P < > “ “ ) então Achou ----- 1; Senão I ------ I +1; FimSe; FimEnquanto; Senão S [J] P ; I ------ I +1; J ------ J +1; FimSe; FimEnquanto -
(Resolvido) algoritmos para tirar espacos em branco
pergunta respondeu ao super slot de super slot em Lógica de Programação
desculpem tentei colocar uma tabela e ela sai desconfigurada fica mas ou menos assim a frase: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 H O J E F U I A A U L A Entenderam tenho que tirar os espaços em branco 6,7.12,13, e 16 como eu faço isso em forma de vetor? espero que alguém me ajude. -
(Resolvido) algoritmos para tirar espacos em branco
uma questão postou super slot Lógica de Programação
Boa tarde pessoal estou precisando da ajuda de voces para resolver este algoritmo, A introdução é a seguinte: faça um algoritmo que leia uma frase com 20 caracteres e tire os espaços em branco desta frase. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 H O J E F U I A A U L A Entenderam tenho que tirar os espaços em branco 6,7.12,15 e 16 como eu faço isso em forma de vetor? espero que alguém me ajude.