Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Обработка одномерных массивов. Вывод элементов массива




Вывод элементов массива

Ввод элементов массива

Описание массивов

Массивы одномерные

Операции с индексированными переменными

Массив – это поименованный набор однотипной информации.

Массив объединяет элементы одного типа данных. Всему набору данных присваивают общее имя – имя массива. Каждый элемент массива определяется с помощью индекса, определяющего место этого элемента в общем наборе.

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

Характеристики массива:

тип – общий тип всех элементов массива;

размерность (ранг) – количество индексов массива;

диапазон изменения индексов – определяет количество элементов в массиве.

Вектор (одномерный массив) – это массив, в котором элементы нумеруются одним индексом.

Для одномерного массива:

var

a: array[1…n] of <тип>;

где a – имя массива;

n – максимальное количество элементов массива;

<тип> – тип элементов массива.

Например:

var

mas: array [1…10] of real;

begin

...

Описан массив mas, содержащий 10 элементов вещественного типа.

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

a [i], a [i+2], a [9]

Индекс может быть переменной, константой, арифметическим выражением целого типа.

Размер массива должен быть задан в явном виде (как в предыдущем фрагменте), или через const.

Например:

const

n = 10;

var

mas: array [1…n] of real;

begin

for i:=1 to n do

readln(a[ i ]);

Каждое прохождение через цикл соответствует вводу одного элемента массива.

for i:=1 to n do

writeln(a[ i ]);

Каждое прохождение через цикл соответствует выводу одного элемента массива.

Рассмотрим типовые задачи обработки одномерных массивов.

Задача.

Составить программу подсчета суммы и произведения элементов одномерного массива вещественных чисел.

Таблица идентификаторов

Наименование переменной Обозначения в программе
  Имя массива a
  Размер массива n
  Индекс массива i
  Сумма элементов S
  Произведение элементов p

program mas_1;

uses

crt;

var

a: array [1..100] of real;

n, I: integer;

p, s: real;

begin

clrscr;

{подготовить переменные для суммы и произведения}

s: = 0; p: =1;

writeln ('введите размер массива n<=100');

readln (n);

writeln ('введите элемент массива');

for i:=1 to nk do

readln (a[i]);

for i:=1 to nk do

begin

s:= s + a[ i ];

p:= p * a[ i ];

end;

writeln ('Сумма = ',s:8:3,'Произведение =',p:8:3);

readln;

end.

При накапливании суммы переменную необходимо обнулить, а при накапливании произведения – присвоить 1.

Задача.

Дан массив a(n). Найти максимальный элемент массива и определить его номер.

Таблица идентификаторов

Наименование переменной Обозначения в программе
  Имя массива a
  Размер массива n
  Индекс массива i
  Максимальный элемент max
  Номер максимального элемента nmax

program mas_2;

var

a: array [1..100] of real;

i,n,nmax: integer;

max: real;

begin

writeln ('введите размер массива n<=100');

readln (n);

writeln ('введите элементы массива');

for i:=1 to n do

readln (a[ i ]);

{за максимальный принимается первый элемент массива}

max:=a[1]; nmax:=1;

for i:=1 to n do

If a[i]>max then

begin

max:=a[i];

nmax:=i;

end;

writeln ('max =', max, ' N=', nmax);

readln;

end.

Задача.

Задан массив целых чисел. Отсортировать элементы одномерного массива по возрастанию.

Существует много способов сортировки элементов массива

Таблица идентификаторов

Наименование переменной Обозначения в программе
  Имя массива a
  Размер массива n
  Индекс массива i
  Флажок flag
  Дополнительная переменная для обмена местами соседних элементов p

program mas_3;

uses

crt;

var

a: array [1..100] of integer;

f, n, i, p: integer;

begin

clrscr;

writeln ('введите размер массива n<=100');

readln (n);

writeln ('введите элементы массива');

for i:=1 to n do

readln (a[i]);

repeat

f:=0;

for i:=1 to n-1 do

if a[ i ]>a[i+1] then

begin

p:=a[ i ];

a[ i ]:=a[i+1];

a[i+1]:=p; f:=1;

end;

until f=0;

for i:=1 to n do writeln (a[ i ]);

readln;

end.

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

Внутренний цикл (for…to…do) – позволяет один раз пройтись по массиву, сравнивая соседние элементы. В случае, если предыдущий элемент (a[ i ]) окажется больше последующего (a[i+1]), элементы меняются местами через дополнительную переменную p.

Внешний цикл(repeat…until) – повторяется до тех пор, пока массив не будет упорядочен.

В программе применяется переменная – флажок.

f =1 – признак того, что два соседних элемента менялись местами, массив еще не упорядочен.

f =0 – признак того, что массив упорядочен.




Поделиться с друзьями:


Дата добавления: 2014-12-27; Просмотров: 1374; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.