Одномерные массивы в Паскале

обучение PascalABC

Работа с одномерными массивами на языке программирования Паскаль

Массив — самая распространенная структура хранения данных, присутствующая в любом языке программирования.

В Pascal используются одномерные и двумерные массивы. В школьной программе обычно их изучают в 9-10 классах.

Одномерный массив — это конечное количество однотипных элементов, объединенных общим именем. Каждому элементу присвоен свой порядковый номер. Обращение к элементам происходит по имени массива и индексу (порядковому номеру).

Одномерный числовой массив

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

одномерный массив в паскале
Одномерный массив. Обозначение элементов

Имя массива формируется по тем же правилам, что и имя любой другой переменной в программе. Границы индексов задают при описании массива в квадратных скобках. Удобнее задавать начальный индекс равный единице. Конечный индекс определяется условием задачи и численно равен размеру массива — количеству элементов. Числовые массивы могут содержать целые и действительные числа. Тип элементов указывается в описании. Смотрите рисунок выше.

Способы заполнения одномерных массивов

В наших примерах будем использовать одномерный массив целых чисел, состоящий из пяти элементов. Для этого выполним его описание в разделе переменных

var
  i:integer;
  a: array[1..5] of integer; {определение одномерного массива из пяти целых чисел}

Ручной ввод данных

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

for i:=1 to 5 do
  read a[i]; {ручной ввод значений элементов массива с клавиатуры}

Заполнение случайными числами

В задачах на массивы, количество элементов может быть достаточно большим. Использование ручного ввода становиться затруднительным. В этом случае для удобства отладки и проверки работоспособности программы целесообразнее использовать другие способы заполнения. Например, случайные числа, сгенерированные служебной функцией Random().

for i:=1 to 5 do
  a[i]:=random(10); {задаются случайные числа из интервала [0,10)}

Ввод данных по заданному правилу (формуле)

В некоторых задачах могут быть определены правила генерации элементов массива или вычисляться по формуле. Например, заполнить массив квадратами натуральных чисел.

for i:=1 to 5 do
  a[i]:=i*i; {квадрат натурального числа - число, умноженное само на себя}

Ввод данных из текстового файла

Еще один способ получить данные — прочитать их из файла.

Подробнее про работу с файлами на Паскале читайте здесь.

Вывод линейного массива

В языке программирования Pascal ABC вывод элементов одномерного массива организуется с помощью цикла.

for i:=1 to 5 do write (a[i]);
или так
for i:=1 to 5 do print (a[i]);

Шаблон для использования в однотипных задачах

Определение, заполнение и вывод одномерного массива.

var
  i,n:integer;
  a: array[1..100] of integer; {определение одномерного массива из 100 целых чисел}
begin
write('Введите количество элементов в массиве');
readln(n);
for i:=1 to n do
  begin
    a[i]:=random(100)-random(100);{заполнение случайными числами из интервала (-100;100)}
    print (a[i]); {можно использовать write}
  end;
{здесь записывается код обработки по условию задачи}
end.

Задачи с решением

Простая обработка элементов

Задача 1. Дан одномерный массив из N целых элементов. Написать программу вычисления произведения  всех элементов. Используйте ручной способ ввода чисел.

Посмотреть решение

var
  i,n,p:integer;
  a: array[1..100] of integer; {определение одномерного массива из 100 целых чисел}
begin
write('Введите количество элементов в массиве');
readln(n);
p:=1;
for i:=1 to n do
  begin
    write('Введите ',i,' -й элемент'); 
    readln(a[i]);
    p:=p*a[i];
  end;
write('Произведение = ',p);
end.

Задача 2. Дан линейный массив из N целых чисел. Написать программу вычисления суммы этих элементов. Используйте для заполнения массива случайные числа.

Посмотреть решение

var
  i,n,s:integer;
  a: array[1..100] of integer; {определение одномерного массива из 100 целых чисел}
begin
write('Введите количество элементов в массиве');
readln(n);
s:=0;
writeln('Исходный массив'); 
for i:=1 to n do
  begin
    a[i]:=random(10); 
    print(a[i]);
    s:=s+a[i];
  end;
write('Сумма = ',s);
end.

Сортировка элементов одномерного массива

Задача 3. Упорядочить массив чисел по возрастанию.

Посмотреть решение

Решение:

Применяем сортировку методом пузырька.

const n=10;
var i,j:integer;
x:real;
a:array[1..n] of real;
begin
 println('Исходный массив'); 
  for i:=1 to n do 
    begin
    a[i]:=random(100);
    print(a[i]);
    end;
    {сортировка по возрастанию}
   for i:=1 to n-1 do  
    for j:=1 to n-i do
    if a[j]>a[j+1] then 
                      begin
                      x:=a[j];a[j]:=a[j+1];a[j+1]:=x;
                      end;
    println;
    {вывод отсортированного массива}
    println('Упорядоченный массив');
    for i:=1 to n do 
       print(a[i]);    
end.

 

Рейтинг
( 5 оценок, среднее 5 из 5 )
Понравилась статья? Поделиться с друзьями:
Добавить комментарий

98 − 91 =

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: