Ir para conteúdo
Fórum Script Brasil

Giza

Membros
  • Total de itens

    25
  • Registro em

  • Última visita

Tudo que Giza postou

  1. Ola, Preciso saber como calcular o fator de balanceamento de uma AVL, tem a formula da altura(arvoreDireita)-altura(arvoreEsquerda), mas não consigo entender, sei que deve ser uma pergunta boba, mas não entendi, e sem isso não vou conseguir saber fazer a rotaçao como deve ser. Obrigada,
  2. Giza

    Inverter ListaDDE

    Boa noite, Preciso inverter uma lista Dinamica Duplamente Encadeada, estou começando a estudar estrutura de dados, fiz o codigo abaixo, gostaria de saber se está certa a minha logica ou se estou muito longe da solução. Coloquei as estruturas para melhor compreensão, no mas segue somente a função invetrerLista (inverteLDDE). Segue: typedef struct no { void *dados; struct no *prox; struct no *ant; }NoLDDE,*pNoLDDE,**ppNoLDDE; typedef struct { int tamInfo; pNoLDDE inicio; }LDDE,*pLDDE,**ppLDDE;//descritor int inverteLDDE(pLDDE l){ pNoLDDE no, aux; for(no->ant = l->inicio; aux != NULL; no->ant++; no->prox++){ mencopy(aux,no->*ant,l->tamInfo); mencopy(no->*ant,no->*prox,l->tamInfo); mencopy(no->*prox,aux,l->tamInfo); }
  3. Olá, Acredito que é isso mesmo... Então trabalho com duas pilhas em vez de uma, tipo uma pilha original e a pilha auxiliar, chegando na posição escolhida, testando com um IF, coloco la o valor do indice escolhido e volto a pilha para o lugar anterior,vou tentar assim... Agradeço, se não conseguir volto a postar..
  4. Ola, Estou com uma duvida que já passei horas pensando e tentando e não resolvo: Preciso reposicionar um elemento numa pilha, e passado por referencia o ponteiro da struct, o indice do elemento a reposicionar e o indice da posiçao que este elemento vai ficar. Sendo que a base da pilha o indice e 0; Sei que posso somente mexer no topo, e não e apenas uma troca de posiçao e sim o deslocamento dos outros elementos. Meu professor falou que precisa de uma auxiliar, fiz este codigo abaixo, mas sinceramente nem eu estou entendendo. Obrigada, se alguém puder me ajudar, agradeço muito. int reposicionaElementoPE(pPE p, int el, int pos){ int aux, i; mencopy(aux,p->vet[el]); if(p->vet[el]<pos) for(i=el;i<p->tamVet;i++){ p->vet[i] = p->vet[i-1]; } mencopy(p->vet[pos],aux); return Sucesso; } [code]
  5. Olá pessoal, Estou na terceira fase de SI e é meu primeiro contato com o netBens e o Processing, estou começando a entrar em desespero....não estou conseguindo assemelhar nada. Será que alguém sabe de alguns videos explicativos ou livros faceis de compreender? Ou algo que de repente clareia a mente? Sabe, no DEV em ling C o negócio é muito mais simples, é tudo organizadinho, estruturado, linha a linha, o codigo parece um sequencia do nosso pensamento, já na orientada objeto eu não consigo saber dentro de que parte coloco tal codigo, e principalmente qual é o codigo "main", o principal? Tem varias classes com seus devidos atributos dentro, os quais eu posso usar em outro lugar.....mas é confuso... Por favor, se alguém puder me dar uma ajuda, uma indicação...agradeço desde já. Obrigada
  6. Humm, é verdade. Agora vou ter q pensar um pouco mais....não tenho ideia de como arrumar. Vou ver... De qualquer forma, obrigada.
  7. Boa noite, Graças!!! Com as dicas de vocês consegui fazer rodar perfeitamente, o q levou menos de um minuto para consertar. Para de repente ajudar mais alguém que tenha a mesma duvida vou postar o codigo pronto abaixo, claro, é um codigo de iniciante..rsrss, mais funciona. Numeros primos informados só entre 1 e 100000. Obrigada Abraços. #include <cstdlib> #include <iostream> int main() { int num, i, aux; puts("----------Numeros Primos------------"); do{ puts("Informe um numero - Para sair informe -1"); cin>>num; if(num==-1){ break; } aux=1; for(i=2;i<num;i++){ if(num%i==0) aux=0; } if(aux==1){ cout<<"O numero "<<num<<" é primo\n"; }else cout<<"O numero "<<num<<" não é primo\n"; }while(num>1 && num<100000); system("PAUSE"); return EXIT_SUCCESS; }
  8. Olá, Estou fazendo um programa para ver se o numero informado é primo ou não. Estou confussa, não consigo achar o erro. Abaixo parte do codigo que acho que está o erro. aux=1; for(i=2;num>=i;i++){ if(num%i==0) aux=0; } if(aux==0){ puts("é primo"); }else puts("não é primo"); } Se alguém puder me ajudar, Obrigada.
  9. Giza

    (Resolvido) Matrizes

    Oi Bruno, Agora consegui entender, claro, pois assim toda hora que ele compara ele arruma a posição compararda, e por conseguinte a posição compararda a ele. Se não tivesse o "/2" ele voltaria tudo ao normal. Muito obrigada a todos vocês que me ajudaram na resolução desse problema! Abrs,
  10. Giza

    (Resolvido) Matrizes

    É, já fiz isso e realmente o vetor é impresso igual como digitado, sei que max/2 é o correto, pois dá certinho. Vou ver se consigo entender, porque se não na hora da prova já viu né? Copiar não adianta, o bom é quebrar a cabeça um pouquinho. Obrigada, ultimamente esse forum vem me ajudando muito. Boa noite
  11. Giza

    (Resolvido) Matrizes

    Boa noite Rsalvador, Fiz o teste de mesa, entendi como o vetor é invertido, mas não compreendi a condição max/2, pois no teste de mesa o 'i' vai de 4 a 0 invertendo as posições. Mesmo assim agradeço, tenho aula amanhã, vou ver se o professor faz isso entrar na minha cabeça. Obrigada.
  12. Giza

    (Resolvido) Matrizes

    Sem querer ser chata, mas estou fazendo um programa de vetores, ler um vetor de 10 elementos e mostra-los invertidos, fiz alguns passos e não consegui inverte-los, então pesquisei e achei uma solução, no entanto não entendi o seguinte passo: no for, porque max/2?? #define max 10 for (i=0; i < max/2; i++) { aux = vet[i]; vet[i] = vet[max-i-1]; vet[max-i-1] = aux; } for(i=0;i<max;i++){ printf("\n\Vetor invertido %d\n", vet[i]); } system("PAUSE"); return 0; Obrigada. Desculpem, esse tópico é de Matrizes... deveria ter pesquisado os topicos ou aberto um tópico de vetores.
  13. Giza

    (Resolvido) Matrizes

    Oi Bruno, Nossa... Agora funcionou, pensa, por causa das chaves...o cabeça! E olhando direito entendi como funciona pos_i e pos_j, eles recebem a posição do menor elemento, claro! Muitissímo obrigada. Abraços
  14. Giza

    (Resolvido) Matrizes

    Boa noite, Estou tentando fazer esse programa, achar o menor ele está achando, porem a posicao em que ele está não aparece certa. Tambem não entendi como funciona a parte: pos_i=i; pos_j=j; Pois assim ele sempre vai mostrar a ultima posição, ou seja:[3][3], estou certa? segue o codigo abaixo: #include <stdio.h> #include <stdlib.h> #define lin 4 #define col 4 int main() { int mat[lin][col], i, j, menor=mat[0][0], pos_i, pos_j; printf("Informe os elementos da matriz\n"); for(i=0;i<lin;i++){ for(j=0;j<col;j++){ printf("[%d][%d]\n", i,j); scanf("%d", &mat[i][j]); if(mat[i][j]<menor) menor=mat[i][j]; pos_i=i; pos_j=j; } } printf("O menor elemento: %d\n", menor); printf("Posicao: [%d][%d]\n", pos_i,pos_j); system("PAUSE"); return 0; }
  15. Giza

    (Resolvido) Matrizes

    Olá, Estou tentando fazer um programa que pede que seja informado uma matriz 4x4 e seja encontrado o menor valor contido na matriz e a sua posição, sei que em matrizes bidimensionais é necessario um for para linha e outro para coluna, no entanto não consegui pegar a logica de como comparar elemento com elemento e ainda achar a sua posição. Se alguém poder me ajudar, agradeço desde já.
  16. Giza

    (Resolvido) Ajuda com vetores

    hum...estou iniciando em programaçao, acho que até agora só usei de lógica bobinha..... é verdade..já estudei algumas funçoes especiais de strings.... bom, tenho prova amanha, vou tentar fazer mais alguns programinhas para fixar. Agradeço pela ajuda.
  17. Giza

    (Resolvido) Ajuda com vetores

    Claro...vet3[] talvez tenha mais que dez elementos.....afinal estamos lendo 20 elementos...não havia pensado nisso, logo teria então que declarar vet3[20] ou seja, sempre com o maximo de possibilidades?! Quer dizer então que sempre vou precisar usar uma variavel auxiliar para fazer a comparação entre dois vetores?
  18. Olá, Estou precisando muito de ajuda para poder estudar, faço os programas com vetores, leio vetor 1 leio o vetor 2...ok..no entanto quando chega na hora de por exemplo: comparar os dois vetores para formar o vetor 3 somente com os elementos que não se repetem, não consigo entender a lógica, sei que preciso para isso comparar o primeiro elemento com todos, o segundo elemento com todos....e assim por diante... Não sei a lógica na hora do for comparação.... exemplo: for(ind1=0;ind1<10;ind1++){ printf("Informe o elemento numero %i do conjunto 1: \t", ind1+1); scanf("%i", &vet1[ind1]); } printf("\n"); for(ind2=0;ind2<10;ind2++){ printf("Informe o elemento numero %i do conjunto 2: \t", ind2+1); scanf("%i", &vet2[ind2]); } como faço para comparar os dois e achar o vet3[10]????
  19. Giza

    Duvida com matrizes

    Não foi eu quem fiz...., de fato esta confuso....gostaria de saber se tem um site de facil entendimento de matrizes e strings, pois não consigo entender o que le uma matriz[20][10] por exemplo, se for matriz de string lê 20 posiçoes com 9 caracteres?? e se não for de strings, como funciona?? De qualquer forma obrigada pela ajuda, e se puder clarear um pouco esse assunto tambem agradeço. Segue o codigo inteiro: é pra ler o gabarito de uma prova com 20 questoes, em seguida a matricula dos 10 candidatos e a resposta das 20 questoes do candidato , cada questao certa soma 0.5, no final deve mostrar a matricula e a nota de cada candidato. #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <string.h> int main() { int mat[10][2],ind, ind2; char gab[20][1], resp[20][1]; for(ind=0;ind<20;ind++){ printf("Informe a resposta da questao %i: \t", ind+1); scanf("%c",gab[ind][1]); } for(ind=0;ind<10;ind++){ printf("Informe a matricula do candidato %i:\t", ind+1); scanf("%i", mat[ind][2]); for(ind2=0;ind2<20;ind2++){ printf("Informe a resposta %i:\t", ind2+1); scanf("%c", resp[ind2][1]); if(resp[ind2][1]==gab[ind][1]) mat[ind][1]=mat[ind][1]+0.5; } } } puts("Matricula-------nota"); for(ind=0;ind<10;ind++){ for(ind2=0;ind2<2;ind2++){ printf("%i ",mat[ind][ind2]); } } system("PAUSE"); }
  20. Giza

    Duvida com matrizes

    Estou estudando um programa e estou com duvidas nas partes em evidencia: Na primeira não esta somando o numero da matricula em vez da nota?? E na segunda, porque ind2<2??O que vai ser impresso com o ultimo printf?? Se alguém puder me ajudar?! Tenho um pouco de dificuldade de entender como funciona uma matriz. for(ind=0;ind<10;ind++){ printf("Informe a matricula do candidato %i:\t", ind+1); scanf("%i", mat[ind][2]); for(ind2=0;ind2<20;ind2++){ printf("Informe a resposta %i:\t", ind2+1); scanf("%c", resp[ind2][1]); if(resp[ind2][1]==gab[ind][1]); mat[ind][1]=mat[ind][1]+0.5; } } } puts("Matricula-------nota"); for(ind=0;ind<10;ind++){ for(ind2=0;ind2<2;ind2++){ printf("%i ",mat[ind][ind2]); } } system("PAUSE"); }
  21. Giza

    Programa codigo de barras

    Boa noite, Consegui fazer este programa, no entanto não está calculando o DV, e acho que os cálculos estão corretos... Também não sei como fazer para ele calcular as multiplicações sucessivas de traz pra frente.... Se tivesse tempo continuaria tentando, mas preciso entregar amanhã. Segue o codigo: #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <ctype.h> #define max 43 int caldv(int vet[max]); int main() { int vet[max], ind; puts("|-----|-----|----------|----------------|--------|----------------|-------------|"); puts("|BANCO M FATOR VALOR CAMPO LIVRE |"); puts("|-----|-----|----------|----------------|--------|----------------|-------------|"); puts("| 000 0 0000 0000000000 00000 0000000000 0000000000 |"); puts("|-----|-----|----------|----------------|--------|----------------|-------------|"); puts("----CALCULO DO DIGITO VERIFICADOR----"); puts("----CODIGO DE BARRAS----"); for(ind=0;ind<max;ind++){ printf("DIGITO - %i - ",ind+1); scanf("%i", &vet[ind]); } puts("|-----|-----|----|----------|----------------|--------|----------------|-------------|"); puts("|BANCO M DV FATOR VALOR CAMPO LIVRE |"); puts("|-----|-----|----|----------|----------------|--------|----------------|-------------|"); printf("| 000 0 %i 0000 0000000000 00000 0000000000 0000000000 |",caldv(vet)); puts("|-----|-----|----|----------|----------------|--------|----------------|-------------|"); system("PAUSE"); } int caldv(int vet[max]){ int ind, soma=0, dv=0, resto=0; for(ind=2;ind<10;ind++){ soma=soma+(ind*vet[max]); resto=soma%11; dv=11-resto; } return(dv); } Obigada
  22. Oi, Não querendo abusar, mas preciso entregar um trabalho em C para encerramento do semestre e já li e reli o enunciado do programa e não consigo entender o calculo, sei q vou precisar usar muitos do - while e muitos for com vetores e matrizes, será que alguém poderia me ajudar? Segue o enunciado: Faça um programa em C que leia os elementos de um código de barras e através de uma função calcule o dígito verificador. Abaixo a regra para cálculo: Cálculo do Dígito Verificador Geral 1.Multiplique cada elemento do código de barras, iniciando-se da direita para a esquerda e pela seqüência de 2 a 9, ou seja; 2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4,..., e assim por diante; 2.Some o resultado de cada produto obtido na multiplicação do item anterior, obtendo-se um total “X”; 3.Divida o total “X” por 11 (Y = X/11) e determine o resto da divisão ®; 4.Calcule o DV através da expressão DV = 11 – R. Observação: para o código de barras, sempre que o resto for 0, 1 ou 10, deverá ser utilizado o dígito 1. Exemplo: BANCO M DV FATOR VALOR CAMPO LIVRE +-----+---+---+------+------------+-------+------------+------------+ | 799 | 9 | | 1232 | 0000006600 | 78781 | 3087550304 | 2541200000 | +-----+---+---+------+------------+-------+------------+------------+ 432 9 8765 4329876543 29876 5432987654 3298765432 Soma dos produtos: X = 720 Divisão: Y = 720/11 = 65,4545... = 65 + 5/11 Resto: R = 5 Dígito verificador: DV = 11 - R = 11 - 5 = 6 Obrigada, :huh:
  23. Oi, Muito obrigada, vou tentar prestar mais atenção a esses detales fundamentais. Realmente agora está funcionando, à apenas um erro de calculo, mais isso vou consertar, estava achando que os ponteiros estavam declarados errado. :blush: Agradeço novamente.
  24. Boa noite! Estou no primeiro semestre de Sistemas informação, e estamos no ultimo assunto, ponteiros, matrizes e vetores. Não estou conseguindo achar o erro para as seguintes msgs: 54 C:\Dev-Cpp\programa caixa eletronico.c conflicting types for 'taxa' 30 C:\Dev-Cpp\programa caixa eletronico.c previous implicit declaration of 'taxa' was here 66 C:\Dev-Cpp\programa caixa eletronico.c conflicting types for 'saldomov' 44 C:\Dev-Cpp\programa caixa eletronico.c previous implicit declaration of 'saldomov' was here Agradeço muito. Codigo: #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <ctype.h> main() { float sminimo, codigo, saldo, conta, valor, *pts, *ptsm, *ptv, *ptcd; int opccao; do{ puts("**CAIXA ELETRONICO**"); puts("1-INFORMAR DADOS"); puts("2-MOVIMENTAR CONTA"); puts("3-SAIR"); scanf("%f", &opccao); switch(opccao){ case '1': puts("CONTA"); scanf("%f", &conta); puts("SALDO"); scanf("%f", &saldo); pts = &saldo; puts("SALDO MINIMO"); scanf("%f", &sminimo); ptsm = &sminimo; printf("TAXA DE SERVICO: R$ %.2f \n", taxa(pts, ptsm)); break; case '2': puts("CONTA"); scanf("%f", &conta); puts("VALOR"); scanf("%f", &valor); ptv = &valor; puts("TIPO <1-DEPOSITO / 2-RETIRADA>"); scanf("%f", &codigo); ptcd = &codigo; printf("SALDO: R$ %.2f\n", saldomov(ptv, ptcd)); break; default: puts("Opcao invalida"); continue; } }while(toupper(opccao!= 3)); system("PAUSE"); } float taxa(float *pts, float *ptsm){ float result, aux=0; aux=*pts/2; if(aux<*ptsm) result=aux*0.05; else result=0; return(result); } float saldomov(float *ptv, float *ptcd){ float result=0; if(*ptcd==1) result=result+ *ptv; if(*ptcd==2) result=result-(*ptv); return(result); }
×
×
  • Criar Novo...