Ввод и вывод данных на экран


Выводим результаты

          Внесём долю разнообразия. Научимся выводить наши результаты на экран. На самом деле, вывод данных на экран является одной из важнейших функцией любого языка программирования. Естественно, бейсик с паскалем - не исключения. Познакомимся с операторами PRINT и Write (от английского - Print - "печатать", Write - "писать"). Несмотря на общее назначение, пишутся они по-разному (конечно, мы уже привыкли к этому, ведь так?). Например, чтобы написать значение выражения "2*2", в бейсике мы пишем PRINT 2*2, а в паскале - Write (2*2);. То есть, в паскале всё содержимое выводимого на экран заключается в скобки. Итак, после выполнения данных операторов и в бейсике и в паскале, на экран будет выведен результат - "4". Если писать таким образом, то это будет восприниматься как численные данные, а вот если заключить это в кавычки, то данные будут восприниматься как строковые. Таким образом, не трудно догадаться, что при заключении выражения 2*2 в кавычки будет выводится на экран - надпись "2*2" (без кавычек, конечно же!), а не "4". Стоит обратить внимание на то, что в паскале и бейсике кавычки разные. В первом случае кавычки одинарные (" ' "), во втором - двойные (" " "). Потренируйтесь - выведите какую-нибудь фразу на экран. Итак, вот таблица. Тут показано, как интерпритаторы будут реагировать на введённые операторы:

Бейсик
Паскаль
Что видим на экране
PRINT 5*10
Write (5*10);
50
PRINT "5*10"
Write ('5*10');
5*10
PRINT "Бейсик и паскаль"
Write ('Бейсик и паскаль');
Бейсик и паскаль

          Понятно? Идём дальше. Рассмотрим некоторые хитрости этих операторов. Первое. чтобы написать несколько выражений сразу, в одну строку, их надо разделять или точками с запятой.

!

Область экрана разделена на несколько вертикальных областей. Кагда Вы ставите запятую между выражениями в одном операторе PRINT, следующее выражение перейдёт на следующую область. Такой вариант удобно использовать для отображения на экране таблиц. Если ставить точку с запятой, то следующее сообщение будет печататься сразу после предыдущего, разделяться они будут символом пробел.

          Рассмотрим также положение курсора при выполнении программы (это место - где будет выводиться следующее выражение на экран). При выполнении оператора PRINT, бейсик переводит курсор на следующую строку, а паскаль, при исполнении оператора Write, оставляет курсор на данной строке - где выражение закончилось, там будет написано следующее, даже без пробела. Конечно, это не проблема. Допустим, бейсике нужно вывести данные в строку, но, к примеру, чтобы новое значение выводилось на экран после выполнение какого-либо блока операторов. Для этого после оператора и выражения ставим точку с запятой. Похоже, это единственный оператор в бейсике, после которого можно поставить точку с запятой. В паскале Write авторматически оставляет курсор после написанного, как в бейсике PRINT с точкой с запятой. Тут наоборот - например, надо перейти на следующую строку. Для этого надо вместо Write набрать WrieLn - всё остальное - так же, как и у простого Write. Ещё не всё. Иногда бывает лениво писать PRINT, поэтому можно написать просто знак вопроса, который впоследствии автоматически заменится на "PRINT". Например, запись "? 3+7" будет переделана в "PRINT 3+7". Такое работает только в бейсике и только с этим оператором.

!

Обратите внимание! В примерах программных конструкций в жёлтых и красных окнах вместо PRINT будет стоять знак вопроса - "?".

          Итак, общий вид операторов вывода информации:

Вверх

Очистка экрана

          Здесь показаны такие варианты вывода на экран данных: Вывод выраженияия, вывод нескольких выражений, вывод строкового выражения, остановка курсора на строке и переход на следующую строку (для бейсика и паскаля соответственно). Идём дальше. Разберёмся с очисткой экрана. В бейсике для этого используется оператор CLS, а в паскале для этого нужно подключать библиотеку Crt; сам оператор - ClrScr. После выполнения этих операторов, интерпритаторы просто очистят экран - как будто просто закрасят его чёрным цветом. Обычно эти операторы ставят в самом начале программы, так как после завершения программы, экран не очищается - при новом запуске (без очистки экрана), на экране будут видны строки предыдуще программы, что не всегда нужно.

!

В целях экономии экранного места, разумно использовать знак двоеточия ":", чтобы писать несколько операторов в одну строку в бейсике. В паскале следующий оператор на одной строке можно писать сразу после точки с запятой ";". Например, CLS:PRINT "Basic!":x=10 (бейсик) и ClrScr;WriteLn('Pascal!');x:=10;

Вверх

Или тут или там... Или вообще вот там!

          Речь идёт о выводе текста в заданном месте экрана. Например, нам надо написать какое-то слово, к примеру, именно в седьмой строке еа пятой позиции - нигде больше. Для этого в бейсике пишем оператор LOCATE с указанием осей игрек и икс. То есть, LOCATE Y, X. Вообще он определяет новое положение курсора.

!

Обратите внимание! Координаты в операторе LOCATE записываются не так, как обычно принято - икс, затем игрек, а наоборот. Помните это. Также стоит учесть, что, в отличие от математики, координата игрек направлена не вверх, а вниз. Также одной единицей измерения оператора LOACATE является одна позиция символа. То есть, игрек (первое число) показывает, на какой строке будет установлен курсор, а икс - на какой позиции. То есть, строка LOCATE 3, 10 будет означать, что новое положение курсора - десятая позиция на третьей строке.

          В паскале оператор GotoXY (X,Y:Byte); перемещает курсор в заданное место. Слово Byte означает, что значения исиа и игрека должны быть типа Byte. Здесь определение координат нармальное - сначала икс, а затем - игрек. Для этого оператора, также как и для оператора очистки экрана ClrScr, нужна библиотека Crt.

Вверх

Вводим данные

          Вообще, языки рограммирования в общей сложности направлены на точ, чтобы обеспечить наиболее "дружественный" обмен информацией между пользователем и компьютером - человек вводит конкретные даннык, компьютер их обрабатывает и выводит конкретное решение для конкретной задачи. Рассмотрим ввод данных с клавиатуры. Оператор INPUT позволяет вводить данные в бейсике, Read и ReadLn - в паскале. Абсолютно аналогично операторам вывода информации - в бейсике после INPUT'а пишется переменная, в которую будет занесено введённое значение. Например, "INPUT x". В паскале точно так же - в скобках вводится имя переменной, в которую вводится введённое значение - "Read(x);". Та же ситуация с переносом и остановкой курсора - в паскале оператор Read оставляет его на текущей строке, а ReadLn, соответственно, переводит его на следующую. В бейсике курсор переводится на следующую строку автоматически, хотя, если Вы написали несколько переменных через запятую, то вводит их надо будет через запятую. Например, при выполнении строки "INPUT a,b", Вы должны будете ввести два числа a и b через запятую (не через какой-либо другой разделитель!) - к примеру, 12.5,4067 - к значению а приравняется 12.5, к значению b - 4067.

!

А вот в паскале ситуация с запятой не пройдёт. В скобках после Read или ReadLn пишется только одна переменная И НИЧЕГО БОЛЕЕ!

          Допустим, нам надо выдать в программе такую строку с вводом числа: "Введите число:(курсор ввода числа)". Нетрудно догадаться, как можно поступить. Можно написать "PRINT "Введите число: ";:INPUT a" или "Write('Введите число: ');ReadLn(a)" - и первый и второй вариант (естественно, в первом случае бейсик, во втором - паскаль!) будет выводить нужную строку со вводом числа. Но в бейсике ситуация легче - можно написать "INPUT "Введите число: ",a" - делаться будет то же самое.

          Здесь показаны: Просто введение переменной, затем в первом случае ввод двух переменных через запятую, во втором - Переход курсора на следующую строку. И наконец, ввод переменной после фразы. Легко! В общем, с вводом-выводом мы разобрались, пошли ко второй части этого раздела. Это - Алгоритмы.

Перейти к решению задач
Вверх

Hosted by uCoz