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

#731
Es lineal.

¿Cuál es la asignatura?
#732
¿Es para la universidad? Tenéis que aprender a documentaros, el mundo laboral es muy chungo.
Yo he encontrado este enlace. Rápidamente he podido reconstruir la rutina en C.
http://www.keil.com/support/man/docs/armasm/armasm_dom1361289878324.htm

A ver si lo consigues a partir de esto.
#733
En vez de hacer esas comparaciones tendrías que ordenar los números, ya sea en un array o en las mismas variables.

Y a partir de allí ir mostrándolos en pantalla y agregando un salto de línea si dos contiguos son diferentes u omitiéndolo si son iguales.
#734
¿Sabes que hace cada instrucción?
#735
Programación C/C++ / Re: Buscador (C)
23 Mayo 2017, 16:24 PM
El programa todavía sigue teniendo muchos errores. Pero más grave aún es que el propio archivo de datos está mal formateado.

Lo he estado revisando y en las filas de números usas como separador la coma ',' pero también usas como separador de millares la coma ','. Puedes decir que el separador de elementos no es solo una coma, sino una coma y un espacio; pero sigue habiendo datos erróneos, como por ejemplo el '3,2' '3,3' '1,25'. Si hay que interpretar que eso son números decimales la cosa empeora más ya que si un número tiene 3 decimales ¿cómo lo distingues de un entero de millares? Si son números separados hay un problema de formato.

La solución que te doy es que uses como único separador de datos la coma y para los números que sean en formato C. Así te facilitarás mucho la vida. Si después quieres representarlos de forma entendible para humanos ya crea las rutinas necesarias.


Por cierto, deberías pensar en separar tus programas en subrutinas. Te ahorrarías instrucciones, estaría más ordenado y facilitarías su lectura.
#736
Prueba con
fprintf(archivo, "%d/%d/%d", dia, mes, anyo);

o usa sprintf para crear una cadena
sprintf(cadena, "%d/%d/%d", dia, mes, anyo);
#737
¿Así?

printf("%d/%d/%d", dia, mes, anyo);
#738
Programación C/C++ / Re: Buscador (C)
22 Mayo 2017, 23:47 PM
Sí, es grande, no es una cosa que se haga en diez minutos.
Lo malo es que no has sabido aprovechar C: Lo bueno de este lenguaje es que es pequeño y por ende su biblioteca también es pequeña, pero hace muchas cosas.
Por ejemplo, para separar las palabras de una cadena, y sobre todo si tienen un formato bien definido como es esta del texto, tienes la función strtok, de string.h que te devuelve un token de la línea cada vez que es llamada.

Código de ejemplo de cómo podrías usarlo en tu programa:
strtok es destructivo por tanto modifica la línea de búsqueda
strtok tiene una forma peculiar de funcionar. Aquí explica como usarla: http://c.conclase.net/librerias/?ansifun=strtok

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

char *linea="DAWN mission NSTAR, Resistojet, Radioisotope, ArcJet";

int main() {
    unsigned pos = 0;
    char nombre[255];
    char *token;
    char *c;
    char *linea_busqueda;
   
    linea_busqueda = malloc((strlen(linea)+1)*sizeof(char));
    strcpy(linea_busqueda, linea);
   
    printf("Busqueda: ");
    fgets(nombre, 255, stdin);
    if((c = strchr(nombre, '\n')))
        *c = '\0';
   
    token = strtok(linea_busqueda, ",;");
   
    while(token) {
        fprintf(stderr, "%d\n", pos);
        while(*token == ' ') ++token;
   
        if(*token == '\0' || strcmp(token, nombre))
            token = strtok(NULL, ",;");
        else
            break;
       
        ++pos;
    }
   
    if(token)
        printf("Elemento encontrado en posicion %d", pos);
    else
        printf("Elemento no encontrado");
}


Otra cosa. Para capturar números que eran cadenas y convertirlos en número de verdad tienes más funciones como sscanf (nótese las 2 eses al principio). Ejemplo:
#include <stdio.h>
#include <string.h>

int main() {
    char *numero_real = "2.14e+10";
    double numero;
   
    sscanf(numero_real, "%lf", &numero);
   
    printf("%lf", numero);
}


#739
Programación C/C++ / Re: Buscador (C)
21 Mayo 2017, 19:30 PM
Estos for están mal construidos.
Inicialización, comprobación y actualización.
#740
Como te acqbas de iniciar te diré que debes hacer la función del mismo tipo que regresarás con el return a final de ella. Si la función no devolverá nada debe ser void.
Si te fijas en los mensajes del compilador te lanzará quejas por no devolver nada cuando hay que hacerlo.
La verdad es mucho más profunda pero a nivel de quien acaba de empezar basta eso.