ALGORITMOS Y ESTRUCTURAS DE DATOS EJERCICIOS RESUELTOS SEGUNDA PARTE

Documentos relacionados
ALGORITMOS Y ESTRUCTURAS DE DATOS

ALGORITMOS Y ESTRUCTURAS DE DATOS PRIMERA PARTE

ALGORITMOS Y ESTRUCTURAS DE DATOS. Ejercicios Resueltos CUADERNILLO DE PRACTICA

Estructura de datos (arreglos) Vectores y Matrices

Curso de Programación 1

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

Resolución de Problemas y Algoritmos Clase 6: Repetición (continuación)

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.

Estructuras de Control. Secuencia y Selección

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

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

Concepto de Recursión. Características de algoritmos recursivos. Ejemplos

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


FACULTADE DE INFORMÁTICA Departamento de Computación Estructura de Datos e da Información. Ejercicios de recursividad

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

ALGORITMOS Y ESTRUCTURAS DE DATOS

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

SUBRANGO ENUMERADOS CONJUNTOS

ESTRUCTURA DE DATOS: ARREGLOS

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

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

3.- Realizar el algoritmo para obtener la suma de los números pare hasta 1000 inclusive S= Variables: suma, números

Indice del curso básico programación desde cero Visual Basic Nivel I (CU00302A)

Estructuras de Control

LABORATORIO DE PROGRAMACIÓN II Problemas HOJA 1 RECURSIVIDAD

Estudiemos el siguiente problema, propuesto por Wirth y desarrollado por Dijkstra: Una lista de las primeras secuencias que cumplen es:

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

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

Variables lógicas y sentencia IF

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

Módulo 8: Primitivas en Pascal

EJERCICIOS RESUELTOS DE PASCAL

Programación en Pascal

c1 y c2 deben ser de tipo numérico (real o entero). p y q del mismo tipo, puntero a real o a entero. Los valores entre paréntesis se refieren a zonas

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

Declaración de Procedimientos

ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES

Trabajo Práctico 8 División de Problemas en Subproblemas Uso de Procedimientos y Funciones

Semántica Denotacional

ORDENAMIENTO Y BÚSQUEDA EN ARREGLOS

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

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

Enteros. Son los números que no contienen componentes fraccionarios y, por tanto, no contienen punto decimal.

Arreglos y Registros

Universidad de Valladolid. Departamento de informática. Campus de Segovia. Estructura de datos Tema 4: Ordenación. Prof. Montserrat Serrano Montero

program entrega1; const esp = ' '; {QUE FUNCION CUMPLE??} type longtext = string; texto = string[20]; {lista circular de jugadores}

Tema 9. Algoritmos sobre listas. Programación Programación - Tema 9: Algoritmos sobre listas

Algoritmos y Programación Clase 8

GUIA DE EJERCICIOS N 1 LENGUAJE C# Página 1 de 5. Instructor: Ing. Néstor Raúl Suarez Perpiñan

Universidad Nacional del Santa FACULTAD DE INGENIERIA E.A.P de Ingeniería de Sistemas e Informática NETBEANS 7.0

Implementación de una metodología de reparación de errores sintácticos para el generador de analizadores sintácticos GNU Bison

Estructura If Esta sentencia, es considerada de alternativa doble (si se cumple condición entonces..., sino... / If... then... else... ).

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

Estructura de datos Tema 3: El TAD Lista lineal. Universidad de Valladolid. Departamento de informática. Campus de Segovia

Aprender a programar con Turbo Pascal. Turbo pascal

Manual de turbo pascal

ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES

Modulo 1 El lenguaje Java

10. Algoritmos de ordenación

Una Solución (*) del Problema F Where Are My Genes

Ingeniería de Software Avanzada

Trabajo Práctico N 9 Recursividad

5. Subprogramas Fundamentos de Informática

Resolución de Problemas y Algoritmos

Estructuras de Datos y de la Información Ingeniería Técnica en Informática de Gestión. Curso 2007/2008 Ejercicios del Tema 2

= RETURN =3 7-. ELSE K

Resolución de Problemas

FUNDAMENTOS DE PROGRAMACIÓN. 1º ING. INFORMÁTICA (Plan 2000) 2ª Convocatoria. 21 de junio de 2001

Algoritmos y Programación I. Clase Teórica Nº 11. Registros

