Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
mathcad_book.pdf
Скачиваний:
52
Добавлен:
23.02.2015
Размер:
3.8 Mб
Скачать

Текст программы

 

Комментарий, см. опи-

 

 

 

 

 

 

сание Исполнителя

max_value(M) :=

 

max M

0

Переменной max присваивается значение нулевого элемента

 

 

 

 

 

массива М (предполагаемый максимум)

 

 

number_max 0

Переменной number_max присваивается нулевая пози-

 

 

ция массива М (позиция предполагаемого максимума)

 

 

n rows (M) 1

Расчет числа элементов в массиве исходных данных

 

 

for

k 1.. n

Цикл по номерам элементов массива, начиная с первого

 

 

if Mk > max

Проверка условия – превышает ли текущее значение

 

 

элемента массива величину предположения о максимуме

 

 

 

max Mk

max. Если условие выполняется – входим в конструкт if

 

 

 

При выполнении условия заменяем значение мак-

 

 

 

 

 

 

симума на текущее значение элемента массива, а

 

 

 

number_max k номер – на номер позиции текущего элемента

 

 

 

max

 

Если условие не выполняется – в конструкцию if алго-

 

 

ритм «не заходит»

 

 

number_max

После завершения цикла вводим шаблон матрицы

 

 

(<Ctrl>+<M>) и присваиваем ее нулевому элементу зна-

 

 

чение максимума, а первому – номер позиции, на которой он размещен

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

После ввода протестируйте программу. Выведите вектор, возвращаемый функцией, и убедитесь, что максимальное число равно 2.5, размещается на позиции 4:

max_value(M) = 2.5

4

А затем попытайтесь обобщить программу так, чтобы она искала и максимальный, и минимальный элемент массива M и указывала номера позиций в массиве, на которых эти элементы расположены.

§13. Индивидуальные задания по части 3

Общая часть всех задач: в файле April.prn находятся данные о среднесуточных температурах в каждые сутки апреля. Структура файла (рис. 3.17): в столбце № 0 записаны даты апреля (по формату это – обычные числа в формате с двумя позициями после десятичного разделителя). В столбце 1 записаны среднесуточные температуры, измеренные с точностью до 0.1 °С. Для того чтобы осмыслить задачу (фазы 1 и 2, см. в §12 описание учебной задачи), постройте график изменения температур. Он имеет вид, показанный на рис. 3.18.

122

Столбец № 0: Столбец № 1: Дата Температура

Среднесуточные температуры, градусы Цельсия

Даты апреля

Рис. 3.17. Структура файла

Рис. 3.18. Изменение температур в апреле.

April.prn.

 

Варианты:

1. Разработайте программу-функцию, аргументом которой является массив дат и температур апреля. Функция должна возвращать массив. В столбце № 0 должны быть даты апреля, в которые температуры были отрицательными, а в столбце № 1 – значения этих отрицательных температур. Если отрицательных температур в массиве исходных данных нет, функция должна выводить сообщение «Нет дней с отрицательной температурой».

2. Разработайте программу-функцию, аргументом которой является массив дат и температур апреля. Функция должна возвращать массив средних значений температур за 5-дневки (если хотите, усложните задачу, чтобы функция возвращала массив средних температур за заданное число дней, не обязательно за 5).

3. Разработайте программу-функцию, аргументом которой является массив дат и температур апреля. Функция должна возвращать дату, начиная с которой сумма всех положительных температур с начала апре-

ля превысит заданное значение (для примера 10 °С). Функция должна помочь крестьянам установить дату сева. Эта дата определяется по числу накопленных (т. е. просуммированных) положительных температур с начала апреля. Пример: для сева яровой пшеницы накопленные положительные температуры должны быть не менее 10 °С.

№ 4. Разработайте программу-функцию, аргументом которой является массив дат и температур апреля. Функция должна возвращать дату, для которой имело место самое большое (т. е. самое близкое к 0) значение отрицательной температуры. Если отрицательных температур в мас-

123

сиве исходных данных нет, функция должна выводить сообщение «Нет дней с отрицательной температурой».

5. Разработайте программу-функцию, аргументом которой является массив дат и температур апреля. Функция должна возвращать: (а) дату, для которой имело место значение температуры, самое близкое к среднемесячной температуре; (б) среднемесячную температуру; (в) значение температуры, самое близкое к среднемесячной.

6. Разработайте программу-функцию, аргументами которой являются: (а) массив дат и температур апреля; (б) шифр дня недели, приходящегося на 01.04. Шифры: 0 – воскресенье, 1 – понедельник, … , 6 – суббота. Функция должна возвращать массив дат и температур всех воскресений апреля.

7. Разработайте программу-функцию, аргументом которой является массив дат и температур апреля. Функция должна возвращать значение высоты ростков помидоров, посаженных 01.04, если известна формула, определяющая высоту. Высота ростков на текущую дату пропорциональна корню квадратному из суммы положительных температур, накопленных к текущей дате; коэффициент пропорциональности равен 1.5.

8. Разработайте программу-функцию, аргументом которой является массив дат и температур апреля. Функция должна возвращать значение месячной (за апрель) оплаты за электроэнергию, израсходованную Вашей сплит-системой. Сплит-система настроена на поддержание задан-

ной температуры в комнате (например, на 22 °С). Расход электроэнергии в данные сутки пропорционален квадрату отклонения температуры в эти сутки от заданной для сплит-системы. Коэффициент пропорциональности равен 0.01. Стоимость 1 кВт-ч электроэнергии равна 1.1 рубля.

9. Разработайте программу-функцию, аргументом которой является массив дат и температур апреля. Функция должна возвращать: (а) продолжительность дня (светлой части суток), в который имела место самая высокая за весь апрель температура; (б) дату этого дня; (в) значение температуры в этот день. Указание. Продолжительность светлой части суток внутри годичного периода изменяется по закону синуса. Минимальное значение (9 часов) приходится на 22.12. Максимальное значение (15 часов) приходится на 22.06. Выведите формулу для продолжительности светлой части суток и используйте ее для расчета продолжительности светлой части суток в апреле.

10. Разработайте программу-функцию, аргументом которой является массив дат и температур апреля. Функция должна возвращать (а) продолжительность периода, в течение которого все температуры от текущей даты до конца апреля были положительными; (б) дату, начиная

124

с которой в апреле уже не было отрицательных температур или, если период положительных температур отсутствует, сообщение «Нет дат с положительными температурами»; (в) температуру на дату п. (б) или, если период положительных температур отсутствует, сообщение «Нет положительных температур».

№ 11. Разработайте программу-функцию, аргументом которой является массив дат и температур апреля. Функция должна возвращать максимальное (по абсолютной величине) отклонение температуры в апреле от среднемноголетней, заданной формулой: < среднемноголетняя температура, рассчитываемая по номеру суток апреля> = – 5 + 0.5 <номер суток апреля>. Например, среднемноголетняя температура в 10-е сутки ап-

реля равна: -5 +0.5 10 = 0°С.

125

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]