ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 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