-
Total de itens
884 -
Registro em
-
Última visita
Tudo que vangodp postou
-
Use o botão <> para postar códigos
-
linguagem c Lista Duplamente Encadeado em C
pergunta respondeu ao Caroline Nolasco de vangodp em Grupo de Estudos
você está recebendo tarefas como listas duplamente encadeadas e não sabe programar? você está algo atrasada hein. Aprender a programar não é algo que seja possível pedir a alguém, você precisa praticar e praticar e mais praticar, quando estiver cansada praticar mais ainda, só assim você será capaz de dominar a linguagem. Claro que se gostar de programar tudo se fará muito mais "suave", pois não é a mesma coisa fazer algo que você gosta, do que, fazer algo que você não gosta. você frequenta alguma universidade ou etc? -
Poderia disponibilizar o código completo?
-
c Dúvida ao criar structs, relacionando uma struct a outra.
pergunta respondeu ao Yuri Carlos de vangodp em C, C++
suponho que para quando você for fazer uma locação você teria ao menos um cliente, um veiculo e um funcionário cadastrados no sistema. Seria caso de criar um novo objeto da estrutura locação e inserir o código do funcionário e do cliente. Logo após inserir os códigos dos usuários involucrados na struct locacao, deveria aparecer um menu que permitisse escolher um dos carros disponíveis e uma vez escolhido deveria ser copiado os tais dados do veiculo para locacao e por ultimo ser inserido na lista. Acredito que seria de grande utilidade guardar esses dados em um arquivo ao fechar o programa. -
c Dúvida ao criar structs, relacionando uma struct a outra.
pergunta respondeu ao Yuri Carlos de vangodp em C, C++
Mas não lhe posso ajudar porque não tenho acesso a seu código. A direção(link) que você deixou não leva a nenhuma parte. -
c Dúvida ao criar structs, relacionando uma struct a outra.
pergunta respondeu ao Yuri Carlos de vangodp em C, C++
Não se entende direito o que você quer, e não é possível acessar seu código. -
Faça algum tipo de CRUD, algo como um banco, para gerenciar contas de bancarias de usuários, com abertura de contas corrente ou poupança, saques, depósitos, emprestemos, etc. Faça tudo guardando em arquivos, é um bom projeto.
-
Sem mandar o programa inteiro fica difícil. Não sabemos o que há no tal arquivo, e não sabemos o que faz seu programa para salvar os dados.
-
Qual a importância da manipulação de arquivos C/C++?
pergunta respondeu ao Eduardo_Santos_ de vangodp em C, C++
Isso depende do contexto. Manipular arquivos pode lhe servir para muitas coisas como criar uma bd, guardar dados que você não quer que se percam ao fechar o programa tipo arquivos .conf ou .ini, manipular imagens, comprimir arquivos, etc etc etc, tudo o que você vê que os programas modernos fazem você será capaz. Praticamente são ilimitadas as possibilidades mas depende muito do que você precisar. Comece por criar bases de dados tipo uma agenda telefonica, logo tente manipular uma imagem BMP ou o formato aberto Netpbm. No formato Netpbm por exemplo, uma imagem em branco e preto tem essa formato: P1 # Exemplo de um bitmap formando a letra "J" 6 10 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 A saída seria algo como isso: Como você pode ver trata-se de uma simples matriz contendo zeros e uns(Formato Binário), aparte tem alguns dados que informam o tamanho da matriz que será usada e também si se trata de uma imagem a cor, tons de cinza, ou preta e branca, também si se trata de um arquivo binario ou de texto normal. você pode ver como está composto o formato netpbm aqui: https://en.wikipedia.org/wiki/Netpbm_format É bem interessante manipular imagens com esse formato, digamos que poderia ser o inicio de manipulação de imagens.- 2 respostas
-
- manipulação de arquivos c/c++
- c/c++
- (e %d mais)
-
não... definitivamente isso não existe. mostre seu código e talvez seja possível lhe indicar onde você está errando. mostre seu código e talvez seja possível lhe indicar onde você está errando.
-
atrings e ponteiros n leva & adiante. Isso aqui ta errado-> scanf ("%s", &obj.string) ; Tire o &
-
E que você quer realmente?
-
#include <iostream> using namespace std; main() { int dia, mes, ano; char lixo; cout << "Entre com a data tipo 12/03/2018: "; cin >> dia >> lixo >> mes >> lixo >> ano; // A barra vai parar no lixo XD cout << dia << "/" << mes << "/" << ano << endl; } Qual o problema? >_<
-
Hoje to meio preguiçoso viu. Aqui você tem a resposta:
-
A forma mais ou menos correta de se fazer seria essa: #include <iostream> using namespace std; main() { unsigned const int NLINHAS = 12; unsigned const int NCOLUNAS = 4; unsigned const int TAM = NLINHAS * NCOLUNAS; int vetorS[TAM]; int S[NLINHAS][NCOLUNAS] = { {5, 5, 5, 5}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0} }; unsigned int x, y; int indice=0; for( x = 0; x < NLINHAS; x++ ) { for( y = 0; y < NCOLUNAS; y++, indice++) { vetorS[indice] = S[x][y]; } } //mostrar vetor for( x = 0; x < TAM; x++ ) { cout<<vetorS[x]; } } Mas se consideramos que toda matriz em realidade é um vetor podemos fazer isso: #include <iostream> using namespace std; main() { unsigned const int NLINHAS = 12; unsigned const int NCOLUNAS = 4; unsigned const int TAM = NLINHAS * NCOLUNAS; int vetorS[TAM]; int S[NLINHAS][NCOLUNAS] = { {5, 5, 5, 5}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0} }; unsigned int x; //mostrar vetor for( x = 0; x < TAM; x++ ) { vetorS[x] = S[0][x]; cout<<vetorS[x]; } } E fica muito mais fácil não é.
-
strcmp basicamente compara casinha por casinha até acontecer uma das 3 coisas: <0 O primeiro caractere que não corresponde tem um valor menor em ptr1 do que em ptr2. 0 O conteúdo de ambas as cadeias são iguais. >0 O primeiro caractere que não corresponde tem um valor maior em ptr1 do que em ptr2. Então por exemplo, eu poderia ter tipo: strcmp compara a primeira letra de str1 com a primeira letra de str2 ...como são iguais, nada acontece, strcmp passa a comparar a segunda letra de str1 com a segunda letra de str2: ...acontece a mesma coisa. Por enquanto as letras comparadas forem iguais o programa segue adiante, até se certificar que TODAS as letras são idênticas, nesse caso retornaria 0. Mas que acontece se passar isso?: Então neste caso, na str2, 'b' é menor que 'c' que está na str1, e neste caso, strcmp para de fazer a comparação, pois ele já sabe a essa altura se são iguais ou diferentes, e também qual é a menor string em caso de serem diferentes. Para saber o resultado olhamos a tabela abaixo e identificamos o caso que aconteceu: -A letra é menor em str1 do que em str2? Então o valor de retorno é menor que zero(-1) -Ambas as cadeias são iguais em todas as casinhas? então retorna zero(0) -A letra é maior em str1 do que em str2? Então retorna maior que zero(1) Observação: Para saber si uma letra é maior ou menor em relação a outra consulte a tabela asc2, lá você tem em ordem todos os caracteres admissíveis por C/C++ organizados de maior a menor. Isso acho que já responde sua pergunta, pois de cara já lhe diz que só serve para comparar strings não para buscar uma substring dentro de outra string. Se quiser algo fácil use a função strstr(), mas como você é um estudante, não lhe quero enganar, caso você opte pelo caminho mais fácil nunca será um bom programador, pois o certo é você fazer esse exercício você mesmo sem ajuda de funções, e certamente seu professor quer assim, pois desse modo você aprende o que acontece internamente dentro das funções. Agora bem... a coisa funciona dessa forma: Imaginando que você tem: Se quiser buscar um string dentro de outra, percorra letra por letra da string(str1) até ela coincidir com a primeira letra da substring(str2) que você está buscando. Então neste ponto faça a mesma coisa que a strcmp... comparar letra por letra, mas só que desde este ponto: Até chegar na ultima letra da substring: Si a substring terminou e todas as letra analisadas foram iguais, então o resultado é SIM! Está contido a substring dentro da string. Caso não coincidir lembre que estávamos na letra 't' da string1: deveríamos repetir os passo desde esse ponto, até coincidir com a primeira letra da substring, pois a substring poderia estar mais adiante, por isso devemos continuar averiguando. Lhe sugiro que desenhe os passos em papel que seu programa vai ter, com isso você terá uma idéia melhor de qual são os passos a seguir. Sei que não é muito mas isso é algo que você tem que realizar e não eu hehe, somente quero lhe dar uma guia. Lhe desejo boa sorte.
-
você precisa aprender a manipular arquivos, são muitos conceitos, fica dificil aprender aqui em um só tema como esses. lhe recomendo que busque algum tutorial em video. Se quiser algumas dicas entre aqui: https://discord.gg/CtfUywV
-
Olá. você sabe que em c++ não tem a "mamaezinha" pra ajudar né? Aqui usamos iteradores. Os iteradores, que a gorsso modo é dizer, são "ponteiros", e aqui usamos isso. O que você está buscando é a função std::find, e você pode ver como funciona aqui: http://www.cplusplus.com/reference/algorithm/find/ A std::find basicamente faz o que essa função que você mostrou, mas en vez de mostrar o indice, ela retorna um iterador, que é o que se usa em C++, por isso falei que aqui não há mamaezinha, e sim muita cacetada >_<. Estude iteradores e como funciona essa função stdfind que você triunfa. para você ter uma ideia aqui tem um exemplo completo: http://www.java2s.com/Tutorial/Cpp/0500__STL-Algorithms-Non-modifying-sequence-operations/FindanElementandItsPositioninaVector.htm para você ter uma ideia aqui tem um exemplo completo: http://www.java2s.com/Tutorial/Cpp/0500__STL-Algorithms-Non-modifying-sequence-operations/FindanElementandItsPositioninaVector.htm
-
Depende muito do programa. Se for um programa que demanda uma BD enorme, o melhor seria mysql, por outro lado se for razoavelmente pequena você pode usar txt.
-
troque cout <<"Digite sua idade:"endl; por cout <<"Digite sua idade:"<<endl; E da proxima vez use o botão <> para postar código, assim não levará 5 meses para ser respondido E da proxima vez use o botão <> para postar código, assim não levará 5 meses para ser respondido
-
faça 3970/1000 e o resultado será 3. faça 3970%1000 e o resultado será 970(resto). Logo repita a operação porem agora com 100, tipo 970/100, o resultado será 9, e se fizer 970%100 sobra 70. repita depois com /10 e %10 etc, assim você irá descompondo o numero. quando tiver os 4 é só somar. você precisa ir guardando os resultados em variáveis. para você ter uma ideia: int valor = 3970; int milhar = valor/1000; //3 valor = valor%1000; //970 //agora repita com 100 int centena = valor/100; //9 valor = valor%100; //70 //com 10 //... //logo some int resultado = milhar+centena+dezena+unidade; //E por ultimo mostre o resultado
-
Ajuda no meu codigo (iniciante)
pergunta respondeu ao Gabriel Custodio de vangodp em Grupo de Estudos
um char é uma só letra, você não pode guardar uma string que é um punhado de letras em um único char, você precisa do mesmo punhado de chars, ou incluso mais... você precisa de um array. Em vez de: char nome, profissao, cpf, aniversario, email; Você precisa de: char nome[100], profissao[100], cpf[50], aniversario[30], email[100]; E para ler não precisa por & adiante como de um char se tratasse: printf("\n Qual é o seu nome completo?\t"); scanf(" %[^\n]s",nome); Se for ler vários strings um depois do outro: setbuf(stdin, NULL); printf("\n Qual é o seu nome completo?\t");//Prove algo como: Raul alambique scanf(" %[^\n]%*c",nome); printf("\n Qual é sua data de nascimento? (dd/mm/aaaa)\t");//prove algo como: 16/02/1977 scanf(" %s%*c",&aniversario); printf("\n Qual é o seu email?\t");//prove algo como: gato@malvado.com scanf(" %s%*c",&email); Se a string tiver espaços no meio use : %[^\n] Se a string não tiver espaços no meio como um aniversario ou um email use o %s normal O %*c ignora o enter, faz que suas leituras sejam corretas pois evita a entrada de lixo no buffer, causado ao pulsar enter, pois esse é tido também como um char, e vai parar no buffer junto com as outras letras, o especificador %*c, ao final, evita que a ultima letra pulsada, que é sempre o enter, seja inserida no buffer, evitando assim problemas de leitura. -
dentro do menu você está invocando a função Pesquisar sendo que ela não existe, só foi declarada. #include <stdio.h> #include <stdlib.h> #include <string.h> #include<windows.h> typedef struct Endereco { char rua[30],bairro[30]; int casa; } endereco; typedef struct Alunos { char nome[20],email[50]; int matricula,telefone; endereco end; } alunos; typedef struct Livros { char dataSolicitacao[11],titulo[20],editora[50]; int ano, alugado; } livros; //declaraçaõ das variaveis globais livros livs[5]; alunos als[5]; int cb = 0; //declarar os procedimentos void Cadastrar(); void Pesquisar(); void CadastarAlunos(); void CadastrarLivros(); void AlugarLivros(); int main() { int op; do { system("cls"); system("Title Biblioteca"); printf("1-Cadastrar\n"); printf("2-Pesquisar\n"); printf("0-Sair\n"); scanf("%i",&op); switch(op) { case 1: Cadastrar(); break; case 2: //Pesquisar(); break; case 0: exit(0); break; default: printf("Opcao invalida\n"); } } while(op!=0); system("Pause"); } //criar os procedimentos void Cadastrar() { int op; printf("CADASTRO:\n"); do { printf("1-Cadastrar Aluno\n"); printf("2-Cadastrar Livros\n"); printf("0-Sair\n"); scanf("%i",&op); switch(op) { case 1: CadastarAlunos(); break; case 2: CadastrarLivros(); break; case 0: op=0; break; default: printf("Opcao invalida\n"); } } while(op!=0); } void CadastarAlunos() { int op = 1; do { if(cb<5) { printf(" CADASTRAR ALUNO:\n"); printf("NOME:\n"); fflush(stdin); gets(als[cb].nome); printf("MATRICULA:\n"); scanf("%i",&als[cb].matricula); printf("E_MAIL:\n"); fflush(stdin); gets(als[cb].email); printf("TELEFONE:\n"); scanf("%i",&als[cb].telefone); printf("RUA:\n"); fflush(stdin); gets(als[cb].end.rua); printf("Nº CASA:\n"); scanf("%i",&als[cb].end.casa); printf("BAIRRO:\n"); fflush(stdin); gets(als[cb].end.bairro); Sleep(2000); op=0; } if(op!=0) { printf("Deseja continuar cadastrando\n"); printf("1-Sim\n"); printf("0-não\n"); scanf("%i",&op); }//condicao para o op } while(op!=0); } void CadastrarLivros() { int op = 1; printf("CADASTRAR LIVROS:\n"); do { if(cb<5) { printf("TITULO:\n"); fflush(stdin); gets(livs[cb].titulo); printf("EDITORA:\n"); fflush(stdin); gets(livs[cb].editora); printf("ANO DE PUBLICACAO:\n"); scanf("%i",&livs[cb].ano); Sleep(2000); op=0; } if(op!=0) { printf("Deseja continuar cadastrando\n"); printf("1-Sim\n"); printf("0-não\n"); scanf("%i",&op); }//condicao para o op } while(op!=0); } Comente a parte na qual você invoca a tal função e você poderá continuar programando sem mais. Sorte #include <stdio.h> #include <stdlib.h> #include <string.h> #include<windows.h> typedef struct Endereco { char rua[30],bairro[30]; int casa; } endereco; typedef struct Alunos { char nome[20],email[50]; int matricula,telefone; endereco end; } alunos; typedef struct Livros { char dataSolicitacao[11],titulo[20],editora[50]; int ano, alugado; } livros; //declaraçaõ das variaveis globais livros livs[5]; alunos als[5]; int cb = 0; //declarar os procedimentos void Cadastrar(); void Pesquisar(); void CadastarAlunos(); void CadastrarLivros(); void AlugarLivros(); int main() { int op; do { system("cls"); system("Title Biblioteca"); printf("1-Cadastrar\n"); printf("2-Pesquisar\n"); printf("0-Sair\n"); scanf("%i",&op); switch(op) { case 1: Cadastrar(); break; case 2: //Pesquisar(); break; case 0: exit(0); break; default: printf("Opcao invalida\n"); } } while(op!=0); system("Pause"); } //criar os procedimentos void Cadastrar() { int op; printf("CADASTRO:\n"); do { printf("1-Cadastrar Aluno\n"); printf("2-Cadastrar Livros\n"); printf("0-Sair\n"); scanf("%i",&op); switch(op) { case 1: CadastarAlunos(); break; case 2: CadastrarLivros(); break; case 0: op=0; break; default: printf("Opcao invalida\n"); } } while(op!=0); } void CadastarAlunos() { int op = 1; do { if(cb<5) { printf(" CADASTRAR ALUNO:\n"); printf("NOME:\n"); fflush(stdin); gets(als[cb].nome); printf("MATRICULA:\n"); scanf("%i",&als[cb].matricula); printf("E_MAIL:\n"); fflush(stdin); gets(als[cb].email); printf("TELEFONE:\n"); scanf("%i",&als[cb].telefone); printf("RUA:\n"); fflush(stdin); gets(als[cb].end.rua); printf("Nº CASA:\n"); scanf("%i",&als[cb].end.casa); printf("BAIRRO:\n"); fflush(stdin); gets(als[cb].end.bairro); Sleep(2000); op=0; } if(op!=0) { printf("Deseja continuar cadastrando\n"); printf("1-Sim\n"); printf("0-não\n"); scanf("%i",&op); }//condicao para o op } while(op!=0); } void CadastrarLivros() { int op = 1; printf("CADASTRAR LIVROS:\n"); do { if(cb<5) { printf("TITULO:\n"); fflush(stdin); gets(livs[cb].titulo); printf("EDITORA:\n"); fflush(stdin); gets(livs[cb].editora); printf("ANO DE PUBLICACAO:\n"); scanf("%i",&livs[cb].ano); Sleep(2000); op=0; } if(op!=0) { printf("Deseja continuar cadastrando\n"); printf("1-Sim\n"); printf("0-não\n"); scanf("%i",&op); }//condicao para o op } while(op!=0); } Comente a parte na qual você invoca a tal função e você poderá continuar programando sem mais. Sorte
-
qual a diferença entre algumas bibliotecas?
pergunta respondeu ao Isabella Oliveira de vangodp em Tutoriais & Dicas - C, C++
Daniel pertence ao grupo lá do discord, é o melhor programador brasileiro que conheço. >_<- 3 respostas
-
- bibliotecas
- c++
- (e %d mais)
-
Tenha isso sempre em mente, por muito que você conte como é seu programa, só você tem acesso a ele, os demais usuarios temos que imaginar como ele é, e nem sempre podemos imaginar como ele é exatamente. Se você quiser resposta rápida exponha a porção do código, ou melhor ainda, o código completo, isso lhe ajudará a obter resposta mais rápida. Si o código for muito grande comprima ele, e mande o projeto tal qual. E ainda se o programa trabalhar com arquivos, melhor mande os arquivos para poder ver o que está acontecendo neles também. Fica pouco claro lhe ajudar com base nisto: Não acha? Quanto antes você ajudar os usuários do fórum a compreender o problema antes você conseguirá ajuda. Sorte.
- 2 respostas
-
- checlist lista
- lista
- (e %d mais)