Pascal. Одномерные массивы

      Комментарии к записи Pascal. Одномерные массивы отключены

Помечено: ,

В этой теме 0 ответов, 1 участник, последнее обновление  Васильев Владимир Сергеевич 3 мес., 4 нед. назад.

  • Автор
    Сообщения
  • #3737

    Одномерный массив – это именованная последовательность, состоящая из пронумерованных элементов одного типа. Элементы могут быть любого имеющегося в Pascal (за исключение файлового) типа данных. Номер, также называемый индексом, имеет каждый элемент массива. Индекс должен быть порядкового типа. Одномерный массив можно объявить как в качестве переменной:

    var <имя переменной>: array[m..n] of <тип элементов>;

    так и типа:

    type <имя типа> = array[m..n] of <тип элементов>;

    Здесь m – номер первого элемента, а n – последнего. Например, если диапазон задан так: [1..10], то это означает, что определен одномерный массив размерностью в 10 элементов, с индексами от 1 до 10.

    Для обращения к элементу массива нужно указать его имя и номер: mas[i], тут mas — имя, i – номер. В программе ниже мы объявим массив и произведем простые операции над его элементами.

    program array_primer;
    uses crt;
    var mas, A: array[1..10] of real;
    begin
      clrscr;
      mas[1]:=32;
      mas[5]:=13;
      mas[9]:=43;
      A[1]:=(mas[9]-mas[1])*mas[5];
      write(A[1]:5:2);
      readkey;
    end.

    В каком-то смысле с массивами можно работать, как и с обычными переменными, но представьте, например ситуацию, когда необходимо заполнить массив, состоящий из десятков или тысяч элементов. Это будет удобней сделать посредством цикла. Следующая конструкция заполняет массив числами и выводит их на экран.

    for i:=1 to n do
    begin
      mas[i]:=i;
      write(mas[i]:3);
    end;

    Если необходимо, чтобы массив состоял из значений, введенных с клавиатуры, то просто замените присвоение на оператор read. Также бывают ситуации, когда требуется заполнить массив случайными числами. Программа ниже поочередно присваивает каждому элементу случайную величину.

    program array_random;
    uses crt;
    var i: integer;
    mas: array[1..100] of integer;
    begin
      clrscr;
      randomize;
      for i:=1 to 100 do
      begin
        mas[i]:=random(10);
        write(mas[i]:2);
      end;
      readkey;
    end.

    Широко распространены задачи связанные с разного рода алгоритмами применимыми к массивам. Среди них особенно популярны методы поиска и сортировки элементов. К числу менее сложных и в тоже время востребованных относятся методы определения количества положительных и отрицательных, минимального и максимального элементов. Рассмотрим их.

    Поиск максимального элемента в массиве:

    program array_max;
    uses crt;
    type massiv=array[1..10] of word;
    var i, max: integer;
    A: massiv;
    begin
      clrscr;
      for i:=1 to 10 do
      begin
        write('Элемент №',i:2,'=');
        read(A[i]); {ввод с клавиатуры}
      end;
      max:=A[1]; {пусть первый элемент будет максимальным}
      for i:=1 to 10 do
        if max<A[i] then 
          max:=A[i];
      writeln;
      write('Максимальный элемент = ', max);
      readkey;
    end.

    Для того чтобы сделать программу для поиска минимального элемента нужно всего лишь поменять знак < в 15 строке на >. Определение количества положительных элементов:

    program array_pol;
    uses crt;
    var i, k: integer;
    mas: array[1..10] of integer;
    begin
      clrscr;
      randomize; {генератор случайных чисел}
      for i:=1 to 10 do
      begin
        mas[i]:=random(40)-20; {от -20 до 20}
        writeln('Элемент №',i:2,'=', mas[i]:3);
      end;
      k:=0; {обнуление счетчика}
      for i:=1 to 10 do
        if mas[i]>=0 then k:=k+1;
      writeln;
      write(k:3, ' положительных элементов');
       readkey;
    end.

    Также как и в предыдущей программе, для нахождения отрицательных чисел необходимо просто поменять знак.

Для ответа в этой теме необходимо авторизоваться.