ARCHIVOS de TEXTO en PASCAL

Cómo nombrar variables ( 2&

Metodologías para la Enseñanza Aprendizaje de la Programación Estructurada y Orientada a Objetos

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

Trabajo Práctico Nro. 1

LENGUAJES DE PROGRAMACIÓN

7.1 Consideraciones. Considere la búsqueda de un libro en una biblioteca. Considere la búsqueda de un nombre en el directorio telefónico.

Fundamentos de la Programación

Figura 2.4. Ejemplo :Sea P = { x, y, z } E = { (x, y) ; (x, z) ; (z, z) } e 2 e 3 > z < Figura 2.5.

Módulo 5: Lenguaje Pascal

Programación I. Ingeniería Técnica Informática. Ejercicios de los Temas 4, 5, 6 y 7

UNIDAD 3: TIPOS ABSTRACTOS DE DATOS

Se guardan en archivos con extencion c y los cabezales con extension h

Instituto de Computación - Facultad de Ingeniería - Universidad de la República

Estructuras de control

Estructura de Datos: Archivos

Módulo 6: Condicionales y otros

PROGRAMANDO EN PASCAL.

Programación Estructurada

Algorítmica y Lenguajes de Programación. Ordenación (ii) En la lección anterior se vieron dos métodos de ordenación:

Pero nos están faltando otros operadores imprescindibles:

Este método se basa en buscar el elemento menor el vector y colocarlo en la primera

Introducción a la calidad de código

Analisis de algoritmos

3.2. Programación estructurada. Principal. Modulo 1 Modulo 2 Modulo 3 Modulo 4. Modulo Modulo Modulo 3 1 Modulo 4 1 Modulo 4 2. Pág.

PASCAL y TURBO PASCAL

Vectores. 27/05/05 Programación Digital I 1

<tipo> Tipo de dato de los elementos del vector

Algoritmos glotones. mat-151

Gusta a ella es: Pascal y estructura de datos. Date/Lilly Mc Graw Hill.

Transcripción:

ALGORITMOS Y ESTRUCTURAS DE DATOS EJERCICIOS RESUELTOS CUADERNILLO DE PRACTICA SEGUNDA PARTE Página - 1

ARREGLOS a) Unidimensionales: Ejercicio Resuelto: Ingresar 20 números reales en un arreglo y luego mostrarlos ordenados en forma decreciente.- Chapín Ejer1 para I = 1 a 20 leer( NUM[I] ) para I = 1 a 19 para J = I+1 a 20 NUM[I] < NUM[J] V AUX NUM[I] NUM[I] NUM[J] NUM[J] AUX para I = 1 TO 20 Mostrar(NUM[I]) F Programa Pascal. PROGRAM EJER1 (INPUT, OUTPUT); VAR I, J, AUX : INTEGER; NUM : ARRAY [1..20] OF INTEGER; FOR I := 1 TO 20 DO WRITE ('INGRESE NRO.'); READLN (NUM[I]) FOR I := 1 TO 19 DO FOR J := I+1 TO 20 DO IF NUM[I] < NUM[J] THEN AUX := NUM[I]; NUM[I] := NUM[J]; NUM[J] := AUX FOR I := 1 TO 20 DO WRITE (NUM[I],' ') Página - 2

END. Algoritmos y Estructuras de Datos Ejercicio Resuelto: Se ingresan 30 números enteros ordenados en forma creciente y un valor N. Se desea saber si el valor N coincide con algun elemento del arreglo; si es así, indicar la posición en que fué encontrado, sino exhibir cartel aclaratorio.- Chapín Ejer2 para I = 1 a 30 leer(vec[i]) leer( N) INF 1 ; SUP 30 ; MED 15 Mientras (INF<=SUP) y (N<>VEC[MED]) N<VEC[MED] V SUP MED - 1 INF MED + 1 MED (INF + SUP) DIV 2 F V N<>VEC[MED] F Mostrar('No se encontro') Mostrar(N, MED) Programa Pascal. PROGRAM EJER2 (INPUT, OUTPUT); VAR I, INF, SUP, MED, N : INTEGER; VEC: ARRAY [1..30] OF INTEGER; FOR I := 1 TO 30 DO WRITE ('INGRESE NRO.'); READLN (VEC[I]) WRITE ('INGRESE NRO. A BUSCAR'); READLN (N); INF := 1; SUP := 30; MED := 15; WHILE (INF<=SUP) AND (N<>VEC[MED]) DO IF N<VEC[MED] THEN SUP:= MED - 1 ELSE INF:= MED + 1; MED := (INF + SUP) DIV 2 IF N <> VEC[MED] Página - 3

