Оператор write 6 3 означает что выводимая величина

от admin

1.10.2. Операторы вывода

Для вывода информации используются следующие операторы:

где b1,b2..bn – имена переменных, подлежащих выводу. ОператорWRITE(b1,b2..bn);выполняет вывод значений, соответствующих именам переменных в списке вывода. Выводимые значения размещаются в одной строке.

Оператор WRITELN(b1,b2..bn);выполняет вывод значений, соответствующих именам переменных в списке вывода. Выводимые значения размещаются в одной строке, затем происходит переход к новой строке.

Например, во фрагменте вывода WRITE(A,H);

числовые значения переменных A, H, V, Rрасполагаются на одной строке.

Например, во фрагменте вывода WRITELN(A,H);

числовые значения переменных AиHрасполагаются на одной строке, а числовые значения переменныхV, R– с первой позиции следующей строки.

Оператор WRITELNбез списка ввода обеспечивает пропуск одной строки и переход к началу новой строки.

1.10.3. Стандартная форма вывода данных

Форма представления выводимых переменных определяется их типом. Значения переменных целого типа выводятся в форме целого числа, под которое отводится 13 позиций. Значение переменных вещественного типа выводятся в форме нормализованного числа действительного типа с порядком и заменяют в строке вывода 13 позиций. Если значение переменной занимает позиции меньше, чем предусмотрено для данных этого типа, то при выводе перед значением располагаются пробелы, число которых равно числу лишних позиций.

Для вывода данных символьного типа отводится число позиций, равное числу символов, составляющих значение данного. Например, оператор WRITE(8+6, SIN(3.141),‘SONATA’ );выведет следующие значения

_ _ _ _ _ _ _ _ _ _ _ 14_ 5.926573E-04

13 позиций 13 позиций

1.10.4. Управление формой вывода данных

Если пользователя не устраивает стандартная форма вывода данных, то можно в операторах вывода указать ширину поля, отводимого под значение переменной.

Общий вид записи операторов при выводе значений целого типа имеет вид:

где b— имя выводимой переменной,m— поле, отводимое под запись значения.

Например: Вывести переменные D=105иI=2016.

По оператору вывода WRITE(D:4, I:6);

Значение переменной Dбудет размещаться в четырёх позициях, а переменнойI— в шести.

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

При выводе значений действительного типа операторы вывода имеют вид:

где b— имя выводимой переменной,m— поле, отводимое под запись значения,n— часть поля, отводимого под дробную часть числа.

Например: Вывести переменные C=20.385иR=8.1415.

По операторам вывода WRITE(C:6:3);

вывод значений переменных будет осуществлён в одной строке, где для переменной Cбудет отведено шесть позиций, включая число позиций под дробную часть, а переменнойRбудет отведено восемь позиций.

Необходимо иметь в виду, что под десятичную точку также отводится позиция. Если при выводе значений переменных действительного типа количество позиций, отводимых под дробную часть числа, не указывается, то результат выводится в нормализованном виде с десятичным порядком.

Например: При значении C=125.64*10 -5 иT=223.58по оператору выводаWRITE(C:11, T:13);

вывод значений переменных будет осуществлён в следующем виде:

_1.2564E-03 _ _ _ 2.2358E+03

11 позиций 13 позиций

При выводе нескольких значений на одной строке для наглядности задаются необходимым количеством пробелов. Для этого записывают оператор вывода в виде WRITE( _:q);

где q— число пробелов.

Например: WRITE(A,’ ‘:4,B);

Между значениями AиBобеспечивается интервал в четыре пробела. Выводимые значения могут быть выведены с именами переменных, соответствующих этим значениям и снабжены заголовками.

Например: Вывести переменные A=1.22; B=-23.5; C=125; D=103044.

WRITELN(‘Вывод значений переменных ’);

WRITELN(‘ ’:3,’Конец вывода’);

Первый оператор вывода осуществляет подготовку для вывода с первой позиции новой строки информации, указанной во втором операторе вывода. Второй оператор вывода выводит на экран текст Вывод значений переменныхи обеспечивает подготовку для вывода информации с первой позиции новой строки третьего оператора вывода. Третий оператор вывода выводит на экран текстA=и по формату 4:2 число 1.25, соответствующее переменнойA, затем делает пять пробелов. Четвёртый оператор вывода выводит на экран в той же строке текстB=и по формату 5:1 число –23.5, после этого готовит вывод информации с новой строки для следующего оператора вывода. Пятый оператор вывода выводит на экран текстC=и по формату:3 число 125, соответствующее переменнойC, затем делает шесть пробелов, выводит текстD=по формату:6. Шестой оператор делает три пробела и в той же строке выводит текстКонец вывода. На экране дисплея появится результат работы операторов вывода.

Оператор write 6 3 означает что выводимая величина

READLN ;

WRITELN ;

READLN ;

WRITELN;

Урок 25
§ 3.2. Организация ввода и вывода данных

Формат вывода — это указываемое после двоеточия целое число, определяющее, сколько позиций на экране должна занимать выводимая величина. Если цифр в числе меньше, чем зарезервированных под него позиций на экране, то свободные позиции дополняются пробелами слева от числа. Если указанное в формате вывода после двоеточия число меньше, чем необходимо, то оно автоматически будет увеличено до минимально необходимого.

var i, j: integer; x: real; a: char;

read (a); read (b); c:=a+b; write (a, b); write (с)

Файлы Материалы урока Ресурсы ЭОР

Cкачать материалы урока

Оператор write 6 3 означает что выводимая величина должна занимать на экране позиции

Для того чтобы вывести из оперативной памяти полученные данные на экране монитора необходимо использовать оператор вывода Write.

Синтаксис оператора Write имеет следующий вид.

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

Строковой константой называют произвольный набор символов заключённый в апострофы. Такая константа может содержать любые символы, которые могут быть набраны с клавиатуры.

  1. a : = 10 ;
  2. write ( «a=» , a ) ;

В апострофах выводится строковая переменная, а из переменной а, значение равное 10.

На экране будет отображена запись а=10.

На экран выводятся символы, заключенный в апострофы.

Далее на экран выводится значение переменной, которая хранится в ячейке оперативной памяти под определённым именем.

На экране монитора появляется надпись.

Для того чтобы при выводе, отделить друг от друга элементы списка, необходимо организовать их правильный вывод.

сделать это можно следующими способами:

  • добавить в разделители запятые пробелы,
  • или указать формат вывода.

Форматом вывода является указанное после двоеточия целое число, которое определяет, сколько позиций на экране должно занимать выводимая величина.

допустим, если в качестве формата указано число 5. Значит, то на вывод числа приходится 5 свободных мест.

Организация вывода Вид оператора Результат на экране
без пробелов write(1,5,10); 1510
с разделителем write(1,» «,5,» «,10); 1 5 10
с форматом вывода write(1:3,5:3,10:4); 1 5 10

В том случае, если цифр в числе будет меньше, чем зарезервированных для него на экране, то свободные позиции будут заполнены пробелами слева от числа.

неуказанная в формате выводы: если число будет меньше, то количество знаков будет автоматически увеличено до минимального необходимого.

Для отображения на экране вещественного числа можно указать 2 параметра:

  • количество позиций под целую часть числа,
  • количество позиций под дробную часть числа.

Пример вывод целой и дробной частей вещественного числа.

Вид оператора Результат на экране
write(«pi=», 3.14:1:1); pi=3.1
write(«pi=», 3.14:2:2); pi=3.14
write(«pi=», 3.14:5:5); pi=3.14000
write(«pi=», 213.14:1:0); pi=213

Отметим, что при выполнении нового оператора write, вывод данных будет продолжен в той же строке.

Для того чтобы принудительно осуществить переход на новую строку, применяется оператор writeln. Других различий, между этими операторами, нет.

Видеоролик по организации ввода/вывода данных

Зачем нужны переменные в Паскале? Оператор ввода данных с клавиатуры

§ 3.2. Организация ввода и вывода данных

Информатика. 8 класса. Босова Л.Л. Оглавление

Ключевые слова:

• оператор вывода write
• формат вывода
• оператор ввода read

3.2.1. Вывод данных

В предыдущем параграфе мы познакомились со структурой программы на языке Паскаль, научились описывать данные, рассмотрели оператор присваивания. Этого достаточно для того, чтобы записать программу преобразования данных. Но результат этих преобразований нам виден не будет.

Для вывода данных из оперативной памяти на экран монитора используется оператор вывода write:

Организация ввода и вывода данных

Здесь в круглых скобках помещается список вывода — список выражений, значения которых выводятся на экран. Это могут быть числовые, символьные и логические выражения, в том числе переменные и константы.

Произвольный набор символов, заключённый в апострофы, считается строковой константой. Строковая константа может содержать любые символы, набираемые на клавиатуре.

Пример. Оператор write (‘ s=’, s) выполняется так:

1) на экран выводятся символы, заключённые в апострофы: s=

2) на экран выводится значение переменной, хранящееся в ячейке оперативной памяти с именем s.

Если значение переменной s равно 15 и она имеет целочисленный тип, то на экране появится: s=15

Если значение переменной s равно 15, но она имеет вещественный тип, то на экране появится: s=1.5Е+01

При выполнении оператора вывода все элементы списка вывода печатаются непосредственно друг за другом. Так, в результате работы оператора write (1, 20, 300) на экран будет выведена последовательность цифр 120300, которая будет восприниматься нами как число 120300, а не как три отдельные числовые константы. Сделать выводимые данные более доступными для восприятия можно разными способами:

Организация ввода и вывода данных

Формат вывода — это указываемое после двоеточия целое число, определяющее, сколько позиций на экране должна занимать выводимая величина. Если цифр в числе меньше, чем зарезервированных под него позиций на экране, то свободные позиции дополняются пробелами слева от числа. Если указанное в формате вывода после двоеточия число меньше, чем необходимо, то оно автоматически будет увеличено до минимально необходимого.

Для вывода вещественного числа в списке вывода для каждого выражения указываются два параметра: 1) общее количество позиций, отводимых под число; 2) количество позиций в дробной части числа:

Организация ввода и вывода данных

При выполнении нового оператора write вывод продолжается в той же строке. Чтобы осуществить переход к новой строке, используется оператор writeln. Других различий между операторами write и writeln нет.

3.2.2. Первая программа на языке Паскаль

Пользуясь рассмотренными операторами, составим программу, вычисляющую длину окружности и площадь круга радиуса 5,4 см.

Исходным данным в этой задаче является радиус: r = 5,4 см. Результатом работы программы должны быть величины с — длина окружности и s — площадь круга, с, s и r — величины вещественного типа.

Исходные данные и результаты связаны соотношениями, известными из курса математики: с = 2?r, s = ?r 2 . Программа, реализующая вычисления по этим формулам, будет иметь вид:

Организация ввода и вывода данных

Эта программа верна и решает поставленную задачу. Запустив её на выполнение, вы получите следующий результат:

Организация ввода и вывода данных

И всё-таки составленная нами программа имеет существенный недостаток: она находит длину окружности и площадь круга для единственного значения радиуса (5,4 см).

Для того чтобы вычислить длину окружности и площадь круга для другого значения радиуса, потребуется вносить изменения непосредственно в текст программы, а именно изменять оператор присваивания. Внесение изменений в существующую программу, по меньшей мере, не всегда удобно (например, когда программа большая и операторов присваивания много). Ниже вы познакомитесь с оператором, позволяющим вводить исходные данные в процессе работы программы, не прибегая к изменению текста программы.

3.2.3. Ввод данных с клавиатуры

Для ввода в оперативную память значений переменных используется оператор ввода read:

Организация ввода и вывода данных

При выполнении оператора read компьютер переходит в режим ожидания данных: пользователь должен ввести данные с клавиатуры и нажать клавишу Enter 1 .

1 Нажатием клавиши Enter может сопровождаться ввод каждого значения.

Несколько значений переменных числовых типов могут вводиться через пробел или через запятую. При вводе символьных переменных пробел и запятая воспринимаются как символы, поэтому ставить их нельзя.

Первое введённое пользователем значение переменной помещается в ячейку памяти, имя которой расположено первым в списке ввода, и т. д. Поэтому типы вводимых значений (входного потока) должны соответствовать типам переменных, указанных в разделе описания переменных.

Пример. ПУСТЬ .

var i, j: integer; x: real; a: char;

Присвоим переменным i, j, x, а значения 1, 0, 2,5 и ‘A’. Для этого воспользуемся оператором

read (i, j, х, а)

и организуем входной поток одним из следующих способов:

Организация ввода и вывода данных

Здесь мы не только использовали различные разделители (пробел, запятая), но и представляли входной поток в виде одной, двух и четырёх строк.

Для ввода данных с клавиатуры можно также использовать оператор readln. Отличие состоит в том, что после выполнения readln осуществляется автоматический переход на новую строку входного потока, даже если в текущей строке остались невведённые символы. Таким образом, readln позволяет считать лишь начальную часть введённой пользователем строки и, проигнорировав её окончание, перейти к следующей строке.

Усовершенствуем программу n_1, организовав в ней ввод данных с помощью оператора read. А чтобы пользователь знал, для чего предназначена программа, и понимал, какое именно действие ожидает от него компьютер, выведем соответствующие текстовые сообщения с помощью оператора writeln:

