Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Операции с индексированными переменными
Массивы одномерные Массив – это поименованный набор однотипной информации. Массив объединяет элементы одного типа данных. Всему набору данных присваивают общее имя - имя массива. Каждый элемент массива определяется с помощью индекса, определяющего место этого элемента в общем наборе. Данные в массиве сохраняются, как и в случае использования обычных неиндексированных переменных, только до конца работы программы. Характеристики массива: тип – общий тип всех элементов массива; размерность (ранг) – количество индексов массива; диапазон изменения индексов – определяет количество элементов в массиве. Вектор (одномерный массив) – это массив, в котором элементы нумеруются одним индексом.
Описание массивов
Для одномерного массива: 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 ] ); …
Каждое прохождение через цикл соответствует выводу одного элемента массива.
Обработка одномерных массивов
Рассмотрим типовые задачи обработки одномерных массивов.
Задача.
Составить программу подсчета суммы и произведения элементов одномерного массива вещественных чисел.
Таблица идентификаторов
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). Найти максимальный элемент массива и определить его номер.
Таблица идентификаторов
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.
Задача.
Задан массив целых чисел. Отсортировать элементы одномерного массива по возрастанию.
Существует много способов сортировки элементов массива Таблица идентификаторов
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 – признак того, что массив упорядочен.
Пример программы обработки одномерного массива Задача. Задан одномерный массив целых чисел. Найти количество нечетных чисел среди элементов массива 2. Таблица идентификаторов
3. Листинг программы
program lab5; uses crt; var a: array [1…100] of integer; n, i,kol : integer; begin clrscr; writeln ('Введите размер массива n<=100'); readln (n); writeln ('Введите элементы массива'); for i:=1 to n do readln (a[ i ]); kol:=0; for i:=1 to n do if odd(a[ i ]) then kol:=kol+1; writeln(‘Количество нечетных = ’, kol); readln; end.
Вопросы для самоконтроля
Методические указания для выполнения практического задания №7. «Операции с индексированными переменными» Цель работы: Ознакомиться со способом хранения однотипной информации в поименованном наборе, массиве, Задание: 1. В приложении 8 выбрать вариант задания. 2. Выполнить практическое задание №7, используя пример программы обработки одномерного массива. 3. Составить блок-схему алгоритма. 4. Написать программу и отладить ее по заранее подготовленному тесту. 5. Оформить задание в тетради для практических работ. 6. Результат выполнения программы предъявить преподавателю. 7. Ответить на вопросы самоконтроля. 8. Защитить выполненную работу у преподавателя. Приложение 8. Таблица вариантов заданий
Двумерные массивы
Матрицы
Если в массиве хранится таблица значений, то такой массив называют двумерным, а его элементы нумеруются двумя индексами – номером строки и номером столбца, на пересечении которых находится данный элемент. В памяти компьютера все элементы массива занимают одну непрерывную область. Двумерный массив располагается в памяти по строкам. Двумерный массив можно представить в виде матрицы: .
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2018-04-12; просмотров: 470. stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |