Способ описания одномерного массива

Массивы

Сайт: Электронные курсы ТПУ
Курс: Информационные технологии 1
Книга: Массивы
Напечатано:: Гость
Дата: Суббота, 20 Ноябрь 2021, 07:35

Оглавление

Массивы

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

С понятием «массив» приходится встречаться при решении научно-технических, экономических задач обработки большого количества однотипных значений.

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

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

Массиву присваивается имя, посредством которого можно ссылаться на него как на единое целое. Элементы, образующие массив, упорядочены так, что каждому элементу соответствует совокупность номеров (индексов), определяющих его место в общей последовательности. Индексы представляют собой выражения простого типа. Доступ к каждому отдельному элементу осуществляется обращением к имени массива с указанием индекса нужного элемента:

Чтобы использовать массивы в программах, нужно их описать в разделе описаний. Тип массива не является стандартным, поэтому его необходимо описать в части описания типов. Описание типа массива определяет его имя, размер массива и тип данных:

type =array[ ] of ;

Далее, в перечне переменных указывается имя массива и через двоеточие указывается имя нового типа данных:

Массив может быть описан и без представления типа в разделе описания типов данных:

var :array[ ] of ;

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

Чаще всего в качестве типа индекса используется интервальный целый тип.

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

Линейный (одномерный) массив – массив, у которого в описании задан только один индекс; если два индекса, то это двумерный массив и т. д. Одномерные массивы часто называют векторами, т. е. они представляют собой конечную последовательность пронумерованных элементов. Пример описания одномерного массива:

Читайте также:  Двойные системы также классифицируются по способу наблюдения

type vec=array[1..5] of real;

var x:vec;

var x: array[1..5] of real;

Оба из вариантов описывают одномерный массив x, состоящий из 5 вещественных элементов.

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

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

Алгоритм решения задач с использованием массивов:

  • описание массива;
  • заполнение массива;
  • вывод (распечатка) массива;
  • выполнение условий задачи;
  • вывод результата.

1.1. Заполнение массива

Рассмотрим типичные варианты заполнения массива х, описанного выше.

Заполнение всех элементов массива числом 1 :

for i:=1 to 5 do x[i]:=1;

Заполнение всех элементов массива случайными числами из диапазона 0–9 :

for i:=1 to 5 do x[i]:=random(9);

Заполнение всех элементов массива при помощи ввода с клавиатуры:

for i:=1 to 5 do

begin

readln(x[i]);

end;

1.2. Вывод массива на экран

Вывод массива на экран в одну строку без пояснений:

for i:=1 to 5 do writeln(x[i]:6:1);

Вывод массива на экран в столбец с пояснениями. Этот вариант гораздо нагляднее. Старайтесь использовать его:

for i:=1 to 5 do writeln(‘x[’,i,‘]=’,x[i]:6:1);

1.3. Работа с массивами

Пример 6.1. Определить самую высокую температуру и самый теплый день в мае.

program massiv;

uses crt;

var t:array[1..31] of integer;

i,max,n:integer;

begin

Clrscr;

for i:=1 to 31 do

begin

t[i]:=random(20);

write(t[i],‘ ’);

end;

writeln;

max:=t[1]; n:=1;

for i:=2 to 31 do

begin

if t[i]>max then

begin max:=t[i]; n:=i; end;

end;

writeln(‘t-макс.= ’,max,‘ в ’,n, ‘день’);

end.

2. Двумерные массивы

Двумерный массив – структура данных, хранящая прямоугольную матрицу. В матрице каждый элемент определяется номером строки и номером столбца, на пересечении которых он расположен. В Паскале двумерный массив представляется массивом, элементами которого являются одномерные массивы. Два следующих описания двумерных массивов тождественны:

var a:array [1..5] of array [1..6] of real;

var a:array [1..5,1..6] of real;

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

Читайте также:  Главным способом достижения при обеспечении личной безопасности является

type matr=array [1..5,1..6] of integer;

var a:matr;

Доступ к каждому отдельному элементу осуществляется обращением к имени массива с указанием индексов (первый индекс – номер строки, второй индекс – номер столбца). Все действия над элементами двумерного массива идентичны действиям над элементами линейного массива. Только для инициализации двумерного массива используется конструкция, когда один цикл for вложен в другой. Например:

for i:=1 to 5 do

for j:=1 to 6 do

a[i,j]:=0;

При организации вложенных (сложных) циклов необходимо учитывать:

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

2.1. Заполнение матрицы

Рассмотрим типичные варианты заполнения матрицы a, описанной выше.

Заполнение всех элементов матрицы случайными числами из диапазона 1 – 9 :

for i:=1 to 5 do

for j:=1 to 6 do

a[i,j]:=random(9);

Заполнение всех элементов матрицы при помощи ввода с клавиатуры:

for i:=1 to 5 do

for j:=1 to 6 do

begin

readln(a[i,j]);

end;

2.2. Вывод матрицы на экран

Вывести на экран матрицу 5 ´ 6 можно следующим образом:

for i:=1 to 5 do

begin

for j:=1 to 6 do

end;

2.3. Работа с матрицами

Работа с матрицами осуществляется также поэлементно.

Пример 6.2. Сформировать таблицу Пифагора (таблица умножения) и вывести ее на экран.

program pifagor;

uses crt;

var p:array [1..9,1..9] of integer;

i,j:integer;

begin

Clrscr;

for i:=1 to 9 do

for j:=1 to 9 do

p[i,j]:=i*j;

for i:=1 to 9 do

begin

for j:=1 to 9 do

write(p[i,j]:4);

writeln;

end;

end.

Пример 6.3. Задан двумерный массив В(10, 10), заполненный случайными числами из диапазона -10 – 10. Найти и вывести на экран произведение элементов побочной диагонали.

program massiv;

uses crt;

var b:array[1..10,1..10] of integer;

i,j,s:integer;

begin

Clrscr;

for i:=1 to 10 do

begin

for j:= 1 to 10 do

begin

b[i,j]:=random(20)-10;

write(b[i,j]:4);

end;

writeln;

end;

s:=1;

for i:=1 to 10 do

s:=s*b[i,11-i];

writeln(‘Произведение = ’,s);

end.

Пример 6.4. Ввести с клавиатуры матрицу В(5, 5) и поменять местами первый и последний столбец.

program mest;

var b:array[1..5,1..5] of integer;

i,j,s:integer;

begin

for i:=1 to 5 do

for j:=1 to 5 do

begin

readln(b[i,j]);

end;

for i:=1 to 5 do

begin

for j:=1 to 5 do

write(b[i,j]:4);

writeln;

end;

for i:=1 to 5 do

begin

s:=b[i,1]; b[i,1]:=b[i,5]; b[i,5]:=s;

end;

writeln;

writeln(‘Изменённая матрица’);

Источник

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

Ключевые слова:

Массив -это

Читайте также:  Способы коррекционной работы с детьми зпр

1) о бласть машинной памяти, в которой могут размещаться совокупности значений одного и того же типа (англ.- array);

2) упорядоченный набор переменных, объединенных общим назначением и имеющих одно имя.

Элемент массива – отдельная переменная, входящая в массив.

Индекс элемента — номер элемента массива, обозначаемый числом или буквой (англ.- индекс).

Размер массива — количество элементов в массиве.

Размерность – число индексов в массиве (1-мерный,2-мерный, N-мерный).

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

Массив — это структурированный тип для резервирования в памяти места под большое количество однородных элементов ( общий размер – не более 65.52 кБайт). Оперировать можно как с отдельными элементами массива, так и с массивом в целом.

    В математике обычно элемент записывается в виде:A(1), A(2),…A(n) или А1, А2,… Аn,
    в языкеPascal индекс заключается в квадратные скобки:А[1],A[2].A[n].

ARRAY – зарезервированное слово Pascal, оно указывает, что данная переменная является массивом.

Возможны 2 способа описания массива:

1 Описание массива в разделе переменных VAR:

VAR имя массива : ARRAY [i1..i2] OF

i1..i2 – диапазон индексов (любой порядковый тип, кроме longint);

t – тип элемента.

Например:

VAR A: array [1..10] of byte;

VAR ENTER: array [1998..2002] of integer ;

VAR y: array[-3..5] of real ;

VAR FIO: array [1..30] of string ;

VAR mas: array [1..M] of real;

CONST b: array [1..5] OF byte = ( 1,4,3,2,0);

Заполнение одномерного массива возможно несколькими способами, основные из которых:

2 с помощью генератора случайных чисел;

3 объявление массива как CONST;

Упражнение arr1: Описать в разделе VAR и заполнить массив А из 5 целых элементов с клавиатуры. Вывести массив в строчку.

var a: array[1..5] of integer;

write(‘Введите элемент массива А[‘,i,’]= ‘);

ReadLn (a[i]);

writeLn(‘Результирующий массив А:’);

2 Описание массива в разделе описания типов TYPE:

TYPE имя массива = ARRAY [i1..i2] OF t

Например:

TYPE mas = array[1..20] of integer;

TYPE m = array[1..5] of string[3];

Const mes: m =(’jan’,’feb’,’mar’,’apr’,’may’);

Упражнение arr2: Описать в разделе TYPE и заполнить массив MAS из 5 целых случайных чисел. Вывести массив в столбик.

TYPE a= array[1..5] of integer;

VAR mas: a;

randomize;

mas[i]:= random(100);

Упражнение arr3: Заполнить массив – CONST из 12 чисел.

const a: array[1..12] of byte=(1,3,2,3,0,0,4,5,6,7,8,2);

for i:=1 to 10 DO

Упражнение arr4: Заполнить массив – символьную CONST из 12 английских наименований месяцев года длиной в 3 символа, например: JAN, FEB и т. д.

Упражнение arr5: Заполнить массив по формуле: y = x2 в диапазоне [0; 1] с шагом 0.1.

Источник

Оцените статью
Разные способы