Сила Архимеда11.. Программирование линейных алгоритмов начала программирования
Скачать 0.71 Mb.
|
ПРОГРАММИРОВАНИЕ ЛИНЕЙНЫХ АЛГОРИТМОВ НАЧАЛА ПРОГРАММИРОВАНИЯ Ключевые слова вещественный тип данных целочисленный тип данных символьный тип данных строковый тип данных логический тип данных Числовые типы данных Стандартные функции языка Паскаль:
Исследование функций round, int и frac Выполните программу несколько раз для x {10,2; 10,8; –10,2; –10,8}. Какой будет тип результата каждой из этих функций? 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. ? Целочисленный тип данных Операции над целыми числами в языке Паскаль:
Операции div и mod 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. Трёхзначное число можно представить в виде следующей суммы: x = a·100 + b·10 + c, где а, b, с - цифры числа. Программа нахождения суммы цифр вводимого с клавиатуры целого трёхзначного числа: Символьный и строковый типы данных Функция ord преобразовывает букву в её числовой код. Символы – это все буквы и значки, которые есть на клавиатуре. Для ввода в программу символьных переменных необходимо указать для них символьный тип данных char. Функция chr преобразовывает числовой код символа в сам символ. Значением строковой величины (тип string) является произвольная последовательность символов, заключенная в апострофы. W chr 87 ord W % 37 % 4 52 4 S 83 S 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 будет присвоено значение true при любом чётном n и false в противном случае. 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).
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. Логический тип данных Самое главное Типы данных в языке Паскаль: вещественный целочисленный символьный строковый логический и другие. Для них определены соответствующие операции и функции. Вопросы и задания Для заданного x вычислите у по формуле у = х3 + 2,5х2 – х +1. При этом: а) операцию возведения в степень использовать запрещено; б) в одном операторе присваивания можно использовать не более одной арифметической операции (сложение, умножение, вычитание); в) в программе может быть использовано не более пяти операторов присваивания. Подсказка: преобразуйте выражение к следующему виду: y =((x + 2,5)x –1)x +1. По заданным координатам точек А и В вычислите длину отрезка АВ.
Известны длины сторон треугольника a, b, c. Напишите программу, вычисляющую площадь этого треугольника.
Известны координаты вершин A, B, C треугольника. Напишите программу, вычисляющую площадь этого треугольника.
Если сумма налога исчисляется в рублях и копейках, то налоговая служба округляет её до ближайшего рубля (до 50 копеек - с недостатком, свыше 50 копеек (включая 50) - с избытком). Используйте компьютер, чтобы ввести точную сумму налога и вывести, сколько следует уплатить. Исследуйте работу функции random, запустив многократно на выполнение программу: program n_8; var x, n: integer; begin writeln ('Исследование функции random'); randomize (*для генерации различных случайных чисел при каждом запуске программы *); write ('Введите x>>'); readln (x); write ('Введите n>>'); readln (n); writeln ('random(', x, ')=', random(x)); writeln ('random(', x, ')+', n, '=', random(x)+n) end. Как можно получить случайное число из промежутка (0; x)? Как можно получить случайное число из промежутка (0; x]? Как можно получить случайное число из промежутка (n; x + n)? Одна компания выпустила лотерейные билеты трёх разрядов: для молодежи, для взрослых и для стариков. Номера билетов каждого разряда лежат в пределах: для молодёжи - от 1 до 100; для взрослых - от 101 до 200; для стариков - от 201 до 250. С помощью компьютера выберите случайным образом лотерейный билет в каждом разряде. Запишите на языке Паскаль программу, которая для произвольного двузначного числа определяет: а) сумму и произведение его цифр; б) число, образованное перестановкой цифр исходного числа.
Запишите на языке Паскаль программу, которая вычисляет сумму кодов букв в слове БАЙТ. Запишите на языке Паскаль программу, которая выводит на экран строку символов, коды которых равны 66, 69, 71, 73, 78. Разработайте программу, которая запрашивает три строковые величины – взаимосвязанные прилагательное, существительное и глагол, а затем печатает все варианты фраз с использованием введённых слов.
Даны значения целочисленных переменных: a = 10, b = 20. Чему будет равно значение логической переменной rez после выполнения операции присваивания? а) rez:=(a=10) or (b>10) б) rez:=(a>5) and (b>5) and (a<20) and (b<30) в) rez:=( (not(a<15)) or (b>20) Составьте программу, вводящую true, если высказывание является истинным, и false в противном случае: а) сумма цифр трёхзначного числа x является чётным числом; б) треугольник со сторонами a, b, с является разносторонним. Идёт k-я секунда суток. Разработайте программу, которая по введённой k-й секунде суток определяет, сколько целых часов h и целых минут m прошло с начала суток. Например, если k =13257=3 х 3600 + 40 х 60 + 57, то h =3 и m = 40. Выведите на экран фразу: It is … hours … minutes. Вместо многоточий программа должна выводить значения h и m, отделяя их от слов ровно одним пробелом.
Запишите на языке Паскаль программу, реализующую алгоритм работы кассира, выдающего покупателю сдачу (s) наименьшим количеством банкнот по 500 (k500), 100 (k100), 50 (k50) и 10(k10) рублей. Опорный конспект Тип данных в Паскале Типы данных в языке Паскаль: вещественный, целочисленный, символьный, строковый, логический. Целые Логические abs (x),sqr (x), sqrt (x), +, -, *, / Числовые ord, char Символьные and, or, not Вещественные |