Está en la página 1de 8

Guía de ejercicios #5

1. Escribir un programa en pascal que llene un arreglo unidimensional con los números
enteros comprendidos entre 20 y 30.
PROGRAM Ejercicio1;
VAR arr_num:ARRAY [20..30] OF integer;
VAR i: integer;
BEGIN

FOR i:=20 TO 30 DO
BEGIN
arr_num[i]:=i;
END;

FOR i:=20 TO 30 DO
BEGIN
writeln(arr_num[i]);
END;

readln;
END.

2. Escribir un programa en Pascal que llene un arreglo con los números impares
comprendidos entre 20 y 40.
Program Ejercicio_2;

VAR arr_list1,arr_list2: ARRAY [1..39] of INTEGER;


VAR i,n:INTEGER;

BEGIN
for i:=19 to 40 do
BEGIN
arr_list1[i]:=i;
if (i mod 2)=0 then
Begin
n:=i+1;
Writeln (n);
end;
END;
READLN;
END.

3. Escribir un programa en Pascal que llene un arreglo con los números comprendidos
entre 20 y 35 divididos por 3
PROGRAM EJER3;
USES CRT;
VAR arr_num:ARRAY [1..11] of REAL;
VAR i:INTEGER;
BEGIN
ClrScr;

FOR i:=20 TO 35 DO
arr_num[i]:=i;

FOR i:=20 TO 35 DO
WRITELN(arr_num[i] / 3:5:2);
END.

PROGRAM EJER3;
USES CRT;
VAR arr_num:ARRAY[1..11] of REAL;
VAR i,num:INTEGER;
BEGIN
ClrScr;

i:=1;
num:=025;

FOR i:=1 TO 10 DO
BEGIN
arr_num[i]:=num/3;
num:=num+1;
END;

i:=1;

WHILE i <= 10 DO
BEGIN
WRITE('Posicion ',i:2, ': '); WRITELN(arr_num[i]:5);
i:=i+1;
END;
END.

4. Escribir un programa en es pascal que llene un arreglo con los números múltiplos de 3.
El límite de los números debe ser dado por el usuario.

PROGRAM Ejercicio_4;
VAR arr_list1,arr_list2:ARRAY [1..20] of INTEGER;
VAR i:INTEGER;
BEGIN
FOR i:=1 TO 15 DO
BEGIN
arr_list1[i]:=i;
arr_list2[i]:=(arr_list1[i])*3;
END;
FOR i:=1 TO 15 DO
WRITELN (arr_list2[i]);
readln;
END.

5. Escribir un programa en pascal que multiplique por cuatro los elementos de la siguiente
matriz:

6 1 3
7 5 4

PROGRAM EJER5;
USES CRT;
CONST arr_num:ARRAY[1..2,1..3] of INTEGER=( (6,1,3),(7,5,4) );
VAR i,j:INTEGER;
BEGIN
ClrScr;
FOR i:=1 TO 2 DO
FOR j:=1 TO 3 DO
arr_num[i,j]:=arr_num[i,j]*4;
FOR i:=1 TO 2 DO
BEGIN
FOR j:=1 TO 3 DO
WRITE(arr_num[i,j]:3);
WRITELN (' ');
END;
END.

6. Escribir un programa en pascal que sume los datos de cada una de las filas de la
siguiente matriz.
11 3 4 1
17 1 5 6
20 30 40 1

