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

#1
Para double imagino es el mismo caso, no? claro cambiando ahora el rango soportado.
#2
Cita de: OmarHack en 28 Junio 2013, 17:25 PM
Yo lo haría de otra ma...
Cita de: pacoperico en 28 Junio 2013, 15:41 PM
Y para comprob...
Cita de: amchacon en 28 Junio 2013, 10:59 AM
Te estás confund...
Cita de: engelx en 28 Junio 2013, 09:24 AM
si la v...
Cita de: eferion en 28 Junio 2013, 09:16 AM
Lo primero es te...
Cita de: flony en 28 Junio 2013, 07:24 AM
de int  sup...


Gracias a todos por responder, me ha quedado mas claro con los codigos y definiciones que han puesto, bien explicados por cierto, ahora los implementare para ver commo me queda, saludos.
#3
Programación C/C++ / Rango de variables???
28 Junio 2013, 06:45 AM
Saludos. Pues mi pregunta es la siguiente, se supone que tengo que verificar que una variable declarada (en C) como int o como double se use de forma adecuada es decir que no sobrepase su rango, tengo mas o menos entendido que su rango es un cierto valor numerico pero no creo que la definicion que tengo sea la correcta.

El caso es que una vez declaradas dos variables int (por ejemplo), como podria hacer una operacion que supere su rango??.

No quiero codigos fuentes ni nada, solo que no entiendo esa parte de ejemplificar alguna operacion que supere el rango de un int o double, para que asi con otro programa que lee este codigo fuente marque el error en la operacion e indique que sobrpaso el rango.

Espero haberme explicado bien jajajajja, me hice bolas intentando escribir el problema XD, saludos.
#4
Saludos, Tengo la siguiente duda: Digamos que en un if pregunto por una variable y ahora quiero ocupar el valor de la variable pero en otro if. Me explico mejor con el siguiente codigo:



printf ("\n\nContiene alguna bifurcacion (s/n)(?) ?: \n");
scanf ("%s",&a);

if(a=='s'){

-----Aqui pregunto por otra variable, por ejemplo "b"... scanf ("%s",&b);

}
else if(a=='n'){

}
-------------------------------------------------------------------------------

if(a=='s'){

    if(b=='n'){   <--Aqui es donde ya no puedo ocupar el valor de "b" que  habia preguntado dentro del if anterior.
**Existe alguna forma de poder traer el valor obtenido dentro del if anterior para usarlo aqui??????????????

    }
   
    else if(b=='s'){

    }
}
---------------------------------------------------------------------------------

#5
Programación C/C++ / Re: suma de ASCII
29 Marzo 2013, 02:26 AM
Cita de: Almapa en 28 Marzo 2013, 12:04 PM


Cita de: Maik33 en 28 Marzo 2013, 08:53 AM


Listo ya quedo, ocupe el ciclo for que me habian mencionado, intente tambien con el while pero seguia sin hacer nada jajaja, pero con el for ya funciono, gracias por la ayuda, saludos. ;-)
#6
Programación C/C++ / Re: suma de ASCII
28 Marzo 2013, 23:07 PM
Cita de: Almapa en 28 Marzo 2013, 12:04 PM


Cita de: Maik33 en 28 Marzo 2013, 08:53 AM


Hola gracias por responder, probare sus consejos y les cuento que paso...
#7
Programación C/C++ / suma de ASCII
28 Marzo 2013, 08:12 AM
Saludos, pues tengo un programa que lee de un archivo varias cadenas, estas tiene que sumar caracter por caracter su codigo ascii y luego sacarle modulo 131, por ejemplo: para la cadena enero los codigos son 101, 110, 101, 114 y 111 y la suma es 537 despues sacando modulo 131 sale 13

mi duda es en la siguinte parte:

                                                    .
                                                    .

suma=0;
while(!feof(archivo))
   {
       fscanf(archivo,"%[^\n]\n",cadena); //en esta parte lee cada cadena del archivo

       for(i=0; i<6; i++)
       {
           suma=suma+cadena[i]; //aqui suma caracter por caracter
       }

...codigo para mod...

   }

                                                     .
                                                     .



en vez de poner el ciclo "for", que puedo poner para que sume hasta que sea el final de la cadena en turno?, en el for puse 6 por que estaba empezando con "enero" pero las siguientes cadenas de menor o mayor tamaño cambia el valor de la suma real de caracteres, intente poner un --while(cadena!='\0')-- en vez del for, pero se quedaba sin hacer nada, el codigo para el mod ya lo hice inclusive si me sale segun el ejemplo pero les repito en cadenas de diferente longitud cambia el valor real.

Las cadenas la declare de la siguiente forma por si eso tiene algo que ver con algun error que cometo al intentar hacer el while...
char cadena[15];
de antemano gracias por la ayuda, saludos. :P
#8
Cita de: rir3760 en 15 Marzo 2013, 18:29 PM

hola, intente hacer lo que mencionaste pero me imprime "basura" o solo una letra creo que mi problema puede estar en la forma que lo implemento, no se si se deba a los arreglos que los declare como matriz... te muestro parte de mi codigo....

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

int main()
{

    char nombre[17][15];
    char apellido[17][17];
    char matricula[17][10];
    char aux[20];
    char aux1[20];
    int i,j,k;
    float comp;

    char ofilename[] = "secundario.txt";
    FILE *ofp;
    ofp = fopen(ofilename,"w");

    char ofilename1[] = "primario.txt";
    FILE *ofp1;
    ofp1 = fopen(ofilename1,"w");

    char ifilename[] = "lista.txt";
    FILE *archivo;
    archivo = fopen(ifilename,"r");

    k=0;
    while(!feof(archivo))
    {
        fscanf(archivo,"%[^|]|%[^|]|%[^\n]\n",&nombre[k],&apellido[k],&matricula[k]);
        k=k+1;
    }

    for(i=0; i<k; i++)
    {
        fscanf(archivo,"%[^|]|%[^|]|%[^\n]\n",&nombre,&apellido,&matricula);
    }
.
.
.
.
//aqui es donde ordena la matricula junto a su apellido, intente cambiar la declaracion de apellido pero al hacerlo ma marca error en todo esto por eso mejor deje las declaraciones tal cual.

for(j=0; j<k-i; j++)
        {
            comp = strcmp(matricula[j], matricula[j+1]);
            if(comp > 0)
            {
                strcpy(aux,matricula[j]);
                strcpy(aux1,apellido[j]);

                strcpy(matricula[j],matricula[j+1]);
                strcpy(apellido[j],apellido[j+1]);

                strcpy(matricula[j+1],aux);
                strcpy(apellido[j+1],aux1);
            }
        }


en el primer for es donde te menciono que me gustaria cargar solo los primeros 6 caracteres del apellido. Por cierto use la instruccion que me habian mencionado en el inicio para la longitud de cadenas pero solo me daba la longitud del archivo completo XD
#9
Cita de: rir3760 en 15 Marzo 2013, 18:29 PM


Cita de: naderST en 15 Marzo 2013, 16:37 PM
nombre[contador]

gracias a los dos por responder, hoy por la tarde o noche aplico sus consejos y les cuento como me fue
#10
Hola saludos a todos, les comento, hize un programa en c++ el cual lee de un archivo el nombre apellido y matricula de varios alumnos, algo mas omenos asi...

JOSE|HERNANDEZ|203303035
CRISTINA|DIAZ|206303660
SERGIO|GONZALEZ|206201478

En el programa para leer cada campo hice lo siguiente...

for(i=0; i<k; i++)
   {
       fscanf(archivo,"%[^|]|%[^|]|%[^\n]\n",&nombre,&apellido,&matricula);
   }

En un while anterior ya obtuve la cantidad de lineas que tiene el archivo y lo asigne a k para que leyera cada linea, mi duda es la siguiente. Como puedo leer otro campo para que este contenga la posicion inicial de cada registro, por ejemplo en la primera lectura obtendria un 0 ya que JOSE empieza en 0 y en el segundo campo obtendria un 25 que es donde empieza CRISTINA y asi consecutivamente.

La segunda pregunta es como puedo leer el apellido pero que solo quede en un registro de 6 posiciones, por ejemplo:HERNANDEZ se guardaria como HERNAN o DIAZ se guardaria como DIAZ**(* = espacios en blanco), intente hacer esto con substr pero me marca error.

Los campos los declare de la siguiente manera...

char nombre[17][15];
char apellido[17][17];
char matricula[17][10];

Mi programa lo que hace es ordenar los registros en forma ascendente por "la matricula -+- pocision de inicio de ese registro" y escribirlo en un archivo nuevo.
Luego volverlo a ordenar pero ahora por el apellido junto con su matricula y escribirlo en un archivo nuevo. Todo eso ya lo hize, lo que me falta es como obtener la posicion de inicio de cada registro y si se puede meter los apellidos en campos de 6 posiciones.
Espero puedan hecharme un cable... :P

PD. Mi codigo puede ser penoso pero funciona a tirones  :xD, lo digo por si a alguno le arden los ojos al leerlo XD.