Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program Project10;
- {Задан целочисленный одномерный массив A из N элементов. Найти минимальное значение
- положительных элементов, расположенных после первого элемента кратного пяти. Если нет
- элементов кратных 5, искать с начала массива. (Подсказка: «Сначала найти первый со
- значением, кратным 5, и последний положительный, а затем уже искать минимум либо
- вывести сообщение о причинах невозможности поиска.»)}
- {$APPTYPE CONSOLE}
- uses
- System.SysUtils,
- Windows;
- const b=30;
- type mass = array[1..b] of integer;
- procedure input {schit} (var x:mass; var n:integer; var file_in:textfile);
- var i:integer;
- begin
- for i := 1 to n do
- read(file_in,x[i]);
- end;
- procedure w {mod5} (const x:mass; const n:integer; out i1:integer);
- var i:integer;
- flag:boolean;
- begin
- flag:=true;
- i1:=0;
- for i := 1 to n do
- begin
- if (x[i] mod 5 = 0) and (flag=true) then
- begin
- i1:=i;
- flag:=false;
- end;
- end;
- end;
- procedure e {usl} (const x:mass; const n:integer; out posl:integer);
- var i:integer;
- begin
- posl:=0;
- for i := 1 to n do
- begin
- if x[i] > 0 then posl:=i;
- end;
- end;
- procedure r {i1<posl} (const x:mass; const n:integer; const posl:integer; out i2,g:integer; var i1:integer; var file_out:textfile);
- var i:integer;
- begin
- i2:=i1+1;
- g:=x[posl];
- for i := i2 to posl do
- begin
- if (g > x[i]) and (x[i]>0) then
- g:=x[i];
- end;
- writeln(file_out, '-------------');
- writeln(file_out, i1, ' nomer pervogo kratnogo 5');
- writeln(file_out, posl, ' nomer poslednego polozhitelnogo');
- writeln(file_out, '-------------');
- writeln(file_out,g, ' minimalnoe znachenie polozhitelnyh elementov, raspolozhennyh posle pervogo elementa kratnogo 5');
- write('...');
- end;
- procedure t {else} (out file_out:textfile);
- begin
- writeln(file_out, '-------------');
- writeln(file_out, 'elementy, raspolozhennye posle pervogo elementa, kratnogo 5 ne naideny');
- write('...');
- end;
- procedure output {vivod nachalnogo massiva} (const x:mass; const n:integer; var file_out:textfile);
- var i:integer;
- begin
- writeln(file_out, 'massiv');
- for i:=1 to n do
- write(file_out,x[i],' ');
- writeln(file_out);
- end;
- procedure close {closefile} (out file_in,file_out:textfile);
- begin
- closefile(file_in);
- closefile(file_out);
- readln;
- end;
- procedure param(var file_in,file_out:textfile);
- begin
- assignfile(file_in, paramstr(1));
- reset(file_in);
- assignfile(file_out, paramstr(2));
- rewrite(file_out);
- end;
- var
- x:mass;
- n,i,i1{номер первого кратного 5},i2,posl{номер последнего положительного}:integer;
- g{минимальное значение положительных элементов, расположенных после первого элемента, кратного пяти}:integer;
- file_in, file_out:textfile;
- begin
- param(file_in,file_out);
- readln(file_in,n);
- if (n>30) or (n<1)then
- writeln(file_out, 'nekorrektnoe kolichestvo elementov massiva')
- else
- begin
- input(x,n,file_in);
- output(x,n,file_out);
- w(x,n,i1);
- e(x,n,posl);
- if i1<posl then
- r(x,n,posl,i2,g,i1,file_out)
- else
- t(file_out);
- end;
- close(file_in, file_out);
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement