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 - amchacon

#1111
En efecto, para que compile en C solo había que cambiar la declaración de la estructura eslabón:
typedef struct cadena
{
    int N;
    struct cadena* Anterior;
}Eslabon;
#1112
Cita de: Miky Gonzalez en  7 Marzo 2013, 15:23 PM
amchacon: Vi la implementación en C++, cuando tenga tiempo de probarla, siempre y cuando tenga permiso para ello, la pondré en el artículo que escribí en mi web como código alternativo. Saludos.
Sin problemas, lo acabo de revisar y he corregido bastantes bugs. También he añadido una documentación con Doxygen (aunque no hacía falta porque es bastante simple: Construir el objeto CPU, llamar a su método para ejecutar un programa y capturar las excepciones):
https://dl.dropbox.com/u/69551225/Maquina%20Virtual.rar

PD: Mirare lo de MIPS y te cuento ;)
#1113
Pues lo debi hacer con el compilador de C++ sin darme cuenta.

Supongo que para que te corra en C tendras que poner la estructura al estilo C (con el typedef y tal).

Cuando éste en casa te confirmo.
#1114
Interesante.

He intentado hacer una implementación en C++. Lo dejo por aquí, me falta testearlo:
https://dl.dropbox.com/u/69551225/Maquina%20Virtual.rar

Para usarlo, teneis que añadir el archivo "CPU.hpp" y crear un objeto CPU. Despues llamais al metodo ejecutar.

#1115
Cita de: leosansan en  6 Marzo 2013, 22:35 PM
Pues así, por ejemplo:

Código (cpp) [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
#include <float.h>

int main(void){
    int i=0;
    float num,mayor=-FLT_MAX ;
    do {
        printf ("Introduzca el numero %d : ",i+1);
        scanf("%f",&num);
        while (getchar()!='\n');
        if (num > mayor)
            mayor = num;
        i++;
    }while (num!=0);
    printf ("\n\nEl mayor es: %g",mayor);
return EXIT_SUCCESS;
}



Saluditos!. ...
Debo ser el rey de las cosas complicadas, eso no se me había ocurrido xD.

En su lugar tendría que haber dicho que ordenases esos numeros... Así no te ahorrarias de almacenarlos  ;D
#1116
Cita de: 0xDani en  6 Marzo 2013, 16:51 PM
@amchacon, en tu codigo no te has acordado de que suele ser correcto liberar la memoria?  :silbar:
Eeeeh...  ;D

Da igual, al finalizar el programa se liberara toda la memoria reservada :)

Cita de: leosansan en  6 Marzo 2013, 17:47 PM
Bueno, bueno ahí podríamos hablar de arrays asignados estáticamente o dinámicamente. Si declaro un puntero como *enteros puedo luego acceder a sus posiciones como enteros[i], que es la forma clásica de un array. ;)

Por cierto, el valor cero para salir de la introducción de los datos impide que se pueda entrar ese valor.


Saluditos!. ... :rolleyes:
Sí, el cero es un punto debil. Quizás se podría sustituir con una cadena de texto "Fin", pero entonces tendría que transformar cadenas a enteros... No useis ceros!  :xD

En el código que he puesto ahí no creo ningún array. Todos son elementos individuales y por ello no puedo acceder con el operador []. Me daría un error en ejecución.

En este caso podría haberse resuelto con un array estático pero no siempre es posible. Te aventuro a que intentes crear en C el siguiente programa:

- Dado una lista de numeros terminados con un cero, calcula el numero mayor.

No puedes determinar el tamaño del array hasta que hayas terminado de guardar todos los números. Con array estáticos no puedes y con array dinámicos da bastantes problemas.
#1117
No es un error, es un warning y que le vas a sacar? Lo unico que dice esque no se encuentra el archivo.

Cualquier programa decente está preparado en caso de que no se encuentre un archivo...
#1118
Cita de: OmarHack en  6 Marzo 2013, 13:52 PM
¿Por qué el programa al ejecutarse dura medio segundo?
Porque los ordenadores son muy rápidos, no tardan tanto en mostrar un texto por pantalla ;)

Si quieres que se pause, tienes que ponerlo explicitamente:

Código (cpp) [Seleccionar]
#include <iostream>
using namespace std;
int main (void)
{
    cout << "mostrar frase" << endl ;
    cin.get(); // Esperar a que se introduzca un caracter por teclado...
    return 0 ;
}


Por cierto un tutorial bueno lo tienes aquí:
http://minidosis.org/C++/
#1119
Programación C/C++ / Re: Ayuda con arreglos.
5 Marzo 2013, 21:55 PM
Inicializas arryc pero no arryS.

Por cierto, para que usas las conio? No son multiplataforma y en vez de getch() puedes usar getchar().

Algo parecido te diría con windows.h
#1120
printf("Introduce n\n");
    scanf("%d",&n);
    float a[n]; /* Recuerda que la primera declaracion de "a" debe ser esta,
                       quita la de mas arriba */

No te sirve esto?. Solo te falta llenar los datos y calcular la media.