miércoles, 24 de abril de 2013

Hilo en linux (Es como si si te estuviera saliendo en doble hilo)

#include <stdio.h>
#include <unistd.h>
using namespace std;
 int  main()
 {
 pid_t pid;
 pid=fork();
 if(pid==-1){
printf("error");
}
if(pid) { printf("padre %d",pid);
}else{
printf("hijito de mama");
}
}

viernes, 5 de abril de 2013

PROCEDIMIENTO EXPERIMENTAL:


Parte 1. Codificar y analizar el siguiente programa en el sistema operativo Windows
#include<conio.h>
#include<dos.h>
#include<iostream.h>
#include<fstream.h>
main()
{

clrscr();
char caracter;
fstream imp;
cout<<"\n Programa para imprimir un carácter utilizando puerto paralelo";
cout<<"\n Ingresar el caracter";
cin>>caracter;
imp.open("LPT1",1,1);
if(!imp) {cout<<"\n Impresora desconectada";}
else{
cout<<"\n Enviando el carácter por el puerto";
imp<<caracter;
imp << '\r' // Retorno de carro (ENTER)

<< '\f' ; // Expulsa la última hoja de la impresora
imp.close();
cout<<"\n impresora cerrada";
}
getch();
}
Cual es la línea que abre el Puerto de datos

Parte 2. Verifica usando el debug del código anterior

Usando el debug del DOS podemos verificar la línea de puertos de entrada y de
salida con las interrupciones :
D040:08l8
Escriba y arme en octetos los puertos encontrados


Parte 3. Codificar y analizar el siguiente programa en el sistema operativo windows
#include <stdio.h>
#include <dos.h>
#include<conio.h>
int main()
{
clrscr();
unsigned int _far *puntero_a_direccion;

int i;
puntero_a_direccion=(unsigned int _far *)0x00000408;
for (i=0; i<3; i++)
{
if (*puntero_a_direccion == 0)
printf("No se encontro puerto asignado a LPT%d \n", i+1);
else
printf("La direccion asignada a LPT%d es 0x%Xh\n\n", i+1,
puntero_a_direccion);
puntero_a_direccion++;
}
getch();
return 0;
}
Identifique ud la dirección asignada al puerto de salida


Parte 3. Modificar el código anterior donde busque con los puertos y muestre el tiempo
que los encontró usando la siguiente función.
Void espera (int segundos)
{
clock_t fin;
fin=clock()*segundos*CLK_TCK;
while (clock()<fin) { }
}







domingo, 9 de diciembre de 2012

COMO LLAMAR DATOS A UN COMBO


Tenemos la tabla Alumnos con los datos siguientes:



















Vamos a jalar los datos de los campos IdAlumno y Nombre en un combobox:
PASO 1:  Realizamos un método llamado  getConexion() utilizado en clase para la conexión, no olvidar cambiar el server, nombre de base de datos,usuario y contraseña.
public SqlConnection getConexion
        {
            try
            {
                string Server = "DASISTEMAS2\\SQLEXPRESS";
                string User = "sa";
                string Password = "10109091";
                SqlConnection con = new SqlConnection("SERVER=" + Server + ";Initial Catalog=SisMatricula;USER ID=" + User + ";PWD=" + Password + ";");
                return con;
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }

        }

PASO 2:  Realizamos un método donde se llamen los datos para el combobox, solo necesitamos los datos de los campos IdAlumno y Nombre, utilizamos en comando sql "select IdAlumno,Nombre from dbo.Alumno", no se olviden de cambiar este query :

        public DataSet TraerAlumnos()
        {
            SqlConnection con = new SqlConnection();
            DataSet ds = new DataSet();
            try
            {
                con = getConexion();
                con.Open();
                SqlCommand cmd = new SqlCommand("select IdAlumno,Nombre from dbo.Alumno", con);
                //cmd.CommandType = CommandType.StoredProcedure; //CASO PROCEDIMIENTOS ALMACENADOS
                cmd.CommandType = CommandType.Text;
                cmd.ExecuteNonQuery();
                SqlDataAdapter ad = new SqlDataAdapter(cmd);
                ad.Fill(ds);
                con.Close();

                return ds;
            }
            catch (Exception e)
            {
                throw new Exception("Error tabla " + e.Message);
            }
        }

PASO 3:  Llamamos los datos del DataSet al Combobox:
private void frmCombo_Load(object sender, EventArgs e)
        {
            comboBox1.DataSource = TraerAlumnos().Tables[0];
        }
Para que llamen los datos es necesario configurar el combobox con los campos llamados, para eso cambiamos las propiedades ValueMember (campo IdAlumno) y Display Member(Nombre)  del combobox:





EJECUCIÓN:




COMO TOMAMOS EL VALOR SELECCIONADO DEL COMBOBOX:
Al pulsar el botón Mostrar código elegido:
comboBox1.SelectedValue.ToString()  Es el valor IdAlumno elegido (valor que se guardará en la otra Tabla), lo mostramos en una ventana de mensajes:
private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show(comboBox1.SelectedValue.ToString());

        }





miércoles, 28 de noviembre de 2012

qwerty en C++


#include<conio.h>
#include <stdlib.h>
#include<stdio.h>
#include<string.h>
#include <graphics.h>
#include<iostream.h>
#include"ventanas.h"
#include"esctexto.h"
int final[20], N;
int vec3[20],numero;
void Flecha1(int x, int y){
    int i, j;
    int bitmap[5][9]={
    15,15,15,15,1,15,15,15,15,
    15,15,15,1,15,1,15,15,15,
    15,15,1,15,15,15,1,15,15,
    15,1,15,15,15,15,15,1,15,
    1,15,15,15,15,15,15,15,1
    };
    for(i=0;i<5;i++)
      for(j=0;j<9;j++)
       putpixel(y+j,x+i,bitmap[i][j]);
}
void Flecha2(int x, int y){
    int i, j;
    int bitmap[9][5]={
    1,15,15,15,15,
    15,1,15,15,15,
    15,15,1,15,15,
    15,15,15,1,15,
    15,15,15,15,1,
    15,15,15,1,15,
    15,15,1,15,15,
    15,1,15,15,15,
    1,15,15,15,15
    };
    for(i=0;i<9;i++)
      for(j=0;j<5;j++)
       putpixel(y+j,x+i,bitmap[i][j]);
}
void EjeXY(){
  int i, j;
  char num[3];
  setfillstyle(8,15);
  bar(0,0,639,479);
  VentanaBarraTitulo("Gr fico de SSTF",4,4,632,472,7,1,15);
  Contenedor(7,32,630,470);
  VentanaTexto(11,36,628,468);
  Comentario("Para salir de la ventana digite cualquier tecla...!",150,454,0);
  setcolor(1);
  Flecha1(47,66);
  Flecha2(416,599);
  line(70,440,70,50);
  line(50,420,600,420);
  settextstyle(8,1,2);
  outtextxy(15,160,"Procesos");
  settextstyle(8,0,2);
  outtextxy(250,435,"tiempo");
  j=400;
  settextstyle(2,0,2);
  for(i=1;i<=18;i++){
      itoa(i,num,10);
      outtextxy(55,j,num);
      j-=20;
  }
  j=70;
  settextstyle(2,0,2);
  for(i=numero;i<=34+numero;i++){          //------
      itoa(i,num,10);
      outtextxy(j,425,num);
      j+=15;
  }
}
void puntos(){
 //    n=5;
    int i,j,indice[10];
    for(i=1;i<=N;i++)
    {  for(j=1;j<=N;j++)
      { if(final[i]==vec3[j])
    {  indice[i]=j;
    }
      }

    }
    //printf("hola %d",N);
    setcolor(RED);
    setlinestyle(0,0xffff,3);
    line(70,400,70+(final[1]-numero)*15,400);
    for(i=2;i<=N;i++){
      line(70+(final[i-1]-numero)*15,420-indice[i]*20,70+(final[i]-numero)*15,420-indice[i]*20);
    }
  setlinestyle(0,0xffff,1);
}

int menor(float vec[],int n)
{  int c,i; c=1;
float menor;
      menor=vec[1];
    for(i=2;i<=n;i++)
    {
      if(vec[i]<menor)
      {  c=i;
      }

    }
return(c);

}
void intro()
{
  int mat[20][10];
  int i,j=1,n,x, posy, posx;
  char n_[6],i_[5],proceso[10];

  VentanaBarraTitulo("Algoritmo de HRN",49,49,589,429,7,1,15);
  Contenedor(54,79,584,424);
  Comentario("Digite el Numero de Procesos",110,90,7);
  BarraTexto(400,90,424);
  EscribeTextoBarra(n_,400,90,424);
  n=atoi(n_);
  N=n;
    for(i=1;i<=n;i++)
    {
      mat[i][j]=i;
    }
  Comentario("Tiempos Iniciales",70,110,7);
   j=2;
   posy=140;

  for(i=1;i<=n;i++)
  {
    itoa(i,i_,10);
    strcpy(proceso,"Proceso ");
    strcat(proceso,i_);
    Comentario(proceso,70,posy,0);
    BarraTexto(150,posy,190);
    EscribeTextoBarra(n_,150,posy,190);
    mat[i][j]=atoi(n_);
    if(posy<420)posy+=20;
  }
  j++;
  Comentario("Tiempos  Requiridos",290,110,7);
  posy=140;
  for(i=1;i<=n;i++)
  {
    itoa(i,i_,10);
    strcpy(proceso,"Proceso");
    strcat(proceso,i_);
    Comentario(proceso,290,posy,0);
    BarraTexto(370,posy,410);
    EscribeTextoBarra(n_,370,posy,410);
    mat[i][j]=atoi(n_);
    if(posy<420)posy+=20;
  }
    /*for(i=1;i<=n;i++)
    {
   for(j=1;j<=3;j++)
   {  gotoxy(j*j+4,i+2);
     printf("%d",mat[i][j]);

   }
    } */
  float vec[20];
  int f,k,m,c=1,pivote,nuevomat[20][10];
  final[1]=mat[1][2]+mat[1][3];
  pivote=final[1];
    m=n;
  mat[1][4]=pivote;
 for(f=1;f<=n;f++)
 {  for(j=1;j<=3;j++)
    {

    nuevomat[f][j]=mat[f][j];

    }
 }


 for(f=c;f<=m-1;f++)
 {  for(j=1;j<=3;j++)
    {

    nuevomat[f][j]=nuevomat[f+1][j];
      }
  }
  m--;    //------------------



 int w=2;
 //-----------------------------------------
for(k=1;k<=n-1;k++)
{
     for(i=1;i<=m;i++)
     {
       vec[i]=( ( pivote-nuevomat[i][2] ) + nuevomat[i][3] ) / nuevomat[i][3];

     }
      c=menor(vec,m);
      x=nuevomat[c][1];
      final[w]=pivote+nuevomat[c][3];
      pivote=0;
      pivote=final[w];  // printf("\t \tfinal %d \n",pivote);
      mat[x][4]=final[w];
      w++;
    for(f=c;f<=m-1;f++)
    {    for(j=1;j<=3;j++)
     {
       nuevomat[f][j]=nuevomat[f+1][j];
     }
      }
      m=m-1;
}


    /*for(i=1;i<=n;i++)
    {
      printf(" \n %d \n",final[i]);
    } */
     for(i=1;i<=n;i++)
     {
         vec3[i]=mat[i][4];
     }
     numero=mat[1][2];
      //   puntos(final,vec3);

      getch();
      VentanaBarraTitulo("",400,250,600,430,3,3,3);
      Contenedor(405,255,595,425);
      posy=260;
    for(i=1;i<=n;i++)
    {  posx=423;
   for(j=1;j<=4;j++)
   {
     itoa(mat[i][j],n_,10);
     Comentario(n_,posx,posy,0);
     posx+=32;

   }
   posy+=10;
    }
    Comentario("Digite una tecla para salir de la ventana..!",200,410,0);
    getch();
    getch();
}
void main(){

    int a=0,b=0;
    getch();
    initgraph(&a,&b,"c:\\tc\\bgi");
    setfillstyle(8,15);
    bar(0,0,639,479);
    intro();
    EjeXY();
    puntos();
    getch();
    closegraph();
}

