sábado, 12 de diciembre de 2009

Calificaciones finales.

Hola deseandoles que tengan felices fiestas, les dejo sus calificaciones.

Si tienen alguna objeción tienen estos dias para escribirme, yo subiré las calificaciones al sistema el 4 de Enero una vez cargadas en el sistema ya no hay modificaciones.

Saludos.

miércoles, 18 de noviembre de 2009

Especificaciones del proyecto final

Les pongo las especificaciones del proyecto final :

PROYECTO FINAL.

SALUDOS

martes, 10 de noviembre de 2009

Hola les pongo el siguiente código extraido de la página:

http://www.cplusplus.com/reference/stl/list/begin/



#include <iostream>
#include <list>

using namespace std;

int main ()
{
int myints[] = {75,23,65,42,13};
list<int> mylist (myints,myints+5);

list<int>::iterator it; //declaramos el iterador que vamos a usar

cout << "mylist contains:";

/*
Aqui inicializamos el iterador con la posición inicial de la lista
(con la lista.begin() ) hasta que llegamos al final de la lista
*/
for ( it=mylist.begin() ; it != mylist.end(); it++ )
cout << " " << *it; // con *it obtenemos el valor que contiene lo que apunta el iterador

cout << endl;

return 0;
}

Saludos

domingo, 8 de noviembre de 2009

TAREA QuickSort

Hola a todos respecto a la tarea para el jueves (tentativamente).

Simplemente deberán programar el algoritmo Quicksort agregando este método de ordenamiento a los métodos previos que hemos revisado (Se encuentran en la misma página), pero para hacerlo deberán usar un archivo que contendrá números desordenados de la siguiente forma:

entrada.txt (inicio)

12
13
14
.
.
.
43
123
989
(salida)

Para implementar el método deberán guardar los número en un objeto list de stl y la implementación será por medio de un algoritmo recursivo.

por ejemplo pueden usar la siguiente firma del método:

list ordenaQuickSort(list listaDesordenada){
// deben usar en todo momento un objeto de tipo list
.
.
}

También calculen el tiempo que se tarda en ordenar el arreglo de entrada.

NOTA deberán hacer el método dinámico (debe poder usarse para cualquier entrada de números) y recuerden que no quierdo códigos repetidos o sacadodos de internet TAMPOCO USAR EL MÉTODO sort de la clase list.

Saludos.

jueves, 5 de noviembre de 2009

Revisen por favor la siguiente página:

Holas les dejo la siguiente liga para que la revisen tiene un pequeño simulador de algunos algoritmos de ordenamiento:

http://people.cs.ubc.ca/~harrison/Java/sorting-demo.html

Saludos.

martes, 3 de noviembre de 2009

Les dejo las diapositivas de hoy.

AG

Ordenamiento1




Saludos.

jueves, 15 de octubre de 2009

CLASE en la sala de videoproyecciones

Perdon me confundí con la página la clase el martes y jueves es en el salón 213 como siempre.

Saludos.

martes, 13 de octubre de 2009

aqui pueden descargar la presentación del inicio de grafos:

Presentación

Saludos.

viernes, 9 de octubre de 2009

Presentacion de Pilas, Filas y Listas

aqui pueden descargar la presentación de las listas, pilas y filas:

Presentación

Saludos buen fin de semana.
Hola les dejo el programa de pilas :


class Pila {

private:
Nodo * ultimo;
unsigned int elementos;

public:
Pila() {
elementos = 0;
}

~Pila() {
while (elementos != 0) pop();
}

void push(int elem) {
cout<<"haciendo push a: "<<elem<<endl;
Nodo* aux = new Nodo;
aux->elemento = elem;
aux->siguiente = ultimo;
ultimo = aux;
++elementos;
}

int pop() {
cout<<"haciendo pop a la pila"<<endl;
int tmp;
Nodo* aux = ultimo;
tmp=ultimo->elemento;
ultimo = ultimo->siguiente;

delete aux;
--elementos;
return tmp;
}

int tope(){
if(vacia()){
cout<<"No hay elementos en el tope o cima"<<endl;
return 0;
} else{
cout<<"En el tope tenemos al elemento:"<<ultimo->elemento<<endl;
return ultimo->elemento;
}
}

bool vacia(){
if(elementos == 0)
return true;
else
return false;
}

unsigned int stackSize(){
return elementos;
}

};


martes, 22 de septiembre de 2009

Becas-Dgsca

Hola les agrego esta información que recibí, supongo que varios de ustedes cumplen con los requisitos es una buena forma de entrar a la parte aplicativa de los sistemas y de aprender más usando los conocimientos previos agregandolos a nuevos (les imparten cursos de diferentes lenguajes y sistemas operativos). Los proyectos que se desarrollan por parte de los becarios muchas veces resultan interesantes.

Espero les llame la atención:

Proyecto1

Les agrego las diapositivas de la clase y al mismo tiempo les recuerdo que la entrega del proyecto es el 1 de octubre a las 9:15 (fecha y horario limite) Si tienen dudas consulten la bibliografia o escribanme.

Saludos.

jueves, 3 de septiembre de 2009

Hola les dejo el código del programa revisado hoy, el martes vemos la solución del ejercicio visto en clase y que tengan buen fin de semana.

Saludos.


main.cpp

#include "Ordena.h"


using namespace std;

void insertar(int arr[]);
void seleccionar(int arr[]);

int main(){


int i, arreglo[MAX];
//srandom((int)time((time_t *)NULL));
srand((int)time((time_t *)NULL));

for(i=1;i<MAX;++i){
arreglo[i]=rand()%100 +1;
}

Ordena obj;

cout<< "arreglo:"<<endl<<endl;
// obj.imprime(arreglo);

cout<<endl;
clock_t t1;
t1 = clock () + CLOCKS_PER_SEC ;
obj.insertar(arreglo);
// obj.seleccionar(arreglo);

clock_t t2;
t2 = clock () + CLOCKS_PER_SEC ;

cout<<"segundos: "<<((float)(t2-t1)/1000)<<endl;

getchar();
return 0;

}

Ordena.h

#include <iostream>
#include <time.h>
#include <sys/time.h>
#include <stdlib.h>
#include <stdio.h>

#define MAX 10000
//#define DEBUG_CODE 0

using namespace std;

class Ordena{

private:
int *array;

public:
void seleccionar(int arr[]);
void insertar(int arr[]);
void imprime(int arr[]);
};

void Ordena::imprime(int arr[]){
int i=1;
for(;i<MAX;++i){
cout<<" "<<arr[i];
}
cout<<endl;

}




void Ordena::seleccionar(int arr[]){
cout<<"inicio seleccionar.."<<endl;

int i, minj, minx;
for(i=1;i<MAX-1;++i){
minj=i;
minx=arr[i];
for(int j=i+1;j<MAX;++j){
if(arr[j] < minx){
minj=j;
minx=arr[j];
}
}
arr[minj]=arr[i];
arr[i]=minx;
}

cout<<"fin seleccionar.."<<endl;

}

void Ordena::insertar(int arr[]){
// imprime(arr);
cout<<"inicio insertar.."<<endl;
int i=0, x=0, j=0;
for(i=2;i<MAX; ++i){
x=arr[i];
j=i-1;
while(j>0 && x<arr[j]){
arr[j+1]=arr[j];
j=j-1;
// cout<<"i:"<<i<<"j:"<<j<<",";

}
arr[j+1]=x;
// cout<<"i:"<<i<<",";
}

cout<<"fin insertar.."<<endl;

}


viernes, 28 de agosto de 2009

Espero todos chequen la página, les aviso que ambas tareas las pueden entregar el dia jueves de la siguiente semana, el formato se los comento el martes en clase, esto es debido a que a algunos compañeros no les quedó muy claro como funcionan los algoritmos revisados en clase y vamos a revisar algunos ejemplos más; por lo pronto les agrego las lineas de código para que ustedes puedan ver el comportamiento de sus algoritmos en su máquina y vean cuanto tiempo se tarda la ejecución de su programa de ordenamiento.

// como les comenté tienen que inicializar el algoritmo de números aleatorios con una "semilla"
srand((int)time((time_t *)NULL));

// pueden generar el arreglo con valores aleatorios de la siguiente forma:

for(i=1;i < MAX;++i){
arreglo[i]=rand()%100 +1; // esto genera numeros entre 1 y 100
}


// en mi caso mi clase se llama ordena y genero un objeto obj.
Ordena obj;