Организация ввода и вывода данных

Результат работы усовершенствованной программы:

Организация ввода и вывода данных

Теперь наша программа может ВЫЧИСЛИТЬ длину окружности и площадь круга для любого значения г. Иначе говоря, она решает не единичную задачу, а целый класс задач. Кроме того, в программе понятно и удобно организован ввод исходных данных и вывод получаемых результатов. Это обеспечивает дружественность пользовательского интерфейса.

САМОЕ ГЛАВНОЕ

Для ввода в оперативную память значений переменных используются операторы ввода read и readln.

Для вывода данных из оперативной памяти на экран монитора используются операторы вывода write и writeln.

Ввод исходных данных и вывод результатов должны быть организованы понятно и удобно; это обеспечивает дружественность пользовательского интерфейса.

Вопросы и задания

1. Ознакомьтесь с материалами презентации к параграфу, содержащейся в электронном приложении к учебнику. Используйте эти материалы при подготовке ответов на вопросы и выполнении заданий.

2. Запишите оператор, обеспечивающий во время работы программы ввод значения переменной summa.

3. Целочисленным переменным r, у, k нужно присвоить соответственно значения 10, 20 и 30. Запишите оператор ввода, соответствующий входному потоку:
а) 20 10 30 б) 30 20 10 в) 10 30 20

4. Опишите переменные, необходимые для вычисления площади треугольника по его трём сторонам, и запишите оператор, обеспечивающий ввод необходимых исходных данных.

5. Что является результатом выполнения оператора?
a) write (а) б) write ( ‘ а ‘ ) в) write ( ‘ а= ‘, а)

6. Какой тип имеет переменная, если после выполнения оператора write (f) на экран было выведено следующее число?
а) 125 б) 1.25Е+2

7. Каким образом можно вывести на экран вещественное число в формате с фиксированной запятой?

8. Запишите операторы ввода двух чисел и вывода их в обратном порядке.

9. Дан фрагмент программы:
read (a); read (b); c:=a+b; write (a, b); write (c) Упростите его, сократив число операторов ввода и вывода.

10. Дан фрагмент программы:
а:=10; b:=a+1: a:=b-a; write (а, b) Какие числа будут выведены на экран компьютера?

11. Напишите программу, которая вычисляет площадь и периметр прямоугольника по двум его сторонам.

§ 3.1. Общие сведения о языке программирования Паскаль

§ 3.2. Организация ввода и вывода данных

§ 3.3. Программирование линейных алгоритмов

Для вывода
информации используются следующие
операторы:

где b1,b2..bn
– имена переменных, подлежащих
выводу. ОператорWRITE(b1,b2..bn);выполняет вывод значений, соответствующих
именам переменных в списке вывода.
Выводимые значения размещаются в одной
строке.

Оператор WRITELN(b1,b2..bn);выполняет вывод значений, соответствующих
именам переменных в списке вывода.
Выводимые значения размещаются в одной
строке, затем происходит переход к новой
строке.

Например, во фрагменте вывода
WRITE(A,H);

числовые значения переменных A, H, V, Rрасполагаются на одной строке.

Например, во фрагменте вывода
WRITELN(A,H);

числовые значения переменных AиHрасполагаются на одной строке, а числовые
значения переменныхV, R– с первой
позиции следующей строки.

Оператор WRITELNбез списка ввода
обеспечивает пропуск одной строки и
переход к началу новой строки.

1.10.3. Стандартная форма вывода данных

Форма
представления выводимых переменных
определяется их типом. Значения переменных
целого типа выводятся в форме целого
числа, под которое отводится 13 позиций.
Значение переменных вещественного типа
выводятся в форме нормализованного
числа действительного типа с порядком
и заменяют в строке вывода 13 позиций.
Если значение переменной занимает
позиции меньше, чем предусмотрено для
данных этого типа, то при выводе перед
значением располагаются пробелы, число
которых равно числу лишних позиций.

Для вывода
данных символьного типа отводится число
позиций, равное числу символов,
составляющих значение данного. Например,
оператор WRITE(8+6, SIN(3.141),‘SONATA’ );выведет следующие значения

_ _ _ _ _ _ _ _ _ _ _
14_ 5.926573E-04

13 позиций 13 позиций

1.10.4. Управление формой вывода данных

Если пользователя не устраивает
стандартная форма вывода данных, то
можно в операторах вывода указать ширину
поля, отводимого под значение переменной.

Общий вид записи операторов при выводе
значений целого типа имеет вид:

где b— имя выводимой переменной,m
поле, отводимое под запись значения.

Например: Вывести переменные D=105иI=2016.

По оператору вывода WRITE(D:4, I:6);

Значение переменной Dбудет размещаться
в четырёх позициях, а переменнойI
в шести.

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

При выводе значений действительного
типа операторы вывода имеют вид:

где b— имя выводимой переменной,m
поле, отводимое под запись значения,n
часть поля, отводимого под дробную часть
числа.

Например: Вывести переменные C=20.385иR=8.1415.

По операторам вывода WRITE(C:6:3);

вывод значений переменных будет
осуществлён в одной строке, где для
переменной Cбудет отведено шесть
позиций, включая число позиций под
дробную часть, а переменнойRбудет
отведено восемь позиций.

Необходимо иметь в виду, что под десятичную
точку также отводится позиция. Если при
выводе значений переменных действительного
типа количество позиций, отводимых под
дробную часть числа, не указывается, то
результат выводится в нормализованном
виде с десятичным порядком.

Например: При значении C=125.64*10 -5 иT=223.58по оператору выводаWRITE(C:11,
T:13);

вывод значений переменных будет
осуществлён в следующем виде:

_1.2564E-03
_ _ _ 2.2358E+03

11 позиций 13 позиций

При выводе нескольких значений на одной
строке для наглядности задаются
необходимым количеством пробелов. Для
этого записывают оператор вывода в виде
WRITE( _:q);

где q— число пробелов.

Например: WRITE(A,’
‘:4,B);

Между значениями AиBобеспечивается
интервал в четыре пробела. Выводимые
значения могут быть выведены с именами
переменных, соответствующих этим
значениям и снабжены заголовками.

Например: Вывести переменные A=1.22;
B=-23.5; C=125; D=103044.

WRITELN(‘Вывод значений переменных ’);

WRITELN(‘ ’:3,’Конец вывода’);

Первый оператор вывода осуществляет
подготовку для вывода с первой позиции
новой строки информации, указанной во
втором операторе вывода. Второй оператор
вывода выводит на экран текст Вывод
значений переменных
и обеспечивает
подготовку для вывода информации с
первой позиции новой строки третьего
оператора вывода. Третий оператор вывода
выводит на экран текстA=и по формату
4:2 число 1.25, соответствующее переменнойA, затем делает пять пробелов.
Четвёртый оператор вывода выводит на
экран в той же строке текстB=и по
формату 5:1 число –23.5, после этого готовит
вывод информации с новой строки для
следующего оператора вывода. Пятый
оператор вывода выводит на экран текстC=и по формату:3 число 125, соответствующее
переменнойC, затем делает шесть
пробелов, выводит текстD=по формату:6.
Шестой оператор делает три пробела и в
той же строке выводит текстКонец
вывода
. На экране дисплея появится
результат работы операторов вывода.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

Ввод данных:

Процедура ввода данных с клавиатуры – Read (читать). Ее можно представить так:

В качестве списка ввода выступают имена переменных. Во время выполнения оператора ввода данных программа останавливается и ждет, пока они будут введены. Для завершения ввода необходимо нажать Enter. Если переменных несколько, то они могут вводиться через пробел, либо, введя одну переменную нужно нажать Enter, потом ввести вторую и т. д.

Для перевода каретки после выполнения оператора Read на новую строку, следует прибавить окончание ln:

Также можно не указывать список ввода:

Программа не перейдет к выполнению следующей части до тез пор, пока не выполниться пустой оператор.

Вывод данных:

Для вывода данных в Паскале имеется оператор Write. Для того, чтобы каретка переводилась на следующую строку, к нему прибавляется окончание ln и получается Writeln. В общем виде эти операторы имеют вид:

Элементами списка вывода являются величины различных типов, в том числе выражения и строки, отделенные друг от друга запятыми, например:

Здесь x и y – параметры, заключенные в круглые скобки. Возможно использование оператора вывода и без параметров:

Форматированный вывод:

Недостаточно просто вывести значение на экран, нужно также сделать это как можно корректнее. Допустим нам нужно в одном операторе Write вывести значения нескольких переменных (a=1, b=2, c=3). Пишем:

После выполнения, на экране действительно отобразятся значения данных переменных, но это понятно компьютеру, а пользователь увидит число 123. Необходимо придать вид выводимым данным, сделать это в Паскале можно двумя способами:

1) Вписать пробел вручную, например:

2) Воспользоваться возможностью форматированного вывода:

Двоеточие относиться к переменной, после которой оно следует, и говорит программе, что при выводе (переменной) нужно выделить место, заданное целым числом (в нашем случае это 2), т. е. под значения, хранящиеся в переменных b и c отводиться две клетки, сами они выведутся «прижатыми» к правому краю.

Процедура форматированного вывода может применяться и к другим типам данных, но особого внимания заслуживает вещественный тип. Как известно переменные вещественного типа имеют целую и дробную части, поэтому для них предусмотрена такая форма записи с использованием формата:

Результат выполнения: 32.101

Формат 5 означает, что всего под число 32.1012 выделено 5 клеток, а 2 – из этих пяти под дробную часть отводиться 2 клетки.

  • Pascal. Составное условие.
  • Вывод текстовых сообщений в графическом режиме Паскаль
  • Работа с циклами Паскаль
  • Pascal. Условный оператор IF-ELSE.
  • Pascal. Считывание строк.

Оператор присваивания

Используется для изменения значений переменных. В языке Паскаль эта команда
обозначается так:

<имя переменной>:=<выражение>

При
этом значение выражения из правой части команды присваивания заменяет текущее
значение переменной из левой части. Тип значение выражения должен совпадать с
типом переменной. Выражение может быть арифметическим, логическим или литерным. Важно, чтобы тип величины был согласован с видом выражения.
Пример:
а:=2; b:=8;
S:=а+b;
После выполненных последовательно данных трех команд переменная S принимает
значение равное 10.

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

Оператор ввода и вывода

Для ввода исходных
данных используются операторы Read и ReadLn.

Read
(список переменных);

Readln
(список переменных);

Переменные в списке отделяются
друг от друга запятой. Переменные могут быть целого, вещественного,
символьного, логического, строковых типов.

При вводе с клавиатуры информация
представляет собой строку символов. В процессе ввода происходит автоматическое
преобразование строковых значений к типу переменных, входящих в список ввода.
При наборе информации с клавиатуры данные сначала помещаются в виде строки в
буфер ввода. Преобразование и передача значений из буфера ввода в переменные
списка возможно, только если в буфер ввода введен признак конца строки. Этот
символ вводится нажатием клавиши Enter .

При вводе значений из буфера
используется указатель считывания. Процедура Read ожидает ввод с клавиатуры значений переменных из списка.

Ввод значений числовых переменных
завершается символом пробел, Tab ,
признаком конца строки – Enter .

В качестве значения символьной
переменой используется любой символ, на который в данный момент указывает
указатель считывания. Признаком конца строкового значения является признак
конца строки.

Процедура readln после
ввода значений всех переменных списка очищает буфер ввода.

Пример 1.

Если использовать оператор Readln ( a , b ), то можно использовать те же самые способы ввода – а и б.

Пример 2.

Var a, b, c:integer;

Пусть a =5, b =1, c =1,
тогда ввод можно осуществить следующим образом:

Если в программе записать

то ввод осуществляется следующим
образом:

Пример 3.

Пусть a =’+’, b =’8’,
то ввод осуществляется следующим образом:

Оператор readln ; используется для приостановки
работы программы, он ожидает нажатия клавиши Enter .

Для вывода данных
используются процедуры Write и Write Ln.

Оператор вывода имеет
вид:

Write
(список выражений);

Writeln
(список выражений);

Выражения в списке отделяются запятой.
Значения выражений могут быть целого, вещественного, символьного,
логического, строковых типов.

Вещественные
значения выводятся в экспоненциальной форме. Процедура Write выводит
значения из списка подряд и устанавливает курсор в следующую позицию после
последнего символа.

Процедура Writeln выводит значения из списка подряд, но после
вывода последнего значения переводит курсор в первую позицию следующей строки
экрана.

Оператор write используют для вывода данных из оперативной памяти на экран.

Общий вид оператора write .

Screenshot_19.png

Оператор вывода друг за другом выводит указанные данные. Например, оператор write (5, 10, 15) выведет на

экран ряд цифр без пробелов (51015), что будет восприниматься пользователем как одно число (51015), но нам нужно вывести три отдельные числа. Сделать удобными для восприятия данные можно несколькими способами:

Screenshot_2.png

Для каждой величины можно указать формат вывода . Для этого, после оператора write в скобках нужно указать название величины далее через двоеточие целое число, которое будет обозначить сколько позиций будет отведено под целую часть числа, а после следующего двоеточия количество позиций после запятой. Например, (k:2:3).

