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.
sábado, 12 de diciembre de 2009
miércoles, 18 de noviembre de 2009
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/
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.
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
// 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.
http://people.cs.ubc.ca/~harrison/Java/sorting-demo.html
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.
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.
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:
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.
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.
// 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
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;
}
Suscribirse a:
Entradas (Atom)