§ 7 Оператор print.
Оператор PRINT осуществляет вывод на экран алфавитно-цифровой информации и результатов вычислений.
Общий вид оператора PRINT:
PRINT список вывода
В списке вывода могут быть как числовые и строковые константы, так и имена переменных. Например:
Выводит на экран число 15
Выводит на экран текстовую константу “число”
Выводит на экран значение переменной А(при А=5)
Выводит значение выражения
Список вывода может содержать смешанные данные, т.е. и константы, и величины. Данные в списке могут быть разделены “;” или “,”. В конце списка так же может стоять один из этих знаков.
Чтобы элементы списка вывести подряд в одной строке, в операторе PRINT их разделяют запятыми или точкой с запятой. Если же этот знак стоит в конце списка вывода, то следующая команда PRINT продолжит вывод в этой же строке.
Если элементы списка разделены точкой с запятой, то они выводятся в одной строке через одну позицию. Элементы списка вывода, разделенные запятыми, выводятся каждый с новой зоны строки. Строка разбивается на зоны по 14 символов.
PRINT “— четные числа”
2 4 6— четные числа
14 14
! Область экрана разделена на несколько вертикальных областей. Кагда Вы ставите запятую между выражениями в одном операторе PRINT, следующее выражение перейдёт на следующую область. Такой вариант удобно использовать для отображения на экране таблиц. Если ставить точку с запятой, то следующее сообщение будет печататься сразу после предыдущего, разделяться они будут символом пробел.
          Рассмотрим также положение курсора при выполнении программы (это место — где будет выводиться следующее выражение на экран). При выполнении оператора PRINT, бейсик переводит курсор на следующую строку, а паскаль, при исполнении оператора Write, оставляет курсор на данной строке — где выражение закончилось, там будет написано следующее, даже без пробела. Конечно, это не проблема. Допустим, бейсике нужно вывести данные в строку, но, к примеру, чтобы новое значение выводилось на экран после выполнение какого-либо блока операторов. Для этого после оператора и выражения ставим точку с запятой. Похоже, это единственный оператор в бейсике, после которого можно поставить точку с запятой. В паскале Write авторматически оставляет курсор после написанного, как в бейсике PRINT с точкой с запятой. Тут наоборот — например, надо перейти на следующую строку. Для этого надо вместо Write набрать WrieLn — всё остальное — так же, как и у простого Write. Ещё не всё. Иногда бывает лениво писать PRINT, поэтому можно написать просто знак вопроса, который впоследствии автоматически заменится на «PRINT». Например, запись «? 3+7» будет переделана в «PRINT 3+7». Такое работает только в бейсике и только с этим оператором.
! Обратите внимание! В примерах программных конструкций в жёлтых и красных окнах вместо PRINT будет стоять знак вопроса — «?».
          Итак, общий вид операторов вывода информации:
Очистка экрана
! В целях экономии экранного места, разумно использовать знак двоеточия «:», чтобы писать несколько операторов в одну строку в бейсике. В паскале следующий оператор на одной строке можно писать сразу после точки с запятой «;». Например, CLS:PRINT «Basic!»:x=10 (бейсик) и ClrScr;WriteLn(‘Pascal!’);x:=10;
Или тут или там. Или вообще вот там!
! Обратите внимание! Координаты в операторе LOCATE записываются не так, как обычно принято — икс, затем игрек, а наоборот. Помните это. Также стоит учесть, что, в отличие от математики, координата игрек направлена не вверх, а вниз. Также одной единицей измерения оператора LOACATE является одна позиция символа. То есть, игрек (первое число) показывает, на какой строке будет установлен курсор, а икс — на какой позиции. То есть, строка LOCATE 3, 10 будет означать, что новое положение курсора — десятая позиция на третьей строке.
          В паскале оператор GotoXY (X,Y:Byte); перемещает курсор в заданное место. Слово Byte означает, что значения исиа и игрека должны быть типа Byte. Здесь определение координат нармальное — сначала икс, а затем — игрек. Для этого оператора, также как и для оператора очистки экрана ClrScr, нужна библиотека Crt.
