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 SleepSubroutine 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

