Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - 85

#71
igualmente fijate, poné tu código en este compilador online de C/C++ y fijate que hay varios problemas

http://www.compileonline.com/compile_cpp_online.php

Citar
Compiling the source code....
$g++ /tmp/136516399727456.cpp -o /tmp/136516399727456 -lm 2>&1
/tmp/136516399727456.cpp: In function 'int main()':
/tmp/136516399727456.cpp:29: error: incompatible types in assignment of 'double' to 'double [1000000]'
/tmp/136516399727456.cpp: In function 'void Histogram(double*, double*, int, int, double*, double*, double*)':
/tmp/136516399727456.cpp:73: error: invalid operands of types 'double*' and 'double' to binary 'operator<'
/tmp/136516399727456.cpp:73: error: cannot convert 'double*' to 'double' in assignment
/tmp/136516399727456.cpp:74: error: invalid operands of types 'double*' and 'double' to binary 'operator>'
/tmp/136516399727456.cpp:74: error: cannot convert 'double*' to 'double' in assignment
/tmp/136516399727456.cpp:86: error: invalid operands of types 'double*' and 'double' to binary 'operator-'
/tmp/136516399727456.cpp:100: error: invalid operands of types 'double*' and 'double' to binary 'operator*'
/tmp/136516399727456.cpp:100: error: in evaluation of 'operator*=(double*, double)'

fijate si los podés arreglar para que al menos se compile en el compilador online así te podemos ayudar mejor  ;D.

#72
Este es un código que hice recientemente donde se utiliza esa función, fijate si podés hacer que te funcione mirando el código, sino avisame
http://foro.elhacker.net/programacion_cc/mensaje_scroll-t386831.0.html
#73
No. esto se llama 'wrapper' de una DLL. O en castellano, se dice DLL de reemplazo o versión propia de una DLL existente.

En este caso, opengl32.dll es una DLL existente que el juego necesita cargar por las dependencias con opengl32 que el juego tiene (ya que se trata de un juego hecho en opengl32, pero dispone de un modo alternativo de video que es Direct 3D). Entonces al ubicar tu propia versión de opengl32.dll en la carpeta del juego, se va a cargar en lugar de la original que se encuentra en la carpeta system32 (WinXP), en realidad se cargan las 2, pero el juego referencia a la DLL de mentira XD.
#74
Algunos sitios web que ofrecen la posibilidad de compilar, depurar y ejecutar un programa en C/C++

http://codepad.org/

Me gusta XD
http://www.compileonline.com/compile_cpp_online.php

http://isocpp.org/blog/2013/01/online-c-compilers

http://liveworkspace.org/

http://gcc.godbolt.org/

https://compilr.com/c-compiler

mucho mejor para hacer pruebas rápidas de los códigos que aparecen por el foro  >:D




#75
printf("El resultado de la suma es: %d\n", vect3);

lo que pasa con esto:

int vect3[3];

es que el nombre 'vect3' significa una dirección en la memoria donde empieza el vector.
para acceder a los 3 elementos de tu vector, lo hacés así:

Citarvect3[0]
vect3[1]
vect3[2]
printf("%d %d %d\n", vect3[0],vect3[1],vect3[2]);

de esa forma se accede a los valores en cada posición del vector.




#76
aweee k nivel   ;D
#77
Cita de: OmarHack en  4 Abril 2013, 17:07 PM
... sin bugs!  :D

con que sin bugs eh? arre XD

cuando tenés así..


if (tipoVehiculo == 1) // Si es un coche...
{
...
}
if (tipoVehiculo == 2) // Si es una moto...
{
...
}
if (tipoVehiculo == 3)
{
...
}


se utiliza IF + ELSE IF de esta forma:

if (tipoVehiculo == 1) // Si es un coche...
{
...
}
else f (tipoVehiculo == 2) // Si es una moto...
{
...
}
else if (tipoVehiculo == 3)
{
...
}


eso para que no tengas que comprobar todos los casos innecesariamente.

mejor aún, es usar un selector de casos 'SWITCH', el cual actúa como una tabla indexada, con la cual se puede acceder a la posición correcta dentro de la tabla, de esta forma:

switch(tipoVehiculo)
{
case 1: {...}break;
case 2: {...}break;
case 3: {...}break;
}


PS: era pseudocódigo no es para compilar
#78
No entiendo de que se trata tu programa pero así como te lo paso anda.´

comidas.txt
Citar
111
222
333
444
555

Código (cpp) [Seleccionar]

#include<stdio.h>
#include<stdlib.h>


void ciclo(FILE *fichero, int minimo,int alimentos, int *variable){
   
    int  dias=0, hambre, i, comida, calorias, contador;
   
    contador=0;
    *variable=0;
    hambre=0;
    i=0;
   
    while(!feof(fichero))
    {
calorias=0;
                       
for(i=0;i<alimentos;i++){
         
fscanf(fichero,"%i", &comida);  

printf("%d %d %d\n",comida,alimentos,i);
system("pause");

calorias=calorias+comida;            
}
           
if(calorias<minimo){
                         
hambre=hambre+1;          
}
                       
else {        
contador=hambre;        
hambre=0;      
}
                       
if(hambre>contador){
                       
*variable=hambre;        
}        
}          
}

int main(int variable){
   
    FILE *fichero;
    fichero=fopen("comidas.txt", "r+");

    if(!fichero){

puts("No existe el fichero!\n");
system("pause");
//return 0;

fichero=fopen("comidas.txt", "w");
if(!fichero){
puts("No se ha creado el fichero!\n");
system("pause");
return 0;
}
fclose(fichero);
fichero=fopen("comidas.txt", "r+");
    }
   
    int minimo, alimentos;
    printf("Introduce la cantidad de alimentos:\n");
    scanf("%i", &alimentos);

    alimentos = 5;

    printf("Introduce el minimo de calorias:\n");
    scanf("%i", &minimo);
    ciclo(fichero,minimo,alimentos,&variable);
    printf("Hambruna mas larga: %i\n", variable);

    fclose(fichero);
    system("pause");
    return 0;
}


#79
Ak está el code, avisenme cualquier koza si algún detaye se habrá escapado XD

Eso que remarcastes significa lo siguiente, son todos los casos en los cuales se continúa copiando char por char hasta completar un bloque.
un bloque se forma o sólo por letras o sólo por números.
Entonces esa comprobación comprueba el estado de un par de flags o agrupación de flags, que informan el paso de un bloque a otro, o mejor dicho el final de un bloque.
Si se encuentra ante el final de un bloque, entonces se incrementa la posición en el array dinámico,  y se resetea el contador usado para copiar cadenas.

Código (cpp) [Seleccionar]

#include<stdlib.h>
#include<stdio.h>
#include<string.h>
//http://www.cplusplus.com/reference/cstdlib/realloc/


int main(){


char cadena[512];
char** array_de_cadenas = 0;
char** array_de_cadenas_r = (char**)malloc(sizeof(char)*1);
array_de_cadenas_r[0] = (char*)malloc(sizeof(char)*128);
memset(array_de_cadenas_r[0],0,sizeof(char)*128);

// char array_de_cadenas[20][128] = {{0}};

printf("ingrese la cadena..\n");
scanf("%s", cadena);

int modo=0;
int pos=-1;
int let=0;// contador usado como flag
int num=0;// contador usado como flag
int i=0;
int j=0;
while(cadena[i]){

//if(pos == 20) break;
if(j==(128-2)) {

printf("uno de los bloques sobrepasa char=128-2\n");
system("pause");
return 0;
}
if(cadena[i] >= 'a' && cadena[i]<='z'){
let++;
num=0;
}
else if(cadena[i] >= 'A' && cadena[i]<='Z'){
let++;
num=0;
}
else if(cadena[i] >= '0' && cadena[i]<='9'){
num++;
let=0;
}
else
{
let=0;
num=0;
}

if((modo==1&&let)||(modo==2&&num));
else
{
pos++;
j=0;
array_de_cadenas_r = (char**)realloc(array_de_cadenas_r, sizeof(char)*(pos+1));
array_de_cadenas_r[pos] = (char*)malloc(sizeof(char)*128);
memset(array_de_cadenas_r[pos],0,sizeof(char)*128);
}


if(let){

array_de_cadenas_r[pos][j] = cadena[i];
j++;
modo=1;
}
else if(num){

array_de_cadenas_r[pos][j] = cadena[i];
j++;
modo=2;
}
else
{
modo=0;
}

i++;
}

array_de_cadenas = array_de_cadenas_r;
for(int b=0; b<pos+1; b++){
printf(array_de_cadenas[b]);
putchar('\n');
}

for(int c=0; c<pos; c++) free(array_de_cadenas[c]);
free(array_de_cadenas);

system("pause");
return 0;
}



#80
El FOR es así

for(;;){

...
}


Citarfor( PARTE1 ; PARTE2 ; PARTE3)

Como ves, las 3 partes son opcionales, pero te quedaría un FOR infinito, como en este caso:
for(;;){

...
}



Si vas a usar algunas de sus 3 partes, tenés que comprender que la primera es para asignaciones, la segunda es para condiciones y la tercera para incrementaciones.

Esto es lo que escribiste.. usaste la primera y la segunda.
for(multiplos3 < numero2; multiplos3 + sumaTres;)

Pero fijate si las 3 partes tienen sentido con esa línea