Линейные алгоритмы и программы – Присвоение значений величинам


§ 58. Линейные алгоритмы и программы

Изучив этот пункт, мы:

Выясним, как можно оказать величине значение в процессе работы программы; познакомимся на практике с порядком составления алгоритма и программы; узнаем, как осуществляется тестирование программы;

Узнаем на примере, как проводится компьютерный эксперимент.

==== 58.1.Присвоение значений величинам =======================================

В линейных алгоритмах основным средством обработки величин является присвоение им новое значение. Команда присвоения языка НАМ по обозначением, действием и способами применения вполне аналогична Оператору присвоения языка программирования Паскаль.

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

Оператор присваивания обозначается Знаком Присвоение = И имеет такую конструкцию:

Имя переменной = выражение;

Оператор присваивания выполняется справа налево: сначала вычисляется значение выражения, затем это значение придается переменной. Предварительное значение переменной теряется, оно замещается новым.

Тип значения выражения должен соответствовать типу значения переменной. Числовой переменной нельзя предоставить текстового значения, целой переменной — действительного значения. Однако действительной переменной можно предоставить целого значения, оно превратится в истинное (например, целое значение 5 превратится в истинное 5.0).

==== 58.2.Применение оператора присваивания ===================================

Оператор присваивания позволяет придавать значения переменным любого типа. Мы рассмотрим применение оператора для предоставления значений переменным числового типа.

1. Переменной можно предоставить определенного числового значения. В таком случае в роли выражения выступает числовая константа. Например:

И: = 1;

S: = 0;

Такие присвоения применяют обычно для предоставления переменным начальных значений.

Читать  Лекция Паскаль 5 – Понятие операции и выражения, Арифметические и строчные операции

2. Переменной можно придать значение другой переменной, например:

X = y;

В результате выполнения оператора переменная x (а не y) приобретает новое значение, равное Текущему значению y, то есть тому, которое на момент присвоения имела переменная y. Если дальше переменная y приобретать другие значения, на значение переменной x это не повлияет.

3. Новое значение переменной можно определить через ее текущее значение. Например, для того чтобы увеличить значение x на единицу, применяется оператор:

X = x + 1;

Чтобы увеличить вдвое — оператор:

X = 2 * x;

4. Переменной можно придать значение по формуле. Формула подается соответствующим выражением. Так, чтобы предоставить x значение по формуле X = n R 2, записываем оператор присваивания в виде:

X = pi * sqr (r)

Проследим, как изменяются значения целых переменных x и y в процессе выполнения цепочки операторов:

   

==== 58.3.Порядок составления алгоритма и программы. Программа «Отрезок» ============

Познакомимся с порядком составления алгоритма и программы на примере задачи вычисления длины отрезка по известным координатам его концов.

·  Прежде всего уточним постановку задачи. Будем считать, что отрезок находится в плоскости XOY и заданный декартовыми координатами его конечных точек. Нужно найти длину отрезка, то есть расстояние между двумя заданными точками.

·  Введем обозначения. Через xp, yp обозначим координаты начальной точки отрезка, через xk, yk координаты его конечной точки, через d длину Отрезка.При любых значениях координат мы можем вычислить значение величины d.

·  Выясним взаимосвязь между величинами xp, yp, xk, yk и D.Длина отрезка находится через координаты его конечных точек с формуле:

D = ((xk — xp) 2 + (yk — yp) 2) 1/2.

Это и есть информационная модель задачи.

·  Составим алгоритм решения задачи. Наша задача есть простое, она решается с помощью одной формулы, позволяет сразу записать алгоритм.

По постановке задачи переменные xp, yp, xk, yk, d являются действительными. Значение xp, yp и

Читать  Теоретические основы программирования на языке PASCAL, составление алгоритмов

Xk, yk являются аргументами метода, значение d является его результатом.

Запишем алгоритм средствами НАМ (рис. 58.1) и согласно алгоритму составим программу

(Рис. 58.1б).

Алг отрезок (Действительно

Xp, yp, xk, yk, d)

Program distance;

Uses Crt;

Арг xp, yp, xk, yk

Рез d

Var

Xp, yp, xk, yk, d: Real;

Нач Begin
Clrscr;

Writeln ( ‘Введите xp, yp’); Readln (xp, yp) Writeln ( ‘Введите xk, yk’); Readln (xk, yk)

D = ((xk-xp) 2 + (yk-yp) 2) 1/2 D = sqrt (sqr (xk-xp) + sqr (yk-yp))
Writeln ( ‘Длина отрезка «, d: 7: 2)

Readln;

Кон End.

А) алгоритм НАМ; б) Паскаль-программа

Рис. 58.1. Вычисления длины отрезка по заданным координатам его концов.

·  Составленные алгоритм, а затем и программу необходимо проверить на правильность. Простота нашей задачи не исключает такой проверки. Для доказательства правильности программы воспользуемся тестированием. Тестирование означает запуск программы на выполнение с такими входными данными, для которых результаты работы программы является заранее известными.

Составим таблицу данных для тестирования нашей программы.

Тест

Входные данные Результат Помощь
Xp Yp Xk Yk D
1 5 9 4 Отрезок лежит на оси OY
2 -2 -5 3 Отрезок лежит на оси OХ
3 3 4 5 Отрезок является гипотенузой прямоугольного треугольника

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

==== 58.4.Проведение компьютерного эксперимента ===============================

Разработанной программе «Отрезок» воспользуемся как компьютерной моделью для проведения эксперимента.

Рассмотрим задачу. На расстоянии от поселка проходит газовая магистраль. Для газификации поселка нужно найти кратчайший способ его подключения к магистрали.

Обозначим координаты поселка на плоскости через Xp, Yp; линию газопровода зададим прямой Y = kx + b; длину газопровода, которая должна соединить поселок с магистралью, обозначим через D.Нам нужно найти ту точку магистрали К, к которой следует протянуть газопровод, чтобы значение D было минимальным. Координаты точки К обозначим через Xk, yk.

Искомые значения Xk, yk найдем путем компьютерного эксперимента.

Эксперимент проведем для случая: Xp = 5, Yp = 7; K = 1; B = 0.Поскольку линия газопровода — это прямая Y = — x, нам достаточно задавать значение Xk, а значение Yk определять как Yk = — xk.

Полученные данные сведем в таблицу.

Xk 3 2 1
Yk -3 -2 -1
D 10,20 9,49 8,94

Можно убедиться, что то значение D, что соответствует координатам Xk = 1; Yk = 1, а именно, D = 8,94, является наименьшим. Итак, искомой точкой газовой магистрали является точка K (-1, 1).Этот вывод подтверждается и теоретически.

Отметим, что для удобства проведения эксперимента целесообразно значение Xp = 5, Yp = 7

Представить как константы:

Const xp = 5, yp = 7;

И исключить Xp, Yp с описания переменных, а соответствующие операторы Writeln, Readln (xp, yp) удалить из тела программы.

ВЫВОДЫ

Основным инструментом обработки величин в линейных алгоритмах и программах есть команда (оператор) присвоения. Она записывается с помощью знака присваивания: = и позволяет предоставлять значений величинам в процессе выполнения алгоритма (программы). Порядок составления алгоритма и программы соответствует этапам создания компьютерной модели: сначала анализируем постановку задачи, вводим обозначения величин, применяемых в задаче, устанавливаем их взаимосвязи и разрабатываем информационную модель задачи, на ее основе составляем алгоритм решения задачи и превращаем его на программу. Алгоритм анализируем на правильность, правильность программы доводим тестированием, то есть для специально подобранных входных данных проверяем, совпадают результаты, полученные по программе, с заранее известными. Разработанная программа является компьютерной моделью задачи и может быть использована для проведения экспериментального исследование.

Контрольные вопросы и упражнения

1. Какая переменная получит новое значение в результате выполнения оператора: m = n?

А) переменная n;

Б) переменная m;

В) переменные m и n.

2. Какое значение будет предоставлено переменной y в результате выполнения операторов:

X = 10; y = x + 2, x = 3 * Y;

А) 10;

Б) 30;

В) 36;

Г) 12.

3. которые значение получат переменные x и y в результате выполнения операторов:

X = 30; y = x Div 5, x = x — y Mod 2;

А) X = 24; Y = 6; б) X = 27; Y = 6; в) X = 30; Y = 6; г) X = 24; Y = 0.

4. которые значение получат переменные x и y в результате выполнения операторов?

X = 22; y = 34 — x Div 5, x = (y — x) Mod 7 — 2;

А) X = 1; Y = 30;

Б) X = -5; Y = 2; в) X = 1; Y = 32; г) X = 3; Y = 30.

5. которые значение получат переменные x и y в результате выполнения операторов:

X = 2; y = sqr (7 + x) Div 8; x = abs (x — 2 * y) * (x — y)

А) X = -4; Y = 3;

Б) X = -144; Y = 10;

В) X = 0; Y = 1; г) X = 4; Y = 0; д) X = 4; Y = 3;

Е) X = 144; Y = 10.

6. Составьте программу определения силы тяги двигателя автомобиля по известным весом автомобиля и временем, за которое он, двигаясь с места, набирает скорость в 100 км / час.

7. На одну чашу весов посадили обезьянку весом P кг на другую положили M кг бананов (m> P).Составьте программу определения, сколько бананов за одну минуту съедает обезьянка, если за 5 минут чашу весов выровнялись.

8. Составьте программу «Завтрак на заказ». На экран выводится меню из 5 блюд (поочередно). Против каждого блюда пользователь должен поставить или 0, если она ему не нужна, или 1, если заказывает ее на завтрак. Программа выводит на экран счет за завтрак и желает заказчику приятного аппетита.

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

10. Составьте программу подсчета количества рулонов обоев, которые нужно приобрести для оклейки стен комнаты высотой H метров, если периметр комнаты составляет S метров. С помощью программы выполните расчеты и определите, какие обои выгоднее приобрести для оклейки стен в помещении с заданными размерами (например, H = 2,75 м, S = 15 м):

В рулонах длиной по 10,5 м шириной в 0,5 м (цена 15 грн. за рулон), в рулонах длиной по 18 м шириной 0,5 м (цена 25 грн. за рулон),

В рулонах длиной по 25 м шириной 0,6 м (цена 35 грн. за рулон).

Стены оклеиваются сплошными полосами.

11. Составьте программу определения номера подъезда и номера этажа, где находится квартира с номером N, если известно, что дом P этажный и на каждом этаже в подъезде K квартир.

12. Прямоугольный ящик размером A ´ B ´ C заполнен слоями одинаковых металлических шариков диаметром D.Составьте программу вычисления веса шариков, которыми заполнено ящик, по известным значениям A, B, C, d и P — удельной массы металла, из которого изготовлены шарики. С помощью программы:

1) найдите вес шариков для следующих данных: A = 18 см, B = 24 см, C = 12 см, D = 6 см, P = 7,9 г / см 3 (железо)

2) исследуйте, как изменится вес заполнения, если шарики взять вдвое, втрое, вчетверо, в шесть раз меньшего диаметра. Сделайте выводы;

3) доведите свой результат математически.

[Всего голосов: 3    Средний: 5/5]