lunes, 16 de julio de 2012

ALGORITMO PARA UN PROGRAMA DE LISTA SIMPLE


Algoritmo de un programa  de “Lista simple ligada”

1.- Inicio
2.- INICIO FUNCION INICIAL  (A)
3.-A y B son variables de tipo puntero.
(A)
 A->INFORMACIÓN
 A->LIGA=NULL
       Repetir
(B)
 B->INFORMACIÓN
 B->LIGA=  A y A = B
4.- Fin FUNCION INICIAL
5.- Inicio FUNCION FINAL (A)
A->INFORMACIÓN
A->LIGA=NULL y  T=A
       Repetir
(B)
B->INFORMACIÓN
B->LIGA=NULL, T->LIGA=B y T=B
6.-Fin FUNCION FINAL 
7.- Inicio FUNCION RECURSIVIDAD
8.- Si A =! NULL 
        ENTONCES
A->INFORMACIÓN
           Llamar a RECURSIVIDAD con A->LIGA
9.- Fin FUNCION RESURSIVIDAD
10.-  Inicio FUNCION INSERTAR 
 B= A y BAND= VERDADERO
     mientras (B->INFORMACIÓN =! REF) y (BAND = VERDADERO)
              Si B -> LIGA =! NIL
                                              Entonces
                                                 T= B y B= B-> LIGA
                                              Else
                                                              BAND = FALSO
          Si BAND = VERDADERO entonces
                               (X)
                        X->INFORMACIÓN = DATO
                                              Si A = B
                                                             Entonces
                                                                             X ->LIGA = A y A = X
                                                             Else
                                                                             T ->LIGA =X y X ->LIGA = B
11.- Fin FUNCION INSERTAR
12.-Inicio FUNCION ELIMINAR
13.- B = A y BAND= VERDADERO
 mientras (B->INFORMACIÓN =! X) y  (BAND = VERDADERO)
Si B ->LIGA =! NULL
                                              Entonces
T = B y B = B -> LIGA
                                              Else
BAND = FALSO
               Si BAND = FALSO
                               Entonces
                                              Imprimir  ”El elemento no fue encontrado”
                               Else
SI A = B  
                                              Entonces
                                A = B->LIGA
                                              Else
                                                             T -> LIGA=B-> LIGA
14.- Fin FUNCION ELIMINAR
15.- Inicio CUERPO PRINCIPAL
16.- Si ( P =! NULL)
                               Entonces
                                              Si ( A ->INFORMACIÓN = X )
                                              Entonces
               Imprimir   “El elemento se encuentra en la lista”
                                              Else
                BUSCARRECURSIVO con a -> LIGA y X
                               
                           Else
               Imprimir     “El elemento no se encuentra en la lista”
17.- Fin CUERPO PRINCIPAL
 
 
 
 
 



ALGORITMO DEL PROGRAMA COTIDIANO


Algoritmo del programa con fila “PROBLEMA COTIDIANO”

1.- INICIO
2.- Declarar variable nombrec, nombret, ntaxi y destino
3.- Inicio FUNCION ACOLAR
4.- struct cola*nuevo;
5.- Introducir datos “numero de taxi, nombre del taxista, nombre del cliente y destino”
6.- nuevo->sig=NULL;
           if(princ==NULL)
             princ=nuevo;
              fin=nuevo;
                   else
                     fin->sig=nuevo;
                         fin=nuevo;
                             j++;
 7.- FIN FUNCION ACOLAR
8.- Inicio  FUNCION MOSTRAR
9.- struct cola *aux;
              aux=princ;
                  if(aux==NULL){
            Imprimir "COLA VACIA"
                               else       
                                      while(aux!=NULL)
10.- IMPRIMIR  “Numero de taxi, nombre del taxista, nombre del cliente, destino”
                aux=aux->sig;
11.- FIN FUNCION MOSTRAR
12.- Inicio FUNCION DESACOLAR
13.- struct cola *aux;
                  struct cola *aux1;
                         int cont;
                 aux=princ;
                aux1=princ;
                                  cont=0;
           while(aux!=NULL)
                if(aux->ntaxi==aux1->ntaxi)
                    if(cont==0)
                          princ=princ->sig;
              aux=aux->sig;
              aux1=aux;
              cont=1;
 14.- FIN FUNCION DESACOLAR
15.- Inicio CUERPO PRINCIPAL
16.- int opc;
           Do
          Imprimir “REGISTRO DE PERSONAS ***SITIO DE TAXIS TULTITLAN”
          Imprimir “1. INGRESAR DATOS A LA COLA    2. MOSTRAR DATOS DE LA COLA  3. RETIRAR
                                                                                                                 DATOS EN LA COLA    4. SALIR”
17.- switch (opc)
           case 1:
            acolar();
              break;
                    case 2:
                       mostrar();
                               break;
                    case 3:
                        desacolar();
                                break;
                     default:
18.- Imprimir  "SALIR DEL SISTEMA"
                                 break;
                     while(opc!=4);

Programa en Dev de colas


#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct cola{
int ntaxi;
char nombret[20];
char nombrec[20];
char destino[20];
struct cola *sig;
}*princ, *fin;
int j=0;
void acolar(){
struct cola *nuevo;
nuevo=(struct cola *)malloc(sizeof(struct cola));
printf("INTRODUCIR NO. DE TAXI:\n ");
scanf("%d",&nuevo->ntaxi);
printf("INTRODUCIR NOMBRE DEL TAXISTA:\n ");
scanf("%s",&nuevo->nombret);
printf("INTRODUCIR NOMBRE DEL CLIENTE:\n ");
scanf("%s",&nuevo->nombrec);
printf("INTRODUCIR DESTINO:\n");
scanf("%s",nuevo->destino);
nuevo->sig=NULL;
if(princ==NULL){
princ=nuevo;
fin=nuevo;
}else{
fin->sig=nuevo;
fin=nuevo;
}
j++;
}
void mostrar(){
struct cola *aux;
aux=princ;
if(aux==NULL){
printf("COLA VACIA\n");
}else{      
while(aux!=NULL){
printf("NUMERO DE TAXI: %d\nNOMBRE DEL TAXISTA: %s\n NOMBRE DEL CLIENTE: %s\n DESTINO: %s\n\n\n", aux->ntaxi,aux->nombret, aux->nombrec, aux->destino);
aux=aux->sig;
}
}
}
void desacolar(){
struct cola *aux;
struct cola *aux1;
int cont;
aux=princ;
aux1=princ;
cont=0;
while(aux!=NULL){
if(aux->ntaxi==aux1->ntaxi){
if(cont==0){
princ=princ->sig;
}
}
aux=aux->sig;
aux1=aux;
cont=1;
}
}
main(){
int opc;
do{
printf("\n\n\n\t\tREGISTRO DE PERSONAS ***SITIO DE TAXIS TULTITLAN\t\t\t\t\n");
printf("\n\t\t\t1. INGRESAR DATOS A LA COLA\n\t\t\t2. MOSTRAR DATOS DE LA COLA\n\t\t\t3. RETIRAR DATOS EN LA COLA\n\t\t\t4. SALIR\n\t\t\t");
scanf("%d", &opc);
system("cls");
switch (opc){
case 1:
acolar();
break;
case 2:
mostrar();
break;
case 3:
desacolar();
break;
default:
printf("SALIR DEL SISTEMA\n");
break;
}
}while(opc!=4);
}


PROGRAMA CORRIDO




lunes, 2 de julio de 2012

PROGRAMA EN DEV PARA ENLISTAR Y GUARDAR DATOS


#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<ctype.h>
#define MAX 100

char*p[MAX];
char*crecup(void);
void calmac (char*c);
void nombre(void);
int spos,rpos;
void intro (void),revisar(void),borrar(void);
int main(void)
{
char s[80];
register int t;
spos=0;
rpos=0;

for(t=0;t<MAX;++t)p[t]=NULL;
for(;;)
{
printf("\n(I)introducir\n(L)listar\n(B)borrar\n(N)nombre del programador\n(S)salir\n");
printf("\n\nEscribir tu accion a realizar:\n");
gets(s);
*s=toupper(*s);
switch(*s)
{
case 'I':intro();break;
case 'L':revisar();break;
case 'B':borrar();break;
case 'N':nombre();break;
case 'S':exit(0);
}
}
system("pause");
return 0;
}
void intro (void)
{
char s[100],*p;
do
{
printf("\nIntroduce todos tus datos deseados%d:\n",spos+1);
printf("(SOLO DA (ENTER) PARA REGRESAR AL MENU PRINCIPAL)");
gets(s);
if(*s=='\0')break;
p=(char*)malloc(strlen(s)+1);
if(!p)
{
printf("NO HAY MEMORIA RESERVADA\n");
return;
}
strcpy(p,s);
calmac(p);
}
while(*s);
}
void revisar(void)
{
int t;
if(rpos==spos)
{
printf("NO HAY DATOS\n");
return;
}
for(t=rpos;t<spos;t++)
printf("\n CADENA ES %d: %s\n",t+1,p[t]);
}
void borrar(void)
{
char*q;
q=crecup();
if(q==NULL)
{
printf("NO HAY DATOS!!!\n");
return;
}
printf("ESTE ES EL DATO RECUPERADO Y BORRADO: DATO NUMERO %d: %s\n",rpos+1,q);
free(q);
}
void nombre(void)
     {
          printf("\nSilvia Veronica Palacios Garcia");
           printf("\nMATRICULA: 1311120138 GRUPO: 110353\n\n");
     }  
void calmac(char*q)
{
if(spos==MAX)
{
printf("\nLA COLA ESTA LLENA\n");
return;
}
p[spos]=q;
spos++;
}
char*crecup(void)
{
if(rpos==spos)
{
printf("\nNO HAY DATOS\n");
return NULL;
}
rpos++;
return p[rpos-1];
}

PROGRAMA EN EJECUCION