ПРОГРАММИРОВАНИЕ ЛИНЕЙНЫХ АЛГОРИТМОВ НАЧАЛА ПРОГРАММИРОВАНИЯ Подготовил Филиппов Ю.Л. Ключевые слова • вещественный тип данных • целочисленный тип данных • символьный тип данных • строковый тип данных • логический тип данных Числовые типы данных Стандартные функции языка Паскаль: Функция Назначение Тип аргумента Тип результата abs (x) Модуль x integer, real Такой же, как у аргумента sqr (x) Квадрат x integer, real Такой же, как у аргумента sqrt (x) Квадратный корень integer, real real rouid (x) Округление х до ближайшего целого real frac (x) int (x) Целая часть x real real random Случайное число от 0 до 1 - real random (x) Случайное число от integer integer из x Дробная часть x 0 до x Исследование функций round, int и frac program n_3; var x: real; begin writeln ('Исследование функций round, int, frac'); write ('Введите x>>'); readln (x); writeln ('Округление - ', round(x)); writeln ('Целая часть - ', int(x)); writeln ('Дробная часть - ', frac(x)) end. Выполните программу несколько раз для x {10,2; 10,8; –10,2; –10,8}. Какой будет тип результата каждой из этих функций? ? Целочисленный тип данных Операции над целыми числами в языке Паскаль: Операция Обозначение Тип результата Сложение + integer Вычитание - integer Умножение * integer Получение целого частного div integer Получение целого остатка деления mod integer Деление / real Операции div и mod Трёхзначное число можно представить в виде следующей суммы: x = a·100 + b·10 + c, где а, b, с - цифры числа. Программа нахождения суммы цифр вводимого с клавиатуры целого трёхзначного числа. program n_4; var x, a, b, c, s: integer; begin writeln ('Нахождение суммы цифр трёхзначного числа'); write ('Введите исходное число>>'); readln (x); a:=x div 100; b:=x mod 100 div 10; c:=x mod 10; s:=a+b+c ; writeln ('s= ', s) end. Символьный и строковый типы данных Символы – это все буквы и значки, которые есть на клавиатуре. Для ввода в программу символьных переменных необходимо указать для них символьный тип данных char. Функция ord преобразовывает букву в её числовой код. Функция символ. W % S 4 chr преобразовывает числовой код символа в сам ord 87 37 52 83 chr W % S 4 Значением строковой величины (тип string) является произвольная последовательность символов, заключенная в апострофы. var c: string c:= chr(52)+chr(37) 4% с Символьный и строковый типы данных program n_5; var a: char; kod: integer; b: string; begin Вывод на экран writeln ('Код и строка'); кода буквы введённой с write ('Введите исходную букву>>'); клавиатуры readln (a); kod:=ord(a); b:=chr(kod–1)+a+chr(kod+1); Вывод на экран строки из трёх writeln ('Код буквы ', a, '-', kod); букв. writeln ('Строка: ', b) Каких? end. Логический тип данных Величины логического типа принимают всего два значения: false и true; false < true. Логические значения получаются в результате выполнения операций сравнения числовых, символьных, строковых и логических выражений. В Паскале логической переменной можно присваивать результат операции сравнения. Логический тип данных Пусть ans - логическая переменная, n - целая переменная. В результате выполнения оператора присваивания ans:=n mod 2=0 переменной ans будет присвоено значение любом чётном n и false в противном случае. true program n_6; var n: integer; ans: boolean; begin writeln ('Определение истинности высказывания о чётности числа'); write ('Введите исходное число>>'); readln (n); ans:=n mod 2=0; writeln ('Число ', n,' является четным - ', ans) end. при Логический тип данных Логическим переменным можно присваивать значения логических выражений, построенных с помощью логических функций и (and), или (or), не (not). Логическая операция в Паскале and Название операции конъюнкция (логическое умножение) or дизъюнкция (логическое сложение) not отрицание (инверсия) Логический тип данных program n_7; var a, b, c: integer; ans: boolean; begin writeln ('Определение истинности высказывания о равнобедренном треугольнике'); write ('Введите значения a, b, c>>'); readln (a, b, c); ans:=(a=b) or (a=c) or (b=c); writeln ('Треугольник с длинами сторон ', a, ',', b, ',', c, ' является равнобедренным - ', ans) end. Самое главное Типы данных в языке Паскаль: • вещественный • целочисленный • символьный • строковый • логический и другие. Для них определены соответствующие операции и функции. Вопросы и задания Исследуйте работу функции random , запустив многократно Разработайте Запишите на языке программу, Паскаль которая программу, запрашивает реализующую три на Для Идёт заданного k-я координаты секунда x вычислите суток. уРазработайте по формуле программу, Известны вершин A, B, C треугольника. Если сумма налога исчисляется в рублях и вычислите копейках, Одна компания выпустила лотерейные билеты трёх выполнение программу: По заданным координатам точек А и В Составьте программу, вводящую true , сдачу если строковые алгоритм работы величины кассира, выдающего – покупателю взаимосвязанные 3 2 которая по введённой k -й секунде суток определяет, Напишите программу, вычисляющую площадь этого Известны длины сторон треугольника a, b,стариков. c. рубля у = х +для 2,5 х – х +1. Запишите на языке Паскаль программу, которая для то налоговая служба округляет её до ближайшего program n_8; разрядов: молодежи, для взрослых и для прилагательное, существительное и глагол, а затем отрезка АВ . высказывание является истинным, и false в (противном (длину s)Даны наименьшим количеством банкнот по 500 kпрошло 500), 100 значения целочисленных переменных: треугольника. сколько целых часов h и целых минут m с Напишите программу, вычисляющую площадь этого произвольного двузначного числа определяет: var x, n: integer; При этом: (до 50 копеек с недостатком, свыше 50 копеек печатает все варианты фраз лежат с использованием случае: Номера билетов каждого разряда в пределах: a = 10, b = 20. (начала k 100), 50 ( k 50) и 10( k 10) рублей. суток. Запишите на языке Паскаль программу, которая треугольника. а) сумму и произведение его цифр; begin (включая 50) с избытком). а) операцию возведения в степень использовать введённых слов. Пример Запишите входных на данных языке Паскаль Пример программу, которая данных а) сумма цифр трёхзначного числа x+выходных является чётным Чему будет равно значение логической переменной rez для молодёжи от 1 до 100; выводит на экран строку символов, коды которых б) число, образованное перестановкой цифр Например, если k =13257=3 х 3600 40 х 60 + 57, writeln ('Исследование функции random'); Используйте компьютер, чтобы ввести точную сумму запрещено; вычисляет сумму кодов букв ввыходных слове БАЙТ. числом; Пример входных данных Пример данных после выполнения операции присваивания? равны 66, 69, 71, 73, 78. исходного числа. randomize (*для генерации различных случайных чисел налога и вывести, сколько следует уплатить. то h =3 и m = 40. для взрослых от 101 до 200; Пример входных данных Пример выходных данных б) в одном со операторе присваивания можно xaб) = 1треугольник | AB *); | = 10.0 сторонами a, b, с является при каждом запуске программы а) rez:=(a=10) or (b>10) Выведите на экран фразу: Itарифметической is … hours … minutes . для стариков от 201 до 250. использовать не более одной операции разносторонним. xa =32 ('Введите x>>'); s = 16.0 a 6.0 ya=write Вместо многоточий программа должна выводить 845 Пример входных данных Следует Пример выходных сдать: данных (сложение, умножение, вычитание); б) rez:=(a>5) and (b>5) and (a<20) and (b<30) С помощью компьютера выберите случайным readln (x); ya b xb==41 10 ЗЕЛЁНЫЕ РАСПУСКАЮТСЯ значения h и mn>>'); , может отделяя их использовано отЛИСТЬЯ слов ровно ЗЕЛЁНЫЕ банкнот по 500 руб. –одним 1 шт. в) в программе быть не более write ('Введите образом лотерейный билет в каждом разряде. в) rez:=( (not(a<15)) or (b>20) сyb xb ==56 7 ЗЕЛЁНЫЕ РАСПУСКАЮТСЯ ЛИСТЬЯ пробелом. ЛИСТЬЯ пяти операторов присваивания. readln (n); банкнот по 100 руб. – 3 шт. ЛИСТЬЯ ЗЕЛЁНЫЕ РАСПУСКАЮТСЯ yb = 5 РАСПУСКАЮТСЯ writeln ('random(', x, ')=', random(x)); банкнот по 50 руб.ЗЕЛЁНЫЕ – 0 шт. Подсказка: преобразуйте выражение к следующему ЛИСТЬЯ РАСПУСКАЮТСЯ xcПример = 10 ('random(', writeln ')+', n, РАСПУСКАЮТСЯ '=', Пример random(x)+n) входных x, данных выходных данных ЗЕЛЁНЫЕ ЛИСТЬЯ банкнот по 10 руб. – 4 шт. виду: y =((x + 2,5 )x – 1 )x + 1. end. yc 1 РАСПУСКАЮТСЯ ЗЕЛЁНЫЕ 13=257 It is 3 hoursЛИСТЬЯ 40 minutes. Как Как можно можно получить получить случайное случайное число число изиз промежутка промежутка (n;(0; x +x)? x]? n)? Опорный конспект Типы данных в языке Паскаль: вещественный, целочисленный, символьный, строковый, логический. Тип данных в Паскале Вещественные Числовые Целые Символьные Логические ord, char and, or, not abs (x),sqr (x), sqrt (x), +, -, *, /