TinaT Ierakstīts Jūnijs 18, 2013 Share Ierakstīts Jūnijs 18, 2013 Vai mans risinājums ir veikts ar 2 līmeņu programmu? Un kā to saprast? Ir gatavs Pascal programmas kods: Program Lab2; uses CRT; const ElSk=20; { Elementu skaits masiva} InpFileName='Data.txt'; type MyMas=array[1..ElSk] of integer; {apkalpojama masiva tips} var ms: MyMas; {Apkalpojamais masivs} InpFile, {Ievada datu fails} OutFile {rezultatu fails} :TEXT; i, summa2 : integer; ch : char; OutfileName: string; label TESTING, ENDING; procedure BUBLE( var a: MyMas) ;forward; { norade uz deklaraciju zemak} function SUM2( a:MyMas) :integer;forward;{ iekseja PROCMAS funkcija} procedure PROCMAS( var a: MyMas; var S2: integer);forward; procedure PROCMAS( var a: MyMas; var S2: integer); var i ,j,temp: integer; begin {Sakas ProcMas izpilde } S2:=sum2(a); { Nosakam divu mazako masiva elementu summu } if (S2<10) then { Vieta, kur vajadzetu kartot augosha seciba} for i:=1 to ElSk-1 do for j:=i+1 to ElSk do if a< a[j] then begin temp:= a; a:=a[j]; a[j]:=temp; end; end; {ProcMas } procedure BUBLE( var a: MyMas); {masiva a kartosana disltosha secibaa} var i, j, temp : integer; begin for i:=1 to ElSk-1 do for j:=i+1 to ElSk do if a> a[j] then begin temp:= a; a:=a[j]; a[j]:=temp; end; end; {BUBLE} function SUM2( A:MyMas) :integer;{ iekseja PROCMAS funkcija} { nosaka divu mazako a masiva elementu summu } var i, sum : integer; begin BUBLE(a); { Kartojam masivu dilstosa seciba} sum:=0; {Summejam pirmos divus sakartota masiva elementus} for i:=1 to 2 do sum:=sum+a; SUM2:=sum; end; { SUM2 } begin Assign(InpFile, InpFileName ); { Datu ievada fails } Reset(InpFile); writeln(' Ievadiet rezultata faila vaardu:'); readln(OutFileName); assign(OutFile, OutFilename); { Rezultatu fails } rewrite(OutFile); TESTING: CLRSCR; for i:=1 to ElSk do Read(InpFile, ms); if EOF(InpFile) then goto ENDING; writeln( 'Ievaditie dati:'); writeln(Outfile); writeln(Outfile, 'Ievaditie dati:'); for i:=1 to ElSk do begin write(' "', i:2,'" ', ms:4, ' '); write(Outfile, ms:3); end; PROCMAS( ms, summa2); writeln(Outfile); writeln( 'Divu mazako masiva elementu summa ir ', summa2); writeln(Outfile, 'Divu mazako masiva elementu summa ir ', summa2); writeln('Rezultata masivs:'); writeln (Outfile, 'Rezultata masivs:'); for i:=1 to ElSk do begin write(' "', i:2,'" ', ms:4, ' '); write(Outfile, ms:3); end; writeln(' Ievadi y vai Y lai turpinatu vai ko lai beigtu'); readln(Ch); if (ch='Y') or (ch='y') then goto TESTING; ENDING: close(InpFile); close(OutFile); end. Link to comment Share on other sites More sharing options...
itanium Jūnijs 18, 2013 Share Jūnijs 18, 2013 Ja nemaldos, tad ar otro līmeni RTU pasniedzēji saprata funkciju funkcijā (procedūru procedūrā). Link to comment Share on other sites More sharing options...
Recommended Posts
Izveido kontu, vai pieraksties esošajā, lai komentētu
Jums ir jābūt šī foruma biedram, lai varētu komentēt tēmas
Izveidot jaunu kontu
Piereģistrējies un izveido jaunu kontu, tas būs viegli!
Reģistrēt jaunu kontuPierakstīties
Jums jau ir konts? Pierakstieties tajā šeit!
Pierakstīties tagad!