Какой оператор в языке программирования паскаль выполняет целочисленное деление 2 натуральных чисел
Меню
Предметы
Олимпиады
Обратная связь
Разное
Сейчас на сайте
Авторизация
Рассмотрим задачи на целочисленное деление.
Эти задачи важны для составления эффекивных алгоритмов, поэтому нужно научиться решать простейшие с использованием целочисленного деления.
Деление может выполняться только для целых чисел.
Демонстрация их работы:
Задача 1. Определите, сколько целых тонн в массе, выраженной в килограммах. Значение массы в килограммах введите с клавиатуры.
Begin
Вид результата работы программы:
Задача 2. Дано расстояние в сантиметрах. Выразите его в метрах и сантиметрах.
Составьте программу, чтобы она удовлетворяла формату ввода и формату вывода по образцу:
Ввод:
Вывод:
Вид результата работы программы:
Задача 3. В классе а учеников. В столовой им выдали n конфет. По сколько конфет получил каждый? Сколько конфет остались нераспределенными?
Ввод:
Вывод:
Вид результата работы программы:
Рассмотрим задачи на определение цифр числа.
Например, дано трехзначное число 452.
Задача 4. Найдите сумму первой и последней цифры четырехзначного числа. Мы должны получить первую цифру, затем последнюю и найти сумму.
Какой оператор в языке программирования паскаль выполняет целочисленное деление 2 натуральных чисел
В таблице приведены основные математические операции Турбо Паскаль.
| Символ операции | Название операции | Пример |
| умножение | 2*3 (результат: 6) | |
| деление | 30/2 (результат: 1.5E+01) | |
| сложение | 2+3 (результат: 5) | |
| вычитание | 5-3 (результат: 2) | |
| целочисленное деление | 5 div 2 (результат: 2) | |
| остаток от деления | 5 mod 2 (результат: 1) |
Логические операции
Над логическими аргументами в Турбо Паскаль определены следующие операции:
Результаты выполнения этих операций над переменными А и В логического типа приведены в таблице истинности.
| A | B | not A | A and B | A or B | A xor B |
| true | true | false | true | true | false |
| true | false | false | true | true | |
| false | true | true | false | true | true |
| false | false | false | false | false |
Операции отношения
К операциям отношения в Турбо Паскаль относятся такие операции, как:
В операциях отношения могут принимать участие не только числа, но и символы, строки, множества и указатели.
Основные математические функции
В этом разделе приведены основные математические функции, встроенные в системную библиотеку Турбо Паскаль.
Функций тангенс и котангенс в Турбо Паскале нет. Для их вычисления используйте выражение sin(x)/cos(x) (или cos(x)/sin(x) для котангенса).
Возвращает арктангенc числа X. Возвращает число, равное e в степени X. Возвращает число, равное натуральному логарифму от числа X. Число Пи. Возвращает число, равное квадрату числа X.
Функции возведения в произвольную степень в Турбо Паскале нет. Используйте многократное умножение для возведения в целочисленную степень, либо функции Exp и Ln для возведения в вещественную степень.
Перед использованием random в программах рекомендуется сначала инициализировать генератор псевдослучайных чисел процедурой Randomize. В противном случае при каждом запуске программы будет генерироваться одна и та же последовательность случайных чисел.
Увеличивает значение числа X на Y. Если число Y не указано, то увеличение происходит на 1. Уменьшает значение числа X на Y. Если число Y не указано, то уменьшение происходит на 1.
Pascal: Занятие №1. Часть 3: Типы данных в Паскаль
Типы данных в Паскале
Паскаль — это типизированный язык программирования. Это означает, что переменные, в которых хранятся данные, имеют определенный тип данных. Т.е. программе напрямую надо указать, какие данные могут храниться в той или иной переменной: текстовые данные, числовые данные, если числовые — то целочисленные или дробные, и т.п. Это необходимо в первую очередь для того чтобы компьютер «знал», какие операции можно выполнять с этими переменными и как правильно их выполнять.
Например, сложение текстовых данных, или как это правильно называется в программировании — конкатенация — это обычное слияние строк, тогда как сложение числовых данных происходит поразрядно, кроме того, дробные и целые числа складываются тоже по-разному. То же самое касается и других операций.
Рассмотрим наиболее распространенные в Pascal типы данных.
Целочисленные типы данных в Паскаль
| Тип | Диапазон | Требуемая память (байт) |
| byte | 0..255 | 1 |
| shortint | -128..127 | 1 |
| integer | -32768.. 32767 | 2 |
| word | 0..65535 | 2 |
| longint | -2147483648..2147483647 | 4 |
Нужно иметь в виду, что при написании программ в паскале integer (в переводе с англ. целое) является наиболее часто используемым, так как диапазон значений наиболее востребуем. Если необходим более широкий диапазон, используется longint (long integer, в переводе с англ. длинное целое). Тип byte в Паскале используется, когда нет необходимости работать с отрицательными значениями, то же самое касается и типа word (только диапазон значений здесь значительно больше).
Примеры того, как описываются (объявляются) переменные в Паскале:
| Pascal | PascalABC.NET | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Pascal | PascalABC.NET | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ДЕЙСТВИЕ | РЕЗУЛЬТАТ | СМЫСЛ |
|---|---|---|
| 2 + 3 | 5 | плюс |
| 4 — 1 | 3 | минус |
| 2 * 3 | 6 | умножить |
| 17 div 5 | 3 | целочисленное деление |
| 17 mod 5 | 2 | остаток от целочисленного деления |
Порядок выполнения операций
var a: integer; b: real; begin a := 1; writeln(‘a := 1; a = ‘,a); a += 2; // Увеличение на 2 writeln(‘a += 2; a = ‘,a); a *= 3; // Умножение на 3 writeln(‘a *= 3; a = ‘,a); writeln; b := 6; writeln(‘b := 6; b = ‘,b); r /= 2; writeln(‘b /= 2; b = ‘,b); end.
Стандартные арифметические процедуры и функции Pascal
Здесь стоит более подробно остановиться на некоторых арифметических операциях.
Пример операции inc:
Более сложное использование процедуры inc:
Inc(x,n) где x — порядкового типа, n — целого типа; процедура inc увеличивает x на n.
Пример использования функции odd:
begin WriteLn(Odd(5));
Пример использования процедуры sqr в Pascal:
var x:integer; begin x:=3; writeln(sqr(x)); <ответ 9>end.
Однако в компиляторе pascal abc возведение в степень осуществляется значительно проще:
Пример использования процедуры sqrt в Pascal:
var x:integer; begin x:=9; writeln(sqrt(x)); <ответ 3>end.
Язык программирования TurboPascal
Turbo Pascal. Программирование арифметических выражений
Оператор присваивания
Оператор присваивания является одним из основных операторов любого языка программирования.
Оператор присваивания предназначен для присваивания переменной значения выражения.
Формат оператора присваивания:
В операторе присваивания слева от знака присваивания «:=» записывается переменная, а справа – выражение, численное значение которого присваивается этой переменной.
Выполнение оператора присваивания приведет к вычислению выражения и присваиванию значения выражения переменной.
Обязательным является требование, чтобы выражение и переменная были совместимы по присваиванию.
Например, оператор присваивания
Следует обратить внимание, что всем переменным в правой части оператора присваивания ранее уже были присвоены значения предыдущими операторами, например,
Здесь переменной t присваивается значение, которое до этого момента имела переменная t, плюс 1. Если переменная t имела до выполнения этого оператора значение равное 7, то после исполнения оператора t:=t+1 значение переменной будет равно 8.
Арифметические выражения
Арифметические выражения строятся из арифметических констант, переменных, функций и операций над ними.
Правила записи и смысл арифметических выражений в Паскале почти не отличаются от обычной математической записи.
В арифметических выражениях используются следующие операции и соответствующие знаки:
| Операция | Знак операции |
| Сложение | + |
| Вычитание | — |
| Умножение | * |
| Деление | / |
| Деление целых чисел | div |
| Остаток от деления целых чисел | mod |
Примеры арифметических операций:
Арифметические операции выполняются в порядке старшинства: сначала вычисление функции, затем умножение, деление, сложение, вычитание.
Если последовательность выполнения операций не определяется их старшинством, действия выполняются слева направо. Желаемый порядок выполнения операций всегда может быть задан соответствующим образом расставленными круглыми скобками. Допускается ставить лишние круглые скобки, если это упрощает чтение формулы.
Рассмотрим арифметическое выражение
В таблице приведен порядок выполнения операций:
| № | Операция | № | Операция |
| 1 | a*x | 7 | -a*x*x+b/x*c+y |
| 2 | a*x*x | 8 | c*n |
| 3 | -a*x*x | 9 | (a-b) |
| 4 | b/x | 10 | c*n/(a-b) |
| 5 | b/x*c | 11 | -a*x*x+b/x*c+y-c*n/(a-b) |
| 6 | -a*x*x+b/x*c |
ЗАМЕЧАНИЕ. Все данные, входящие в арифметическое выражение, должны быть одного типа.
Исключение составляют только константы и переменные целого типа (integer), которые разрешается использовать в выражениях вещественного типа (real). Если в выражении используются данные целого и вещественного типа, результат операции будет вещественного типа. В других случаях необходимо выполнять преобразование данных.
Пример. Пусть переменные x и y описаны следующим образом:
Следующие операторы являются ошибочными:
Для обеспечения совместимости типов необходимо выполнять преобразования данных. Для преобразования Real в Integer имеются две функции:
Round() – округляет Real до ближайшего целого;
Trunc() – усекает Real путем отбрасывания дробной части.
Правильная запись рассматриваемых операторов: x:=y+2; и x:=y/x; имеет вид:
Программируя арифметические выражения, нужно иметь в виду следующие основные правила:
В арифметических выражениях могут использоваться различные элементарные функции. В языке Турбо Паскаль существуют стандартные функции. Пользователь может не знать, как вычисляется стандартная функция, ему достаточно правильно записать имя функции и ее аргумент. Наиболее часто используемые стандартные функции приведены в таблице:
| Функция | Назначение | ||||||||||||||||
| Abs(x) | Абсолютное значение аргумента x | ||||||||||||||||
| Sqr(x) | Вычисляет квадрат аргумента x | ||||||||||||||||
| Sqrt(x) | Вычисляет квадратный корень аргумента x | ||||||||||||||||
| Exp(x) | Возвращает экспоненту аргумента e x (степень числа e=2,72) | ||||||||||||||||
| Ln(x) | Вычисляет натуральный логарифм аргумента x | ||||||||||||||||
| Pi | Значение числа p=3.1415926 | ||||||||||||||||
| Frac(x) | Дробная часть числа x | ||||||||||||||||
| Int(x) | Целая часть числа x | ||||||||||||||||
| Sin(x) | Синус аргумента x (угол в радианах) | ||||||||||||||||
| Cos(x) | Косинус аргумента x (угол в радианах) | ||||||||||||||||
| Arctan(x) | Арктангенс аргумента x (угол в радианах) | ||||||||||||||||
| Randomize | Инициализация генератора случайных чисел | ||||||||||||||||
| Random(x) | Если x отсутствует, то значением функции является случайное число типа real из диапазона 0 x n = exp(n*ln(x)); Примеры записи простых арифметических выражений и операторов присваивания приведены в таблице:
Типичные ошибки в записи выражений: 4x+1 Пропущен знак умножения между 4 и x a+sinx Аргумент x функции sinx не заключен в скобки ((a+b)/sqr(c*7) не хватает закрывающей скобки ЗАДАЧА2 . Вычислить корни квадратного уравнения по известным формулам Предположим, что дискриминант этого уравнения больше нуля и уравнение имеет только действительные корни. Программа нахождения корней уравнения приведена ниже. Язык программирования PascalРеализация целочисленной арифметики Целочисленная арифметика языка Паскаль (например, в версии Turbo Pascal 7.0) основана на использовании пяти стандартных целых типов: Byte, Word, ShortInt, Integer, LongInt. Но с пользовательской точки зрения, т.е. с точки зрения разработчиков программ, эти типы между собой различаются только диапазонами представимых значений и, как следствие, возможно, затратами памяти. В дальнейшем, для краткости, в данной статье, ограничимся рассмотрением только неотрицательных целых. В качестве полезного для усвоения div и mod упражнения, проверьте это соотношение, например, на следующих парах чисел (А, В): (13, 5), (40,2), (40,6), (6,40), (1,1). При рассмотрении выше перечисленных фактов и приёмов, важно их изучить, понять их внутренний смысл, а не просто заучить. Вот несколько типовых микрозадач на отработку соответствующей техники (в решениях должны быть использованы только линейные, т.е. не содержащие ветвлений и циклов алгоритмы): Задача1. Дано трёхзначное в десятичной записи натуральное число. Составить Паскаль-программу, печатающую число, которое получается записью цифр исходного числа в обратном (реверсном) порядке. //Решение 1. Выделяем цифры и печатаем их в обратном порядке //Решение 2. Выделяем цифры, составляем из них новое число и печатаем В приведённых выше решениях, переменная a получает начальное значение в результате выполения оператора присваивания (a:=154 ), а не оператора ввода ( Readln(a) ), что было бы реалистичней. Это сделано только для того,чтобы Вам было удобней проследить за изменением значений переменных по мере выполнения соответствующих программ. Задача2. Дано однозначное в десятичной записи натуральное число. Составить Паскаль-программу, печатающую двоичное его представление. Предварительное замечание. Т.к. наибольшее удовлетворяющее условию задачи исходное число 9 содержит в двоичном представлении 4 цифры (910=10012), результирующее число так же будем считать четырёхзначным. С учётом этого замечания, можно записать следующую программу. //Выделяем дв. циф. и собираем в обратном порядке в 10-тичн. число Задача3. Дано четырёхзначное в двоичной записи натуральное число. Составить Паскаль-программу, печатающую его десятичное представление. Эта задача является обратной к предыдущей и состоит в переводе небольшого натурального числа из двоичной системы счисления в десятичную. Исходное число, хотя по смыслу и является двоичным, будет нами представляться в десятичной системе счисления, но при этом с использованием только цифр 0 и 1. Например, вместо (невозможного в Паскале) ввода числа восемь в виде 10002 будем вводить идентичное требуемому, по форме записи, десятичное число 1000 (тысяча). Заметьте, что проблема визуализации двоичных выходных данных в предыдущей задаче здесь теперь стала проблемой визуализации двоичных входных данных. И решаются эти проблемы одинаково. //Выделяем «дв. цифры» и, умножая на степени двойки, складываем Не пропустите наши новые статьи: Подписаться авторизуйтесь 0 комментариев Старые |