Вводим данные
! А вот в паскале ситуация с запятой не пройдёт. В скобках после Read или ReadLn пишется только одна переменная И НИЧЕГО БОЛЕЕ!
          Допустим, нам надо выдать в программе такую строку с вводом числа: «Введите число:(курсор ввода числа)». Нетрудно догадаться, как можно поступить. Можно написать «PRINT «Введите число: «;:INPUT a» или «Write(‘Введите число: ‘);ReadLn(a)» — и первый и второй вариант (естественно, в первом случае бейсик, во втором — паскаль!) будет выводить нужную строку со вводом числа. Но в бейсике ситуация легче — можно написать «INPUT «Введите число: «,a» — делаться будет то же самое.
          Здесь показаны: Просто введение переменной, затем в первом случае ввод двух переменных через запятую, во втором — Переход курсора на следующую строку. И наконец, ввод переменной после фразы. Легко! В общем, с вводом-выводом мы разобрались, пошли ко второй части этого раздела. Это — Алгоритмы .
Базовые конструкции PascalABC.NET
В большинстве случаев переменные описываются в блоке begin-end и описание совмещается с инициализацией:
Это решает сразу несколько проблем:
- можно не говорить о типах в первых программах или лишь упоминать их
- невозможно забыть инициализировать переменную
- переменные описываются по мере необходимости близко к месту их использования. Это улучшает читаемость. Проблема старого Паскаля, когда груда переменных описывалась до beginа, отсутствует
При таком способе возникает одна проблема: если надо накопить сумму вещественных, то такой код приведет к ошибке типов:
Для исправления этой ошибки всё равно придётся говорить о типах и инициализировать sum одним из двух способов:
Цикл for var
Переменная — счётчик цикла for всегда должна описываться в заголовке цикла:
Это делает невозможным использование счётчика цикла вне цикла
Цикл loop
Если количество повторений цикла заранее известно, но неважен номер повторения, то используется цикл loop:
Множественное описание переменных с инициализацией
Можно инициализировать сразу несколько переменных в момент описания:
Вывод
Для вывода вместо процедуры Write предпочтительно использовать процедуру Print. В отличие от Write она разделяет элементы вывода пробелами. Например:
Для вывода нескольких значений с пояснениями рекомендуется использовать интерполированные строки:
вместо режущего глаз
Ввод принято осуществлять, используя функции вида ReadInteger, ReadReal и т.д.:
Это позволяет совмещать описание переменной с инициализацией и автовыводом типа. В качестве дополнительных бонусов: можно делать приглашение к вводу как параметр функции ввода и вводить сразу несколько переменных одного типа:
Для ввода с контролем ошибок используется функция TryRead. Она возвращает False если ввод осуществлён неверно (введено не число или число выходит за границы диапазона). Типичный пример её использования:
Тип BigInteger
Для работы с длинными целыми используется тип BigInteger. Например, чтобы вычислить 100!, достаточно написать следующий код:
Константу BigInteger можно также создать, используя суффикс bi — тогда предыдущий код изменится следующим образом:
Некоторые полезные стандартные процедуры, функции и операции
Для обмена значений двух переменных a и b используйте стандартную функцию Swap(a,b) :
Разумеется, первый раз необходимо показать, что обмен значений осуществляется через третью переменную:
Но далее следует использовать Swap.
Минимальное и максимальное среди множества значений можно вычислить, используя стандартные функции Min и Max:
Для возведения в степень используется операция ** :
Возведение в целую степень оптимизировано и работает быстрее стандартной функции Power(a,n) .
Для проверки принадлежности диапазону используется конструкция x in a..b :
Эта операция эффективна и переводится в
Диапазоны также можно использовать для вещественных значений и для символов:
Для проверки принадлежности множеству значений используется либо множество:
Мы рекомендуем второй способ — он существенно более эффективен по скорости и по памяти.
Условная операция
Если переменной необходимо присвоить значение в зависимости от условия, то вместо условного оператора иногда нагляднее использовать условную операцию:
Методы в стандартных типах
В PascalABC.NET внутри каждого типа имеется ряд полезных методов. В отличие от внешних процедур и функций, они “вшиты” в тип — переменная знает все свои методы и может вызывать их, используя точечную нотацию.
Например, чтобы вывести значение переменной базового типа, можно использовать метод Print:
Из других интересных методов для начинающих для целых типов отметим:
Например, в следующей программе вычисляется количество четных двузначных из 10 введённых:
Для вещественных значений полезными являются методы
В частности, удобно использовать цепочечную точечную нотацию:
Для всех числовых типов также определены константы MinValue и MaxValue. Чтобы обратиться к ним, следует использовать имя типа:
Кортежи
Кортежи представляют собой способ объединить несколько значений в одно целое. Значения типа Кортеж записываются в круглых скобках: (1,2,3) или (‘Иванов’,15) . с помощью кортежей можно выполнять одновременные присваивания нескольким переменным:
Print в паскале что это
На этом занятии мы познакомимся с конструкцией программ на языке программирования высокого уровня "Паскаль".
Этот язык разработал сравнительно недавно, в 1970 году, профессор кафедры вычислительной техники Швейцарского федерального института технологии — Николас Вирт.
Изучение конструкции программ на Паскале начнем с простого примера.
Пример 1. Составить программу решения следующей задачи.
Саша спросил Сережу: "Сколько тебе лет?" Сережа ответил:
"Если бы число моих лет увеличить в 3 раза, а потом уменьшить на 17, то мне было бы 16 лет". Сколько лет Сереже?
Обычно решение такого типа задач начинается с "конца".
Число лет, которое было бы Сереже, т. е. 16, увеличиваем на 17, получаем
Полученный результат уменьшаем в 3 раза, т.е. делим на получаем 11.
Итак, Сереже было 11 лет.
Посмотрим, как будет выглядеть программа решения этой задачи на языке Паскаль.
Program Serg;
var
a, b, c: integer;
begin
write(«Ведите число лет, которое было бы Сереже «); readln(a);
b := a + 17;
c := b div 3;
writeln(«Сереже было «, c, » лет»)
end.
Если эту программу ввести в компьютер и выполнить, то на экране появится вначале запрос для пользователя:
Введите число лет, которое было бы Сереже
После ввода числа 16, компьютер выдаст на экран:
Сереже было 11 лет
Рассмотрим более детально построение программы.
Она начинается со слова program. Слово program зарезервировано в Паскале, т.е. не может использоваться ни в каких других целях, лишь для начала программы.
После служебного слова program записывается имя программы. В нашей программе именем является serg. Имя программы записывается на английском языке по усмотрению и фантазии автора программы. (В некоторых версиях Паскаля допускается запись имени программы на русском языке). Конечно, желательным является, чтобы имя программы выражало ее содержание, но как вы сами понимаете, это не всегда возможно.
Имя программы никак в дальнейшем не используется, поэтому требование обязательности объявления имени программы можно считать излишним. Программу можно выполнять и без имени. С другой стороны, — программа без имени неудобна, а иногда непонятна для пользователей и программистов.
Количество символов в имени программы не ограничивается, но значащими считаются первые 63 символа.
Имя программы должно начинаться с буквы. В нем не должно быть пробелов, запятых, точек.
В конце первой строки, после имени программы стоит ";" — точка с запятой. Этот знак указывает на то, что некоторая инструкция закончена и за ней будет записана следующая инструкция. Правда, первая "инструкция" является именем программы и не походит на инструкцию в смысле "делай то и делай так", но термин " инструкция" мы употребляем в более широком смысле, как одно логически завершенное предложение или его часть. Точка с запятой является обязательным разделительным знаком в языке Паскаль.
В некоторых версиях языка Паскаль, вы можете встретить такое начало программы:
Program Serg (input, output);
Как видите, в скобках записаны служебные слова input (ввод) и output (вывод). Они указывают, что в программе будет вводиться и выводиться информация. Для большинства современных версий языка Паскаль и для Турбо Паскаля эти служебные слова являются необязательными. Хотя, надо заметить, их запись в программе не приведет к ошибке. В дальнейшем мы не будем использовать их в программах.
Следующая строка программы:
var
a, b, c : integer;
В этой строке обязательно указываются все переменные, участвующие в программе и их типы.
Слово var — это сокращение от слова variable (переменная) и является так же, как и слово program, зарезервированным словом.
После него записываются имена переменных — идентификаторы, в нашем примере: a, b, c. Они записываются через запятую.
После имен переменных стоит ":" — двоеточие, а затем записано служебное, зарезервированное, слово integer. Integer (целый) указывает тип значений, которые принимают переменные — целые числа (. -4, -3, -2, -1, 0, 1, 2, 3, 4, 5. ). Эта строка программы, также как и предыдущая, заканчивается ";" — точкой с запятой.
Далее в программе следует служебное, зарезервированное, слово begin (начать), которым начинается новый раздел программы — раздел операторов.
В этом разделе последовательно записываются команды, операторы, которые разделяются ";" — точкой с запятой. Они будут выполняться компьютером.
Программа заканчивается служебным словом end, после которого стоит точка. Она является обязательной во всех паскалевских программах. Точка оповещает о конце текста программы.
Заметьте, последняя строка из раздела операторов перед служебным словом end не заканчивается точкой с запятой. Но, если вы ее поставите, то ошибки не будет.
1. Итак, КОНСТРУКЦИЯ ПРОГРАММЫ на языке
ПАСКАЛЬ
Program <имя>;
РАЗДЕЛ ОПИСАНИЙ
В нем описываются имена переменных и их типы.
Begin
РАЗДЕЛ ОПЕРАТОРОВ
Ввод данных, последовательность команд, вывод результатов.
end.
Эту конструкцию очень удобно изобразить с помощью блок-схемы. Вспомним, что блок-схема состоит из отдельных геометрических фигур — блоков, каждый из которых показывает какие команды или операции надо выполнить.
Вот эти блоки:
Рис. 1
Рис. 2
Под переменной в языке Паскаль, как и в других языках программирования, понимают программный объект (число, слово, часть слова, несколько слов, символы), имеющий имя и значение, которое может быть получено и изменено программой.
Если "заглянуть" в компьютер, то переменную можно определить так.
Само название "переменная" подразумевает, что содержимое этого участка может изменяться.
В качестве имен переменных в Паскале могут быть латинские буквы с индексами. Причем может быть не одна буква, а несколько.
В качестве числового индекса может быть любое целое число. Всего в обозначении переменных может быть произвольное число символов, но значащими считаются первые 63 символа. В некоторых версиях Паскаля допускаются имена переменных, содержащие до 8 символов.
Примеры обозначений переменных: a, b, e, vert, trenin, d, f1, g23, p564, red18 и т.п.
Имена переменных называются идентификаторами.
Не имеет значение в обозначении переменных маленькими или большими (строчными или прописными) буквами они написаны!
Имя переменной должно удовлетворять следующим требованиям:
1) всегда начинаться с буквы, после которой при необходимости может следовать некоторое целое число (индекс);
2) в идентификаторе (имени) не должно быть пробелов, запятых или других непредусмотренных знаков, например недопустимы следующие имена переменных: jan.2 (есть точка); 3x (начинается с цифры); a 2 (имеется пробел); чн (русские буквы);
3. Команда присваивания
В программе, которая была приведена выше, есть следующие записи: Что означает знак ":="?
Так на языке Паскаль обозначается команда присваивания. В чем ее сущность?
Команда присваивания "стирает" предыдущее значение переменной и "придает" ей новое значение. На языке Паскаль команда присваивания обозначается: := двоеточие и знак равно.
В нашей программе, переменной b присваивается значение a + 17, что равно 33, переменной c присваивается значение частного от деления переменной b на 3,
Чтобы понять значение терминов "стирает" и "придает" в определении команды присваивания, надо немного глубже рассмотреть "компьютерную физиологию", т.е., что происходит в компьютере при выполнении команды присваивания.
Для каждой переменной в оперативной памяти компьютера отводится место — ячейка памяти, куда компьютер заносит значение этой переменной. Каждая ячейка имеет свое имя по имени переменной в программе. В нашей программе под переменные отведено 3 ячейки с именами a, b, c.
При выполнении команды присваивания в ячейки с этими именами будут занесены соответствующие числа. Если в них была записана какая-то информация, то она уничтожится. Происходит процесс похожий на запись на магнитофонную ленту. При записи новой информации прежняя стирается.
4. Операторы write и writeln. Процедуры вывода информации
Вы обратили внимание, что в программе были использованы операторы write и writeln. Английское слово write переводится — писать, а слово writeln происходит как сокращение от двух английских слов write — писать и line — строка.
Кроме операторов write и writeln мы говорим о процедурах вывода информации.
Что же такое процедура?
Понятие процедуры — одно из основных понятий Паскаля. Ему подобна подпрограмма на языке Бейсик.
Процедура — это некоторая последовательность операторов языка Паскаль, имеющая имя и к которой можно обратиться из любого места основной программы, указав ее имя.
Выше мы говорили об операторах вывода информации, хотя в Паскале, в отличие от Бейсика нет операторов вывода информации, а через служебные слова write и writeln происходит обращение к стандартной или встроенной процедуре вывода информации. Стандартная процедура не нуждается в предварительном описании, она доступна любой программе, в которой содержится обращение к ней. Вот почему обращение к write или writeln напоминает оператор PRINT — вывода информации на языке Бейсик.
Разница между оператором вывода и обращением к процедуре вывода состоит в том, что имя процедуры вывода, как и любой другой процедуры Паскаля не является зарезервированным словом, а, следовательно, пользователь может написать свою собственную процедуру с именем write или writeln. Но это очень редко используется на практике.
Таким образом, операторы write и writeln являются операторами обращения к встроенным процедурам вывода информации.
Обе эти процедуры выводят информацию на экран, если эта информация содержится в виде значений переменных, тогда достаточно в скобках в операторах write или writeln записать имена этих переменных, например: write(a), writeln(f). Если таких переменных несколько, то их записывают через запятую, например: write(a, b, c, d), writeln(e,f, g, h).
Если информацией являются слова, предложения, части слов или символы, тогда она заключается между знаками " » " — апостроф, например:
write(«Введите длину пути»),
writeln(«Значение скорости равно»
Возможен одновременный вывод и символьной информации и значений переменных, тогда в операторе write или writeln они разделяются запятыми, например:
write(«Значение температуры равно «, t),
writeln(«Скорость равна «, v, » при времени движения «, t).
Заметьте, в конце слов, перед апострофом оставлен пробел.
Для чего это сделано? Конечно, чтобы следующая числовая информация была разделена со словами пробелом.
В чем состоит отличие в работе процедур write и writeln?
Процедура write требует от следующих процедур ввода или вывода, информацию вводить или выводить ее на ту же строку (в одну строку).
Если в программе указан оператор write и за ним следуют еще операторы write или writeln, то выводимая ими информация будет присоединяться к строке информации первого оператора write.
Например: write(«Сегодня и завтра будут «);
write(«выходные дни «);
На экран выводится:
Сегодня и завтра будут выходные дни
Пробел между словом "будут" и "выходные" обеспечивается за счет пробела в конце первой строки. Если его не будет, то вывод произойдет слитно:
write(«Сегодня и завтра будут»);
write(«выходные дни»);
Сегодня и завтра будутвыходные дни
Еще некоторые примеры: t:=20;
write(«Время движения равно «);
write(t);
write(» секунд»);
Время движения равно 20 секунд
a := 18; b := 12;
write(«Сумма чисел равна «);
write(a+b);
write(«, а произведение «);
write(a*b);
Сумма чисел равна 30, а произведение 216
Процедура writeln обеспечивает для следующих процедур ввода или вывода информации вводить или выводить ее с начала каждой новой строки.
writeln(«Сегодня вечером, вечером, вечером,»);
writeln(«Когда пилотам, скажем прямо, делать нечего»);
На экран выводится:
Сегодня вечером, вечером, вечером,
Когда пилотам, скажем прямо, делать нечего
a := 25;
b := 17;
writeln(«Сумма и разность чисел равны:»);
writeln(a + b);
writeln(a — b);
Сумма и разность чисел равны:
42
8
5. Операторы read и readln. Процедуры ввода информации
Так же, как и для операторов вывода информации, операторы read и reeadln являются операторами обращения к встроенным процедурам ввода информации.
Операторы read (считывать) и readln, который происходит от двух английских слов read (считывать) и line (строка) используются в программах для ввода информации в память компьютера и "считывания" значений в переменную.
Рассмотрим работу этих операторов и процедур ввода информации.
В нашей программе есть процедура readln(a). При выполнении программы, встретив оператор readln, компьютер приостановит работу в ожидании ввода информации. После того, как мы введем с клавиатуры значение переменной a — 16, компьютер присвоит это значение переменной a, т.е. отправит его в ячейку памяти с именем a и продолжит выполнение программы. Этот процесс мы называем "считыванием" значения в переменную.
Итак, процедуры read и readln "считывают" значения переменных и присваивают их тем переменным, которые записаны в них.
Таких переменных может быть несколько, тогда они записываются в этих операторах через запятую, например:
read(a, b, c, n, g, j, i), readln(e,f, k, p, d) и т.п.
Чем же отличается работа процедур read и readln?
Процедура read потребует после себя ввод или вывод информации в одну строку, а процедура readln дает возможность после себя вводить и выводить информацию с начала новой строки.
Например:
В программе: write(«Введите значения a и b «); read(a, b);
write(«Ввод информации в одну строку»);
При выполнении этой части программы, на экран будет выведено все то, что записано в первом операторе write, затем в той же строке будет находиться курсор, и компьютер будет ждать ввода значений a и b. Введем их значения — 2 и 3, разделяя их пробелом или, иначе говоря, через пробел. После этого, в той же строке будет выдана информация записанная в следующем операторе write.
На экране:
Введите значения a и b 2 3 Ввод информации в одну строку
writeln(«Введите значения a, b и c); readln(a, b, c);
writeln(«Ввод и вывод информации с начала строки»);
Введите значения a, b и c
2 3 4
Ввод и вывод информации с начала строки
Автор: Тишин Владимир Иванович
В основе сюжета комедии Грибоедова лежит конфликт человеке прогрессивных убеждений Александра Андреевича Чацкого с консервативным обществом Но эта сюжетная линия развивается в пьесе одновременно другой, ведь приезжает герой в Москву с единствен ной целью — после трехлетней разлуки встретиться с девушкой, которую он любит. Это дочь хозяина дома -Софья Павловна Фамусова. Зрители .
Тип Кольчатые черви Кольчатые черви (кольчецы) — крупный тип (около 9 тыс. видов) высших свободножи вущих морских, пресноводных и почвенных животных, имеющих более сложную организацию, чем плоские и круглые черви. Это в первую очередь относятся к морским многощетинковым червям, которые являются узловой группой в эволюции высших беспозвоночных: от их древних предков .
В 60-х годах XX века совершенно случайно, при наблюдении с радиотелескопом, который был предназначен для изучения мерцаний космических радиоисточников, Джослин Белл, Энтони Хьюиш и другие сотрудники Кембриджского университета Великобритании обнаружили серии периодических импульсов продолжительностью 0,3 секунды на частоте 81,5 МГц, которые повторялись через удивительно .
Колебания — повторяющийся в той или иной степени во времени процесс изменения состояний системы. Например, при колебаниях маятника повторяются отклонения его в ту и другую сторону от вертикального положения; при колебаниях в электрическом колебательном контуре повторяются величина и направление тока, текущего через катушку. Колебания почти всегда связаны с попеременным .