UTN FRLP Ing. en Sistemas de Información Algoritmos y Estructura de Datos Trabajos Prácticos Curso 2010



Documentos relacionados
EJERCICIOS RESUELTOS DE ARREGLOS Y MATRICES

Se tomaran los ejercicios del Trabajo Practico Nº 11 (Arreglo con Registros), para desarrollar TP de Pascal.

ALGORITMOS Y ESTRUCTURAS DE DATOS. Ejercicios Resueltos CUADERNILLO DE PRACTICA

Academia técnica de computación A.T.C.

EJERCICIOS EN PASCAL 1.- Área de un triángulo (Entrada y salida estándar - Pascal) 1.- Escribir un programa (en Pascal) que:

Estructura de datos (arreglos) Vectores y Matrices

Ejemplo de la implementación del llenado de un arreglo de forma aleatoria

ESTRUCTURA DE DATOS: ARREGLOS


UNIDAD 5. ESTRUCTURAS DINÁMICAS Y ESTÁTICAS DE ALMACENAMIENTO DE DATOS.

LABORATORIO DE PROGRAMACIÓN II Problemas HOJA 1 RECURSIVIDAD

ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES

Introducción a la Programación Ingenieria en Informática Junio 2008

Estructura de Datos y de la Información. Pilas y expresiones aritméticas

2.2 y 2.3 Datos Estructurados y Arreglos en Pascal

Estructura de Datos: Archivos. Programacion I Mgter. Vallejos, Oscar A.

Introducción a la calidad de código

ALGORITMOS Y ESTRUCTURAS DE DATOS EJERCICIOS RESUELTOS SEGUNDA PARTE

Módulo. = Asignación = = Comp. de igualdad!= Com. de desigualdad <= Comp. menor o igual >= Comp. mayor o igual AND lógico OR lógica.

1. ESTRUCTURA DE UN PROGRAMA PASCAL Todo programa escrito en lenguaje Pascal, del más simple al más complejo, tiene la siguiente estructura:

GUÍA DE TRABAJO N 2 ARREGLOS EN C# Ing. Néstor Raúl Suarez Perpiñan Página 1 de 8. Tema: ARREGLOS (ARRAYS) LENGUAJE C#

Programación y Computación Ingenierías. Dr. Eric Jeltsch F. FUNCIONES Y PROCEDIMIENTOS. Universidad de La Serena.

ALGORITMOS Y ESTRUCTURAS DE DATOS EJERCICIOS RESUELTOS SEGUNDA PARTE

Apunte Laboratorio ALPI - El lenguaje de programación Pascal

Fundamentos de la Programación

1. Suma de dos números introducidos por teclado. 2. Comparación de dos números introducidos por teclado. program suma; uses crt;

Como se declara un vector en Visual Basic 6.0

UTN FRR Ingeniería en Sistemas de Información Algoritmos y Estructuras de Datos Archivos Directos GUIA DE ESTUDIO: ARCHIVOS DIRECTOS

Programación en Pascal

U nidad 6: A rreglos: U nidim ensionales y m ultidim ensionales

Práctica 10.Subprogramas: - Funciones. Prof. Eliana Guzmán U.

UTN FRLP Ing. en Sistemas de Información Algoritmos y Estructura de Datos Trabajos Prácticos Curso 2010

Trabajo Práctico Nº 8 Tipo Registros. Búsqueda y Ordenación en Arreglos.

Manual de turbo pascal

col Type mismatch cadena vacía fila 1 z + i 4 1 fila 2

UTN FRRo Algoritmos y Estructuras de Datos Bibliotecas Un ejemplo : Gestión de Pantalla, Retardo y Sonido

Tipos de datos definidos por el usuario. 1. Arreglos

Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática

Estructuras de Programación

ALGORITMOS Y ESTRUCTURAS DE DATOS

Algorítmica y Lenguajes de Programación. Ordenación (i)

Modulo 1 El lenguaje Java

9. Subprogramas: Procedimientos 1. TEMA 9: Subprogramas: Procedimientos

ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES

APUNTES DE CÁTEDRA: ARREGLOS MULTIDIMENSIONALES

MÉTODOS DE BÚSQUEDA. Pedro Guevara Salgado Luís Olascoaga

PRACTICA 6. VECTORES Y MATRICES.

Enunciado de la tercera práctica de programación I

ARREGLOS DEFINICION GENERAL DE ARREGLO

Program Orden; Uses crt; Const n=100; Type vector= array[1..n] of integer; Var a,b : vector; prim, ulti,i, ne : integer; metodo : char;

Tutorial Básico de vbscript

Cómo nombrar variables ( 2&

Ejemplo: Paso de polares a cartesianas en el plano. f : [0, ) [0, 2π) R R. coordx : [0, ) [0, 2π) R. coordy : [0, ) [0, 2π) R

Primer Parcial. Programación 1 Instituto de Computación Año 2017

Programas ejemplo. Lenguaje de Programación PASCAL. Miguel Murguía

Arreglos y Registros

Introducción al tipo de dato ARRAY

Inicio del programa. Entrada de datos. Proceso de datos. Salida de datos. Fin del programa

Hoja de problemas Estructuras de Control

16. Realizar un programa que obtenga el producto de los primeros seis números naturales

Departamento de Informática Universidad de Valladolid Campus de Segovia LABORATORIO: INTRODUCCIÓN A LAS UNIDADES EN TURBO PASCAL

Operaciones con vectores

Este es un arreglo de números enteros, o sea que guarda una serie de variables de tipo INTEGER, todas agrupadas en una sola estructura.

Práctica 11. Subrogramas: Funciones y Procedimientos. Prof. Eliana Guzmán U.

Aprender a programar con Turbo Pascal. Turbo pascal

PROGRAMACIÓN CONCURRENTE. Tema 5 Monitores

PASCAL. Repaso de Pascal Introducción a Python. Pascal. Pascal - introducción. Pascal Declaraciones: Variables. Pascal Declaraciones: Tipos 07/04/2015

PASCAL Y TURBO PASCAL

Método Genérico Para Resolver Cuadrados Mágicos de Orden Par

6. Estructuras básicas de control 1. Pseudocódigo

6. Estructuras básicas de control 1. Pseudocódigo

Segundo Taller Final de PROGRAMACIÓN ORIENTADO A OBJETOS. INGENIERÍA DE SISTEMAS. Docente y Administrativo: Luz Esperanza Espitia Preciado

Turbo Pascal 7, FPS y sus herramientas de análisis de errores.

COMANDOS EN LENGUAJE DE PROGRAMACIÓN BASIC

Si L es recursivo, entonces es recursivamente numerable

Introducción al Lenguaje de Programación Ada

GENERACIÓN DE CÓDIGO

Un arreglo en cualquier lenguaje de programación es una sucesión consecutiva de bytes en memoria. Los arreglos pueden representar:

Curso de Excel Avanzado

Arrays y Cadenas en C

Arreglos y Subrangos

Resolver triángulos en Visual Basic. Parte 3/3

Semántica Denotacional

Capítulo 4. Vectores y matrices. 4.1 Declaración de tablas. 4.2 Declaración estática de tablas

Universidad Metropolitana Castro Carazo Prof. Ing. Patricia Vargas. Material de apoyo Semana #2 PROGRAMACIÓN II

Tema: Arreglos de Objetos en C++.

Datos en Turbo Pascal

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO. Introducción FACULTAD DE INGENIERÍA. Ordenación

FUNDAMENTOS DE PROGRAMACIÓN LABORATORIO SESIÓN 2

SERIE DE EJERCICIOS 3

Recursión. Recursión continuación

Apunte de cátedra: Ordenación de Arreglos

PROGRAMANDO EN PASCAL.

Introducción a los Computadores Arreglos en C

Curso 0 de Informática

Instrumentación Virtual con LabVIEW

construcción de programas Prof. Eliana Guzmán U.

8.1.- FUNCIONES Y PROCEDIMIENTOS DEFINIDOS POR EL USUARIO EN TURBO PASCAL.

Metodología, Técnica Y Tecnología Para Solucionar Un Problema

Estructuras Repetitivas: SENTENCIA WHILE EN MATLAB INFORMÁTICA T2 INGENIERÍA INDUSTRIAL JORNADA ESPECIAL

Transcripción:

Práctico de Pascal Nº 2 Ejercicios para la ejercitación del Lenguaje Pascal Objetivo: Es que los alumnos conozcan un lenguaje de programación, donde puedan ejercitar los conocimiento adquiridos hasta ahora en los TP de Pseudocodigo. En nuestra página encontrara un conjunto de apuntes de lenguaje pascal en la sección Apuntes. La versión que vamos a tomar como referencia es el FreePascal.org Descarga: http://www.freepascal.org/download.var Ejercicios 1. El siguiente programa captura 10 edades y nombres por medio de arrays paralelos y los muestra ordenados en forma ascendente PROGRAM Paralelo_edades; USES Crt; CONST MaxPersonas = 10; VAR edades : array [1..MaxPersonas] of byte; nombres : array [1..MaxPersonas] of string [10]; aux_nom : string[10]; i,j,aux_edad :byte; {lectura de arrays paralelos de manera simultánea} FOR i:=1 to MaxPersonas DO gotoxy(10,5); ClrEol; WRITE(i,'.- Nombre : ','Edad : '); gotoxy(23,5);readln(nombres[i]) ; gotoxy(48,5);readln(edades[i]) {ordenación} FOR i:=1 to MaxPersonas-1 DO FOR j:=i+1 to MaxPersonas DO IF edades[i]>edades[j] THEN aux_edad :=edades[i]; edades[i] :=edades[j]; edades[j] :=aux_edad; aux_nom :=nombres[i]; nombres[i]:=nombres[j]; nombres[j]:=aux_nom END Página 1 de 12 Ing. Gustavo J.A. Cerveri JTP gcerveri@frlp.utn.edu.ar

WRITELN(nombres[i]:10,' ',edades[i]:3) {escritura de los arrays paralelos} Readkey Esquema como se distribuyen los vectores: Arreglos Paralelos 2. El siguiente programa captura las calificaciones de 5 alumnos en 3 exámenes, y despliega en pantalla los promedios ordenados en forma descendente PROGRAM Matriz_Vector; Uses Crt; Const MaxAlumno = 5; MaxExamen = 4;{Columna 4 almacena el promedio} Var Alumno :array[1..maxalumno] of string[10]; examen :array[1..maxalumno,1..maxexamen] of real; aux_examen :array[1..maxexamen] of real; {reserva 20 posiciones de memoria de datos reales : 5 filas por 4 columnas} promedio :real; aux_alumno :string [10]; i,j,col,ren :byte; {Lectura de arrays paralelos de manera simultánea} gotoxy(5,5);write('nombre'); gotoxy(20,5);write('examen1 Examen2 Examen3 Promedio'); col:=5;ren:=6; FOR i:=1 to MaxAlumno DO ReadLn(alumno[i]); {lectura de vector} col:=22;promedio:=0; FOR j:=1 to MaxExamen-1 DO ReadLn(examen[i,j]); {lectura de matríz} promedio:=promedio+examen[i,j]; col:=col+10 Página 2 de 12 Ing. Gustavo J.A. Cerveri JTP gcerveri@frlp.utn.edu.ar

examen[i,j+1]:=promedio/3; WRITE(promedio/3:3:2); inc(ren); col:=5 {Ordenación} FOR i:=1 to MaxAlumno-1 DO FOR j:=i+1 to MaxAlumno DO IF examen[i,maxexamen]<examen[j,maxexamen] THEN {Intercambio de nombres en vector} aux_alumno:=alumno[i]; alumno[i] :=alumno[j]; alumno[j] :=aux_alumno; {Intercambio de calificaciones en matríz} move(examen[i],aux_examen,sizeof(aux_examen)); move(examen[j],examen[i],sizeof(aux_examen)); move(aux_examen,examen[j],sizeof(aux_examen)) END {Recorrido de matriz y vector} gotoxy(25,14);write('datos ordenados'); gotoxy(5,16);write('nombre'); gotoxy(20,16);write('examen1 Examen2 Examen3 Promedio'); col:=5;ren:=17; FOR i:=1 to MaxAlumno DO WRITE(alumno[i]); col:=22; FOR j:=1 to MaxExamen DO WRITE(examen[i,j]:3:2); col:=col+10 col:=5; inc(ren) readkey Página 3 de 12 Ing. Gustavo J.A. Cerveri JTP gcerveri@frlp.utn.edu.ar

Esquema como se distribuyen los vectores: Arreglos (Tablas) 3. El siguiente programa captura calificaciones de 5 alumnos en 3 exámenes de 3 materias distintas, y despliega en pantalla los promedios ordenados en forma descendente PROGRAM 3D; Uses Crt; Const MaxAlumno = 5; MaxExamen = 4; {Columna 4 almacena el promedio} MaxMateria = 3; materia : array[1..3]of string[8]=('fisica','ingles','historia'); VAR Alumno : array [1..MaxAlumno] of string[10]; examen : array [1..MaxAlumno,1..MaxExamen,1..MaxMateria] of real; aux_examen : array [1..MaxExamen]of real; {reserva 60 posiciones de memoria de datos reales : 5 filas por 4 columnas y 3 dimensiones} promedio :real; aux_alumno :string [10]; i,j,k,col,ren : byte; {lectura de arrays paralelos de manera simultánea} FOR k:=1 to MaxMateria DO gotoxy(34,3);write(materia[k]); gotoxy(5,5);write('nombre'); gotoxy(20,5);write('examen1 Examen2 Examen3 Promedio'); col:=5;ren:=6; FOR i:=1 to MaxAlumno DO IF k=1 THEN ReadLn(alumno[i]) {lectura de vector} ELSE WRITE(alumno[i]); col:=22;promedio:=0; FOR j:=1 to MaxExamen-1 DO Página 4 de 12 Ing. Gustavo J.A. Cerveri JTP gcerveri@frlp.utn.edu.ar

ReadLn(examen[i,j,k]); {lectura de matríz} promedio:=promedio+examen[i,j,k]; col:=col+10 examen[i,j+1,k]:=promedio/3; WRITE(promedio/3:3:2); inc(ren); col:=5 gotoxy(15,22); WRITE('Presione una tecla para continuar...'); ReadKey {ordenación} FOR k:=1 to MaxMateria DO FOR i:=1 to MaxAlumno-1 DO FOR j:=i+1 to MaxAlumno DO IF examen[i,maxexamen,k]<examen[j,maxexamen,k] THEN {Intercambio de nombres en vector} aux_alumno:=alumno[i]; alumno[i] :=alumno[j]; alumno[j] :=aux_alumno; {intercambio de calificaciones en matríz} move(examen[i,k],aux_examen,sizeof(aux_examen)); move(examen[j,k],examen[i,k],sizeof(aux_examen)); move(aux_examen,examen[j,k],sizeof(aux_examen)) END {Recorrido de matríz y vector} FOR k:=1 to MaxMateria DO gotoxy(35,4);write(materia[k]); gotoxy(25,5);write('datos ordenados'); gotoxy(5,6);write('nombre'); gotoxy(20,6);write('examen1 Examen2 Examen3 Promedio'); col:=5;ren:=7; FOR i:=1 to MaxAlumno DO WRITE(alumno[i]); col:=22; FOR j:=1 to MaxExamen DO WRITE(examen[i,j,k]:3:2); Página 5 de 12 Ing. Gustavo J.A. Cerveri JTP gcerveri@frlp.utn.edu.ar

col:=col+10 col:=5; inc(ren) gotoxy(15,22); WRITE('Presione una tecla para continuar...'); readkey END Esquema como se distribuyen los vectores: Arreglos (Varias Dimensiones) 4. El siguiente programa captura un numero entero y lo pasa a binario PROGRAM binario; USES crt; PROCEDURE bina (VAR nro:integer); IF ( nro=0 or nro=1) THEN WRITELN (nro); ELSE bina(nro div 2); WRITELN( nro mod 2); VAR a: integer; WRITELN ('Ingrese el nro a covertir'); readln (a); bina(a); readkey; 5. El siguiente programa se aplica el método de inserción para un vector de 5 elemento Página 6 de 12 Ing. Gustavo J.A. Cerveri JTP gcerveri@frlp.utn.edu.ar

PROGRAM inser; USES CRT; type vec=array [1..5] of integer; PROCEDURE lista (VAR x:vec); VAR j: integer; FOR j:=1 to 5 DO WRITELN('vec(',j,')=', x[j]); readkey; PROCEDURE insercion( VAR vector:vec); VAR i,j, index: integer; FOR i:= 2 to 5 DO index:= vector[i]; j:=i; while ((j>1) and (vector[j-1]>index)) DO vector[j]:=vector[j-1]; j:=j-1; vector[j]:=index; lista (vector); VAR a:vec; j: integer; a[1]:=-1; a[2]:=0; a[3]:=5; a[4]:=3; a[5]:=-5; insercion (a); lista (a); 6. Escribir un programa en Pascal que solicite cinco números, los almacene en un array y luego calcule la media aritmética de esos números. PROGRAM Media; USES CRT; VAR arr_num:array [1..5] of REAL; VAR i, num:integer; VAR media:real; Página 7 de 12 Ing. Gustavo J.A. Cerveri JTP gcerveri@frlp.utn.edu.ar

WRITELN ('Escriba 5 numeros para hacer su media aritmetica: '); FOR i := 1 TO 5 DO READLN(num); arr_num[i]:=num; FOR i:=1 TO 5 DO media:= media + arr_num[i]; media:= media / i; WRITELN ('La media aritmetica es: ',media:5:2); 7. Escribir un programa en Pascal que determine la posición de la siguiente matriz en la que se encuentra el valor máximo 23 45 68 34 99 12 25 78 89 PROGRAM Valor_Max USES CRT; CONST arr_num:array[1..3,1..3] of INTEGER=( (23,45,68), (34,99,12), (25,78,89) ); VAR i,j,val_max,pos_max_i,pos_max_j:integer; val_max:=arr_num[1,1]; 67 FOR i:=1 TO 3 DO FOR j:=1 TO 3 DO IF arr_num[i,j] > val_max THEN val_max:=arr_num[i,j]; pos_max_i:=i; pos_max_j:=j; WRITELN( 'VALOR MAXIMO: ', val_max:3, ' POSICION: ', pos_max_i:3,pos_max_i:3); 8. Escribir un programa en Pascal que sume, independientemente, los elementos positivos y negativos de la siguiente matriz: -12 23 32 45-56 -10 25 78 89 Página 8 de 12 Ing. Gustavo J.A. Cerveri JTP gcerveri@frlp.utn.edu.ar

PROGRAM Sume; USES CRT; CONST arr_num:array[1..3,1..3] of INTEGER=( (-12,23,-32), (45,-56,-10), (25,78,89) ); VAR i,j,suma_pos,suma_neg:integer; suma_pos:=0; suma_neg:=0; FOR i:=1 TO 3 DO FOR j:=1 TO 3 DO IF arr_num[i,j] < 0 THEN suma_neg:=suma_neg+arr_num[i,j] ELSE suma_pos:=suma_pos+arr_num[i,j] WRITELN('SUMA POSITIVOS: ', suma_pos:5); WRITELN('SUMA NEGATIVOS: ', suma_neg:5); 9. Escribir un programa en Pascal que almacene en la segunda fila de la siguiente matriz los cuadrados de los datos de la primera fila: 3 6 7 8 9 0 0 0 0 0 PROGRAM Almacene; USES CRT; CONST arr_num:array [1..2,1..5] of INTEGER=( (3,6,7,8,9), (0,0,0,0,0) ); VAR i,j,cuad:integer; i:=1; FOR j:=1 TO 5 DO FOR i:=1 TO 1 DO cuad:=sqr(arr_num[i,j]); arr_num[2,j]:= cuad; WRITELN (arr_num[2,j]); 10. Escribir un programa en Pascal que sume los elementos de cada una de las filas y de las columnas de la siguiente matriz; el resultado de cada suma se almacenará en la última posición de la fila o columna correspondiente. Además la suma total de todos los elementos de la matriz se almacenará en el elemento de la esquina inferior derecha de la matriz: Página 9 de 12 Ing. Gustavo J.A. Cerveri JTP gcerveri@frlp.utn.edu.ar

1 7 0 5 6 0 6 4 0 7 3 0 0 0 0 PROGRAM Ej10; USES CRT; CONST arr_num:array [1..5,1..3] of INTEGER=( (1,7,0),(5,6,0), (6,4,0),(7,3,0), (0,0,0) ); VAR i,j,total:integer; VAR suma_h,suma_v:integer; {Es la suma horizontal y vertical} total := 0; FOR i:=1 TO 5 DO suma_h:=0; FOR j:=1 TO 3 DO suma_h:= suma_h + arr_num[i,j]; WRITELN ('La suma de la fila ',i,' es: ',suma_h:3); total:=total + suma_h; WRITELN (''); FOR j:=1 TO 2 DO suma_v:=0; FOR i:=1 TO 5 DO suma_v:= suma_v + arr_num[i,j]; WRITELN ('La suma de la columna ',j,' es: ',suma_v:3); total:=total + suma_v; WRITELN (''); WRITELN ('La suma total es: ',total); 11. Escribir un programa en Pascal que almacene en un array de registros los nombres de los alumnos, sus notas parciales y finales. Hallar la nota media y mostrar un mensaje de APTO si el alumno supera o iguala la calificación de 5 o NO APTO si no lo alcanza. Hacerlo para un número de 5 alumnos. PROGRAM Nombres (Input, Output); Uses Crt; Const numalumnos = 5; Type tiponotas = record nombre: String; parcial, final: real end; notasclase = array [1..Numalumnos] of tiponotas; VAR I3: notasclase; nota1, nota2: real; alumno: String; index: integer; Begin Página 10 de 12 Ing. Gustavo J.A. Cerveri JTP gcerveri@frlp.utn.edu.ar

for index := 1 to numalumnos do begin write('nombre de alumno(',index,'): '); readln(alumno); write('nota del examen parcial: '); readln(nota1); write('nota del examen final: '); readln(nota2); WRITELN; with i3[index] DO begin nombre := alumno; parcial := nota1; final := nota2 end end; WRITELN('NOMBRE ':30,'Parcial':10,'Final':10,'Media':10,' CALIFICACION'); for index := 1 to 75 DO write('-'); WRITELN; for index := 1 to numalumnos DO with i3[index] DO begin {Escribir la lista con los resultados.} nota1 := (parcial+final)/2; {Se calcula la media.} write(nombre:30,parcial:10:2,final:10:2); write(nota1:10:2); {Si la nota media es superior a 5, el alumno est aprobado:} if nota1 >= 5 THEN WRITELN(' *** APTO *** ') ELSE WRITELN(' NO APTO') readkey 12. Escribir un programa en Pascal que almacene en un array de registros las características de cada persona: nombre, sexo, edad, peso, color de pelo, color de piel, color de ojos, nacionalidad y teléfono. PROGRAM EJER010; Uses Crt; Const numpersonas = 2; {Cambiando este valor lo podremos hacer para el numero de personas que deseemos} Type caracteristicas = record nombre2, nacionalidad2, sexo2: String; edad2: Integer; c_ojos2: Char; tf2: Real; {Creamos una fila con diferentes apartados} personas = Array[1..numpersonas] of caracteristicas; {La copiamos tantas veces como personas haya} VAR persons : personas; nombre, nacionalidad, sexo: String; edad, i: Integer; c_ojos: Char; Página 11 de 12 Ing. Gustavo J.A. Cerveri JTP gcerveri@frlp.utn.edu.ar

tf: Real; Begin For i := 1 to numpersonas DO Begin WRITELN('Introduzca los datos de la persona numero ',i,' : '); WRITELN; WRITE('Nombre: '); READLN(nombre); WRITE('Edad: '); READLN(edad); WRITE('Nacionalidad: '); READLN(nacionalidad); Repeat WRITE('Sexo (H, M): '); READLN(sexo); Until (sexo = 'H') or (sexo = 'M') or (sexo = 'h') or (sexo = 'm'); WRITE('Telefono: '); READLN(tf); Repeat WRITE('Color de ojos (A, V, M): '); READLN(c_ojos); c_ojos := UPCASE(c_ojos); Until (c_ojos = 'A') or (c_ojos = 'V') or (c_ojos = 'M'); WRITELN; With persons[i] DO Begin nombre2 := nombre; edad2 := edad; nacionalidad2 := nacionalidad; If (sexo = 'H') or (sexo = 'h') THEN sexo2 := 'S gracias'; tf2 := tf; c_ojos2 := c_ojos; {Almacenamos los datos dentro del array de registro} textcolor(11); WRITELN('Nombre':14,'Edad':6,'Nacionalidad':14,'Sexo':12,'Telefono':12,'Color Ing. Nahiby Castillo 9 ojos':12); textcolor(7); For i := 1 to numpersonas DO Begin with persons[i] DO Begin WRITELN(nombre2:14,edad2:6,Nacionalidad2:14,sexo2:12,tf2:12:0,c_ojos2:12); Página 12 de 12 Ing. Gustavo J.A. Cerveri JTP gcerveri@frlp.utn.edu.ar