jueves, 11 de noviembre de 2010

REPORTE #6 LENGUAJES IMPERATIVOS

 Hola compañeros, estos son mis programas hechos en los lenguajes imperativos:




C es un lenguaje de alto nivel, que permite programar con instrucciones de lenguaje de propósito general.
También C se define como un lenguaje de programación estructurado de propósito general; aunque en su diseño también primó el hecho de fuera especificado como un lenguaje de programación de sistemas, lo que proporciona una enorme cantidad de potencia y flexibilidad.
El estándar ANSI C formaliza construcciones no propuestas en la primera versión del lenguaje C, en especial asignación de estructuras y enumeraciones. Entre otras aportaciones, se definió esencialmente la biblioteca estándar de funciones otra de las grandes aportaciones.

Ventajas del lenguaje C:

El lenguaje C tiene una gran cantidad de ventajas sobre otros lenguajes y constituyen precisamente la razón fundamental de que después de casi dos décadas de uso C siga siendo uno de los lenguajes más populares, utilizados en empresas, organizaciones y fábricas de software de todo el mundo.
C se caracteriza por su velocidad de ejecución. En los primeros días de la informática los problemas de tiempo de ejecución se resolvían escribiendo todo o parte de una aplicación en lenguaje ensamblador (muy al lenguaje de máquina).
Debido a que existen muchos programas escritos en el lenguaje C, se han creado numerosas bibliotecas C para programadores profesionales que soportan gran variedad de aplicaciones.

PROGRAMA DESARROLLADO:

El siguiente programa es de una agenda electronica la cual genera al finalizar el programa un archivo con los datos ingresados, este programa lo realize el semestre pasado como trabajo final de la materia de estructuras de datos: 

código:

// Fernando Garcia Rivera  Matricula:1410524

#include <stdio.h>
#include <conio.h>

typedef struct {
  char nombre[25];
  char telefono[15];
  char direccion[25];
  char correo[25];
  int descontinuado;
   struct AGENDA *siguiente;
  
  }  AGENDA;

int menu();
void nuevo_elemento();
void borrar_elemento();
void mostrar_lista();

AGENDA *primero, *ultimo;


 int main(void) {
     FILE *arch; 
     int opcion, i;
     AGENDA *auxiliar;
     primero = (AGENDA *) NULL;
     ultimo = (AGENDA *) NULL;
     arch = fopen("agenda.txt", "w");
     if(arch == NULL) {
            printf("Error al abrir el archivo\n");
            return 1;
     }
     do {
        opcion= menu();
        switch ( opcion ) {
                 case 1: {
                         nuevo_elemento();
                         break;
                 }
                 case 2: {
                         borrar_elemento();
                         break;
                 }
                 case 3: {
                         mostrar_lista();
                         break;
                 }
                 case 4: {
                         system("cls");
                         printf("\n\n\t\t\t ||Elegiste la opcion SALIR||\n\n");
                         printf("\n\n\t\t\t||Archivo Creado Correctamente||\n\n");
                         printf("\n\n\n\n\n\n\t\t");
                         system("pause");
                         break;
                 }
                 default: {
                          system("cls");       
                          printf("\n\n\t\t||la opcion elegida no existe presione del 1 al 4||\n\n");
                          printf("\n\n\n\n\n\n\t\t");
                          system("pause");
                          break;
                 }
        }
     } while (opcion!=4);
     i=0;
     auxiliar = primero;
     fprintf(arch,"\n\t\t\t      Listado de Agenda\n");
     fprintf(arch,"\t\t\t============================\n\n\n\n");
     while (auxiliar!=NULL) {
           if(auxiliar->descontinuado==0){
                   fprintf(arch,"\t\t   Datos persona %d: \n\n", i+1);
                   fprintf(arch,"\t\t\t    Nombre: %s\n", auxiliar->nombre);
                   fprintf(arch,"\t\t\t  Telefono: %s\n",auxiliar->telefono);
                   fprintf(arch,"\t\t\t Direccion: %s\n",auxiliar->direccion);
                   fprintf(arch,"\t\t\t   Correo : %s\n\n\n\n",auxiliar->correo);
                   i++;
           }
           auxiliar = auxiliar->siguiente;
     }
     fclose(arch);
     return 0;
}


int menu() {
     int op;
     system("cls");
     printf("\n\t\t\t    Agenda Electronica\n");
     printf("\t\t\t============================\n\n");
     printf("\t\t\t  1.- Nuevo Elemento \n");
     printf("\t\t\t  2.- Borrar Elemento  \n");
     printf("\t\t\t  3.- Mostrar Lista\n");
     printf("\t\t\t  4.- Salir\n\n\n");
     printf("\t\t\t   Opcion ---> ");
     scanf("%d", &op);   
     return op;
}


void nuevo_elemento() {
     AGENDA *nuevo;
     system("cls");
     nuevo = (AGENDA *) malloc (sizeof(AGENDA));
     if (nuevo==NULL){
           printf( "No hay memoria disponible!\n");
           printf("\n\n\n\n\n\n\t\t");
           system("pause");
     }
     else {
          system("cls");                                                           
          printf("\n\t\t\t       Nuevo Elemento\n");
          printf("\t\t\t============================\n\n\n\n");
          printf("\n\t\t   Ingresa el nombre--> ");
          scanf(" %[^\n]",&nuevo->nombre);
          printf("\n\t\t Ingresa el telefono--> ");
          scanf(" %[^\n]",&nuevo->telefono);
          printf("\n\t\tIngresa la direccion--> ");
          scanf(" %[^\n]",&nuevo->direccion);
          printf("\n\t\t  Ingresa el correo --> ");
          scanf(" %[^\n]",&nuevo->correo);
          nuevo->descontinuado=0;
          nuevo->siguiente = NULL;
          if (primero==NULL) {
                      primero = nuevo;
                      ultimo = nuevo;
          }
          else {
                   ultimo->siguiente = nuevo;
                   ultimo = nuevo;
          }
     }
}

void borrar_elemento() {
     AGENDA *auxiliar;
     int i, comparar;
     char borrado[20];
     i=0;
     auxiliar = primero;
     system("cls");
     printf("\n\t\t\t      Borrar Elemento\n");
     printf("\t\t\t============================\n\n\n\n");
     printf("\n\tIngresa el nombre de la persona a borrar--> ");
     scanf(" %[^\n]",&borrado);
     while (auxiliar!=NULL) {
           comparar=strcmp(borrado,auxiliar->nombre);
           if(comparar==0){
                   system("cls");
                   printf("\n\t\t\t      Borrar Elemento\n");
                   printf("\t\t\t============================\n\n\n\n");
                   printf("\t\t\t      Nombre: %s\n", auxiliar->nombre);
                   printf("\t\t\t    Telefono: %s\n",auxiliar->telefono);
                   printf("\t\t\t   Direccion: %s\n",auxiliar->direccion);
                   printf("\t\t\t      Correo: %s\n\n\n\n",auxiliar->correo);
                   printf("\n\n\t\t       ||Elemento borrado con exito||\n\n");
                   auxiliar->descontinuado=1;
                   i++;               
           }
           auxiliar = auxiliar->siguiente;
     }
     if (i==0) {
               system("cls");
               printf("\n\t\t\t      Borrar Elemento\n");
               printf("\t\t\t============================\n\n\n\n");
               printf("\n\n\t\t\t ||El elemento no existe||\n\n");
     }
     printf("\n\n\n\n\n\n\t\t");
     system("pause");
}

void mostrar_lista() {
     AGENDA *auxiliar;
     int i;
     i=0;
     auxiliar = primero;
     system("cls");
     printf("\n\t\t\t      Listado de Agenda\n");
     printf("\t\t\t============================\n\n\n\n");
     while (auxiliar!=NULL) {
           if(auxiliar->descontinuado==0){
                   printf("\t\t   Datos persona %d: \n\n", i+1);
                   printf("\t\t\t    Nombre: %s\n", auxiliar->nombre);
                   printf("\t\t\t  Telefono: %s\n",auxiliar->telefono);
                   printf("\t\t\t Direccion: %s\n",auxiliar->direccion);
                   printf("\t\t\t   Correo : %s\n\n\n\n",auxiliar->correo);
                   i++;
           }
           auxiliar = auxiliar->siguiente;
     }
     if (i==0) {
               printf("\n\n\t\t      ||La Agenda se encuentra vacia||\n\n");
     }
     printf("\n\n\n\n\n\n\t\t");
     system("pause");
}

algunas capturas de pantalla:







REFERENCIAS:



me faltaron tres programas mas, espero y no afecte que los suba despues
*******************************************************************************************************

8 comentarios:

  1. hola!!

    esta muy padre la agenda ..=) pero faltan 3 programas en los demas lenguajes imperativos ..

    te recomiendo los tutoriales que nos paso la dra. ..

    ResponderEliminar
  2. Esta bien explicado tu reporte aparte pones informacion acerca del lenguaje, y el codigo se ve muy complejo.

    ResponderEliminar
  3. Bueno explicaste muy bien el programa, el codigo se ve completo, pero aunte faltan 3 programas mas.

    ResponderEliminar
  4. muy bien el programa complicado pero muy bien aunque te falta 3 programas espero modifiques el reporte para que no te afecte en la calificacion

    ResponderEliminar
  5. creo que te falto mas o menos explicar asi algunas lineas del codigo, aunque esta muy bien, muy complicadom y con las imagenes como quedaria, pero si aun te faltan 3 programas mas

    ResponderEliminar
  6. esta muy bien el programa, lo malo que te faltan 3 mas echale ganas,saludos

    ResponderEliminar
  7. :)
    hola como estas
    el programa que hisiste esta muy bien
    esta completo y pues le pusiste mucha informacion y pues quedo muy claro , pero te hisieron falta programas
    nos vemos


    bye

    ResponderEliminar
  8. Bueno, pues como ya te indicaron los compañeros, era necesario hacer cuatro programas.

    El programa en C está muy completo, pero viendo que lo reciclaste de otra clase, me quedo pensando si en verdad le echaste ganas a este reporte...

    Calificación: 1.25/5

    ResponderEliminar