martes, 29 de enero de 2013

martes, 5 de junio de 2012

PROYETO FINAL BEBEDERO INTELIGENTE

*Breve Presentacion.
Objetivo general.
La implementación de la electrónica en un sistema de llenado de agua potable, que  permita el flujo del agua  mediante un ciclo programado, evitando el contacto físico con la persona y así manteniendo el depósito higiénico y viable para el siguiente usuario.

Objetivo especifico.
El bebedero electrónico debe identificar que un usuario desea utilizarlo sin necesidad de ser activado manualmente y permitir el flujo del agua potable, también debe identificar el tamaño del recipiente y calcular la cantidad de agua que debe liberarse, así como las estadísticas recientes del uso del bebedero por los usuarios.


 MARCO TEÓRICO
Resistencia Eléctrica
  Resistencia eléctrica es toda oposición que encuentra la corriente a su paso por un circuito eléctrico cerrado, atenuando o frenando el libre flujo de circulación de las cargas eléctricas o electrones. Cualquier dispositivo o consumidor conectado a un circuito eléctrico representa en sí una carga, resistencia u obstáculo para la circulación de la corriente eléctrica.


  LED
  Un LED (DIODO EMISOR DE LUZ) es un semiconductor, es decir un componente electrónico capaz de modificar su resistencia eléctrica en determinadas circunstancias. En iluminación, los LED siempre trabajan en polarización directa, que es cuando emiten luz.
 SWITH Y PUSH BOTTON.
  Un interruptor eléctrico es un dispositivo utilizado para desviar o interrumpir el curso de una corriente eléctrica.

PUERTO PARALELO

Un puerto paralelo es una interfaz entre un ordenador y un periférico. El puerto paralelo transmite la información byte por byte, es decir que los 8 bits de datos que forman un byte viajan juntos. El tipo de puerto paralelo que se utilizo para este proyecto  es el puerto de la impresora. Un conector hembra de 25 patitas.
Librería Inpout32.dll
 La característica destacada de Inpout32.dll es  que  trabaja con todas las versiones de Windows sin ningún tipo de modificación en el código de usuario o el archivo DLL en sí. El Dll comprueba la versión del sistema operativo cuando se llaman funciones, y si el sistema operativo es Win9x, utilizará el archivo DLL _inp () _outp y funciones para lectura / escritura del puerto paralelo.
  
El programa USERPORT  se utiliza para poder leer y escribir en el puerto paralelo, ya que es necesario un driver (archivo *.sys) que comunique el software con dispositivo hardware.
 Recursos utilizados:
Inicialización de la librería Inpout32.dll
Variables de tipo entero y flotante.
Inicialización de variables
Ciclos
Asignaciones
Archivos de salida
Funciones
Ordenamiento de valores
Funciones de tiempo actual.
Impresiones
Contadores
Etc.
 Librerías:
  stdio.h
conio.h
windows.h
iostream
stdlib.h
fstream.h
time.h
iomanip.h
BEBEDERO INTELIGENTE CODIGO C++
 



 Circuito.
El proyecto del bebedero inteligente busca  alcanzar altos estándares de confiabilidad higiénica, así como una fácil y rápida funcionalidad electrónica para satisfacer las necesidades de usuario lo más efectivamente posible.
Meza Soria Denisse Alejandra
Guevara Ríos Julio Cesar
Profa. Asesora: Ing Angela Colunga.
ITT.

lunes, 28 de mayo de 2012

PRACTICA 15.

PRACTICA 15.

