fisica00

Páginas: 7 (1736 palabras) Publicado: 12 de julio de 2013
EJERCICIOS RESUELTOS DE ARREGLOS Y MATRICES
1.- 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 EJER87;
USES CRT;
VAR arr_num:ARRAY [1..5] of REAL;
VAR i, num:INTEGER;
VAR media:REAL;
BEGIN
ClrScr;
WRITELN ('Escriba 5 numeros para hacer su media aritmetica: ');
FOR i := 1 TO 5 DO
BEGINREADLN(num);
arr_num[i]:=num;
END;
FOR i:=1 TO 5 DO
media:= media + arr_num[i];
media:= media / i;
WRITELN ('La media aritmetica es: ',media:5:2);
END.

2.- Escribir un programa en Pascal que tras asignar los números, 23, 45, 68, 99, 10, 15 y
4 a un array, determine la posición del array en la que se encuentra el máximo valor.
PROGRAM EJER88;
USES CRT;
CONST arr_num:ARRAY[1..7] ofINTEGER=(23,45,68,99,10,15,4);
VAR i,posi_max,val_max:INTEGER;
BEGIN
ClrScr;
FOR i:=1 TO 7 DO
BEGIN
IF arr_num[i] > val_max THEN
BEGIN
val_max:=arr_num[i];
posi_max:=i;
END;
END;
WRITE('VALOR MAXIMO: ', val_max, ' POSICION: ', posi_max);
END.

Ing. Nahiby Castillo

1

3.- Escribir un programa en Pascal que tras asignar los números, -2, 5, 8, -9, 10, 15 y .4
a un array calcule,independientemente, la suma de los elementos positivos y
negativos.
PROGRAM EJER89;
USES CRT;
CONST arr_num:ARRAY [1..7] of INTEGER=(-2,5,8,-9,10,15,-4);
VAR i:INTEGER;
VAR suma_p, suma_n:INTEGER;
BEGIN
ClrScr;
FOR i:=1 TO 7 DO
BEGIN
IF arr_num[i] >= 0 THEN
suma_p:= suma_p + arr_num[i]
ELSE IF arr_num[i] < 0 THEN
suma_n:= suma_n + arr_num[i];
END;
WRITELN ('La suma de los numerospositivos es: ',suma_p);
WRITELN ('La suma de los numeros negativos es: ',suma_n);
END.

4.- Escribir un programa en Pascal que tras asignar los números, 23, 45, 68, 99, 10, 15 y
4 a un array, determine las posiciones del array en las que se encuentran el máximo y
el mínimo valor.
PROGRAM EJER90;
USES CRT;
CONST arr_num:ARRAY[1..7] of INTEGER=(23,45,68,99,10,15,4);
VARi,val_max,val_min,pos_max,pos_min:INTEGER;
BEGIN
ClrScr;
val_min:=arr_num[1];
val_max:=arr_num[1];
FOR i:=1 TO 7 DO
BEGIN
IF arr_num[i] > val_max THEN
BEGIN
val_max:=arr_num[i];
pos_max:=i;
END;
IF arr_num[i] < val_min THEN
BEGIN
val_min:=arr_num[i];
pos_min:=i;
END;
END;
WRITELN('VALOR MAXIMO: ', val_max:3, ' POSICIàN: ', pos_max:3);
WRITELN('VALOR MINIMO: ', val_min:3, ' POSICIàN: ',pos_min:3);
END.

Ing. Nahiby Castillo

2

5.- 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 EJER91B;
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;
BEGIN
ClrScr;val_max:=arr_num[1,1];
67
FOR i:=1 TO 3 DO
BEGIN
FOR j:=1 TO 3 DO
BEGIN
IF arr_num[i,j] > val_max THEN
BEGIN
val_max:=arr_num[i,j];
pos_max_i:=i;
pos_max_j:=j;
END;
END;
END;
WRITELN( 'VALOR MAXIMO: ', val_max:3,
' POSICION: ', pos_max_i:3,pos_max_i:3);
END.

6.- Escribir un programa en Pascal que multiplique por dos los elementos de la
siguiente matriz:
4
7
8
6
9
1
5
0
3
PROGRAMEJER93;
USES CRT;
CONST arr_num:ARRAY[1..3,1..3] of INTEGER=( (4,7,8),
(6,9,1),
(5,0,3) );
VAR i,j:INTEGER;
BEGIN
ClrScr;
FOR i:=1 TO 3 DO
FOR j:=1 TO 3 DO
arr_num[i,j]:=arr_num[i,j]*2;
FOR i:=1 TO 3 DO
BEGIN
FOR j:=1 TO 3 DO
WRITE(arr_num[i,j]:3);
WRITELN (' ');
END;
END.

Ing. Nahiby Castillo

3

7.- Escribir un programa en Pascal que sume, independientemente, los elementospositivos y negativos de la siguiente matriz:
-12
23
32
45
-56
-10
25
78
89
PROGRAM EJER92;
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;
BEGIN
suma_pos:=0;
suma_neg:=0;
ClrScr;
FOR i:=1 TO 3 DO
BEGIN
FOR j:=1 TO 3 DO
BEGIN
IF arr_num[i,j] < 0 THEN
suma_neg:=suma_neg+arr_num[i,j]
ELSE...
Leer documento completo

Regístrate para leer el documento completo.

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS