viernes, 28 de junio de 2013
sábado, 15 de junio de 2013
LLENADO DE VASO CON AGUA APRENDIENDO EN VENSIM PLE
1.- Usar la herramienta "Box Variable" para crear una variable de nivel con el titulo "AGUA EN EL VASO". ver figura 1.
Figura 1
2.- Usar la herramienta "Rate"para crear una variable de flujo con el título "INGRESODE AGUA". ver figura 2.
Figura 2
3.- Usar la herramienta "Variable" para crear una variable auxiliar con el título"VOLUMEN VACIO". ver figura 3.
Figura 3
4.- Usar la herramienta "Variable" para crear una variable auxiliar con el título "CAPACIDAD DEL VASO". ver figura 4.
Figura 4
5.- Usar la herramienta "Arrow" para crear las relaciones causales de c/u de las variables. ver figura 5. Figura 5

6.- Ingresar las ecuaciones de modelo, hacer clic en la herramienta "Equations" , el
diagrama se verá como en la figura 6. Seleccionados.
Figura 6
7.- Hacer clic sobre la variable de flujo "INGRESOS DE AGUA". y se mostrara la ventana para
editar la variables: Figura 7
Figura 7
En esta ventana hacer clic sobre la variable VOLUMEN VACIO que se encuentra en el área de
variables causales. Esta variable aparecerá en el área de ecuación y sumarle 10 Litros (valor
ejemplo) y quedara de la siguiente forma: Figura 8
Figura 8
Luego clic en el botón "Check Sintax", y en la etiqueta Error: se mostrara el mensaje "Equation
OK", que indica que la ecuación no posee errores. Figura 9
Figura 9
Luego hacer clic en el botón "OK"
8.- Hacer clic sobre la variable constante "CAPACIDAD DEL VASO". he ingresar el valor de 350
litros. Figura 10
Figura 11
10.- Hacer clic sobre la variable nivel "AGUA EN EL VASO". he ingresar el valor inicial de 0. y la
ecuación AGUA EN EL VASO + INGRESO DE AGUA. Figura 12
Figura 12
11. Hacer Clic en el botón "Simulate"
sábado, 25 de mayo de 2013
Codigo de fifo en Linux mediante el g++
#include<iostream>
#include<stdlib.h>
using namespace std;
struct nodo
{
char proceso;
int tllegada;
int tejecucion;
int tfinal;
int tretorno;
int tespera;
int tmuerto;
struct nodo *sgte;
};
struct cola
{
struct nodo *delante;
struct nodo *atras;
};
void inicializa(struct cola&);
void encola(struct cola&,struct nodo);
void vercola(struct cola);
int main()
{
system("/usr/bin/clear");
int opc,n;
struct nodo cte;
struct cola q;
inicializa(q);
do
{
cout<<"*** MENU ***\n";
cout<<"1. Encolar\n";
cout<<"2. Visualizar cola\n";
cout<<"3. Salir";
cout<<"\n INGRESE OPCION: ";cin>>opc;
switch(opc)
{
case 1:
cout<<"ingrese numero de paquetes de la cola:";cin>>n;
cte.tfinal=0;
cte.tmuerto=0;
for(int i=1;i<=n;i++)
{
cout<<"Ingrese proceso "<<i<<":"; cin>>cte.proceso;
cout<<"Tiempo de llegada:";cin>>cte.tllegada;
cout<<"Tiempo de ejecucion:";cin>>cte.tejecucion;
cte.tfinal=(cte.tejecucion)+(cte.tfinal);
cte.tretorno=cte.tfinal-cte.tllegada;
cte.tespera=cte.tretorno-cte.tejecucion;
cte.tmuerto=cte.tespera+cte.tmuerto;
encola(q,cte);
}
system("/usr/bin/clear");
break;
case 2:
system("/usr/bin/clear");
cout<<"\nLOS ELEMENTOS DE LA COLA:\n";
cout<<"proc.\tt.lleg.\tt.ejec.\tt.fin.\tt.ret.\tt.esp."<<endl;
vercola(q);
cout<<"El tiempo muerto es:"<<cte.tmuerto<<endl;
cout<<endl;
break;
}
}while(opc!=3);
}
void inicializa(struct cola&q)
{
q.delante=NULL;
q.atras=NULL;
}
void vercola(struct cola q)
{
struct nodo*p;
p=q.delante;
while(p!=NULL)
{
cout<<p->proceso<<"\t"<<p->tllegada<<"\t"<<p->tejecucion<<"\t"<<p->tfinal<<"\t"<<p->tretorno<<"\t"<<p->tespera<<endl;
p=p->sgte;
}
cout<<endl;
}
void encola(struct cola &q,struct nodo cte)
{
struct nodo*p;
p=new(struct nodo);
*p=cte;//asignacion de estructuras
p->sgte=NULL;
if(q.delante==NULL)
q.delante=p;
else
(q.atras)->sgte=p;
q.atras=p;
}
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");
}
}
#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();
}
Suscribirse a:
Entradas (Atom)