Pseudocódigo Practica 15 Problema 1.
Programa principal ()
{
A[3][10]= {0,0,0,0,0,0,0,0,0,0}       int
seccion=0,vuelo=0,otro=0          int
do
{
menuviaje(vuelo,seccion)
asiento(A, vuelo, seccion)
Print "\nCapturar nueva viaje  Si=1 No=0: "
Read otro
Print “\n”
}
while(otro==1)
imprimir(A)
getch()
}
Fin
Funcion void menuviaje(int &vuelo, int &seccion)
{
Print "\n\t\tMENU DE VUELOS\n\n"
Print "\tSeccion Primera Clase & Economica\n\n"
Print "Viaje 1__________Tijuana-Acapulco\n"
Print "Viaje 2__________Tijuana-San Diego\n"
Print "Viaje 3__________Tijuana-Cancun\n"
Print "Vuelo elegido: "
Read vuelo
Print "Seccion: "
Read seccion
}
Fin funcion
Función void asiento(int A[3][10], int & vuelo, int & seccion)
{
i , b      int
switch(vuelo)
{
            case 1:
                        switch (seccion)
         {
                                    case 1:  i=0  b=0
                                                while ((i<=4) && (b==0))
                                                                        {
                                                                        if (A[0][i]!=1)
                                                                        {
                                                                        b=1
                                                A[0][i]=1
                                                Print "PASE DE ABORDAR\nVuelo 1\t Primera Clase\tAsiento:",(i+1)
                                                }
                                                else
                                                {
                                                if (i==4)
                      {Print "Vuelo completo, no hay asientos disponibles.\nEl siguiente vuelo parte en 3 horas." }
                                                i++
                                                }
                                                }
                                                break
                                    case 2: i=5 b=0
                                                while(i<=9 && b==0)
                                                {
                                                if (A[0][i]!=1)
                                                {
                                                A[0][i]=1
                                                b=1
                                                Print "PASE DE ABORDAR\nVuelo 1\t Clase Economica\tAsiento:",(i+1)
                                                }
                                                else
                                                {
                                                if(i==9)
                                                {
                                                Print "Vuelo completo, no hay asientos disponibles.\nEl siguiente vuelo parte en 3 horas." }
                                                i++
                                                }
                                                }
                                                break
                                    default: Print "ERROR EN SELECCION DE CLASE."
         }
                        break
   case 2:
                        switch (seccion)
         {
                                    case 1:  i=0  b=0
                                                while ((i<=4) && (b==0))
                                                                        {
                                                                        if (A[1][i]!=1)
                                                                        {
                                                                        b=1
                                                A[1][i]=1
                                                Print "PASE DE ABORDAR\nVuelo 2\t Primera Clase\tAsiento:",(i+1)
                                                }
                                                else
                                                {
                                                if (i==4)
                           {Print "Vuelo completo, no hay asientos disponibles.\nEl siguiente vuelo parte en 3 horas." }
                                                i++
                                                }
                                                }
                                                break
                                    case 2:           i=5 b=0
                                                while(i<=9 && b==0)
                                                {
                                                if (A[1][i]!=1)
                                                {
                                                A[1][i]=1
                                                b=1
                                                Print "PASE DE ABORDAR\nVuelo 2\t Clase Economica\tAsiento:",(i+1)
                                                }
                                                else
                                                {
                                                if(i==9)
                                                {
                                                Print "Vuelo completo, no hay asientos disponibles.\nEl siguiente vuelo parte en 3 horas." }
                                                i++
                                                }
                                                }
                                                break
                                    default: Print "ERROR EN SELECCION DE CLASE."
         }
                        break
   case 3:
                        switch (seccion)
         {
                                    case 1:  i=0  b=0
                                                while ((i<=4) && (b==0))
                                                {
                                                if (A[2][i]!=1)
                                                {
                                                b=1
                                                A[2][i]=1
                                                Print "PASE DE ABORDAR\nVuelo 3\t Primera Clase\tAsiento:",(i+1)
                                                }
                                                else
                                                {
                                                if (i==4)
                                              {Print "Vuelo completo, no hay asientos disponibles.\nEl siguiente vuelo parte en 3 horas." }
                                                i++
                                                }
                                                }
                                                break
                                    case 2:           i=5 b=0
                                                while(i<=9 && b==0)
                                                {
                                                if (A[2][i]!=1)
                                                {
                                                A[2][i]=1
                                                b=1
                                                Print "PASE DE ABORDAR\nVuelo 3\t Clase Economica\tAsiento:",(i+1)
                                                }
                                                else
                                                {
                                                if(i==9)
                                                {
                                                Print "Vuelo completo, no hay asientos disponibles.\nEl siguiente vuelo parte en 3 horas." }
                                                i++
                                                }
                                                }
                                                break
                                    default: Print "ERROR EN SELECCION DE CLASE."
         }
                        break

            default: Print "DESTINO NO EXISTENTE\n"
}
}
Fin Funcion
Funcion void imprimir(int A[3][10])
{
r,c  int
Print "1=Ocupados   0=Vacios\n"
Print "ASIENTOS 1  2  3  4  5  6  7  8  9  10\n"
for(r=0 to  r<3 step r++)
{
Print "Viaje ",(r+1),": "
for(c=0 to  c<10 step c++)
{
Print A[r][c],"  "
}Print ‘\n” }
}









Pseudocódigo Practica 15 Problema 2.
Funcion int inserlistanombres(char nombres[20][30], int n)
{
I           int
 nom[30]       char
i=0
for(i=0 to  i<n step  i++)
{
print "Nombre Alumno: "
 read (nombres[i])
print”\n”}}
Fin funcion
Funcion void reordenar(char nombres[20][30], int n)
{
i,j          int
char temp[30]
for(i=0 to i<(n-1) step  i++)
{
for(j=(i+1)to  j<n step  j++)
{
if (strcmp(nombres[i],nombres[j])>0)
{
strcpy(temp,nombres[i])
strcpy(nombres[i],nombres[j])
strcpy(nombres[j],temp)  }}}}
Fin Funcion
Función void desplegar(char nombres[20][30], int n)
{
x=0  int
print "LISTA DE NOMBRES ORDENADA\n"
for (x=0 to  x<n step x++)
{
print nombres[x]
}}
Fin Funcion
Programa principal()
{
 nombres[10][30]   char
n          int
print "Cantidad de nombres: "
 read n
inserlistanombres(nombres, n)
reordenar(nombres, n)
desplegar(nombres,n)
getch()
}
Fin





Pseudocódigo Practica 15 Problema 3.
Funcion int buscarpais(char paises[11][28],char x[28])
{
i=0       int
while (strcmp(x,paises[i])!=0)
{
i++
}
return (i)
}
Fin funcion
Programa principal()
{
char paises[11][28]={"canada", "inglaterra", "francia", "india", "israel", "italia", "japon", "mexico", "republica popular de china", "estados unidos", "rusia"}
char capitales[11][28]={"ottawa", "londres", "paris", "nueva delhi", "jerusalen", "roma", "tokio", "cd. de mexico", "beijing", "washington dc", "moscu"}
char x[28]
i           int
do
{
print "\nIntroduzca el pais:"
 read (x)
if (strcmp(x,"fin")!=0)
{
i=buscarpais(paises,x)
print "\nEl pais ",(paises[i])," tiene como capital ",(capitales[i]),."
}
}
while(strcmp(x,"fin")!=0)
getch()
}
Fin programa





Pseudocódigo Practica 15 Problema 4.
Función void salida_datos_file(int n)
{
ofstream salida
salida.open("C://Datos//nombres.txt")
i           int
char name[30]
for(i=1 to i<=n step i++)
{
print "Nombre ",(i),": "
read (name)
salida,name
}
salida.close()
}
Fin Funcion

Funcion void entrada_datos_file()
{
ifstream entrada
entrada.open("C://Datos//nombres.txt")
char name[30]
print "\nListado de Estudiantes\n"
entrada.getline(name,30)
print name
while(!entrada.eof())
{
entrada.getline(name,30)
print name
}
entrada.close()
}
Fin funcion
Funcion void almacena_calif(int n)
{
ofstream salida
salida.open("C://Datos//calificaciones.txt")
r,c,calf           int
for(r=0 r<n r++)
{
print "Introduce calificaciones del estudiante ",(r+1)
for(c=0 to c<6  step c++)
{
print "Calificacion ",(c+1),": "
 read calf
salida,calf," "
}
salida
}
print “\n” }
Fin funcion

Funcion void  read_archivo_calif(int a[20][6], int promedio[20], int n)
{
ifstream entrada
entrada.open("C://Datos//calificaciones.txt")
r,c,suma        int
print "PROMEDIOS\n"
for(r=0 to r<n step r++)
{
suma=0
for(c=0 tp c<6 step c++)
{
Entrada,(a[r][c])
suma=suma+a[r][c]
}
promedio[r]=suma/6
print promedio[r],"\t"
}}
Fin Funcion

Programa principal()
{
n          int
c[20][6], p[20]         int
print "Numero de Alumnos : "
read n
salida_datos_file(n)
entrada_datos_file()
almacena_calif(n)
read_archivo_calif(c,p,n)
getch()
}
Fin programa











Pseudocódigo Practica 15 Problema 5a.
Funcion int inserlistanombres()
{
i=0       int
nom[30]        nom
ofstream salida
salida.open("C://Datos//nombres1.txt")
 Print “\n”
do
{
 Print"Nombre: "
Read (nom)
if (strcmp(nom,"FIN")!=0)
{
Salida,nom
i++
}
 Print “\n”
}
while(strcmp(nom,"FIN"))
salida.close()
return i
}
Fin Funcion

Funcion void desplegar()
{
name[30]     char
ifstream entrada
entrada.open("C://Datos//nombres1.txt")
while(!entrada.eof())
{
entrada.getline(name,30)
 Print name
}
entrada.close()
}

Programa principal()
{
inserlistanombres()
desplegar()
getch()
}
Fin






Pseudocódigo Practica 15 Problema 5b.

Funcion int inserlistanombres()
{
i=0       int
nom[30]        nom
ofstream salida
salida.open("C://Datos//nombres1.txt",ios::app)
 Print “\n”
do
{
 Print"Nombre: "
Read (nom)
if (strcmp(nom,"FIN")!=0)
{
Salida,nom
i++
}
 Print “\n”
}
while(strcmp(nom,"FIN"))
salida.close()
return i
}
Fin Funcion

Funcion void desplegar()
{
name[30]     char
ifstream entrada
entrada.open("C://Datos//nombres1.txt")
while(!entrada.eof())
{
entrada.getline(name,30)
 Print name
}
entrada.close()
}

Programa principal()
{
inserlistanombres()
desplegar()
getch()
}
Fin









z
Pseudocódigo Practica 15 Problema 6a.
Función void salidadatos()
{
ofstream salida
salida.open("C://Datos//texto.dat")
texto[80]       char
do
{read(texto)
if(strcmp(texto,"FIN")!=0)
{ salida,texto }}
while(strcmp(texto,"FIN" ))
 Print “\n”
salida.close() }
fin funcion
función void entradadatos()
{ifstream entrada
entrada.open("C://Datos//texto.dat")
texto[80] char
 Print "\n\t\t\tTEXTO\n"
entrada.getline(texto,80)
 Print texto
while(!entrada.eof())
{entrada.getline(texto,80)
 Print texto
}entrada.close() }
Fin funcion
Programa principal()
{salidadatos()
entradadatos()
getch() }
Fin



Pseudocódigo Practica 15 Problema 6b.
Función void salidadatos()
{
ofstream salida
salida.open("C://Datos//texto.dat")
texto[80]       char
do
{read(texto)
if(strcmp(texto,"\n")>=0)
{ salida,texto }}
while(strcmp(texto,"\n" )>=0)
 Print “\n”
salida.close() }
fin funcion
función void entradadatos()
{ifstream entrada
entrada.open("C://Datos//texto.dat")
texto[80] char
 Print "\n\t\t\tTEXTO\n"
entrada.getline(texto,80)
 Print texto
while(!entrada.eof())
{entrada.getline(texto,80)
 Print texto
}entrada.close() }
Fin funcion
Programa principal()
{salidadatos()
entradadatos()
getch() }
Fin




Pseudocódigo Practica 15 Problema 7a.
Programa principal()
{real valores[5][4]
Real promedio[5]
insertar_lista_datos()
calcular_promedio(valores,promedio)
desplegar_promedio(promedio)
getch() }
Fin
Funcion void insertar_lista_datos()
{
ofstream salida
salida.open("C://Datos//voltios.txt")
salida<<120.3<<"  "<<122.7<<"  "<<90.3<<"  "<<99.8   
salida<<95.5<<"  "<<120.5<<"  "<<127.3<<"  "<<120.8   
salida<<123.2<<"  "<<118.4<<"  "<<123.8<<"  "<<115.6   
salida<<122.4<<"  "<<95.6<<"  "<<118.2<<"  "<<120.99   
salida<<123.5<<"  "<<130.2<<"  "<<123.98<<"  "<<124.4   
salida.close()
print “\n”
}
void calcular_promedio( real valores[5][4], real promedio[5])
{ifstream entrada
entrada.open("C://Datos//voltios.txt")
r=0,c=0          int
suma=0         real
for(r=0 to r<5 step r++)
{suma=0
for(c=0 to  c<4 step c++)
{entrada,(valores[r][c])
suma=suma+valores[r][c] }
promedio[r]=suma/4
}entrada.close() }
Fin funcion
Funcion void desplegar_promedio( real promedio[5])
{r=0     int
for(r=0 to r<5 step r++)
{Print "Promedio ",(r+1),": ",setw(6),promedio[r] }}
Fin funcion


 Pseudocódigo Practica 15 Problema 7b.

Programa principal()
{real valores[5][4]
Real promedio[5]
insertar_lista_datos()
calcular_promedio(valores,promedio)
desplegar_promedio(promedio)
getch() }
Fin
Funcion void insertar_lista_datos()
{
ofstream salida
salida.open("C://Datos//voltios.txt")
salida<<120.3<<"  "<<122.7<<"  "<<90.3<<"  "<<99.8   
salida<<95.5<<"  "<<120.5<<"  "<<127.3<<"  "<<120.8   
salida<<123.2<<"  "<<118.4<<"  "<<123.8<<"  "<<115.6   
salida<<122.4<<"  "<<95.6<<"  "<<118.2<<"  "<<120.99   
salida<<123.5<<"  "<<130.2<<"  "<<123.98<<"  "<<124.4   
salida<<122.11<<"  "<<128.5<<"   "<<99.2<<"    "<<89.70 
salida<<125.12<<"  "<<101.33<<"  "<<89.75<<"   "<<129.90 
salida<<95.33<<"   "<<124.50<<"   "<<133.23<<"  "<<95.34 
salida.close()
print “\n”
}
Fin funcion
Funcion void calcular_promedio(real valores[8][4],real promedio[8])
{
ifstream entrada
entrada.open("C://Datos//voltios.txt")
r=0,c=0          int
suma=0  real
for(r=0  to r<8 step r++)
{
suma=0
for(c=0 to c<4 step c++)
{
entrada(valores[r][c])
suma=suma+valores[r][c]
}
promedio[r]=suma/4
}
entrada.close()
}
Fin funcion
Función void desplegar_promedio(real promedio[8])
{
r=0      int
suma=0, promediog=0    real
for(r=0 to r<8 step r++)
{
Print "Promedio ",(r+1),"  : ",promedio[r] 
}
for(r=0 to  r<8 step r++)
{
suma=suma+promedio[r]
}
promediog=suma/8
Print “Promedio general: ",promediog 
}
Fin funcion