Advertisement
Guest User

Untitled

a guest
Apr 30th, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.03 KB | None | 0 0
  1. Napište programový modul implementující abstraktní datový typ čtvercová matice. Data jsou tvořena obecnými ukazateli. Operace: inicializace (uživatel zadá požadovaný rozměr matice, se kterým chce dále pracovat); vložení hodnoty na zvolenou pozici v matici; součet matic; výstup matice do textového souboru. Pro součet prvků matice a pro způsob zobrazení prvku matice připravte podprogramy, jejichž těla budou definována uživatelem vně modulu.
  2.  
  3. unit ctvercovamatice;
  4.  
  5. interface
  6. const M = 100;
  7. N = 100;
  8. type
  9. TypData = pointer;
  10. TypMatice = array[1..N, 1..M] of TypData;
  11.  
  12. TypScitani = function(matice1, matice2 : pointer): pointer;
  13. TypZobrazeni = procedure(matice: TypMatice);
  14.  
  15. var matice : TypMatice;
  16. f : text;
  17.  
  18. //M,N : word;
  19. funkceSecti : TypScitani;
  20. proceduraZobraz : TypZobrazeni;
  21.  
  22.  
  23. procedure Init(var matice : TypMatice; radek, sloupec : byte);
  24. procedure Vloz(var matice : TypMatice; radek, sloupec : byte; Hodnota : TypData);
  25. function Soucet(matice1, matice2 : TypMatice; jak: TypScitani) : TypMatice;
  26. procedure Zobraz(matice : TypMatice; zobrazJak: TypZobrazeni; var f:text);
  27.  
  28. implementation
  29.  
  30. procedure Init(var matice : TypMatice; radek, sloupec : byte);
  31. var i,j : byte;
  32. begin
  33.  
  34. for i:=1 to radek do begin
  35. for j:=1 to sloupec do begin
  36. matice[i,j] := nil;
  37. end;
  38. end;
  39. end;
  40.  
  41. procedure Vloz(var matice : TypMatice; radek, sloupec : byte; Hodnota : TypData);
  42. begin
  43. matice[radek,sloupec]:=Hodnota;
  44. end;
  45.  
  46. function Soucet(matice1, matice2 : TypMatice; jak: TypScitani) : TypMatice;
  47. var i,j : byte;
  48. begin
  49. for i := 1 to N do begin
  50. for j:= 1 to M do begin
  51. Soucet := jak(matice1[i,j], matice2[i,j]);
  52. end;
  53. end;
  54. end;
  55.  
  56. procedure Zobraz(matice : TypMatice; zobrazJak: TypZobrazeni; var f:text);
  57. var i,j : byte;
  58. begin
  59. append(f);
  60. for i := 1 to N do begin
  61. for j := 1 to M do begin
  62. zobrazJak(matice[i,j]); //zobrazJak je parametr, ktery prebira datovy typ TypZobrazeni, ktery prebira uziva
  63. end;
  64. end;
  65. close(f);
  66. end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement