Какими способами можно заполнить массив значениями

§ 26. Типовые задачи обработки массивов

Заполнение массива

Значения массива могут задаваться вводом с клавиатуры, чтением из файла или вычислением в программе. В некоторых задачах статистического характера требуется заполнять массивы случайными числами.

Пример 1. Заполнить массив равномерно распределенными целыми случайными числами в диапазоне от 0 до 100.

Со стандартной функцией Random (x) вы уже знакомы. Напомним, что она возвращает псевдослучайное целое число в диапазоне от 0 до х — 1.

Если требуется изменить диапазон случайных чисел, то это всегда можно сделать путем сдвига. Например, если нужно получить числа в диапазоне от -50 до 50, то в программе пишется оператор присваивания:

Для получения вещественных случайных чисел используется функция Random без аргумента. Она возвращает случайные дробные значения в диапазоне [О,1). С помощью сдвига и множителя эти значения можно привести к любому диапазону. Например, следующее выражение будет вычислять случайное вещественное число в диапазоне значений от —5 до 5: 10*Random-5.

Пример 2. Заполнить верхнетреугольную матрицу указанного вида и вывести ее на экран.

Пояснение: для элементов M[i, j] матрицы M, расположенных в верхнем треугольнике (включая диагональ), выполняется следующее соотношение между индексами: j ≤ i.

Пример 3. Выбор максимального элемента. В одномерном массиве X из примера 1 требуется определить наибольшее значение среди значений элементов и его порядковый номер (индекс).

Идея алгоритма решения этой задачи следующая: чтобы в переменной Хтах получить максимальное значение массива X, сначала в нее заносится первое значение массива Х[1]. Затем значение Хmах поочередно сравнивается с остальными элементами массива, и каждое значение, большее Хmах, присваивается этой переменной. Для получения номера максимального элемента массива в целочисленной переменной imax следует записывать в нее номер элемента массива X одновременно с занесением значения в Хmах. На Алгоритмическом языке это запишется так:

Заметим, что если в массиве X несколько значений, равных максимальному, то в imax будет получен первый номер из этих элементов. Чтобы получить номер последнего элемента, равного максимальному, нужно в ветвлении если заменить знак отношения > на >=. Для нахождение минимального элемента массива достаточно заменить знак отношения «больше» на «меньше».

Оформим в виде процедуры на Паскале подпрограмму поиска максимального элемента в одномерном массиве. Заполним одномерный массив случайными числами (как в примере 1). С помощью процедуры найдем в нем максимальное значение и индекс его первого вхождения в массив.

Процедура MaxArray имеет три параметра: исходный массив А, МахА — переменную для найденного максимального значения, k — переменную для индекса максимального значения. При обращении к процедуре им соответствуют фактические параметры: X, Хmax, imax. Размер массива определяется глобальной константой n, значение которой используется как в основной программе, так и в процедуре.

Пример 4. Сортировка массива. В одномерном массиве X из N элементов требуется произвести перестановку значений так, чтобы они расположились по возрастанию, т. е. X1 ≤ Х2 ≤ . ≤ XN.

Читайте также:  Способы эффективного тайм менеджмента

Существует целый класс алгоритмов сортировки. Ниже описан алгоритм, который называется методом пузырька.

Идея алгоритма: производится последовательное упорядочивание смежных пар элементов массива: Х1 и Х2, Х2 и Х3, . . ., ХN-1 и XN. В итоге максимальное значение переместится в XN. Затем ту же процедуру повторяют до ХN-1 и т. д., вплоть до цепочки из двух элементов Х1 и Х2. Такой алгоритм будет иметь структуру двух вложенных циклов, причем внутренний цикл переменной (сокращающейся) длины.

Для сортировки массива по убыванию значений достаточно заменить знак отношения «больше» на «меньше».

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


    Пример 5.

В § 24 было рассмотрено описание двумерного массива, содержащего среднемесячные температуры за 10 лет, с 2001 по 2010 год. Определить, в каком году за этот период было самое теплое лето, т. е. в каком году была наибольшая средняя температура летних месяцев.

Идея решения: в одномерном массиве S получить средние температуры летних месяцев за каждый год из 10 лет. Затем найти номер наибольшего элемента в этом массиве, это и будет искомый год.

Система основных понятий

