Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Массивы

Читайте также:
  1. RAID-массивы
  2. Глава V Двумерные массивы
  3. Двумерные массивы
  4. Двумерные массивы
  5. Двумерные массивы
  6. Двухмерные массивы
  7. МАССИВЫ
  8. Массивы
  9. Массивы и указатели. Динамические объекты. Операции с указателями.

 

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

Формат записи массива через раздел описания типов имеет вид:

Type <имя типа>= array [тип индекса] of <тип компонента>;

Var <идентификатор,…>: <имя типа>;

Формат записи массива через раздал описания переменных:

Var <идентификатор,…>: array [тип индекса] of <тип компонента>;

Массивы различают по количеству индексов: одномермые (1 индекс), двумерные и N-мерные (N индексов).

Пример: Type Vector = array [1..25] of real; {одномерный массив}

Matrix = array [1..20, 1..30] of byte; {двумерный массив}

 

Рассмотрим работу с массивами на примере следующей задачи: Даны два массива целых чисел. Вычислить произведение максимального элемента первого массива на минимальный элемент второго массива. Удалить максимальный элемент из первого массива и добавить его во второй массив после минимального.

program example_9;

type massiv= array [1..40] of integer;

var a, b: massiv;

i, n, k, p, j, min, Imin, max, Imax: integer;

begin

{ввод массива с клавиатуры}

write('Введите размерность массива А n=');

readln(n);

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

for i:=1 to n do begin

write('a[',i,']=');

readln(a[i]);

end;

{ввод массива случайным образом}

write('Введите размерность массива В k=');

readln(k);

randomize; {подключение генератора случайный чисел}

for i:=1 to k do

b[i]:=random(16); {заполнение массива случайными числами от 0 до 15}

{Вывод массива на экран}

Writeln('Массив В');

for i:=1 to k do write(b[i],' ');

 

writeln; {пустой оператор вывода}

{Поиск максимального элемента}

max:=a[1];

Imax:=1;

for i:=2 to n do

if a[i]>max then begin

max:=a[i]; {максимальный элемент}

Imax:=i; {индекс максимального элемента}

end;

{Поиск минимального элемента}

min:=b[1];

Imin:=1;

for i:=2 to n do

if b[i]<min then begin

min:=b[i]; {минимальный элемент}

Imin:=i; {индекс минимального элемента}

end;

{вычисление произведения и его вывод на экран}

p:=min*max;

writeln('Произведение max и min равно ',p);

 

{Удаление элемента из массива с позиции Imax}

for i:=Imax to n-1 do

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

n:=n-1; {Уменьшение количества элементов массива на 1}

 

{Вставка элемента в массив после элемента равного min}

i:=1;

while i<k do

begin

if b[i]=min then begin

for j:=k+1 downto i+1 do b[j]:=b[j-1]; {смещение элементов на один вправо, начиная с последнего}

k:=k+1; {Увеличение количества элементов на один}

b[i+1]:=max; {Вставка элемента на позицию i+1}

end;

i:=i+1; {Увеличение счетчика итераций}

end;

 

{Вывод массивов А и В на экран в строку}

writeln(‘Массив А: ‘);

for i:=1 to n do write(a[i],' ');

writeln;

writeln(‘Массив В: ‘);

for i:=1 to k do write(b[i],' ');

end.

Записи

Запись представляет собой наиболее общий и гибкий структурированный тип данных, так как она может быть организована из не однотипных компонентов и в ней явным образом выражена связь между элементами данных, характеризующими реальный объект. Широко используется при программировании информационно-поисковых систем.

Формат записи:

Type <имя_типа>= record

<имя_поля1>: тип;

<имя_поля2>: тип;

…………………;

<имя_поляN>: тип

end;

Элементы записи называются полями, а обращение к ним производится через использование их имен – идентификаторов полей. Отличие от обычной переменной записи в том, что имена полей должны предваряться ссылкой на идентификатор записи и отделяться от него точкой. Такая запись называется уточняющий идентификатор: <имя_записи>.<имя_поля>

Пример: Описание личных данных учащегося.

Type svedenia= record

f: string[40];

dat_r: string[8];

pol: char;

klass: string[4]

end;

 

Задача. Пусть нам необходимо иметь сведения о всех учащихся нашего плавания. А затем из общего списка вывести фамилии учеников, которые учатся в 9 классе.

Для этого целесообразно организовать массив записей, потом отобрать только тех, у которых в поле klass есть цифра 9.

program anketa;

type svedenia= record

f: string[40];

dat_r: string[8];

pol: char;

klass: string[4]

end;

var ychen: array [1..100] of svedenia;

i, j: integer;

begin

{Последовательно вводим каждую запись}

for i:=1 to 100 do begin

writeln(‘введите сведения о’, i, ‘-м ученике’);

write (‘введите фамилию и имя ’);

readln (ychen [i].f);

write(‘введите дату рождения’);

readln (ychen [i].dat_r);

write(‘введите класс’);

readln(ychen[i].klass);

end;

writeln(‘ввод закончен’);

writeln;

 

{Просматриваем массив записей и выбираем только учеников 9-го класса}

for i:=1 to 100 do begin

for j:=1 to Length(ychen [i]. klass) do

if ychen [i]. klass[j]=9 then

writeln(‘фамилия ученика: ’, ychen[i].fio);

end.




Дата добавления: 2014-12-19; просмотров: 45 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2024 год. (0.011 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав