Bueno, pues nada. Gracias por tus respuestas
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úCita de: ivancea96 en 3 Octubre 2015, 09:36 AM
Te propongo otras opciones primero:
-Utilizar un lenguaje como python para realizar la ecuacion en tiempo de ejecucion
-Interpretar la ecuacion con C++
C++ es un lenguaje compilado. Puedes meter en una variable el binario de una función y llamarla como si de una funcion se tratase. Pero eso ya es muy complicado.
#include <stdio.h>
unsigned int CountDigits(unsigned int uNumber);
int main() {
printf(" 1 2 3 4 5 6 7 8 9 10\n\n");
for(unsigned int uRow = 1u; uRow <= 10u; uRow++) {
if(CountDigits(uRow) == 1)
printf("\n %u", uRow);
else
printf("\n%u", uRow);
for(unsigned int uCol = 1u; uCol <= 10u; uCol++) {
if(uCol >= uRow) {
for(unsigned int i = 0; i < 5u - CountDigits(uCol*uRow); i++)
fputc(' ', stdout);
printf("%u", uRow*uCol);
} else {
printf(" ");
}
}
}
fgetc(stdin);
return 0;
}
unsigned int CountDigits(unsigned int uNumber) {
if(uNumber <= 9)
return 1;
if(uNumber <= 99)
return 2;
if(uNumber <= 999)
return 3;
printf("No se ha podido contar el numero de cifras");
return 0;
}
float funcion(float x) {
// Aquí se insertaría el código en código máquina
return x;
}
int funcion(int x) {
_asm {
add x, 2
};
return x;
}
#include <stdio.h>
#include <stdlib.h>
typedef struct {
int **elements;
} Mat;
unsigned int IngresarMatriz(Mat *matriz);
void ImprimirMatriz(Mat *matriz, unsigned int orden);
int main() {
unsigned int orden = 0;
Mat matriz;
orden = IngresarMatriz(&matriz);
if(orden == 0)
return 1;
printf("%p", matriz);
ImprimirMatriz(&matriz, orden);
for(int i = 0; i < orden; i++)
free((void *)matriz[i]);
free((void *)matriz);
return 0;
}
unsigned int IngresarMatriz(Mat *matriz) {
unsigned int orden;
int *tempPointer;
int tempValue;
printf("Introduzca el orden de la matriz cuadrada: ");
if(scanf("%u", &orden) == EOF) {
printf("\nLa proxima vez introduzca un numero valido.");
return 0;
}
matriz->elements = (int **)malloc(orden * sizeof(int));
if(matriz->elements == (int **)0) {
printf("Error asignando memoria a la matriz (primer paso)");
return 0;
}
for(int i = 0; i < orden; i++) {
matriz->elements[i] = (int *)malloc(orden * sizeof(int));
if(matriz->elements[i] == (int *)0) {
printf("Error asignando memoria a la matriz (segundo paso)");
return 0;
}
}
for(unsigned int fila = 0; fila < orden; fila++) {
for(unsigned int columna = 0; columna < orden;) {
printf("\nIntroduzca el elemento fila %u columna %u: ", fila, columna);
if(scanf("%i", &tempValue) == EOF) {
printf("\nLa proxima vez introduzca un numero valido.");
} else {
tempPointer = matriz->elements[fila];
tempPointer[columna] = tempValue;
columna++;
}
}
}
return orden;
}
void ImprimirMatriz(Mat *matriz, unsigned int orden) {
for(unsigned int fila = 0; fila < orden; fila++) {
for(unsigned int columna = 0; columna < orden; columna++) {
printf("\nEl elemento cuya fila es %u y cuya columna es %u tiene el valor de %i", fila, columna, matriz->elements[fila][columna]);
}
}
}
matriz = (int **)malloc(orden * sizeof(int));
if(matriz == (int **)0) {
printf("Error asignando memoria a la matriz (primer paso)");
return 0;
}
for(int i = 0; i < orden; i++) {
matriz[i] = (int *)malloc(orden * sizeof(int));
if(matriz[i] == (int *)0) {
printf("Error asignando memoria a la matriz (segundo paso)");
return 0;
}
}
gcc -Wall -std=c99 -o main.exe main.c
int tempValue;
int *tempPointer;
for(unsigned int fila = 0; fila < orden; fila++) {
for(unsigned int columna = 0; columna < orden;) {
printf("\nIntroduzca el elemento fila %u columna %u: ", fila, columna);
if(scanf("%i", &tempValue) == EOF) {
printf("\nLa proxima vez introduzca un numero valido.");
} else {
tempPointer = matriz[fila];
tempPointer[columna] = tempValue;
columna++;
}
}
}
Según el debugger, el programa crashea en