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ú

Temas - josri

#1
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.
#2
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'){

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

#3
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
#4
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.
#5
Hola saludos a todos, vengo para ver si me pueden hechar un cable, mi problema es el siguiente, tengo el codigo para poder leer un archivo secuencial, pero me falta escribir ese mismo archivo a uno de acceso directo y poder consultar el de acceso directo pero solo me quedo hasta la lectura del archivo secuencial :huh:...

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

int main(){
   FILE *archivo=NULL;
   char nombreArchivo [15];
   char contenido [128];
   char nombre [50];
   char paterno [50];
   char materno [50];
   char licenciatura[50];
   char matricula[15];

   printf("\nNombre de archivo: ");
   scanf("%s",&nombreArchivo);
   archivo = fopen(nombreArchivo,"r");

   while(archivo == NULL){
      printf("El archivo no pudo abrirse");
      printf("\n\nNombre de archivo: ");
      scanf("%s",&nombreArchivo);
      archivo = fopen(nombreArchivo,"r");
   }

   while(!feof(archivo)){

      fscanf(archivo,"%[^,],%[^,],%[^,],%[^,],%[^\n]\n",&nombre,&paterno,&materno,&licenciatura,&matricula);
      printf("\nNombre:%s",nombre);
      printf("\nA.Paterno:%s",paterno);
      printf("\nA.Materno:%s",materno);
      printf("\nLicenciatura:%s",licenciatura);
      printf("\nMatricula:%s",matricula);
      printf("\n----------------------------------\n");
    }
   fclose(archivo);
   system("pause");
   return 0;
}