Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Ввод и вывод данных. Форматы вывода.
Составление линейных алгоритмов. Комментарии в программе. Операторы ввода и вывода информации. Для вывода информации на экран компьютера используется оператор: write( )- writeln( ) В скобках необходимо записывать данные, которые будут выведены на экран при выполнении программы.
Для ввода информации с клавиатуры в компьютер используется оператор: read( )- readln( ) В скобках необходимо записывать данные, которые мы хотим вводить при работе программы. Рассмотрим несколько примеров: Составим программу вычисляющую s = а / b и p=a*b. program zadacha2_1a; var a, b, s, p: real; Begin writeln('введите число a= '); readln(a); writeln('введите число b= '); readln(b); s: =a/b; p: =a*b; writeln('а/b =', s); writeln('а*b =', p); End. В данном примере ввод и вывод данных для каждой переменной осуществляется отдельно. А можно было записать и так: program zadacha2_1b; var a, b, s: real; Begin writeln('введите числа a и b'); readln(a, b); s: =a/b; p: =a*b; writeln('а/b = ', s, ' а*b = ', p); End. В этой задаче использовался вещественный тип числа – real, поэтому ответ был получен в полулогарифмической форме записи числа. Вспоминаем: 2.5670000000Е+02 следует понимать 2.567 * 102 3.4906710000Е-03 следует понимать 3.490671 * 10-3. Если мы хотим при выводе на экран реальных чисел указать определённое число знаков после запятой, то можно воспользоваться форматом вывода writeln(a: n1: n2). Где n1 - количество знакомест выделенных под всё число; n2 - количество знакомест выделенных под дробную часть числа. Например команда writeln(pi) выведет строку: 3.1415926536E+00 а команда writeln(pi: 9: 3) выведет строку: 3.142 пропустив перед выводимым числом четыре пробела и выровняв 3.142 (всего 5 знаков) по правому краю девяти знакомест.
Составим программу, выводящую на экран число π. program zadacha2_2; Begin writeln(pi: 9: 3); End. Изменяя числа в формате вывода(: 9: 3, : 9: 2, : 17: 3, : 17: 7, : 3: 7 и т.д.) просмотрите и проанализируйте полученные результаты.
Задана сторона куба. Вычислить объем куба и площадь боковой поверхности. program zadacha2_3; var a, v, s: real; {описание переменных} Begin writeln('Введите сторону куба'); {ввод данных} read(a); v: =a*a*a; (*вычисление объёма*) s: =6*a*a; {вычисление площади поверхности} {вывод результатов} writeln('Объём = ', v: 8: 3, ' Площадь поверхности = ', s: 8: 3); End. В записанной выше программе использованы поясняющие комментарии. Комментарии - это любой текст, обрамлённый фигурными скобками { и } или символами (* и *). Вопросы для повторения: 14. Какая команда служит для ввода данных? Для вывода данных? 15. Чем отличается вывод информации на экран компьютера оператором write( ) от вывода оператором writeln( )? 16. Как вывести на экран текст? 17. Можно ли вывести на экран несколько переменных или текстов одним оператором writeln()? 18. Что означает число 7 в команде writeln(pi: 7: 5)? А что означает число 5? 19. Сколько знаков после запятой будет выведено при записи команды: a) writeln(pi: 7: 5); b) writeln(pi: 5: 7)? 20. Какие символы используются для размещения комментариев в программе?
Задания для самостоятельной работы: 1. Имеются два числа. a) Вычислите сумму и разность этих чисел, используя два оператора readln. b) Перепишите программу так, чтобы использовался один оператор readln. c) Добавьте комментарии к программе. 2. Имеются три числа. Вычислите их произведение. 3. По заданным сторонам прямоугольника a и b вычислите его периметр и площадь. 4. Человеку сегодня исполнилось R лет. Сколько ему дней? Часов? Минут? Секунд? (Високосные годы не учитывать) 5. После начала некоторого эксперимента прошло t часов m минут и k секунд. Сколько всего секунд длится эксперимент? 6. Задано расстояние между городами в вёрстах. Переведите это расстояние в километры (точность: три знака после запятой) используя данные: 1 верста=500 саженям; 1 сажень=3 аршина; 1 аршин=0.7112 метра Составление линейных алгоритмов с использованием арифметических операций. Операции div и mod. Арифметические операции. В языке Pascal используется 6 арифметических операций. арифметическая операция (а=14, b=4) результат - сложение (+) S: =a+b S=18 - вычитание (-) S: =a-b S=10 - умножение (*) S: =a*b S=56 - деление (/) S: =a / b S=3.5 - целочисленное деление S: =a div b S=3 - остаток от целочисленного деления S: =a mod b S=2 Нет возведения в степень. Если степень целая, её заменяют умножением: а3 ↔ S: =a*a*a Для возведения числа в произвольную степень используется следующее соотношение: xy=e ln(x ) =eylnx тогда xy=exр(y*ln(x))
Рассмотрим несколько примеров: Заданы два числа. Найдите их сумму. рrogram zadacha2_4; var a, b, s: byte; Begin writeln('введите целое число a '); read(a); write('введите целое число b '); read(b); s: =a+b; writeln('s =', s); End. Проанализируйте полученный результат при a+b> 255. Поменяйте тип данных byte на integer. Что получается теперь? Просмотрите, до какой предельной суммы a+b вычисления происходят верно? Установите тип данных longint. Просмотрите суммы.
Заданы два целых числа k и d. Используя только арифметические операции, найдите целую и дробную части от деления k на d. program zadacha2_5; var a, drobn: real; k, d, cel: integer; Begin writeln('введите два числа'); readln(k, d); cel: =k div d; {целочисленное деление} a: =k/d; {обычное деление} drobn: =a-cel; writeln('целая часть - ', cel); writeln('дробная часть - ', drobn); Еnd. Можно ли было в данной программе все переменные определить как integer или как real? Попробуйте и проанализируйте.
Дано трёхзначное число. Чему равны его цифры? program zadacha2_6; var a, с1, с2, с3: integer; Begin writeln('введите трёхзначное число '); readln(a); c1: =a div 100; c2: =(a mod 100) div 10; {или c2: =(a div 10) mod 10; } c3: =a mod 10; writeln('первая цифра -', c1); writeln('вторая цифра -', c2); writeln('третья цифра -', c3); Еnd. Дано действительное число a. Используя только пять операций умножения получить a15. program zadacha2_7; var a, b, c, d, s: longint; Begin writeln('введите число a'); readln(a); b: =a*a; {вторая степень} с: =b*b; {4 степень} d: =c*a; {5 степень} s: =d*d*d; {15 степень} writeln('результат = ', s); Еnd. Вопросы для повторения: 21. Чем отличается операция / от операции div? 22. Есть ли в Pascal операция возведения в степень? 23. Выполняется ли равенство: (264 mod 100) div 10 = (368 div 10) mod 10. 24. Придумайте формулу для нахождения предпоследней цифры числа? 25. Можно ли производить операции mod и div над переменными, которые описаны как real? 26. Как должна быть описана переменная fl, если она вычисляется по формуле fl: =a / b? А как можно описать переменные a и b? 27. Как должна быть описана переменная k, если она вычисляется по формуле k: =a div b? А как нужно описать переменные a и b?
Задания для самостоятельной работы: 7. Задано двухзначное число. Чему равна последняя цифра числа? 8. Задано двухзначное число. Чему равна первая цифра числа? 9. В двухзначное число вписать ноль в середину и получить трехзначное число. 10. Найдите сумму цифр заданного трёхзначного числа. 11. Найдите цифры заданного четырёхзначного числа. 12. Задано пятизначное число. Найдите цифры и сумму цифр пятизначного числа. 13. С начала суток прошло k минут. Определите сколько сейчас часов и минут. 14. Идёт k-ая секунда суток. Определить который сейчас час (в часах, минутах и секундах). 15. Робинзон Крузо провёл на острове f дней. Сколько полных недель он пробыл на острове? 16. Поезд перевозит s тонн груза. Сколько автомобилей грузоподъемностью b тонн (b< < s) он способен заменить? 17. Дано действительное число a. Не пользуясь никакими другими операциями кроме умножения, получить: a) a13 за пять операций; b) a21 за шесть операций; c) a3 и a10 за четыре операции; d) a4 и a12 и a28 за шесть операций.
Составление линейных алгоритмов с использованием основных функций.
Популярное:
|
Последнее изменение этой страницы: 2016-05-30; Просмотров: 1089; Нарушение авторского права страницы