You are on page 1of 11

Escribir un programa en Pascal que determine la posicin de

1.
2.
3.
4.
5.
6.
7.
8.
9.

la siguiente matriz en la que se encuentra el valor mximo.


23
34
25

45
99
78

68
12
89

PROGRAM EJER91B;
USES CRT;
CONST arr_num:ARRAY[1..3,1..3] of INTEGER=(
(23,45,68),
10.
(34,99,12),
11.
(25,78,89) );
12.
VAR i,j,val_max,pos_max_i,pos_max_j:INTEGER;
13.
BEGIN
14.
ClrScr;
15.
16.
val_max:=arr_num[1,1];
17.
18.
FOR i:=1 TO 3 DO
19.
BEGIN
20.
FOR j:=1 TO 3 DO
21.
BEGIN
22.
IF arr_num[i,j] > val_max THEN
23.
BEGIN
24.
val_max:=arr_num[i,j];
25.
pos_max_i:=i;
26.
pos_max_j:=j;
27.
END;
28.
END;
29.
END;
30.
31.
WRITELN(
'VALOR MAXIMO: ', val_max:3,
32.
' POSICION: ',
pos_max_i:3,pos_max_i:3);
33.
END.
34.
35.
36.
37.
Escribir un programa en Pascal que sume,
independientemente, los
38.
elementos positivos y negativos de la siguiente matriz:
39.
40.
-12
23
32
41.
45
-56
-10
42.
25
78
89
43.
44.
PROGRAM EJER92;
45.
USES CRT;
46.
CONST arr_num:ARRAY [1..3,1..3] of INTEGER=( (12,23,-32),
47.
(45,-56,-10),
48.
(25,78,89) );
49.
VAR i,j,suma_p,suma_i:INTEGER;
50.
51.
BEGIN

52.
ClrScr;
53.
54.
FOR i:=1 TO 3 DO
55.
BEGIN
56.
FOR j:= 1 TO 3 DO
57.
BEGIN
58.
IF arr_num[i,j] >=0 THEN
59.
suma_p:= suma_p + arr_num[i,j]
60.
ELSE
61.
suma_i:= suma_i + arr_num[i,j];
62.
END;
63.
END;
64.
65.
WRITELN ('La suma de los numeros pares es:
',suma_p);
66.
WRITELN ('La suma de los numeros impares es:
',suma_i);
67.
68.
END.
69.
70.
PROGRAM EJER92;
71.
USES CRT;
72.
CONST arr_num:ARRAY[1..3,1..3] of INTEGER=( (12,23,-32),
73.
(45,-56,-10),
74.
(25,78,89));
75.
VAR i,j,suma_pos,suma_neg:INTEGER;
76.
BEGIN
77.
suma_pos:=0;
78.
suma_neg:=0;
79.
ClrScr;
80.
81.
FOR i:=1 TO 3 DO
82.
BEGIN
83.
FOR j:=1 TO 3 DO
84.
BEGIN
85.
IF arr_num[i,j] < 0 THEN
86.
suma_neg:=suma_neg+arr_num[i,j]
87.
ELSE
88.
suma_pos:=suma_pos+arr_num[i,j]
89.
END;
90.
END;
91.
92.
WRITELN('SUMA POSITIVOS: ', suma_pos:5);
93.
WRITELN('SUMA NEGATIVOS: ', suma_neg:5);
94.
END.
95.
96.
97.
Escribir un programa en Pascal que multiplique por dos
los
98.
elementos de la siguiente matriz:
99.
100.
4
7
8
101.
6
9
1
102.
5
0
3
103.
104.
PROGRAM EJER93;
105.
USES CRT;

106.
CONST arr_num:ARRAY [1..3,1..3] of INTEGER=(
(4,7,8),
107.
(6,9,1),
108.
(5,0,3));
109.
VAR mult,i,j:INTEGER;
110.
BEGIN
111.
ClrScr;
112.
113.
FOR i:= 1 TO 3 DO
114.
BEGIN
115.
FOR j:=1 TO 3 DO
116.
BEGIN
117.
mult:=arr_num[i,j] * 2;
118.
WRITELN('Elemento (',i,',',j,')
multiplicado por 2:
119.
',mult:3);
120.
END;
121.
END;
122.
END.
123.
124.
PROGRAM EJER93;
125.
USES CRT;
126.
CONST arr_num:ARRAY[1..3,1..3] of INTEGER=(
(4,7,8),
127.
(6,9,1),
128.
(5,0,3));
129.
VAR i,j:INTEGER;
130.
BEGIN
131.
ClrScr;
132.
133.
FOR i:=1 TO 3 DO
134.
FOR j:=1 TO 3 DO
135.
arr_num[i,j]:=arr_num[i,j]*2;
136.
137.
FOR i:=1 TO 3 DO
138.
BEGIN
139.
FOR j:=1 TO 3 DO
140.
WRITE(arr_num[i,j]:3);
141.
WRITELN (' ');
142.
END;
143.
END.
144.
145.
146.
Escribir un programa en Pascal que almacene en la
segunda fila
147.
de la siguiente matriz los cuadrados de los datos de la
primera fila:
148.
149.
3
6
7
8
9
150.
0
0
0
0
0
151.
152.
153.
PROGRAM EJER94;
154.
USES CRT;
155.
CONST arr_num:ARRAY [1..2,1..5] of INTEGER=(
(3,6,7,8,9),

156.
(0,0,0,0,0));
157.
VAR i,j,cuad:INTEGER;
158.
BEGIN
159.
ClrScr;
160.
161.
i:=1;
162.
163.
FOR j:=1 TO 5 DO
164.
BEGIN
165.
FOR i:=1 TO 1 DO
166.
BEGIN
167.
cuad:=sqr(arr_num[i,j]);
168.
arr_num[2,j]:= cuad;
169.
WRITELN (arr_num[2,j]);
170.
END;
171.
END;
172.
END.
173.
174.
175.
PROGRAM EJER94;
176.
USES CRT;
177.
CONST arr_num:ARRAY[1..2,1..5] of INTEGER=(
(3,6,7,8,9),
178.
(0,0,0,0,0));
179.
VAR i,j:INTEGER;
180.
BEGIN
181.
ClrScr;
182.
183.
FOR i:=1 TO 1 DO
184.
FOR j:=1 TO 5 DO
185.
arr_num[i+1,j]:=sqr(arr_num[i,j]);
186.
187.
FOR i:=1 TO 2 DO
188.
BEGIN
189.
FOR j:=1 TO 5 DO
190.
WRITE(arr_num[i,j]:3);
191.
WRITELN(' ');
192.
END;
193.
END.
194.
195.
196.
197.
Escribir un programa en Pascal que sume los datos de
cada una
198.
de las filas de la siguiente matriz; el resultado se
almacenar
199.
en la ltima posicin de cada fila:
200.
201.
3
6
7
8
9
0
202.
1
4
3
2
7
0
203.
204.
205.
PROGRAM EJER95;
206.
USES CRT;
207.
CONST arr_num:ARRAY [1..2,1..6] of INTEGER=(
(3,6,9,7,8,0),
208.
(1,4,3,2,7,0));
209.
VAR i,j,suma1, suma2:INTEGER;

210.
BEGIN
211.
ClrScr;
212.
213.
FOR i:=1 TO 2 DO
214.
BEGIN
215.
FOR j:=1 TO 6 DO
216.
BEGIN
217.
IF i=1 THEN suma1:= suma1 +
arr_num[1,j];
218.
IF i=2 THEN suma2:= suma2 +
arr_num[2,j];
219.
END;
220.
END;
221.
222.
WRITELN ('La suma de la fila 1 es: ',suma1);
223.
WRITELN ('La suma de la fila 2 es: ',suma2);
224.
END.
225.
226.
227.
PROGRAM EJER95;
228.
USES CRT;
229.
CONST arr_num:ARRAY[1..2,1..6] of INTEGER=(
(3,6,9,7,8,0),
230.
(1,4,3,2,7,0));
231.
VAR suma_fila,i,j:INTEGER;
232.
BEGIN
233.
ClrScr;
234.
235.
FOR i:=1 TO 2 DO
236.
BEGIN
237.
suma_fila:=0;
238.
FOR j:=1 TO 6 DO
239.
suma_fila:=suma_fila+arr_num[i,j];
240.
arr_num[i,j]:=suma_fila;
241.
END;
242.
243.
FOR i:=1 TO 2 DO
244.
BEGIN
245.
FOR j:=1 TO 6 DO
246.
WRITE(arr_num[i,j]:3);
247.
WRITELN(' ');
248.
END;
249.
END.
250.
251.
252.
253.
Escribir un programa en Pascal que sume los datos de
cada una
254.
de las columnas de la siguiente matriz; el resultado se
almacenar
255.
en la ltima posicin de cada columna:
256.
257.
3
2
258.
4
6
259.
8
9
260.
0
0
261.
262.
PROGRAM EJER96;
263.
USES CRT;

264.
CONST arr_num:ARRAY [1..4,1..2] of INTEGER=(
(3,2),(4,6),
265.
(8,9),(0,0));
266.
VAR i,j,suma1,suma2:INTEGER;
267.
BEGIN
268.
ClrScr;
269.
270.
FOR j:=1 TO 2 DO
271.
BEGIN
272.
FOR i:=1 TO 4 DO
273.
BEGIN
274.
IF j=1 THEN suma1:= suma1 +
arr_num[i,j];
275.
IF j=2 THEN suma2:= suma2 +
arr_num[i,j];
276.
END;
277.
END;
278.
279.
WRITELN ('El resultado de la suma 1 es: ',suma1);
280.
WRITELN ('El resultado de la suma 2 es: ',suma2);
281.
END.
282.
283.
284.
Escribir un programa en Pascal que sume los elementos
de cada
285.
una de las filas y de las columnas de la siguiente
matriz; el resultado
286.
de cada suma se almacenar en la ltima posicin
287.
de la fila o columna correspondiente. Adems la suma
total
288.
de todos los elementos de la matriz se almacenar en el
289.
elemento de la esquina inferior derecha de la matriz:
290.
291.
1
7
0
292.
5
6
0
293.
6
4
0
294.
7
3
0
295.
0
0
0
296.
297.
298.
PROGRAM EJER97;
299.
USES CRT;
300.
CONST arr_num:ARRAY [1..5,1..3] of INTEGER=(
(1,7,0),(5,6,0),
301.
(6,4,0),(7,3,0),
302.
(0,0,0) );
303.
VAR i,j,total:INTEGER;
304.
VAR suma_h,suma_v:INTEGER; {Es la suma
horizontal y vertical}
305.
306.
BEGIN
307.
ClrScr;
308.
309.
FOR i:=1 TO 5 DO
310.
BEGIN
311.
FOR j:=1 TO 3 DO
312.
BEGIN
313.
suma_h:= suma_h + arr_num[i,j];

314.
END;
315.
316.
WRITELN ('La suma de la fila ',i,' es:
',suma_h:3);
317.
total:=total + suma_h;
318.
suma_h:=0;
319.
END; WRITELN ('');
320.
321.
FOR j:=1 TO 2 DO
322.
BEGIN
323.
FOR i:=1 TO 5 DO
324.
BEGIN
325.
suma_v:= suma_v + arr_num[i,j];
326.
END;
327.
328.
WRITELN ('La suma de la columna ',j,' es:
',suma_v:3);
329.
suma_v:=0;
330.
total:=total + suma_v;
331.
END; WRITELN ('');
332.
333.
WRITELN ('La suma total es: ',total);
334.
335.
END.
336.
337.
338.
PROGRAM EJER97;
339.
USES CRT;
340.
CONST arr_num:ARRAY[1..5,1..3] of INTEGER=(
(1,7,0),
341.
(5,6,0),
342.
(6,4,0),
343.
(7,3,0),
344.
(0,0,0) );
345.
VAR suma_fila,suma_colu,suma_tota,i,j:INTEGER;
346.
BEGIN
347.
348.
ClrScr;
349.
350.
FOR i:=1 TO 4 DO
351.
BEGIN
352.
suma_fila:=0;
353.
FOR j:=1 TO 2 DO
354.
BEGIN
355.
suma_fila:=suma_fila+arr_num[i,j];
356.
suma_tota:=suma_tota+arr_num[i,j];
357.
END;
358.
arr_num[i,j+1]:=suma_fila;
359.
END;
360.
arr_num[i+1,j+1]:=suma_tota;
361.
362.
FOR j:=1 TO 2 DO
363.
BEGIN
364.
suma_colu:=0;
365.
FOR i:=1 TO 4 DO
366.
BEGIN
367.
suma_colu:=suma_colu+arr_num[i,j];

368.
END;
369.
arr_num[i+1,j]:=suma_colu;
370.
END;
371.
372.
FOR i:=1 TO 5 DO
373.
BEGIN
374.
FOR j:=1 TO 3 DO
375.
WRITE(arr_num[i,j]:3);
376.
WRITELN(' ');
377.
END;
378.
END.
379.
380.
381.
382.
383.
Escribir un programa en Pascal que divida todos los
elementos de
384.
una matriz M (3,4) por el elemento situado en la
posicin 2,2.
385.
386.
387.
PROGRAM EJER98;
388.
USES CRT;
389.
CONST arr_num:ARRAY[1..3,1..4] of INTEGER=(
(23,45,-68,99),
390.
(45,65,-76,34),
391.
(56,-75,34,98));
392.
VAR i,j:INTEGER;
393.
VAR divi:REAL;
394.
BEGIN
395.
ClrScr;
396.
397.
FOR i:=1 TO 3 DO
398.
BEGIN
399.
FOR j:=1 TO 4 DO
400.
BEGIN
401.
divi:= arr_num[i,j] / arr_num[2,2];
402.
WRITE
('Dividido ',arr_num[i,j]:3,'
por el numero ');
403.
WRITELN (arr_num[2,2]:3,': ',divi:5:2);
404.
END;
405.
END;
406.
END.
407.
408.
409.
PROGRAM EJER98;
410.
USES CRT;
411.
CONST matriz_m:ARRAY[1..3,1..4] OF REAL =
((2,3,4,12),
412.
(7,9,8,11),
413.
(5,6,1,19));
414.
VAR i,j:INTEGER;
415.
VAR ele_22:REAL;
416.
BEGIN
417.
ele_22:=matriz_m[2,2];
418.
419.
ClrScr;

420.
421.
FOR i:=1 TO 3 DO
422.
BEGIN
423.
FOR j:=1 TO 4 DO
424.
WRITE(matriz_m[i,j]:5:2,' ');
425.
WRITELN(' ');
426.
END;
427.
428.
FOR i:=1 TO 3 DO
429.
FOR j:=1 TO 4 DO
430.
matriz_m[i,j]:=matriz_m[i,j]/ele_22;
431.
432.
WRITELN(' ');
433.
434.
FOR i:=1 TO 3 DO
435.
BEGIN
436.
FOR j:=1 TO 4 DO
437.
WRITE(matriz_m[i,j]:5:2,' ');
438.
WRITELN(' ');
439.
END;
440.
END.
441.
442.
443.
444.
445.
Escribir un programa en Pascal que almacene en un array
los nmeros
446.
primos comprendidos entre 1 y 100.
447.
448.
449.
PROGRAM EJER99;
450.
USES CRT;
451.
VAR arr_num:ARRAY [1..100] of INTEGER;
452.
VAR flag:INTEGER;
453.
VAR i,num:INTEGER;
454.
BEGIN
455.
ClrScr;
456.
457.
num:=1;
458.
459.
WHILE num < 100 DO
460.
BEGIN
461.
FOR i:=2 TO (num-1) DO
462.
BEGIN
463.
IF (num mod i)=0 THEN
464.
flag:=1;
465.
END;
466.
467.
IF flag<>1 THEN
468.
WRITELN (num:3,' es un nmero primo.');
469.
470.
num:= num + 1;
471.
flag:=0;
472.
END;
473.
END.
474.
475.
476.
PROGRAM EJER99;
477.
USES CRT;
478.
VAR arra_prim:ARRAY[1..100] OF INTEGER;
479.
VAR i,divisor:INTEGER;

480.
VAR flag,num:INTEGER;
481.
BEGIN
482.
i:=1;
483.
484.
FOR num:=2 TO 100 DO
485.
BEGIN
486.
flag:=1;
487.
488.
FOR divisor:=2 TO num-1 DO
489.
BEGIN
490.
IF num MOD divisor = 0 THEN
491.
flag:=0;
492.
END;
493.
494.
IF flag=1 THEN
495.
BEGIN
496.
arra_prim[i]:=num;
497.
i:=i+1;
498.
END;
499.
END;
500.
arra_prim[i]:=0;
501.
502.
i:=1;
503.
WHILE(arra_prim[i]<>0) DO
504.
BEGIN
505.
WRITE(arra_prim[i],' ');
506.
i:=i+1;
507.
END;
508.
END.
509.
510.
511.
512.
Escribir un programa en Pascal que genera la matriz
transpuesta
513.
de una matriz de 3 filas y 4 columnas. La matriz
transpuesta de una
514.
matriz M(m,n) se obtiene intercambiando filas por
columnas y viceversa;
515.
el resultado se tiene que almacenar en una nueva matriz
M_TRANS(n,m).
516.
517.
518.
PROGRAM EJERC100;
519.
USES CRT;
520.
CONST matriz:ARRAY [1..3,1..4] of INTEGER=(
(12,67,-23,-45),
521.
(45,-34,23,-12),
522.
(34,22,88,-10));
523.
VAR m_tra:ARRAY [1..4,1..3] of INTEGER;
524.
VAR f,c:INTEGER;
525.
BEGIN
526.
ClrScr;
527.
528.
FOR c:=1 TO 3 DO
529.
BEGIN
530.
FOR f:=1 TO 4 DO
531.
BEGIN
532.
m_tra[f,c]:=matriz[c,f];
533.
WRITE ('(',f,',',c,') ');

534.
WRITELN (m_tra[f,c]:3);
535.
END;
536.
END;
537.
END.
538.
539.
540.
PROGRAM EJERC100;
541.
USES CRT;
542.
CONST m_orig:ARRAY[1..3,1..4] OF REAL =
((2,3,4,12),
543.
(7,9,8,11),
544.
(5,6,1,19));
545.
VAR m_tran:ARRAY[1..4,1..3] OF REAL;
546.
VAR i,j:INTEGER;
547.
BEGIN
548.
ClrScr;
549.
550.
FOR i:=1 TO 3 DO
551.
FOR j:=1 TO 4 DO
552.
m_tran[j,i]:=m_orig[i,j];
553.
554.
FOR i:=1 TO 3 DO
555.
BEGIN
556.
FOR j:=1 TO 4 DO
557.
WRITE(m_orig[i,j]:5:2,' ');
558.
WRITELN(' ');
559.
END;
560.
561.
WRITELN(' ');
562.
563.
FOR i:=1 TO 4 DO
564.
BEGIN
565.
FOR j:=1 TO 3 DO
566.
WRITE(m_tran[i,j]:5:2,' ');
567.
WRITELN(' ');
568.
END;
569.
END.

You might also like