Descargar

Estructura de datos

Enviado por vodd69


Partes: 1, 2

    1. Introducción
    2. Objetivos
    3. Arreglos
    4. Arreglos de tipo carácter
    5. Arreglos bidimensionales (matrices)
    6. Modularidad
    7. Metodología descendente: (top – down)
    8. Variables
    9. Procedimientos
    10. Funciones
    11. Uso de los parámetros: formales – normales o argumentos
    12. Arquitectura modular
    13. Recursividad
    14. Registros
    15. Conclusiones y recomendaciones
    16. Bibliografía
    17. Anexos
    1. PRESENTACIÓN

    El presente trabajo es simplemente un camino para empezar y ver cristalizado nuestro sueño de ser un profesional altamente competitivo en el mercado, y esto como es bien sabido por todos nosotros los que formamos este núcleo estudiantil se lo debemos en gran parte a la enseñanza, ideas impartidas por el profesor de la asignatura en mención.

    El curso de Estructura de Datos es una asignatura más que teórica diríamos es un 85% práctico, por que mediante este método aprendemos la lógica y el método a seguir para llegar a la solución del problema planteado.

    El presente simplemente es una base para los compañeros que nos preceden, ya que en la ciudad no se cuenta con la biografía necesaria, y esperamos que sirva de guía práctica.

    II. INTRODUCCIÓN

    Como ya sabemos, las computadoras fueron diseñadas o ideadas como una herramienta mediante la cual podemos realizar operaciones de cálculo complicadas en un lapso de mínimo tiempo. Pero la mayoría de las aplicaciones de este fantástico invento del hombre, son las de almacenamiento y acceso de grandes cantidades de información.

    La información que se procesa en la computadora es un conjunto de datos, que pueden ser simples o estructurados. Los datos simples son aquellos que ocupan sólo una localidad de memoria, mientras que los estructurados son un conjunto de casillas de memoria a las cuales hacemos referencia mediante un identificador único.

    Debido a que por lo general tenemos que tratar con conjuntos de datos y no con datos simples (enteros, reales, booleanos, etc.) que por sí solos no nos dicen nada, ni nos sirven de mucho, es necesario tratar con estructuras de datos adecuadas a cada necesidad.

    Las estructuras de datos son una colección de datos cuya organización se caracteriza por las funciones de acceso que se usan para almacenar y acceder a elementos individuales de datos.

    Una estructura de datos se caracteriza por lo siguiente:

    • Pueden descomponerse en los elementos que la forman.
    • La manera en que se colocan los elementos dentro de la estructura afectará la forma en que se realicen los accesos a cada elemento.
    • La colocación de los elementos y la manera en que se accede a ellos puede ser encapsulada.

    Ejemplo: Supongamos que nos enfrentamos a un problema como este: Una empresa que cuenta con 150 empleados, desea establecer una estadística sobre los salarios de sus empleados, y quiere saber cual es el salario promedio, y también cuantos de sus empleados gana entre $1250.00 y $2500.00.

    Si tomamos la decisión de tratar este tipo de problemas con datos simples, pronto nos percataríamos del enorme desperdicio de tiempo, almacenamiento y velocidad. Es por eso que para situaciones de este tipo la mejor solución son los datos estructurados.

    V. OBJETIVOS:

    El objetivo por el cual fue el presente trabajo de Estructura de Datos, es el establecer un material de apoyo y consulta para ti que eres alumno de Ingeniería Informática y de Sistemas o de cualquier otra área afín en la cual se imparta la materia de Estructura de Datos. Una vez que hayas terminado de revisar detenidamente este material, serás capaz de establecer estructuras lógicas de datos que te permitan hacer un uso más eficiente del espacio de memoria, de minimizar los tiempos de acceso, así como de lograr formas más efectivas de inserción y eliminación de datos en estructuras de almacenamiento. Ahora que ya sabes en lo que te puede ayudar este tutorial, puedes empezar a hacer uso de él, consultando todas tu tareas y dudas que tengas acerca de la materia.

    Acceder a cualquier elemento del arreglo sin tener que consultar a elementos anteriores o posteriores, esto mediante el uso de un índice para cada elemento del arreglo que nos da su posición relativa.

    • CONTENIDOS

    ARREGLOS

    CONCEPTO :

    Es un conjunto de datos o una estructura de datos homogéneos que se encuentran ubicados en forma consecutiva en la memoria RAM ( sirve para almacenar datos en forma temporal).

    Un arreglo puede definirse como un grupo o una colección finita, homogénea y ordenada de elementos. Los arreglos pueden ser de los siguientes tipos:

    • De una dimensión.
    • De dos dimensiones.
    • De tres o más dimensiones

    1. ARREGLOS UNIDIMENSIONALES

    Un arreglo unidimensional es un tipo de datos estructurado que está formado de una colección finita y ordenada de datos del mismo tipo. Es la estructura natural para modelar listas de elementos iguales.

    Para implementar arreglos unidimensionales se debe reservar espacio en memoria, y se debe proporcionar la dirección base del arreglo, la cota superior y la inferior.

    Ejemplos

    1. Diseñar un algoritmo que ingrese 30 notas aprobados y que me muestre la nota mayor y el promedio de todas (Nota>=10.5 y Nota<=20)

    Solución :

    Inicio

    nota[30], s, may, p : real

    i : entero

    s←0

    para (i=1; i<=30; i++)

    repetir

    Ingresar nota [i]

    hasta (nota[i]>=10.5) y (nota[i]<=20)

    s ← s + nota[i]

    si (i=1) entonces

    may ← nota[i]

    sino

    si (nota[i]>may) entonces

    may ← nota[i]

    fin _ si

    fin _ si

    fin _ para

    p ← s/30

    mostrar "PROMEDIO TOTAL ES",p

    mostrar "LA NOTA MAYOR ES",may

    Fin

    2. Ingresar 30 valores cualesquiera y determinar cuantos de estos valores son iguales al promedio de los 30 valores ingresados anteriormente.

    Solución :

    Inicio

    num[30], i, s ß 0, c ß 0 : entero

    p : real

    para(i=1;i<=30;i++)

    Ingresar num[i]

    S ß s + num[i]

    fin_para

    p ß s/30

    para(i=1;i<=30;i++)

    si (p=num[i]) entonces

    cß c+1

    fin_si

    fin_para

    mostrar "Números Iguales al promedio",c

    Fin

    1. Controlar el siguiente menú :
    1. Ingresar .- En esta opción usted deberá ingresar 20 números positivos que no sean mayores que 100.
    2. Mostrar .- En esta opción usted deberá calcular y mostrar el promedio solo de los números cuyo primer digito de su izquierda sea el 2 y el 3.

    Solucion :

    Inicio

    num[20], i, opc, indß 0, c, s : entero

    p : real

    repetir

    mostrar "1 : INGRESAR"

    mostrar "2 : MOSTRAR"

    mostrar "3 : SALIR"

    repetir

    ingresar opc

    hasta (opc>=1) y (opc<=3)

    según_sea opc hacer

    1 : Inicio

    para (i=1; i<=20; I++)

    repetir

    ingresar num [i]

    hasta (num[1]>0) y (num[i]<=100)

    fin_para

    Fin

    2 : Inicio

    si (ind=1) entonces

    cß 0

    sß 0

    para(i=1; i<=20; i++)

    si (num[i]>=20 y num[i]<40) entonces

    sß s+num[i]

    cß c+1

    fin_si

    fin_para

    si (c=0) entonces

    mostrar "NO EXISTE NUMERO CON DIGITOS 2 Y 3"

    sino

    pß s/c

    mostrar "promedio",p

    fin_si

    sino

    mostrar "INGRESE DATOS"

    fin_si

    fin

    fin_según sea

    Hasta (opc=3)

    fin

    4. Diseñar un algoritmo que ingrese 15 números cualesquiera.

    Solución :

    Inicio

    num[15]: entero

    i: entero

    para (i=1; i<=15; i++)

    Ingresar num[i]

    Fin _ para

    Fin

    5. Utilizando arreglos, ingresar 15 números y calcular cual es el número menor.

    Solución :

    Inicio

    i, men, Num[15]: entero

    para (i=1; i<=15; i++)

    Ingresar Num[i]

    si (i=1) entonces

    men ← num[i]

    sino

    si (Num[i]< men) entonces

    menor ← Num[i]

    Fin _ si

    Fin _ si

    Fin _ para

    Fin

    Con Alternativas Múltiples

    6. Diseñar un algoritmo que controle las siguientes opciones del menú:

    1. Ingresar : En esta opción Ud. deberá ingresar 30 números positivos cualesquiera.

    2. Mostrar : En esta opción Ud. deberá mostrar el promedio y tambien cuantos números superan dicho promedio.

    3. Salir.

    Solución :

    Inicio

    opc: caracter

    num[30]: entero

    i, s ← 0, c ← 0, sw: entero

    p : real

    sw ← 0

    repetir

    Mostrar "1.- Ingresar"

    Mostrar "2.- Mostrar"

    Mostrar "3.- Salir"

    repetir

    pedir opc

    hasta (opc>=1 y opc <=3)

    1: Inicio

    sw ← 1

    para (i=1; i<=30; i++)

    repetir

    pedir num[i]

    hasta (num[i]>0)

    Fin _ para

    Fin

    2: Inicio

    si (sw = 1) entonces

    s ← 0

    para (i=1; i<=30; i++)

    s ← s+ num[i]

    fin _ para

    p ← s/30

    c ← 0

    para (i=1; i<=30; i++)

    si (num[i]>0) entonces

    c ← c + 1

    fin _ si

    fin _ para

    si (c = 0) entonces

    mostrar "NÚMEROS IGUALES"

    sino

    mostrar p,c

    fin _ si

    sino

    Mostrar "Aún no ingresar datos"

    Fin _ si

    hasta opc = 3

    Fin

    7. Almacenar en un arreglo los 5 primeros números primos positivos.

    Solución:

    Inicio

    primo[5]: entero

    i, n, d, c: entero

    c ← 0

    n ← 0

    repetir

    n ← n+1; d ← 0

    para (i=1; i<=n; i++)

    si (n mod i=0) entonces

    d ← d+1

    fin _ si

    fin _ para

    si (d=2) entonces

    c ← c+1

    primo[c] ← N

    Fin_si

    hasta (c=5)

    Fin

    8. Ingresar 2 números y mostrar cual es el mayor de ellos.

    Solución:

    Inicio

    a, b : entero

    pedir a

    si (a>b) entonces

    mostrar "a mayor", a

    sino

    si (b>a) entonces

    mostrar "b mayor"

    sino

    si (a=b) entonces

    son iguales

    Fin _ si

    Fin _ si

    Fin _ si

    Fin

    9. Ingresar un número positivo y mostrar cual es su mitad.

    Solucion :

    Inicio

    Ingresar N

    repetir

    pedir N hasta que N>0

    N=N/2

    Mostrar "La mitad es" N/2

    Fin _ repetir

    Fin

    10 Ingresar un número par y mostrar sus divisores; el número par debe ser positivo.

    Solución :

    Inicio

    n, i, c ← 0: entero

    repetir

    Ingresar n

    hasta (n>0) y (n mod 2=0)

    para (i=1; i<=n; i++)

    si (n mod i=0) entonces

    c ← c+1

    Mostrar i

    Fin _ si

    Fin _ para

    Mostrar "Cantidad de divisores"

    Fin

    11. Ingresar 5 números negativos y calcular su media aritmética.

    Solución :

    Inicio

    repetir

    Ingresar n

    hasta (n<0 y n mod 2=0)

    para (i=0; i<=5; i++)

    si (n mod i=0) entonces

    c ← c+1

    mostrar i

    fin _ si

    fin _ para

    escribir "MEDIA ARITMÉTICA ES ", C

    Fin

    12. Ingresar 5 números en un arreglo.

    Solución :

    Inicio

    num[5]:entero

    i: entero

    para (i=1; i<=5; i++)

    ingresar num[5]

    Fin _ para

    Fin

    13. Ingresar 5 números positivos. No utilizar la estructura repetir desde.

    Solución :

    Inicio

    i, num[5]: entero

    i ← 1

    mientras (i<=5)

    repetir

    Ingresar num[i]

    hasta (num[i]>0)

    i ← i+1

    Fin _ mientras

    Fin

    14. Ingresar un número mayor que 50 y calcular la suma y el promedio de sus 5 primeros divisores. Almacenar los divisores en un arreglo.

    Solución :

    Inicio

    x ← 0, s ← 0, c ← 0

    repetir

    Ingresar n

    hasta (n>50)

    repetir

    x ← x+1

    si (n mod x=0) entonces

    c ← c+1

    divisor[c] ← x

    fin _ si

    hasta (c=s)

    para (i=1; i<=5; i++)

    s ← s + divisor[i]

    fin _ para

    mostrar "EL PROMEDIO ES", p

    mostrar "LA SUMA ES", s

    Fin

    15. Almacenar en un arreglo todos los números primos que se encuentren entre 1 y 40.

    Solución :

    Inicio

    para (i=2; i<=39; i++)

    d ← 0

    para (j=1; j<=i; j++)

    si (i mod j=0) entonces

    d ← d+1

    fin _ si

    fin _ para

    si (d=2) entonces

    c ← c+1

    primo[c]+ i

    fin _ si

    fin _ para

    fin

    16. Controlar el siguiente menú:

    1. Pares: ingresar 35 números pares negativos y mostrar el valor absoluto del promedio.

    2. Impares: Ingresar 10 números impares positivos que sean dígitos para luego determinar el promedio de los mismos.

    3 Salir: En esta opción Ud. deberá confirmar si desea abandonar la ejecución del algoritmo.

    Solución :

    Inicio

    num[35], opc, i : entero

    s, p : entero

    res : caracter

    repetir

    Mostrar "1.Pares"

    Mostrar "2.Impares"

    Mostrar "3. Salir"

    repetir

    Ingresar opc

    hasta(opc>=1) y (opc<=3)

    según _ sea opc hacer

    1. Inicio

    para(i=1; i<=35; i++)

    repetir

    Ingresar num[i]

    hasta(num[i] mod 2=0) y (num[i]<0)

    s ← s+num[i]

    fin _ para

    p ← (s/35)*-1

    Mostrar "Valor absoluto", p

    Fin

    2º Inicio

    para(i=1; i<=10; i++)

    repetir

    Ingresar num[i]

    hasta(num[i] mod 2=1) y (num[i]>0) y (num[i]<10)

    s ← s+num[i]

    fin _ para

    p ← s/10

    Mostrar "promedio", p

    Fin

    3º Inicio

    repetir

    Ingresar "Desea salir (S/N)" Res

    hasta(res=’S’) o (res=’N’)

    si (res=’N’) entonces

    opc ← 0

    Fin _ si

    Fin

    Fin _ según _ sea

    hasta opc=3

    Fin

    17. Controlar las siguientes opciones del menú:

    a.- Pares – Impares : En esta opción Ud. Deberá ingresar 30 números pares e impares en forma consecutiva, donde necesariamente el primer número deberá ser un numero par luego un impar y así intercaladamente.

    b.- ImparesPares : Ingresar 30 números impares – pares en forma intercalada empezando con un impar.

    c.- Mostrar : En esta opción Ud. deberá mostrar la suma de los números pares ingresados en la opción A o B, también deberá el algoritmo indicar cual de las dos opciones está mostrando Ud. Ya sea A o B.

    d.- Salir.

    NOTA: Ud. deberá trabajar solamente con un arreglo de 30 números.

    Solución :

    Inicio

    num[30]: entero

    i, ind, s: entero

    opc: caracter

    repetir

    Mostrar "A : Pares – Impares"

    Mostrar "B : Impares – Pares"

    Mostrar "C : Mostrar"

    Mostrar "D : Salir"

    repetir

    Ingresar opc

    hasta (opc="A") o (opc="B") o (opc="C") o (opc="D")

    según _ sea opc hacer

    A : Inicio

    ind ← 1

    para (i=1; i<=30; i++)

    si (i mod 2=0) entonces

    repetir

    Ingresar num[i]

    hasta (num[i] mod 2<>0)

    sino

    repetir

    Ingresar num[i]

    hasta (num[i] mod 2=0) y (num[i]<>0)

    Fin _ si

    Fin _ para

    Fin

    1. Inicio

    B : Inicio

    Ind ← 2

    para (i=1; i<=30; i++)

    si (i mod 2=0) entonces

    repetir

    ingresar Num[i]

    hasta (Num[i] mod 2=0) y (Num[i]<>0)

    sino

    repetir

    Ingresar Num[i]

    hasta (Num[i] mod 2<>0)

    Fin _ si

    Fin _ para

    Fin

    C : Inicio

    si (ind =0) entonces

    Mostrar "Aún no ingresar datos"

    sino

    si (ind =1) entonces

    Mostrar "Resultado opción 1"

    sino

    Mostrar "Resultado opción 2"

    Fin _ si

    S ← 0

    para (i=1; i<=30; i++)

    si (Num[i] mod 2=0) entonces

    S ← S+Num[i]

    Fin _ si

    Fin _ para

    Mostrar "S"

    Fin _ si

    fin

    fin _ según _ sea

    hasta (opc=’D’)

    fin

    18. Ingresar un número que tenga 10 dígitos, donde cada dígito debe de ser almacenado en una posición del arreglo.

    Solución :

    Inicio

    N[10] : entero

    i : entero

    para (i = 1; i <= 10; i ++)

    si (i=1) entonces

    repetir

    ingresar N[i]

    hasta (N[i]>0) y (N[i]<10)

    sino

    repetir

    ingresar N[i]

    hasta (N[i]>=0) y (N[i]<10)

    fin_si

    fin_para

    Fin

    19. Almacenar en un arreglo los 5 primeros números primos positivos, para luego mostrar cual es el tercer número primo calculado.

    Solución :

    Inicio

    p[5] : entero

    c ß 0, cpß 0, d, i : entero

    repetir

    c = c + 1

    d = 0

    para (i = 1; i <= c; i ++)

    si (c mod i = 0) entonces

    d = d + 1

    fin_si

    fin_para

    si (d=2) entonces

    cp=cp+1

    p[cp]=c

    fin_si

    hasta (cp=5)

    mostrar p[3]

    fin

    ARREGLOS DE TIPO CARACTER

    20. Diseñar un algoritmo que ingrese una cadena de carácter cualesquiera, para luego mostrar cuantos caracteres tiene dicha cadena.

    Solución :

    Inicio

    cad[25]: carácter

    L: entero

    Ingresar cad

    L ← Longitud (cad)

    Mostrar " Número caracter", L

    Fin

    21. Escribir un algoritmo que determine si una cadena de caracteres es un palíndromo ( una palabra que al revés dice lo mismo ejm: RADAR)

    Solución :

    Inicio

    cad[30]: carácter

    L, i, j, C ← 0: entero

    Ingresar cad

    L ← Longitud (cad)

    j ← L

    para (i=0; i <= L-1; i++)

    j ← j -1

    si (cad[i]= cad[j] ) entonces

    C ← C+1

    Fin _ si

    Fin _ para

    si (C = L) entonces

    Mostrar "Palíndromo"

    sino

    Mostrar "No es palíndromo"

    Fin _ si

    Fin

    22. Ingresar una cadena y mostrar cuantos vocales existen en la cadena.

    Solución :

    Inicio

    cad[25]: caracter

    L, C ← 0: entero

    Ingresar cad

    L ← Longitud cad

    para (i=0; i<=L-1; i++)

    según _ sea cad[i] hacer

    ‘a’ : C ← C+1

    ‘e’ : C ← C+1

    ‘i’ : C ← C+1

    ‘o’ : C ← C+1

    ‘u’ : C ← C+1

    fin _ según _ sea

    fin_para

    Mostrar "Cantidad vocales", C

    Fin

    Escribir un algoritmo que permita ingresar una frase y luego la descomponga en sus palabras imprimiéndolas en líneas diferentes ejm : Estructura De Datos Estructura

    De

    Datos

    Solución :

    Inicio

    cad[20] : carácter

    i, L : entero

    ingresar cad [i]

    L ß longitud (cad)

    Para ( i = 0; i <= L-1; i++)

    mostrar cad [i]

    si (cad [i] = ‘ ‘) entonces

    saltar línea

    fin_si

    fin_para

    fin

    ARREGLOS BIDIMENSIONALES (Matrices) :

    Unidimensional:

    Nombre [10]: tipo

    Num [10]: entero

    Ingresar

    Para (i =1; i £ 10; i ++)

    Ingresar Num [i]

    Fin_para

    Fin

    Bidimensional:

    Nombre [fila] [columna] : tipo

    Num [10] [10] : entero

    Ingresar

    Para (i = 1; i £ 10; i ++ )

    Para (j = 1; j £ 10; j ++)

    Ingresar Num [i] [j]

    Fin_para

    Fin_para

    Fin

    Ejercicios:

    1. Inicio

      Num [8] [8]: entero

      i, j, N :entero

      Repetir

      Ingresar N

      Hasta (N > 1 y N £ 8)

      Para (i = 1; i £ N; i ++)

      Para (j = 1; j £ N; j ++)

      Repetir

      Ingresar Num [i] [j]

      Hasta (Num [i] [j] ³ 0)

      Fin_para

      Fin_para

      Fin

    2. Diseñar un algoritmo que permita ingresar una matriz de orden n donde todos los elementos de dicha matriz sean números naturales.
    3. Diseñar un algoritmo que permita ingresar 35 números impares en una matriz de orden n x m.

    Inicio

    Num [35] [35]: entero

    i, j, N, M: entero

    Repetir

    Ingresar N, M

    Hasta (M x N = 35 y M > 0)

    Para (i = 1; i £ M; i ++)

    Para (j = 1; j £ N; j ++)

    Repetir

    Ingresar Num [i] [j]

    Hasta (Num [i ] [j] mod 2 < > 0)

    Fin_para

    Fin_para

    Fin.

    3._ Ingresar 15 números negativos en una matriz de orden mxn.

    Inicio

    M[15][15]: entero

    i, j, m, n: entero

    repetir

    Ingresar m, n

    hasta (m + n =15) y (m>0)

    para (i=1; i<=m; i++)

    para (j=1; j<=n; j++)

    repetir

    Ingresar M[i][j]

    hasta (M[i][j]>0)

    Fin _ para

    Fin _ para

    Fin

    4._ Diseñar un algoritmo que ingrese una matriz cuadrada, para luego calcular su diagonal principal.

    Inicio

    Num[35][35]: entero

    i, j, N, S ← 0: entero

    repetir

    Ingresar N

    hasta (N>1; y N<=35)

    para (i=1; i<=N; i++)

    para (j=1; j<=N; j++)

    Ingresar Num[i][j]

    Fin _ para

    Fin _ para

    para (i=1; i<=N; i++)

    para (j=1; j<=N; j++)

    si i=j entonces

    S ← S+Num[i][j]

    Fin _ si

    Fin _ para

    Fin _ para

    Mostrar "Diagonal P:", S

    Fin

    5._ Diseñar un algoritmo que ingrese una matriz cuadrada, para luego calcular su diagonal secundaria.

    Inicio

    Num[35][35]: entero

    i, j, N, S ← 0: entero

    repetir

    Ingresar N

    hasta (N>1; y N<=35)

    para (i=1; i<=N; i++)

    para (j=1; j<=N; j++)

    Ingresar Num[i][j]

    Fin _ para

    Fin _ para

    para (i=1; i<=N; i++)

    para (j=1; j<=N; j++)

    si i+j=N+1 entonces

    S ← S+Num[i][j]

    Fin _ si

    Fin _ para

    Fin _ para

    Mostrar "Diagonal S", S

    Fin

    6._ Diseñar un algoritmo que permita almacenar en un arreglo los impares que sean dígitos cuando i + j sea par, para el caso que i + j no sea par usted deberá ingresar cualquier número negativo.

    Inicio

    M: entero

    i, j, N: entero

    para i=1 hasta N

    para j=1 hasta N

    si (i + j mod 2=0)

    repetir

    Leer "Ingresar número", N

    hasta que N>0

    M[i][j] =N

    sino

    repetir

    Leer "Ingresar número", N

    hasta que N<0

    M[i][j] =N

    Fin _ si

    Fin _ para

    Fin _ para

    Fin

    Rellenar una matriz de la siguiente manera:

    *

    0

    *

    0

    *

    0

    *

    0

    *

    0

    *

    *

    0

    *

    0

    *

    0

    *

    *

    0

    *

    0

    *

    0

    0

    *

    0

    *

    0

    *

    0

    *

    0

    0

    *

    0

    *

    0

    *

    0

    *

    0

    *

    0

    *

    0

    *

    0

    *

    0

    *

    0

    *

    *

    0

    *

    0

    *

    0

    0

    *

    0

    *

    0

    *

    0

    *

    0

    *

    0

    *

    0

    *

    0

    *

    0

    *

    0

    *

    *

    0

    *

    0

    *

    0

    N=5

    N=6

    *

    0

    *

    0

    *

    0

    *

    *

    0

    *

    0

    0

    *

    0

    *

    0

    *

    0

    *

    0

    *

    *

    0

    *

    0

    N=4 N=3

    Inicio

    char Num[20][20];

    int n, i, j, C=0;

    repetir

    Mostrar "Ingresar N:";

    Mostrar "N";

    hasta (N<=0 | | N>=20)

    para (i=0; i<=N-1; i++)

    para (j=0; j<=N-1; j++)

    si (C=0) entonces

    Num[i][j]=’*’

    C=1;

    sino

    Num[i][j]=’0’

    C=0;

    Fin _ si

    Fin _ para

    Fin _ para

    para (i=0; i<=N-1; i++)

    para (j=0; j<=N-1; j++)

    Mostrar "Num[i][j]

    Fin _ para

    Fin _ para

    Fin

    Partes: 1, 2
    Página siguiente