ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 06.01.2026
Просмотров: 452
Скачиваний: 0
x>xk
1
Рис. 9 – Схема алгоритма работы программы
37
Контрольные вопросы
1.Что такое «цикл»?
2.Какие виды циклов есть в Паскале?
3.Обобщенный синтаксис оператора цикла с параметром?
4.Обобщенный синтаксис оператора цикла с предусловием?
5.Обобщенный синтаксис оператора цикла с постусловием?
6.Чем отличается цикл с предусловием от цикла с постусловием?
7.Сколько раз минимум может выполниться цикл с предусловием?
8.Сколько раз минимум может выполниться цикл с постусловием?
9.Какой тип переменной используется для цикла с параметром?
10.Какая форма цикла с параметром применяется для цикла «от большего к меньшему значению»?
11.Какой тип должно иметь условие для цикла с постусловием?
12.Каков шаг изменения переменной–счетчика в цикле с параметром?
13.Для решения каких задач применяется цикл с параметром?
14.Для решения каких задач применяется цикл с предусловием?
15.Для решения каких задач применяется цикл с постусловием?
38
Лабораторная работа № 4. Работа с одномерными массивами
Цель работы: изучение принципов работы с одномерными масси- вами на языке программирования Pascal. Получение навыков приме- нения основных алгоритмов для решения задач с использованием од- номерных массивов.
Теоретические сведения
Массив – это конечная поименованная совокупность элементов одинакового типа. Число элементов в массиве называется размерно- стью массива. Каждый элемент массива задается своим порядковым номером в массиве – так называемым индексом. Примером может служить список фамилий студентов одной группы, где каждый сту-
дент однозначно определяется своим порядковым номером в списке (индексом в массиве).
Перед использованием массив, как и любая переменная в Pascal– программах, должен быть объявлен в разделе объявления перемен- ных. В общем виде объявление массива выглядит так:
<имя> : array [<нижний_индекс> .. <верхний_индекс>] of <тип>;
Здесь:
<имя> – имя переменной массива;
array – ключевое слово, обозначающее, что переменная является массивом;
<нижний_индекс> и <верхний_индекс> – целые числа, опреде-
ляющие диапазон изменения индексов (номеров) элементов массива и, неявно, количество элементов (размер) массива;
<тип> – тип элементов массива. Примеры объявления массивов: temper: array[1..31] of real; koef: array[0..2] of integer; name: array[1..30] of string[25];
Размещение массива в памяти происходит до выполнения про- граммы, поэтому при описании индекса можно применять только кон- станты или константные выражения. Использовать для этого пере- менные нельзя!
Обычно при описании массива верхняя граница его индекса зада- ется в виде именованной константы. Именованная константа объявля-
39
ется в разделе описания констант, который располагается перед разде- лом объявления переменных. Например, массив названий команд –
участниц чемпионата по футболу может быть объявлен следующим образом:
const
NT=18; {число команд}
SN=25; {предельная длина названия команды} var
team: array[1..NT] of string[SN]
Массив может быть также описан следующим образом:
type <имя_типа> = array[<нижний_индекс> .. <верхний_индекс>] of <тип>;
где
type – зарезервированное слово, используемое для создания поль- зовательского типа данных.
Примеры описания типа массивов:
Type
M=array[1..10] of integer; AR=array[0..15] of real; VT=array[–5..5] of string[10]
В первом операторе описан тип массива из целых чисел, которые нумеруются от 1 до 10. Во втором операторе элементами массива яв- ляются вещественные числа пронумерованные от 0 до 15. Соответст-
венно в третьем примере описан тип массива строковых переменных с изменением индексов от –5 до 5.
После задания типа массива переменные этого типа описываются обычным образом:
var a:m; b:ar; c:vt;
Тип элементов массива может быть любым, кроме файлового, тип индексов – интервальным, перечисляемым или byte.
С массивами в целом можно выполнять только одну операцию: присваивание. При этом массивы должны быть одного типа, напри- мер:
d:=a;
40
Сотдельными элементами массива выполняются все остальные действия. Для обращения к элементу массива после имени массива указывается номер элемента массива в квадратных скобках:
a[3]
Сэлементом массива можно делать все, что допустимо для пере- менных этого же типа. Присвоение значения элементам массива мож- но делать до начала выполнения программы присвоением, можно вво- дить значения как исходные данные, а можно получать в результате расчетов.
К типичным операциям с массивами можно отнести: вывод масси- ва; ввод массива; сортировка массива; поиск в массиве заданного эле- мента; поиск в массиве максимального или минимального элемента.
Содержание лабораторной работы
В лабораторной работе требуется разработать программу на языке программирования Turbo Pascal 7.0 реализующую алгоритмы обра- ботки одномерных массивов в соответствии с Вашим вариантом. От- чет о проделанной работе должен содержать: название и цель работы; номер варианта для выполнения задания и условие своего варианта; блок–схему решения задачи; тексты программ; полученные при рас-
четах численные результаты и выводы по проделанной лабораторной работе.
Варианты заданий
1. Разработать программу на языке программирования Turbo Pascal: а) В массиве t(n), где n – заданное число, сформированном случай-
ным образом, найти количество элементов меньших 0,3.
б) В массив произвольного размера внесены суммы месячного за- работка в порядке возрастания табельного номера. Найти количество работающих, чья зарплата ниже средней и количество работающих, чья зарплата выше средней.
2. Разработать программу на языке программирования Turbo Pascal: а) Массив a(30) сформирован случайным образом. Найти в нём ко-
личество элементов меньших среднего арифметического положитель- ных элементов этого массива.
б) В массив внесена стоимость книг в порядке возрастания их но- меров в каталоге. Найти самую дорогую и самую дешевую книги (их номера), если всего книг 30.
3. Разработать программу на языке программирования Turbo Pascal:
41
а) В массиве s(20) найти нулевые элементы и заменить их средним арифметическим положительных элементов массива t(15).
б) В массив занесено население 12–ти городов в соответствии с их кодировочными номерами от 1 до 12. Найти номер города, население которого минимально. Вывести числовое значение населения этого города.
4. Разработать программу на языке программирования Turbo Pascal: а) Массив b(25) сформирован случайным образом. Поменять мес-
тами в этом массиве максимальный и минимальный элементы.
б) В массив внесены суммы вкладов вкладчиков, которые зашиф- рованы номерами. Найти среднюю сумму вкладов. Определить сколь- ко вкладчиков имеют вклады выше средней суммы.
5. Разработать программу на языке программирования Turbo Pascal: а) В массиве y(60), сформированном случайным образом, произве-
сти сортировку, расположив элементы в порядке возрастания.
б) В массив внесен месячный баланс 12 подразделений предпри- ятия. Найти количество подразделений, имеющих отрицательный ба- ланс. Найти номер подразделения с наибольшей суммой баланса.
6. Разработать программу на языке программирования Turbo Pascal: а) В массиве y(25), сформированном случайным образом, найти
среднее геометрическое модулей всех ненулевых элементов.
б) В массив внесен годовой баланс предприятия. Найти среднее значение суммы баланса за год. Определить, в какие месяцы (по номе- рам) баланс был меньше средней величины.
7. Разработать программу на языке программирования Turbo Pascal: а) В массиве b(20), сформированном случайным образом, произве-
сти сортировку, расположив элементы в порядке убывания.
б) В массив внесены оценки ученика по определенному предмету (их 10). Найти среднюю оценку ученика по этому предмету. Опреде- лить сколько пятерок получил ученик в четверти.
8. Разработать программу на языке программирования Turbo Pascal: а) В массиве d(12) найти среднее геометрическое положительных
элементов массива.
б) В массив внесены результаты контрольной работы в классе по математике. Отсутствующие ученики кодируются оценкой 0. Опреде- лить количество отсутствующих и получивших 4 и 5 (вместе).
9. Разработать программу на языке программирования Turbo Pascal:
42
а) Элементы массива y сформированы по следующему закону:
ì |
2 |
i |
2 |
, если i - четное, найти среднее арифметическое положи- |
ïcos |
|
|
||
yi = í |
i |
|
|
, если i - нечетное, |
sin |
|
|
||
ï |
|
2 |
|
|
î |
|
|
||
тельных элементов массива, где i € [1..n]. Определить в полученном массиве y количество положительных и отрицательных элементов.
б) В массив внесены результаты контрольной работы в классе по физике. Найти средний балл учащихся, полученный по этой кон- трольной. Подсчитать количество пятерок, четверок, троек и двоек (в классе 25 учащихся).
10. Разработать программу на языке программирования Turbo Pascal: а) В массиве t(30), сформированном случайным образом, найти ко-
личество элементов, стоящих на четных местах, удовлетворяющих условию a < ti < b , где a и b – заданные числа.
б) В массиве содержатся результаты соревнований по плаванию, введенные по возрастанию номеров участников. Определить номер участника, показавшего лучший результат, если их было 25.
11. Разработать программу на языке программирования Turbo Pascal: а) В массиве y(30), сформированном случайным образом, найти
максимальный элемент и его номер.
б) В массиве хранится 10 случайных чисел в интервале [-1,1]. Най- ти количество положительных и отрицательных чисел. Определить, во сколько суммарное количество положительных чисел превышает от- рицательных.
12. Разработать программу на языке программирования Turbo Pascal: а) В массиве b(40), сформированном случайным образом, найти
количество элементов, стоящих на нечетных местах, удовлетворяю- щих условию d < bi < t , где d и t – заданные числа.
б) В массиве содержится сумма заработной платы работающих в цехе по порядку их номеров в ведомости (их всего 20). Найти сред- нюю заработную плату. Определить сколько работающих получают больше средней заработной платы, а сколько меньше.
13. Разработать программу на языке программирования Turbo Pascal:
а) |
Элементы массива |
a сформированы следующим |
образом: |
|
ì |
2 |
i, если i - нечетное, |
Найти среднее арифметическое |
положи- |
ïtg |
|
|||
ai = í |
|
i , если i - четное. |
|
|
sin |
|
|
||
ï |
|
2 |
|
|
î |
|
|
|
|
тельных элементов этого массива, где i € [1..n].
43