-
Posts
1.558 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Livros
Cursos
Análises
Fórum
Tudo que isrnick postou
-
Você está mandando um tipo diferente do que é esperado pela função, pois na função a variável declarada é *v[2][2], mas no main a variável é v[2][2]. Para obter o resultado correto o código deve ser assim: #include <stdio.h> #include <stdbool.h> void teste(bool v[2][2]){ printf("%d %d\n%d %d\n\n",&(v[0][0]),&(v[0][1]),&(v[1][0]),&(v[1][1])); } int main (void){ bool v[2][2] ={{0,0},{0,0}}; teste(v); printf("%d %d\n%d %d\n",&(v[0][0]),&(v[0][1]),&(v[1][0]),&(v[1][1])); return; } Com tipo compatível na função com o que é enviado pelo main().
-
Como faço para modificar a extensão .fla para .cdr?
isrnick respondeu ao tópico de Felipe Ceesar em Programação - outros
De uma busca rápida na internet, parece que no Flash você deve exportar para .ai ou .eps, indo em Export > Export Image, e escolhendo o formato. E depois dar Import no Corel. -
Para postar códigos no fórum sempre use a tag CODE apertando o botão <> no topo do campo de respostas, assim você preserva a formatação do código e evita que o fórum faça alterações nele. Por exemplo, o fórum "comeu" todos os [ i ] (sem espaços) do seu código, pois no fórum isso é a tag para deixar o texto em itálico, então o texto do seu código está em itálico a partir do primeiro que foi encontrado (os demais apenas somem porque o texto já tá em itálico). E o problema parece ser que você não limpou o buffer de entrada depois do primeiro scanf: scanf("%d", &x); Logo, está sobrando um '\n' na entrada padrão após o scanf, que então é entendido como uma entrada pelo gets ou fgets que vem a seguir, logo passa direto por ele... (Prefira usar o fgets.) Então precisa eliminar o '\n' da entrada com um %*c no scanf, ou um getchar após esse scanf.
-
Problemas com o comando type cmd
isrnick respondeu ao tópico de marco acv em Programação - iniciantes
Ok... O arquivo teste.txt também tem a extensão txt, logo também está sendo incluído quando você faz *.txt. Então o que acontece é que você salva o conteúdo de arquivo1.txt em teste.txt, depois o conteúdo de arquivo2.txt em teste.txt, e finalmente o próprio conteúdo atual de teste.txt em teste.txt, e essa última operação é que duplica. Podemos evitar isso usando outra extensão para o arquivo teste, como .log, ficando teste.log. E outra coisa a fazer é dar um Enter no final do conteúdo do arquivo1.txt e do arquivo2.txt, criando uma nova linha no final de cada um, assim vai manter cada linha separada, ao invés de juntar a última linha do primeiro arquivo com a primeira do segundo arquivo (Ex: "3 sapatos1 sapato"). Então, deixe apenas os arquivo1.txt e o arquivo2.txt na pasta (exclua ou mova para outra pasta os outros arquivos), e então use o comando assim: type *.txt>teste.log -
Problemas com o comando type cmd
isrnick respondeu ao tópico de marco acv em Programação - iniciantes
Verifique que o conteúdo dos arquivos txt na pasta são esses mesmo, o único jeito que o que indiquei criaria duplicidade é se um dos arquivos já tiver o texto duplicado. -
Problemas com o comando type cmd
isrnick respondeu ao tópico de marco acv em Programação - iniciantes
O operador de redireção >> acrescenta ao final do arquivo. Para substituir todo o conteúdo já salvo no arquivo use o operador de redireção >. type *.txt>teste.txt -
Poderia fazer algo desse tipo: for (i = 0; i<6; ++i){ for (j = 0; j<6; ++j){ if (i != j) //se não estiver na diagonal: printf(" %3d", matriz[i][j]); else //imprime espaços em branco na diagonal: printf(" "); } printf("\n"); }
-
Queria saber para que server os seguintes comandos!
isrnick respondeu ao tópico de Gabriel MS em C/C#/C++
Não coloque system("pause") no fim do programa, se você precisa que o programa mantenha a janela aberta quando este for finalizado procure a opção na sua IDE que faz a janela ficar aberta, por exemplo o Codeblocks já vem configurado pra pausar no fim do programa, e no Visual Studio acredito que basta executar o programa apertando Ctrl + F5. Alternativamente você pode executar o programa diretamente no próprio prompt (navegando até a pasta) e a janela não fechará quando o programa for concluído. -
Alguém sabe como fazer isso?
isrnick respondeu ao tópico de Philippe Henrique em Web e banco de dados
Acredito que o mais simples seria copiar cada um de uma tabela com os caracteres já combinados como essa: https://gist.github.com/dduleone/8717635 Note que apenas 13 letras pequenas estão combinadas, isso porque essas 13 são as únicas disponíveis no bloco "Combining Diacritical Marks" do Unicode ( https://en.wikipedia.org/wiki/Combining_Diacritical_Marks ). Existem mais no bloco "Combining Diacritical Marks Extended" com códigos indo da faixa do 0x1DC0 até 0x1DFF mas depende da fonte que está sendo usada ter uma representação desses caracteres. Você também pode usar uma ferramenta como essa pra fazer as combinações: https://www.cs.tut.fi/~jkorpela/fui.html8 Mas se você só quer sobrepor texto sobre outro texto em geral em HTML, basta usar a tag <ruby>: <!DOCTYPE html> <html> <body> <ruby> k <rt> d </rt> </ruby> <br><br> S <ruby>k<rt>d</rt></ruby> <ruby>i<rt>e</rt></ruby> <ruby>t<rt>e</rt></ruby> <ruby>t<rt>d</rt></ruby> o <br><br> S<ruby>k<rt>d</rt></ruby><ruby>i<rt>e</rt></ruby><ruby>t<rt>e</rt></ruby><ruby>t<rt>d</rt></ruby>o <br><br> <ruby> Skitto <rt> deed </rt> </ruby> </body> </html> -
Alguém sabe como fazer isso?
isrnick respondeu ao tópico de Philippe Henrique em Web e banco de dados
Isso é num site? Olhe o HTML da página usando o modo de inspeção do navegador pra ver como fizerem... Edit: Pesquisando descobri que se trata da combinação de 2 caracteres unicode: http://unicodelookup.com/#kͩ/1 -
A única coisa que precisa adicionar pra o código do @MassakiMsk funcionar é o incluir a biblioteca stdio.h. Mas também dei uma melhorada no código: #include <stdio.h> #include <string.h> int main () { char login[15] = "MEU_LOGIN"; //Tem que ter mais espaço que a string. Pelo menos 1 a mais que a palavra. char login1[15]; //Pode ser do mesmo tamanho que o login char senha[15] = "MINHA_SENHA"; char senha1[15]; printf("LOGIN: "); scanf("%s",login1); //String se lê com %s if (strcmp(login, login1) == 0) //strcmp() é uma função da biblioteca string.h que compara 2 strings. Se for igual a 0 é porque as duas são iguais. { printf("Logado\n"); } else { printf("error\n"); } return 0; } Coloquei a declaração das variáveis dentro do main() do programa, adicionei o tipo int da função main() e o return 0, entre outros detalhes...
-
O problema esta na inicialização dos valores de maior e menor. No começo do programa você faz: menor=m[0][0]; maior=m[0][0]; Mas nesse ponto ainda não foi atribuído nenhum valor para m[0][0], então o valor armazenado em "maior" e em "menor" é algum valor lixo que está lá nessa posição da memória. E se esse valor for maior que todos os números da matriz ele ficará armazenado como sendo o maior valor. Uma maneira de corrigir isso seria assim: int main() { int m[4][4],i,j,menor,maior,pma,pme; for(i=0;i<4;i++){ for(j=0;j<4;j++){ scanf("%d",&m[i][j]); if (i == 0 && j == 0){ menor=m[0][0]; maior=m[0][0]; } if(m[i][j]<menor){ menor=m[i][j]; } if(m[i][j]>maior){ maior=m[i][j]; } } } printf("O menor numero e: [%d]\n",menor); printf("O maior numero e: [%d]\n",maior); return 0; }
-
Para postar códigos no fórum sempre use a tag CODE apertando o botão <> no topo do campo de respostas, assim você preserva a formatação do código e evita que o fórum faça alterações nele. Por exemplo, o fórum "comeu" todos os [ i ] (sem espaços) do seu código, pois no fórum isso é a tag para deixar o texto em itálico, então o texto do seu código está em itálico a partir do primeiro que foi encontrado (os demais apenas somem porque o texto já tá em itálico).
-
achar os 3 maiores números utilizando a estrutura enquanto
isrnick respondeu ao tópico de ET Bilu em Programação - iniciantes
@Simon Viegas Acredito que seja um código para o Portugol Studio. -
Sem ter o código completo não podemos testar, e o sem ver a definição da struct CadastroC não consigo analisar se tem algum problema na entrada dos dados. Mas o problema pode estar aqui: fwrite(&c, sizeof(CadastroC),5,arquivo); Onde você colocou o parâmetro 5 indicando que tem 5 items em "c", mas "c" não é um vetor de 5 posições, é apenas uma variável comum do tipo CadastroC, logo o valor deveria ser 1 para armazenar apenas 1 CadastroC.
-
O que você já está usando, ou seja salvar os dados no arquivo em modo binário, usando fwrite() pra escrever os valores da struct inteira para o arquivo, e usar fread() quando precisar ler do arquivo. E seu programa é o responsável por adicionar, editar e/ou exibir na tela os dados do arquivo.
-
Você realmente precisa que os dados sejam legíveis ao abrir o arquivo em um editor de texto? Afinal esses dados só serão uteis para o seu programa, então seria suficiente se puder apenas exibir essas informações no próprio programa. No seu código o arquivo é aberto em modo de escrita binária (usando o parâmetro "wb" no fopen() ), para salvar em modo texto é necessário abrir o arquivo em modo de escrita de texto (parâmetro "w"). E são usados outros comandos para escrita para modo texto (fwrite() é para modo binário), como fprintf() e fputs(), que funcionam de forma parecida com o printf() e puts() exceto que você indica o arquivo de saída onde irá imprimir o texto. Ex: //Escreve 1234 no arquivo: fprintf(arquivo, "%d\n", 1234); Obs: Note que fprintf() pode ser usado para substituir printf(), basta usar stdout como parâmetro de arquivo do fprintf() para escrever para a saída padrão. E, similarmente, para ler os dados dos arquivos de texto é necessário usar funções como fscanf() ou fgets(). Lidar com arquivos em modo texto é mais complexo, logo tende a causar mais erros na programação. Para salvar dados geralmente este não é o modo mais recomendado. Só se for necessário permitir a edição manual das informações em modo texto, o que normalmente não é uma boa ideia, o melhor é fazer modificações apenas através do próprio programa. A escrita em modo texto é melhor para gerar saídas do programa, como relatórios e/ou resultados do programa a serem lidos pelo usuário.
-
A única condição para uma matriz ser uma matriz triangular superior é que os números abaixo da diagonal principal sejam iguais a 0 (o que implica que uma matriz diagonal é tanto uma matriz triangular superior quanto inferior). As casas da matriz abaixo da diagonal principal são as em que i > j (onde i é a coordenada da linha e j a coordenada da coluna da matriz). Logo, a lógica algoritmo fica assim: int triangularsuperior; //Em C um valor diferente de 0 é VERDADEIRO triangularsuperior = -1; for (i = 0; i < 5; ++i){ for (j = 0; j < 5; ++j){ if (i > j && matriz[i][j] != 0) triangularsuperior = 0; //0 = FALSO } } if (triangularsuperior) printf("\nMATRIZ TRIANGULAR SUPERIOR\n"); else printf("\nNAO E UMA MATRIZ TRIANGULAR SUPERIOR\n");
-
paridade de elementos de linha e coluna de matriz
isrnick respondeu ao tópico de Alberto Estenio em C/C#/C++
Primeiro precisa corrigir o preenchimento da matriz: //*___________DISTRIBUIÇAO DA MATRIZ_________________*// int mtz[10][10], i, j; srand(time(NULL)); for (i = 0; i < 10; i++) { for (j = 0; j < 10; j++) { //Estava gerando números de 0 a 10, //corrigi pra gerar de 1 a 10: mtz[i][j] = rand() % 10 + 1; } } Quanto a verificação da paridade na linhas e colunas modifiquei assim, mas não posso testar o código agora, então verifique se funciona corretamente: //*VERIFICAÇÃO DA PARIDADE DAS LINHAS E DAS COLUNAS*// int lp = 0, cp = 0; for (i = 0; i < 10; i++) { lp = 0; for (j = 0; j < 10; j++) { if (mtz[i][j] % 2 == 0) { lp++; } } if (lp == 10) printf("OS NUMEROS DA LINHA %d SAO PARES\n", i); } for (i = 0; i < 10; i++) { cp = 0; for (j = 0; j < 10; j++) { if (mtz[j][i] % 2 == 0) { cp++, } } if (cp == 10) printf("OS NUMEROS DA COLUNA %d SAO PARES\n", i); } -
Entre os ifs do a e do b tem o if do > 60... Quando entra nesse if o valor de numeros[ i ][ j ] é modificado, e em alguns casos o novo valor de numeros[ i ][ j ] vai ficar entre 15 e 45, o que significa que o programa entrará no próximo if e incrementará o b. Ex: Se numeros[ i ][ j ] = 76, não entrará no primeiro if, logo a permanece inalterado. Então a condição do segundo if é satisfeita e numeros[ i ][ j ] muda de valor para 16 (e t é incrementado). E como agora numeros[ i ][ j ] é igual a 16 o programa entrará no terceiro if, incrementando b. Logo, b foi incrementado mas a não foi.
-
Use: taskkill /IM processo.exe para fechar o processo do programa. Também pode incluir /T no comando pra fechar os processos filhos além do próprio processo.
-
Para postar códigos no fórum sempre use a tag CODE apertando o botão <> no topo do campo de respostas, assim você preserva a formatação do código e evita que o fórum faça alterações nele. Por exemplo, o fórum "comeu" todos os [ i ] (sem espaços) do seu código, pois no fórum isso é a tag para deixar o texto em itálico, então o texto do seu código está em itálico a partir do primeiro que foi encontrado (os demais apenas somem porque o texto já tá em itálico). Abaixo tem um post com uma explicação do que acontece nesse tipo de situação que gera esse problema na entrada de dados:
-
O próximo passo depois de definir exatamente o que o programa deve fazer, é definir a física do foguete, ou seja quais equações deverão ser usadas. Tendo as equações definidas você deve analisar quais valores devem ser fornecidos pelo usuário e quais serão assumidos como constantes ou calculados internamente. Seu programa vai consistir basicamente de pedir que o usuário forneça as informações dos parâmetros variáveis da equação, depois usar essas informações nas equações pra calcular os dados finais a serem obtidos, e no fim imprimir na tela e/ou gerar um arquivo com esses resultados.
-
O problema é que você está compilando como C++ e esse é um programa em C. Imagino que você tenha salvo o arquivo com extensão .cpp, e nesse caso o Codeblocks automaticamente assume que é um programa C++ e tenta compilar usando o compilador do C++. No Codeblocks programas em C devem ter extensão .c .
-
Usa %.1f no printf, onde o número depois do ponto é o número de casas depois da vírgula que deseja imprimir, no caso %.1f imprime o número com 1 casa após o ponto/vírgula, %.2f imprime com 2 casas, etc.
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