miércoles, 18 de noviembre de 2015

PILAS Y COLAS

Cola:
En este .cpp se pide el ingreso por teclado de un conjunto de datos de manera iterativa hasta que se ingrese la palabra "fin" cuando la consola pida el dato "Nombre". Una vez finalizado el ingreso, y si hay datos en la cola, se procede a mostrarlos navegando mediante las estructuras (struct). Cada estructura contiene la posición de memoria de la estructura siguiente en la cola, por lo que se las recorrerá hasta el final y se las irá eliminando de la memoria (ya que conceptual mente un nodo debe leerse de memoria una única vez).
Una cola es una estructura de datos, caracterizada por ser una secuencia de elementos en la que la operación de inserción push se realiza por un extremo y la operación de extracción pop por el otro. También se le llama estructura FIFO (del inglés First In First Out)
Ejemplo:
Realizar un prgrama que ingrese 5 numeros y que los presente en orden.
    #include <conio.h>
    #include <stdio.h>
    int i;
    int num[5];
    int *ptrnum;
    main(){
    printf("Ejercicio COLA");
    for(int i=0;i<5;i++){
    printf("Ingrese los numeros %d",i+1);
    scanf("%d",&num[i]);
    }
    ptrnum=&num[i];
    for(int i=0;i<=4;i++){
    printf("\n %d \n",ptrnum[i]);
    }
    getch();

    }


    Pila
    La pila es una estructura de datos que permite almacenar datos en el orden LIFO (Last In First Out, en español, "último en entrar, primero en salir"). 
    La recuperación de los datos es realizada en el orden inverso de su inserción. 
    En este caso también se solicita un conjunto de datos de manera iterativa a ingresar por teclado. Cuando se finaliza el ingreso, se porcede a mostrar los elementos de la pila y además se utiliza un archivo binario para transformar la pila en memoria en una estructura de datos persistente. Cada nodo de la pila, como en el caso anterior, mantendrá una referencia al nodo siguiente haciendo posible el futuro recorrido de la misma. Luego de finalizada la muestra de los elementos de la pila, se consulta al usuario si se desea acceder a los datos de la misma almacenados en el archivo binario, para lo cual, en el caso de responder Si (S), se accede al archivo y se imprimen los registros de manera secuencial.
    Ejemplo:
    Realizar un programa que pida el nombre y que lo presente el mismo nombre al reves
    1. #include <conio.h>
      #include <stdio.h>

      char nom[10];

      int i;
      main(){

      printf("Ingrese su nombre:");
      scanf("%s",&nom);
      for(i=10;i>=0;i--){
      printf("%c",nom[i]);
      }
      getch();
      }

    Correccion de la evaluacion del Bloque 1

    1.-Determinar el valor que tendrán las variables después de cada operación de asignación
    int A;
    A=5;
    A=A+7;
    A=A-10;
    A=A2;
    A=4
    int A;
    int B;
    A=1;
    B=2;
    A=A+B;
    A=3
    int X;
    Int y;
    X=3;
    Y=X;
    Y=X+3;
    Variable mal declarada
    int A;
    int B;
    B=12;
    A=B+1;
    A=B-7;
    B=A+5
    A=A*A
    A=25
    int X;
    int Y;
    X=2;
    Y=X+6;
    X=X+1;
    Y=X-5
    Y=-2
    int HOLA;
    int NO_SE;
    int OTRA;
    HOLA=2;
    NO_SE=12;
    OTRA=HOLA+NO_SE;
    NO_SE=HOLA+NO_SE;
    HOLA=NO_SE+OTRA;
    HOLA=28
    int A;
    int B;
    A=0;
    B=5;
    B=a+b;
    B=A;
    Variable mal declarada
    int A;
    int B;
    int C;
    A=1;
    B=A-1;
    B=C-B;
    Basura


    2.-Definir cual seria la salida de pantalla del siguiente código de C++

    #include <conio.h>
    #include <stdio.h>
    #include <stdlib.h>
    char ced[9];
    char *ptrced;
    main (){
         printf ("Ingrese su num de ced");
         gets(ced);
         printf ("%s\n",ced);
         for (int i=0;i<10;i++){
             ptrced=&ced[i];
         //printf ("\n%p\n",&ptrced);
         printf ("%d\n",*ptrced);
         }
         getch ();
         }

    Ingrese número de ced

    è 1,2,3,4,5,6,7,8,9,0

    49
    50
    51
    52
    53
    54
    55
    56
    57
    48
    "Realiza un casting"

        
    3.-Subraye la respuesta correcta
    ¿Qué es una matriz?
    a)      Es una zona de almacenamiento contiguo
    b)      Es un tipo de dato que asigna valor de memoria de un solo tipo char
    c)       Es una estructura dinámica
    d)      Ninguna de las anteriores
    ¿Qué es un puntero?
    a)      Es una matriz que hacer referencia a una región de memoria
    b)      Es un valor entero que da referencia a una región de memoria
    c)       Ninguna de las anteriores
    d)      Es una variable independiente de memoria que sirve para apuntar a un puntero
    ¿Qué es una estructura dinámica?
    a)      Son estructuras cuya dimensión puede crecer o disminuir durante la creación de un un programa
    b)      Son estructuras que cuya dimensión puede crecer o disminuir durante el diseño del programa
    c)       Son estructuras cuya dimensión puede crecer o disminuir durante la ejecución del programa
    d)      Ninguna de las anteriores
    ¿Qué es una lista?
    a)      Es un puntero de datos que nos permite agrupar elementos de una manera organizada
    b)      Es un dominio de datos que nos permite agrupar elementos de una manera organizada
    c)       Es una estructura de datos que nos permite agrupar elementos de una manera organizada
    d)      Ninguna de las anteriores
    ¿Qué es una pila?
    a)      Es un tipo de lista en la que solo se pueden insertar y eliminar nodos en uno de sus extremos
    b)      Es un tipo de punteros en la que solo se pueden insertar y eliminar nodos en uno de los extremos
    c)       Es un tipo de dato int que solo se puede insertar y eliminar nodos en uno de los extremos de la lista


    4.-Realizar el siguiente ejercicio en C++ en el computador
    a)      Dado por el usuario un valor de numero de tipo int que corresponda al año de nacimiento, calcular el número de la suerte que será la sumatoria del mismo , utilizar punteros
    b)      Ingresando valores a una matriz de cuatro elementos de tipo flotante calcular el mayor de os elementos utilizar punteros

    Punteros - Ejercicio

    Un puntero es una variable que contiene la dirección de memoria de un dato o de otra variable que contiene al dato en un arreglo.Un puntero puede apuntar a un objeto de cualquier tipo,por ejemplo, a una estructura o una función. Los punteros se pueden utilizar para referencia y manipular estructuras de datos, para referenciar bloques de memoria asignados dinamicamente y para proveer el paso de argumentos por referencias en las llamadas a funciones.

    Ejercicio:
    Realizar un programa que solicite el nombre la edad y el género y se desplieguen los datos ingresados con su respectiva dirección de memoria.
    #include <conio.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <iostream.h>

    int edad;
    int *ptrop=&edad;
    char nombre[10];                                                                     
    char *ptrnom =&nombre[10];
    char genero;
    char *ptr =&genero;
    int main()
    {
       cout<<"Ingrese nombre: ";
      cin>>nombre;
      cout<<"Ingrese edad:  ";
      cin>>edad;
      cout<<"Ingrese genero: ";
      cin>>genero;
      printf("Su nombre en codigo binario es: %p\n",nombre);
      printf("Su edad en codigo binario es: %p\n",edad);
      printf("Su genero en condigo binario: %p\n",genero);
      getch(); }

    Modo Grafico en Dev

    Modo Grafico en dev


    Para poder hacer gráficas sencillas en Dev c++ se usa una libreria llamada Winbgim (similar a graphics de Borland),ahora si gustas de mejores trabajos te recomiendo aprender OpenGL,a continuación vamos a instalarla en nuestra máquina :
    En primer lugar devemos descargar la  libreria Winbgim:
     Una vez instalado la libreria,la probamos:
    Abre Dev C++,te diriges a Archivo – Nuevo – Proyecto y en la pestaña Basic encontrarás Console    Graphics Application, das click en Aceptar

    3.- Si todo sale bien nos deberia aparecer un código similar a este:

    #include <winbgim.h
    void waiForLeftMouseClick();
    int main(){  
    int window(700,300); 
        settextstyle(0,0,2);
        setcolor(RED);
        outtextxy(100,100,"WELCOME TO CÓDIGO INFORMÁTICO");
        setcolor(GREEN);
        outtextxy(280,130,"INFO - UNT");

        // while(!kbhit()); // wait for user to press a key
        waitForLeftMouseClick(); 

        closegraph();        //close graphics window
        return 0;
    }

    void waitForLeftMouseClick()
    {
        clearmouseclick(WM_LBUTTONDOWN);
        const int DELAY = 50; 
        int x, y;
        while (!ismouseclick(WM_LBUTTONDOWN))
            delay(DELAY);
        getmouseclick(WM_LBUTTONDOWN, x, y);




     4.- Corremos el programa y listo.

    miércoles, 11 de noviembre de 2015

    Diferencias entre lenguaje c y c++


      
    LENGUAJE C
    LENGUAJE C++
    Es un lenguaje libre estandarizado por ISO muy pequeño que admite programación estructurada es útil en programación de sistemas operativos, drivers y programación web.
    Es un lenguaje libre estandarizado por ISO MUY GRANDE

    Es un invento de Microsoft

    En C++ void no es necesario

    Fue creado en 1972 por Dennis  Ritchie en los Laboratorios Bell 
    Fue creado a mediados de los años 1980 por Bjarne Stroustrup

    Los prototipos se recomiendan, pero son opcionales.
    Todas las funciones deben estar en forma de prototipo
    Se utiliza “printf” y “scanf”
    Se utiliza “cout” y “cin”

    Estructuras dinámicas en C++


    Las estructuras dinámicas de datos son estructuras que cuya dimensión puede crecer o disminuir durante la ejecución del programa. Una estructura dinámica de datos es una colección de elementos llamados nodos. Al contrario que un array, que contiene espacio para almacenar un número fijo de elementos, una estructura dinámica de datos se amplía y contrae durante la ejecución del programa.
    Ejercicio: 

    Realizar un programa que pida el nombre, sexo, nacionalidad, cedula. Utilizando estructuras.

    #include <conio.h>
    #include <stdio.h>
    struct persona {
    char nombre[50];
    int edad[50];
    char sexo[50];
    char nacionalidad[50];
    int cedula[50];
    }dato;
    main(){
    printf("Ingrese su nombre:\t");
    scanf("%s",&dato.nombre);
    printf("Ingrese su edad:\t");
    scanf("%d",&dato.edad);
    printf("Ingrese su sexo:\t");
    scanf("%s",&dato.sexo);
    printf("Ingrese su nacionalidad:\t");
    scanf("%s",&dato.nacionalidad);
    printf("Ingrese el numero de cedula:\t");
    scanf("%d",&dato.cedula);
    getch();