jueves, 5 de noviembre de 2015

Modo Grafico Dev C++

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 :
1.- Descarga la libreria Winbgim:


2.- 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 waitForLeftMouseClick();

int main()
{
    initwindow(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.

La libreria winbgim.h tiene bastantes funciones, por lo tanto explicar todo el contenido de esta libreria seria hasta que ya no ardan las velas. Por la tanto mencionaremos las funciones mas basicas de esta libreria:
Funciones principales de la librería winbgim.h
Función
Tarea
void circle (int x, int y, int radius);
Dibuja un circulo en x,y de radio radius
void cleardevice (void);
Borra la pantalla
void line (int x1, int y1, int x2, int y2);
Traza una línea desde x1,y1 hasta x2,y2
void lineto (int x, int y)
Traza una línea desde la posición actual de cursor hasta  x,y
void putpixel (int x, int y, int color);
Dibuja un pixel en x,y de color color
void rectangle (int left, int top, int right, int bottom);
Dibuja un rectangulo de esquenas top,left y right,bottom
void setcolor (int color);
Establece el color actual.
int mousex(void)
Retorna la coordenada x del Mouse relativa a la esquina superior izquierda
int mousey(void)
Retorna la coordenada y del Mouse relativa a la esquina superior izquierda

Funcion line
Citar:
line(X1,X2,X3,X4);
Donde:

W6
X1: Fila punto 1
X2: Columna punto 1
X3: Fila punto 2
X4: Columna punto 2

Esta funcion nos permite dibujar una linea, para eso necesita cuatro parametros, los cuales se utilizan para dibujar la linea.
Funcion circle:

circle(X1,X2,X3);

Donde:

X1: Fila (centro)
X2: Columna (centro)
X3: Radio del circulo


Como su nombre lo dice (Circle=Circulo), es una funcion que dibuja un circulo. Requiere tres parametros que representan la columna y el renglon respectivamente y el radio. 
Funcion rectangle()

rectangle(X1,X2,X3,X4)

Donde:

X1: Fila del punto 1
X2: Columna del punto 1
X3: Fila del punto 2
X4: Columna del punto 2

Esta funcion nos dibuja un rectangulo basandose en el punto superior izquierdo(1) y en el punto inferior derecho(2). 
Funcion ellipse()

ellipse(X1,X2,X3,X4,X5,X6);

Donde:

X1: Fila de la elipse(centro)
X2: Columna de la elipse(centro)
X3: Angulo inicial
X4: Angulo final
X5: Radio horizontal
X6: Radio vertical
Dibujara una especie de ovalo.
Funcion arc()

arc(X1,X2,X3,X4,X5);

Donde:

X1: Fila del arco(centro)
X2: Columna del arco(centro)
X3: Angulo inicial
X4: Angulo final
X5: Radio del arco

Requiere 5 argumentos para su funcionamiento. Dibujara un arco circular.
Funcion setlinestyle()

setlinestyle(X1,X2,X3);

Utilizada para deterrminar el tipo de linea que sera usada por el usuario. Requiere 3 argumentos. El primero es el que define el tipo de linea, soporta: CENTER_LINE, DOTTED_LINE,
DASHED_LINE, USERBIT_LINE o SOLID_LINE. El segundo es el patron y el tercero el ancho de la linea.
Funcion setcolor()

Se utiliza para definir el color de los trazos posteriores a su declaracion. Este solo utiliza un argumento, el cual representa el color.

0   ||   BLACK
1   ||   BLUE
2   ||   GREEN
3   ||   CYAN
4   ||   RED
5   ||   MAGENTA
6   ||   BROWN
7   ||   LIGHTGRAY
8   ||   DARKGRAY
9   ||   LIGHTBLUE
10 ||   LIGHTGREEN
11 ||   LIGHTCYAN
12 ||   LIGHTRED
13 ||   LIGHTMAGENTA
14 ||   YELLOW
15 ||   WHITE
Funcion outtextxy()

outtextxy(X1,X2,"X3");

Donde:

X1: Fila
X2: Columna
X3: Texto a salir

Fuente :http://m.sistemasjpa.es.tl/C%2B%2B-_-winbgim-.-h.htm
http://xcodigoinformatico.blogspot.com/2012/09/instalar-winbgim-en-dev-c.html?m=1

lunes, 19 de octubre de 2015

Corrección Evaluacion Primer Bloque

Nombre: Oscar Pinto                                                    Curso: 2do INF
Corrección
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

    
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

c)       Mediante una matriz ingresar el nombre de una persona e imprimirlo al revés utilizar punteros

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

int numero[5];
int *ptrnum;
int mayor=0;

main () {
for (int i=0;i<5;i++){
printf ("Ingrese el valor %d : " ,i+1);
scanf ("%d" ,&numero[i]);
printf ("%d\n" ,numero[i]);
}
for (int j=0;j<4;j++){
ptrnum=&numero[j];
printf ("%d\n",*ptrnum);
printf ("%d\n",numero[j+1]);
if (*ptrnum>=numero[j+1]){
mayor=*ptrnum;
}
else
mayor=numero[j+1];
}
printf ("El numero mayor es %d" ,mayor);
getch ();
}


sábado, 10 de octubre de 2015

Ejercicio numero mayor

Descripcion 

En este ejercicio se aplica el uso de la función si , para en este caso seleccionar un numero mayor dentro de 3 números ingresados.

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

int numero[5];
int *ptrnum;
int mayor=0;

main () {
for (int i=0;i<5;i++){
printf ("Ingrese el valor %d : " ,i+1);
scanf ("%d" ,&numero[i]);
printf ("%d\n" ,numero[i]);
}
for (int j=0;j<4;j++){
ptrnum=&numero[j];
printf ("%d\n",*ptrnum);
printf ("%d\n",numero[j+1]);
if (*ptrnum>=numero[j+1]){
mayor=*ptrnum;
}
else
mayor=numero[j+1];
}
printf ("El numero mayor es %d" ,mayor);
getch ();
}

Teoria de "Cola"



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), debido a que el primer elemento en entrar será también el primero en salir. Las colas se utilizan en sistemas informáticos, transportes y operaciones de investigación (entre otros), dónde los objetos, personas o eventos son tomados como datos que se almacenan y se guardan mediante colas para su posterior procesamiento. La variable utilizada para representar la cola para programar en c++ es la letra “Q”
Usos concretos de la cola
La utilización de este método programático es que sólo podemos acceder al primer y al último elemento de la estructura, de tal manera que los elementos sólo se pueden eliminar por el principio y sólo se pueden añadir por el final de la cola.
Ejemplos de colas en la vida real serían: personas comprando en un supermercado, esperando para entrar a ver un partido de béisbol, esperando en el cine para ver una película, una pequeña peluquería, etc. La idea esencial es que son todas líneas de espera.


Representación de las colas
Un elemento se inserta en la cola (parte final) de la lista y se suprime o elimina por la frente (parte inicial, cabeza) de la lista. Las aplicaciones utilizan una cola para almacenar elementos en su orden de aparición o concurrencia




Los elementos se eliminan (se quitan) de la cola en el mismo orden en que se almacenan y, por consiguiente, una cola es una estructura de tipoFIFO (first-iidfirs-out, primero en ciitrar//?primero en salir o bienprimero en llegar/primero en ser servido).

Las colas se representan por listas enlazadas o por arrayas. Se necesitan dos punteros: frente (f) y final(r), y la lista o arraya de “n” elementos (LONGMAX).





Ejercicio 

En este ejercicio se demostra la teoria , mediante el uso de cola , en este caso se ingresara un nombre y se imprimira en pantalla la primera letra que entra es la primera que sale.


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

int i;
int num[5];
int *ptrnum;


main () {
printf ("BIENVENIDO EJERCICIO COLA\n");

for (int i=0;i<5;i++){

printf ("Ingrese los numeros %d:\n",i+1);

scanf ("%d" ,&num[i]);

}
ptrnum=&num[i];

for(i=0;i<=4;i++)
 {

  printf("\n %d \n",ptrnum[i]);
 }


getch ();
}

Teoria "Pila"

Teoria 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. 

Para la implementación he elegido una lista enlazada simple, presentada sobre la vertical. 
Ya que la inserción es siempre hecha al inicio de la lista, el primer elemento de la lista será el ultimo elemento ingresado, por lo tanto estará en la cabeza de la pila. 
No he utilizado un puntero fin, como lo hice en el caso de la lista enlazada simple, ya que el objetivo no es el de tratar una lista enlazada, sino una pila. 
Lo interesante es que el último elemento ingresado, será el primer elemento recuperado 



Ejercicio

En este ejercicio se aplicara la teoria de pila , en el cual mediante el ingreso de caracteres , el primero en entrar sera el ultimo en salir.


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

int i;
int num[5];
int *ptrnum;


main () {
printf ("BIENVENIDO EJERCICIO PILA\n");

for (int i=0;i<5;i++){

printf ("Ingrese los numeros %d:\n",i+1);

scanf ("%d" ,&num[i]);

}
ptrnum=&num[i];

for(i=4;i>=0;i--)
 {

  printf("\n %d \n",ptrnum[i]);
 }


getch ();
}

miércoles, 7 de octubre de 2015

Librerias en C

Para declarar una libreria en c basta con crear un archivo con la funcion , este archivo debe ser guardado con la extension .h , se puede utilizar un bloc de notas para crearlo , despues a este archivo se lo copia a la biblioteca de librerias del compilador .
Ejemplo

#include <Funciones.h>

main()
{
reves ();

getch ();
}

Archivo Funciones.h
https://www.dropbox.com/s/8uhb2yqmvffvbin/Funciones.h?dl=0