MED) END. Algoritmos y Estructuras de Datos THEN WRITE ('EL VALOR', N, 'NO FUE ENCONTRADO') ELSE WRITE ('EL VALOR',N,'SE ENCUENTRA EN LA POSICION', Ejercicio Resuelto: Ingresar 10 elementos enteros en un arreglo y luego 13 elementos enteros en otro arreglo, dichos conjuntos ya ingresan ordenados en forma creciente. Se desea obtener un tercer arreglo de 23 elementos ordenados en forma creciente, intercalando los elementos de los arreglos ingresados (aplicar Método MERGE).- Chapín Ejer3 para I = 1 a 10 leer(v1 [I]) para J = 1 a 13 leer( V2 [J]) I 1 ; J 1 ; 1 Mientras (I <= 10) y (J <= 13) V V1[I] < V2[J] F V V1[I] = V2[J] F V3[K] V1[I] V3[K] V1[I] V3[K] V2[J] I I+1 I I + 1 K K+1 J J + 1 V3[K] V2[J] J J+1 K K + 1 V I > 10 F para L := J a 13 para L := I a 10 V3[K] V2[L] V3[K] V1[L] K K + 1 K K + 1 para I = 1 a 23 mostrar( V3[I]) Programa Pascal. PROGRAM EJER3(INPUT, OUTPUT); VAR I, J, K, L : INTEGER; V1 : ARRAY [1..10] OF INTEGER; V2 : ARRAY [1..13] OF INTEGER; Página - 4

V3 : ARRAY [1..23] OF INTEGER; FOR I := 1 TO 10 DO WRITE ('INGRESE NRO.'); READLN (V1[I]) FOR J := 1 TO 13 DO WRITE ('INGRESE NRO.'); READLN (V2[J]) I := 1; J := 1; K := 1; WHILE ( I<= 10 ) AND ( J <= 13 ) DO IF V1[I] < V2[J] THEN V3[K] := V1[I]; I := I + 1 END ELSE IF V1[I] = V2[J] THEN V3[K] := V1[I]; I := I + 1; K := K + 1; V3[K] := V2[J]; J := J + 1 END ELSE V3[K] := V2[J]; J := J + 1 K := K + 1 IF I > 10 THEN FOR L := J TO 13 DO V3[K] := V2[L]; K := K + 1 END ELSE FOR L := I TO 10 DO V3[K] := V1[L]; K := K + 1 WRITELN (' ARREGLO ORDENADO '); FOR I := 1 TO 23 DO WRITE (V3[I], ' ') Página - 5

END. Algoritmos y Estructuras de Datos b) Multidimensionales: Ejercicio Resuelto: Se tiene las notas de 4 parciales tomados a 30 alumnos ordenados en forma creciente por NRO DE ALUMNO. El nro de alumno es un valor entero entre 1 y 12000. Se desea ingresar un NRO DE ALUMNO y buscarlo por medio de la búsqueda dicotómica dentro del arreglo. Si se encuentra, dar el nro de alumno junto con las notas de los 4 parciales; sino exhibir cartel aclaratorio.- Chapín Ejer4 Para I = 1 A 30 Para J = 1 A 5 Leer( AL [I,J]) Leer( NRO ) INF 1 ; SUP 30 ; MED 15 Mientras INF <= SUP Y NRO <> AL[MED,1] V NRO < AL [MED,1] F SUP MED - 1 INF MED + 1 MED (INF + SUP) DIV 2 V NRO <> AL [MED,1] Mostrar('ERROR EN Para I= 1 A 5 NRO ALUMNO') Mostrar(AL[MED,I]) F Programa Pascal. PROGRAM Ejer4 (INPUT, OUTPUT); VAR I, J, INF, SUP, MED, NRO : INTEGER; AL : ARRAY [1..30, 1..5] OF INTEGER; WRITE ('INGRESE NRO Y 4 NOTAS DE LOS 30 ALUMNOS'); FOR I := 1 TO 30 DO FOR J := 1 TO 5 DO READ (AL[I,J]); WRITELN Página - 6