//Se genera una variable t1 para el tiempo antes de la ejecución del algoritmo
clock_t t1;
t1 = clock () + CLOCKS_PER_SEC ;
//Ejecuto el algoritmo de inserción o de selección
obj.insertar(arreglo);
// obj.seleccionar(arreglo);
//Se genera una variable t2 para el tiempo después de la ejecución del algoritmo
clock_t t2;
t2 = clock () + CLOCKS_PER_SEC ;
//hacemos la diferencia que se encuentra expresada en milisegundos para obtener los segundos
cout<<"segundos: "<<((float)(t2-t1)/1000)<<endl;

Las bibliotecas que deben usar son:

#include <time.h>
#include <sys/time.h>
#include <stdlib.h>

y para la lectura tienen la siguiente liga:

SAs e p t 09

recuerden que es articulo de origenes del cómputo.

Saludos.

martes, 25 de agosto de 2009

Hola les agrego los códigos que revisamos este día.



programa 1

#include <iostream>
using namespace std;


int main(){

int *ptr, x=10;
cout <<"1.- direccion de ptr:" <<ptr<< ", direccion de x:"<<&x<<", valor de x:"<<x<<endl;
ptr=&x;
cout <<"2.- direccion de ptr:" <<ptr<< ", direccion de x:"<<&x<<", valor de x:"<<x<<endl;
*ptr=15;
cout <<"2.- direccion de ptr:" <<ptr<< ", direccion de x:"<<&x<<", valor de x:"<<x<<endl;


getchar();
return 0;

}


programa 2


#include <iostream>
using namespace std;

class CRectangle {
int ancho, alto;

public:
void set_values (int, int);
int area () {return (ancho * alto);}
};

void CRectangle::set_values (int a, int b) {
ancho = a;
alto = b;
}



int main () {
CRectangle a, b,*c;
CRectangle *d = new CRectangle[3];

a.set_values (1,2);

b.set_values (3,4);
c->set_values (3,4);



cout << "tamaño:"<<sizeof(a)<<", "<<sizeof(b)<<", "<<sizeof(*c)<<", tamInts: "<<sizeof(int)<<endl<<endl;

cout << "a area: " << a.area() <<", localidad:"<<&a<<endl;
cout << "b area: " << b.area() <<", localidad:"<<&b<<endl;
cout << "c area: " << c->area() <<", localidad:"<<c<<endl<<endl;

d->set_values (5,6);
cout << "d0 area: " << d->area() <<", localidad:"<<d<<endl;

*d++;
d->set_values (7,10);

cout << "d1 area: " << d->area() <<", localidad:"<<d<<endl;
*d++;

d->set_values (9,11);
cout << "d2 area: " << d->area() <<", localidad:"<<d<<endl;
getchar();
return 0;
}

martes, 18 de agosto de 2009

Hola a todos les dejó el código de algunos de los programas que hemos revisado en clase, recuerden que el objetivo del blog es que ustedes ( en caso de que tengan dudas) las agreguen, así podemos comentar y responder ( no necesariamente yo tengo que contestar las dudas), saludos y nos vemos el jueves.

Punto.h


#include <iostream>
using namespace std;

class Punto{
int x,y;

public:
int getX(){return x;}
int getY(){return y;}
void setX(int _x){ x=_x;}
void setY(int _y){ y=_y;}
Punto(int x,int y);
Punto(){}
void imprimeVariables();
};

Punto::Punto(int _x, int _y){
cout<<"Constructor"<<endl;
x=_x;
y=_y;
}

void Punto::imprimeVariables(){
cout<<"valores: "<<x<<", "<<y<<endl;
}

prog1.cpp

#include <iostream>
#include "Punto.h"

using namespace std;

int main(){
Punto obj1(3,4);
obj1.imprimeVariables();
cout << "Hola "<<" "<<"Mundo"<<endl;
Punto obj2;
obj2.setX(15);
obj2.setY(20);
obj2.imprimeVariables();


return 0;
}

prog2.cpp

#include <iostream>
#include <string>
using namespace std;

int main ()
{
string cad1 = "Hola mundo";
cout << mystring<<endl;

string cad2("Adios");
cout << cad2<<endl;

cout << cad1+cad2<<endl;


return 0;
}