Пример программы на языке Turbo Pascal




Определить превышает ли количество положительных значений функции количество ее отрицательных значений на интервале изменения аргумента от до с шагом .

Program Primer3;

var

y, x, xn, xk, h: real;

i, pol, otr: integer;

begin

write('Начальное значение переменной х='); readln(xn);

write('Конечное значение переменной х='); readln(xk);

write('Расчетный шаг h='); readln(h);

x:=xn; pol:=0; otr:=0;

repeat

y:=sin(3*x)+cos(sqr(x));

writeln('Текущие значения: x=', x:8:4, ' y=', y:8:4);

if y>=0 then pol:=pol+1 else otr:=otr+1;

x:=x+h;

until x >= xk;

if pol>=otr then writeln('Количество Y_пол=', pol, ' Y_отт=',

otr, ' Y_пол>Y_отр') else writeln('Количество Y_пол=', pol, '

Y_отт=', otr, ' Y_пол<Y_отр');

end.

x>xk 1  

Рис. 9 – Схема алгоритма работы программы

Контрольные вопросы

1. Что такое «цикл»?

2. Какие виды циклов есть в Паскале?

3. Обобщенный синтаксис оператора цикла с параметром?

4. Обобщенный синтаксис оператора цикла с предусловием?

5. Обобщенный синтаксис оператора цикла с постусловием?

6. Чем отличается цикл с предусловием от цикла с постусловием?

7. Сколько раз минимум может выполниться цикл с предусловием?

8. Сколько раз минимум может выполниться цикл с постусловием?

9. Какой тип переменной используется для цикла с параметром?

10. Какая форма цикла с параметром применяется для цикла «от большего к меньшему значению»?

11. Какой тип должно иметь условие для цикла с постусловием?

12. Каков шаг изменения переменной–счетчика в цикле с параметром?

13. Для решения каких задач применяется цикл с параметром?

14. Для решения каких задач применяется цикл с предусловием?

15. Для решения каких задач применяется цикл с постусловием?


Лабораторная работа № 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];

Размещение массива в памяти происходит до выполнения программы, поэтому при описании индекса можно применять только константы или константные выражения. Использовать для этого переменные нельзя!

Обычно при описании массива верхняя граница его индекса задается в виде именованной константы. Именованная константа объявляется в разделе описания констант, который располагается перед разделом объявления переменных. Например, массив названий команд – участниц чемпионата по футболу может быть объявлен следующим образом:

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;

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

a[3]

С элементом массива можно делать все, что допустимо для переменных этого же типа. Присвоение значения элементам массива можно делать до начала выполнения программы присвоением, можно вводить значения как исходные данные, а можно получать в результате расчетов.

К типичным операциям с массивами можно отнести: вывод массива; ввод массива; сортировка массива; поиск в массиве заданного элемента; поиск в массиве максимального или минимального элемента.

Содержание лабораторной работы

В лабораторной работе требуется разработать программу на языке программирования Turbo Pascal 7.0 реализующую алгоритмы обработки одномерных массивов в соответствии с Вашим вариантом. Отчет о проделанной работе должен содержать: название и цель работы; номер варианта для выполнения задания и условие своего варианта; блок–схему решения задачи; тексты программ; полученные при расчетах численные результаты и выводы по проделанной лабораторной работе.

Варианты заданий

1. Разработать программу на языке программирования Turbo Pascal:

а) В массиве t(n), где n – заданное число, сформированном случайным образом, найти количество элементов меньших 0,3.

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

2. Разработать программу на языке программирования Turbo Pascal:

а) Массив a(30) сформирован случайным образом. Найти в нём количество элементов меньших среднего арифметического положительных элементов этого массива.

б) В массив внесена стоимость книг в порядке возрастания их номеров в каталоге. Найти самую дорогую и самую дешевую книги (их номера), если всего книг 30.

3. Разработать программу на языке программирования Turbo Pascal:

а) В массиве 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:

а) Элементы массива y сформированы по следующему закону: найти среднее арифметическое положительных элементов массива, где i? [1..n]. Определить в полученном массиве y количество положительных и отрицательных элементов.

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

10. Разработать программу на языке программирования Turbo Pascal:

а) В массиве t (30), сформированном случайным образом, найти количество элементов, стоящих на четных местах, удовлетворяющих условию , где a и b – заданные числа.

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

11. Разработать программу на языке программирования Turbo Pascal:

а) В массиве y (30), сформированном случайным образом, найти максимальный элемент и его номер.

б) В массиве хранится 10 случайных чисел в интервале [-1,1]. Найти количество положительных и отрицательных чисел. Определить, во сколько суммарное количество положительных чисел превышает отрицательных.

12. Разработать программу на языке программирования Turbo Pascal:

а) В массиве b (40), сформированном случайным образом, найти количество элементов, стоящих на нечетных местах, удовлетворяющих условию , где d и t – заданные числа.

б) В массиве содержится сумма заработной платы работающих в цехе по порядку их номеров в ведомости (их всего 20). Найти среднюю заработную плату. Определить сколько работающих получают больше средней заработной платы, а сколько меньше.

13. Разработать программу на языке программирования Turbo Pascal:

а) Элементы массива a сформированы следующим образом: Найти среднее арифметическое положительных элементов этого массива, где i? [1..n].

б) В массив внесен рост учеников класса из 20 человек. Найти самый максимальный и самый минимальный рост.

14. Разработать программу на языке программирования Turbo Pascal:

а) Сформировать массив c по следующему принципу: . Перенести положительные элементы массива в массив y (подряд) а отрицательные элементы в массив x (подряд).

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

15. Разработать программу на языке программирования Turbo Pascal:

а) В массиве b(25), сформированном случайным образом, найти количество элементов, удовлетворяющих условию , где l, m – заданные числа.

б) В массив внесены результаты соревнований по бегу в порядке возрастания номеров участников (их всего 20). Найти значение самого лучшего результата и самого худшего.

16. Разработать программу на языке программирования Turbo Pascal:

а) Даны два массива. Массив t(20) задан произвольно. Элементы массива d(20) сформированы следующим образом: Заменить все отрицательные элементы массива d(20) средним арифметическим положительных элементов массива t. Вывести новый массив d.

б) В массиве хранятся оценки студента в сессию (результаты пяти экзаменов). Определить к какой категории (отличник, занимающийся на 4 и 5, троечник) относится данный студент.

17. Разработать программу на языке программирования Turbo Pascal:

а) В массиве t(10) найти среднее геометрическое положительных элементов и среднее арифметическое отрицательных элементов.

б) Экзаменационная ведомость может содержать n фамилий с оценками по физике. Определить количество абитуриентов, получивших двойки и пятерки.

18. Разработать программу на языке программирования Turbo Pascal:

а) Даны два массива. Массив d(16) задается произвольно. Элементы массива c(16) формируются следующим образом: Расположить элементы массива c в порядке убывания.

б) Товарная ведомость содержит n позиций со стоимостью товаров. Найти количество товаров, цена которых выше некоторой величины.

19. Разработать программу на языке программирования Turbo Pascal:

а) Даны два массива t(20) и s(20). Найти среднее геометрическое положительных элементов массива t и заменить им все отрицательные элементы массива s.

б) Товарная ведомость содержит n позиций со стоимостью товаров. Расположить суммы стоимости в порядке убывания.

20. Разработать программу на языке программирования Turbo Pascal:

а) Даны два массива. Элементы массива d(15) заданы произвольно, а элементы массива a(15) сформированы случайным образом. Сложить массивы d и a. Найти в новом массиве второй отрицательный элемент и вывести его на печать. Если количество отрицательных элементов меньше двух, то дать об этом сообщение.

б) Товарная ведомость содержит n позиций со стоимостью товаров. Расположить суммы стоимости в порядке их возрастания.

21. Разработать программу на языке программирования Turbo Pascal:

а) Даны два массива x(12) и y(10). В массиве y все нулевые элементы заменить средним арифметическим элементов массива x.

б) Балансовый отчет содержит n позиций с указанием величины и знака баланса. Распечатать вначале значения всех положительных балансов, а затем значения всех отрицательных балансов.

22. Разработать программу на языке программирования Turbo Pascal:

а) Произвести сортировку массива t(30), записав положительные элементы в массив y подряд, а отрицательные – в массив x подряд.

б) Ведомость заработной платы содержит n позиций. Определить сколько человек получают зарплату на 60 процентов больше средней, сколько человек получают зарплату на 50 процентов ниже средней.

23. Разработать программу на языке программирования Turbo Pascal:

а) Элементы массива y(20) сформированы следующим образом: Найти максимальный и минимальный элементы массива y и поменять их местами.

б) В списке указаны суммы вкладов n вкладчиков. Расположить эти суммы в порядке убывания сумм вкладов.

24. Разработать программу на языке программирования Turbo Pascal:

а) Найти разность элементов двух массивов t (12) и n (12) и определить номер строки, для которой эта разность максимальна.

б) Ведомость заработной платы сотрудников учреждения содержит n позиций. Найти минимальную заработную плату и определить насколько она ниже средней.

25. Разработать программу на языке программирования Turbo Pascal:

а) Даны два массива k (15) и d (5). Из отрицательных элементов массивов k и d сформировать массив z (20), содержащий только отрицательные элементы. Если отрицательных элементов в массивах k и d окажется меньше 20, дополнить оставшиеся места –1.

б) Результаты соревнований по плаванию оформлены в виде протокола, содержащего информацию о времени прохождения дистанции. Определить сколько из n участников заплыва заслуживают присвоения I разряда (результат ≤t) и сколько – II разряда (t< результат ≤l).

26. Разработать программу на языке программирования Turbo Pascal:

а) Массив b (28) сформирован случайным образом. Найти максимальный элемент в нем. Рассортировать элементы после этого элемента в порядке убывания.

б) Балансовый отчет содержит n позиций с указанием величины и знака баланса. Распечатать вначале значения всех положительных балансов, затем значения всех отрицательных балансов.

27. Разработать программу на языке программирования Turbo Pascal:

а) Найти сумму элементов двух массивов a (15) и b (15) и определить номер строки, для которой эта сумма максимальна.

б) Результаты месячной работы n участников цеха сведены в таблицу, где указан баланс доходов–расходов. Определить количество участников, которые имели отрицательный баланс.

28. Разработать программу на языке программирования Turbo Pascal:

а) Известны данные по продаже компьютеров в течении недели. Найти общее количество проданных компьютеров.

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

29. Разработать программу на языке программирования Turbo Pascal:

а) Курс доллара в течение года менялся в диапазоне от 28 руб. до 30 руб. Найти наибольшее значение курса доллара. В качестве результата вывести номер месяца и значение курса доллара.

б) Известен месячный план выпуска некоторой продукции и объемы выпущенной продукции заводом за год (помесячно). Определить месяц, в котором было максимальное отклонение от плана. В качестве результата вывести номер месяца и отклонение.

30. Разработать программу на языке программирования Turbo Pascal:

а) Даны результаты сдачи экзамена по информатике группы из 15 студентов. Подсчитать количество студентов, не сдавших экзамен, в численном и в процентном соотношении.

б) Известны данные по продаже компьютеров в течение недели. Расположить эти данные в порядке возрастания.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-08-20 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: