Técnicas y Algoritmos Básicos de visión Artificial
Universidad de la Rioja
Edioma: Español
Páginas: 96
typedef struct _nodo
{
int valor;
struct _nodo *siguiente;
}tiponodo;
la variable valor es la razon de ser de la estructura(nodo).
Aqui se almacena el valor del nodo.
struct _nodo sirve para almacenar la direccion del siguiente nodo. Al inicio este
valor el nulo.
typedef tiponodo *pNodo; Nodo para poder crear los nuevos nodos.
typedef tiponodo *cima; Sirve para almacenar el nodo que esta en la cima de todos
los elementos.
pNodo nuevoNodo;//declarando
/*creando*/
nuevoNodo=(pNodo)malloc(sizeof(tiponodo ));
Se crea un nodo con valores nulos.
{
pNodo nuevoNodo;//declarando
/*creando*/
nuevoNodo=(pNodo)malloc(sizeof(tiponodo ));
nuevoNodo->valor=valor;
/*Añadimos la cima a la continuacion del nuevo nodo*/
nuevoNodo->siguiente=*l;
*l=nuevoNodo;
}
int Pop(cima *l)
{
pNodo nodo;//variable auxiliar
int r;
nodo=*l;//apuntando el primer elemento de la cima;
if(!nodo) return 0;
*l=nodo->siguiente;
r=nodo->valor;
free(nodo);//libera la memoria
return r;
}
using namespace std;
typedef struct _nodo
{
int valor;
struct _nodo *siguiente;
}tiponodo;
typedef tiponodo *pNodo;
typedef tiponodo *cima;
/*Protipos de funciones con las cimas*/
void Push(cima *l ,int valor);
int Pop(cima *l);
int main()
{
cima micima=NULL;
Push(&micima,10);
Push(&micima,20);
Push(&micima,30);
cout<<Pop($micima);
cout<<Pop($micima);
cout<<Pop($micima);
return 0;
}
void Push(cima *l, int valor)
{
pNodo nuevoNodo;//declarando
/*creando*/
nuevoNodo=(pNodo)malloc(sizeof(tiponodo ));
nuevoNodo->valor=valor;
/*Añadimos la cima a la continuacion del nuevo nodo*/
nuevoNodo->siguiente=*l;
*l=nuevoNodo;
}
int Pop(cima *l)
{
pNodo nodo;//variable auxiliar
int r;
nodo=*l;//apuntando el primer elemento de la cima;
if(!nodo) return 0;
*l=nodo->siguiente;
r=nodo->valor;
free(nodo);
return r;
}
integer i,j,li_codproducto, li_cantidad,li_codmovimiento string ls_movimiento dw_cabecera.accepttext( ) ls_movimiento=trim(dw_cabecera.getitemstring(1,3)) if dw_cabecera.update()=1 then j=dw_detalle.rowcount( ) li_codmovimiento=dw_cabecera.getitemnumber( 1,1) for i=1 to j dw_detalle.setitem( i, 1,li_codmovimiento) next if dw_detalle.update( )=1 then for i=1 to j li_codproducto=dw_detalle.getitemnumber( i,2) li_cantidad=dw_detalle.getitemnumber( i,3) uf_actualizarstock(li_codproducto,ls_movimiento,li_cantidad) next commit using sqlca; messagebox("Exito","Se guardaron los datos") else messagebox("error","No se guardaron los datos") rollback using sqlca; end if else messagebox("error","No se guardaron los datos") end if
Subroutine keybd_event( int bVk, int bScan, int dwFlags, int dwExtraInfo) Library "user32.dll"
integer li_tecla
li_tecla= 65 // caracter A en ascii. Revisar el codigo Ascii
sle_1.setfocus() // foco en el control sle_1
keybd_event( li_tecla, 1, 0, 0)
OleObject ole_wsh Integer li_rc, i, j, k ole_wsh = Create OleObject li_rc = ole_wsh.ConnectToNewObject ("MSScriptControl.ScriptControl") ole_wsh.language = "vbscript" ole_wsh.addcode("function nombre_funcion(parametro) nombre_funcion = parametro end function") ole_wsh.executestatement ('if 2 > 1 then msgbox nombre_funcion("true") else msgbox nombre_funcion("false") end if')
integer li_rc OleObject ole_wsh ole_wsh = CREATE OleObject li_rc = ole_wsh.ConnectToNewObject ( "WScript.Shell" ) ole_wsh.Run ("Notepad") ole_wsh.AppActivate("Untitled - Notepad") Sleep (500) ole_wsh.SendKeys ("Hola mundo")Pero primero debe declarar la subroutina Sleep
Subroutine Sleep (Long dwMilliseconds) Library "kernel32" Alias for "Sleep"
integer li_rc OleObject ole_wsh ole_wsh = CREATE OleObject li_rc = ole_wsh.ConnectToNewObject ( "WScript.Network" ) IF li_rc = 0 THEN MessageBox ("Dominio", string( ole_wsh.UserDomain )) MessageBox ("Usuario", string( ole_wsh.UserName )) MessageBox ("Nombre de la computadora", string( ole_wsh.ComputerName )) END IF