FoxPro/Visual FoxPro - crear una matriz 3x3 con numeros al azar de 2 digitos

   
Vista:
Imágen de perfil de SEBASTIAN

crear una matriz 3x3 con numeros al azar de 2 digitos

Publicado por SEBASTIAN seba_972013@live.com (2 intervenciones) el 11/12/2015 23:08:26
Hola soy un estudiante. Alguien que me ayude en essto:
1-Tengo que crear una matriz 3x3 con numeros al azar de 2 digitos.
2-Despues me pide que ingrese un numero de 1 digito.
3-Luego tengo que mostrar en otra matriz 3x3 los resultados, de la division de la primera matriz con el numero.

Todo esto en visual fox Pro..
Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

crear una matriz 3x3 con numeros al azar de 2 digitos

Publicado por Fidel José (321 intervenciones) el 11/12/2015 23:49:25
Un ejemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
PROCEDURE Get_Random
LPARAMETERS tnDivisor,tnItems , tcFileName
 
* ------------------------------------------------------------------------------
* tnDivisor  = Valor del Divisor. Por default = 1
* tnItems    = Cantidad de elementos del array. Default = 3
* tcFileName = Nombre del archivo de reporte. Default = "Randomize_Array.txt"
*
* Sample
* lnDivisor = 12
* lnItems = 3
* lcFileName = "MiRespuesta"
* Get_Random(lnDivisor,lnItems,lcFileName)
* ------------------------------------------------------------------------------
 
IF VARTYPE(tnDivisor)#"N" OR EMPTY(tnDivisor)
	tnDivisor = 1
ENDIF
IF VARTYPE(tnItems)#"N" OR EMPTY(tnItems)
	tnItems = 3
ENDIF
IF VARTYPE(tcFileName)#"C" OR EMPTY(tcFilename)
	tcFileName = "Randomize_Array"
ENDIF
tcFileName = FORCEEXT(tcfileName,"txt")
 
SET HOURS TO 24
LOCAL i,;
	j,;
	lcString,;
	lcLine
 
LOCAL la_Dividendo(tnItems,tnItems) ,;
	la_Resulta(tnItems,tnItems)
 
 
* Valor Semilla
RAND(-1)
 
* Valoriza el array
* Se puede utilizar Ceiling(), floor() o Int()
 
FOR i=1 to m.tnItems
	FOR j = 1 to m.tnItems
		la_Dividendo[i,j] = CEILING(RAND()*100)
	NEXT
NEXT
 
* Divide cada elemento del array por el valor Divisor
FOR i = 1 to m.tnItems
	FOR j = 1 to m.tnItems
		la_REsulta[i,j] = la_diviDendo[i,j] / m.tnDivisor
	NEXT
NEXT
 
 
* Compone el reporte de salida
 
lcString = "<divisor>"+TRANSFORM(tnDivisor)+"</divisor>" + CHR(13) ;
	+"<items_array>"+TRANSFORM(tnItems)+"</items_array>"+CHR(13) ;
	+"<datetime>"+TRANSFORM(DATETIME())+"</datetime>"+CHR(13);
	+CHR(13)
 
lcString = m.lcString + "<Dividendo>" + CHR(13)
FOR i=1 to m.tnItems
	lcLine = ""
	FOR j = 1 to m.tnItems
		lcLine = lcLine ;
			+ PADL(TRANSFORM(la_Dividendo[i,j]),5," ")
 
	NEXT
	lcString = m.lcString ;
		+ CHR(9) ;
		+ m.lcLine + CHR(13)
NEXT
lcString = m.lcString ;
	+"</Dividendo>"	+ CHR(13) + CHR(13) ;
	+"<Resulta>" + CHR(13)
 
 
FOR i=1 to m.tnItems
	lcLine = ""
	FOR j = 1 to m.tnItems
		lcLine = lcLine ;
			+ PADL(LTRIM(STR(la_Resulta[i,j],10,2)),14," ")
	NEXT
	lcString = m.lcString ;
		+ CHR(9) ;
		+ m.lcLine + CHR(13)
NEXT
lcString = m.lcString ;
	+"</Resulta>" + CHR(13)
 
STRTOFILE(m.lcString,m.tcFileName)
MODIFY FILE &tcFileName NOEDIT
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de SEBASTIAN

crear una matriz 3x3 con numeros al azar de 2 digitos

Publicado por SEBASTIAN (2 intervenciones) el 12/12/2015 00:02:11
Me sirve de ejemplo. Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar