Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Операторы ввода/вывода данных
Операторы вывода данных на экран Write(" сп" ); или Writeln(" сп" );
Здесь " сп" - список переменных.
Например, операторы Write(a, b, c); или Write(a); Write(b); Write(c); или Writeln(a, b, c); - выводят значения переменных " a", " b", " c" начиная с текущей позиции курсора. После вывода данных оператором Write(" сп" ); курсор остается за последним выведенным символом. Оператор Writeln(" сп" ); после вывода данных переводит курсор на первую позицию следующей строки. Например, для вывода значений переменных " a", " b", " c" в трех строках экрана следует написать: Writeln(a); Writeln(b); Writeln(c);
Оператор Writeln; переводит курсор на начало следующей строки экрана. Оператор Write('Моя первая программа! '); выводит на экран указанный текст.
В операторах вывода допускается производить арифметические действия, например, оператор Writeln(32*a+Sin(x)); соответствует операторам b: =32*a+Sin(x); Writeln(b);
При выводе данных можно задавать формат вывода. Для этого после имени переменной ставится знак двоеточие ": " , например: Writeln(a: 5: 2); - при выводе значения переменной вещественного типа отводится 5 позиций (включая отрицательный знак и точку), из них 2 позиции отводится для вывода цифр в дробной части. При выводе значения переменной целого типа задается количество позиций для числа (включая отрицательный знак), например: Writeln(i: 8); При выводе значений символьных и строковых переменных формат определяет число позиций для вывода значения переменной (текста). При выводе число или текст выравниваются по правому краю отведенного поля, например: если а: =5. 02;, то оператор Writeln('а=', a: 6: 2); выведет на экран: а= _ _ 5. 02, если n: = '116'; s: = 'Школа N';, то оператор Writeln(s: 7, n: 6); выведет на экран надпись: Школа N _ _ _ 116. Для выравнивания числа или текста по левому краю отведенного поля первый знак формата задается отрицательным, например: оператор Writeln('а=', a: -8: 2); выведет на экран надпись: а=5. 02 оператор Writeln(s: 7, n: -6); выведет на экран надпись: Школа N116. При недостатке количества позиций для вывода число или текст выводятся полностью, а формат игнорируется, кроме формата вывода дробной части числа. Если формат вывода не задавать, то значения целых и строковых переменных выводятся полностью, а вещественных - в экспоненциальной форме с количеством цифр, соответствующих типу переменной, например, оператор Writeln('а=', a); выведет на экран надпись: a=5. 0200000000E+00 (тип Real, расчет без сопроцессора ), либо a=5. 02000000000000E+0000 ( тип Double, расчет с сопроцессором ). Приведем пример программы, выполняющей различные операции с переменными разного типа.
Program N_1; { работа с переменными разного типа } var x, y, z: real; x0, y0: byte; { описание типов переменных } x1, y1, z1: integer; xb, yb, zb: boolean; c1, c2, c3: char; s1, s2, s3: string; Begin x: = 5. 8; y: = 3. 4; x1: = 43; y1: = 28; { присвоение значений } c1: = 'Z'; c2: = 'S'; x0: = 65; xb: = True; yb: = False; s1: = 'Иванов _ '; s2: = 'Петров _ '; Writeln('Математические операции: '); Z: = x+y; { и т. д. } Write('x: =', x: 3: 1, ' _ _ y: =', y: 3: 1); Writeln(' _ _ Z: = x+y; ', ' _ _ z=', z: 5: 2); Writeln; z1: = x1 div y1; { и т. д. } Write('x1: =', x1: 3, ' _ _ y1: =', y1: 3); Writeln(' _ _ Z1: = x1 div y1; ', ' _ _ z1=', z1: 2); Writeln; { Пустая строка } readln; { Задержка экрана до нажатия Enter } Writeln('Логические операции: '); Zb: = xb and yb; { и т. д. } Write('xb: =', xb, ' _ _ yb: =', yb); Writeln(' _ _ Zb: = xb and yb; ', ' _ _ zb=', zb); Writeln; { Пустая строка } readln; { Задержка экрана до нажатия Enter } Writeln('Операции сравнения: '); Zb: = c1 > c2; { и т. д. } { символы сравниваются по номеру ASCII кода } Write('c1: =', c1, ' _ _ c2: =', c2); Writeln(' _ _ Zb: = c1 > c2; ', ' _ _ zb=', zb); Writeln; { строки сравниваются по номеру ASCII кода первых символов } { если первые символы совпадают, то сравниваются вторые и т. д. } Zb: = S1> S2; { и т. д. } Write('s1: =', s1, ' _ _ s2: =', s2); Writeln(' _ _ Zb: = s1 > s2; ', ' _ _ zb=', zb); Writeln; { Пустая строка } readln; { Задержка экрана до нажатия Enter } Writeln('Математические функции: '); Z: = sin(x*Pi/180); { и т. д. } Write('x: =', x: 4: 2); Writeln(' _ _ Z: = sin(x*Pi/180); ', ' _ _ z=', z: 10: 7); Writeln; { Пустая строка } readln; { Задержка экрана до нажатия Enter } Writeln('Математические процедуры: '); Write('x1: =', x1); Inc(x1); { и т. д. } Writeln(' _ _ Inc(x1); ', ' _ _ x1=', x1); Writeln; { Пустая строка } readln; { Задержка экрана до нажатия Enter } Writeln('Функции преобразования типов: '); c3: = Chr(x0); { и т. д. } Write('x0: =', x0); Writeln(' _ _ c3: =Chr(x0); ', ' _ _ c3=', c3); readln { Задержка экрана до нажатия Enter } End.
Все приводимые ниже задания предполагают написание и отладку программ, выполняющих указанные в заданиях действия.
Практическое задание N 1. 2
1) Провести расчеты с использованием различных операций для переменных простого и строкового типов по аналогии с приведенной выше программой. 2) Провести расчеты с использованием стандартных процедур и функций для переменных разного типа по аналогии с приведенной выше программой.
Операторы ввода данных с клавиатуры Read(" сп" ); или Readln(" сп" );
Здесь " сп" - список переменных. Перед вводом данных с клавиатуры желательно вывести на экран поясняющее сообщение. Для этого в программу следует включить оператор вывода, например: Write('введите значение а='); затем оператор Readln(a); При выполнении программы на экране появится надпись: введите значение а=. Оператор Readln(a); будет ждать ввода данных. Следует набрать на клавиатуре значение переменной " а", например, число и нажать клавишу Enter. Для ввода значений нескольких переменных, например, a, b, c применяются конструкции вида: Readln(a); Readln(b); Readln(c); или Readln(a, b, c); При вводе нескольких числовых данных, например, оператором Readln(a, b, c); необходимо после набора каждого значения переменной нажимать клавишу SpaceBar или Enter, а в конце ввода - Enter. При вводе значений символьных переменных нажатие клавиши Enter приводит к присвоению символьной переменной значения кода клавиши Enter (#13), поэтому значения символьных переменных вводятся одна за другой без нажатия Enter или SpaceBar (#32). Например, оператор: Readln(с1, с2, с3, c4); ожидает ввода значений символьных переменных с1, с2, с3, c4, т. е. набора на клавиатуре символов, например: " У", " Р", " А", "! " и нажатия Enter. Тогда оператор Writeln(с1, с2, с3, c4); выведет на экран надпись: УРА! Оператор Readln; без параметров служит для приостановки выполнения программы и ожидает нажатия клавиши Enter, т. е. применяется с целью приостановки вывода информации на экран для просмотра результатов. При вводе данных предпочтительнее использовать оператор Readln, поскольку оператор Read после срабатывания не считывает управляющий код (#13), который остается в буфере клавиатуры. Приведем пример программы возведения положительного числа “x” в степень”n”,
т. е. y=xn. Расчет производится по формуле: y=en*ln(x).
Program N_2; {возведение положительного числа в степень} Const S='введите значение'; Var n, x, y: real; BEGIN Writeln('Программу разработал Иванов'); Writeln('Возведение положительного числа x степень n'); Writeln(S, ' аргумента х> 0'); Readln(x); Write(S, ' показателя степени n='); Readln(n); y: =exp(n*ln(x)); Writeln('результат y=', y: -10: 6); writeln('Нажмите Enter'); readln; {задержка экрана до нажатия Enter} END.
Практическое задание N 1. 3
1. Рассчитать площадь треугольника по формуле Герона: S = Ö (p*(p-a)*(p-b)*(p-c)), где p=(a+b+c)/2 - полупериметр. a, b, c - стороны треугольника ( исходные данные ). 2. Рассчитать высоты, медианы и биссектрисы треугольника по формулам: Ha= 2*S/a - высота, опущенная на сторону " a", аналогично для Hb, Hc; Ma= Ö (2*b2 + 2*c2 - a2)/2 - медиана, аналогично для Mb, Mc; Ba= 2* Ö (b*c*p*(p-a) )/(b+c) - биссектриса, аналогично для Bb, Bc; a, b, c - стороны треугольника ( исходные данные ). S - площадь, p -полупериметр треугольника. 3. Рассчитать радиус окружности, вписанной в треугольник R1= S/p и описанной вокруг треугольника R2= a*b*c/(4*S), где S - площадь, а p - полупериметр треугольника. a, b, c - стороны треугольника ( исходные данные ). 4. Рассчитать сумму " S" первых N членов арифметической прогрессии A1, A2, ..., AN по формуле: S= (A1 + AN)*N/2. A1, AN, N - исходные данные 5. Рассчитать сумму " S" первых N членов ряда геометрической прогрессии B1, B2, ..., BN по формуле: S= (B1 - BN*Q)/(1-Q). BN =B1 *QN. B1, Q - исходные данные. Примечание: Программы запрашивают ввод исходных данных с клавиатуры и выводят результаты расчета на экран. Программой контроль данных не производится. Оператор выбора Оператор служит для выбора одного из помеченных вариантов действия (операторов), в зависимости от значения " параметра". Оператор имеет вид:
Case " параметр" Of " список помеченных операторов" Else " оператор" End;
Здесь " параметр" - выражение или переменная порядкового типа. Из " списка помеченных операторов" выполняется оператор с меткой, включающей значение " параметра", иначе оператор после слова Else. Конструкция Else " оператор" может отсутствовать. Напомним, что " оператор" может иметь вид: Begin " операторы" end;
Пример операторов для определения порядка целого числа N от 0 до 999: Case N of 0..9: writeln('однозначное'); 10..99: writeln('двузначное'); Writeln('трехзначное') else writeln('Число " N" не входит в указанный диапазон') end; Приведем пример программы случайного предсказания одного из десяти вариантов ближайшего будущего с вероятностью 1/20, в остальных случаях - вы " неудачник". PROGRAM FUTURE; var N: word; Begin writeln('ПРЕДСКАЗАНИЕ БУДУЩЕГО'); Randomize; N: =Random(20)+1; { N - случайное число от 1 до 20 } writeln; write('Вас ожидает _'); Case N of 1: writeln('счастье'); 6: writeln('здоровье'); 2: writeln('пятерка'); 7: writeln('деньги'); 3: writeln('дорога'); 8: writeln('любовь'); 4: writeln('двойка'); 9: writeln('встреча'); |
Последнее изменение этой страницы: 2017-03-17; Просмотров: 378; Нарушение авторского права страницы