Может возникнуть ситуация, когда цифр в числе меньше, чем отведено под него ячеек на экране, тогда слева от числа пустые позиции заполняются пробелами (число просто сдвинется влево).
А если после двоеточия число меньше, чем нужно, то программа автоматически увеличит это число до минимально допустимого.

a:=(1);

c:=(a/7);

write (c:(5):(3));

Цифра (5) показывает, сколько позиций отводится для целой части числа, а цифра (3) показывает сколько позиций выделено для дробной части числа. Соответственно, в окне вывода мы увидим, (3) знака после точки.

Screenshot_1.png

Вместо оператора write , который выводит все данные в одну строку без пробелов, можно использовать оператор writeln — выводит данные с новой строки.

Операторы присваивания, операторы ввода-вывода

Содержание:
  1. Операторы присваивания
  2. Операторы ввода-вывода
  3. Составной оператор
  4. Условный оператор
  5. Условный операторCase (оператор варианта)

Поскольку язык Pascal алгоритмический, то для записи шагов алгоритмов, для наглядного однозначного представления алгоритмов в стиле структурного программирования существует набор операторов. Основные операторы считаются простыми, остальные – структурными, т.е. в их состав могут входить другие операторы, причем глубина «вложенности» операторов не ограничена.

Операторы присваивания

Оператор присваивания предназначен для присваивания переменной значения выражения. Оператор обозначается символом «:=», в левой части указывается имя переменной, в правой – вычисляемое выражение. Выражение может составлять число, знаки арифметических действий, круглые скобки, переменные и константы, процедуры и функции, допускаемое вложение друг в друга. Обязательное условие — совместность типов данных. Оператор считается синтаксически правильным, если тип выражения в правой части совпадает с типом переменной. Исключение составляет случай, когда выражение имеет целый тип, а переменная – вещественный. Допускается использование этого оператора с переменными любого типа, кроме файлового. Синтаксис:

<Оператор присваивания> :: = < Переменная> : = <Выражение>

Если в левой части оператора присваивания указана переменная типа Boolean, то в правой части оператора должно быть задано логическое выражение, задающее правило вычисления логического значения (true или false). Синтаксис:

<Логич. оператор присваивания> ::= < Логическая переменная> := <Логическое выражение>

Логическое выражение есть логическая формула, записанная на языке программирования. Логическое выражение состоит из логических операндов, связанных логическими операциями и круглыми скобками. Результатом вычисления логического выражения является булева величина (true или false). Логическими операндами могут быть логические константы, переменные, функции, операции отношения. Один логический операнд является простейшей формой логического выражения.

Примеры использования оператора присваивания:

с переменными целого типа: x := 200;

вещественного: y := Sin(Pi/3);

символьного: с := ‘6’;

булевского: test := false;

  1. Вычисление длины окружности L (тип — real):

R – радиус окружности (тип – integer или real)

Pi – константа, равная значению p.

  1. Присвоить переменной Flag (тип — Boolean) значение true, если переменная X (тип — real) находится в интервале (0; 1), и false – в противном случае:
  1. Присвоить переменной Rect (тип — Boolean) значение true, если из отрезков длиной X, Y, Z (тип — real) можно построить треугольник, и false – в противном случае:

Операторы ввода-вывода

Ввод данных – это передача информации от внешних устройств в оперативную память. Вводятся, как правило, исходные данные решаемой задачи.

Вывод данных – обратный процесс, когда данные передаются из оперативной памяти на внешние носители (принтер, дисплей, магнитные устройства и т.д.). Результаты решения всякой задачи должны быть выведены на один из этих носителей.

Основными устройствами ввода-вывода у ПК являются клавиатура и экран монитора. Именно через эти устройства главным образом осуществляется диалог между человеком и ПК.

Для того чтобы программа могла работать в диалоговом режиме (позволяла бы вводить данные и видеть результаты работы на экране) существуют операторы ввода и вывода.

Существует две формы оператора ввода: Read и ReadLn. Процедура ввода с клавиатуры имеет следующий формат:

Read (<список ввода>),

где <список ввода> – это последовательность имен переменных, разделенных запятыми.

Оператор обеспечивает ввод данных разных типов с клавиатуры. В скобках указываются имена переменных, которым присвоятся введенные значения. При вводе нескольких значений с помощью одного оператора они разделяются символом <пробел>. Для окончания ввода (завершения работы оператора Read) нажимается клавиша <Enter>. Если же в программе есть несколько подряд идущих операторов Read, то данные вводятся потоком, т.е. без нажатия <Enter>.

Другой вариант оператора ввода с клавиатуры имеет вид:

ReadLn (<список ввода>)

Оператор ReadLn аналогичен предыдущему, отличие заключается в том, что при выполнении одного оператора ReadLn курсор на экране монитора переходит на новую строку.

Аналогично существует две формы оператора вывода. Оператор вывода на экран (обращение к стандартной процедуре вывода) имеет следующий формат:

Здесь элементами списка вывода могут быть выражения различных типов. В результате выполнения данного оператора значения списка будут выведены на экран монитора.

Если необходимо вывести на экран какой-либо текст, то внутри оператора Write этот текст записывается в апострофах.

Второй вариант процедуры вывода на экран:

Его действие отличается от оператора Write тем, что после вывода последнего в списке значения происходит перевод курсора к началу следующей строки. Оператор WriteLn может использоваться без каких-либо параметров – в этом случае после выполнения такого оператора курсор перемещается на одну позицию вниз.

В операторах вывода Write и WriteLn имеется возможность установить ширину поля вывода. Если X и I – целочисленные выражения, а Y — вещественное выражение, то вызов

Write ( X : I, Y : I ) — печатает значения X и Y каждое в крайние правые позиции полей шириной I;

Write ( Y : I : X) – вызовом в крайние правые позиции поля шириной I символов выводится десятичное представление значения Y в формате с фиксированной точкой, причем после десятичной точки выводится X цифр, представляющих дробную часть числа.

Составной оператор

Для того чтобы задать последовательное выполнение (по порядку, один за другим) нескольких операторов, в языке Pascal существует составной оператор. Операторы, входящие в составной, разделяются символом «;», в начале ставится служебное слово Begin, в конце – End.

Составной оператор применяется в тех случаях, когда синтаксис языка допускает использование только одного оператора, а смысл требует выполнения нескольких действий.

Обратите внимание: перед служебным словом End разделитель (символ «;») не ставится.

Условный оператор

Очень часто так же, как и в жизни, при решении задач некоторые действия выполняются в зависимости от истинности каких-либо условий. Например, мы берем с собой зонт, если идет дождь или на небе тучи. Или часто встречающиеся в математике определения функций:

если x<0, то f(x)=x+1;

если x>=0, то f(x)=2x.

Здесь значение функции f вычисляется в зависимости от величины x по разным формулам.

Для задания выбора того или иного действия в зависимости от условия в языке Pascal предназначен условный оператор, который имеет две формы: полную и сокращенную.

В качестве условия используется значение логического выражения, в качестве операторов – любой простой или составной оператор, в том числе и сам условный оператор.

Если значение логического выражения – true, то выполняется <оператор1>, если false, то выполняется <оператор2>.

И по ветке then, и по ветке else должен выполняться единственный оператор. Если по смыслу задачи необходимо выполнить несколько операторов, тогда следует использовать составной оператор.

Часть условного оператора, начинающаяся со слова else, может отсутствовать, такая форма оператора называется сокращенной и выглядит следующим образом:

Оператор в этом случае выполняется, если условие истинно, иначе программа переходит к следующему оператору.

Пример полной формы: рассмотрим определение функции f(x):

Если в нашем примере описать логическую переменную В, значение которой будет равно true, если x<0, и false иначе, то можно записать так:

Пример краткой формы:

При использовании вложенных условных операторов может возникнуть неоднозначность, например:

В данном случае необходимо помнить, что служебное слово else всегда ассоциируется с ближайшим по тексту программы словом if, которое еще не связано с else. А чтобы такая двусмысленность не возникала, лучше всего пользоваться составным оператором:

Теперь дадим строгое описание условного оператора в форме синтаксической диаграммы:

То, что мы раньше называли условием, есть логическое выражение, которое вычисляется в первую очередь. Если его значение равно true, то будет выполняться <Оператор1>, если false, то <Оператор2> для полной формы или сразу следующий оператор после условного для неполной формы.

Пример: По длинам трех сторон треугольника a, b, c вычислить его площадь.

Для решения задачи используется формула Герона: , где — полупериметр треугольника. Исходные данные должны удовлетворять основному соотношению для сторон треугольника: длина каждой стороны должна быть меньше длин двух других сторон.

Условный оператор Case (оператор варианта)

Более обобщенной формой условного оператора, учитывающей произвольное число альтернатив, является оператор варианта. Использование этого оператора позволяет задавать выполнение некоторых действий для нескольких различных значений одного выражения:

<оператор N> выполнится только в том случае, если значение выражения не совпадет ни с одним из <значений I>. При использовании оператора Case необходимо помнить о том, что значение выражения и <значения I> должны быть одного типа.

Присвоить строке S значение дня недели для заданного числа D при условии, что в месяце 31 день и 1-ое число – понедельник.

Для построения алгоритма воспользуемся операцией mod, позволяющий вычислить остаток от деления двух целых чисел, и с условием, что 1-ое число – понедельник. Тогда можно записать следующий оператор Case:

Чтобы завершить построение алгоритма решения поставленной задачи, необходимо ограничить область возможных значений переменной D (тип — integer):

В качестве <значения> можно также задать список и (или) диапазон значений.

Контрольные вопросы

  1. Как работает оператор присваивания?
  2. Приведите синтаксис оператора присваивания.
  3. Что такое ввод данных?
  4. Что такое вывод данных?
  5. Перечислите формы операторов ввода данных.
  6. Перечислите формы операторов вывода данных.
  7. Сформулируйте правила записи оператора IF.
  8. Что такое вложенный оператор IF?
  9. Что представляет собой оператор варианта?
Организация ввода и вывода данных
  • оператор вывода write
  • формат вывода
  • оператор ввода read
Вывод данных

В предыдущей теме мы познакомились со структурой программы на языке Pascal, научились описывать данные, рассмотрели оператор присваивания. Этого достаточно для того, чтобы записать программу преобразования данных. Но результат этих преобразований нам виден не будет.

Для вывода данных из оперативной памяти на экран монитора используется оператор вывода write :

Здесь в круглых скобках помещается список вывода — список выражений, значения которых выводятся на экран. Это могут быть числовые, символьные и логические выражения, в том числе переменные и константы.

Произвольный набор символов, заключённый в апострофы, считается строковой константой. Строковая константа может содержать любые символы, набираемые на клавиатуре.

Пример

Оператор write (‘s= ‘, s) выполняется так:

  1. на экран выводятся символы, заключённые в апострофы: s=
  2. на экран выводится значение переменной, хранящееся в ячейке оперативной памяти с именем s .

Если значение переменной s равно 15 и она имеет целочисленный тип, то на экране появится: s=15

Если значение переменной s равно 15, но она имеет вещественный тип, то на экране появится: s=1.5Е+01

При выполнении оператора вывода все элементы списка вывода печатаются непосредственно друг за другом. Так, в результате работы оператора write (1, 20, 300) на экран будет выведена последовательность цифр 120300, которая будет восприниматься нами как число 120300, а не как три отдельные числовые константы. Сделать выводимые данные более доступными для восприятия можно разными способами:

Способы вывода данных

Вариант организации вывода Оператор вывода Результат
Добавить разделители — запятые write (1, ‘,’, 20, ‘,’, 300) 1,20,300
Добавить разделители — пробелы write (1, ‘ ‘, 20, ‘ ‘, 300) 1 20 300
Указать формат вывода write (1:3, 20:4, 300:5) 1 20 300

Формат вывода — это указываемое после двоеточия целое число, определяющее, сколько позиций на экране должна занимать выводимая величина. Если цифр в числе меньше, чем зарезервированных под него позиций на экране, то свободные позиции дополняются пробелами слева от числа. Если указанное в формате вывода после двоеточия число меньше, чем необходимо, то оно автоматически будет увеличено до минимально необходимого.

Для вывода вещественного числа в списке вывода для каждого выражения указываются два параметра: 1) общее количество позиций, отводимых под число; 2) количество позиций в дробной части числа:

Способы вывода вещественных данных

Оператор вывода Результат выполнения оператора
write (‘s=’, s:2:0); s=15
write (‘s=’, s:3:1); s= 15.0
write (‘s=’, s:5:1); s= 15.0

При выполнении нового оператора write вывод продолжается в той же строке. Чтобы осуществить переход к новой строке, используется оператор writeln . Других различий между операторами write и writeln нет.

Первая программа на языке Pascal

Пользуясь рассмотренными операторами, составим программу, вычисляющую длину окружности и площадь круга радиуса 5,4 см.

Исходным данным в этой задаче является радиус: r = 5,4 см. Результатом работы программы должны быть величины c — длина окружности и s — площадь круга. c, s и r — величины вещественного типа.

Исходные данные и результаты связаны соотношениями, известными из курса математики: c=2πr, s = πr 2 . Программа, реализующая вычисления по этим формулам, будет иметь вид:

Эта программа верна и решает поставленную задачу. Запустив её на выполнение, вы получите следующий результат:

Первая программа

Первая программа

И всё-таки составленная нами программа имеет существенный недостаток: она находит длину окружности и площадь круга для единственного значения радиуса (5,4 см).

Для того чтобы вычислить длину окружности и площадь круга для другого значения радиуса, потребуется вносить изменения непосредственно в текст программы, а именно изменять оператор присваивания. Внесение изменений в существующую программу, по меньшей мере, не всегда удобно (например, когда программа большая и операторов присваивания много). Ниже вы познакомитесь с оператором, позволяющим вводить исходные данные в процессе работы программы, не прибегая к изменению текста программы.

Ввод данных с клавиатуры

Для ввода в оперативную память значений переменных используется оператор ввода read :

При выполнении оператора read компьютер переходит в режим ожидания данных: пользователь должен ввести данные с клавиатуры и нажать клавишу Enter . Несколько значений переменных числовых типов могут вводиться через пробел или через запятую. При вводе символьных переменных пробел и запятая воспринимаются как символы, поэтому ставить их нельзя.

Первое введённое пользователем значение переменной помещается в ячейку памяти, имя которой расположено первым в списке ввода, и т.д. Поэтому типы вводимых значений (входного потока) должны соответствовать типам переменных, указанных в разделе описания переменных.

Пример

var i, j: integer; x: real; a: char;

Присвоим переменным i, j, x, а значения 1, 0, 2.5 и ‘А’. Для этого воспользуемся оператором

и организуем входной поток одним из следующих способов:

Пример ввода

Пример ввода

Здесь мы не только использовали различные разделители (пробел, запятая), но и представляли входной поток в виде одной, двух и четырёх строк.

Для ввода данных с клавиатуры можно также использовать оператор readln . Отличие состоит в том, что после выполнения readln осуществляется автоматический переход на новую строку входного потока, даже если в текущей строке остались невведённые символы. Таким образом, readln позволяет считать лишь начальную часть введённой пользователем строки и, проигнорировав её окончание, перейти к следующей строке.

Усовершенствуем программу p_1, организовав в ней ввод данных с помощью оператора read . А чтобы пользователь знал, для чего предназначена программа, и понимал, какое именно действие ожидает от него компьютер, выведем соответствующие текстовые сообщения с помощью оператора writeln :

Результат работы усовершенствованной программы

Результат работы усовершенствованной программы

Теперь наша программа может вычислить длину окружности и площадь круга для любого значения r. Иначе говоря, она решает не единичную задачу, а целый класс задач. Кроме того, в программе понятно и удобно организован ввод исходных данных и вывод получаемых результатов. Это обеспечивает дружественность пользовательского интерфейса.

САМОЕ ГЛАВНОЕ

Для ввода в оперативную память значений переменных используются операторы ввода read и readln .

Для вывода данных из оперативной памяти на экран монитора используются операторы вывода write и writeln .

Ввод исходных данных и вывод результатов должны быть организованы понятно и удобно; это обеспечивает дружественность пользовательского интерфейса.

Организация ввода и вывода данных
  • оператор вывода print
  • формат вывода
  • оператор ввода input
Вывод данных

В предыдущей теме мы познакомились со структурой программы на языке Python, научились описывать данные, рассмотрели оператор присваивания. Этого достаточно для того, чтобы записать программу преобразования данных. Но результат этих преобразований нам виден не будет.

Для вывода данных из оперативной памяти на экран монитора используется оператор вывода print :

Здесь в круглых скобках помещается список вывода — список выражений, значения которых выводятся на экран. Это могут быть числовые, символьные и логические выражения, в том числе переменные и константы.

Произвольный набор символов, заключённый в апострофы, считается строковой константой. Строковая константа может содержать любые символы, набираемые на клавиатуре.

Пример

Оператор print (‘s= ‘, s) выполняется так:

  1. на экран выводятся символы, заключённые в апострофы: s=
  2. на экран выводится значение переменной, хранящееся в ячейке оперативной памяти с именем s .

Если значение переменной s равно 15, и она имеет целочисленный тип, то на экране появится: s=15

Оператор print вставляет между выводимыми значениями так называемый разделитель (или сепаратор, англ. separator). По умолчанию разделитель — это пробел, но мы можем его изменить, указав новый разделитель после слова sep

Способы вывода данных

Вариант организации вывода Оператор вывода Результат
По умолчанию print (1, 20, 300) 1 20 300
Убрать разделители — пробелы print (1, 20, 300, sep=») 120300
Добавить другой разделитель print (1, 20, 300, sep=’,’) 1,20,300

Формат вывода — это указываемое после двоеточия целое число, определяющее, сколько позиций на экране должна занимать выводимая величина. Если цифр в числе меньше, чем зарезервированных под него позиций на экране, то свободные позиции дополняются пробелами слева от числа. Если указанное в формате вывода после двоеточия число меньше, чем необходимо, то оно автоматически будет увеличено до минимально необходимого.

Для вывода вещественного числа в списке вывода для каждого выражения указываются два параметра: 1) общее количество позиций, отводимых под число; 2) количество позиций в дробной части числа: (◦ — обозначение пробела)

Способы вывода вещественных данных

Оператор вывода Результат выполнения оператора
a = 4
print (‘a=’, ‘<:5d><:5d>’.format(a, a * a))
a= ◦◦◦◦4◦◦◦16
a = 1 / 3
b = 1 / 9
print («<:7.3f><:7.3f>».format(a, b))
◦◦0.333◦◦0.111
a = 1 / 3
b = 1 / 9
print (‘<:10.3e><:10.3e>’.format(a, b))
◦3.333e-0.1◦◦1.111e-01

При выполнении нового оператора print вывод продолжается в новой строке. Чтобы убрать переход к новой строке, используется параметр end .

Первая программа на языке Python

Пользуясь рассмотренными операторами, составим программу, вычисляющую длину окружности и площадь круга радиуса 5,4 см.

Исходным данным в этой задаче является радиус: r = 5,4 см. Результатом работы программы должны быть величины c — длина окружности и s — площадь круга. c, s и r — величины вещественного типа.

Исходные данные и результаты связаны соотношениями, известными из курса математики: c=2πr, s = πr 2 . Программа, реализующая вычисления по этим формулам, будет иметь вид:

Эта программа верна и решает поставленную задачу. Запустив её на выполнение, вы получите следующий результат:

Первая программа

Первая программа

Вывод по формату:

Первая программа с выводом по формату

Первая программа с выводом по формату

И всё-таки составленная нами программа имеет существенный недостаток: она находит длину окружности и площадь круга для единственного значения радиуса (5,4 см).

Для того чтобы вычислить длину окружности и площадь круга для другого значения радиуса, потребуется вносить изменения непосредственно в текст программы, а именно изменять оператор присваивания. Внесение изменений в существующую программу, по меньшей мере, не всегда удобно (например, когда программа большая и операторов присваивания много). Ниже вы познакомитесь с оператором, позволяющим вводить исходные данные в процессе работы программы, не прибегая к изменению текста программы.

Ввод данных с клавиатуры

Для ввода в оперативную память значений переменных используется оператор ввода input . Каждая функция input() захватывает только ОДНУ строку данных и воспринимает ее как ТЕКСТ (строковый тип):

    Тип переменной можно преобразовать налету:

При выполнении функции input компьютер переходит в режим ожидания данных: пользователь должен ввести данные с клавиатуры и нажать клавишу Enter , система запишет это значение в переменную.

Есть задачи, в которых вводимые данные заданы в одной строке, например, 10 20. Чтобы была возможность работать с такими данными, их надо разделить.

Для этого нужно применить следующий синтаксис:

Здесь есть правило: количество данных должно соответствовать количеству переменных. В примере выше в одной строке передаются два целых числа, разделенных пробелом. Соответственно, нужно эти данные передать также двум переменным. Осталось не забыть, что определенные таким образом переменные имеют строковый тип. Для арифметического сложения их нужно привести к типу целого числа.

Теперь рассмотрим ситуацию, когда входные данные заданы в одной строке, но разделены особыми разделителями, отличными от пробела. Классическим примером таких входных данных является показания времени — 10:33.

В таких случаях надо для split() указывать конкретный символ разделителя. Разделителем будет символ ‘:’ , взятый в кавычки или апострофы.

Также добавим, что если в одной строке введены данные одного единственного типа (только целые числа, вещественные числа или строки), то определение переменных и задание им одного и того же типа можно выполнить одной строкой кода, используя следующий синтаксис:

При вызове функции input в скобках можно записать сообщение-подсказку:

Усовершенствуем программу 1, организовав в ней ввод данных с помощью оператора input , включив строку с приглашением для ввода:

Результат работы усовершенствованной программы

Результат работы усовершенствованной программы

Теперь наша программа может вычислить длину окружности и площадь круга для любого значения r. Иначе говоря, она решает не единичную задачу, а целый класс задач. Кроме того, в программе понятно и удобно организован ввод исходных данных и вывод получаемых результатов. Это обеспечивает дружественность пользовательского интерфейса.

САМОЕ ГЛАВНОЕ

Для ввода в оперативную память значений переменных используются оператор ввода input .

Для вывода данных из оперативной памяти на экран монитора используются оператор вывода print .

Ввод исходных данных и вывод результатов должны быть организованы понятно и удобно; это обеспечивает дружественность пользовательского интерфейса.

Вопросы и задания:
  1. Ознакомьтесь с материалами презентации. Используйте эти материалы при подготовке ответов на вопросы и выполнении заданий.
  2. Запишите оператор, обеспечивающий во время работы программы ввод значения переменной summa.
  3. Целочисленным переменным i, j, k нужно присвоить соответственно значения 10, 20 и 30. Запишите оператор ввода, соответствующий входному потоку:
    а) 20 10 30
    б) 30 20 10
    в) 10 30 20
  4. Опишите переменные, необходимые для вычисления площади треугольника по его трём сторонам, и запишите оператор, обеспечивающий ввод необходимых исходных данных.
  5. Что является результатом выполнения оператора?
    а) write (а) (print(a))
    б) write (‘а’) (print(‘a’))
    в) write (‘а=’, а) (print(‘a=’, a))
  6. Какой тип имеет переменная f, если после выполнения оператора write (f) (print(f)) на экран было выведено следующее число?
    а) 125
    б) 1.25Е+2
  7. Каким образом можно вывести на экран вещественное число?
  8. Запишите операторы ввода двух чисел и вывода их в обратном порядке.
  9. Дан фрагмент программы:

Упростите его, сократив число операторов ввода и вывода.

Какие числа будут выведены на экран компьютера?

Основные понятия и операторы языка Паскаль

Основные понятия и операторы языка Паскаль

Сайт: Электронные курсы ТПУ
Курс: Информационные технологии 1
Книга: Основные понятия и операторы языка Паскаль
Напечатано:: Гость
Дата: Среда, 8 Март 2023, 07:51

Оглавление

  • ВВЕДЕНИЕ
  • 1. ОСНОВНЫЕ ПОНЯТИЯ СИСТЕМЫ ПРОГРАММИРОВАНИЯ ТУРБО ПАСКАЛЬ
    • 1.1. Алфавит и словарь языка Паскаль
    • 1.2. Типы данных
    • 1.3. Арифметические операции и стандартные функции
    • 2.1. Оператор присваивания
    • 2.2. Ввод и вывод данных
    • 2.2.1. Вывод данных на экран
    • 2.2.2. Ввод данных с клавиатуры
    • 2.3. Оператор безусловного перехода
    • 2.4. Пустой оператор
    • 2.5. Структурные операторы
    • 2.6. Составной оператор
    • 2.7. Условные операторы
    • 2.7.1. Условный оператор If
    • 2.7.2. Оператор выбора
    • 2.8. Операторы цикла (повтора)
    • 2.8.1. Оператор цикла с параметром
    • 2.8.2. Оператор цикла с предусловием
    • 2.8.3. Оператор цикла с постусловием
    • 2.8.4. Типовые задачи с использованием циклов

    ВВЕДЕНИЕ

    Целью курса «Информационные технологии» является обучение студентов программированию с применением методов вычислительной математики, использованием современных средств вычислительной техники и компьютерных технологий, дальнейшее развитие компьютерной грамотности на основе дисциплин «Информатика», «Математика», «Начертательная геометрия и инженерная графика», «Физика».

    Задачи изучения дисциплины заключаются в практическом освоении языка и среды Турбо Паскаля (версии 7.0), в приобретении студентами навыков составления алгоритмов задач теплоэнергетического профиля, отладки программ, в умении проводить анализ полученных результатов и корректировать свои действия с целью улучшения качественных показателей программ.

    Язык Турбо Паскаль является классическим языком программирования, широко применяемым в инженерных расчётах. Его изучение позволяет сформировать у студентов особый вид мышления – алгоритмический. Студентам, успешно овладевшим этим языком, не составит особого труда в будущей своей трудовой деятельности применять свои знания и составлять программы не только на языке Паскаль, но и на других языках программирования. Особенно важным является то, что знание языка Паскаль нужно для составления программ в среде Windows при помощи прикладного пакета Delphi, всё более популярного в последнее время.

    К настоящему моменту имеется огромное количество библиотек программ, процедур и функций с примерами реализации большинства инженерных задач на языке Паскаль и в среде визуального программирования Delphi. Умелое применение этих наработок предполагает хорошее базовое знание языка Паскаль.

    В период обучения студенты должны освоить некоторые численные методы и способы их реализации на языке Паскаль, в том числе с использованием библиотек подпрограмм и внешних файлов данных.

    1. ОСНОВНЫЕ ПОНЯТИЯ СИСТЕМЫ ПРОГРАММИРОВАНИЯ ТУРБО ПАСКАЛЬ

    Большинство программ создаются для решения какой-либо задачи. В процессе ее решения на ПК необходимо: ввести данные, указать способ их обработки, задать способ вывода полученных результатов. Поэтому нужно знать следующее:

    • Как ввести информацию в память (ввод).
    • Как хранить информацию в памяти (данные).
    • Как указать правильные команды для обработки данных (операции).
    • Как передать данные из программы пользователю (вывод).

    Необходимо также уметь упорядочивать команды так, чтобы:

    • некоторые из них выполнялись только в случае, если соблюдается некоторое условие или ряд условий (условное выполнение);
    • другие выполнялись повторно некоторое число раз (циклы);
    • третьи выделялись в отдельные части, которые могут быть неоднократно выполнены в разных местах программы (подпрограммы).

    Таким образом, нужно уметь использовать семь основных элементов программирования – ввод, данные, операции, вывод, условное выполнение, циклы и подпрограммы – и на их основе строить программы.

    Этот список не является полным, однако, он содержит те элементы, которые присущи обычно всем программам. Многие языки программирования имеют еще и дополнительные средства, в том числе и Паскаль.

    Основные файлы пакета Турбо Паскаль:

    • Turbo.exe – интегрированная среда программирования;
    • Turbo.hlp – файл, содержащий данные для оперативной подсказки;
    • Turbo.tp – файл конфигурационной системы;
    • Turbo.tpl – библиотека стандартных модулей Турбо Паскаля.

    Для работы в графическом режиме необходимы Graph.tru – модуль с графическими процедурами и функциями Турбо Паскаля, несколько файлов с расширением *.BGI – драйверы различных типов видеосистем ПК, несколько файлов с расширением *.CHR, содержащих векторные шрифты.

    После загрузки системы экран разделен на три части: основное (или рабочее) окно, главное меню и строка, в которой указывается назначение основных функциональных клавиш. Переход из основного окна в главное меню и обратно осуществляется посредством клавиши F10.

    В рабочем окне осуществляется набор текста программы, запуск же происходит следующим образом: выход в меню, выбор пункта Run – Run.

    Для того чтобы сохранить программу, необходимо: выйти в меню, выбрать File – Save (Save as …), в появившемся окне ввести имя файла и нажать клавишу Enter.

    Выход из системы программирования: выход в меню, пункт File – Exit.

    1.1. Алфавит и словарь языка Паскаль

    Язык – совокупность символов, соглашений и правил, используемых для общения. При записи алгоритма решения задачи на языке программирования необходимо четко знать правила написания и использования языковых единиц. Основой любого языка является алфавит (набор знаков, состоящий из букв, десятичных и шестнадцатеричных цифр, специальных символов).

    Алфавит Паскаля составляют:

    • прописные и строчные буквы латинского алфавита:

    A, B, C…Y, Z, a, b, c…y, z;

    • десятичные цифры: 0, 1, 2…9;
    • специальные символы:
    • комбинации специальных символов, которые нельзя разделять пробелами, если они используются как знаки операций:

    Неделимые последовательности знаков алфавита образуют слова, отделенные друг от друга разделителями. Ими могут быть пробел, комментарий или символ конца строки. Словарь Паскаля можно разделить на три группы слов: зарезервированные слова, стандартные идентификаторы и идентификаторы пользователя.

    Зарезервированные слова (см. табл. 1.1) имеют фиксированное написание и навсегда определенный смысл. Они не могут изменяться программистом, и их нельзя использовать в качестве имен для обозначения величин.

    Идентификатор – имя (identification – установление соответствия объекта некоторому набору символов). Для обозначения определенных разработчиками языка функций, констант и т. д. служат стандартные идентификаторы, например, Sqr, Sqrt и т. д. В этом примере Sqr вызывает функцию, которая возводит в квадрат данное число, а Sqrt – корень квадратный из заданного числа. Пользователь может переопределить любой стандартный идентификатор, но чаще всего это приводит к ошибкам, поэтому на практике их используют без изменения. Идентификаторы пользователя – это те имена, которые дает сам программист. При записи программ нужно соблюдать общие правила написания идентификаторов:

    • Идентификатор начинается только с буквы (исключение составляют специальные идентификаторы меток).
    • Идентификатор может состоять из букв, цифр и знака подчеркивания.
    • Максимальная длина – 127 символов.
    • При написании идентификаторов можно использовать прописные и строчные буквы.
    • Между двумя идентификаторами должен стоять хотя бы один пробел.

    Некоторые зарезервированные слова версии Турбо Паскаль.

    Остаток от деления

    До тех пор, пока не выполнится

    Группа слов, имеющая смысл, называется словосочетанием. В языке программирования словосочетание, состоящее из слов и символов и задающее правило вычисления некоторого значения, называется выражением. Минимальная конструкция языка, представляющая законченную мысль, есть предложение. Если предложение языка программирования задает полное описание действия, которое необходимо выполнить, то оно называется оператором. Предложение, описывающее структуру и организацию данных, называется описанием.

    1.1.1. Величины в Паскале

    Решение задач на ПК – это процесс сбора, обработки и передачи информации. Поэтому задача любой программы состоит в обработке данных. В Паскале данные делятся на константы и переменные. Они определяются идентификаторами (именами).

    Константами называются такие данные, которые не изменяются в процессе выполнения программы в отличие от переменных, которые могут менять свои значения. Имя переменной подобно ящичку, который можно заполнить различными значениями, что нельзя сделать с константой. Переменная характеризуется именем, типом (см. 1.2) и значением.

    Кроме констант и переменных, существуют так называемые типизированные константы, которые являются как бы промежуточным звеном между переменными и константами (в данном пособии не рассматриваются. Рекомендуется дополнительная литература, например, [3]).

    1.1.2. Структура программы

    В программе программист записывает последовательность действий, выполняемых над определенными данными с помощью различных операций для реализации заданной цели. Основные требования, предъявляемые к программе:

    • точность полученного результата;
    • время выполнения;
    • объем требуемой памяти.

    Максимальный размер программы ограничен. Компилятор позволяет обрабатывать программы, в которых объем данных и генерируемый машинный код не превышают 64 Кбайт каждый. Если объем программы требует большего количества памяти, то необходимо использовать дополнительные средства.

    1. Заголовок, состоящий из зарезервированного слова program и имени программы. Заголовок несет смысловую нагрузку и может отсутствовать, однако рекомендуется всегда его записывать для быстрого распознавания нужной программы.
    2. Раздел описаний, в котором должны быть описаны все идентификаторы, встречающиеся в программе. Он представляет собой:
    • список имен подключаемых библиотечных модулей (определяется зарезервированным словом uses);
    • описание меток (label);
    • описание констант (const);
    • определение типов данных (type);
    • описание переменных (var);
    • описание процедур и функций.

    Раздел описания начинается соответствующим каждому элементу списка служебным словом (табл. 1), после которого идет последовательность величин одного типа, разделенных запятой. После списка имен ставится двоеточие и указывается тип данных (см. 1.2).

    Любой элемент данного списка в программе может отсутствовать.

    1. Раздел операторов.

    Данный раздел начинается со служебного слова Begin и заканчивается служебным словом End. В нём задаются действия над объектами программы, введенными в разделе описаний. Операторы, посредством которых эти действия производятся, разделяются точкой с запятой. После последнего слова End ставится точка.

    Для лучшего восприятия текста программы и поиска ошибок рекомендуется следующая схема:

    • зарезервированные слова program, procedure, function и т. д. пишутся строчными буквами;
    • идентификаторы начинаются с прописных букв;
    • операторы записываются строчными буквами;
    • логически подчиненные структуры записываются на 1 строку ниже и на 1–2 позиции правее по отношению к более старшим.

    1.2. Типы данных

    При решении задач выполняется обработка информации различного свойства, например: дробные и целые числа, слова, строки и т. д. Для описания множества допустимых значений величины и совокупности операций, в которых участвует данная величина, используется указание ее типа данных. Тип данных – это множество величин, объединенных определенной совокупностью допустимых операций. Каждый тип имеет свой диапазон значений и специальное зарезервированное слово для описания. Все типы данных можно разделить на две группы: скалярные (простые) и структурированные (составные). Простые типы данных также делятся на стандартные и пользовательские. Стандартные – предлагаются разработчиками Турбо Паскаля, а пользовательские разрабатывают сами программисты.

    Представим типы данных в виде схемы:

    1. Простые типы:
    • порядковые;
    • целые;
    • логический;
    • символьный;
    • перечисляемый;
    • интервальный;
    • вещественные;
    • ссылочный.
    1. Структурированные типы:
    • строковый;
    • регулярный;
    • комбинированный;
    • множественный;
    • файловый.
    1. Процедурные типы.

    В данном учебном пособии будут рассмотрены лишь основные типы данных, используемые наиболее часто. С другими интересующими типами данных можно познакомиться в специальной литературе (например, [3]). Рассмотрим пока лишь простые типы данных, структурированные типы требуют отдельного, более тщательного рассмотрения.

    1.2.1. Целочисленные типы данных

    Требуемая память (байт)

    0 … 255 -128 … 127

    Значения целых типов могут изображаться в программе 2 способами: в десятичном виде и в шестнадцатеричном. Если число представлено в шестнадцатеричной системе, перед ним без пробела ставится знак $, а цифры старше 9 обозначаются латинскими буквами от A до F. Диапазон изменений таких чисел от $0000 до $FFFF.

    1.2.2. Вещественные типы данных

    Вещественные (действительные) типы данных представляют собой значения, которые используются в арифметических выражениях и могут быть представлены двумя способами: с фиксированной и с плавающей точкой.

    Требуемая память (байт)

    Действительные числа с фиксированной точкой записываются по обычным правилам арифметики, только целая часть от дробной отделяется точкой. Если точка отсутствует, число считается целым. Перед числом может стоять знак «+» или «–». Если знака нет, то число считается положительным.

    Числа в форме с плавающей точкой представляются в экспоненциальном виде: mE+p, где m – мантисса (целое или дробное число), Е означает 10 в степени, р – порядок (целое число).

    Например: 5.18Е+2 = 5.18 * 10 2 = 518 ;

    10Е-03 = 10 * 10 –3 = 0.01 .

    1.2.3. Символьный тип

    Литерный (символьный) тип char определяется множеством значений кодовой таблицы ПК. Каждому символу приписывается целое число в диапазоне от 0 до 255. Для кодировки используется код ASCII. Например, код символа ‘A’ при русской раскладке клавиатуры будет равен 192. Для размещения в памяти переменной литерного типа нужен 1 байт.

    1.2.4. Логический тип

    Логический (булевский) тип boolean определяется двумя значениями: true (истина) и false (ложь). Он применяется в логических выражениях и выражениях отношения. Для размещения в памяти –1 байт.

    1.3. Арифметические операции и стандартные функции

    Арифметическим называется выражение, составленное из операндов – величин, над которыми производится операция; скобок и знаков операций. В результате вычисления выражения получается значение определенного типа. Порядок вычисления выражения определяется скобками и старшинством операций. Они делятся на арифметические отношения, логические и др. Операции могут быть унарными и бинарными.

    1.3.1. Арифметические операции

    Остаток от деления

    1.3.2. Операции отношения

    Операции отношения выполняют сравнение двух операндов и определяют, истинно значение или ложно. Сравниваемые величины могут принадлежать к любому типу данных, и результат всегда имеет логический тип, принимая одно значение из двух: истина или ложь.

    A>B

    A<B

    Больше или равно

    A>=B

    Меньше или равно

    A<=B

    1.3.3. Стандартные математические функции

    Дробная часть х

    Псевдослучайное число [0,1]

    Псевдослучайное число [0,х]

    Округление до ближайшего целого

    Корень квадратный из х

    Ближайшее целое,
    не превышающее х по модулю

    1.3.4. Логические операции

    Логические выражения в результате вычисления принимают логические значения True и False. Операндами этих выражений могут быть логические константы, переменные, отношения. Идентификатор логического типа в Паскале: boolean.

    В Паскале имеется 4 логические операции: отрицание – NOT, логическое умножение – AND, логическое сложение – OR, исключающее «или» – XOR . Использованы обозначения: T – true, F – false.

    Приоритеты операций: not, and, or, xor. Операции отношения ( = , <> …) имеют более высокий приоритет, чем логические операции, поэтому их следует заключать в скобки при использовании по отношению к ним логических операций.

    1.3.5. Приоритет операций (в порядке убывания):

    • вычисление функции;
    • унарный минус, not;
    • умножение, деление, div, mod, and;
    • сложение, вычитание, or, xor;
    • операции отношения.

    2. ОПЕРАТОРЫ ЯЗЫКА ПАСКАЛЬ

    Оператором называется предложение языка программирования, задающее полное описание некоторого действия, которое необходимо выполнить. Основная часть программы на языке Турбо Паскаль представляет собой последовательность операторов. Разделителем операторов служит точка с запятой. Операторы, не содержащие других операторов, называются простыми. К ним относятся операторы присваивания, безусловного перехода, вызова процедуры, пустой. Структурные операторы представляют собой конструкции, построенные из других операторов по строго определенным правилам. Эти операторы можно разделить на три группы: составные, условные и повтора.

    2.1. Оператор присваивания

    Оператор присваивания – один из наиболее часто встречающихся операторов языка. Он имеет следующую структуру:

    переменная := выражение;

    := – знак присваивания. Слева от знака присваивания может стоять только переменная. Справа от знака присваивания стоит выражение. Частным случаем выражения может служить переменная, константа или вызов функции. Тип выражения должен соответствовать типу переменной.

    Наиболее распространен случай арифметического выражения. Примеры оператора присваивания:

    a:=4.5*b-13*c; x:=ysin(P/4)+8.1;

    A:=C; x:=0;

    Менее распространен случай логического выражения. Примеры оператора присваивания:

    L:=x<2; Z:=true;

    Работает оператор следующим образом. Сначала вычисляется значение выражения, а затем это значение присваивается переменной, стоящей слева от знака присваивания.

    2.2. Ввод и вывод данных

    Решение даже самой простой задачи на компьютере не обходится без операций ввода – вывода информации. Ввод данных – это передача информации от внешнего носителя в оперативную память для обработки. Вывод – обратный процесс, когда данные передаются после обработки из оперативной памяти на внешний носитель (экран монитора, принтер, дискету или винчестер и другие устройства). Выполнение этих операций производится путем обращения к стандартным процедурам: Read, Readln, Write, Writeln.

    2.2.1. Вывод данных на экран

    Процедура вывода Write производит вывод данных.

    Общий вид: Write(<список вывода>);

    В списке вывода могут быть представлены выражения допустимых типов данных (integer, real, char и т. д.) и произвольный текст, заключенный в апострофы.

    Например: Write(‘Привет’); Write(34.7);
    Write(45+55); Write(b, d);

    Если в качестве параметра в списке вывода стоит строковая константа в апострофах, то она выводится в том же виде. Если в качестве параметра в списке вывода стоит переменная, то выводится её значение. Если в качестве параметра в списке вывода стоит выражение, то сначала вычисляется его значение, а затем оно выводится на экран.

    Процедура Writeln аналогична процедуре Write. Отличие в том, что после вывода последнего в списке выражения курсор переходит на начало новой строки.

    В процедурах вывода Write и Writeln имеется возможность записи выражения, определяющего ширину поля вывода.

    При рассмотрении форматов вывода примем следующие обозначения:

    • I – целочисленное выражение;
    • R – выражение вещественного типа;
    • _ – пробел.

    Значение I

    Оператор Writeln; без параметров просто переводит курсор на новую строку, ничего не выводя.

    Пример 2.1. Использование операторов вывода.

    program primer;

    var a,b,c,sum:integer;

    begin

    a:=4; b:=6; c:=55;

    Write(a:3); Write(b:3); Write(c:3); Writeln;

    Sum:=a+b+c;

    Writeln (‘A=’,a);

    Writeln (‘B=’,b);

    Writeln (‘C=’,c);

    Writeln (‘Сумма A+B+C равна ’, sum);

    end.

    4 6 55

    А=4

    В=6

    С=55

    Сумма А+В+С равна 65

    2.2.2. Ввод данных с клавиатуры

    Процедура чтения Read обеспечивает ввод данных для последующей их обработки программой. Чаще эту процедуру называют оператором ввода.

    Общий вид: Read (<список переменных>);

    В списке перечисляются имена переменных. Значения этих переменных набираются через пробел на клавиатуре и высвечиваются на экране после запуска программы. После набора данных для одной процедуры Read нажимается клавиша ввода Enter. Значения переменных должны вводиться в строгом соответствии с синтаксисом языка Паскаль. Если соответствие нарушено, то возникают ошибки.

    Процедура чтения Readln аналогична процедуре Read, единственное отличие в том, что после считывания последнего в списке значения курсор переходит на начало новой строки.

    Пример 2.2. Использование операторов ввода.

    program primer;

    var i, k:integer; c,d, s: real;

    begin

    readln (c,d);

    read(i,k);

    end.

    В данном случае необходимо ввести сначала два действительных числа через пробел. Переменной с присваивается значение, равное первому введенному числу, а переменной d – значение, равное второму введенному числу. После ввода этих значений курсор переходит на начало новой строки (за это отвечает ln, следующий за словом Read). Далее требуется ввести еще два целых числа, которые будут присвоены значениям переменных i и k соответственно.

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

    Как вы могли заметить, такая организация работы не совсем удобна, т. к. нужно помнить, значения каких переменных нужно ввести. При большом их количестве легко запутаться.

    Гораздо удобнее для ввода значений переменных организовать диалог с компьютером. Для этого непосредственно перед каждым оператором ввода переменной нужно поставить оператор вывода Write для вывода на экран поясняющего текста:

    Write (‘X=’); Readln(X);

    Write (‘Z=’); Readln(Z);

    Write (‘Введите значение А > ’); Readln(A);

    Предпочтительно использовать именно такой ввод переменных с клавиатуры.

    Пример 2.3. Организация ввода переменных.

    program primer;

    var X,Z,Sum: real;

    begin

    Write (‘X=’); Readln(X);

    Write (‘Z=’); Readln(Z);

    Sum:=X+Z;

    Writeln (‘Сумма равна ’, Sum:10:2);

    end.

    2.3. Оператор безусловного перехода

    Оператор безусловного перехода goto означает «перейти к» и применяется в случаях, когда после выполнения некоторого оператора надо выполнить не следующий по порядку, а какой-либо другой, отмеченный меткой, оператор.

    Общий вид: goto <метка>;

    Метка объявляется в разделе описания меток и состоит из имени и следующего за ним двоеточия. Имя метки может содержать цифровые и буквенные символы, максимальная длина имени ограничена 127 знаками. Раздел описания меток начинается зарезервированным словом Label, за которым следует имя метки.

    Пример 2.4. Использование меток.

    program primer;

    label 999, metka;

    begin

    goto 999;

    999: write (‘ Имя’);

    goto metka;

    metka: write(‘Фамилия’);

    end.

    Использование безусловных передач управления в программе считается теоретически избыточным и подвергается критике, т. к. способствует созданию малопонятных и трудномодифицируемых программ, которые вызывают сложности при отладке. Поэтому рекомендуется минимальное использование оператора безусловного перехода с соблюдением следующих правил:

    • следует стремиться применять операторы перехода для передачи управления только вниз (вперед) по тексту программы;
    • расстояние между меткой и оператором перехода на нее не должно превышать одной страницы текста (или высоты экрана дисплея).

    2.4. Пустой оператор

    Пустой оператор не содержит никаких символов и не выполняет никаких действий. Используется для организации перехода к концу блока в случаях, если необходимо пропустить несколько операторов, но не выходить из блока. Для этого перед зарезервированным словом end ставятся метка и двоеточие.

    2.5. Структурные операторы

    Структурные операторы представляют собой конструкции, построенные из других операторов по строгим правилам. Их можно разделить на три группы: составные, условные и повтора. Применение структурных операторов в вашей программе очень часто просто незаменимо, потому что они позволяют программисту сделать его программу зависимой от каких-либо условий, например введенных пользователем. К тому же, применяя операторы повтора, вы получаете возможность обрабатывать большие объемы данных за сравнительно малый отрезок времени.

    2.6. Составной оператор

    Этот оператор представляет собой совокупность произвольного числа операторов, отделенных друг от друга точкой с запятой, и ограниченную операторными скобками begin и end. Он воспринимается как единое целое и может находиться в любом месте программы, где возможно наличие оператора. Иными словами, составной оператор позволяет объединить несколько операторов в один.

    2.7. Условные операторы

    Условные операторы предназначены для выбора к исполнению одного из возможных действий, в зависимости от некоторого условия (при этом одно из действий может отсутствовать). Для программирования ветвящихся алгоритмов в Турбо Паскале есть специальные операторы.

    2.7.1. Условный оператор If

    Оператор If – это одно из самых популярных средств, изменяющих порядок выполнения операторов программы.

    Он может принимать одну из форм:

    If <условие> then <оператор1>

    else <оператор2>;

    If <условие> then <оператор>;

    Оператор выполняется следующим образом. Сначала вычисляется выражение, записанное в условии. В результате его вычисления получается значение логического (булевского) типа. Если это значение – «истина», то выполняется оператор1, указанный после слова then. Если же в результате имеем «ложь», то выполняется оператор2. В случае если вместо оператора1 или оператора2 следует серия операторов, то эту серию операторов необходимо заключить в операторные скобки begin … end.

    Обратить внимание, что перед словом else точка с запятой не ставится.

    Пример 2.5. Составить программу, которая запрашивает возраст ребенка и затем выдает решение о приеме ребенка в школу (возраст от 7 до 16 лет).

    program sh;

    var v: integer;

    begin

    Write(‘Введите возраст ребенка’);

    Readln(v);

    if (v>=7)and(v<=16)

    then writeln(‘Принимаем в школу’)

    else writeln (‘Не принимаем в школу’);

    end.

    Пример 2.6. Даны два числа. Меньшее из этих чисел заменить суммой данных чисел, большее – произведением.

    program sh;

    var x, y,s,p: integer;

    begin

    Write(‘Введите 2 числа’);

    Readln(x, y);

    s:=x+y; p:=x*y;

    if x>=y then begin y:=s; x:=p; end

    else begin x:=s; y:=p; end;

    writeln(‘x=’, x);

    writeln(‘y=’, y);

    end.

    Если оператор if обеспечивает выбор из двух альтернатив, то существует оператор, который позволяет сделать выбор из произвольного числа вариантов.

    2.7.2. Оператор выбора

    Он организует переход на один из нескольких вариантов действий в зависимости от значения выражения, называемого селектором.

    case k of

    <const1>: <оператор1>;

    <const2>: <оператор2>;

    <constN>: <операторN>

    else <операторN+1>

    end;

    Здесь k – выражение-селектор, которое может иметь только простой порядковый тип (целый, символьный, логический). <const1>, …<constN> – константы того же типа, что и селектор.

    Оператор case работает следующим образом. Сначала вычисляется значение выражения-селектора, затем обеспечивается реализация того оператора, константа выбора которого равна текущему значению селектора. Если ни одна из констант не равна значению селектора, то выполняется оператор, стоящий за словом else. Если же это слово отсутствует, то активизируется оператор, находящийся за границей case, т. е. после слова end.

    При использовании оператора case должны выполняться следующие правила:

    1. Выражение-селектор может иметь только простой порядковый тип (целый, символьный, логический).
    2. Все константы, которые предшествуют операторам альтернатив, должны иметь тот же тип, что и селектор.
    3. Все константы в альтернативах должны быть уникальны в пределах оператора выбора.

    Формы записи оператора:

    Селектор интервального типа:

    case I of

    1..10 : writeln(‘число в диапазоне 1-10′ );

    11..20 : writeln(‘число в диапазоне 11-20′ );

    else writeln(‘число вне пределов нужных диапазонов’)

    end;

    Селектор целого типа:

    case I of

    1 : y:=I+10;

    2 : y:=I+20;

    3 : y:=I+30;

    end;

    Пример 2.7. Составить программу, которая по введенному номеру месяца выводит на экран название времени года.

    program m;

    var k:byte;

    begin

    write(‘Введите номер месяца’);

    readln(k);

    case k of

    1,2,12 : writeln(‘Зима’);

    3,4,5 : writeln(‘Весна’);

    6,7,8 : writeln(‘Лето’);

    9,10,11: writeln(‘Осень’)

    else writeln(‘Такого месяца нет’);

    end;

    end.

    2.8. Операторы цикла (повтора)

    Если в программе возникает необходимость неоднократного выполнения некоторых операторов, то для этого используются операторы повтора (цикла). В языке Паскаль различают три вида операторов цикла: цикл с предусловием (while), цикл с постусловием (repeat) и цикл с параметром (for).

    Если число повторений заранее неизвестно, а задано лишь условие его повторения (или окончания), то используются операторы while и repeat. Если число требуемых повторений заранее известно, то используется оператор, называемый оператором цикла с параметром.

    2.8.1. Оператор цикла с параметром

    Оператор цикла с параметром имеет два варианта записи:

    for <имя переменной> := <начальное значение> to <конечное значение> do <тело цикла>

    for <имя переменной> := <начальное значение> downto <конечное значение> do <тело цикла>

    Имя переменной – параметр цикла, простая переменная целого типа; <тело цикла> – один оператор. Если в теле цикла нужно выполнить несколько операторов, то их нужно заключить в операторные скобки begin … end, т. е. применить составной оператор.

    Цикл повторяется до тех пор, пока значение параметра лежит в интервале между начальным и конечным значениями. В первом варианте при каждом повторении цикла значение параметра увеличивается на 1, во втором – уменьшается на 1.

    При первом обращении к оператору for вначале определяются начальное и конечное значения и присваивается параметру цикла начальное значение. После этого циклически повторяются следующие действия:

    1. Проверяется условие параметр цикла <= конечному значению.
    2. Если условие выполнено, то оператор продолжает работу (выполняется оператор в теле цикла); если условие не выполнено, то оператор завершает работу и управление в программе передается на оператор, следующий за циклом.
    3. Значение параметра изменяется (увеличивается на 1 или уменьшается на 1).

    Пример 2.8. Вывести на экран таблицу перевода из градусов по шкале Цельсия в градусы по Фаренгейту для значений от 15 °С до 30 °С с шагом в 1 °С. Перевод осуществляется по формуле F=C*1.8+32 .

    program zf;

    var i:integer; f:real;

    begin

    writeln(‘Температура’);

    for i:=15 to 30 do

    begin

    f:=i*1.8+32;

    writeln(‘по Цельсию ’,i,‘ по Фаренгейту’, f:5:2);

    end;

    end.

    Пример 2.9. Вывести на экран натуральные числа от 1 до 9 в обратном порядке.

    program z;

    var i:integer;

    begin

    for i:=9 downto 1 do

    writeln(i);

    end.

    2.8.2. Оператор цикла с предусловием

    Оператор while называют оператором цикла с предусловием, т. к. проверка условия выполнения цикла производится в самом начале оператора.

    while <условие> do <тело цикла>;

    Условие является условием продолжения повторений. Это логическое выражение.

    Тело цикла – простой или составной оператор. Если операторов в теле цикла несколько, то тело цикла заключается в операторные скобки begin … end.

    Перед каждым выполнением тела цикла вычисляется значение выражения условия. Если результат – «истина», тело цикла выполняется и снова вычисляется выражение условия. Если результат – «ложь», происходят выход из цикла и переход к следующему после while оператору.

    Пример 2.10. Найти сумму 10 произвольных чисел.

    program z;

    const n=10;

    var k,x,s: integer;

    begin

    while k < n do

    begin

    k:=k+1;

    write(‘Введите число ’); readln(x);

    s:=s+x;

    end;

    writeln(‘Сумма чисел равна ’, s);

    end.

    2.8.3. Оператор цикла с постусловием

    Оператор цикла repeat аналогичен оператору while, но отличается от него, во-первых, тем, что условие проверяется после очередного выполнения операторов тела цикла и таким образом гарантируется хотя бы однократное выполнение цикла. Во-вторых, тем, что критерием прекращения цикла является выполнение условия. За это данный оператор часто называют циклом с постусловием, т. к. он прекращает выполняться, как только условие, записанное после слова until, выполнится. Оператор цикла repeat состоит из заголовка, тела и условия окончания.

    repeat

    <оператор>;

    <оператор>;

    until <условие окончания цикла>

    Вначале выполняется тело цикла, затем проверяется условие выхода из цикла. В любом случае этот цикл выполняется хотя бы один раз. Если условие не выполняется, т. е. результатом выражения является False, то цикл активизируется еще раз. Если условие выполнено, то происходит выход из цикла. Использования операторных скобок, в случае если тело цикла состоит из нескольких операторов, не требуется.

    Пример 2.11. Составить программу, которая вводит и суммирует целые числа. Если введено значение 999, то на экран выводится результат суммирования.

    program s;

    var x, s:integer;

    begin

    s:=0;

    repeat

    Write(‘Ввести число ’); Readln(x);

    if x<>999 then s:=s+x;

    until x=999;

    Writeln(‘Сумма введенных чисел ’, s);

    end.

    2.8.4. Типовые задачи с использованием циклов

    Пример 2.12. Составить программу для вычисления конечной суммы ряда n нечётных чисел:

    S = 1 + 3 + 5 + 7 + … + (2n – 1)

    для произвольного значения n, введённого с клавиатуры.

    program summa;

    var i,n,s:integer;

    begin

    write(‘n=’); readln ( n );

    s:=0;

    for i:=1 to n do

    s:=s+(2*i-1);

    writeln(‘Сумма ряда = ’,s);

    end.

    Пример 2.13. Составить программу для вычисления суммы ряда (с точностью до e = 10 -5 )

    S = 1- 1/2 2 + 1/3 2 — 1/4 2 + …

    Полученный результат сравнить с точным S = p 2 /12.

    Решение. При решении подобных задач заранее неизвестно число элементов ряда. Поэтому применяются операторы цикла while или repeat. К переменной, в которой накапливается сумма ряда, добавляется очередной элемент и производится проверка условия. Если предыдущая сумма отличается от последующей менее чем на заданную погрешность вычислений, то можно выходить из цикла и выводить результат. Предыдущая сумма ряда сохраняется в дополнительной переменной s1 для сравнения. При сравнении разницу берем по модулю, используя функцию abs ( )..

    program summa;

    var i,z:integer; x,s,s1:real;

    begin

    s:=0; i:=1;

    repeat

    i:=i+1;

    until abs(s-s1)<=e;

    writeln(‘Сумма ряда = ’,s);

    end.

    Пример 2.14. Составить программу для вычисления факториала числа n (для произвольного значения n, введённого с клавиатуры):

    S = 1 × 2 × 3 × 4 × … × n = n!

    program fact;

    var i,n,s:integer;

    begin

    write(‘n=’); readln ( n );

    for i:=1 to n do

    s:=s*i;

    writeln(‘n!=’,s);

    end.

    Оператор write используют для вывода данных из оперативной памяти на экран.

    Общий вид оператора write .

    Screenshot_19.png

    Оператор вывода друг за другом выводит указанные данные. Например, оператор write (5, 10, 15) выведет на

    экран ряд цифр без пробелов (51015), что будет восприниматься пользователем как одно число (51015), но нам нужно вывести три отдельные числа. Сделать удобными для восприятия данные можно несколькими способами:

    Screenshot_2.png

    Для каждой величины можно указать формат вывода . Для этого, после оператора write в скобках нужно указать название величины далее через двоеточие целое число, которое будет обозначить сколько позиций будет отведено под целую часть числа, а после следующего двоеточия количество позиций после запятой. Например, (k:2:3).

    Может возникнуть ситуация, когда цифр в числе меньше, чем отведено под него ячеек на экране, тогда слева от числа пустые позиции заполняются пробелами (число просто сдвинется влево).
    А если после двоеточия число меньше, чем нужно, то программа автоматически увеличит это число до минимально допустимого.

    a:=(1);

    c:=(a/7);

    write (c:(5):(3));

    Цифра (5) показывает, сколько позиций отводится для целой части числа, а цифра (3) показывает сколько позиций выделено для дробной части числа. Соответственно, в окне вывода мы увидим, (3) знака после точки.

    Screenshot_1.png

    Вместо оператора write , который выводит все данные в одну строку без пробелов, можно использовать оператор writeln — выводит данные с новой строки.

    Оператор
    INPUT (ввод) позволяет
    присвоить значение переменным с
    клавиатуры во время выполнения программы.

    Формат
    записи оператора INPUT:
    INPUT [;] [запрос<;|,>]
    переменная1, переменная2

    ;
    – необязательный параметр, дающий
    команду оставлять курсор в той же строке
    после ввода значения и нажатия Enter

    [запрос<;|,>]
    — необязательный параметр, который
    выводит на экран текст, поясняющий какую
    информацию нужно вводить пользователю.
    Текст всегда должен заключаться в
    кавычки. После него обязательно ставится
    точка с запятой или запятая.

    ;
    – дает команду на вывод знака ? и пробела
    за ним на экран.

    ,
    – не дает такой команды.

    переменная1,
    переменная2 — обязательный параметр.
    Список переменных, которым присваиваются
    вводимые значения.

    Приведем
    несколько примеров:

    Операторы
    вывода данных на экран монитора CLS
    и PRINT

    Оператор
    CLS (CLear
    Screen)
    – очищает экран.

    Оператор
    PRINT

    Формат
    оператора: PRINT
    [Выражение] [<;|,>]

    Оба
    параметра стоят в квадратных скобках
    и, следовательно, оба они не обязательны.
    Если PRINT
    используется без параметров, то он
    выводит одну пустую строку.

    В
    качестве выражения может быть текст в
    кавычках, число, переменная или
    математическое выражение без знака
    равенства. В последнем случае машина
    автоматически проведет расчет, и на
    экран будет выведен результат.

    <;|,>
    – знаки между выражениями. Эти знаки
    можно ставить и за последним выражением.
    Если указана запятая, то строка вывода
    разбивается на зоны по 14 символов и
    каждый элемент выводится в начало
    очередной зоны. Если указана точка с
    запятой, то следующий элемент будет
    выведен через один пробел за предыдущим.

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

    Рассмотрим
    некоторые примеры:

    Использование
    оператора PRINT (А=10, В=15,
    S=150). После апострофа (‘)
    расположена информация, выводимая на
    монитор и комментарий к ней.

    PRINT
    Длины сторон;
    А, В


    Длины
    сторон 10 15


    3
    квадратный корень из 9

    Вывод
    данных на экран дисплея выполняется
    операторами: WRITE

    Формат:
    Write (список выражений)

    Выражение
    в списке разделяются запятыми. Значения
    выражений сначала вычисляются, а затем
    выводятся на экран. Буквы ln имеют то же
    значение, что и в операторе readln. Вслед
    за выражением через двоеточие можно
    указать ширину поля экрана, в котором
    разместится выводимое значение. Например,
    оператор write (10:3, 55:6) займет для вывода
    числа 10 три позиции, а для вывода числа
    55 — шесть позиций на экране.

    При
    выводе вещественных значений можно
    указать, сколько десятичных цифр следует
    сохранить в дробной части числа, причем
    количество цифр указывается вслед за
    шириной поля после двоеточия. Например,
    x = 3,14159, то оператор write (x:6:2) займет для
    вывода переменой х шесть позиций, две
    из которых будут использованы для
    дробный части х (т. е. значение х будет
    округлено до 3,14).

    Для
    того чтобы прокомментировать выводимые
    значения, в список вывода можно помещать
    строки любых символов, заключенные в
    одинарные кавычки (апострофы). Например,
    при выполнении фрагмента программы

    на
    экране будет выведено:

    Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

    • #
    • #
    • #
    • #
    • #
    • #
    • #
    • #
    • #
    • #
    • #

    §6. Операторы вывода. Модификаторы формата

    Операторы вывода являются важнейшей частью языка программмирования, ведь только благодаря им, мы можем увидеть на экране компьютера результат работы нашей программы. В языке Pascal существует два оператора вывода: write и writeln . Правило их использования одно и тоже: после слова write или writeln в скобках через запятую перечисляются параметры, которые мы хотим вывести (называемые списком вывода). Число этих параметров не ограничено. Разделителем между параметрами служит запятая:

    Существует три вида параметров: константы, переменные и выражения (например, арифметические выражения). Константы бывают числовые (это просто различные числа — целые и вещественные), логические и строковые. Любой текст, набранный с клавиатуры и заключённый в апострофы (одиночные кавычки), называется строковой константой. Если в текст нам нужно поместить апостроф, например, в слове O’key, на этом месте нужно набить два апострофа подряд вместо одного: write(‘O»key’). Все параметры в write или writeln независимы друг от друга, поэтому в одном и том же операторе могут встречаться параметры разных типов, в произвольном порядке.

    При выполнении оператора вывода все параметры будут выведены в одной строке в том же порядке, в каком они перечислены в списке параметров. Любая константа, числовая или строковая, будет выведена так, как вы её написали в вызове write или writeln (в строковой константе начальный и конечный апострофы отображаться на экране не будут, а вместо двух апострофов, расположенных в строковой константе подряд, на экране появится в этом месте один); вместо переменной на экране появится её значение, а вместо арифметического выражения — результат его вычисления.
    Между write и writeln существует единственное различие: после выполнения writeln курсор переходит на новую строку, а после выполнения write курсор остаётся в той же строке, и новый вывод данных с помощью write или writeln или ввод данных при помощи операторов ввода данных будут проходить в той же строке.

    При выводе параметров пробелы между ними автоматически не вставляются, например, при печати чисел `1`, `2`, `3` с помощью writeln(1,2,3) все они сольются в одно число — 123 . Чтобы разделить выводимые элементы, можно поместить между ними символ пробела, например, writeln(1,’ ‘,2,’ ‘,3) или отформатировать вывод, поставив после каждого элемента списка вывода двоеточие и целое число (называемое модификатором ширины поля), которое указывает, сколько позиций на экране должна занимать выводимая величина, например, writeln(1:3,2:3,3:3) . Отметим, что элемент дополняется начальными пробелами слева с тем, чтобы соответствовать указанной после двоеточия величине. Результаты выполнения двух последних операторов будут выглядеть так:

    Если указанное в модификаторе ширины поля число меньше, чем необходимо, то модификатор ширины поля игнорируется.

    При выдаче на экран значений вещественных выражений в формате вывода полезно использовать ещё один модификатор, который записывается через двоеточие после модификатора ширины поля и называется модификатором точности. Он будет обозначать количество символов после десятичной точки, которые мы хотим вывести. Например, при выводе результата стандартной функции pi , которая с машинной точностью выдаёт значение числа $$ pi $$, оператор write(pi:0:0,pi:6:2, pi/2:2:0) выдаст на экран:

    Заметим, что при печати фиксированного количества цифр вещественного числа оно предварительно округляется по правилам математики. Если вещественное число содержит после десятичной точки меньше цифр, чем количество символов для печати, указанное в модификаторе точности, то число выводится с незначащими нулями, например, оператор write(3.14:3:4) выдаст на экран:

    Модификатор точности можно применять только к параметрам вещественного типа. Использование модификатора точности с параметрами других типов является критической ошибкой (программа не будет работать). Модификатор ширины поля можно использовать с любым типом параметра вывода.

    Оператор write 6 3 означает что выводимая величина

    В предыдущей теме мы познакомились со структурой программы на языке Pascal, научились описывать данные, рассмотрели оператор присваивания. Этого достаточно для того, чтобы записать программу преобразования данных. Но результат этих преобразований нам виден не будет.

    Для вывода данных из оперативной памяти на экран монитора используется оператор вывода write :

    Здесь в круглых скобках помещается список вывода — список выражений, значения которых выводятся на экран. Это могут быть числовые, символьные и логические выражения, в том числе переменные и константы.

    Произвольный набор символов, заключённый в апострофы, считается строковой константой. Строковая константа может содержать любые символы, набираемые на клавиатуре.

    Пример

    Оператор write (‘s= ‘, s) выполняется так:

    1. на экран выводятся символы, заключённые в апострофы: s=
    2. на экран выводится значение переменной, хранящееся в ячейке оперативной памяти с именем s .

    Если значение переменной s равно 15 и она имеет целочисленный тип, то на экране появится: s=15

    Если значение переменной s равно 15, но она имеет вещественный тип, то на экране появится: s=1.5Е+01

    При выполнении оператора вывода все элементы списка вывода печатаются непосредственно друг за другом. Так, в результате работы оператора write (1, 20, 300) на экран будет выведена последовательность цифр 120300, которая будет восприниматься нами как число 120300, а не как три отдельные числовые константы. Сделать выводимые данные более доступными для восприятия можно разными способами:

    Способы вывода данных

    Вариант организации вывода Оператор вывода Результат
    Добавить разделители — запятые write (1, ‘,’, 20, ‘,’, 300) 1,20,300
    Добавить разделители — пробелы write (1, ‘ ‘, 20, ‘ ‘, 300) 1 20 300
    Указать формат вывода write (1:3, 20:4, 300:5) 1 20 300

    Формат вывода — это указываемое после двоеточия целое число, определяющее, сколько позиций на экране должна занимать выводимая величина. Если цифр в числе меньше, чем зарезервированных под него позиций на экране, то свободные позиции дополняются пробелами слева от числа. Если указанное в формате вывода после двоеточия число меньше, чем необходимо, то оно автоматически будет увеличено до минимально необходимого.

    Для вывода вещественного числа в списке вывода для каждого выражения указываются два параметра: 1) общее количество позиций, отводимых под число; 2) количество позиций в дробной части числа:

    Способы вывода вещественных данных

    Оператор вывода Результат выполнения оператора
    write (‘s=’, s:2:0); s=15
    write (‘s=’, s:3:1); s= 15.0
    write (‘s=’, s:5:1); s= 15.0

    При выполнении нового оператора write вывод продолжается в той же строке. Чтобы осуществить переход к новой строке, используется оператор writeln . Других различий между операторами write и writeln нет.

    Первая программа на языке Pascal

    Пользуясь рассмотренными операторами, составим программу, вычисляющую длину окружности и площадь круга радиуса 5,4 см.

    Исходным данным в этой задаче является радиус: r = 5,4 см. Результатом работы программы должны быть величины c — длина окружности и s — площадь круга. c, s и r — величины вещественного типа.

    Исходные данные и результаты связаны соотношениями, известными из курса математики: c=2πr, s = πr 2 . Программа, реализующая вычисления по этим формулам, будет иметь вид:

    Эта программа верна и решает поставленную задачу. Запустив её на выполнение, вы получите следующий результат:

    Первая программа

    Первая программа

    И всё-таки составленная нами программа имеет существенный недостаток: она находит длину окружности и площадь круга для единственного значения радиуса (5,4 см).

    Для того чтобы вычислить длину окружности и площадь круга для другого значения радиуса, потребуется вносить изменения непосредственно в текст программы, а именно изменять оператор присваивания. Внесение изменений в существующую программу, по меньшей мере, не всегда удобно (например, когда программа большая и операторов присваивания много). Ниже вы познакомитесь с оператором, позволяющим вводить исходные данные в процессе работы программы, не прибегая к изменению текста программы.

    Ввод данных с клавиатуры

    Для ввода в оперативную память значений переменных используется оператор ввода read :

    При выполнении оператора read компьютер переходит в режим ожидания данных: пользователь должен ввести данные с клавиатуры и нажать клавишу Enter . Несколько значений переменных числовых типов могут вводиться через пробел или через запятую. При вводе символьных переменных пробел и запятая воспринимаются как символы, поэтому ставить их нельзя.

    Первое введённое пользователем значение переменной помещается в ячейку памяти, имя которой расположено первым в списке ввода, и т.д. Поэтому типы вводимых значений (входного потока) должны соответствовать типам переменных, указанных в разделе описания переменных.

    Пример

    var i, j: integer; x: real; a: char;

    Присвоим переменным i, j, x, а значения 1, 0, 2.5 и ‘А’. Для этого воспользуемся оператором

    и организуем входной поток одним из следующих способов:

    Пример ввода

    Пример ввода

    Здесь мы не только использовали различные разделители (пробел, запятая), но и представляли входной поток в виде одной, двух и четырёх строк.

    Для ввода данных с клавиатуры можно также использовать оператор readln . Отличие состоит в том, что после выполнения readln осуществляется автоматический переход на новую строку входного потока, даже если в текущей строке остались невведённые символы. Таким образом, readln позволяет считать лишь начальную часть введённой пользователем строки и, проигнорировав её окончание, перейти к следующей строке.

    Усовершенствуем программу p_1, организовав в ней ввод данных с помощью оператора read . А чтобы пользователь знал, для чего предназначена программа, и понимал, какое именно действие ожидает от него компьютер, выведем соответствующие текстовые сообщения с помощью оператора writeln :

    Результат работы усовершенствованной программы

    Результат работы усовершенствованной программы

    Теперь наша программа может вычислить длину окружности и площадь круга для любого значения r. Иначе говоря, она решает не единичную задачу, а целый класс задач. Кроме того, в программе понятно и удобно организован ввод исходных данных и вывод получаемых результатов. Это обеспечивает дружественность пользовательского интерфейса.

    САМОЕ ГЛАВНОЕ

    Для ввода в оперативную память значений переменных используются операторы ввода read и readln .

    Для вывода данных из оперативной памяти на экран монитора используются операторы вывода write и writeln .

    Ввод исходных данных и вывод результатов должны быть организованы понятно и удобно; это обеспечивает дружественность пользовательского интерфейса.

    Организация ввода и вывода данных
    Организация ввода и вывода данных
    • оператор вывода print
    • формат вывода
    • оператор ввода input
    Вывод данных

    В предыдущей теме мы познакомились со структурой программы на языке Python, научились описывать данные, рассмотрели оператор присваивания. Этого достаточно для того, чтобы записать программу преобразования данных. Но результат этих преобразований нам виден не будет.

    Для вывода данных из оперативной памяти на экран монитора используется оператор вывода print :

    Здесь в круглых скобках помещается список вывода — список выражений, значения которых выводятся на экран. Это могут быть числовые, символьные и логические выражения, в том числе переменные и константы.

    Произвольный набор символов, заключённый в апострофы, считается строковой константой. Строковая константа может содержать любые символы, набираемые на клавиатуре.

    Пример

    Оператор print (‘s= ‘, s) выполняется так:

    1. на экран выводятся символы, заключённые в апострофы: s=
    2. на экран выводится значение переменной, хранящееся в ячейке оперативной памяти с именем s .

    Если значение переменной s равно 15, и она имеет целочисленный тип, то на экране появится: s=15

    Оператор print вставляет между выводимыми значениями так называемый разделитель (или сепаратор, англ. separator). По умолчанию разделитель — это пробел, но мы можем его изменить, указав новый разделитель после слова sep

    Способы вывода данных

    Вариант организации вывода Оператор вывода Результат
    По умолчанию print (1, 20, 300) 1 20 300
    Убрать разделители — пробелы print (1, 20, 300, sep=») 120300
    Добавить другой разделитель print (1, 20, 300, sep=’,’) 1,20,300

    Формат вывода — это указываемое после двоеточия целое число, определяющее, сколько позиций на экране должна занимать выводимая величина. Если цифр в числе меньше, чем зарезервированных под него позиций на экране, то свободные позиции дополняются пробелами слева от числа. Если указанное в формате вывода после двоеточия число меньше, чем необходимо, то оно автоматически будет увеличено до минимально необходимого.

    Для вывода вещественного числа в списке вывода для каждого выражения указываются два параметра: 1) общее количество позиций, отводимых под число; 2) количество позиций в дробной части числа: (◦ — обозначение пробела)

    Способы вывода вещественных данных

    Оператор вывода Результат выполнения оператора
    a = 4
    print (‘a=’, ‘<:5d><:5d>‘.format(a, a * a))
    a= ◦◦◦◦4◦◦◦16
    a = 1 / 3
    b = 1 / 9
    print («<:7.3f><:7.3f>«.format(a, b))
    ◦◦0.333◦◦0.111
    a = 1 / 3
    b = 1 / 9
    print (‘<:10.3e><:10.3e>‘.format(a, b))
    ◦3.333e-0.1◦◦1.111e-01

    При выполнении нового оператора print вывод продолжается в новой строке. Чтобы убрать переход к новой строке, используется параметр end .

    Первая программа на языке Python

    Пользуясь рассмотренными операторами, составим программу, вычисляющую длину окружности и площадь круга радиуса 5,4 см.

    Исходным данным в этой задаче является радиус: r = 5,4 см. Результатом работы программы должны быть величины c — длина окружности и s — площадь круга. c, s и r — величины вещественного типа.

    Исходные данные и результаты связаны соотношениями, известными из курса математики: c=2πr, s = πr 2 . Программа, реализующая вычисления по этим формулам, будет иметь вид:

    Эта программа верна и решает поставленную задачу. Запустив её на выполнение, вы получите следующий результат:

    Первая программа

    Первая программа

    Вывод по формату:

    Первая программа с выводом по формату

    Первая программа с выводом по формату

    И всё-таки составленная нами программа имеет существенный недостаток: она находит длину окружности и площадь круга для единственного значения радиуса (5,4 см).

    Для того чтобы вычислить длину окружности и площадь круга для другого значения радиуса, потребуется вносить изменения непосредственно в текст программы, а именно изменять оператор присваивания. Внесение изменений в существующую программу, по меньшей мере, не всегда удобно (например, когда программа большая и операторов присваивания много). Ниже вы познакомитесь с оператором, позволяющим вводить исходные данные в процессе работы программы, не прибегая к изменению текста программы.

    Ввод данных с клавиатуры

    Для ввода в оперативную память значений переменных используется оператор ввода input . Каждая функция input() захватывает только ОДНУ строку данных и воспринимает ее как ТЕКСТ (строковый тип):

      Тип переменной можно преобразовать налету:
    • для целых: a = int (input())
    • для вещественных: a = float (input())

    При выполнении функции input компьютер переходит в режим ожидания данных: пользователь должен ввести данные с клавиатуры и нажать клавишу Enter , система запишет это значение в переменную.

    Есть задачи, в которых вводимые данные заданы в одной строке, например, 10 20. Чтобы была возможность работать с такими данными, их надо разделить.

    Для этого нужно применить следующий синтаксис:

    Здесь есть правило: количество данных должно соответствовать количеству переменных. В примере выше в одной строке передаются два целых числа, разделенных пробелом. Соответственно, нужно эти данные передать также двум переменным. Осталось не забыть, что определенные таким образом переменные имеют строковый тип. Для арифметического сложения их нужно привести к типу целого числа.

    Теперь рассмотрим ситуацию, когда входные данные заданы в одной строке, но разделены особыми разделителями, отличными от пробела. Классическим примером таких входных данных является показания времени — 10:33.

    В таких случаях надо для split() указывать конкретный символ разделителя. Разделителем будет символ ‘:’ , взятый в кавычки или апострофы.

    Также добавим, что если в одной строке введены данные одного единственного типа (только целые числа, вещественные числа или строки), то определение переменных и задание им одного и того же типа можно выполнить одной строкой кода, используя следующий синтаксис:

    При вызове функции input в скобках можно записать сообщение-подсказку:

    Усовершенствуем программу 1, организовав в ней ввод данных с помощью оператора input , включив строку с приглашением для ввода:

    Результат работы усовершенствованной программы

    Результат работы усовершенствованной программы

    Теперь наша программа может вычислить длину окружности и площадь круга для любого значения r. Иначе говоря, она решает не единичную задачу, а целый класс задач. Кроме того, в программе понятно и удобно организован ввод исходных данных и вывод получаемых результатов. Это обеспечивает дружественность пользовательского интерфейса.

    САМОЕ ГЛАВНОЕ

    Для ввода в оперативную память значений переменных используются оператор ввода input .

    Для вывода данных из оперативной памяти на экран монитора используются оператор вывода print .

    Ввод исходных данных и вывод результатов должны быть организованы понятно и удобно; это обеспечивает дружественность пользовательского интерфейса.

    Читать:
    До какой температуры может работать серверная

Похожие статьи