Ir para conteúdo
Fórum Script Brasil

Jonathan Queiroz

Membros
  • Total de itens

    3.718
  • Registro em

  • Última visita

Tudo que Jonathan Queiroz postou

  1. Utilize a função strcpy da string.h. Essa função copia o conteúdo de uma string para outra. Ao escrever um código do tipo: char v[50]; v="abcde"; Você estará alocando espaço para 50 variáveis do tipo char e criando um ponteiro (variável do tipo char*) que aponta para o primeiro caractere. Ao atribuir essa variável para "abcde" (que é outro ponteiro para caracteres), você perde o endereço do ponteiro inicial e passa a apontar para outro lugar, ao invés de utilizar aquele espaço de 50 caracteres para armazenar a string. Lembre-se também de que um vetor de 7 chars armazena apenas 6 caracteres (a última posição deve ser preenchida com 0 para indicar o fim da string). Portanto, um char[7] não pode armazenar a palavra "exemplo".
  2. Evite utilizar getters e setters desnecessariamente. Ao invés de atributos privados (você não postou o .h, mas creio que tenha declarado corpo e assunto dessa forma) e getters/setters, você poderia ter deixado as propriedades públicas, ou mesmo utilizar uma struct. ifstream Mensagem("Mensagem.txt",ios::in); Não entendi direito o motivo do arquivo "mensagem.txt", então removi essa parte do código. list<Mensagem> Lista; list<Mensagem>::iterator Lst; As variáveis Lista e Lst estavam como variáveis globais. Alterei para que fossem locais à função main apenas para facilitar a organização. Lista.push_from(m); Troquei o push_front por push_back, para evitar que a lista seja mostrada na ordem inversa. Também modifiquei o código para, ao invés de utilizar vetores de caracteres, utilizar a classe std::string e acrescentei a parte de mostrar mensagens apenas para que pudesse testar. O código ficou assim: #include <iostream> #include <string> #include <list> using namespace std; struct Mensagem{ string assunto, corpo ; }; int main(){ list<Mensagem> Lista; list<Mensagem>::iterator Lst; int opcao=1; while(opcao!=6){ Mensagem m; cout << "Escolha uma opcao: \n1 - Inserir Msg \n2 - Remover Msg \n3 - ordenalor por assunto \n4 - Mostrar Mensagens \n5 - juntar Filas \n6 - Sair" << endl; cin >> opcao; cin.get(); switch(opcao){ case 1: cout << "Digite um assunto: " << endl; cin >> m.assunto; cout << "Digite uma mensagem: " << endl; cin >> m.corpo; Lista.push_back(m); break; case 4: unsigned int numero_mensagem=0; for(Lst=Lista.begin();Lst!=Lista.end();Lst++){ cout << "Mensagem " << ++numero_mensagem << endl << "\tAssunto: " << Lst->assunto << endl << "\tMensagem: " << Lst->corpo << endl ; } } } } Qualquer dúvida posta aí.
  3. Jonathan Queiroz

    Exercicio c++

    O que você já fez? Poste o código que você tem e as dúvidas que forem surgindo.
  4. Movendo: PHP --> Ajax, Javascript, XML, DOM.
  5. Sim, é possível. Nesse caso você teria que manter uma variável informando se a tecla foi pressionada. Algo assim: var shift_pressionado=false onkeydown=function(){ ... if(tecla==tecla_shift) shift_pressionado=true else if(shift_pressionado) return false //evita que a tecla seja processada ... } onkeyup=function(){ ... if(tecla==tecla_shift) shift_pressionado=false ... }
  6. Me desculpe a falta de atenção, era display:none; mesmo, mas tinha escrito display:hidden (o hidden é usado no atributo visibility). Precisando de alguma coisa é só postar. Obs.: O tópico foi marcado como Resolvido.
  7. Como estava funcionando antes então pode deixar assim mesmo (imaginei que estivesse ocorrendo algum erro na comparação). Se possível poste como está o código do combo optSituacao.
  8. Ao invés de comparar a variável obrigatorio com 1 tente comparar com "1" (string).
  9. Peço que evite a postagem de up's conforme a regra 3.8 (ver regras) Pode explicar melhor a dúvida? Como assim chama o efeito e não encontra a página?
  10. Se possível poste como resolveu o problema, a fim de deixar a solução visível a outras pessoas com a mesma dúvida. Obs.: O tópico foi marcado como Resolvido.
  11. Você sabe utilizar expressões regulares? Utilizando expressões regulares é relativamente simples. Recomendo a leitura desse link: Guia de expressões regulares.
  12. Bem-vindo ao fórum! Não sei muita coisa sobre Access, mas na medida do possível posso ajudar.
  13. Bem-vindo ao fórum, precisando de qualquer coisa é só postar.
  14. Para evitar essa repetição você pode seguir essa lógica: Pedir os números ao usuário;Percorrer todos os itens desse vetor (usando o iterador i).Para cada item, percorrer novamente o vetor (usando o iterador j)Se, na primeira repetição encontrada, o valor de j for menor que i, significa que, no loop principal, já processamos a ocorrência. Nesse caso, pare de procurar repetições (para sair do loop, use a instrução break)Do contrário (j>i), apenas incrementamos o contador.Depois basta verificar se cont>1; se for, mostra a mensagem e percorre o vetor novamente para mostrar as posições.No seu código, algumas variáveis estavam sendo declaradas logo no início da função. Isso não é errado, mas deixa o código um pouco desorganizado. Como está utilizando C++, não é necessário fazer dessa forma (em C é obrigatóio). Adaptei a função para ajudar na organização. Segue o código: #include <stdlib.h> #include<stdio.h> int main(int argc, char** argv){ //Quantidade de números const int tamanho=20; //Vetor com os números int vet[tamanho]; //Obtém a lista for(int i = 0; i < tamanho; i++){ printf("\n\nDigite o numero para a posicao %d: ",i); scanf("%d",&vet[i]); } //Percorre os números e armazena os repetidos printf("\n"); for(int i = 0; i < tamanho; i++){ int cont=0; for(int j = 0; j < tamanho; j++){ if(vet[j]==vet[i]){ if(j<i){ //essa verificação já foi feita antes, portanto o valor já foi escrito na tela break; } cont++; } } if(cont>1){ printf("O numero %d se repete %d vezes, nas posicoes: ",vet[i],cont); bool virgula=false; //variável que apenas indica se devemos colocar a vírgula antes do número for(int j=0; j < tamanho; j++){ if(vet[j]==vet[i]){ if(virgula){ printf(", "); //escreve a vírgula } printf("%d",j); virgula=true; //como já escrevemos ao menos uma vez, precisaremos de vírgula } } printf("\n"); } } system("pause"); return 0; } Nota: em C++ o modificador const indica que uma variável não pode ter seu valor modificado. Se desejar, pode adaptar o código para percorrer os documentos do vetor para ficar em uma função. Você tentou fazer algo parecido com o loop intermediário (de índice j no seu código). Esse código que postei ainda não é a melhor forma de fazer (isto é, poderia ser otimizado), mas é suficiente para fins didáticos.
  15. O problema ocorre ao tirar a raiz quadrada. Você está passando 1/2 para a função, mas o C++ está tratando o 1 como inteiro, ou seja, 1/2 = 0. Como x^0 = 1, o programa retornava sempre 1. Para resolver o problema, você pode converter o 1 para float. Exemplo: dst = pow(dst,(float)1/2);
  16. Movendo: C, C++ --> Tutoriais & Dicas - C, C++. O código parece bem interessante. Testei aqui no VS e não funcionou, mesmo com a inclusão da conio.h. Acrescentei as seguintes linhas no início do arquivo e o código passou a funcionar: enum COLORS { BLACK = 0, BLUE = 1, GREEN = 2, CYAN = 3, RED = 4, MAGENTA = 5, BROWN = 6, LIGHTGRAY = 7, DARKGRAY = 8, LIGHTBLUE = 9, LIGHTGREEN = 10, LIGHTCYAN = 11, LIGHTRED = 12, LIGHTMAGENTA = 13, YELLOW = 14, WHITE = 15, BLINK = 128 }; struct text_info { unsigned char winleft; /* left window coordinate */ unsigned char wintop; /* top window coordinate */ unsigned char winright; /* right window coordinate */ unsigned char winbottom; /* bottom window coordinate */ unsigned char attribute; /* text attribute */ unsigned char normattr; /* normal attribute */ unsigned char currmode; /* current video mode: BW40, BW80, C40, C80, or C4350 */ unsigned char screenheight; /* text screen's height */ unsigned char screenwidth; /* text screen's width */ unsigned char curx; /* x-coordinate in current window */ unsigned char cury; /* y-coordinate in current window */ }; enum text_modes { LASTMODE=-1, BW40=0, C40, BW80, C80, MONO=7, C4350=64 };[/codebox] Olhei as declarações que estavam faltando e copiei desse post. Obs.: O link que você postou está quebrado. Edit: Corrigi o link, você tinha deixado a palavra "aqui" no final da URL.
  17. Nesse caso, você pode trabalhar com o atributo display no CSS (display: hidden) ou mudar o Javascript para se adequar ao CSS. Não entendi muito bem, pode explicar melhor?
  18. Uma solução pode ser deixar o elemento inicialmente invisível via CSS.
  19. Movendo: Tutoriais & Dicas - Flash & ActionScript --> Flash & ActionScript.
  20. Se for apenas limpar a página e mostrar uma mensagem é possível sim. A classe Exception poderia ficar mais ou menos assim: var Exception=function(description){ document.body.innerHTML="Ocorreu um erro: "+description } E, quando ocorrer um erro, você pode apenas instanciar um objeto da classe. new Exception("erro desconhecido") De qualquer forma, não vejo muito sentido em deixar de usar o try..catch para utilizar essa classe.
  21. Basta criar uma função que realize a troca e passar um parâmetro para ela. Exemplo: function MudaImagem(nova_imagem){ this.src=nova_imagem } E o HTML pode ficar mais ou menos assim: <img src="imagem1.jpg" onmouseover="MudaImagem('imagem2.jpg')" onmouseout="MudaImagem('imagem1.jpg')">
  22. Até onde sei não é possível com o throw. O que você pode fazer é somente instanciar um objeto da classe Exception e tratar o erro nele.
  23. Isso apenas significa que o código Javascript tem algum erro, não necessariamente relacionado ao fato de o script estar num arquivo externo. Obs.: Separei seu post do tópico principal.
×
×
  • Criar Novo...