Pascal: Занятие №3. Часть2: Цикл While в Паскале
While в Паскале — цикл с предусловием
Алгоритм: Отделяем и удаляем последовательно последнюю цифру, наращивая счетчик.
n | счетчик |
246 | 0 |
24 | 1 |
2 | 2 |
0 | 3 |
В чем сложность?: Заранее не определено и неизвестно, сколько цифр нужно убрать, т.е. сколько шагов необходимо сделать.
Как выполнить: Надо перестать отделять цифры, когда n = 0, т.е. надо выполнять пока n > 0
Блок-схема решения:
Решение примера на Паскале:
Цикл while в Паскале применяется для создания повторений с неизвестным заранее их числом. Повторения (итерации) будут осуществляться, пока истинно некоторое условие.
Блок-схема, соответствующая циклу while в Паскале:
- Здесь оператор, стоящий после служебного слова do , образует тело цикла и будет выполняться, пока значение «условия» равно true (истина).
- Если операторов должно быть несколько, тогда необходимо применять составной оператор.
- Условие пересчитывается каждый раз при входе в цикл.
- Непосредственно условием цикла while может быть переменная или логическое выражение.
- Операторы тела цикла while выполнятся только в том случае, если условие будет истинно, если условие ложно — они игнорируются, и программа продолжается с тех операторов, которые стоят уже после конструкции. Таким образом, это существенное отличие цикла с предусловием от цикла с постусловием.
Рассмотрим использование цикла while в Паскале на решенном примере:
var i,n:integer; begin write (‘kolichestvo znakov’); readln(n); i:=1; while i Вложенные циклы в Паскале
Существует возможность использования вложенных циклов в Паскале, когда в теле одного цикла вместо оператора стоит другой цикл.
const n = 9; <размер таблицы>var i, j :integer; begin for i:=1 to n do <номера строк>begin for j:=1 to n do <номера столбцов>write(i*j:4); writeln; <переход на новую строку>end; end.
Произведение в Паскале
Точно также, как существует сумматор для сложения, для умножения в паскале тоже существует специальная конструкция:
Произведение вычисляется по рекуррентному выражению:
где P – промежуточные произведения
Y — сомножители
Рассмотрим пример вычисления факториала числа в Паскале с использованием цикла while .
var fact, n : integer; begin fact := 1; <начальное значение факториала =0! >n := 1; <начальное значение для условия >while n n := 1 стоит до цикла, если этого не сделать, то условие будет работать некорректно, так как переменная n будет пуста.
Программа возведения в степень числа в Паскале
Для начала уточним, что есть формула вычисления степени на Паскале. Но мы не будем ее использовать, а разберем алгоритм решения задачи возведения в степень.
Для того чтобы возвести число в степень, его надо умножить само на себя ровно столько раз, чему равен показатель степени.
Таким образом, возведение числа n в степень d можно выразить так:
n d = n1 * n2 * n3 * … * nd , где нижние индексы просто указывают очередное по счету число n .
Еще необходимо учесть следующее:
- число в нулевой степени равняется 1
- если показатель степени отрицателен, т.е. d , то задача решается по формуле:
n d = 1 / (n1 * n2 * n3 * … * nd)
Т.е., решая программу на Паскале, учитываем:
- в программе на языке Паскаль количество итераций (повторений) цикла while должно быть равно показателю степени числа по модулю;
- если показатель степени — отрицательное число, то нужно впоследствии единицу разделить на результат.
Источник статьи: http://labs-org.ru/pascal-3_2/
Язык паскаль онлайн
Математические операции в паскале – Pascal Математические функции для работы с числами
Многие начинающие программисты задаются подобный вопросом : «Какие операции можно совершать с числами в языке программирования паскаль ?». В данном уроке мы подробно ответим на этот вопрос.
Арифметические операции
Начнем , пожалуй , с самого простого — арифметические операции с числами в паскале. В паскаль встроены многие привычные нам арифметические операции ( Сложение , вычитание , умножение , деление и т.п ).
Как же осуществляются подобные операции с числами ?. Давайте разберем это на примере исходника одной программы.
Результатом выполнения данной программы будет вывод на экран трех чисел 14 7 2 . Разберемся в том , как это работает.
В начале программы мы объявляем 2 целочисленные ( integer ) переменные «a» и «b» , а также 1 переменную «c» вещественного ( real ) типа. Подробнее прочитать о переменных в паскаль и их типах здесь.
Зачем нам нужна вещественная переменная ? Для записи результата деления целочисленная переменная не подходит , так как у нас получается дробь , а не целое число.
Теперь мы присваиваем переменной «a» значение 7 , а переменной «b» значение 3
. Переменную «c» при этом оставляем нулевой ( она нам пока не понадобится ).
Далее (в блоке begin end) мы расписываем арифметические операции с нашими числами. Обратите внимание на то , что после символов // идет комментарий , который не компилируется программой.
Запомните : Строка a:= a — b; выглядит так a:= 7 — 4; , а не так 7:= 7 — 4;
Другие операции с числами
В паскале предусмотрены и многие другие операции с числами. Давайте разберем самые популярные из них.
1. Как найти квадрат числа в паскале ?
Для нахождения квадрата числа в паскале предусмотрена функция sqr(x) , где x — число.
Пример :
Результат : переменной «а» присваивается значение 25.
2. Как найти корень числа в паскале ?
Для нахождения корня числа в паскале предусмотрена функция sqrt(x) , где x — число.
Пример :
Результат : переменной «а» присваивается значение 5.
3. Как округлить число в паскале ?
Для того , чтобы округлить некоторое число используется операция round(x).
Пример :
4. Как убрать дробную часть у числа в паскале ?
Для того , чтобы отбросить дробную часть числа используется операция trunc(x).
Пример :
Результат : переменной «а» присваивается значение 25.
5. Как убрать целую часть у числа в паскале ?
Для того , чтобы отбросить целую часть числа используется операция frac(x).
Пример :
Результат : переменной «а» присваивается значение 0.2.
6. Как получить модуль числа в паскале ?
Чтобы получить модуль некоторого числа используется операция abs(x).
Пример :
Результат : переменной «а» присваивается значение 8.
Это были самые важные и часто используемые операции в паскале для работы с числами ( переменными ). Найти другие вы можете на этой странице.
Выводы :
Для работы с числами в паскале предусмотрено множество различных операций. Мы можем делать с числами все , что угодно ( складывать , умножать , возводить в квадрат и т.п ).
Этот раздел содержит описание математических операций, которыми можно пользоваться в выражениях на языке Паскаль. Вывести результат вычисления выражения можно такой нехитрой программе:
Конечно, результат вычисления выражения можно и записать в переменную для дальнейшего использования, и передать в другую функцию.
Не все операции и действия в этом разделе будут вам понятны. Ничего страшного — просто помните, что сюда можно вернуться, когда вам что-то понадобится.
Математические операции
В Паскале, как и в большинстве языков программирования, несколько специфически передаются основные математические операции — так математические выражения надо записывать в одну строку, а не в несколько уровней, как принято в классической математической нотации. Это достигается значительно более массовым использованием скобок, что иногда огорчает начинающих. Также всегда нужно писать знак умножения *. Кроме того, параметры функций всегда должны быть в скобках. Например:
Математическое выражение | Запись на языке Паскаль |
2+2=4 | 2+2=4 |
a*(1+sqr(e))/2 | |
(-b+sqrt(sqr(b)-4*a*c))/(2*a) | |
exp(2*x+y) | |
abs(cos(x)*sin(x)*cos(y)/tan(y)) если компилятор не поддерживает Tan. |
Базовая арифметика
Название операции | Оператор | Пример | Примечание |
Добавление | + | 2+2 (=4) | |
Вычитание | — | 18.3-11 (=7.3) | |
Умножение | * | 7*8 (=56) | |
Деление | / | 7/8 (=0.875) | Результат всегда действительного типа (real) |
Целая часть деления | div | 7 div 2 (=3) | |
Остаток от деления | mod | 7 mod 2 (=1) |
Сравнение
Все операции сравнения возвращают значение типа boolean, то есть могут использоваться в операторах ветвления и циклах, например
Название операции | Оператор | Пример | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Равно | = | 2+2=4 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Не равно (?) | <> | 2+2<>5 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Больше | > | 72>71.99 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Больше или Равно | >= | x*x>=0 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Меньше | Функции для преобразования действительных и целых чисел Паскаль — язык программирования со статической сильной типизацией. Это означает, что компилятор не выполняет преобразований значений между типами, которые могут привести к потере информации; в частности, если подставить в конструкцию, предусматривает целое значение, действительное число, компилятор сообщит об ошибке, даже если это число имеет целое значение. Так, как мы видели выше, 13 and 11 равна 9, но выражение 13.0 and 11 вызовет сообщение компилятора об ошибке! Чтобы избежать этого, надо явно задавать преобразования действительного числа на целое с помощью следующих функций:
Логические и побитовые операцииЛогические операции используются для объединения нескольких логических условий в одну.
Логические операторы, применены к целым типов, могут использоваться, как побитовые. Чтобы получить результат побитовой операции, надо представить операнды в двоичной системе (так, как они представлены в компьютере), после чего применить соответствующую операцию в соответствующих разрядов, причем 1 означает true 0 — false. так,
Кроме того, есть еще две побитовых операции сдвига:
Алгебраические функцииCерым обозначены функции, которые не поддерживаются в Turbo Pascal
Примечание: корень степени Y из числа X можно представить как X 1 / Y, и, соответственно, как Power (X, 1 / Y) или в Turbo Pascal как Exp (Ln (X) / Y). Тригонометрические функцииТригонометрические функции используют значения углов в радианах , будьте внимательны!
Функции для работы со случайными величинамиДля имитации случайных процессов в Паскале есть генератор псевдослучайных чисел (ГПВЧ) и функции для работы с ним; такие числа достаточно непредсказуемыми для практического использования (то есть каждое последующее использование функции Random даст какой-то мере неожиданный результат), но их последовательность может быть полностью воспроизведена, если установить начальное значение ГПВЧ.
Функции для работы со сочтеными типамиДля величин сочтеных типов (все цели, буквенный, логическое и перечни) существуют также несколько удобных стандартных функций и процедур:
Приоритет операцийВо время разбора математического выражения Паскаль сначала выполняет операции с высоким приоритетом, затем с низким, все справа налево. Так, в выражении 2 + 2 * 2 сначала будет вычислено 2 * 2 = 4, а уже затем 2 + 4 = 6 — так же, как в обычной математике; в выражении 10 mod 2 * 3 сначала будет выполнено 10 mod 2 = 0, а уже потом 0 * 3 = 0! Источник статьи: http://mypascal.ru/blog/chisla-v-paskale/ Подписаться авторизуйтесь 0 Комментарий Старые |