Ejercicios Matrices Pascal

11
Escribir un programa en Pascal que determine la posición de 1. la siguiente matriz en la que se encuentra el valor máximo. 2. 3. 23 45 68 4. 34 99 12 5. 25 78 89 6. 7. PROGRAM EJER91B; 8. USES CRT; 9. 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

description

ejercicios pascal

Transcript of Ejercicios Matrices Pascal

Page 1: Ejercicios Matrices Pascal

Escribir un programa en Pascal que determine la posición de

1. la siguiente matriz en la que se encuentra el valor máximo. 2. 3. 23 45 68 4. 34 99 12 5. 25 78 89 6. 7. PROGRAM EJER91B; 8. USES CRT; 9. 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

Page 2: Ejercicios Matrices Pascal

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;

Page 3: Ejercicios Matrices Pascal

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),

Page 4: Ejercicios Matrices Pascal

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 posición 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;

Page 5: Ejercicios Matrices Pascal

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 posición de cada columna: 256. 257. 3 2 258. 4 6 259. 8 9 260. 0 0 261. 262. PROGRAM EJER96; 263. USES CRT;

Page 6: Ejercicios Matrices Pascal

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 posición 287. de la fila o columna correspondiente. Además 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];

Page 7: Ejercicios Matrices Pascal

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];

Page 8: Ejercicios Matrices Pascal

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

posición 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;

Page 9: Ejercicios Matrices Pascal

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 números 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 n£mero 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;

Page 10: Ejercicios Matrices Pascal

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,') ');

Page 11: Ejercicios Matrices Pascal

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.