Full C++ en estructura de datos


# include <iostream.h>
# include <conio.h>
# include <stdio.h>
# include <string.h>
class Auto
{
private:
char Marca[26];
char Modelo[26];
char Color[31];
char Precio[8];
public:
Auto();
Auto(char M[], char *m, char *C, char *P);
void Leer();
void Imprimir();
};
class Propietario : public Auto
{
private:
char Empresa[20];
char Direccion[20];
char Cliente[20];
char TelefonoE[20];
char TelefonoC[20];
public:
Propietario();
void Leer();
void ImprimirDatos();
};
Propietario::Propietario(): Auto("X","Y","Z","Z")
{
Empresa[0]=0;
Direccion[0]=0;
Cliente[0]=0;
TelefonoE[0]=0;
TelefonoC[0]=0;
}
void Propietario::Leer()
{
Auto::Leer();
cout<<"Nombre de la Empresa: ";gets(Empresa);
cout<<"Direccion: ";gets(Direccion);
cout<<"Nombre del Cliente: ";gets(Cliente);
cout<<"Telefono Empresa: ";gets(TelefonoE);
cout<<"Telefono Cliente: ";gets(TelefonoC);


}

void Propietario::ImprimirDatos()
{
Imprimir();
cout<<"\nNombre de la Empresa : "<<Empresa ;
cout<<"\nDireccion: "<<Direccion;
cout<<"\nNombre del Cliente : "<<Cliente ;
cout<<"\nTelefono Empresa : "<<TelefonoE ;
cout<<"\nTelefono Cliente : "<<TelefonoC ;
}
Auto::Auto()
{
 Marca[0]=0;
 Modelo[0]=0;
 Color[0]=0;
 Precio[0]=0;
cout<<"Por defecto se inicializa los arrays " <<endl;
};
Auto::Auto(char M[], char *m, char *C, char *P)
{
strcpy(Marca,M);
strcpy(Modelo,m);
strcpy(Color,C);
strcpy(Precio,P);
cout<<"Explicito "<<endl;
};
void Auto::Leer()
{
cout<<"DATOS DEL AUTO "<<endl;
cout<<"Marca: ";
gets(Marca);
cout<<"Modelo: ";
gets(Modelo);
cout<<"Color: ";
gets(Color);
cout<<"Precio: ";
gets(Precio);
};
void Auto::Imprimir()
{
cout<<"\nREPORTE DEL AUTO :";
cout<<"\nMarca : "<<Marca;
cout<<"\nModelo : "<<Modelo;
cout<<"\nColor: "<<Color;

cout<<"\nPrecio : "<<Precio;
};
void main()
{
Propietario Individuo[10];
int n;
int i;
getch();
clrscr();
cout<<"¨Cuantos datos a evaluar ? ==> ";
cin>>n;
for(i=0;i<n;i++)
Individuo[i].Leer();
getch();
clrscr();
for(i=0;i<n;i++)
Individuo[i].ImprimirDatos();
getch();
}

Polimorfismo con herencia en C++


