Advertisement
bogdanpashtet

lab1.10(sancho)

Jan 13th, 2020
202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 3.40 KB | None | 0 0
  1. program Project10;
  2.  
  3. {Задан целочисленный одномерный массив A из N элементов. Найти минимальное значение
  4. положительных элементов, расположенных после первого элемента, кратного пяти. Если нет
  5. элементов кратных 5, искать с начала массива. (Подсказка: «Сначала найти первый со
  6. значением, кратным 5, и последний положительный, а затем уже искать минимум либо
  7. вывести сообщение о причинах невозможности поиска.»)}
  8.  
  9. {$APPTYPE CONSOLE}
  10.  
  11. uses
  12.     System.SysUtils,
  13.     Windows;
  14.  
  15. const b=30;
  16. type mass = array[1..b] of integer;
  17.  
  18. procedure input {schit} (var x:mass; var n:integer; var file_in:textfile);
  19.     var
  20.         i:integer;
  21.     begin
  22.         readln(file_in,n);
  23.         for i := 1 to n do
  24.         read(file_in,x[i]);
  25.     end;
  26.  
  27. procedure w {mod5} (const x:mass; const n:integer; out i1:integer);
  28.     var
  29.         i:integer;
  30.         flag:boolean;
  31.     begin
  32.         flag:=true;
  33.         i1:=0;
  34.         for i := 1 to n do
  35.             begin
  36.                 if (x[i] mod 5 = 0) and (flag=true) then
  37.                     begin
  38.                         i1:=i;
  39.                         flag:=false;
  40.                     end;
  41.             end;
  42.     end;
  43.  
  44. procedure e {usl} (const x:mass; const n:integer; out posl:integer);
  45.     var
  46.         i:integer;
  47.     begin
  48.         posl:=0;
  49.         for i := 1 to n do
  50.             begin
  51.                 if x[i] > 0 then posl:=i;
  52.             end;
  53.     end;
  54.  
  55. procedure r {i1<posl} (const x:mass; const n:integer; const posl:integer; out i2,g:integer; var i1:integer; var file_out:textfile);
  56.     var
  57.         i:integer;
  58.     begin
  59.         i2:=i1+1;
  60.         g:=x[posl];
  61.         for i := i2 to posl do
  62.             begin
  63.                 if (g > x[i]) and (x[i]>0) then
  64.                     g:=x[i];
  65.             end;
  66.         writeln(file_out, '-------------');
  67.         writeln(file_out, i1, ' nomer pervogo kratnogo 5');
  68.         writeln(file_out, posl, ' nomer poslednego polozhitelnogo');
  69.         writeln(file_out, '-------------');
  70.         writeln(file_out,g, ' minimalnoe znachenie polozhitelnyh elementov, raspolozhennyh posle pervogo elementa, kratnogo 5');
  71.         write('...');
  72.     end;
  73.  
  74. procedure t {else} (out file_out:textfile);
  75.     begin
  76.         writeln(file_out, '-------------');
  77.         writeln(file_out, 'vse huynya davay po novoy');
  78.         write('...');
  79.     end;
  80.  
  81. procedure output {vivod nachalnogo massiva} (const x:mass; const n:integer; var file_out:textfile);
  82.     var
  83.         i:integer;
  84.     begin
  85.         writeln(file_out, 'massiv');
  86.         for i:=1 to n do
  87.             write(file_out,x[i],' ');
  88.         writeln(file_out);
  89.     end;
  90.  
  91. procedure close {closefile} (out file_in,file_out:textfile);
  92.     begin
  93.         closefile(file_in);
  94.         closefile(file_out);
  95.         readln;
  96.     end;
  97.  
  98. procedure param(var file_in,file_out:textfile);
  99.     begin
  100.         assignfile(file_in, paramstr(1));
  101.         reset(file_in);
  102.         assignfile(file_out, paramstr(2));
  103.         rewrite(file_out);
  104.     end;
  105.  
  106. var
  107.     x:mass;
  108.     n,i,i1{номер первого кратного 5},i2,posl{номер последнего положительного}:integer;
  109.     g{минимальное положитезначениельных элементов, расположенных после первого элемента, кратного пяти}:integer;
  110.     file_in, file_out:textfile;
  111. begin
  112.     param(file_in,file_out);
  113.  
  114.     input(x,n,file_in);
  115.  
  116.     output(x,n,file_out);
  117.  
  118.     w(x,n,i1);
  119.  
  120.     e(x,n,posl);
  121.  
  122.     if i1<posl then
  123.         r(x,n,posl,i2,g,i1,file_out)
  124.     else
  125.         t(file_out);
  126.  
  127.     close(file_in, file_out);
  128. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement