Добрый день, товарищи! В прошлой статье мы разбирали основные полезные функции в языке Pascal. Кроме того вышло еще несколько статей, рассказывающие о синтаксисе паскаля.
Все ссылки прикрепляю:
- Полезные арифметические функции в Pascal. Часть 1
- Операции сравнения в Pascal
- Генератор случайных чисел в Pascal
Сегодня же мы продолжаем эту тему и рассмотрим основные математические операции, а так же пару новых функций. Знаний, полученных в этих двух частях хватит, чтобы написать простой, но довольно классный калькулятор. Если у вас будет желание, то я выложу цикл публикаций, где мы будем писать таковой.
1. Математические операции и их синтаксис
Начнем мы с малого: обычные математические операции, такие как сложение, умножение, деление и так далее. Тема легкая, но синтаксис знать надо.
Напоминаю, что в примерах операции просто выводятся на экран. В реальной же программе их совершенно точно нужно будет присвоить другой переменной.
Как вывести квадратный корень из числа в pascal
Целая часть от деления
Остаток от деления
1.1 Сложение
Пример программы
Как надо в реальной программе:
Условная «реальная» программа
- данное замечание действительно для всех последующих примеров.
1.2 Вычитание
Все так же по стандарту
1.3 Умножение
Обозначается звездочкой » * »
Первая неочевидность
На делении остановлюсь и поясню. В математике «на листочке» делим мы обычно символом » : «. В паскале этим занимается символ слеш » / «, так как » : » используется в знаке приравнивания » := «.
Кстати в этом примере идеально бы подошла функция round() , чтобы обрубить все эти некрасивые лишние тройки.
И то верно, чего их обижать
1.5 Целая часть от деления
div. С ним мы уже сталкивались в прошлых уроках.
div — то, что есть
div не применяется к вещественному типу real
Ответ равен единице, так как в 12-ти лишь одна 10-ка.
1.6 Остаток от деления
mod. С этим товарищем мы сталкивались тоже. Противоположен диву.
mod — то, что осталось
Так как десятка одна — от 12-ти остается только лишь 2.
1.7 frac(x) — новая функция, противоположна функции trunc(х), которая отбрасывает дробную часть. Эта же функция только дробную часть и оставляет.
Жалко шестерку
1.8 sin(x) — функция находит синус числа. Не знаю, где кроме программы калькулятора это может понадобится, но знать о существовании функции все равно надо. Я лично пользовался ей от силы пару раз.
За основу возьмем угол 90 градусов
1.9 cos(x) — то же самое что и синус, вот только косинус.
1.10 — tan(x) — Тангенс угла. Добавить, в целом, нечего.
Для котангенса функцию не завезли, впрочем он находится путем деления косинуса на синус.
2. Заключение
Так же есть еще более специфические штуки, такие как arcsin(х) , arccos(х) arctan(х) , но, повторюсь, они настолько специфичны, что, скорее всего, вы ими никогда так и не воспользуетесь. Ну, если конечно у вас не будет какого нибудь супер специфического — тригонометрического задания, где будет необходимо найти данные величины. Тут же я не буду останавливаться на таком, так как у меня тригонометрии использовано не будет. Специфичненько.
[Pascal] — Квадрат, корень, тип string | Урок №2
Думаю сейчас можно заканчивать, основную математику и как она работает мы посмотрели, а специфические вещи тактично обошли стороной. В следующих статьях поговорить еще есть о чем:
- Операторы сравнения
- Более подробная остановочка на логических операциях
- Работа с рандомными числами (привет, random.org)
Сейчас как всегда предлагаю просто что-то связанное с котами. Потому что коты это хорошо. В любом случае.
Правила записи математических выражений, порядок действий и стандартные математические функции языка Паскаль.
Хотя нет ограничений на сложность выражений, однако выражения, содержащие более 7 операндов, трудны для чтения и понимания и поэтому такие выражения не рекомендуется использовать.
- в Паскале нет стандартной операции или стандартной функции возведения в степень, поэтому используется следующее математическое тождество: xy= eylnx
- в Паскале существует только стандартная функция вычисления натурального логарифма, поэтому используется следующее математическое тождество: logab= ln b/ln a
Математическое выражение: x3/2 — 7x + tg (x+2)
Выражение на Паскале: exp(3*ln(x)/2)-7*x+sin(x+2)/cos(x+2)
Операторы действия
Операторы действия — это средства языка, позволяющие изменять в процессе выполнения программы состояние вычислений. Самый простой оператор действия — оператор присваивания.
Циклы языка Паскаль, их виды, отображение на схеме алгоритма и их программирование в языке Паскаль.
Алгоритм циклической структуры — это алгоритм, в котором происходит многократное повторение одного и того же участка программы. Такие повторяемые участки вычислительного процесса называются циклами. Программа циклической структуры содержит один или несколько циклов. Различают детерминированные циклы с заранее известным числом повторений и итерационные циклы, в которых число повторений заранее неизвестно. Изменяющаяся в цикле переменная называется параметром цикла.
Для организации цикла необходимо выполнить следующие действия:
1) задать перед циклом начальное значение параметра цикла;
2) изменять параметр перед каждым новым повторением цикла;
3) проверять условие повторения цикла;
4) управлять циклом, т.е. переходить к его началу, если он не закончен, или выходить из него по окончании.
В языке Паскаль существует 3 вида циклов:
1) цикл с параметром или цикл типа for,
2) цикл с предусловием или цикл типа while,
3) цикл с постусловием или цикл типа repeat . until.
В цикле типа for число повторений известно заранее, в циклах типа while и repeat . until число повторений цикла заранее неизвестно, производится проверка условия повторения цикла: в цикле типа while — перед циклом, в цикле типа repeat . until — после его окончания.
В циклах типов for и whileповторяющяся часть (тело цикла) состоит из одного оператора, если требуется выполнить в цикле несколько операторов, они заключаются в операторные скобки begin . end, образуя составной оператор. В цикле типа repeat . until тело цикла помещается между зарезервированными словами языка (лексемами) repeat и until, операторные скобки не требуются, в названии цикла его тело условно обозначается тремя точками.
С помощью цикла типа for удобно находить суммы, произведения, искать максимальные и минимальные значения и т.п. При нахождении суммы некоторой переменной, например S присваивается значение 0, затем в цикле к этой переменной прибавляется соответствующий член заданной последовательности. При нахождении произведения переменной присваивается значение 1, затем в цикле эта переменная умножается на общий член последовательности.
Цикл повторяется до тех пор, пока условие записанное после ключевого слова until, будет ложным (не выполняется). Как только это условие выполнится, происходит выход из цикла. После окончания цикла производится печать результата (оператор writeln). Отметим, что цикл с предусловием (типа while) может не выполниться ни разу, цикл с постусловием repeat . untilвыполнится по крайней мере 1 раз.
Когда число повторений цикла неизвестно заранее, применяются циклы с предусловием или с остусловием . Когда число повторений цикла известно заранее, как правило, применяется цикл типа for. Но любой цикл типа for можно заменить циклом с предусловием или постусловием.
Источник: studfile.net
Как вычислить квадратный корень на языке Pascal без использования процедур и функций? — Pascal ABC
Нужно найти квадратный корень без использования sqrt, ln и и т.д. Есть формула Лагранжа yn+1*[(1 + 1/k) — y 4 /(k*x)] Или формула Ньютона yn+1= 1/k*[(k — 1)*yn+x/(y k-1 n)] где k = 2, x = число под корнем
Код к задаче: «Как вычислить квадратный корень на языке Pascal без использования процедур и функций?»
Листинг программы
var x,x0,x1,e:real; begin repeat write(‘Введите значение x>=0 x=’); readln(x); until x>=0; repeat write(‘Введите точность e>0 e=’); readln(e); until e>0; x0:=1; x1:=0.5*(x0+x/x0); while abs(x0-x1)>e do begin x0:=x1; x1:=0.5*(x0+x/x0); end; writeln(‘Квадратный корень=’,x1:0:5); end.
Источник: studassistent.ru