-
Lenguaje
PSeInt (Pseudocódigo)
-
Descripción
Pide el número de renglones y columnas de una matriz de números enteros y la rellena en forma de espiral o caracol.
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
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
Algoritmo ProcesoEspiral
DERECHA <- 0;
ABAJO <- 1;
IZQUIERDA <- 2;
ARRIBA <- 3;
i <- 1;
direccion <- DERECHA;
Escribir "Ingrese el número de renglones:";
Leer renglones;
Escribir "Ingrese el número de columnas:";
Leer columnas;
Dimension matriz(renglones, columnas);
Para renglon<-1 Hasta renglones Con Paso 1 Hacer
Para columna<-1 Hasta columnas Con Paso 1 Hacer
matriz[renglon,columna] <- -1;
FinPara
FinPara
renglon <- 1;
columna <- 1;
Mientras matriz[renglon,columna] = -1 Hacer
matriz[renglon,columna] <- i;
i <- i+1;
Segun direccion Hacer
DERECHA:
Si columna<columnas Entonces
Si matriz[renglon,columna+1]=-1 Entonces
columna <- columna+1;
Sino
direccion <- ABAJO;
renglon <- renglon+1;
FinSi
Sino
direccion <- ABAJO;
renglon <- renglon+1;
FinSi
ABAJO:
Si renglon<renglones Entonces
Si matriz[renglon+1,columna]=-1 Entonces
renglon <- renglon+1;
Sino
direccion <- IZQUIERDA;
columna <- columna-1;
FinSi
Sino
direccion <- IZQUIERDA;
columna <- columna-1;
FinSi
IZQUIERDA:
Si columna>1 Entonces
Si matriz[renglon,columna-1]=-1 Entonces
columna <- columna-1;
Sino
direccion <- ARRIBA;
renglon <- renglon-1;
FinSi
Sino
direccion <- ARRIBA;
renglon <- renglon-1;
FinSi
ARRIBA:
Si renglon>1 Entonces
Si matriz[renglon-1,columna]=-1 Entonces
renglon <- renglon-1;
Sino
direccion <- DERECHA;
columna <- columna+1;
FinSi
Sino
direccion <- DERECHA;
columna <- columna+1;
FinSi
FinSegun
FinMientras
Escribir "";
Escribir "Resultado:";
Para renglon<-1 Hasta renglones Con Paso 1 Hacer
linea <- "[";
Para columna<-1 Hasta columnas Con Paso 1 Hacer
Si matriz[renglon,columna]<10 Entonces
linea <- Concatenar(linea, " ");
Sino
linea <- Concatenar(linea, " ");
FinSi
linea <- Concatenar(linea, ConvertirATexto(matriz[renglon,columna]));
FinPara
Escribir linea, " ]";
FinPara
FinAlgoritmo
DERECHA <- 0;
ABAJO <- 1;
IZQUIERDA <- 2;
ARRIBA <- 3;
i <- 1;
direccion <- DERECHA;
Escribir "Ingrese el número de renglones:";
Leer renglones;
Escribir "Ingrese el número de columnas:";
Leer columnas;
Dimension matriz(renglones, columnas);
Para renglon<-1 Hasta renglones Con Paso 1 Hacer
Para columna<-1 Hasta columnas Con Paso 1 Hacer
matriz[renglon,columna] <- -1;
FinPara
FinPara
renglon <- 1;
columna <- 1;
Mientras matriz[renglon,columna] = -1 Hacer
matriz[renglon,columna] <- i;
i <- i+1;
Segun direccion Hacer
DERECHA:
Si columna<columnas Entonces
Si matriz[renglon,columna+1]=-1 Entonces
columna <- columna+1;
Sino
direccion <- ABAJO;
renglon <- renglon+1;
FinSi
Sino
direccion <- ABAJO;
renglon <- renglon+1;
FinSi
ABAJO:
Si renglon<renglones Entonces
Si matriz[renglon+1,columna]=-1 Entonces
renglon <- renglon+1;
Sino
direccion <- IZQUIERDA;
columna <- columna-1;
FinSi
Sino
direccion <- IZQUIERDA;
columna <- columna-1;
FinSi
IZQUIERDA:
Si columna>1 Entonces
Si matriz[renglon,columna-1]=-1 Entonces
columna <- columna-1;
Sino
direccion <- ARRIBA;
renglon <- renglon-1;
FinSi
Sino
direccion <- ARRIBA;
renglon <- renglon-1;
FinSi
ARRIBA:
Si renglon>1 Entonces
Si matriz[renglon-1,columna]=-1 Entonces
renglon <- renglon-1;
Sino
direccion <- DERECHA;
columna <- columna+1;
FinSi
Sino
direccion <- DERECHA;
columna <- columna+1;
FinSi
FinSegun
FinMientras
Escribir "";
Escribir "Resultado:";
Para renglon<-1 Hasta renglones Con Paso 1 Hacer
linea <- "[";
Para columna<-1 Hasta columnas Con Paso 1 Hacer
Si matriz[renglon,columna]<10 Entonces
linea <- Concatenar(linea, " ");
Sino
linea <- Concatenar(linea, " ");
FinSi
linea <- Concatenar(linea, ConvertirATexto(matriz[renglon,columna]));
FinPara
Escribir linea, " ]";
FinPara
FinAlgoritmo