Durub
-
Total de itens
788 -
Registro em
-
Última visita
Posts postados por Durub
-
-
Olá DelTar,
Pontos flutuantes usam o padrão IEEE 754. O exemplo na Wikipedia de como converter um número decimal para binário te ajuda?
https://pt.wikipedia.org/wiki/IEEE_754#Convertendo_número_decimal_para_binário
Acho que essa página tem tudo o que você precisa.
Abraços! -
Olá Iago, seja bem vindo.
Quais as dúvidas? Seria bom questionamentos mais específicos, se não apenas estariamos fazendo o exercício para você.
Um abraço,
Durub -
Através do cmd, você deve passar os argumentos após chamar o programa:
> anagram.exe argumentos aquiPelo CodeBlocks, você pode passar os argumentos indo na opção: Project > Set programs' arguments...
Abraços! -
Mostre o que você já tentou para que possamos te auxiliar melhor.
Abraços.
-
Faltou importar a biblioteca iostream.
#include <iostream>
Abraços. -
brunoandrad, é verdade, me enganei!
Como o rocco falou, o código do farol não está disponível...
Abraços.
-
brunoandrad, ele só começa a contar errado quando estoura o limite que um int consegue armazenar -- converter para char sofreria do mesmo problema.
O número 777777777 contém 9 dígitos iguais a 7.
O número -812156815 contém 0 dígitos iguais a 7. (com 10 digitos 7)
O valor máximo de um inteiro (int) é 2.147.483.647 (daí vem a "restrição" dos 9 dígitos). Experimente trocar int para long long e veja o que acontece:#include <stdio.h> #include <math.h> int main() { long long num, teste_num; /* número a ser testado */ long long ordem_de_magnitude; /* ordem de magnitude do número num */ int i; int quantidade = 0; /* quantidade de dígitos igual a 7 */ printf("Digite um numero: "); scanf("%lld", &num); ordem_de_magnitude = (int) log10(num); teste_num = num; for(i = ordem_de_magnitude; i >= 0; i--) { long long multiplicador = pow(10, i); int digito = teste_num / multiplicador; teste_num -= digito * multiplicador; if (digito == 7) { quantidade++; } } printf("O número %lld contém %d dígitos iguais a 7.\n", num, quantidade); return 0; }
Digite um numero: 7777777777777777777
O número 7777777777777777777 contém 19 dígitos iguais a 7.long long consegue contar até 19 dígitos.
Abraços!
-
Aqui está uma forma -- note que o loop vai de "cima para baixo", de forma a ir modificando o número (teste_num), removendo a casa mais significativa a cada passo:
1234 -> vira 234 -> vira 34 -> vira 4. Sempre pega o dígito mais significativo do teste_num atual.
#include <stdio.h> #include <math.h> int main() { int num, teste_num; /* número a ser testado */ int ordem_de_magnitude; /* ordem de magnitude do número num */ int i; int quantidade = 0; /* quantidade de dígitos igual a 7 */ printf("Digite um numero: "); scanf("%d", &num); ordem_de_magnitude = (int) log10(num); teste_num = num; for(i = ordem_de_magnitude; i >= 0; i--) { int digito = teste_num / pow(10, i); teste_num -= digito * pow(10, i); if(digito == 7) { quantidade++; } } printf("O número %d contém %d dígitos iguais a 7.\n", num, quantidade); return 0; }
Abraços.
-
Minha tentativa:
#include <stdio.h> int main() { int cateto1, cateto2, hipotenusa; for(hipotenusa = 1; hipotenusa < 500; hipotenusa++) { for(cateto1 = 1; cateto1 < 500; cateto1++) { for(cateto2 = 1; cateto2 < 500; cateto2++) { int esquerdo = cateto1 * cateto1 + cateto2 * cateto2; int direito = hipotenusa * hipotenusa; if(esquerdo == direito) { printf("São números de pitágoras: %d - %d - %d\n", hipotenusa, cateto1, cateto2); } else if(esquerdo > direito) { /* otimização de performance -- não haverão mais números válidos quando o lado esquerdo é maior que o direito */ break; } } } } return 0; }
Abraços!
-
Qual a dúvida?
Abraços. -
Ola, acho que faltou colocar o código.
O link para o código está na descrição do vídeo no YouTube.
Abraços. -
Falta passar os índices corretos para o vetor gab.
&gab[i] ao invés de apenas &gab e gab[i] ao invés de apenas gab, para acessar o valor na posição i do vetor.
Mesma coisa com o vetor alu.
Edit: acho que o sistema do fórum comeu o índice, na verdade. Tente postar o código em um bloco de código do fórum. Como assim os resultados estão errados -- o que está acontecendo, exatamente?
Abraços.
-
O jeito mais simples é: abra os dois arquivos, leia caractere por caractere utilizando a função fgetc do primeiro arquivo e escreva-o com a função fputc no segundo arquivo.
O jeito mais rápido (em termos de velocidade de execução) é utilizando fread e fwrite.
Abraços. -
Sobre o Eclipse, não consigo responder.
Pela imagem anexada sobre o CodeBlocks, a solução é apertar "Sim". O que ocorre após confirmar que o arquivo deve ser compilado (Do you want to build it now? -> Deseja compilá-lo agora?)?
É o seguinte: para rodar um programa, ele deve existir, correto? Não há como rodar algo que não exista. Por enquanto, apenas existe o seu código (Untitled1.c). Não existe o programa equivalente (Untitled1.exe). O CodeBlocks avisa isso: parece que o programa ainda não foi compilado, deseja compilá-lo agora? Ou seja, deseja realizar a "transformação" do seu código em algo executável (Untitled1.c -> Untitled1.exe)? Após a compilação ter sido efetuada com sucesso, é para ser possível rodar o programa pela IDE sem problemas.Abraços.
-
Com que parte você está se batendo? Já tentou alguma coisa?
Abraços. -
Veja se a função rewind resolve o seu problema.
Abraços. -
Estou com pouco tempo, mas posso adiantar duas coisas:
allCar += d.nCarros é equivalente a allCar = allCar + d.nCarros -- basicamente, você está somando à variável.
Tem uma introdução legal sobre structs aqui: http://www.ime.usp.br/~pf/algoritmos/aulas/stru.html
Abraços, -
A diferença é que se tiver uma linha mal formada, o programa continua sem problemas. Lendo uma linha por vez, caso a linha contenha problemas, a entrada continua ok para a próxima linha. Todavia, ainda é bom disparar um erro. Pode-se verificar quantos dados o sscanf leu com seu valor de retorno. Se ele for diferente de 5, um erro de leitura ocorreu.
O sscanf deverá estar em um loop, onde os dados são lidos e armazenados corretamente de acordo com a semana. Recomendo utilizar arrays (vetores) para fazer isso.
Abraços. -
Para abrir arquivos, utilize a função fopen. Para ler linha por linha do arquivo, utilize a função fgets, da stdio.h (ver primeiro exemplo).
Para ler uma linha em especifico, utilize sscanf:
sscanf(linha, "%d %d %d %d %d", &semana, &dia, &hora, &carros, &motos, &caminhoes);
Onde semana, dia, hora, carros, motos e caminhoes são inteiros. O resto da lógica e análise, por enquanto, fica por você. Quando começar a trabalhar em cima do problema e enfrente alguma dúvida mais específica em relação a lógica, venha falar conosco!
Abraços. -
a[x] pode ser 12, a[y] também pode ser 12, depende dos valores de x ou y. Quando x = 0, a[x] é 12. Quando y = 0, a[y] é 12.
Veja como o array é imprimido no código:
for (i=0; i < MAX; i++) printf("%d\n",a[i]);
O que significa (tive que deixar separado em um bloco de código devido a formatação do fórum)
a[i]
? Significa acessar a posição i do array e retornar o seu valor. É a mesma coisa com a[x] e a[y].
int a[5]; a[0] = 12; a[1] = 9; a[2] = 14; a[3] = 5; a[4] = 1; // Imprime: "12 9 14 5 1" printf("%d %d %d %d %d\n", a[0], a[1], a[2], a[3], a[4]); // Também imprime: "12 9 14 5 1" int y = 0; printf("%d %d %d %d %d\n", a[y], a[y + 1], a[y + 2], a[y + 3], a[y + 4]); /* Por quê? a[y] = a[0] = 12 a[y + 1] = a[1] = 9 a[y + 2] = a[2] = 14 a[y + 3] = a[3] = 5 a[y + 4] = a[4] = 1 */
Quando y = 0:
a[y] > a[y + 1]
a[0] > a[0 + 1]
a[0] > a[1]
12 > 9 (verdadeiro, logo entra no if)
Parece, para mim, que a dificuldade está em entender qual o valor retornado por a[y + c], sendo c, nesse caso, 1.
a[y + c] não é a[y] + a[c], é a[(y + c)].
Abraços. -
Por que a[y] jamais seria maior que a[y + 1]? y jamais será maior que (y + 1). Entretanto, a[y] pode muito bem ser maior que a[y + 1].
a[x] significa acessar o valor na posição x (as posições começam em zero) do array. Logo, a[0] acessa a primeira posição do array -- a posição zero.
Array do exercício:
int a[5]; a[0] = 12; a[1] = 9; a[2] = 14; a[3] = 5; a[4] = 1;
Suponha y = 0:
a[y] -> 12
a[y + 1] -> 9
Logo, a[y] > a[y + 1] quando y = 0. O mesmo é válido para y = 2 e y = 3.
Abraços. -
Em C:
Gráfico: SDL ou Allegro.
Física: Implementar simulando o tempo de forma incremental. Simular em passos de 1ms, por exemplo.Buscando algum código pronto para abrir a janela, imagino que seja relativamente tranquilo implementar o resto do projeto. Isto é, dependendo do seu conhecimento de C.
Abraços. -
Leia uma string utilizando a função fgets. É importante utilizá-la por questões de segurança. Ver o exemplo que lê uma string seguramente.
Sugiro um vetor de 1024 posições.Abraços.
-
Strings no C terminam no caractere NULL. É igual ao número 0, e pode ser representado por '\0'.
char *ponteiro = string; while(*ponteiro != '\0') { /* le caractere */ ponteiro++; // avança para o próximo caractere }
Abraços.
Dúvidas no exercicio
em C, C++
Postado
E quais as dúvidas, exatamente?
O fluxo seria o seguinte:
1. Criar e testar a função de fatorial
2. Declarar o vetor A
3. Declarar o vetor B
4. Ler 10 números no vetor A
5. Fazer um for pra executar a função fatorial em cada elemento do vetor A e colocar no vetor B.
Basicamente:
6. Imprimir o vetor A
7. Imprimir o vetor B
Qual parte está te causando as maiores dificuldades e por quê?