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 - Kenji-chan

#11
el método de la burbuja se compone de dos ciclos for


void burbuja(_persona* array){
int i, j;
_persona aux;
for(i=1; i<max; i++){//comenzamos el iterador i desde el indice 1(pos 2)
for(j=0; j<max-i; j++){//comenzamos el iterador j desde el indice 0(pos 1)
if(array[j] > array[j+1]){/*si el que esta a la derecha del indice j es mayor hacemos el cambio*/
aux = array[j+1];
array[j+1] = array[j];
array[j] = aux;
}
}
}
}
#12
eso es por que te has inventado una nueva estructura de control de flujo

int pantallallavespuertaventana{
   /*codigo
      ...
      ...
      ...*/


no puedes poner esto en el código si quieres que se repita el código al llegar al caso 2 tienes que hacerlo de forma diferente, yo lo he echo de la siguiente manera

Código (cpp) [Seleccionar]

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>

/*variables y constantes*/
int opcionnombreusuario;
char nombre[20];
int opcionllavepuertaventana;
int posesionllave = 0;

/*programa principal*/
int main (int argc, char* argv[]){
/*titulo*/
printf ("Juego\n\n");
Sleep(200);

/*seleccion de nombre y confirmacion de este*/
do{
printf ("\n\nInserte un nombre de usuario en minisculas y pulse Intro: ");
std::cin >> nombre;
fflush (stdin);
printf ("\nEntonces tu nombre es %s?" ,nombre);
printf ("\n1-Si\n2-No\n");
std::cin >> opcionnombreusuario;
fflush (stdin);
system("cls");
}while (opcionnombreusuario != 1);

/*planteamiento llave ventana puerta*/
printf ("\nSaludos %s, bienvenido a mi lamentable aventura de texto, espero que disfrutes!", nombre);
Sleep (2000);
system("cls");

/* do while para que se repita la pantalla mientras no tenga la llave */
do{

printf("\nacabas de aparecer en una habitacion extrana, puedes ver una ventana con rejas, una puerta y una llave.\nQue escojes?\n\n1-Ventana\n2-Puerta\n3-Investiga\n");
std::cin >> opcionllavepuertaventana ;
fflush (stdin);
/*Switch que da sentencias para las opciones de la primera pantalla */
switch (opcionllavepuertaventana){
case 1: printf ("Vaya, parece que la ventana tiene rejas, es imposible salir por aqui.");
Sleep (3000);
system ("cls");
break;
case 2: if (posesionllave !=  1)
{
printf ("Que mal, parece que la cerradura necesita una llave");
Sleep (3000);
system ("cls");
}
if (posesionllave == 1){
printf ("Has abierto la puerta con la llave");
Sleep (3000);
}
break;
case 3: printf ("Investigando por el suelo te has encontrado una llave! Me pregunto como debe haber salido el que se la dejo dentro...");
posesionllave = 1;
Sleep (3000);
system ("cls");
break;
default: printf ("Escoje una opcion valida, %s", nombre);
Sleep (3000);
system ("cls");
}
}while ((posesionllave != 1));
printf ("Has abierto la puerta!");
}

y me funciona perfecto
#13
lo de borrar datos es mas sencillo dado que estamos usando una constante que nos define el largo de nuestro array tendremos que poner un dato extra en nuestra estructura

typedef struct{
   char nombre[20];
   char fecha[20];
   char numero[20];
   float saldo;
   int estado;//->nuevo dato miembro de nuestra estructura
}_persona;


este nuevo datos solo podrá contener dos valores 1 para vacio y 0 para en uso de este modo cuando estés borrando datos lo único que tienes que hacer es poner el la variable estado a 1 pero tendremos que modificar las demás funciones para que estas se integren con el nuevo dato


void buscar(_persona* personas);/*esta funcion solo buscara datos que tengan un estado de 0*/
void agregar(_persona* personas);/*esta funcion agregara datos con que tengan un estado diferente(!=) a 0 */
void mostrar(const _persona* personas);/*esta funcion unica mente mostrara datos que tengan un estado de 0*/
void modificar(_persona* personas); /*esta funcion solo modifica datos que tengan un estado de 0*/


#14
yo me he echo esta función:

void funx(int a, int b){
int cont=0,primo;
while (a<b){
a++;
primo=1;
cont=2;
while (cont<=a/2){
if(a%cont==0)
primo=0;
cont++;
}
if(primo!=0)
printf(" %d ",a);
}
}


y la he probado junto con la que has hecho y funcionan de la misma manera
#15
si en el struct

typedef struct{
   char nombre[20];
   char fecha[20];
   int numero[20]; //lo cambiamos a int
   float saldo;
}_persona;


entonces para buscarlo seria tan fácil como

for(i=0; i<max; i++){
if(personas[i].numero == buscar){
/*mostrar los datos de la persona*/
                break; //esto es para que pare de buscar
}
}


pero ten en cuenta que al cambiar el tipo de variable las funciones

void agregar(_persona* personas);
void mostrar(const _persona* personas);


se verán afectadas
#16
la funcion int strcmp(const char *str1, const char *str2) recibe dos parámetros si el valor de Retorno <0 indica que str1 es menor que str2. si Valor de retorno> 0 indica que str2 es menor que str1. si el valor de Retorno = 0 indica que str1 es igual a str2.

ademas de que cuando capturas el string lo haces mal

p("Introduzca numero de cuenta:");
    scanf("%d",&y);

cuando deberia de ser

p("Introduzca numero de cuenta:");
    scanf("%s", y);


pero si nunca has usado esta función mejor te recomiendo que cambies el tipo de variable a int en el struc de esa forma te sera mas fácil
#17
El número de cuenta en el struc esta declarado como un char* (string) y en la función buscar lo capturas como un int ya sea que lo cambies en el estruct como un int o en la función como un char* y lo compares con la función strcmp () de la biblioteca string.h
#18
si tienes el código echo con una estruct y un arrar

typedef struct{
char nombre[20];
char fecha[20];
char numero[20];
float saldo;
}_persona;

_persona personas[max];


puedes recorrer el array personas con un ciclo for

for(i=0; i<max; i++){
if(personas[i].numero == buscar){
/*mostrar los datos de la persona*/
}
}
#19
tal y como tienes ahora mismo el código tendrías que hacer otro switch dentro del caso 3
tomando el numero de cuenta ingresado por el usuario y para cada caso todos los números de cuenta almacenados pero si lo haces con estructuras y arrays solo tienes que recorrer el array en comparando el dato miembro del dato a buscar
#20
eso es porque en el caso 2 lo único que hace es imprimir la información almacenada y cuando acaba de imprimirla en pantalla vuelve al menú