- •Программирование на языке Паскаль: работа с одномерными массивами
- •Суммирование двух массивов а и в в результирующий массив с.
- •Объединение массивов в один с чередованием элементов исходных массивов
- •Инвертировать массив с
- •Программный код:
- •Поиск максимального элемента в массиве а с запоминанием индекса
- •Удаление элемента из заданной позиции последовательности
- •Результат:
- •Вспомогательные переменные:
- •Вставка элемента в заданную позицию последовательности
- •Результат:
Удаление элемента из заданной позиции последовательности
Требуется удалить из массива размером N элемент с заданным индексом К и осуществить сдвиг всех последующих элементов на одну порцию влево.
Для решения задачи необходимо организовать цикл по параметру I от К до N. На место I-го элемента помещать I+1 элемент, т.е. аi=ai+1.
Результирующий массив будет размером N-1.
Используемые переменные:
Исходные данные:
A – массив размером N
N – размер массива
K – индекс элемента, который удаляется
Результат:
А – массив после преобразования размером N-1
Вспомогательные переменные:
I – индекс элемента массива А
Схема алгоритма изображена на рис.14.
Программный код:
writeln (‘ввести номер позиции удаления элемента’); readln (K);
FOR I := K TO N -1 do A[I] := A[I+1];
N := N – 1ж
|
|
Рис.11.Схема алгоритма Сортировка элементов массива простым выбором. |
Рис.12. Схема алгоритма Пузырьковая сортировка массива с признаком. |
Вставка элемента в заданную позицию последовательности
Просмотр массива осуществляется с конца до позиции К. Каждый элемент сдвигается на одну позицию вправо. В К-позицию записывается значение элемента. Размер массива увеличивается на 1.
Используемые переменные:
Исходные данные:
A – массив размером N
N – размер массива
K – номер позиции, в которую производится вставка элемента
Q – значение элемента, вставляемого в К-позицию
Результат:
А – преобразованный массив
Вспомогательные переменные: I – индекс
Программный код
writeln (‘ввести номер позиции вставки элемента’); readln (K);
FOR I := N DOWNTO K do A[I+1] := A[I];
N = N + 1;
writeln (‘значение вставляемого элемента’); readln (Q);
A[K] = Q;
Задачи для самостоятельной работы
Задача 1. Выбрать способ представления данных и составить список используемых переменных. Сформулировать задачу математически. Составить схему алгоритма и программу.
Таблица 3.9
№ варианта |
Задание |
|
|
Информация о количестве выпадавших в течение месяца осадках задана в виде массива. Определить общее количество осадков за месяц. Указание: Максимальный размер месяца – 31. Число дней конкретного месяца ввести оператором ввода. |
|
|
Информация о температуре воздуха за месяц задана в виде массива. Определить сколько раз температура опускалась ниже 0С. См указание в варианте 1. |
|
|
Информация о среднесуточной температуре воздуха за месяц задана в виде массива. Определить сколько дней температура была ниже среднемесячной. См указание в варианте 1. |
|
|
Сила и направление ветра на горном плато регистрируются один раз в день по очереди двумя исследователями. Свести результаты в один массив, где ai – измерение первого исследователя, ai+1 – второго. Направление ветра кодируется следующим образом: 1 – северный, 2 – южный, 3 – восточный, 4 – западный, 5 – северо-западный, 6 – северо-восточный, 7 – юго-западный, 8 – юго-восточный. |
|
|
Информация о количестве осадков, выпадавших в течение месяца, и о температуре воздуха задана в виде двух массивов. Определить, какое количество осадков выпало в виде дождя, какое – в виде снега. Считать, что идет дождь, если температура воздуха больше 0С. См указание в варианте 1. |
|
|
Рост студентов группы представлен в виде массива. Рост девушек кодируется знаком «+», рост юношей знаком «-». Определить средний рост юношей. |
|
|
В области 10 районов. Известны площади, засеваемые пшеницей (S), и средняя урожайность (U) в каждом районе. Определить количество пшеницы, собранное в области, и среднюю урожайность по области. |
|
|
Ртутные термометры применяются для измерения температуры до -39,4С. Используя информацию о минимальной температуре, зафиксированной в каждый из последних 100 лет в г. Екатеринбурге. Определить, можно ли поставлять ртутные термометры в этот город. |
|
|
При поступлении в университет абитуриенты, получившие двойку на первом экзамене, ко второму не допускаются. Подсчитать, сколько человек не допущено ко второму экзамену. |
|
|
Пригодность детали оценивается по размеру B, который должен соответствовать интервалу (A - , A + ). определить, имеются ли в партии из N деталей бракованные. Если да, то подсчитать их количество, иначе выдать отрицательный ответ. |
|
|
У Вас есть доллары. Вы хотите обменять их на рубли. Есть информация о стоимости купли-продажи в банках города. В городе N банков. Составьте программу, определяющую, какой банк выбрать, чтобы выгодно обменять доллары на рубли. |
|
|
У прилавка магазина выстроилась очередь из n покупателей. Время обслуживания i-го покупателя равно ti. определить время Ci пребывания i-го покупателя в очереди. |
|
|
Каждый солнечный день улитка, сидящая на дереве, поднимается вверх на 2 см, а каждый пасмурный день опускается вниз на 1 см. В начале наблюдения улитка находилась в А см от земли на В-метровом дереве. Имеются сведения о том, был ли соответствующий день пасмурным или солнечным. Написать программу, определяющую местоположение улитки к концу 30-го дня наблюдения. |
|
|
Таблица выигрышей лотереи представлена в виде двух массивов: натуральные ai – выигравшие номера (а1 < … < an), действительные положительные ci – выигрыши в рублях на соответствующие номера. Найти выигрыши, выпавшие на номера Ваших билетов. Если номера нет в таблице, выигрыш считается равным нулю. |
|
|
Таблица выигрышей лотереи представлена в виде двух массивов: натуральные ai – выигравшие номера (а1 < … < an), действительные положительные ci – выигрыши в рублях на соответствующие номера. Найти суммарный выигрыш, выпавший на номера Ваших билетов. Если номера нет в таблице, выигрыш считается равным нулю. |
|
|
Магазин «Компьютерные аксессуары» продал за квартал компьютерные игры 7 наименований по цене, устанавливаемой в начале квартала. Определить доход от каждой игры, номер игры, принесшей наименьший доход. |
|
|
Магазин «Компьютерные аксессуары» продал за квартал компьютерные игры 7 наименований по цене, устанавливаемой в начале квартала. Определить доход по всем играм, номер игры, принесшей наибольший доход. |
|
|
В автоколонне 10 автомобилей. Каждый автомобиль, работая 6 дней в неделю, расходует определенное количество бензина. Рассчитать всего стоимость бензина, израсходованного за неделю. Определить самый экономичный автомобиль. |
|
|
Магазин «Виртуальный мир» продал за 1 месяц некоторое количество компьютеров различных типов (12 типов). Цены на компьютеры устанавливались в начале месяца. Рассчитать доход от каждого компьютера за месяц. Определить количество компьютеров, цены на которые меньше К. |
|
|
В течение недели со склада 9-ти потребителям доставили груз (тонны). Известно расстояние от каждого склада до каждого потребителя. Рассчитать объем перевозок в тонно-километрах для каждого потребителя, общий объем перевозок в тоннах. |
|
|
В течение рабочей недели рабочий изготавливает детали 9-ти наименований. Известно количество изготовленных им деталей за неделю и стоимость изготовления одной детали каждого типа. Рассчитать заработок рабочего по каждой детали. Определить номер детали с наименьшей стоимостью. |
|
|
Книжный магазин продал за 3 месяца различное количество книг (10 наименований) по цене, устанавливаемой в начале квартала. Рассчитать доход по каждой книге за 3 месяца. Определить наименование книги, принесшей наибольший доход. |
|
|
Рост студентов группы представлен в виде массива. Рост девушек кодируется знаком «+», рост юношей знаком «-». Определить средний рост девушек. |
|
|
При поступлении в университет абитуриенты, получившие «двойку» на первом экзамене, ко второму не допускаются. Считая фамилии абитуриентов и их оценки после первого экзамена исходными данными, составить список допущенных ко второму экзамену. |
|
|
При выборе места строительства жилого комплекса при металлургическом заводе необходимо учитывать «розу ветров» в данной местности. На основании данных ежедневного определения ветра, проводимого в течение года, определить целесообразное расположение промышленной и жилой зон. Правило кодирования направления ветра задано в варианте 4. |
Задача 2. Сформировать одномерный массив действительными случайными числами в диапазоне (K, L), N12. Упорядочить массив двумя способами, один метод применить для сортировки по убыванию, другой – по возрастанию.
