19 de febrero de 2010

Proyecto I continuación segundo algoritmo

Bueno como les comente aqui voy a seguir hablando del proyecto I con el problema 2.

Problema 2: Colocar un grupo de libros en un librero en orden alfabetico segun el titulo.
Diagrama de flujo
Bueno como vemos en la imagen anterior primero checamos si tienes libros en el librero, despues vemos lo que en programacion se llama switch en el que viene escrito cual es el orden que tienes, que escoges o escogiste y te pide seleccionar un caso de 3 posibles.
El primer caso es acomodar los libros por título, te pide tomar un libro, buscar la inicial del título, después buscar el lugar deonde va esa inicial en el librero, despues si existen muchos libros con esa inicial busca cada letra del titulo para encontrarle un lugar, despues colócalo alli.
El segundo caso es por autor, toma un libro y busca el nombre del autor, despues en el librero busca el lugar donde va ese autor, si existen muchos libros, busca algun número o el nombre del libro, despues busca el lugar correcto en orden alfabetico y finalmente colocalo alli.
El tercer y ultimo caso es acomodar los libros por editorial, toma un libro y busca la inicial del nombre de la editorial, busca el lugar donde va esa editorial, si hay uno o mas libros en el librero acomodalo segun el titulo y eso va a hacer que te regreses al punto 2 que es acomodar por titulo.
Si tienes mas libros por acomodar vas a tener que regresar al punto 1, y si no, haz terminado.

El programa y el codigo en C:

#include
#include
int opcion;
int main()
{
printf("Acerca los libros que quieres acomodar en el librero\n");
do{
printf("\nTienes libros en el librero?\n1.-Si\n2.-No\n");
scanf("%d",&opcion);
}while(opcion!=1
opcion!=2);
do{
do{
printf("\nQue orden tienes, escoges o escogiste?\n1.-Titulo\n2.-Autor\n3.-Editorial\n");
scanf("%d",&opcion);
}while(opcion<1
opcion>3);
clrscr();
do
switch(opcion)
{
case 1: {
printf("\nPOR TITULO\n");
getch();
printf("Toma un libro\n");
getch();
printf("BUsca la inicial del titulo\n");
getch();
printf("En el librero busca el lugar donde va esa inicial\n");
getch();
printf("Si existen muchos libros alli, busca cada letra\ndel titulo del libro para encontrarle un lugar\n");
getch();
opcion=0;
break;
}
case 2: {
printf("\nPOR AUTOR\n");
printf("Toma un libro busca el nombre del autor\n");
printf("En el librero busca el lugar donde va ese autor");
printf("\n\nSi existen muchos libros alli, busca algun numero o el nombre del titulo\n");
printf("Busca el lugar correcto de acuerdo al numero o a la inicial del titulo, en orden alfabetico\n");
opcion=0;
break;

}
case 3: {
printf("\nPOR EDITORIAL\n");
printf("\ntoma un libro, busca la inical del nombre de la editorial\n");
printf("\nEn el librero busca el lugar donde va esa editorial\n");
printf("\nHay uno o mas libros\n1.-Si\n2.-No\n");
scanf("%d",&opcion);
if(opcion==2)
break;
else{
opcion=2;
break;
}
}
}
}while(opcion==2);
printf("\nColocala alli\n");
clrscr();
printf("\nTienes mas libros para acomodar\n1.-Si\n2.-No\n");
scanf("%d",&opcion);
}while(opcion==1);
printf("\nHaz Terminado\n");
}

2 ejemplos de ejecucion paso a paso:
Ejemplo 1:
Voy a inventar nombres
Tenemos el libro "Serpiente" de Jesus Ruiz de la editorial Corona
Lo acomodaremos por título, buscas la inicial del titulo que es la "S", buscas en el librero donde va esa inicial, despues si existen muchos libros con esa inicial busca cada letra del titulo para encontrarle un lugar, despues colocalo allí.
Ejemplo 2: 
Tenemos el libro "Tigre" de Gonzalo Solis de la editorial Corona
Lo acomodaremos por autor, busca el nombre del autor, despues en el librero busca el lugar donde va ese autor, si existen muchos libros con ese autor, puedes acomodarlo por titulo o editorial tambien, despues buscael lugar correcto en orden alfabetico y finalmente colocalo allí.

Bueno estas dos entradas son el Proyecto I

18 de febrero de 2010

Proyecto I

Bueno Gabriela Alemán García con matrícula: 1410319 y yo Juan Manuel Casanova Villarreal con matrícula: 1453829 del grupo 4200 de las clases de los martes en la hora: V4 a V6 hicimos el proyecto 1 con 2 problemas a resolver, en esta entrada voy a poner el primer problema y en otra entrada el otro.


Problema 1: Buscar un número telefonico en la guía telefónica.
Aqui esta el diagrama de flujo de este problema:
Como vemos en la imagen anterior, al principio la primer pregunta es que si tienes directorio, si dices que si continua el diagrama pidiendote la primera inicial del apellido de la persona que buscas, despues te pide que busques la siguiente letra y despues todo el apellido.
Enseguida viene el estatúto de decisión que te dice que si encontraste el apellido que lo compares con el nombre completo y si no encontraste el nombre completo te dice que la persona que buscas no esta dada de alta en la guía telefónica.
Si ya encontraste el nombre de la persona viene otro estatúto de decisión que dice: ¿si es el que buscabas? y si dices que si te dice felicidades haz encontrado el número y si no es el que buscabas te regresa a la parte en que dice que la persona que buscas no esta dada de alta en el directorio. Al terminar te dice que si quieres buscar otro número, si lo quieres buscar vas a volver a iniciar desde el punto señalado con el número 1.
Bueno asi es como queda el algoritmo.

Aqui esta el programa y el codigo en C:














#include
#include
int dir;
main()
{
do{
do{
printf("Tienes un directorio?\n1.-Si\n2.-No\n");
scanf("%d",&dir);
 if(dir==2)
 printf("Consigue un directorio\n");
}while(dir==2);


printf("Busca la seccion de la primera letra del apellido\n");
getch();
printf("Busca el apellido identico al que buscas\n");
 getch();
printf("Lo encontraste?\n1.-Si\n2.-No\n");
scanf("%d",&dir);

if(dir==1)
    {
        printf("\nExiste mas de un apellido igual\n1.-Si\n2.-No\n");
        scanf("%d",&dir);
        if(dir==1||dir==2)
        {
            printf("\nCompara el nombre completo\n");
                getch();
            printf("Es el que buscas\n1.-Si\n2.-No\n");
            scanf("%d",&dir);
            if(dir==1)
                    printf("\nFelicidades ya sbes usar un directorio\n");
                else
                    printf("\n\nLa persona no se encuentra registrada en este directorio\n");
        }
    }
    else
    {
    printf("\nLa persona no se encuentra registrada en este directorio\n");
    }
    getch();
      clrscr();
    printf("\Deseas hacer otra consulta?\n1.-Si\n2.-No\n");
    scanf("%d",&dir);
}while(dir==1);

}


Despues tenemos 2 ejemplos de ejecución paso a paso para poder comprender mejor el algoritmo:
Ejemplo 1:
Tenemos un nombre completo por ejemplo Jose Luis Gonzalez Lopez.
Te pregunta si tienes directorio en este caso si.
Buscas la inicial del primer apellido que es la "G", buscas la siguiente letra que es la "o", después busca el apellido completo, si ya lo encontraste compara el nombre completo, si es el que buscabas felicidades ya encontraste el numero, si no, puede que no este dado de alta la persona en esta guía telefónica.
Ejemplo 2:
Tenemos el nombre: Pedro Gutierrez Gonzalez.
Busca la inicial del primer apellido que es la "G", buscas la siguiente letra que es la "u", despues busca el apellido completo, si ya lo encontraste compara con el nombre completo, si es el que buscabas felicidades ya encontraste el numero, si no, puede que no este dado de alta en la guía telefónica.

Bueno este fue el problema 1, en la siguiente entrada esta la continuación del proyecto con el problema 2 que es colocar un grupo de libros en un librero en orden alfabetico según el titulo.