PROGRAM EJER6;
USES CRT;
CONST arr_num:ARRAY [1..2,1..6] of INTEGER=( (11,3,4,1),(17,1,5,6),(20,30,40,1 );
VAR i,j,suma1, suma2,suma3:INTEGER;
BEGIN
ClrScr;
FOR i:=1 TO 3 DO
BEGIN
FOR j:=1 TO 4 DO
BEGIN
IF i=1 THEN suma1:= suma1 + arr_num[1,j];
IF i=2 THEN suma2:= suma2 + arr_num[2,j];
IF i=3 THEN suma3:= suma3 + arr_num[3,j];

END;
END;
WRITELN ('La suma de la fila 1 es: ',suma1);
WRITELN ('La suma de la fila 2 es: ',suma2);
WRITELN ('La suma de la fila 3 es: ',suma3);

END.

PROGRAM EJER6;
USES CRT;
CONST arr_num:ARRAY[1..3,1..4] of INTEGER==( (11,3,4,1),(17,1,5,6),(20,30,40,1 );

VAR suma_fila,i,j:INTEGER;
BEGIN
ClrScr;
FOR i:=1 TO 3 DO
BEGIN
suma_fila:=0;
FOR j:=1 TO 4 DO
suma_fila:=suma_fila+arr_num[i,j];
arr_num[i,j]:=suma_fila;
END;
FOR i:=1 TO 3 DO
BEGIN
FOR j:=1 TO 4 DO
WRITE(arr_num[i,j]:3);
WRITELN(' ');
END;
END.

7. Identifique el número que se encuentra en la posición 2,3 de la matriz anterior y


multiplíquelo por cada uno de los números que se encuentran en la matriz.

PROGRAM EJER7;
USES CRT;
CONST arr_num:ARRAY [1..2,1..6] of INTEGER=( (11,3,4,1),(17,1,5,6),(20,30,40,1 );
VAR i,j,suma1, suma2,suma3:INTEGER;
BEGIN
ClrScr;
FOR i:=1 TO 3 DO
BEGIN
FOR j:=1 TO 4 DO
BEGIN
IF i=1 THEN suma1:= suma1 + arr_num[1,j];
IF i=2 THEN suma2:= suma2 + arr_num[2,j];
IF i=3 THEN suma3:= suma3 + arr_num[3,j];

END;
END;
WRITELN ('La suma de la fila 1 es: ',suma1);
WRITELN ('La suma de la fila 2 es: ',suma2);
WRITELN ('La suma de la fila 3 es: ',suma3);

END.

PROGRAM EJER6;
USES CRT;
CONST arr_num:ARRAY[1..3,1..4] of INTEGER==( (11,3,4,1),(17,1,5,6),(20,30,40,1 );

VAR suma_fila,i,j:INTEGER;
BEGIN
ClrScr;
FOR i:=1 TO 3 DO
BEGIN
suma_fila:=0;
FOR j:=1 TO 4 DO
suma_fila:=suma_fila+arr_num[i,j]*5;
arr_num[i,j]:=suma_fila;
END;
FOR i:=1 TO 3 DO
BEGIN
FOR j:=1 TO 4 DO
WRITE(arr_num[i,j]:3);
WRITELN(' ');
END;
END.

8. Investigar el método de ordenación por burbuja y ordenación por inserción y hacer lo


siguiente:
a. Escribir el programa para cada uno de estos métodos
b. Escribir un breve análisis de cada método
c. Explicar diferencias entre cada uno de estos métodos.

En computación y en matemáticas un algoritmo de ordenamiento es un algoritmo que


pone elementos de una lista o un vector en una secuencia dada por una relación de
orden, es decir, el resultado de salida ha de ser una permutación.
La Ordenación de burbuja (Bubble Sort en inglés) es un sencillo algoritmo de
ordenamiento. Funciona revisando cada elemento de la lista que va a ser ordenada con el
siguiente, intercambiándolos de posición si están en el orden equivocado. Es necesario
revisar varias veces toda la lista hasta que no se necesiten más intercambios, lo cual
significa que la lista está ordenada.
Obtiene su nombre de la forma con la que suben por la lista los elementos durante los
intercambios, como si fueran pequeñas "burbujas". También es conocido como el método
del intercambio directo. Dado que solo usa comparaciones para operar elementos, se lo
considera un algoritmo de comparación, siendo uno de los más sencillos de implementar.
El algoritmo consiste en comparaciones sucesivas de dos términos consecutivos
ascendiendo de abajo arriba en cada iteración, como la ascensión de las burbujas de aire
en el agua, de ahí el nombre del procedimiento. En la primera iteración el recorrido ha
sido completo, en el segundo se ha dejado él último término, al tener ya el mayor de los
valores, en los sucesivos sé ira dejando de realizar las últimas comparaciones.
La Ordenación por inserción (Insertion sort en inglés) es una manera muy natural de
ordenar para un ser humano, y puede usarse fácilmente para ordenar un mazo de cartas
numeradas en forma arbitraria. Además, se puede decir que permite el ordenamiento de
una lista. Su funcionamiento consiste en el recorrido por la lista seleccionando en cada
iteración un valor como clave y compararlo con el resto insertándolo en el lugar
correspondiente
La idea de este algoritmo de ordenación consiste en ir insertando un elemento de la lista
o un arreglo en la parte ordenada de la misma, asumiendo que el primer elemento es la
parte ordenada, el algoritmo ira comparando un elemento de la parte desordenada de la
lista con los elementos de la parte ordenada, insertando el elemento en la posición
correcta dentro de la parte ordenada, y así sucesivamente hasta obtener la lista
ordenada.

a. Escribir el programa para cada uno de estos métodos


ORDENACIÓN POR BURBUJA ORDENACIÓN POR
INSERCIÓN

Procedure Ordenar (var Vector : type tab = array[1..20] of


tVector; N : tRango); integer;
Var I,J : tRango; procedure Insertion_sort(var
Aux : tBase; {Elemento Auxiliar Vector : tab);
del mismo tipo que el vector} var i, j, actual : integer;
begin
Begin for i:=2 to 20 do
For I := 1 to N - 1 Do {Ciclo de N-1 begin
Iteraciones} actual := Vector[i]; j := i - 1;
For J := 1 to N-I Do {Burbujeo {Desplazamiento de los
del Mayor Valor} elementos de la matriz }
If Vector[J] > Vector[J+1] Then while (j > 0) and (Vector[j]
Begin {Intercambio} > actual) do
Aux:= Vector[J]; begin
Vector[J]:= Vector[J+1]; Vector[j + 1] :=
Vector[J+1]:= Aux; Vector[j];
End; j := j - 1;
End; end;
{insertar el elemento en su
lugar }
Vector[j + 1] := actual;
end;
end

Escribir un breve análisis de cada método


El método de ordenamiento por inserción se orienta a ordenar listados,
comparando los datos y moviéndolos de menor – mayor, en el ejemplo anterior se
define en un rango 19 valores en la que se le pide que ordene los valores de la
matriz desplazándolos en cada una de las pasadas hasta que este quede
completamente ordenado.
El ordenamiento por burbuja irá comparando uno a uno los valores e intercambiando su
posición, esto se repetirá las veces necesarias.
Diferencias entre cada uno de estos métodos

Método de Ordenación por Burbuja: Método de Ordenación por


Inserción:

 Consiste en hacer múltiples pasadas a lo  Consiste en ir insertando un elemento


largo de una lista. Compara los ítems de la lista o un arreglo en la parte
adyacentes e intercambia los que no están ordenada de la misma, asumiendo que
en orden. Cada pasada a lo largo de la lista el primer elemento es la parte ordenada,
ubica el siguiente valor más grande en su el algoritmo ira comparando un
lugar apropiado. En esencia, cada ítem elemento de la parte desordenada de la
“burbujea” hasta el lugar al que pertenece. lista con los elementos de la parte
ordenada, insertando el elemento en la
posición correcta dentro de la parte
ordenada, y así sucesivamente hasta
 Desarrolla pasadas en la lista de datos hasta obtener la lista ordenada.
que este pertenezca en la ubicación que sea
apropiada.  Compara la posición de los datos de
forma que este quede ordenado, luego
toma el siguiente valor y lo dejar
ordenado en la posición correcta.

 Este no requiere memoria adicional para el  Este si requiere memoria adicional para
almacenamiento de la información. el almacenamiento de la información.

También podría gustarte