Autor
|
Tema: Problema con un programa: (Leído 3,792 veces)
|
amchacon
Desconectado
Mensajes: 1.211
|
Como te picas Leosan Es evidente, goto no es "imprescindible" pero es una herramienta que en alguna ocasiones resulta la salida más sencilla (y eficiente). Incluso Java que eliminó el goto de su repertorio permitió "algunos saltos" en determinadas circunstancias excepcionales (como la línea anterior a un for). Yo personalmente nunca he necesitado usarlos. Pero defiendo que tiene algunos usos.
|
|
« Última modificación: 19 Mayo 2013, 01:57 am por amchacon »
|
En línea
|
|
|
|
|
amchacon
Desconectado
Mensajes: 1.211
|
Así que de "piques" nada de nada, y mucho menos contigo, sólo eran una pequeña y humilde aportación al tema. ¡Pero no te enfades! Que te estaba tomando el pelo Esque me acuerdo de una vez que recomendé usar nodos enlazados en vez de realloc, creo que me contestastes 3-4 veces. Cada vez yo te ponía una traba más pero siempre me devolvias la pelota En fin que era una broma. Es mi avatar, que me da un aire muy serio
|
|
|
En línea
|
|
|
|
Error 404:
Desconectado
Mensajes: 58
|
Por cierto, me dijisteis para que volviera sin usar el goto, poniendo lo de indice = 0 ..... Pero como funciona, es decir, una pequeña explicacion para saber utilizarlo yo en caso de necesidad, es que no se como funciona, simplemente lo he puesto, pero no me gusta poner cosas sin saber de donde vienen ni como usarlas xd, sabran a lo que me refiero xd.
|
|
|
En línea
|
Si se puede imaginar, se puede programar.
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
Por cierto, me dijisteis para que volviera sin usar el goto, poniendo lo de indice = 0 ..... Pero cómo funciona, es decir, una pequeña explicacion para saber utilizarlo yo en caso de necesidad, es que no se como funciona, simplemente lo he puesto, pero no me gusta poner cosas sin saber de donde vienen ni como usarlas xd, sabran a lo que me refiero xd.
El índice cero es lo que suele llamarse bandera o flag, avisa de que algo ha sucedido, en este caso si es distinto de cero, o no en cuyo caso toma el valor cero.Tal como está implementado fíjate que al comparar las cadenas si éstas son iguales entras en el "cuerpo" del if y la variable índice se incrementa, tomando el valor 1, de forma que si no se incrementa, se queda en cero y es que no encontró actuando entonces el cout "no encontrado". Observa que después de una comparación vuelve a actuar el while(1) para realizar la siguiente búsqueda, para lo cual vuelvo a inicializar índice a cero y se repite la historia.
Si te quedan dudas vuelve a preguntar.
Saluditos!. ... . ..
|
|
|
En línea
|
|
|
|
rir3760
Desconectado
Mensajes: 1.639
|
Si cada nombre es único se puede modificar el bucle para que este pare cuando se encuentre una coincidencia. Con ello se puede utilizar al contador del bucle como bandera de estado, mas o menos así: else if (z == 1){ cout << " Introduce el nombre de la persona que desea buscar: "; cin >> buscaNombre; cout << endl << endl; for (i = 0; i < N && strcmp(Fulanito[i].Nombre, buscaNombre) != 0; i++) ; if (i != N){ cout <<" Telefono de "<< Fulanito[i].Nombre <<": " << Fulanito[i].Telefono; cout << endl << endl << endl; }else cout << "No existe en la base esa persona"<< endl<< endl<< endl; }
Pero, de nuevo, solo aplica si no hay nombres repetidos. Y para imprimir un carácter varias veces se puede utilizar un objeto de la clase string: cout << string(num_reps, ch) << endl;
Donde ch es el carácter a imprimir y num_reps el numero de repeticiones. Un saludo
|
|
|
En línea
|
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly. -- Kernighan & Ritchie, The C programming language
|
|
|
|
|