Скачать программы Все программы автора1. 7. 1. Операторы ввода/вывода данныхОператоры вывода данных на экран 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=x n . Расчет производится по формуле: y=e n * 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 = O (p * (p - a) * (p - b) * (p - c)), где p=(a+b+c)/2 - полупериметр . a, b, c - стороны треугольника ( исходные данные ). 2. Рассчитать высоты, медианы и биссектрисы треугольника по формулам: Ha= 2 * S/a - высота, опущенная на сторону "a", аналогично для Hb, Hc; Ma= O (2 * b 2 + 2 * c 2 - a 2 )/2 - медиана, аналогично для Mb, Mc; Ba= 2 * O (b * c * p * (p - a) )/(b+c) - биссектриса, аналогично для Bb, Bc; a, b, c - стороны треугольника ( исходные данные ). S - площадь, p - полупериметр треугольника. 3. Рассчитать радиус окружности, вписанной в треугольник R 1 = S/p и описанной вокруг треугольника R 2 = a * b * c/(4 * S), где S - площадь, а p - полупериметр треугольника. a, b, c - стороны треугольника ( исходные данные ). 4. Рассчитать сумму "S" первых N членов арифметической прогрессии A 1 , A 2 , . . . , A N по формуле: S= (A 1 + A N ) * N/2. A 1 , A N , N - исходные данные 5. Рассчитать сумму "S" первых N членов ряда геометрической прогрессии B 1 , B 2 , . . . , B N по формуле: S= (B 1 - B N * Q)/(1 - Q). B N =B 1 * Q N . B 1 , Q - исходные данные. Примечание: Программы запрашивают ввод исходных данных с клавиатуры и выводят результаты расчета на экран. Программой контроль данных не производится. |