Итак, день добрый, товарищи! Во первых хочу сразу предупредить что я не этот ваш математик, поэтому я буду называть данное математическое выражение уравнением. Удобнее мне так.
У нас поставлена задача: решить данное уравнение, и похоже это первая действительно интересная задача, после всяких там HelloWorld'ов. В этом руководстве я буду показывать написание программы последовательно, а так же в конце выложу ее целиком для того чтобы можно было сравнить ее с написанным вами кодом.
Если вдруг вы искали решения квадратных уравнений и дискриминантов - ссылка на статью будет внизу этой публикации!
Начнем же писать
Для начала определимся с переменными. Данное выше уравнение можно отобразить таким образом:
X^2 + Y^2 / √X * Y
Соответственно первые две наших переменных это Х и У. Переменные chs и znm являются соответственно числителем и знаменателем данного примера, ну а переменная answ, как, думаю, понятно из названия это answer, ответ.
Тип данных для этих переменных мы выберем real, число с плавающей точкой. Потому что очень сомневаюсь что ответ мы получим в виде целого числа при делении одного рандомного числа на другое. Подробнее об основных типах данных я писал в предыдущей публикации, вот на всякий случай ссылка:
Усложняем HelloWorld на Pascal. Введение в переменные
После объявления переменных стартует программа (c begin конечно) и здесь мы видим нечто новое: зеленую надпись - комментарий. Комментарии необходимы для записей важной (или любой другой) информации для разработчика, и никак на работу программы не влияют. Видит их только тот кто читает или пишет код. В Pascal комментарии начинаются с двух слешей //.
В данном блоке кода мы предлагаем пользователю ввести две переменные с клавиатуры, а далее приступим к их решению.
Команда sqr() это всего - навсего возведение в квадрат, того же самого можно добиться так: x * x.
Команда sqrt() это почти то же самое, только квадратный корень, а команда round() - округление до указанного количества знаков после запятой. В данном случае я выбрал три.
А теперь еще раз: chs присваивается числитель дроби, тоесть x в степени 2 плюс y в степени 2
а переменной znm присваивается знаменатель: квадратный корень х на у, а чтобы не получилось огромного количества знаков после запятой, то все это обернуто округляющей функцией. Можно и без нее, попробуйте, но получится не так красиво.
Вот и ответ. Снова используем функцию round() для отсечения всякого лишнего - ненужного и выводим получившиеся значения.
В предпоследней строчке используем конкатенацию для соединения частей строки между собой. Название страшное, но на деле ничего сложного, мы просто присоединяем наши переменные в строку и склеиваем все между собой.
Не забываем end. в конце. Посмотрим на то что получилось на выходе:
1)
2)
Итак, мы нашли решение уравнения, 5 нам по математике. В целом вместо этого уравнения можно решить таким же способом множество других внеся изменения лишь в пару строчек. На сегодня на этом все!
Вот, как обещал, ссылка на статью с решением квадратных уравнений на Паскале:
Квадратные уравнения на Pascal. Находим дискриминант.
Данный человек всегда открыт для обсуждения контента и общения с подписчиками, если найдутся какие либо вопросы то я обязательно постараюсь ответить на них.
По возможности я попросил бы подписаться. Сейчас это критически важно для развития канала. Так то!
Доброго вам всем здоровьица в эти трудные времена!