Ir para conteúdo
Fórum Script Brasil

R!ck

Membros
  • Total de itens

    7
  • Registro em

  • Última visita

Sobre R!ck

  • Data de Nascimento 29/04/1986

Perfil

  • Gender
    Male
  • Location
    Brasília-DF

R!ck's Achievements

0

Reputação

  1. R!ck

    Separar Números

    Dei uma lida nas regras e não sei se tem problemas em ressuscitar tópicos antigos. E como vi que esse tópico não tinha a solução de acordo com o que o se especifica ... Então, para fechá-lo tá ae: Scanner imput = new Scanner(System.in); int num[] = new int[5],i; for(i=1;i<2;i++) { System.out.println("Informe um valor de 5 digitos:\n"); num[i] = imput.nextInt(); System.out.printf("%d ",(num[i]/10000)%10," "); System.out.printf("%d ",(num[i]/1000)%10," "); System.out.printf("%d ",(num[i]/100)%10," "); System.out.printf("%d ",(num[i]/10)%10," "); System.out.printf("%d ", num[i]%10," "); } :)
  2. Pow obrigado pela ajuda Mnemonic, mas, pra mim tá muito difícil. = ( Consegui pelo menos usar outra biblioteca, opengl, e deixar o código um pouco melhor. Só que não consigo mexer direito com a lista. :wacko: Como está o código atualmente: #include <windows.h> #include <GL/gl.h> #include <GL/glut.h> #include <stdio.h> #include <conio.h> struct no { float x; float y; struct no *prox; }; typedef struct { struct no *inicio; }lista; /* typedef struct float X; float Y; struct tVertice *p; //proximo struct tVertice *a; //anterior } vertice; */ void inity(lista *ls) { ls->inicio=NULL; } int empty(lista *ls) { if(ls->inicio==NULL) return 1; else return 0; } void insert(lista *ls,float valorx,float valory) { struct no *novo=(struct no*)malloc(sizeof(struct no)); novo->x=valorx; novo->y=valory; if(empty(ls)) { novo->prox=novo; } else { struct no *navegador = ls->inicio; while(navegador->prox!=ls->inicio) { navegador=navegador->prox; } navegador->prox=novo; novo->prox=ls->inicio; } ls->inicio=novo; system("pause"); system("cls"); } void exibelista(lista *ls) { struct no *navegador=ls->inicio; do { printf("x: %f \nEndereco: %x \nProx: %x \n",navegador->x,navegador,navegador->prox); navegador=navegador->prox; printf("y: %f \nEndereco: %x \nProx: %x \n",navegador->y,navegador,navegador->prox); navegador=navegador->prox; system("pause"); system("cls"); }while(navegador!=ls->inicio); } void display(lista *ls) { /* Limpa o Buffer de Pixels */ glClear (GL_COLOR_BUFFER_BIT); // Define a cor padrão como branco glColor3f (1.0, 1.0, 1.0); /* desenha um simples retângulo com as coordenadas * (0.25, 0.25, 0.0) and (0.75, 0.75, 0.0) */ glBegin(GL_POLYGON); glVertex3f( 0.0,0.0,0.0 ); glVertex3f( 0.0,0.0,0.0); glVertex3f( 0.0,0.0,0.0); glVertex3f( 0.0,0.0,0.0); glVertex3f( 0.0,0.0,0.0); glEnd(); /* Inicia o processo de desenho através dos dados bufferizados */ glFlush (); } void init (void) { /* Seleciona a cor de fundo para limpeza da tela */ glClearColor (0.0, 0.0, 0.0, 0.0); /* inicializa os valores de visualização */ glMatrixMode(GL_PROJECTION); /* Faz com que a matriz corrente seja inicializada com a matriz identidade (nenhuma transformação é acumulada) */ glLoadIdentity(); glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0); } /* Cria a janela */ int main(int argc, char** argv) { int i, num; float x,y; lista ls; inity(&ls); do { printf("\t Menu \n"); printf("1 - Criar um polígono vazio \n"); printf("2 - Inserir um novo vértice entre v1 e vn \n"); printf("3 - Remover um determinado vértice \n"); printf("4 - Calcular o perímetro do polígono \n"); printf("5 - Mostrar o polígono \n"); printf("6 - Destruir o polígono \n"); printf("7 - sair \n"); scanf("%d",&num); system("cls"); if(num<1||num>7) { printf("\n Opção inválida! Tente novamente.\n"); system("pause"); system("cls"); } switch(num) { case 1: //Criar um polígono vazio display(&ls); break; case 2://Inserir um novo vértice entre v1 e vn printf("Informe um valor para a coordenada x:\n"); scanf("%f",&x); printf("Agora informe um valor para a coordenada y:\n"); scanf("%f",&y); insert(&ls,x,y); break; case 3://Remover um determinado vértice break; case 4://Calcular o perímetro do polígono break; case 5://Mostrar o polígono /* Estabelece o modo de exibição a ser utilizado pela janela a ser criada neste caso utiliza-se de um buffer simples, ou seja, a apresentação será imediata à execução Define o modo de cores como RGBA */ glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB); /* Determina o tamanho em pixels da janela a ser criada */ glutInitWindowSize (800, 600); /* Estabelece a posição inicial para criação da janela */ glutInitWindowPosition (100, 100); /* Cria uma janela com base nos parâmetros especificados nas funções glutInitWindowSize e glutInitWindowPosition com o nome de título especificado em seu argumento */ glutCreateWindow ("Exemplo 1"); /* Especifica os parâmetros inicias para as variáveis de estado do OpenGL */ init (); // Associa a função display como uma função de callback glutIdleFunc(display); /* Inicia a execução do programa OpenGL. O programa irá executar num loop infinito devendo o desenvolvedor especificar as condições de saída do mesmo através de interrupções no próprio programa ou através de comandos de mouse ou teclado como funções de callback */ glutMainLoop(); break; case 6://Destruir o polígono break; } }while(num!=7);//sair system("pause"); } :blink:
  3. :blink: Olá amigos, estou tendo muita dificuldade num código aqui, pois, é a primeira vez que me deparo com a lista circularmente encadeada e com a biblioteca graphic. Devo resolver o exercício por meio de estrutura de dados usando c. Utilizo o dev-c++ v4.9.9.2. o qual não possui a biblioteca que comentei. Então seguindo essas dicas:... ...consegui utiliza-la somente criando o projeto.cpp mas, na verdade queria um projeto.c Sem falar que esse é só o início do problema... Vejam o exercício. E o código que consegui fazer até agora. #include<stdio.h> #include<conio.h> #include<graphics.h> struct no { int info; struct no *prox; }; typedef struct { struct no *inicio; }lista; void init(lista *ls) { ls->inicio=NULL; } int empty(lista *ls) { if(ls->inicio==NULL) return 1; else return 0; } void insert(lista *ls,int pvalor) { struct no *novo=(struct no*)malloc(sizeof(struct no)); novo->info=pvalor; if(empty(ls)) { novo->prox=novo; } else { struct no *navegador = ls->inicio; while(navegador->prox!=ls->inicio) { navegador=navegador->prox; } navegador->prox=novo; novo->prox=ls->inicio; } ls->inicio=novo; } void exibelista(lista *ls) { struct no *navegador=ls->inicio; do { printf("x: %d \nEndereco: %x \nProx: %x \n",navegador->info,navegador,navegador->prox); navegador=navegador->prox; }while(navegador!=ls->inicio); } int main() { int i,num; lista ls; init(&ls); do { printf("\t Menu \n"); printf("1 - Criar polígono \n"); printf("2 - Inserir um novo vértice entre v1 e vn \n"); printf("3 - Remover um determinado vértice \n"); printf("4 - Calcular o perímetro do polígono \n"); printf("5 - Mostrar o polígono \n"); printf("6 - Destruir o polígono \n"); printf("7 - sair \n"); scanf("%d",&num); system("cls"); if(num<1||num>7) { printf("\n Opção inválida! Tente novamente.\n"); system("pause"); system("cls"); } switch(num) { case 1: printf("Atencao! Para sair pressione uma tecla na janela grafica\n"); system("pause"); system("cls"); initwindow(1000,700); moveto(250,400);//v0 //posiciona cursor na posição (250,400) lineto(500,150);//v1 //desenha uma linha de (500,150) lineto(750,400);//v2 //desenha uma linha de (750,400) lineto(700,650);//v3 //desenha uma linha de (700,650) lineto(300,650);//vv-1 //desenha uma linha de (300,650) lineto(250,400);//v //aponta p começo. while(!kbhit()); // espera até alguma tecla se pressiona closegraph(); system("cls"); break; case 2: break; case 3: break; case 4: break; case 5: initwindow(1000,700); while(!kbhit()); // espera até alguma tecla se pressiona closegraph(); // fecha janela gráfica break; case 6: break; } }while(num!=7); system("pause"); } Como podem ver ainda contem muitos erros. Não estou conseguindo mesclar a lista com as propriedades da biblioteca. Porque não sei como utilizar dois dados no mesmo no da lista. Para poder definir as coordenadas cartezianas e chegar perto do que a questão exige. Espero que possam me dar uma luz. Porque esse dragão vai decidir os próximos seis meses da minha vida. rsss Desde já agradecido. = ]
  4. R!ck

    Pilha dinâmica c

    Rápido e mortal" Direto no alvo! rss Para dizer a verdade tinha até definido só que com a denominação "stacktop". Eu sou uma anta vesga mesmo hauauh. Brigadão ae Jonathan Queiroz Funcionando 100% agora... :D /*1) Implementar as funções init, push, pop, stacktop e empty . 2) Crie uma função (showStack) que exiba todos os elementos de uma pilha. 3) Crie um programa que receba via teclado um conjunto de dez números que serão colocados em uma pilha. Usando a função (showStack) exiba a pilha. Em seguida desempilhe os números, informando cada número desempilhado. Usando a função (showStack) exiba a pilha novamente. */ #include<stdio.h> #define tamanho_pilha 100 struct elemento_pilha { int info; struct elemento_pilha *prox; }; typedef struct { struct elemento_pilha *top; }pilha; void init(pilha *p) { p->top=NULL; printf("Pilha inicializada! \n\n"); getch(); } int empty(pilha *p) { if(p->top==NULL) return 1; else return 0; } void push(pilha *p,int elemento) { struct elemento_pilha *pl; pl=(struct elemento_pilha *) malloc (sizeof(struct elemento_pilha)); pl->info=elemento; pl->prox=p->top; p->top=pl; } int pop(pilha *p) { int valortop; struct elemento_pilha *aux; if(empty(p)==1) { printf("\n stack underflow! \n"); exit(1); } else { valortop=p->top->info; aux=p->top; p->top=p->top->prox; free(aux); return valortop; } } int top(pilha *p) { if(empty(p)) { printf("\n underflow! \n"); exit(1); } else { printf("\n O primeiro elemento da pilha e %d", p->top->info); } } void showstack (pilha *p) { int i=0; pilha aux; if (empty(p)==1) printf ("A Pilha esta vazia!\n"); else { for (aux.top=p->top; empty(&aux)!= 1; aux.top=aux.top->prox) { i++; printf("\n\n %do Elemento da Pilha = %d \n",i,aux.top->info); } } } int main() { pilha pi; int i,num; init(π); for(i=0;i<1;i++) { for(i=0;i<10;i++) { printf("Informe um valor:\n"); scanf("%d",&num); push(π,num); } showstack(π); for(i=0;i<10;i++) { top(π); printf("\n E Sera eliminado da pilha..."); pop(π); } printf("\n "); showstack(π); } system("pause"); } Problema resolvido com louvor" Thanks!
  5. R!ck

    Pilha dinâmica c

    Olá amigos. Estou tentando criar uma pilha dinâmica, mas, tudo parece estar certo só que não consigo mais identicar o que está dando errado. Se alguém puder dar uma ajuda. O código... /*1) Implementar as funções init, push, pop, stacktop e empty . 2) Crie uma função (showStack) que exiba todos os elementos de uma pilha. 3) Crie um programa que receba via teclado um conjunto de dez números que serão colocados em uma pilha. Usando a função (showStack) exiba a pilha. Em seguida desempilhe os números, informando cada número desempilhado. Usando a função (showStack) exiba a pilha novamente. */ #include<stdio.h> #define tamanho_pilha 100 struct elemento_pilha { int info; struct elemento_pilha *prox; }; typedef struct { struct elemento_pilha *top; }pilha; void init(pilha *p) { p->top=NULL; printf("Pilha inicializada!"); getch(); } int empty(pilha *p) { if(p->top==NULL) return 1; else return 0; } void push(pilha *p,int elemento) { struct elemento_pilha *pl; pl=(struct elemento_pilha *) malloc (sizeof(struct elemento_pilha)); pl->info=elemento; pl->prox=p->top; p->top=pl; } int pop(pilha *p) { int valortop; struct elemento_pilha *aux; if(empty(p)==1) { printf("\n stack underflow! \n"); exit(1); } else { valortop=p->top->info; aux=p->top; p->top=p->top->prox; free(aux); return valortop; } } int stacktop(pilha *p) { if(empty(p)) { printf("\n underflow! \n"); exit(1); } else { return p->top->info; } } void showstack (pilha *p) { int i=0; pilha aux; if (empty(p)==1) printf ("A Pilha esta vazia!"); else { for (aux.top=p->top; empty(&aux)!= 1; aux.top=aux.top->prox) { i++; printf("\n\n %d Elemento da Pilha = %d",i,aux.top->info); } } } int main() { pilha pi; int i,num; init(π); for(i=0;i<1;i++) { for(i=0;i<10;i++) { printf("Informe um valor:"); scanf("%d",&num); push(π,num); } showstack(π); for(i=0;i<10;i++) { top(π); printf("\n E Sera eliminado da pilha..."); pop(π); } printf("\n "); showstack(π); } system("pause"); } Está dando o erro... [Linker error]undefined reference to 'top' id returned 1 exit status Bem, espero ansioso por ajuda. Até logo. = ]
  6. Aweee! Apanhei mais consegui fazer. =] Mudei a função maior para... void funcmaior(pilha *p) { int i,maior,ind; for(i=p->top;i>=0;i--) { if(i==p->top) { maior=p->itens[i]; ind=i; } else { if(p->itens[i]>maior) { maior=p->itens[i]; ind=i; } } } printf("\n\n Maior elemento da pilha é: %d" "\n No indice: %d \n",maior,ind); } ...e pegou tranquilo. = ]
  7. Olá colegas, sou novato por aqui e queria saber se podem me ajudar. Preciso informar o maior valor numa pilha, mas ando apanhando se alguém tiver como dar um help. O código... #include<stdio.h> #include<conio.h> #include<stdlib.h> #define tamanho_pilha 10 /*1) Implementar as funções init, push, pop, stacktop e empty . 2) Crie uma função (showStack) que exiba todos os elementos de uma pilha. 3) Crie um programa que receba via teclado um conjunto de dez números que serão colocados em uma pilha. Usando a função (showStack) exiba a pilha. Em seguida desempilhe os números, informando cada número desempilhado. Usando a função (showStack) exiba a pilha novamente. 5) Utilizando o programa criado na 3ª questão, crie uma função que, após carregar a pilha, informe o maior elemento e seu índice. */ typedef struct { int top; int itens[tamanho_pilha]; }pilha; void init(pilha *p) { p->top=-1; } void top(pilha *p) { if(isempty(p)) { printf("\n Stack underflow \n"); } else { printf("\n O primeiro elemento da pilha e %d", p->itens[p->top]); } } int isempty(pilha *p) { if(p->top==-1) return 1; else return 0; } int isfull(pilha *p) { if(p->top==tamanho_pilha-1) return 1; else return 0; } void push(pilha *p, int n) { if(isfull(p)) { printf("\n stack overflow \n"); } else { p->top++; p->itens[p->top]=n; } } int pop(pilha *p) { if(isempty(p)) { printf("\n stack underflow \n"); } else { return p->itens[p->top--]; } } void stacktop(pilha *p) { if(isempty(p)) { printf("\n Underflow \n"); } else { printf("\n O primeiro elemento da pilha e %d \n",p->itens[p->top]); } } void showstack(pilha *p) { int i; if(isempty(p)) { printf("\n stack underflow \n"); } else { for(i=0;i<=p->top;i++) { printf("\n %do elemento =%d",i+1,p->itens[i]); } printf("\n"); } } void funcmaior (pilha *p, int i,int maior) { if(i<p->itens[i]) { if(p->itens[i]>maior) { maior=p->itens[i]; } i++;/* funcmaior(p->itens[i],0,0);*/ } printf("\n O maior elemento da pilha e %d \n",maior); } int main() { int i,num; pilha p; init(&p); for(i=0;i<1;i++) { for(i=0;i<10;i++) { printf("Informe um valor:"); scanf("%d",&num); push(&p,num); } showstack(&p); funcmaior(&p); for(i=0;i<10;i++) { top(&p); printf("\n E Sera eliminado da pilha..."); pop(&p); } printf("\n "); showstack(&p); } system("pause"); } Como não fixei muito bem esse lance de maiores e menores valores estudando c. Me deparei com essa dúvida em estrutura =/ O maior problema está nessa função mesmo. = / void funcmaior (pilha *p, int i,int maior) { if(i<p->itens[i]) { if(p->itens[i]>maior) { maior=p->itens[i]; } i++;/* funcmaior(p->itens[i],0,0);*/ } printf("\n O maior elemento da pilha e %d \n",maior); } Bom, espero ansioso por resposta. Tomara que aprenda bastante aqui e possa ensinar também. Até logo. = ]
×
×
  • Criar Novo...