WRITE ('INGRESE NRO. DEL ALUMNO A BUSCAR'); READLN (NRO); INF := 1; SUP := 30; MED := 15; WHILE INF <= SUP AND NRO <> AL[MED,1] DO IF NRO < AL[MED,1] THEN SUP := MED - 1 ELSE INF := MED + 1; MED := (INF + SUP) DIV 2 IF NRO <> AL [MED,1] THEN WRITE (' ERROR EN EL NRO. DE ALUMNO') ELSE WRITELN (' ALUMNO NOTA 1 NOTA 2 NOTA 3 NOTA 4'); FOR I := 1 TO 5 DO WRITE (AL[MED,I] END END. Ejercicio Resuelto: A fin de año se tiene la lista de alumnos de un curso (no más de 40 alumnos), con la información de cada uno: - Nombre (hasta 20 caracteres) - Nota parcial 1 - Nota parcial 2 reales - Nota parcial 3 Se desea saber toda la información de los 4 mejores alumnos de dicha comisión. Exhibir además, la lista de los nombres de los alumnos ordenada en forma decreciente de acuerdo a la última nota. OBSERVACION: SE utilizará el promedio de notas para determinar los 4 mejores alumnos Chapín Ejer5 Para x 1 a 40 Para y 1 a 20 Nom[x,y] Para y 1 a 5 Nota[x,y] 0 Página - 7

X 1 Y 1 Leer (car) Mientras car <> * And x<=40 Mientras y <20 and car <>. nom[x,y] car Y y+1 Leer (Car) Para z 1 a 4 Leer (nota[x,z]) Nota[x,5] nota[x,5]+nota[x,z] Nota[x,5] nota[x,5]/4 X x+1 Leer (Car) Para y 1 a x -1 Para z y+1 a x Nota[z,5]<nota[y,5] Aux Nota[z] Nota[z] nota[y] nota[y] aux aux1 nom[z] nom[z] nom[y] nom[y] aux1 para y 1 a 4 para z 1 a 20 mostrar (nom[y,z]) para m 1 a 5 mostrar (nota[y,m] Para y 1 a x -1 Para z y+1 a x Nota[z,4]<nota[y,4] Aux Nota[z] Nota[z] nota[y] nota[y] aux aux1 nom[z] nom[z] nom[y] nom[y] aux1 para y 1 a x para z 1 a 20 mostrar (nom[y,z]) Página - 8

Programa Pascal. PROGRAM Ejer5(INPUT, OUTPUT); VAR x,y, z: INTEGER; nom: ARRAY [1..40, 1..20] OF CHAR; nota : ARRAY [1..40, 1..5] OF real; aux : ARRAY [1..20] OF CHAR; aux1: ARRAY [1..5] OF real; For x:= 1 TO 40 DO For y:= 1 TO 20 DO Nom[x,y] := ; For y:=1 TO 5 DO Nota[x,y] :=0 X:= 1; Y:= 1; Read (car); While car <> * And x<=40 DO WHILE y <20 and car <>. DO nom[x,y] :=car; Y:=y+1; Read (Car) For z:=1 TO 4 DO Read (nota[x,z]); Nota[x,5] :=nota[x,5]+nota[x,z] Nota[x,5] :=nota[x,5]/4; X:= x+1; Read (Car) For y:=1 TO x 1 DO For z:= y+1 TO x DO IF Nota[z,5]<nota[y,5] THEN Página - 9

Aux:= Nota[z]; Nota[z] := nota[y]; nota[y] :=aux; aux1:=nom[z]; nom[z] :=nom[y]; nom[y] :=aux1 for y:=1 TO 4 DO for z:=1 TO 20 DO write (nom[y,z]); for m:=1 TO 5 DO write (nota[y,m] For y:= 1 TO x 1 DO For z:= y+1 TO x DO IF Nota[z,4]<nota[y,4] THEN Aux:=Nota[z]; Nota[z] := nota[y]; nota[y] :=aux; aux1:=nom[z]; nom[z] :=nom[y]; nom[y] :=aux1 for y:=1 TO x DO for z:=1 TO 20 DO write (nom[y,z]) END. Página - 10