Archivos de la categoría ‘DBase’
Test Nº 2 de OMA
Ula,
Estas son las cosas que dan rabia, uno sabiendose la materia, solamente necesita un poco de concentración y seguir el ciclo Do While, para entender que habia que inicializar en una parte la variable que me acumulaba el monto a apagar, y mas encima hacer un reporte era entero palta. Y no me fue re mal en el Test de OMA, pero se que conozco la materia, solamente falta un poco de tiempo y concentración.
Acá esta el ejercicio resuelto, yo era el grupo Numero 2. El menu lo generar ustedes, pero la opción del menu CALCULO, asi se programaba (una opción):
*CALCULO
CLEAR
go top
mesp=0
valor=0
@3,5 SAY "Ingrese el MES que desea calcular: " GET mesp PICT "9"
READ
select 1
do while .not. eof()
store RUT to rutsele1
store NOMBRE to nombresele1
select 3
APPE BLANK
REPLACE RUT with rutsele1
REPLACE NOMBRE with nombresele1
select 2
do while .not. eof()
store RUT to rutsele2
store MONTO to montosele2
store MES to messele2
if rutsele2=rutsele1
if messele2=mesp
valor=valor+montosele2
?valor
wait "111"
endif
endif
select 2
skip
enddo
select 3
REPLACE APAGAR with valor
select 1
skip
enddo
return
Ya y para crear un reporte, bajo Dbase solamente habia que hacer lo siguiente:
CREATE REPORT BASEDEDATOS
Y para que se viera en el Do Case del menu escribir:
CLEAR
REPORT FORM APAGAR
SI=.T.
RETURN
Y en eso se resumia mi test, quedan 2 mas, asi que a sacarse los balazos.
Tau.
Porque soy buen compañero.
Ahí esta el test de OMA resuelto(supuesto), para todos los flojos que no fueron a la clase (Azucar), para que veas que soy un buen compañero, solamente habia que resolver arreglar el ejercicio. Este ejercicio te pasaban el algoritmo hecho, y habia que arreglarlo a un codigo que estaba malo. En realidad habia que seguir el algoritmo.
**ejercicio
**alumno Jonathan Ramirez
set status off
set bell off
set talk off
set confirm off
si2=.T.
si=.T.
do while si
do while si2
store 0 to cont1, cont2, cont3, cont4, cont5
resp=" "
**programa principal
si1=.T.
do while si1
clear
numero=0
@5,5 say "Ingreso N#" get numero pict "999"
read
if numero>0
cont3=cont3+1
?cont3
if numero>=1 .and. numero<=10
cont4=cont4+1
?cont4
else
cont5=cont5+1
?cont5
endif
else
if numero=0
cont1=cont1+1
?cont1
else
cont2=cont2+1
?cont2
endif
endif
if numero=999
si1=.F.
si=.F.
endif
enddo
*entrega de resultados
clear
@ 6,14 SAY "****** ESTADISTICAS ******"
@ 8,14 SAY "Numeros iguales a cero: "
@ 8,30 SAY cont1
@ 9,14 SAY "Numeros negativos: "
@ 9,30 SAY cont2
@ 10,14 SAY "Numeros mayores a cero: "
@ 10,30 SAY cont3
@ 11,14 SAY "Numeros entre 1 y 10: "
@ 11,30 SAY cont4
@ 12,14 SAY "Numeros mayores a 10: "
@ 12,30 SAY cont5
do while .not. resp $ "SN"
resp=" "
@ 18,40 say "Desea continuar...(S/N)" get resp pict "@!A"
read
enddo
if resp="S"
si2=.T.
else
si2=.F.
si=.F.
endif
enddo
enddo
Tau.
1ra programacion en DBase
Mi primer manejo de punteros con base de datos, aunque el lenguaje DBase es bastante precario en el manejo de punteros, porque teni que estar controlando a cada rato que el puntero vaya bien, luego de 3 veces programar el mismo codigo, resulto. Imaginense que con otros lenguajes esto lo resumi a un par de lineas.
El ejercicio consistia en que tenias 4 bases de datos, y todas se iban relacionando a medida que las recorrias con alguna campo entre ellas, lo cual habian que recorrer y preguntar a cada rato si existia, si era si, almacenar todas las variables con un store, para asi ocuparlas dentro del programa en otra consulta.
*generar base de datos
go top
select 4
do while .not. eof()
store rut to rut_sele4
store cod_ramo to codr_sele4
store nota to nota_sele4
select 5
append blank
replace NOTA with nota_sele4
select 2
locate for rut=rut_sele4
if found()
store rut to rut_sele2
store cod_carr to codc_sele2
store nombre to nomb_sele2
endif
select 5
replace ALUMNO with nomb_sele2
select 1
locate for cod=codc_sele2
if foun()
store area to area_sele1
store carrera to carr_sele1
store cod to cod_sele1
endif
select 5
replace AREA with area_sele1
replace CARRERA with carr_sele1
select 3
locate for cod_ramo=codr_sele4
if found()
store cod_ramo to codr_sele3
store nombre to nomb_sele3
endif
select 5
replace RAMO with nomb_sele3
select 4
skip
enddo
select 5
wait
list
return
El resultado de todo lo anterior, se puede visualizar en la siguiente imagen:
Tau.
Dejar un comentario
Dejar un comentario
Dejar un comentario