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