Вопросы и задания

  1. Какими способами можно заполнить массив значениями?
  2. Как можно вычислять целые случайные числа в диапазоне от -50 до 0?
  3. Как можно вычислять вещественные случайные числа в диапазоне от 2,5 до 10?
  4. Даны два вектора i>, i>, i = 1, . . ., 10, упорядоченные по возрастанию. Соедините их в один вектор i>, i = 1, . . ., 20 так, чтобы сохранилась упорядоченность.
  5. Дан массив, состоящий из 100 целых чисел. Выведите все числа, которые встречаются в этом массиве:

а) несколько раз;

б) только по одному разу.

  • В целочисленной матрице размером 10 х 10 найдите максимальное значение и индексы всех элементов, равных ему.
  • Матрицу размером 5 х 10 заполните случайными двоичными цифрами (0 и 1). Определите номер строки с наибольшим количеством нулей.
  • В двоичной матрице размером 10 х 10 (см. задание 7) найдите совпадающие строки.
  • Источник

    Какими способами можно заполнить массив значениями

    Массив, описанный как типизированная константа, уже содержит данные.

    Массивы, объявленные в разделе описания переменных, необходимо заполнить данными, прежде чем выполнять с ними какие-либо действия.

    Значения элементов массива также можно задать следующими способами:

    • при вводе данных с клавиатуры (см. листинг 4.1);

    • с помощью датчика случайных чисел (см. листинг 4.2);

    • присваиванием заданных значений;

    • считывая значения элементов из файла.

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

    Например, «слепой», без использования комментариев, ввод с клавиатуры:

    • вектора из 5 элементов:

    for i:=l to 5 do readln(a[i]);

    • матрицы размером 3×2 (всего потребуется ввести 6 чисел):

    На практике ввод элементов массива обычно сопровождается выводом соответствующих поясняющих текстов (см. листинг 4.2).

    Ввод данных с клавиатуры является основным, но не единственным способом заполнения массивов. Довольно часто массив заполняется при помощи присваивания элементам определенных или случайных значений.

    Например, фрагмент программы заполнения одномерного массива х из n элементов случайными числами в диапазоне от 0 до 99 включительно выглядит так:

    Заполнение массивов случайными числами часто используется при математическом моделировании и в играх для создания «случайной» ситуации.

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

    Например, обнуление элементов двумерного массива а выглядит следующим образом:

    &nbspпредыдущая &nbsp &nbsp &nbsp &nbsp &nbspменю &nbsp &nbsp &nbsp &nbsp вверх &nbsp &nbsp &nbsp &nbsp &nbspследующая

    Источник

    Одномерные массивы в Паскале

    Работа с одномерными массивами на языке программирования Паскаль

    Массив — самая распространенная структура хранения данных, присутствующая в любом языке программирования.

    В Pascal используются одномерные и двумерные массивы. В школьной программе обычно их изучают в 9-10 классах.

    Одномерный массив — это конечное количество однотипных элементов, объединенных общим именем. Каждому элементу присвоен свой порядковый номер. Обращение к элементам происходит по имени массива и индексу (порядковому номеру).

    Одномерный числовой массив

    Одномерные массивы называют линейными, так как элементы расположены друг за другом. Их можно представить в виде таблицы, в которой всего две строки. В первой перечислены индексы элементов, а во второй — значения элементов.

    Одномерный массив. Обозначение элементов

    Имя массива формируется по тем же правилам, что и имя любой другой переменной в программе. Границы индексов задают при описании массива в квадратных скобках. Удобнее задавать начальный индекс равный единице. Конечный индекс определяется условием задачи и численно равен размеру массива — количеству элементов. Числовые массивы могут содержать целые и действительные числа. Тип элементов указывается в описании. Смотрите рисунок выше.

    Способы заполнения одномерных массивов

    В наших примерах будем использовать одномерный массив целых чисел, состоящий из пяти элементов. Для этого выполним его описание в разделе переменных

    Источник

    Способы заполнения одномерных массивов

    Дата добавления: 2015-07-23 ; просмотров: 1713 ; Нарушение авторских прав

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

    Пример 1.Заполнить одномерный массив элементами, отвечающими следующему соотношению:

    Write(‘Введите количество элементов массива’);ReadLn(N);<Заполнение массива>A[1]:=1; A[2]:=1;For i:=3 to N do А[i]:=А[i-2]+A[i-1];

    2) Ввод значений элементов массива с клавиатурыиспользуется, когда между элементами не наблюдается никакой зависимости.

    Пример 2.Заполнить массив последовательностью чисел

    Write(‘Введите количество элементов массива’);ReadLn(N);<Заполнение массива>For i:=1 to N do begin Write(‘Введите значение A[‘,i:2,’]’); ReadLn(A[i]); end;

    3) Заполнение массива случайными числами. Случайным называется число, появление которого не связано ни с какой закономерностью. Например, случайным является число, выпадающее при бросании кубика для игры в кости. А сам кубик можно рассматривать как генератор случайных чисел. Во всех языках программирования реализованы генераторы случайных чисел. В языке TurboPascal для инициализации генератора случайных чисел используется функция Randomize, а само случайное число можно получить, если использовать функцию Random. Например: у:=Random(x); здесь у – целое случайное число в интервале от 0 до х–1, х – целое число, задающее верхнюю границу интервала случайных чисел. Чтобы получить случайное число в интервале от А до В (А

    Randomize;For i:=1 to 10 do A[i]:=random(10); число в диапазоне от 0 до 10>

    Источник

    Урок 21. Заполнение массива и вывод на экран

    Урок из серии: «Язык программирования Паскаль»

    Скачать исходные коды примеров
    После объявления массива с ним можно работать. Например, присваивать значения элементам массива и вообще обращаться с ними как с обычными переменными. Для обращения к конкретному элементу необходимо указать идентификатор (имя) массива и индекс элемента в квадратных скобках.

    Например, запись Mas[2], A[10] позволяет обратиться ко второму элементу массива MAS и десятому элементу массива A. При работе с двумерным массивом указывается два индекса, с n-мерным массивом — n индексов.

    Например, запись Matr[4, 4] делает доступным для обработки значение элемента, находящегося в четвертой строке четвертого столбца массива M.

    Индексированные элементы массива называются индексированными переменными. За границы массива выходить нельзя. То есть, если в массиве Mas пять элементов, то обращение к шестому или восьмому элементу приведет к ошибке.

    Рассмотрим типичные операции, возникающие при работе с одномерными массивами.

    Заполнение одномерного массива значениями

    Заполнение и вывод массива можно осуществить только поэлементно, то есть можно сначала присвоить значение первому элементу, затем второму и так далее, то же самое и с выводом на экран — выводим первый, второй, третий и так до последнего.

    Паскаль не имеет средств ввода-вывода элементов массива сразу, поэтому ввод и значений производится поэлементно. Значения элементу массива можно присвоить с помощью оператора присваивания, или ввести с клавиатуры с помощью операторов Read или Readln. Очень удобно перебирать все элементы массива в цикле типа for.

    Способы заполнения одномерных массивов:

    1. Ввод значения с клавиатуры.
    2. Задание значений в операторе присваивания с помощью генератора случайных чисел. Этот способ более удобен, когда много элементов в массиве (ввод их значений с клавиатуры занимает много времени).
    3. Задание значений по формуле.
    4. Ввод элементов массива из файла

    1. Ввод значений элементов массива с клавиатуры. В связи с тем, что использовался оператор Readln, каждое значение будет вводиться с новой строки.

    2. Заполнение массива числами, сгенерированными случайным образом из интервала [a; b]. Подключаем датчик случайных чисел — функцию random.

    3. Заполнение массива по формуле. Каждому элементу массива присваивается значение, вычисленное по формуле. Если каждый элемент массива равен утроенному значению его порядкового номера (индекса), то процедура будет иметь вид:

    4. Чтение чисел из файла. Нужно заранее создать текстовый файл, в который запишите несколько строк, в каждой из которых по 30 чисел.

    Вывод значений элементов массива на экран

    Вывод значений элементов массива на экран выполняется, как и ввод, поэлементно в цикле. Для вывода будем использовать операторы Write или Writeln. В качестве входных параметров будем передавать процедуре не только массив, но и количество элементов, которые надо вывести, начиная с первого (это понадобится нам, когда мы будем удалять и добавлять элементы в массиве).

    Пример 1. Заполнить массив с клавиатуры и вывести его на экран.

    В программе будет использоваться две процедуры: процедура Init1 (заполнение массива с клавиатуры) и процедура Print (вывод массива на экран).

    Пример 2. Заполнить массив из текстового файла и вывести на экран. В текстовом файте несколько строк, в каждой строке по 30 чисел.

    Вы научились заполнять одномерный массив и выводить его на экран.

    На следующем уроке продолжим знакомиться с алгоритмами обработки одномерных массивов.

    Источник

    Читайте также:  Как убрать брыли самый эффективный способ
    Оцените статью
    Разные способы