Ir para conteúdo
Fórum Script Brasil

RonaldoRG

Membros
  • Total de itens

    259
  • Registro em

  • Última visita

Tudo que RonaldoRG postou

  1. Só duas coisas: 1- o polinômio presultante tá com o tamanho 202, mas na verdade ele tem que ter 101*101 = 10201 posições pois na multiplicação de polinômios geralmente o grau do resultante é o produto dos graus dos operandos. 2- O for do case 1 do switch está incompleto. E as operações dos polinômios estão erradas. Você tem que fazer as operações como você colocou no seu post. Primeiro você tem que ler o grau do polinômio e depois ler os dois polinômios e por fim fazer as operações. Pense que cada coeficiente do polinômio é uma posição do vetor: Ex. 3x² + 4x - 5 polinomio[0]= -5; polinomio[1]= 4; polinomio[2]= 3; Depois posta o código. Abraço.
  2. Você cria uma outra matriz com 21 linhas e copia os elementos da primeira para a segunda. Outra maneira é criar uma matriz usando alocação dinâmica de memória.
  3. Procurando no Google por "porta paralela C++" (sem aspas) encontrei vários sites sobre isso. Vai alguns: http://paginas.ucpel.tche.br/~rafaelte/portap.html http://www.rogercom.com/pparalela/introducao.htm http://www.mrshp.hpg.ig.com.br/rob/paralela.htm
  4. Acho que você não tem muita noção sobre a linguagem C. O mais difícil você já tem que é o algoritmo, agora só falta passar para C.
  5. Pra mostrar o desconto é só mostrar o valor da variável desconto: desconto=(salario->sal_bruto*0.05); Agora não entendi essa parte: printf ("\nSalario Bruto IR: %.2f",salario->sal_bruto); printf ("\nSalario LIQUIDO: %.2f",salario->sal_bruto); Você colocou a mesma variável pra mostrar o salário bruto e líquido, então não tá mostrando o mesmo valor? Não teria que ter uma variável salario_liquido pra guardar o salário liquido? if (salario->sal_bruto>500 && salario->sal_bruto<=1000) { desconto=(salario->sal_bruto*0.05); salario_liquido=(salario->sal_bruto-desconto); }
  6. Tem a engine de física ODE, onde você cria os corpos define sua massa, geometria, posição, velocidade, define a gravidade do mundo e ai ela faz o restante. Detecta colisões e outras coisas. Agora ela não tem interface gráfica, portanto você vai precisar usar o ODE juntamente com uma, por exemplo Opengl. Vale apena você estudar sobre ela, embora existam outras. Vai ai o link dá página do ODE: http://www.ode.org Abraço.
  7. Posta seu código pra a gente ver e poder te ajudar melhor. Olha, eu já criei arquivos txt usando fprintf e consigui abrir com bloco de notas.
  8. E ele abriu dois arquivos diferentes mas usou o mesmo ponteiro "aed". Você tem que declarar dois ponteiros FILE* diferentes, um pra cada arquivo: ... FILE *aed, *aed2; aed = fopen("c://expressoes.txt", "r"); if(aed == NULL) { printf("Falha ao abrir o arquivo!"); } aed2 = fopen("c://resultados.txt", "w"); if(aed2 == NULL) { printf("Falha ao abrir o arquivo!"); } float n1 = 0.0, n2 = 0.0, n3 = 0.0; char c1, c2, nome; int expressao1; fscanf(aed,"%f%c%df%c%f", &n1, &c1, &n2, &c2, &n3); fprintf(aed2,"%f%c%df%c%f", n1, c1, n2, c2, n3); fclose(aed); fclose(aed2); system("pause"); return 0; Vê se dá certo, eu não compilei. Abraço.
  9. Como eu disse a ele essa função recursiva não é necessária. Se o objetivo do programa é mostrar o segundo e quarto maior valor da lista, basta ele usar a parte do código dele que organiza os valores em ordem crescente e mostrar a segunda e quarta posição do vetor. Só isso. Bom se escolher continuar usando essas funções então posta o erro que o compilador mostra que vamos tentar te ajudar. Abraço.
  10. O problema é que a sua função recursiva está retornando o valor mas você não está armazenando ele em lugar nenhum. Tinha que fazer pelo menos assim: int seg_maior(int n,int vet[]){ int a; //Descobrindo o segundo maior valor if (n==4) return vet[3]; else a = seg_maior(n-1,vet); return a; } Agora não entendi a utilidade dessa função recursiva. Ela vai retornar simplesmente o valor de vet[3]. Mas testa agora se dá certo e dá um retorno. Abraço.
  11. No seu código você tem uma parte que põe em ordem crescente os números do vetor: ... // Colocando em ordem crescente os numeros(do menor para o maior) for(i=0;i<5;i++){ for(j=i+1;j<5;j++) if (vet[i]>vet[j]){ aux=vet[i]; vet[j]=vet[i]; vet[j]=aux; } } ... Então se o vetor já sai na ordem crescente, o segundo maior valor não seria vet[3] e o quarto maior valor não seria vet[1]?
  12. Deixa eu ver se entendi: você tá fazendo um programa de apostas, e que dado um número sorteado o programa deve mostrar quem ganhou? Se for assim você faz uma função semelhante aquela leArquivo(), que leia o arquivo e guarde cada aposta lida em uma estrutura temporária, e com um for compare cada número da aposta com o número sorteado: ... int bingo = 1; //Enquanto não for final de arquivo while(!feof(ptArquivo)) { //Realiza a leitura de uma linha do arquivo fgets(strLinha,TAM_STRING,ptArquivo); //Extrai os dados da String lida do arquivo e preenche a estrutura da aposta ptTmpAposta = criaAposta(strLinha); for(i = 0; i < 6; i++) { if( ptTmpAposta->vetNumeros[i] != NumeroSorteado[i]) { bingo = 0; // Se um número diferir bingo é zero break; } } if(bingo == 1) printf("Apostador: %d Ganhou!!!\n", ptTmpAposta->iCodigoAposta); } ... Espero que seja isso. Qualquer coisa posta ai.
  13. O compilador está lhe avisando que as funções seg_maio e quart_maior não estão retornando nenhum valor. Embora você tenha colocado um return no else. Observe essa função: int quart_maior(int n,int vet[]){ // Descobrindo o quarto maior valor if (n) quart_maior(n-1,vet); else if (n=5){ <= Não seria n == 5 ?? return vet[4]; } } Essa sua função tá confusa. No primeiro if sempre vai ser verdadeiro exceto quando n for 0. Quando for 0 vai pro else, mas no if dentro do else nunca vai ser verdadeiro uma vez que n é 0. Portanto nunca ira retornar vet[4]. Reveja essa função. Abraço.
  14. Tem sim. Primeiro você cria o arquivo e insere os valores nele. Depois você cria um loop que vai lendo os valores que estão no arquivo e compara com o da sua variável. Posta o código depois. T+
  15. Além das chaves falta declarar a variável "n" na função main.
  16. Testa esse código ai: int main (int argc, char *argv[]) { float n1, n2, n3; int matricula[40]; float nota[40]; int frequencia[40]; int maior=-1, menor=-1; int total_reprovado = 0; int reprovado_falta = 0; int i=0; for(i=0; i<40; i++) { printf ("\ndigite a matricula:"); scanf("%d", &matricula[i]); printf ("digite as tres notas:"); scanf("%f %f %f", &n1, &n2, &n3); nota[i] = (n1 + n2 + n3) / 3; printf ("digite a frequencia:"); scanf("%d", &frequencia[i]); } for(i=0; i<40; i++) { if(nota[i]<menor||menor==-1) { menor=nota[i]; } if(nota[i]>maior) { maior=nota[i]; } } for(i=0; i<40; i++) { printf("matricula: %d, nota final: %.1f, mensagem: ", matricula[i], nota[i]); if(nota[i] >= 6.0 && frequencia[i] >= 40) printf("aprovado\n"); else { printf("reprovado\n"); total_reprovado++; } } printf("\ntotal de alunos reprovados: %d", total_reprovado); for(i = 0; i < 40; i++) { if(frequencia[i] < 40) reprovado_falta++; } printf("\nPercentagem de alunos reprovados por falta: %.1f", (float)reprovado_falta / 40.0 * 100.0); return 0; } Acho que você tá se esquecendo que seu programa deve realizar os cálculos dos 40 alunos. Portanto você vai ter que informar os dados dos 40 alunos, um por um e só depois disso ele realizará os cálculos. Cansativo né. Mas é isso. Se você não tiver paciência: muda o valor 40 nos fors para um valor menor, 4 por exemplo, e testa se der certo aumenta pra 40 de novo. for( i = 0; i < 40; i++) => for(i = 0; i < 4; i++) e também aqui: (float)reprovado_falta / 40.0 * 100.0) => (float)reprovado_falta / 4.0 * 100.0) Abraço.
  17. O que essa parte depois do primeiro for faz ai? ... if(nota[i] >= 6.0 && frequencia[i] >= 40) printf("aprovado\n"); else { printf ("reprovado"); } if (frequencia[i]<=40){ printf ("reprovado por falta"); } ... Retira isso do seu código e tenta compilar de novo. E troca essa parte: printf("matricula: %d, nota final: %d, mensagem: ", matricula[i], nota[i]); Por esta: printf("matricula: %d, nota final: %.1f, mensagem: ", matricula[i], nota[i]); Volto a repetir, quando o compilador acusar um erro posta a mensagem de erro dele pra gente. Abraço.
  18. Posta os erros que o compilador mostra.
  19. Não é preciso. "a percentagem de alunos reprovados por freqüência abaixo da mínima necessária." É só você percorrer o vetor frequencia, contar quantos tiveram frequencia menor que 40 e calcular a percentagem. int reprovado_falta = 0; ... for(i = 0; i < 40; i++) { if(frequencia[i] < 40) reprovado_falta++; } printf("Percentagem de alunos reprovados por falta: %.1f", reprovado_falta / 40 * 100);
  20. a) Para cada aluno o número da matrícula, a nota final e a mensagem (aprovado ou reprovado); E de cara mata a letra c também ( O total de alunos reprovados); int total_reprovado = 0; ... for(i = 0; i < 40; i++) { printf("Matricula: %d, Nota final: %.1f, Mensagem: ", matricula[i], nota[i]); if(nota[i] >= 6.0 && frequencia[i] >= 40) printf("Aprovado\n"); else { printf("Reprovado\n"); total_reprovado++; } } ... printf("Total de alunos reprovados: %d", total_reprovado); b ) A maior e a menor nota da turma; Segue a orientação de Jonathan no post anterior. Abraço.
  21. Já que são 40 alunos você vai ter que criar vetores para armazenas os dados de cada aluno. Neste caso 3 vetores: matricula, nota e frequencia. int matricula[40]; float nota[40]; int frequencia[40]; Depois com um for você vai ler os dados de cada aluno: for(i = 0; i < 40; i++) { printf (“digite a matricula:“); scanf("%d", &matricula[i]); printf (“digite as três notas:“); scanf("%f %f %f", &n1, &n2, &n3); nota[i] = (n1 + n2 + n3) / 3; printf (“digite a frequencia:“); scanf("%d", &frequencia[i]); } Depois usa uns if pra verificar a situação do aluno. Qualquer coisa posta ai. Obs.:Existe outra forma mais "elegante" que é usando struct, mas como vejo que você tá iniciando então dei esse exemplo bem simples. Abraço.
  22. RonaldoRG

    listar strings da pilha

    É isso mesmo estamos aqui pra aprender, fique a vontade. É sempre bom postar a saída do compilador no caso de erro. Vê se a dica do Jonathan dá certo ai e posta o resultado. Abraço.
  23. RonaldoRG

    listar strings da pilha

    Você declarou na função empilhar a variável *tElemento"? Como o código tá abreviado não deu pra ver. É bom você sempre postar a saída do compilador em caso de erro, ai facilita agente identificar o erro. Abraço.
  24. Tá no caminho certo. Recebe os dez números e os armazena no vetor. Depois compara cada número com 5. Se for maior que 5 mostra a mensagem "Numero x maior que 5" (onde x é o referido número maior que 5). Abraço.
  25. Como ele disse no post dele: Então essa é a maneira que eu conheço. Mas da forma dinâmica é interessante mesmo e não conheço. É uma oportunidade pra eu aprender também. Posta ai algo sobre isso. Abraço.
×
×
  • Criar Novo...