Ir para conteúdo
Fórum Script Brasil

tanure

Membros
  • Total de itens

    3
  • Registro em

  • Última visita

Sobre tanure

tanure's Achievements

0

Reputação

  1. Olá galera, boa tarde, sou novo na área de programação e tenho a seguinte questão 1 – Ajuste o algoritmo que implementa Lista Encadeada para: a) Imprimir a lista da seguinte forma: à | Posição | Elemento | Endereço de memória | B) Permitir a inserção em qualquer posição da lista, bastando informar o elemento e a posição desejada para o mesmo. c) Efetuar a remoção de qualquer elemento da lista, informando apenas a posição do elemento. fiz este código #include <stdio.h> #include <conio.h> #include <iostream> #define N 10 typedef struct { int Chave; } TipoItem; //Cria o TipoItem como struct typedef struct TipoCelulas *TipoApontador; //Cria apontador para TipoCelula typedef struct TipoCelulas { TipoItem Item; TipoApontador Ant,Prox; } TipoCelula[N]; //Cria TipoCelula como struct void FLVazia (TipoCelula *Lista){ int i; i = 1; while(i <= 10) { if (Lista[i]->prox != NULL)||(Lista[i]->ant != NULL){ Lista[i]->prox = NULL; Lista[i]->ant = NULL; Lista[i]->item = NULL; i++; } } int Vazia(TipoCelula *Lista) { //verifica se a lista está vazia int i; i = 1; while(i <= 10) { if (Lista[i]->prox != NULL) if (Lista[0].prox==Lista[i].prox){ return (Lista[0].prox==Lista[i].prox); break; } i++; } } void Insere(ultimo, posicao, TipoItem x, TipoLista *Lista) {//Insere elemento na lista Lista[posicao]->Ultimo->Prox=(TipoApontador) malloc(sizeof(TipoCelula));//Aloca dinamicamente em memoria espaco do tamanho TipoCelula para o ponteiro TipoApontador if (ultimo != posicao) Lista[posicao]->ant = &Lista[ultimo]; Lista[posicao]->item = x; Lista[posicao]->prox = NULL; } void Retira(TipoApontador p, TipoLista *Lista, TipoItem *Item) { //Remove um elemento da lista TipoApontador q; // Cria um apontador auxiliar if(Vazia(*Lista)) { // Verifica se alista não está vazia printf("Erro: Lista vazia ou posicao não existe\n"); return; } if (lista[posicao]->item == NULL) printf("Erro: Posicao não existe\n"); else{ lista[posicao]->ant->prox = lista[posicao]->prox; lista[posicao]->prox->ant = lista[posicao]->ant; } } void Imprime(TipoLista Lista) { //Imprime o conteudo da lista while(i <= 10) { if (Lista[i]->item != NULL) Printf("%d, ",i); Printf("%d, ",Lista[i]->item); Printf("%d\n",&Lista[i]); } i++; TipoApontador Aux; //Cria um apontador auxiliar Aux=Lista.Primeiro->Prox; //Atribui o endereco do primeiro elemento ao apontador while(Aux!=NULL) { printf("%d\n",Aux->Item.Chave); //Imprime o elemento para qual o apontador auxiliar aponta Aux=Aux->Prox;//Atribui o endereco do proximo elemento ao apontador auxiliar } } void BuscaERetira(int num, TipoLista Lista) { //Busca um determinado elemento e o remove da lista TipoApontador Aux; //Cria um apontador auxiliar Aux=Lista.Primeiro->Prox;//Atribui o endereco do primeiro elemento ao apontador while(Aux!=NULL) { //Percorre a lista até o final dela if(Aux->Item.Chave==num){ //Compara se é o elemento procurado da lista printf("Elemento encontrado: %d\n",Aux->Item.Chave); printf("Ponteiro para o elemento: %d\n",Aux); Retira(Aux,&Lista,&Aux->Item);//Efetua a remocao do elemento identificado da lista system("pause"); } Aux=Aux->Prox; //Atualiza o ponteiro auxiliar para o proximo elemento da lista } } int main() { int t,opcao, ultimo, posicao; TipoLista NumerosInteiros; FLVazia(&NumerosInteiros); ultimo = NULL; do { printf("Digite a opcao desejada ou 0 para sair:\n "); printf("1 - Inserir elemento na lista\n "); printf("2 - Remover elemento da lista\n "); printf("3 - Exibir a lista\n"); scanf("%d", &opcao); switch (opcao){ case 1: TipoItem temp; printf("Digite a posicao a inserir\n"); scanf("%d",&posicao); printf("Digite o valor a inserir\n"); scanf("%d",&temp.Chave); Insere(ultimo,Posicao,temp,&NumerosInteiros); ultimo = posicao; break; case 2: printf("Digite o valor a ser removido da lista\n"); scanf("%d",&t); BuscaERetira(t,NumerosInteiros); break; case 3: Imprime(NumerosInteiros); system("pause"); break; default: printf("Tchau\n\n "); system("pause"); break; } system("cls"); } while (opcao != 0); return 0; } porém da erro do começo ao final e o problema é que eu não sei nada de programação e este é o trabalho mais importante do semestre, o que vale mais nota, tenho também o programa em que o professor deu de exemplo, se alguém quiser de coração me ajudar, posso passar o código fonte, conto com a ajuda de vocÊs abraços
  2. Grande jonas, obrigado pela atenção meu camarada mas o que eu precisava mesmo fazer era inserir em um banco de dados elementos, mas estes devem ser variaves do delphi consegui aki depois de muitas dificuldades hehe ai vai o código pois alguém pode ter a mesma duvida que eu... DataModule1.SQLQuery1.Close; DataModule1.SQLQuery1.SQL.Clear; DataModule1.SQLQuery1.SQL.Add('insert into loopfor(VALOR) values (:Valor)'); DataModule1.SQLQuery1.Prepared := true; for linContador := low(larLoop) to high(larLoop) do begin DataModule1.SQLQuery1.ParamByName('Valor').Value := larLoop[linContador]; DataModule1.SQLQuery1.ExecSQL; end;
  3. olá boa noite sou iniciante em delphi e gostaria de saber como enviar pelo delphi 7 uma variável para o firebird 2.1, uso o IBEXPERT segue a parte do codigo: for linContador := low(larLoop) to high(larLoop) do begin DataModule1.SQLQuery1.Close; DataModule1.SQLQuery1.SQL.Clear; DataModule1.SQLQuery1.SQL.Add('insert into loopfor(VALOR) values (larLoop[linContador])'); DataModule1.SQLQuery1.ExecSQL; end;
×
×
  • Criar Novo...