Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...
Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...
Топ:
Эволюция кровеносной системы позвоночных животных: Биологическая эволюция – необратимый процесс исторического развития живой природы...
Теоретическая значимость работы: Описание теоретической значимости (ценности) результатов исследования должно присутствовать во введении...
Марксистская теория происхождения государства: По мнению Маркса и Энгельса, в основе развития общества, происходящих в нем изменений лежит...
Интересное:
Средства для ингаляционного наркоза: Наркоз наступает в результате вдыхания (ингаляции) средств, которое осуществляют или с помощью маски...
Берегоукрепление оползневых склонов: На прибрежных склонах основной причиной развития оползневых процессов является подмыв водами рек естественных склонов...
Влияние предпринимательской среды на эффективное функционирование предприятия: Предпринимательская среда – это совокупность внешних и внутренних факторов, оказывающих влияние на функционирование фирмы...
Дисциплины:
2017-10-17 | 308 |
5.00
из
|
Заказать работу |
|
|
При обработке массивов часто требуется вычислить сумму элементов массива, их среднее арифметическое значение или найти значение и номер максимального и минимального элементов, а также изменить значения элементов массива.
Условимся, что в векторе a содержится n элементов.
{ Вычислим сумму элементов:}
s:= 0;
for i:= 1 to n do
s:= s + a[i];
{ Вычислим произведение элементов:}
р:= 1;
for i:= 1 to n do
р:= р*a[i];
{ Подсчитаем количество четных элементов:}
k:= 0;
for i:= 1 to n do
if a[i] mod 2 = 0 then
k:= k + 1;
{ Найдем номер первого из элементов массива, имеющего нулевое значение. Если такого элемента нет, то выведем соответствующее сообщение:}
i:= 0;
repeat
i:= i+ 1;
until (a[i] = 0) or (i = n);
if a[i] = 0 then writeln('Номер нулевого элемента = ', i)
else
writeln('Таких элементов нет');
{ Если требуется найти номера всех нулевых элементов, то лучше применить оператор FOR:}
for i:= 1 to n do
if a[i] = 0 then write(i, ' ');
{ Поиск максимального элемента и его номера. Переменная max хранит максимальное значение элемента, а k – его номер. }
max:= a[i];
k:= 1;
for i:= 2 to n do
if a[i] > max then
begin
max:= a[i];
k:= i;
end;
Многомерные массивы (матрицы).
Организация доступа к элементам двумерного массива
Для описания многомерных массивов в Pascal существует целый ряд способов. Следующие группы операторов задают описание одного и того же двумерного массива А, представляющего собой таблицу размером 2´3 (2 строки, 3 столбца)
Первый способ:
Type
Stroka = array [1..3] of real;
Matr = array [1..2] of stroka;
Var
V: stroka;
A: matr;
Второй способ:
Type
Matr= array [1..2] of array [1..3] of real;
Var
A: matr;
Третий способ:
Type
Matr = array [1..2,1..3] of real;
Var
A: matr;
Четвёртый способ:
Var
A: array [1..2,1..3] of real;
В первом способе описания переменная V объявлена как одномерный массив из трёх элементов вещественного типа. Переменная А имеет смысл двумерного массива из двух строк, в каждую из которых включено по три элемента.
|
Второй, третий и четвертый способы описания массива получаются из первого путем его последовательного упрощения. Так второй способ описания получен из первого путём исключения определения типа stroka в определении типа matr.
Задание значений элементам массива может выполняться при помощи операторов присваивания:
A [1, 2]:= 2.3 + P1
Другим способом задания значений элементам массива является поэлементный ввод. Также поэлементно может осуществляться и вывод.
Действия с двумерными массивами
Для обработки двумерных массивов применяются вложенные циклы FOR. Рассмотрим примеры обработки двумерных массивов.
Пример 1.
Поиск минимального (максимального) элемента матрицы и индексов его строки и столбца.
uses crt;
var
min,i,j,k,m: integer;
a: array [1..5,1..5] of integer;
begin
clrscr;
randomize;
for i:= 1 to 5 do
begin
for j:= 1 to 5 do
begin
a[i,j]:= random(100);
write(a[i,j]:4);
end;
writeln;
end;
min:= a[1,1];
for i:= 1 to 5 do
for j:= 1 to 5 do
if min > a[i,j] then
begin
min:= a[i,j];
k:= i;
m:= j;
end;
writeln;
writeln('min = ', a[k,m], ' str = ',k:2,' stolb = ',m:2);
readln
end.
Пример 2.
Программа заполнения двумерного массива змейкой.
при n=6 и m=8:
Решение
Для того чтобы заполнить массив указанным образом, надо вывести правило заполнения. В данном случае правило будет таким: если ряд нечетный (то есть когда номер строки − нечетное число), то А[i,j] = (i-1)*m+j, иначе (т.е. когда строка четная) A[i,j] = i*m-j+1.
uses crt;
const
n = 6;
m = 8;
var
a: array[1..n,1..m] of integer;
i,j,k: integer;
begin
for i:= 1 to n do
begin
for j:= 1 to m do
begin
if i mod 2 = 0 then
a[i,j]:= i*m - j + 1
else
a[i,j]:= (i-1)*m + j;
write(a[i,j]:3);
end;
writeln;
end;
readln
end.
Сортировка массивов
Сортировка - это процесс упорядочивания набора данных одного типа по возрастанию или убыванию значения какого-либо признака. При сортировке элементы массива меняются местами таким образом, что их значения оказываются упорядоченными или по возрастанию или по убыванию. В большинстве случаев речь идет о сортировке одномерных массивов.
|
Сортировка массивов – одно из наиболее важных действий над массивами в системах сбора и поиска информации, т.к. в отсортированных массивах гораздо легче можно найти нужную информацию. Существуют множества способов сортировки массивов. Один из способов сортировки массивов:
|
|
Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...
История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...
Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначенные для поддерживания проводов на необходимой высоте над землей, водой...
Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!