Ir ao conteúdo
  • Cadastre-se

s4lezardv1A

Membro Pleno
  • Posts

    75
  • Cadastrado em

  • Última visita

Tudo que s4lezardv1A postou

  1. Bom dia pessoal. Estou começando a usar o entity framework para integrar uma DB com meu projeto. O maximo de contato que tive com c# foi criando algumas paginas razor que se comunicavam por MVC. Mas com banco não tinha feito nada. Fiz aqueles exemplos de CRUD em 10 minutos que tem na net, com entity CODE FIRST. A minha duvida, existe outra maneira de fazer integração ou o entity é o mais fácil?Comecei a estudar ontem, ainda não peguei a logica de como funciona. Por exemplo como faria um login, etc. Gostaria de saber das capacidades e limitações do entity. Como eu vejo onde meus dados são guardados,etc?Visto q o entity fez todo esse processo.
  2. Estou entendendo melhor...agora estamos em try e catch.. valeu Adriano, me esclareceu muito esse exemplo, consegui fazer.
  3. Ola Adriano, então, dessa parte de polimorfismo eu entendi.Eu estava utilizando ele com herança de uma superclasse. Exemplo: Uma super classe com o nome de EmpresaFotocopias que tem a função de tirar fotocopias por um valor, suas classes filhas Copiadora1 e Copiadora2 herdam essa função. Então via polimorfismo eu utilizo o seguinte: EmpresaFotocopias empresa1 = new Copiadora1(); empresa1.tirarFotocopias(); EmpresaFotocopias empresa2 = new Copiadora1(); empresa2.tirarFotocopias(); A empresa1 do tipo EmpresaFotocopias é uma Copiadora1 que utilizara seus metodos. Não seria isso? Eu não estou entendendo muito interface. Pelo que eu estudei( aprendi ontem), interface é um contrato que uma classe obedece. O que foi explicado é que interface diferente de uma superclasse, só possui metodos.
  4. Boa noite, tenho o seguinte exercicio: Dada a interface <<FormaGeometrica>> com os métodos calcularArea e calcularPermimetro implementem a classe Quadrado e Círculo e retornem a área e o perímetro dessas duas formas. Feita a implementação, criem uma classe Main para que o usuário possa fornecer os dados necessários para que possamos criar cada uma das formas geométricas (O quadrado necessita saber o valor de um dos seus lados, o círculo necessita saber seu raio). Feito isso exibir na tela qual a área e o perímetro de cada uma das formas geométricas utilizando polimorfismo através de interfaces. Estou em duvida do porque usar polimorfismo ao invés de usar uma variavel normal, pois os resultados foram o mesmo Minha interface FormaGeometrica public interface FormaGeometrica { double calcularArea(double dado); double calcularPerimetro(double dado); } Minha classe Quadrado public class Quadrado implements FormaGeometrica{ @Override public double calcularArea(double lado) { return Math.pow(lado,2); } @Override public double calcularPerimetro(double lado) { return lado+lado+lado+lado; } } Minha classe Main( vou postar só com o quadrado OK) public class MainFormaGeometrica { public static void main(String[] args) { //Polimorfismo, O JEITO QUE EU FIZ O EXERCICIO FormaGeometrica quadrado = new Quadrado(); System.out.println("A area do quadrado é: "+quadrado.calcularArea(5)); System.out.println("O perimetro do quadrado é: "+quadrado.calcularPerimetro(5)); //Normal EXEMPLO Quadrado quadrado2 = new Quadrado(); System.out.println("A area do quadrado é: "+quadrado2.calcularArea(5)); System.out.println("O perimetro do quadrado é: "+quadrado2.calcularPerimetro(5)); } } Fiz o exercicio com polimorfismo igual aos codigos q eu postei, só tirei o circulo para mostrar melhor. A minha duvida é,caso,se eu entendi o exercicio, e se fiz da maneira correta, porque usar polimorfismo em interface sendo que se eu só usar uma variavel Tipo Quadrado que ja tem o contrato com formageometrica, ja vou poder utilizar os metodos da propria classe(override)?
  5. Opa adriano beleza? Interessante, vou tentar mais tarde. No momento estou procurando uma forma de limpar a tela direto no console do Eclipse, caso souber de algum jeito , por favor me fale.
  6. Gostaria de saber como posso fazer para limpar a tela no console do java ao inserir alguma coisa. Como no console que o devc ++ usa. Gostaria de saber tambem se existe algum modo de executar o console maximizado.
  7. Ola boa tarde a todos, comecei a estudar java , e resolvi me aventurar a desenvolver uma interface grafica. Por enquanto criei um JFrame e dentro dele criei um JPanel com um nome e um botão para entrar. Consegui receber quando o botão é clicado. Mas agora quero fazer uma segunda tela, que quando clicar na tela inicial , essa seguda tela abra. Pesquisei um pouco sobre CardLayout , vi alguns exemplos mas não consegui aplicar nenhum.. gostaria de uma ajuda como usar o cardlayout ou qualquer outra forma mais fácil para mudar de JPanels. Main: package br.com.thiago.jframe; import javax.swing.*; public class MainJframe { public static void main(String[] args) { Jframe janela = new Jframe(); } } Classe Primeira Tela JPANEL: package br.com.thiago.jframe; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class PrimeiraTela extends JPanel { public PrimeiraTela() { setLayout(null); setBackground(Color.gray); JLabel texto1 = new JLabel("Restaurante"); texto1.setFont(new Font("Impact", Font.ITALIC, 80)); texto1.setBounds(100, 100, 1000, 100); add(texto1); JButton botao = new JButton("Entrar"); botao.setFont(new Font("Courier New", Font.BOLD, 20)); botao.setBackground(Color.black); botao.setForeground(Color.white); botao.setBounds(220, 250, 150, 40); botao.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e) { System.out.println("clicou no botao"); } }); add(botao); } } classe Jframe JFRAME: package br.com.thiago.jframe; import javax.swing.*; public class Jframe extends JFrame { public Jframe() { PrimeiraTela tela = new PrimeiraTela(); setContentPane(tela); setSize(640, 480); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } Se puderem dar uma ajuda para implementar o cardlayout nesse codigo...
  8. Ola devair, nao vou conseguir postar todo o codigo aqui ele tem 3.200 linhas. No windows 8.1 funciona normalmente. Quando formatei para o windows 10 essa função nao funciona mais, somente compila o codigo com a formatação certa, cores, etc, mas a função do mouse nao é ativada. Fiz um teste e instalei uma maquina virtual contendo o windows 8 e compilou normalmente. Só no windows 10 q nao compila essa função. O que pode ser? int coordenada ( INPUT_RECORD *ir_Evento ) { HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); CONSOLE_SCREEN_BUFFER_INFO consoleInfo; WORD saved_attributes; GetConsoleScreenBufferInfo(hConsole, &consoleInfo); saved_attributes = consoleInfo.wAttributes; //CODIGO// } A parte das coordenadas fica aqui, mas nao vou conseguir postar o codigo inteiro. Acredito q o erro é que esteja faltando alguma coisa para usar a API do windows.
  9. Pessoal, estou com uma duvida. Utilizei a api do windows para usar o mouse , isso no windows 8. Funcionava tudo ok. Agora formatei para o windows 10 e o mesmo programa não compila direito. As funções q utilizei para usar a api do windows nao funciona mais. Somente ficou formatado o do jeito que eu fiz, com cores, etc, alguns caracteres especiais tambem nao aparecem mais. O que esta faltando no windows 10 q eu poderia ter no windows 8? parte do codigo: DWORD dw_func; BOOL bl_func; INPUT_RECORD ir_func; int main ( ) { inicial(); while ( 1 ) { ReadConsoleInput ( GetStdHandle ( STD_INPUT_HANDLE ), &ir_func, 1, &dw_func ); bl_func = ( coordenada ( &ir_func ) == 1 ); } return 0; }
  10. Opa beleza amigo? Entao, tambem estou pensando nisso. Esse preço que eu falei acima do kit i7 4790 NON K é razoavel? É um processador bom não? Fica a par com um i5 7600 ou um i5 8400 talvez, e com 16GB. Tenho um cooler HYPER t4, sabe se funciona se eu pegar uma placa-mãe nova pra 7 ou 8 geração? Quero gastar no max 1.700
  11. Pessoal se puderem me ajudar. Estou para fazer um upgrade na minha maquina. Atualmente é um CORE 2 QUAD Q9550 , PLACA MSI P35 NEO, 8GB DDR2 800, GTX 960 AMP, FONTE OCZ 850 BRONZE. Estou usando um cooler HYPER T4 se nao me engano o nome. Estou querendo fazer um upgrade. Inicialmente estava pensando no i5 6600K, mas esta muito difícil de achar aqui na minha cidade ( quero evitar comprar de fora, e estou procurando inicialmente um kit usado). Minha segunda opcao ficaria um kit q encontrei: um i7 4790 NON K, 16GB ddr3 1833(se nao me engano), placa-mãe nao lembro no momento e com um cooler da cooler master parece. Mas estou com duvidas se vale a pena ainda pegar esse kit em 2018, visto que nao vou poder usa-lo para um futuro upgrade. Ou tento pegar um i5 6600 NON K ou o que eu estou vendo mais: um i6 7600 NON K( tambem estou na duvida se consigo pegar alguma placa que aceite o soquete das gerações 7 e 8 , possibilitando mais tarde um futuro upgrade), e mais 4gb ou 8gb de ram por enquanto. O i7 4790 NON K com o kit todo ta saindo por 1.550. Nao queria passar muito disso. Um i5 7600 com placa, to vendo por 1300, dai compro mais uma memoria de 4 ou 8gb, o cooler sabem se consigo usar o que eu tenho aqui??(HYPER T4).
  12. Felipe, entao, eu achei somente esse codigo com um modelo simples de implementação. Ja consegui implementar o codigo. A função coordenada eu nomeei ela, e ela tem como parametro um evento ir do tipo INPUT RECORD. Consegui fazer todo o processo para menus e funçoes. O codigo que eu fiz fica difícil postar porque juntando tudo deu 3.000 linhas. Me aventurei nele, e só agora vi que executei sem saber os fundamentos direito. Vou ler a documentação. Fora esse codigo, todo o resto foi implementado por mim, entao seria essa função mesmo que estou com varias duvidas. Pela sua explicação consegui entender mais um pouco o modo como ela funciona.
  13. Boa tarde pessoal. Estou usando uma função que encontrei para uso do mouse. Mas gostaria de entender o que cada linha significa. Vcs podem me dar uma ajuda? codigo: while ( 1 ) { ReadConsoleInput ( GetStdHandle ( STD_INPUT_HANDLE ), &ir_func, 1, &dw_func ); bl_func = ( coordenada ( &ir_func ) == 1 ); } O que cada linha quer dizer ai na parte de cima?
  14. Boa noite, gostaria de saber quais são os comandos mais usados para utilizar o cisco packet. Especificamente, estou procurando um comando para ficar mais fácil cabear as maquinas da rede de uma vez só, ou mais fácil do que ter que escolher toda hora o cabo na barra inferior. Gostaria tambem se tem como adicionar por exemplo 10 computadores de uma só vez.
  15. Boa tarde, estou fazendo esse codigo sobre cifra de transposicao. E nao estou conseguindo copiar os valores das colunas. Quero printar a coluna 2,depois a 0 e por ultimo a 1 de uma matriz, mas esta pegando valores repetidos, e antes imprimindo ela normalmente, da certo. O que pode ser? #include <stdio.h> #include <stdlib.h> #include <windows.h> #include <conio.h> typedef struct { char letra; int indice; } dados; typedef struct { dados chave[3]; } transposicao; int main() { transposicao transposicao; dados auxiliar; char texto[6],aux[3];; char matriztexto[3][2]; char matrizcode[3][2]; int i,j,m=0,n; // /* printf("Digite um texto: "); gets(texto); for(i=0; i<3; i++) { for(j=0; j<2; j++) { matriztexto[i][j]=texto[m]; matrizcode[i][j]=matriztexto[i][j]; m++; } } printf("\n\ntexto gravado.\n"); system("pause"); for(i=0; i<3; i++) { for(j=0; j<2; j++) { printf("%c",matriztexto[i][j]); } } printf("\n\ntexto mostrado.\n"); system("pause"); // */ printf("\n\ndigite uma chave de 3 letras"); gets(aux); for(i=0; i<3; i++) { transposicao.chave[i].letra=aux[i]; transposicao.chave[i].indice=i; } printf("\n\nChave gravada.\n"); system("pause"); for(i=0; i<3; i++) { printf("\n\nLetra %d = %c\n",i,transposicao.chave[i].letra); printf("Indice %d = %d",i,transposicao.chave[i].indice); } printf("\n\nChave mostrada.\n"); system("pause"); for(i=0; i<3; i++) { for(j=0; j<2; j++) { if(transposicao.chave[j].letra>transposicao.chave[j+1].letra) { auxiliar.letra=transposicao.chave[j].letra; auxiliar.indice=transposicao.chave[j].indice; transposicao.chave[j].letra=transposicao.chave[j+1].letra; transposicao.chave[j].indice=transposicao.chave[j+1].indice; transposicao.chave[j+1].letra=auxiliar.letra; transposicao.chave[j+1].indice=auxiliar.indice; } } } printf("\n\nChave ordenada.\n"); system("pause"); for(i=0; i<3; i++) { printf("\n\nLetra %d = %c\n",i,transposicao.chave[i].letra); printf("Indice %d = %d",i,transposicao.chave[i].indice); } printf("\n\nChave ordenada mostrada.\n\n"); system("pause"); for(i=0;i<3;i++){ m=transposicao.chave[i].indice; for(j=0;j<2;j++){ printf("%c",matriztexto[j][m]); } } printf("Texto codificado."); system("pause"); return 0; } EDITADO: Percebi o que esta acontecendo, quando eu salvo o texto na minha matriz e depois imprimo a mesma matriz, o texto sai certo, mas se eu imprimo casa por casa o texto sai errado. ex matriz[0] [1] por exemplo sai diferente do que se eu imprimir matriz[j]
  16. Show Ansic, Identação , organização perfeita!Vou estudar seu codigo. Consegui implementar a lista, mas estou procurando outras formas tambem. adicionado 3 minutos depois Muito obrigado, vou seguir suas recomendações. Tem uma função que me foi passada: a fflush(stdin); funciona direto, é a mesma né? Estou trabalhando nessa parte da api. Daqui algumas semanas eu posto um codigo bem legal que montei.
  17. @giu_d. Sempre é valido toda a informação passada,muito obrigado. Estou a pouco tempo cursando analises, então é bom não pegar vicios que fazem o codigo não fluir de forma pratica. Quanto a primeira informação. Deixa eu entender: Eu estou recebendo minha lista como parametro de referencia, e estou alterando ela com uma variavel interna isso né? você diz que é mais pratico, receber essa lista ainda como parametro, só que retornar essa mesma lista, isso? Se sim, eu mandando ela como parametro, ela não atualizaria sempre tambem? Quanto a alocaçao eu arrumei o codigo, Agora somente quando eu insiro um novo elemento eu reservo um espaço na memoria. Eu aloquei tambem um espaço para o INICIO por pensar que para existir a lista eu necessitaria criar ela, com o inicio recebendo um espaço, parecido com o que eu fiz na lista estatica. Estou na duvida agora.... CODIGO CORRIGIDO: Se puderem conferir se ficou certo. Gosto muito de receber criticas construtivas, vai me ajudar no futuro, então se puderem ver o que posso melhorar: OBS: ainda não finalizei o Inserir meio. #include <stdio.h> #include <stdlib.h> #include <windows.h> #include <stdbool.h> int saida=0; bool primeiro=false; typedef struct Elemento { char pais[10]; struct Elemento *proximo; } TIPO_ELEMENTO; TIPO_ELEMENTO *inicio; void criar_cadeia() { if(saida==0) { inicio=malloc(sizeof(TIPO_ELEMENTO)); inicio->proximo=NULL; printf("Cadeia criada com sucesso\n\n"); saida=1; } else { printf("Cadeia ja foi criada\n\n"); } printf("\n\n\n\n\t\t\t\tPressione ENTER para continuar"); system("pause>NULL"); } void inserir_inicio(TIPO_ELEMENTO *inicio) { SetConsoleTitle("INSERIR INICIO"); if(saida==0) { printf("\n\nCrie o encadeamento primeiro"); } else { char nome[10]; TIPO_ELEMENTO *novo_elemento=malloc(sizeof(TIPO_ELEMENTO)); printf("\n\nDigite o pais: "); scanf("%s",novo_elemento->pais); if(inicio->proximo==NULL) { novo_elemento->proximo=NULL; } else { novo_elemento->proximo=inicio->proximo; } inicio->proximo=novo_elemento; } printf("\n\n\n\n\t\t\t\tPressione ENTER para continuar"); system("pause>NULL"); } void inserir_meio(TIPO_ELEMENTO *inicio){ if(saida==0) { printf("\n\nCrie o encadeamento primeiro"); } else { int pos=0; printf("Digite uma posicao:"); scanf(" %d",&pos); } printf("\n\n\n\n\t\t\t\tPressione ENTER para continuar"); system("pause>NULL"); } void inserir_final(TIPO_ELEMENTO *inicio) { if(saida==0) { printf("\n\nCrie o encadeamento primeiro"); } else { char nome[10]; TIPO_ELEMENTO *novo_elemento=malloc(sizeof(TIPO_ELEMENTO)); novo_elemento->proximo=NULL; TIPO_ELEMENTO *auxiliar=inicio; printf("\n\nDigite o pais: "); scanf("%s",novo_elemento->pais); if(inicio->proximo==NULL)//se a lista não tiver cadastro ainda { inicio->proximo=novo_elemento; } else { while(auxiliar->proximo!=NULL) { auxiliar=auxiliar->proximo; if(auxiliar->proximo==NULL) { auxiliar->proximo=novo_elemento; return; } } } } printf("\n\n\n\n\t\t\t\tPressione ENTER para continuar"); system("pause>NULL"); } int quantidade(TIPO_ELEMENTO *lista) { int qtd=0; if(saida==0) { return 0; } else { TIPO_ELEMENTO *list=lista; while(list->proximo!=NULL) { qtd++; list=list->proximo; } return qtd; } } void listar_lista(TIPO_ELEMENTO *lista)//conferido certo começa no primeiro elemento, e quando null da break { if(saida==0){ printf("\n\nCrie o encadeamento primeiro"); }else{ int i=1; TIPO_ELEMENTO *list=lista->proximo; while(list!=NULL) { printf("\n\n\tCadastro %d\n\n",i); printf("Nome do pais: %s\n",list->pais); i++; list=list->proximo; } } printf("\n\n\n\n\t\t\t\tPressione ENTER para continuar"); system("pause>NULL"); } void menu() { HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); CONSOLE_SCREEN_BUFFER_INFO consoleInfo; WORD saved_attributes; GetConsoleScreenBufferInfo(hConsole, &consoleInfo); saved_attributes = consoleInfo.wAttributes; SetConsoleTitle("MENU"); int op; do{ system("cls"); printf("\n\n\t\t\t\t\t"); SetConsoleTextAttribute(hConsole, BACKGROUND_GREEN); printf("Cadastros feitos ate o momento: %d\n\n\n",quantidade(inicio)); SetConsoleTextAttribute(hConsole, saved_attributes); printf("1 - criar encadeamento\n\n"); printf("2 - Inserir no inicio\n\n"); printf("3 - Inserir no meio\n\n"); printf("4 - Inserir no fim\n\n"); printf("5 - Retirar do inicio\n\n"); printf("6 - Retirar do meio\n\n"); printf("7 - Retirar do fim\n\n"); printf("8 - Buscar\n\n"); printf("9 - Listar \n\n"); printf("10 - Destruir \n\n"); printf("11 - Sair \n\n"); printf("Digite a opcao desejada: "); scanf("%d",&op); system("cls"); switch(op) { case 1: criar_cadeia(); break; case 2: inserir_inicio(inicio); break; case 3: inserir_meio(inicio); break; case 4: inserir_final(inicio); break; case 5: break; case 6: break; case 7: break; case 8: break; case 9: listar_lista(inicio); break; case 10: if(saida==0){ printf("\n\nNao existe lista para destruir."); }else{ free(inicio); saida=0; printf("\n\nLista destruida."); } printf("\n\n\n\n\t\t\t\tPressione ENTER para continuar"); system("pause>NULL"); break; case 11: exit(0); break; } } while(1); } int main() { system("mode con:cols=115 lines=35"); menu(); system("pause"); return 0; }
  18. Pessoal, conferem ai, acho que eu to errando na atribuição do inicio. EU mando uma variavel copia percorrer a lista mas não mando o inicio realmente de volta.
  19. #include <stdio.h> #include <stdlib.h> #include <windows.h> #include <stdbool.h> int saida=0; bool primeiro=false; typedef struct Elemento { char pais[10]; struct Elemento *proximo; } TIPO_ELEMENTO; TIPO_ELEMENTO *inicio; TIPO_ELEMENTO *navegador; TIPO_ELEMENTO *fim; void criar_cadeia() { if(saida==0) { inicio=malloc(sizeof(TIPO_ELEMENTO)); inicio->proximo=NULL; navegador=malloc(sizeof(TIPO_ELEMENTO)); navegador->proximo=NULL; printf("Cadeia criada com sucesso\n\n"); saida=1; } else { printf("Cadeia ja foi criada\n\n"); } printf("Pressione ENTER para continuar"); system("pause>NULL"); } void inserir_inicio(TIPO_ELEMENTO *inicio) { SetConsoleTitle("INSERIR INICIO"); if(saida==0) { printf("\n\nCrie o encadeamento primeiro"); } else { char nome[10]; TIPO_ELEMENTO *novo_elemento=malloc(sizeof(TIPO_ELEMENTO)); printf("\n\nDigite o pais: "); scanf("%s",novo_elemento->pais); inicio->proximo=novo_elemento; novo_elemento->proximo=navegador; navegador=novo_elemento; } printf("\n\n\n\n\t\t\t\tPressione ENTER para continuar"); system("pause>NULL"); } void inserir_final(TIPO_ELEMENTO *lista) { SetConsoleTitle("INSERIR FINAL"); TIPO_ELEMENTO *inicio=lista->proximo; if(saida==0) { printf("\n\nCrie o encadeamento primeiro"); } else { char nome[10]; TIPO_ELEMENTO *novo_elemento=malloc(sizeof(TIPO_ELEMENTO)); printf("\n\nDigite o pais: "); scanf("%s",novo_elemento->pais); novo_elemento->proximo=NULL; if(lista==NULL){ novo_elemento->proximo=NULL; lista=novo_elemento; }else{ while(inicio!= NULL) { if(inicio->proximo == NULL) { inicio->proximo=novo_elemento; return; } inicio=inicio->proximo; } } } } int quantidade(TIPO_ELEMENTO *lista) { int qtd=0; if(saida==0) { return 0; } else { TIPO_ELEMENTO *list=lista->proximo; while(list!=NULL) { if(list->proximo==NULL) { return qtd; } qtd++; list=list->proximo; } } } void listar_lista(TIPO_ELEMENTO *lista)//conferido certo começa no primeiro elemento, e quando null da break { int i=1; TIPO_ELEMENTO *list=lista->proximo; while(list!=NULL) { printf("\n\n\tCadastro %d\n\n",i); printf("Nome do pais: %s\n",list->pais); i++; list=list->proximo; if(list->proximo==NULL) { break; } } printf("\n\n\n\n\t\t\t\tPressione ENTER para continuar"); system("pause>NULL"); } int menu() { HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); CONSOLE_SCREEN_BUFFER_INFO consoleInfo; WORD saved_attributes; GetConsoleScreenBufferInfo(hConsole, &consoleInfo); saved_attributes = consoleInfo.wAttributes; SetConsoleTitle("MENU"); int op; system("cls"); printf("\n\n\t\t\t\t\t"); SetConsoleTextAttribute(hConsole, BACKGROUND_GREEN); printf("Cadastros feitos ate o momento: %d\n\n\n",quantidade(inicio)); SetConsoleTextAttribute(hConsole, saved_attributes); printf("1 - criar encadeamento\n\n"); printf("2 - Inserir no inicio\n\n"); printf("3 - Inserir no meio\n\n"); printf("4 - Inserir no fim\n\n"); printf("5 - Retirar do inicio\n\n"); printf("6 - Retirar do meio\n\n"); printf("7 - Retirar do fim\n\n"); printf("8 - Buscar\n\n"); printf("9 - Listar \n\n"); printf("10 - Sair \n\n"); printf("Digite a opcao desejada: "); scanf("%d",&op); system("cls"); return op; } int main() { system("mode con:cols=115 lines=35"); int op; do { system("cls"); op=menu(); switch(op) { case 1: criar_cadeia(); break; case 2: inserir_inicio(inicio); break; case 3: break; case 4: inserir_final(inicio); break; case 5: break; case 6: break; case 7: break; case 8: break; case 9: listar_lista(inicio); break; case 10: exit(0); break; } } while(1); system("pause"); return 0; } Desculpe Ansic, o que eu poderia melhorar nessa parte de estrutura do codigo? E porque não estou conseguindo printar quando eu adiciono no final?No inserir inicio da tudo certo..
  20. [DUVIDA] - Lista dinamica(encadeada). Estou com duvidas nessa lista, parei na parte de inserção no fim. Quando eu insiro no fim e imprimo, só aparece caracteres estranhos. No inserir inicio imprime normalmente: essa função recebe o meu ponteiro inicio! void inserir_final(TIPO_ELEMENTO *lista) { SetConsoleTitle("INSERIR FINAL"); TIPO_ELEMENTO *inicio=lista->proximo; if(saida==0) { printf("\n\nCrie o encadeamento primeiro"); } else { char nome[10]; TIPO_ELEMENTO *novo_elemento=malloc(sizeof(TIPO_ELEMENTO)); printf("\n\nDigite o pais: "); scanf("%s",novo_elemento->pais); novo_elemento->proximo=NULL; while(inicio!= NULL) { if(inicio->proximo == NULL) { inicio->proximo=novo_elemento; return; } inicio=inicio->proximo; } } }
  21. Obrigado por responder e desculpe a demora @vangodp. O problema era que eu estava passando parametro errado mesmo, Eu recebia o endereço da lista, e queria passar o endereço do endereço da lista, ai não dava mesmo kk. valeu mesmo. Consegui terminar a lista.
  22. Ola amigos. Estou com um problema para criar uma lista estatica. Preciso criar uma função criar_lista que reserve um espaço da memoria com o malloc e zere os atributos qtd da lista e idade de todos do meu vetor. Eu tinha feito o codigo sem o malloc, e estava rodando certo. Agora q decidi coloca-lo, estou tendo erro quando chamo a função inserir_final na opção 4 do menu. O programa fecha sem acusar erro, provavelmente estou passando parametro errado, mas n sei qual. A função criar lista não precisa ser necessariamente VOID, eu tinha feito antes de usar o malloc.... Onde estou errando? #include <stdio.h> #include <stdlib.h> #define N 10// essa constante comanda o tamanho do meu vetor de pessoas do tipo pessoa typedef struct // uma struct que guarda dados como nome e idade de uma pessoa { char nome[10]; char idade[2]; } TIPO_PESSOA; typedef struct // outra struct que guarda a quantidade de elementos e o tamanho da lista { TIPO_PESSOA vetor[N]; int qtd; } TIPO_LISTA; void criar_lista(TIPO_LISTA *list) { //list=malloc(sizeof(TIPO_LISTA)); //if(list != NULL){//se ainda tiver memoria list->qtd = 0; // printf("\n\n\nLista criada com sucesso\n"); //}else{ //printf("\n\n\nLista nao foi criada\n"); //} } void inserir_final(TIPO_LISTA *list,TIPO_PESSOA ps) //aqui eu vou inserir uma ps(pessoa) { fflush(stdin); list->vetor[list->qtd]=ps;//vou na minha lista e vou no vetor e uso o qtd para comandar ele e vai receber uma ps list->qtd=list->qtd+1;// aqui vou na minha qtd q esta na lista e adiciono o qtd+1 } int menu() { int op=0; printf("\n\n\t\t\t\t\t\t\tMenu principal\n\n\n"); printf("1 - Criar Lista\n\n"); printf("2 - Inserir no inicio\n\n"); printf("3 - Inserir no meio\n\n"); printf("4 - Inserir no final\n\n"); printf("5 - Buscar por posicao\n\n"); printf("6 - Listar os cadastros feitos\n\n"); printf("8 - Sair\n\n\n"); printf("Digite uma opcao: "); fflush(stdin); scanf("%d",&op); return op; } int main() { system("mode con:cols=115 lines=40"); TIPO_PESSOA pessoa; TIPO_LISTA lista; int op; do { op=menu(); switch(op) { case 1: system("cls"); criar_lista(&lista); break; case 2: break; case 3: break; case 4: system("cls"); printf("\n\n\nDigite o nome: "); scanf("%s",pessoa.nome);//nome ja é um ponteiro entao n precisa de endereço para atribuir printf("Digite a idade: "); scanf(" %d",&pessoa.idade);// ponto porque é uma variavel normal inserir_final(&lista,pessoa); break; } system("pause"); system("cls"); } while(op!=8); system("pause"); return 0; }
  23. AnsiC como não conheço muito a estrutura das funções para trabalhar com o mouse e que conflito pode ter ocorrido quando usa a messagebox, achei essa solução, que não é solução mas por enquanto não achei outro metodo, o projeto é da faculdade. Como o messagebox executava uma vez, voltava e executava novamente, eu fiz com depois que ele recebesse o SIM ou NAO, ele chamasse uma função copia com parametros, da minha função atual. Assim eu conseguiria interromper esse conflito... bati a cabeça e não achei outro jeito.
  24. Pois é Ansic. Rodei ele sem o resto do meu codigo e funcionou. Tem algo no meu codigo q esta relacionado. Estou usando a api do windows para usar meu mouse. Talvez esteja relacionado a isso... Sabe se tem outra função para exibir caixa de mensagens?

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...