- TURBO PASCAL
- Одномерные массивы. Работа с элементами
- Способы задания одномерных массивов
- Работа с элементами массива (разбор на примерах)
- 3.2.Способы задания одномерных массивов.
- 3.3.Описание типа одномерных массивов.
- 4.Двумерные массивы.
- Способы задания одномерных массивов
- Способы задания одномерных массивов
TURBO PASCAL
Одномерные массивы. Работа с элементами
Пример
Найти сумму 30 целых чисел.
Для решения этой задачи используется одномерный массив.
Одномерный массив — это фиксированное количество элементов одного и того же типа, объединенных одним именем, где каждый элемент имеет свой номер.
Например, введем 30 целых чисел от 25 до54 и объединим их общим именем А
1 | 25 |
2 | 26 |
3 | 27 |
. | . |
29 | 53 |
30 | 54 |
Имя А — это общее имя для всех элементов. Элементы массива — это целые числа, их 30.
Опишем в разделе типов свой тип — одномерный массив, состоящий из 30 целых чисел.
Type myarray = Array [1..30] Of Integer.
Напомним, что раздел типов, начинается со служебного слова TYPE, после этого идет имя нового типа и его описание. Между именем типа и его описанием ставится знак «равно» (в разделе переменных между именем переменной и её описанием ставится двоеточие). Тогда:
myarray — это имя нового типа;
Array — служебное слово (в переводе с английского означает «массив», «набор»);
[1..30] — в квадратных скобках указывается номер первого элемента, затем, после двух точек, номер последнего элемента массива, пусть в этом примере первый элемент имеет номер 1, а последний — номер 30;
Of — служебное слово (в переводе с английского -«из» );
Integer — тип всех элементов массива.
Таким образом, одномерный массив описывается следующим образом:
Array[n1..n2] Of ;
где n1 — номер первого элемента, n2 — номер последнего элемента, в качестве типа элементов может использоваться любой тип данных, кроме файлового. Так как каждый элемент имеет свой номер, то к каждому элементу можно обращаться непосредственно. Для того, чтобы обратиться к i-у элемент этого массива, необходимо записать:
A[i] — сначала имя массива, а в квадратных скобках указывается номер элемента, к которому обращаемся, — i. Например, обращаемся к первому элементу массива А — А1[1], а к пятому — А[5].
Пример: Составить программу нахождения суммы элементов массива.
Опишем две процедуры (формирование и вывода массива)и функцию нахождения суммы элементов, которые будем использовать в основной части. Заметим, что заполнение и вывод массива можно осуществить только поэлементно, то есть можно сначала присвоить значение первому элементу, затем второму и так далее, то же самое и с выводом на экран — выводим первый, второй, третий и так до последнего. Будем вводить значение элементов массива с клавиатуры.
Program Example-37;
Const n = 30;
Type myarray = Array [1. n] Of Integer;
Var A : myarray;
s : Integer;
Procedure Init1(Var m : myarrfy);
Var i : Integer;
Begin
Writen (‘введите’,n,’чисел’);
For i:=1 To n Do <ввод массива с клавиатуры>
Readln(m[i]); <чтение i-го элемента>
End;
Procedure Print(m: myarray);
Var i : Integer;
Begin
For i:=1 To n Do <вывод массива>
Write(m[i]:3); <вывод i-го элемента>
Writeln;
End;
Способы задания одномерных массивов
Первый способ задания одномерного массива — это задание с клавиатуры (он был рассмотрен в примере выше — процедура Init1).
Второй способ задания — это задание с помощью генератора случайных чисел, этот способ более удобен, когда много элементов в массиве. Составим программу заполнения распечатки одномерного массива, с помощью генератора случайных чисел. Процедура вывода уже составлена ранее, а процедуру формирования напишем новую.
Program Example-38;
Const n = 30; dd = 51;
Type myarray = Array [1..n] Of Integer;
Var A : myarray;
Procedure Print (m : myarray);
Третий способ задания — это чтение чисел из файла. Можно заранее создать типизированный файл одномерных массивов (например, по тридцать элементов), а затем считывать из него сразу целый массив и работать с ним. Но мы воспользуемся текстовым файлом, так как его создавать намного удобнее. Пусть в файле записано несколько строк, а в каждой из них по 30 целых чисел. Тогда вся программа может быть такой:
Program Example-39;
Const n = 30;
Type myarray = Array [1..n] Of Integer;
Var A : myarray;
Procedure Init3 (Var m : myarray); <процедура заполнения (инициализации) массива>
Var i : Integer;
Begin
For i:=1 To n Do
Read (f, m[i]) <чтение из файла очередного числа>
End;
Procedure Print (m:myarray);
Работа с элементами массива (разбор на примерах)
При работе с элементами массивов можно выделить несколько видов задач.
Нахождение суммы (или произведения) элементов. Такая задача была рассмотрена выше. Могут быть различные модификации — найти сумму с заданным свойством. Пример Найти сумму элемента кратных заданному числу. Воспользуемся функцией Sum из программы Example-37, но будем суммировать не все элементы, а только те, которые удовлетворяют данному условию, то есть только те, которые делятся нацело на заданное число (остаток равен 0). Function Sum (m : myarray) : Integer; Всё остальное можно оставить без изменений. | |
Нахождение номеров элементов с заданным свойством. Пример Найти номера чётных элементов. Для нахождения необходимо просмотреть весь массив, и если просматриваемый элемент является чётным, то выводить его номер. Опишем процедуру, которой передаётся данный массив и выводятся нужные номера. Procedure Solve (m: myarray); | |
Нахождение количества элементов с заданным свойством. Пример Найти количество положительных и отрицательных элементов в данном массиве. Опишем процедуру, которой будем отправлять три параметра — массив и два счётчика, один для элементов, больших нулю, а второй — для меньших нулю, элементы, равные нулю, учитывать не будем. Procedure Quantity (m: myarray: Var kl , k2: lnteger); | |
Есть ли в данном массиве элементы с данным свойством или найти первый (последний) элемент, отвечающий заданным условиям. Для решения таких задач удобнее использовать циклы с условиями и составлять функции, результат которых имеет логический тип. Пример Есть ли отрицательный элемент в массиве? Начинаем с первого элемента (i = 1). Пока не просмотрен последний (i =0), будем переходить к следующему (inc (i)). Таким образом, мы закончим просмотр в одном из двух случаев: первый — просмотрели все элементы и не нашли отрицательный, тогда i>n, второй — нашли нужный, при этом i Function Controll (m: myarray): Boolean; Пример Найти номер последнего отрицательного элемента массива. Последний отрицательный — это первый отрицательный элемент, если начать просмотр с конца. Если очередной элемент не является отрицательным , то нужно уменьшать значение текущего индекса, пока он не станет меньше номера первого элемента или не будет найден отрицательный элемент. Таким образом, можно модифицировать предыдущую функцию. Но поскольку надо найти номер элемента, тип результата будем целым. Договоримся, что если такого элемента нет, то значение функции будет равно 0. Function Control2 (m: myarray): Integer; На главную страницу(с)Все права защищеныПо всем интересующим вопросам прошу писать на электронный адрес Источник 3.2.Способы задания одномерных массивов.Первый способ задания одномерного массива — это задание с клавиатуры. Заполнение и вывод массива можно осуществлять только поэлементно, то есть можно сначала присвоить значение первому элементу, затем второму и так далее, до последнего; то же самое и с выводом на экран — выводим первый, второй, третий и так до последнего. На Паскале заполнение одномерного массива, состоящего из N элементов, с клавиатуры осуществляется следующим образом. Массив m должен быть предварительно объявлен в разделе переменных. Вывод массива осуществляется следующим образом:. Второй способ задания это задание с помощью генератора случайных чисел, этот способ более удобен, когда много элементов в массиве. На Паскале данный способ реализуется следующим образом: в теле программы, перед заполнением массива необходима включить генератор случайных чисел Randomize;,после чего записывают примерно так: For i: =I to n Do <Random выбирает случайное число из отрезка от 0 до 99, тогда i-му элементу массива будет присвоена сумма выбранного случайного числа и -25, таким образом, массив будет заполнятся случайными числами от-25 до -25+(99), то есть до 26+100> Распечатка такого массива аналогична первому способу. Третий способ задания – это чтение чисел из файла. Этот способ будет рассматриваться позже. 3.3.Описание типа одномерных массивов.Опишем в разделе типов свой тип — одномерный массив, состоящий из n целых чисел. Type myarray=Array [1. n] of Integer; Попомним , что раздел типов начинается со служебного слова TYRE, после этого идет имя нового типа и его описание. Между именем типа и его описанием ставится знак “равно” (в разделе переменных между именем переменной и ее описанием ставится двоеточие).Тогда: myarray—это имя нового типа; Array-служебное слово (в переводе с английского означает “массив”, ″набор″): [1. n]-в квадратных скобках указывается номер первого элемента, затем, после двух точек, номер последнего элемента массива, пусть в этом примере первый элемент имеет номер 1, а последний – n.. Of—служебное слово (в переводе с английского — ″из″ Integer—тип всех элементов массива. 4.Двумерные массивы.Массивы, положение элементов в которых описываются двумя индексами, называются двумерными. Их можно представить в виде прямоугольной таблицы или матрицы. Рассмотрим матрицу А размерность 2*3, то есть в ней будет две строки, а в каждой строке по три элемента: каждый элемент имеет свой номер, как у одномерных массив, но сейчас номер уже состоит из двух чисел — номера строки, в которой находится элемент, и номера столбца. Таким образом, номер элемента определяется пересечением строки и столбца. Например, а12-это элемент, стоящий в первой строке и втором столбце. Тут вы можете оставить комментарий к выбранному абзацу или сообщить об ошибке. Источник Способы задания одномерных массивовОписание: Заполнить элементы одномерного массива значениями мы можем: вводя значения с клавиатуры; случайным образом; по формуле. Способы задания одномерных массивов Для ввода и вывода числовых значений массива используются циклы. Процедура принимает параметр по ссылке массив Mssiv заданного типа и целую переменную n отвечающую за количество заполняемых ячеек массива. Формирование одномерного массива случайным образом. Дата добавления: 2014-07-24 Размер файла: 11.79 KB Работу скачали: 14 чел. Поделитесь работой в социальных сетях Если эта работа Вам не подошла внизу страницы есть список похожих работ. Так же Вы можете воспользоваться кнопкой поиск Заполнить элементы одномерного массива значениями мы можем: • вводя значения с клавиатуры; Способы задания одномерных массивовДля ввода и вывода числовых значений массива используются циклы. Рассмотрим процедуры, которые бы формировали одномерный массив двумя способами 1) случайным образом, 2) вводом элементов с клавиатуры Предположим, что мы будем работать с массивом целых чисел. Пусть нам достаточно иметь максимальное количество элементов равное 50. Процедура принимает параметр по ссылке массив Massiv заданного типа и целую переменную n , отвечающую за количество заполняемых ячеек массива. Также нам нужна будет локальная переменная i , которая будет выполнять функции параметра цикла и использоваться для указания номера, определяющего местоположение элемента в массиве. 1. Формирование одномерного массива случайным образом. Зададим значение каждого элемента результатом случайной функции Random(10). Заполнение массива зададим циклическим оператором for, в теле которого выполняется вычисление случайного числа функцией Random(10), после чего это значение присваивается очередному i -му элементу массива. Procedure InsertMas1(Var massiv:mas; n:integer); 2. Формирование одномерного массива вводом элементов с клавиатуры. Procedure InsertMas2(Var massiv:mas; n:integer); write (‘Введите ‘, i ,’-ый элемент массива ‘); Вывод массива на экран осуществляется следующим образом: Procedure PrintMas(massiv:mas; n:integer); Надо помнить, что во всех трех случаях нам не обойтись без организации цикла. Поиск максимального (минимального) элемента массива. Пусть мы имеем одномерный массив: 20,-2, 4, 10,7, 21,-12, 0, 4, 17. Подумаем, какие операции нужно выполнить, если требуется найти максимальный элемент. Естественно, операцию сравнения Мы не задумываемся над тем, что сравниваем всегда пару, «пробегая» глазами все элементы массива. Алгоритм поиска максимального (минимального) элемента мы построим таким образом чтобы сравнивать пару чисел, повторяя действие сравнения нужное количество раз. Итак, нам необходимо ответить на два вопроса: 1) какие числа входят в пару, составляющую операцию отношения; 2) сколько раз необходимо повторить операцию сравнения. Введем дополнительную переменную с именем mах. Она и будет одним из чисел, второе число это очередной элемент массива. Для того, чтобы провести первую операцию сравнения необходимо переменной mах присвоить некоторое начальное значение. Здесь могут быть два варианта: 1) присвоить переменной mах первый элемент массива; 2) присвоить число заведомо меньшее всех элементов массива. Массив содержит сведения о количестве студентов каждой группы I курса. Определить группу с максимальным количеством студентов, считая, что номер группы соответствует порядковому номеру числа в массиве (считаем, что такая группа единственная). Другими словами, мы должны найти максимальный элемент и его номер. Источник |