Advertisement
Domerk

Лаба_массивы (для Коли)

Dec 22nd, 2012
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 5.28 KB | None | 0 0
  1. {Дан целочисленный массив a(1)...a(m). Из абсолютных величин его элементов выбрать наибольшую.
  2. Далее построить массив, i-й элемент которого равен нулю если модуль a(i) совпадает с выбранным значением, или равен 1 в противном случае}
  3. {Если я правильно поняла задание, то выглядеть это будет следующим образом}
  4.  
  5. const {раздел объявления констант}
  6.         Izm=100;
  7. Type
  8.         Tind=1..Izm; {создаём тип «индекс», принимающий значение от 1 до 100}
  9.         Telem=integer;   {создаём тип «элемент»}
  10.         TMas=array[TInd] of Telem; {создаём тип «массив» с индексом типа «индекс» и элементами типа «элемент»}
  11. {=======================================}    
  12. procedure Vvod (var Mas: TMas; n: TInd); {Процедура заполнения массива значениями}
  13. var i: TInd; {объявляем локальную перемнную типа "Индекс"}
  14. begin
  15.      writeln ('Введите ', n, ' чисел'); {выводим на экран подсказку для пользователя}
  16.      for i:=1 to n do begin read (Mas[i]); {при помощи цикла заполняем массив}
  17.      end;
  18.      writeln; {пустой оператор ввода - переход на строку вниз}
  19. end;    
  20. {=======================================}  
  21. procedure Vivod (Mas: TMas; n: TInd); {процедура вывода массива на экран}
  22. var i: TInd; {Объявляем локальную переменную типа "индекс"}
  23. begin
  24.      for i:=1 to n do begin {при помощи цикла}
  25.      write (Mas[i], '   '); {выводим последовательно все элементы на экран, разделяя их пробелами}
  26.      end;
  27.      writeln;
  28. end;
  29. {=======================================}  
  30. function Maximum (Mas: TMas; n: Tind): TElem; {Функция нахождения максимального по модулю элемента массива, возвращает максимальный элемент}
  31. var i: Tind; {объявляем локальные переменные}
  32.     a: Telem;
  33. begin
  34.     a:=abs(Mas[1]); {присваиваем переменной для максимума модуль первого элемента массива}
  35.     for i:=2 to n do begin {начиная со второго элемента массива}
  36.        if (a<abs(Mas[i])) then begin {если модуль значения в текущей ячейке больше максимума}
  37.              a:=abs(Mas[i]); {то присваиваем максимуму это значение}
  38.        end;      
  39.     end;
  40.     Maximum:=a; {возвращаем максимум}
  41. end;    
  42. {=======================================}  
  43. function Nul (Mas1: TMas; n: TInd; Max: TElem): TMas; {функция замены элементов массива на 0 и 1 согласно условию}
  44. var i: TInd; {объявляем локальные переменные}
  45. begin
  46.     for i:=1 to n do begin {начиная с первой ячейки массива}
  47.         if abs(Mas1[i])=Max then begin {если модуль значения, содержащегося с данной ячейке, равен максимуму}
  48.               Mas1[i]:=0; {то записываем в это ячейку 0}
  49.         end else begin {в противном случае}
  50.               Mas1[i]:=1; {записываем 1}
  51.         end;
  52.     end;
  53. Nul:=Mas1;    {возвращаем результирующий массив}
  54. end;
  55. {=======================================}  
  56. var
  57.         n:Tind; {объявляем переменные типа «индекс»}
  58.         Mas, Mas1: Tmas; {матрица типа «массив»}
  59.         Max: TElem; {переменная типа "элемент"}
  60. begin
  61.      writeln ('Введите размер массива'); {выводим подсказку на экран}
  62.      readln (n); {считываем размер основного массива}
  63.      Vvod (Mas, n); {заполняем основной массив}
  64.      Vivod (Mas, n); {выводим основной массив на экран}
  65.      Mas1:=Mas; {присваиваем результирующему массиву исходным массив, так как они одного размера и одного типа, так делать можно}
  66.      Max:=Maximum(Mas, n); {присваиваем максимуму результат работы соответствующей функции}
  67.      Mas1:=Nul(Mas1, n, Max); {присваиваем результирующему массиву результат работы соответствующей функции}
  68.      writeln;
  69.      writeln ('Результирующий массив:'); {выводим текст}
  70.      Vivod(Mas1, n); {вызываем процидуру, которая выведт на экран результирующий массив}
  71. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement