-
Total de itens
884 -
Registro em
-
Última visita
Tudo que vangodp postou
-
Sim... mas ainda não expressou sua ideia do que deseja do programa nem pois nada referente a sua tentativa de resolver o problema. Não lhe entendo. Cofre de que?
-
Claro! Conte conosco. Qual sua duvida?>_<
-
você tem 2 números se ambos n4ao podem sair do range de entre 1 a 20 seria: if( ((n1<1)||(n1>20)) && ((n2<1)||(n2>20)) ) E NÃO PONHA PONTO E VIRGULA DEPOIS DE WHILE OU IF. Isso é errado: if( ((n1<1)||(n1>20)) && ((n2<1)||(n2>20)) ); <---ERRADO!!!! você está separando while do corpo do while. Troque while();{} por while(){} e if();{} por if(){}. retire o goto e ponha esse pedaço de código dentro de um laço repetitivo como while. Deve-se praticar isso.
-
dentro de contadivisores onde você declarou N com maiúscula para a condição do while?
-
Em c++ isso não é possível, a menos que você use array dinâmico. Em C sim é possível em alguns padrões, não em todos, isso se chama VLA(Variable-length array) em C, também conhecido como Array de Tamanho Variável, mas como falei isso só é possível em C, e em alguns padrões, não em todos. Veja como reservar dinamicamente um array em c++: #include <iostream> using namespace std; int main (){ int tamanho = 10; //Tamanho que vai ter o vetor int *vetor; //Ponteiro que vai apontar ao array no free storage vetor = new int[tamanho]; //New reserva a memoria e guarda essa direção no vetor //guardamos 10 inteiros no vetor for (int i=0; i<tamanho ; i++ ) { vetor[i] = i; } //Imprimimos o vetor for (int i=0; i<tamanho ; i++ ) { cout << vetor[i] << ", "; } //Passo muito importante é liberar o vetor. Vetores dinâmicos n4ao se liberam sozinhos como arrays no heap(arrays normais na pilha) delete[] vetor; cin.ignore(); //pausa return 0; }
-
ponha seu código para ver.
-
Quem lhe ensinou usar goto? Te está roubando o money >_<
-
Se você tiver uma string de 9 letras você precisa de uma letra mais para o nulo que É OBRIGATORIO reservar espaço para ele, uma matriz é em realidade um vetor de vetores, cada linha tem um caracter nulo ao fim, por isso se você tem uma matriz de 9 linhas de 9 letras você precisa reservar 9 linhas de 10 letras sempre, sempre +1 nas linhas #include <stdio.h> #include <string.h> #define ROL 9 #define COL 10 int main () { int i, z; char matprt[ROL][COL] = { {'-', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'}, {'1', 'P', 'P', 'P', 'P', '-', '-', '-', '-'}, {'2', 'P', 'P', 'P', '-', '-', '-', '-', '-'}, {'3', 'P', 'P', '-', '-', '-', '-', '-', '-'}, {'4', 'P', '-', '-', '-', '-', '-', '-', '-'}, {'5', '-', '-', '-', '-', '-', '-', '-', 'B'}, {'6', '-', '-', '-', '-', '-', '-', 'B', 'B'}, {'7', '-', '-', '-', '-', '-', 'B', 'B', 'B'}, {'8', '-', '-', '-', '-', 'B', 'B', 'B', 'B'} }; //Imprimir for ( i = 0; i < ROL ; i++ ) { for ( z = 0; z < COL ; z++ ) { printf ( "%c ", matprt[i][z] ); } printf("\n"); } getchar(); return 0; }
-
use o botão <> e escolha c/c++ para apresentar o código, aumentará a chance de obter resposta. Basicamente para guardar uma struct você deve escolher o tipo de ficheiro, entre binário ou testo plano, abrir o arquivo em modo escritura(w) ou anexar(a). Dependendo de qual tipo de arquivo você escolheu você pode usar umas funções ou outras para salvar os dados. Se escolheu arquivo binário e pretende salvar a representação da memória da estrutura(int, float, char...), deveria usar fwrite e fread. Por outro lado se escolheu arquivo de testo plano(txt), você pode usar fscanf e fprintf, e também serializar os dados(converter em um string).
-
na primeira linha de main você abre ele tal como: ofstream agendacplusplus("agendacplusplus.txt"); Se não indicar nenhum modo de abertura por default trunca. Mais adiante você faz: agendacplusplus.open("agendacplusplus.txt",ios::in| ios::out | ios::app);// AKI SUPOSTAMENTE DEVERIA DAR O APPEND porem o arquivo já foi truncado. Prove fazer isso: #include <iostream> #include <fstream> #include <stdlib.h> using namespace std; int main(){ ofstream agendacplusplus; int opcao,tel; string nome; do{ system("cls"); cout<<"\n\n\t\também vindo ao programa agenda"; cout<<"\nMenu"; cout<<"\n1 - Cadastrar nome e telefone"; cout<<"\n2 - Listar todos os nomes e telefones"; cout<<"\n3 - Sair"; cout<<"\nDigite uma opcao: "; cin>> opcao; switch(opcao){ case 1: cout<<"\n\n\t\tOpcao de cadastro"; cout<<"\nDigite um nome: "; cin.ignore(); getline(cin,nome); cout<<"Digite o telefone: "; cin>>tel; agendacplusplus.open("agendacplusplus.txt",ios::app);// AKI SUPOSTAMENTE DEVERIA DAR O APPEND agendacplusplus<<nome<<"\t\t"<<tel<<endl; agendacplusplus.close(); break; case 2: exit(0); break; case 3: exit(0); break; default: exit(0); break; } }while(opcao!=3); return 0; }
-
É possível passar o enunciado da questão? Porque não sei o que seu programa tem que fazer.
- 3 respostas
-
- estrutura de dados
- alocação dinamica
- (e %d mais)
-
aqui você tem um exemplo completo na resposta do usuario 1freakday: http://www.clubedohardware.com.br/forums/topic/908485-abrir-site-em-programa-c/ Basicamente trata-se de usar a função sprintf para montar um array e depois enviar ao comando system. Aprenda a usar sprintf que tudo funcionará. O sprintf é como o printf porem a saída vai dirigida para um array em vez de ir para a tela do computador como no caso do printf, essa é a diferença, o resto é praticamente igual.
-
Note que você esta passando uma string literal para o system. O símbolo de barra invertida serve para expressar certos valores em decimal, da tabela asc2, hexadecimal, octal, entre muitos outros, por exemplo, o salto de linha(\n). Se o salto de linha não tivesse a barra invertida adiante como você diferenciaria o salto de linha de um 'n' normal? Por isso se coloca barra invertida adiante de certos caracteres, o problema vem quando queremos realmente por uma barra invertida na string, o compilador toma como que a seguinte letra depois da barra invertida é o que o usuário quer expressar, porem como falei a letra que preceder a barra invertida pode representar um mundo de coisas e isso o programador deve dominar a perfeição. Se você quer expressar uma barra invertida, você deve por uma barra invertida antes '\\'. O mesmo acontece com aspas duplas, se eu quero resaltar um texto dentro de uma string com aspas duplas olha o que acontece: Nesse caso eu tenho "start C:\\Users\\user\\Desktop\\Nero7.exe /S" mas quero que Nero7.exe fique entre aspas duplas como na imagem. O problema é que o compilador interpreta isso como se fosse 2 strings com uma possível variável no meio que mas bem parece uma variável membro de uma struct... Um bagulho meio doidão! Totalmente impossível do compilador digerir vamos. Que teríamos que fazer para arrumar isso? Simples! pondo uma barra invertida antes das aspas duplas: Agora você pode ver que o compilador tratou tudo como uma só string. você pode ficar meio doido ao ver coisas como \\\" mas saiba que \\\" é \\ + \" certo? São duas coisas diferentes, você pode dar um espaço para ficar mais legivel, porem o efeito é o mesmo. \\ significa \ \" significa " etc Basicamente se elimina a primeira barra. A barra se coloca para não confundir certas coisas com letras ou outras coisas. Outra coisa parecida é o operador modulo, usamos modulo para obter o resto de uma divisão. Mas e se quero imprimir porcentagem tipo 100%? Fácil! colocamos 2 módulos %%, isso quer dizer que quero imprimir o caractere de porcentagem e não fazer uma conta. Por que falo tudo isso? Porque vamos ver primeiro o comando correto para abrir uma aplicação no prompt. abrimos uma janela de prompt e escrevemos o seguinte: Com esse comando podemos abrir a calculadora desde qualquer diretório, isso funciona porque calculadora esta declarada no path do sistema, isso faz com que ela funcione em qualquer pasta, mas a rota real dela é C:\Windows\System32: Podemos por calc.exe dentro de aspas duplas. por que digo isso? Por que primeiro você deveria provar aqui no cmd como executar seu programa! Alguns programas as vezes tem espaços entre nome, não é seu caso mas imagine que seu programa se chama super programa para calcular.exe. É evidente que no caso do programa ter espaços você tem que por o nome do programa entre aspas duplas, serve para agrupar uma coisa. igualmente vejo que o nome do programa vem acompanhado do flag /s, outro motivo para por o nome do programa entre aspas duplas, ou seja colocando o nome entre aspas duplas você está separando o nome do /S que facilita o entendimento para o programa. No cmd o comando para abrir a calculadora ficaria: Agora que temos nosso programa se executando corretamente no prompt é só adaptar isso ao programa em c. pegamos "C:\Windows\System32\"calc.exe" /S" e como sabemos que adiante de uma barra invertida deve por outra, e também adiante de aspas duplas deixamos o array tal como: "C:\\Windows\\System32\\ \"calc.exe\" /S" E colocamos agora o start: "start C:\\Windows\\System32\\ \"calc.exe\" /S" tadah!!! o system deve levar isso para executar a calculadora: system ("start C:\\Windows\\System32\\ \"calc.exe\" /S"); Agora é só adaptar isso ao seu problema. Prove no cmd antes de usar um comando, assim você se certifica que ele funciona corretamente, logo depois você aplica ele ao seu programa modificando as barras e aspas como expliquei. Eu consegui executar exitosamente um programa no escritorio com este comando: system("start C:\\Users\\%USERNAME%\\Desktop\\\"Mini Doom V1.3.exe\""); Note que retirei o /S e coloquei a variável do ambiente %USERNAME%. O programa troca a variável %USERNAME% pelo nome do usuário atual do sistema fazendo com que funcione no computador de qualquer pessoa, se você executar isso no computador da clara, o programa trocara %USERNAME% por Clara automaticamente, ele fará isso em qualquer computador com qualquer conta de usuário. Se quiser saber mais procure algum tutorial sobre variáveis de ambiente. Acho que com isso você pode executar qualquer coisa no seu PC. Sorte!
-
Repeticao de menu condicionada
pergunta respondeu ao Junior Quadros de vangodp em Tutoriais & Dicas - C, C++
Não entendo nada sua duvida sinto muito não poder ajudar Talvez si se explicasse novamente o que espera que seu programa faça, talvez seja capaz de ajuda-lo. Sorte! -
Por favor use o botão que esta na imagem para inserir seu código no forum: Escolha a linguagem C/C++ e pegue o código, isso aumentará a possibilidade de obter ajuda.
- 3 respostas
-
- estrutura de dados
- alocação dinamica
- (e %d mais)
-
Material De Estudo
pergunta respondeu ao Denis Bittencourt Muniz de vangodp em Tutoriais & Dicas - C, C++
Provavelmente por que já não funcionem. Tente copiar e pegar em vez de fazer click neles. -
Quando for ler strings e ponteiros não ponha & adiante no scanf. A linha scanf ("%s", &nome), deveria ficar tal como scanf ("%s", nome), sem o & adiante de nome. Explicação: Para ler um string em C, precisamos indicar para o scanf o inicio desde onde vamos começar a escrever, é dizer precisamos informar para o scanf se queremos escrever desde a posição zero do string ou outra posição, porque não estamos limitados a escrever desde a primeira posição. Imagine que tenho um array char frase[100], e quero que o scanf me escreva desde frase[10] adiante. Pois é... com scanf é possível, vamos ver como: Se tenho: char frase[100] Para ler desde o principio, ou seja frase[0] uso o scanf tal como: scanf("%s", frase); A efeitos 'frase' é a mesma coisa que &frase[0], um ponteiro ao primeiro elemento do array frase. O &frase[0] retorna a direção do primeiro elemento. E o frase é um ponteiro que guarda a direção do primeiro elemento. Para se fazer uma ideia, podemos usar 2 formas diferentes para a mesma coisa: scanf("%s", frase); E scanf("%s", &frase[0]); São as duas formas diferentes pela qual obtemos o mesmo resultado. Certamente você vai se perguntar a essas alturas... Por que tem 2 formas de se fazer a mesma coisa? Simples! Que aconteceria se eu quiser escrever desde frase[10] em vez de frase[0]? A forma correta seria scanf("%s", &frase[10]). Fácil não? Então lembra que 'frase' é como se fosse um "atalho" para não ter que escrever &frase[0] já que esse ultimo é mais difícil de escrever, na realidade frase é um ponteiro, por esse motivo não devemos por & adiante de strings e ponteiros, porque ponteiros e strings já são direções de memória e não precisamos por & adiante. Porem se quero indicar uma posição em concreto tal como &frase[0] ou &frase[10], então sim devo por & adiante. Não se preocupe pelo tema se ainda não chegou em ponteiros, somente lembre não por & adiante do indicador em scanf, a menos que queira especificar uma posição como vimos. Lembre que frase é exatamente a mesma coisa que &frase[0], aponta para o primeiro elemento do nosso array, e que isso é o que importa para scanf, saber desde que elemento tem que começar a escrever.
-
Como Crio um programa para gerar combinações de 4 numeros que eu colocar nele
pergunta respondeu ao Guilber Vieira de vangodp em Tutoriais & Dicas - C, C++
A forma de fazer o programa você pode encontrar ela aqui: http://www.clubedohardware.com.br/forums/topic/1197803-anagramas-em-c/ na resposta do usuario Mauro Britivaldo -
Como Crio um programa para gerar combinações de 4 numeros que eu colocar nele
pergunta respondeu ao Guilber Vieira de vangodp em Tutoriais & Dicas - C, C++
A resposta é permutação simples, e você pode ver como funciona nesse video: Dai seria aplicar isso ao seu programa. -
Se frase é uma string... Como é que você esta comparando uma string com um char em frase != ' '. Não seria frase[i] != ' '? Procure usar o botão <> para postar código.
-
Praticamente todas as linguagens lhe permitirão isso. Para entornos empresariais acho que c#(windows). Ou prove phyton que é algo mais fácil. Mas pode ser C, C++, C#, Java, Python, PHP+html5+CSS+javascript(navegadores), etc
-
Mas que contêm cada linha? Um nome cada linha? O melhor seria você subir o arquivo e explicar melhor o que quer fazer.
-
Que tipo de erro pode fazer o windows fechar meu programa?
pergunta respondeu ao Daniel Carlos de vangodp em C, C++
Basicamente pode ser que você ta tentando acessar memória que não lhe corresponde. Existem muitas possíveis causas como desde ter um array de 10 posições e tentar escrever depois da décima, errar ao passar direções para funções ou ponteiros, esquecer de por & adiante de uma variável no scanf, por & adiante de uma variável que em realidade é um ponteiro no scanf..... e por aí vai o tiro. Lhe recomendo ver os videos desse cara aqui: https://www.youtube.com/watch?v=_8-ht2AKyH4&index=12&list=PL2_aWCzGMAwLZp6LMUKI3cc7pgGsasm2_ Nesses videos ele explica a arquitetura da memória dos programas, como funcionam, etc, um recurso muito útil para entender como está composto a memória do computador e assim tentar evitar erros típicos de programação. Os vídeos estão em inglês, porem muitos deles tem subtítulos gerados pelo canal, se usar o tradutor de subtítulos do youtube você pode perfeitamente ir lendo, se não souber inglês, mas se souber.... melhor ainda ;) Se quiser saber o erro exato ponha seu código aqui para que seja possível lhe ajudar. Se for muito grande comprima em rar e suba o arquivo, tente comentar sempre onde você acha que está o erro, assim economizas tempo já que podemos ir direto ao falho e não que temos que estar passando lupa em todo o programa. Sorte! No primeiro vídeo ele explica como está composto a memória de um programa. Nesse outro vídeo ele explica algo que tem que ver com o tal erro, que se bem pode não ser exatamente o seu caso mas pode lhe dar uma ideia: https://www.youtube.com/watch?v=F2nrej6Kjww&list=PL2_aWCzGMAwLZp6LMUKI3cc7pgGsasm2_&index=17 Veja todos os vídeos! >_< -
vc precisa de 2 contadores, 1 para npares e 1 para nimpares, ambos podem ser int e começar com o valor zero. Para saber se um numero é par vc precisa usar o "operador modulo"(%), que ao contrario do operador de divisão(/) obtém o resto de uma divisão, qualquer numero que for dividido por 2 e sobrar zero é par. if( (numero % 2) == 0 ) npares++;//Se é par... else// nimpares++; //Se não... a variavel numero que vc pode ver dentro de if, vc terá que usar um scanf para ir lendo e logo após realizar a operação acima. Tudo isso dentro de um for que se repita 10 vezes.
-
Percorrer uma lista dinamica para grafos
pergunta respondeu ao carollima3 de vangodp em Tutoriais & Dicas - C, C++
não da para por o código completo?- 2 respostas
-
- grafos
- lista encadeada
- (e %d mais)