Professional Documents
Culture Documents
1.
2.
3.
4.
5.
6.
7.
8.
9.
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.