Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {Дан целочисленный массив a(1)...a(m). Из абсолютных величин его элементов выбрать наибольшую.
- Далее построить массив, i-й элемент которого равен нулю если модуль a(i) совпадает с выбранным значением, или равен 1 в противном случае}
- {Если я правильно поняла задание, то выглядеть это будет следующим образом}
- const {раздел объявления констант}
- Izm=100;
- Type
- Tind=1..Izm; {создаём тип «индекс», принимающий значение от 1 до 100}
- Telem=integer; {создаём тип «элемент»}
- TMas=array[TInd] of Telem; {создаём тип «массив» с индексом типа «индекс» и элементами типа «элемент»}
- {=======================================}
- procedure Vvod (var Mas: TMas; n: TInd); {Процедура заполнения массива значениями}
- var i: TInd; {объявляем локальную перемнную типа "Индекс"}
- begin
- writeln ('Введите ', n, ' чисел'); {выводим на экран подсказку для пользователя}
- for i:=1 to n do begin read (Mas[i]); {при помощи цикла заполняем массив}
- end;
- writeln; {пустой оператор ввода - переход на строку вниз}
- end;
- {=======================================}
- procedure Vivod (Mas: TMas; n: TInd); {процедура вывода массива на экран}
- var i: TInd; {Объявляем локальную переменную типа "индекс"}
- begin
- for i:=1 to n do begin {при помощи цикла}
- write (Mas[i], ' '); {выводим последовательно все элементы на экран, разделяя их пробелами}
- end;
- writeln;
- end;
- {=======================================}
- function Maximum (Mas: TMas; n: Tind): TElem; {Функция нахождения максимального по модулю элемента массива, возвращает максимальный элемент}
- var i: Tind; {объявляем локальные переменные}
- a: Telem;
- begin
- a:=abs(Mas[1]); {присваиваем переменной для максимума модуль первого элемента массива}
- for i:=2 to n do begin {начиная со второго элемента массива}
- if (a<abs(Mas[i])) then begin {если модуль значения в текущей ячейке больше максимума}
- a:=abs(Mas[i]); {то присваиваем максимуму это значение}
- end;
- end;
- Maximum:=a; {возвращаем максимум}
- end;
- {=======================================}
- function Nul (Mas1: TMas; n: TInd; Max: TElem): TMas; {функция замены элементов массива на 0 и 1 согласно условию}
- var i: TInd; {объявляем локальные переменные}
- begin
- for i:=1 to n do begin {начиная с первой ячейки массива}
- if abs(Mas1[i])=Max then begin {если модуль значения, содержащегося с данной ячейке, равен максимуму}
- Mas1[i]:=0; {то записываем в это ячейку 0}
- end else begin {в противном случае}
- Mas1[i]:=1; {записываем 1}
- end;
- end;
- Nul:=Mas1; {возвращаем результирующий массив}
- end;
- {=======================================}
- var
- n:Tind; {объявляем переменные типа «индекс»}
- Mas, Mas1: Tmas; {матрица типа «массив»}
- Max: TElem; {переменная типа "элемент"}
- begin
- writeln ('Введите размер массива'); {выводим подсказку на экран}
- readln (n); {считываем размер основного массива}
- Vvod (Mas, n); {заполняем основной массив}
- Vivod (Mas, n); {выводим основной массив на экран}
- Mas1:=Mas; {присваиваем результирующему массиву исходным массив, так как они одного размера и одного типа, так делать можно}
- Max:=Maximum(Mas, n); {присваиваем максимуму результат работы соответствующей функции}
- Mas1:=Nul(Mas1, n, Max); {присваиваем результирующему массиву результат работы соответствующей функции}
- writeln;
- writeln ('Результирующий массив:'); {выводим текст}
- Vivod(Mas1, n); {вызываем процидуру, которая выведт на экран результирующий массив}
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement