Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Операторы ввода/вывода данных





 

 

Операторы вывода данных на экран 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('встреча');







Что делает отдел по эксплуатации и сопровождению ИС? Отвечает за сохранность данных (расписания копирования, копирование и пр.)...

Что способствует осуществлению желаний? Стопроцентная, непоколебимая уверенность в своем...

Что вызывает тренды на фондовых и товарных рынках Объяснение теории грузового поезда Первые 17 лет моих рыночных исследований сводились к попыткам вычис­лить, когда этот...

Конфликты в семейной жизни. Как это изменить? Редкий брак и взаимоотношения существуют без конфликтов и напряженности. Через это проходят все...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.