
Mnemonic
Membros-
Total de itens
170 -
Registro em
-
Última visita
Tudo que Mnemonic postou
-
char string[100]; gets(string); Nessa parte digamos que o usuário digitou "testando"; então: string[0] vai ser igual a 't' string[1] vai ser igual a 'e' string[2] vai ser igual a 's' string[3] vai ser igual a 't' etc... int i; i = 0; string vai ser igual a 't' i = 1; string vai ser igual a 'e' i = 2; string vai ser igual a 's' etc...
-
Se você fez exatamente assim, deveria funcionar. Veja se não é o caso dos nomes estarem diferentes (maiúsculos) ou dos arquivos estarem com permissão pra serem acessados. Se você usa apenas "import tank" funciona normal? Em tankgame você está usando as funções de tank diretamente ou tá usando "tank." na frente delas?
-
Deixe a parte gráfica pro final. O importante primeiro é representar os tipos de dados. Primeiro você precisa representar um vértice do poligono. Como eles estão no plano cartesiano, todos eles terão uma coordenada X e Y, além de estarem ligados sempre a outros dois vértices. typedef struct tVertice { float X; float Y; struct tVertice *p; //proximo struct tVertice *a; //anterior } vertice; Um poligono vai ser um conjunto de vértices, então você precisa perguntar ao usuário o número de vértices do poligono dele e a partir daí você cria uma função que vai setando as coordenadas X e Y e ligando os ponteiros entre os vértices que for criando, de modo que o *a de um seja igual ao *p de outro. E no final você liga o *p do último com o *a do primeiro. Depois disso vai ficar mais fácil pra usar as funções da graphics.h, porque basta percorrer a lista e desenhar as coordenadas que você pegou.
-
Você pode usar os codigos de escape do terminal mesmo... mas sinceramente eu acho que fica muito bagunçado. Aqui tem exemplos: http://www.tldp.org/HOWTO/Bash-Prompt-HOWTO/x329.html
-
Pra c++ usa o g++ em vez do gcc
-
Você tem que dizer qual é a sua dúvida, senão fica parecendo que você quer que alguém resolva pra você.
-
O Dev foi abandonado há muito tempo. Um bom substituto é o codeblocks.
-
Eu tava pronto pra te passar vários sites aqui, mas fui notando que a maioria deles não tinha pascal. Pascal é uma ótima linguagem pra aprender na faculdade, mas na internet você vai tirar mais proveito escolhendo C, porque a maioria dos códigos pascal que você encontra são na verdade código delphi, que acho que não ajuda muito pra aprender logica. O que sobrou foi esse: http://www.sourcecodeonline.com/code/pascal.html
-
Vou dizer como eu faria, daí você vê se dá uma luz ou não. Eu criaria um vetor de tamanho 24 (6x4) com os pares de figuras do jogo. Você pode representar eles como números mesmo. Por exemplo, números de 1 até 24, e os pares seriam: 1-2, 2-4, 3-6, 4-8, etc (ou seja, um número e o dobro dele formariam um par... mas qualquer outra regra serve). Depois no código eu faria uma matriz 6x4, e nela eu iria inserir esses números do vetor, usando algum tipo de randomização (você pode também criar algo pra desordenar o vetor antes de inserir). 01 02 03 04 05 06 07 08 09 10 11 12 ... Em seguida, criaria uma segunda matriz, do mesmo tamanho e também guardando valores numéricos. Essa matriz serviria apenas pra guardar a "máscara" do "quente/morno/frio". Digamos que quente seja 2, morno seja 1, frio seja 0. Essa matriz seria inicializada com 0. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ... Na matriz principal o usuário escolhe "14". Seu programa procura nessa matriz a posição de 07 (o par de 14). Digamos que a posição seja [2][3]. Então na segunda matriz, qualquer coordenada que a linha X seja maior que 2, ou menor que 2, e a coluna Y seja maior que 3 ou menor que 3, você soma mais 1. 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 ... Depois disso, mais uma passagem: Qualquer coordenada onde o X seja menor que 2-1 ou maior que 2+1 e o Y seja menor que 3-1 ou maior que 3+1, você soma mais um. 2 1 1 1 2 1 0 1 2 1 1 1 2 2 2 2 ... Depois é só pensar em algum jeito de exibir tudo na tela em forma de jogo.
-
for (x1 = 0.6; x1 <= 1.0; x1 += 0.1) for (x2 = 0.7; x2 <= 1.0; x2 += 0.1) for (x3 = 0.5; x3 <= 1.0; x3 += 0.1) for (x4 = 0.6; x4 <= 1.0; x4 += 0.1) printf("%f %f %f %f\n", x1, x2, x3, x4); Queria pensar num jeito mais elegante, mas só consegui isso.
-
Você pode representar as quadras usando uma matriz: 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 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 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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X 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 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 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 o X representa o seu ponto de partida [5][17] numa matriz 10x27. Digamos que todas as posições estejam preenchidas com 0, menos a posição 5x17, que é 1. Se a entrada for NLLSOO você testa cada caractere da entrada e: N: matriz[x-1][y] (uma linha pra cima) S: matriz[x+1][y] (uma linha pra baixo) L: matriz[x][y+1] (uma coluna pra direita) O: matriz[x][y-1] (uma coluna pra esquerda) Enquanto caminha pela matriz, você vai fazendo os testes pra ver o valor das linhas está entre 0-9 e as colunas entre 0-26 (os limites da cidade). Assim como testa se no final voltou pro ponto de origem.
-
(Resolvido) Ajuda com matriz de Strings
pergunta respondeu ao Thiago de Paula Beserra de Mnemonic em C, C++
typedef Struct sNomes { char nome[50]; } NOMES; NOMES nomes[10][10]; //....... nomes[4][2].nome = "blablabla"; Esse é apenas um dos jeitos de fazer. Não é o melhor, mas acho que o código fica bem legível assim. Desculpe a falta de criatividade pros nomes. -
Não seria com o uso de herança de classes?
-
Calcular número de ocorrências de caractere em string
pergunta respondeu ao Arthur Arruda de Mnemonic em C, C++
char umCharQualquer; char umaString[40]; int x, n=0; scanf("%c", &umCharQualquer); //aqui você lê o char scanf("%s", umaString); //aqui você lê a string for (x=0; x < strlen(umaString); x++) if (umaString[x] == umCharQualquer) n++; printf("%c apareceu %d vezes, umCharQualquer, n); -
Scanf funciona apenas pra palavras, pra frases inteiras usa o gets ou o fgets
-
O site oficial do python é bem completo quanto a isso. Além de baixar o executável, você tem lá um tutorial e um livro gratis.
-
Usando o fgets, você pode limitar o tamanho do buffer a ser lido. Mas usando o gets normal não. Ou seja, se a sua string tem um tamanho [5] e o usuário digitar dezenas de caracteres, esses caracteres após a posição 5 vão ser escritos em posições não reservadas da memória... na melhor das hipóteses vai apenas escrever lixo na memória, mas na pior das hipóteses pode ser usado pra criar alguma brecha de segurança no seu programa (sobrescrever alguma memória adjacente importante) ou travar o programa. Em alguns compiladores, se você usa o gets você recebe um warning.
-
Algoritmo para gerar todos os cenários possíveis
pergunta respondeu ao pedromss de Mnemonic em Lógica de Programação
Eu consigo pensar aqui em 5 FOR's aninhados. Funciona, mas não sei se é a solução mais prática. -
Tá faltando um "break;" nos cases. case 1: m = 31; case 2: m = 30; break; case 3: m = 31; break; Nesse exemplo de cima, se o case for 1, ele vai executar o "m=31" e logo em seguida vai executar o "m=30", depois vai sair do switch por causa do "break". Se o case for 2, ele apenas executa o "m=30" e sai do swtich.
-
Tem dois problemas aí... um deles é o seguinte: Quando você usa apenas o nome de um array, sem o indice, isso equivale ao ponteiro/endereço pro próprio array. A função scanf pede como segundo parametro o endereço pra variável onde ele vai guardar o valor lido, por isso você usa o simbolo de endereço (&) geralmente, mas no caso dos array não precisa, por isso que eu disse. Então em vez de scanf("%s", &dados.nome); Você usa: scanf("%s", dados.nome); pois dados.nome já é um endereço. O segundo problema é que a função scanf lê apenas palavras e não frases. Então sempre que tiver um espaço em branco ou um enter, ele vai parar de ler. Tem duas soluções... a simples e perigosa: gets(dados.nome); E a complicada e segura: fgets(dados.nome, 50, stdin); (50 é o tamanho maximo que você quer ler) (stdin é o buffer do teclado)
-
Tente isso: m = int(a) + int(B) + int(c)
-
Ajuda explicar contagem num vetor de caracteres
pergunta respondeu ao david-ikki de Mnemonic em C, C++
int pp=1,tam,x; //pp, tam e x são do tipo int. pp começa com valor 1 printf("\nAs letras na posicao impar são: ",x); //imprime aquela frase e o valor de x. Mas x tá sem valor nenhum aqui. while(pp<=tam-1) // testa de pp menor ou igual a (tam - 1) printf(" %c ",APELIDO[pp]); //imprime o caractere da posição pp do vetor apelido. -
a[2] ---> Esse vetor tem DUAS posições: a[0] e a[1] A posição a[2] não existe. a[3] ---> 3 posições: a[0], a[1] e a[2]... a posição a[3] não existe também. Você tá declarando uma matriz [2][2], ou seja, 2x2. Se quiser uma 3x3, precisa declarar a[3][3].
-
Provavelmente sim.
-
system("comando");