# include <iostream.h>
# include <conio.h>
# include <stdio.h>
# include <string.h>
class Computadora
{
private:
char Nombre_del_SO[26];
char Version[26];
char Fabricante_del_Sistema[26];
char Procesador[31];
char Memoria_Fisica_RAM[26];
char Disco_Duro[8];
public:
Computadora();
Computadora(char n[], char *a, char *d, char *t, char *q, char *r);
void Leer();
void Imprimir();
};
class Hardware : public Computadora
{
private:
char Monitor[20];
char CPU[20];
char Estabilizador[20];
char Mouse[20];
char Teclado[20];
public:
Hardware();
void Leer();
void ImprimirDatos();
};
Hardware::Hardware(): Computadora("X","X","Y","Y","Z","Z")
{
Monitor[0]=0;
CPU[0]=0;
Estabilizador[20]=0;
Mouse[20]=0;
Teclado[20]=0;
}
void Hardware::Leer()
{
Computadora::Leer();
cout<<"Monitor: ";gets(Monitor);
cout<<"CPU: ";gets(CPU);
cout<<"Estabilizador: ";gets(Estabilizador);
cout<<"Mouse: ";gets(Mouse);
cout<<"Teclado: ";gets(Teclado);
} void Hardware::ImprimirDatos()
{
Imprimir();
cout<<"\nMonitor : "<<Monitor ;
cout<<"\nCPU : "<<CPU ;
cout<<"\nEstabilizador : "<<Estabilizador ;
cout<<"\nMouse : "<<Mouse ;
cout<<"\nTeclado : "<<Teclado ;
}
Computadora::Computadora()
{
Nombre_del_SO[0]=0;
Version[0]=0;
Fabricante_del_Sistema[0]=0;
Procesador[0]=0;
Memoria_Fisica_RAM[0]=0;
Disco_Duro[0]=0;
cout<<"Por defecto se inicializa los arrays " <<endl;
};
Computadora::Computadora(char n[], char *a, char *d, char *t, char  *q, char *r)
{
strcpy(Nombre_del_SO,n);
strcpy(Version,a);
strcpy(Fabricante_del_Sistema,d);
strcpy(Procesador,t);
strcpy(Memoria_Fisica_RAM,q);
strcpy(Disco_Duro,r);
cout<<"Explicito "<<endl;
};
void Computadora::Leer()
{
cout<<"DATOS DE LA COMPUTADORA "<<endl;
cout<<"Nombre del Sistema Operativo : "; gets(Nombre_del_SO);
cout<<"Version : "; gets(Version);
cout<<"Fabricante del Sistema : "; gets(Fabricante_del_Sistema);
cout<<"Procesador: "; gets(Procesador);
cout<<"Memoria Fisica (RAM): "; gets(Memoria_Fisica_RAM);
cout<<"Disco Duro: "; gets(Disco_Duro);
};
void Computadora::Imprimir()
{
cout<<"\nREPORTE DE COMPUTADORA:";
cout<<"\nNombre del sistema Operativo : "<< Nombre_del_SO ;
cout<<"\nversion : "<<Version ;
cout<<"\nFabricante del sistema: "<<Fabricante_del_Sistema ;
cout<<"\nProcesador : "<<Procesador ;
cout<<"\nMemoria Fisica (RAM) : "<<Memoria_Fisica_RAM ;
cout<<"\nDisco Duro : "<<Disco_Duro ;
};
void main()
{
computadora[15];
int n;
int i;
getch();
clrscr();
cout<<"¨Cuantos datos a evaluar ? ==> ";
cin>>n;
for(i=0;i<n;i++)
computadora[i].Leer();
getch();
clrscr();
for(i=0;i<n;i++)
computadora[i].ImprimirDatos();
getch();
}

Ordenar en C# por consola


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ordenar_vector
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] num = new int[100];
            int n;
            int temp, j;

            Console.WriteLine("ingrese numero:");
            n = Convert.ToInt32(Console.ReadLine());

            for (int i = 0; i < n; i++)
            {
                Console.Write("Elemento" + "[" + (i + 1) + "]: ");
                num[i] = Convert.ToInt32(Console.ReadLine());
            }

            for (int i = 1; i < n; i++)
            {
                for (j = n - 1; j >= i; j--)
                {
                    if (num[j - 1] > num[j])
                    {
                        temp = num[j - 1];
                        num[j - 1] = num[j];
                        num[j] = temp;
                    }
                }
            }


            Console.WriteLine("Vector ordenado:");
            for (int i = 0; i < n; i++)
            {
                Console.WriteLine("Elemento " + "[" + (i + 1) + "]: " + num[i]);
            }

            string x = Console.ReadLine();
        }
    }
}