Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры по паскалю экзамен 10-25.docx
Скачиваний:
9
Добавлен:
23.09.2019
Размер:
139.84 Кб
Скачать

Вопрос 10: операторы ввода-вывода.

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

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

Бейсик

Паскаль

INPUT <Переменная>

Read(<Список ввода>);<br />

Readln(<Список ввода>);

Эти команды позволяют вводить данные в одиночные переменные или в несколько переменных сразу во время выполнения программы с клавиатуры. Элементами списка ввода могут быть имена переменных, которые должны быть заполнены значениями, введенными с клавиатуры.Выполнение операторов ввода происходит так: ход программы приостанавливается, на экран выводится курсор, компьютер ожидает от пользователя набора данных для переменных, имена которых указаны в списке ввода. Пользователь с клавиатуры вводит необходимые знамения в том порядке, в котором они требуются списком ввода, нажимает Enter. После этого набранные данные попадают в соответствующие им переменные и выполнение программы продолжается. Данные при вводе разделяются пробелами.При вводе исходных данных происходит преобразование из внешней формы представления во внутреннюю, определяемую типом переменных. Переменные, образующие список ввода, могут принадлежать либо к целому, либо к действительному, либо к символьному типам. Чтение исходных данных логического типа недопустимо.Разница между работой оператора Read и Readln в Паскале состоит в следующем: после выполнения Read значение следующего данного считывается с этой же строчки, а после выполнения Readln — с новой строки.

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

Бейсик

Паскаль

PRINT <Список вывода>

Write(<Список вывода>);

Writeln(<Список вывода>);

Эти операторы позволяют выводить на экран монитора данные из списка вывода. Элементами списка вывода могут являться имена переменных, выражения, константы. Прежде чем вывести на экран значения выражений, компьютер сначала их вычислит. Элементы списка, также как и в операторах ввода, разделяются запятыми.Различие между двумя операторами вывода в Паскале таково: после выполнения оператора Writeln (от Writeline) происходит переход па новую строчку, а после выполнения инструкции Write переход на новую строчку не происходит и печать по последующим командам вывода Write или Writeln будет происходить на той же строчке. При вызове оператора Writeln без параметров просто происходит переход па новую строчку.В Бейсике каждый новый оператор PRINT выводит значения в новую строку. Переменные, составляющие список вывода, могут относиться к целому, действительному, символьному или булевскому типам. В качестве элемента списка вывода кроме имен переменных могут использоваться выражения и строки.Вывод каждого значения в строку экрана происходит в соответствии с шириной поля вывода, определяемой конкретной реализацией языка.Форма представления значений в поле вывода соответствует типу переменных и выражений: величины целого типа выводятся как целые десятичные числа, действительного типа — как действительные десятичные числа с десятичным порядком, символьного типа и строки — в виде символов, логического типа — в виде логических констант TRUE и FALSE.

Конспект урока на тему «Операторы ввода, вывода, присваивания на языке Pascal»

Понятие переменной

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

<имя переменной>:=<выражение> При этом значение выражения из правой части команды присваивания заменяет текущее значение переменной из левой части. Тип значение выражения должен совпадать с типом переменной.

Пример:

а:=2; b:=8;

S:=а+b;

После выполненных последовательно данных трех команд переменная S принимает значение равное 10.Команды вывода на экран текста или (и) значения переменныхWRITE ( ); - выводит на экран, указанные в скобках параметры, курсор остается в этой же строке.WRITELN ( ); - выводит на экран, указанные в скобках параметры, после вывода курсор переходит в начало следующей строки экрана.В качестве параметров в круглых скобках может быть указан текст сообщения (текст записывается в апострофах ' ') и имя переменной (записывается без апострофов), значение которой нужно вывести. Между выводимыми элементами ставится запятая. Команда WRITELN; без параметров только переводит курсор в начало следующей строки экрана.

Примеры

Writeln('Мне16лет'); На экране появится: Мне 16 лет

a:=11;

Writeln('Я учусь в ', а,' классе'); На экране появится: Я учусь в 11 классе

х:=3;у:=6;

Writeln(х+у,' рублей'); На экране появится: 9 рублей

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

Пример

а:=1; b:=2; с:=3;

Writeln (а, b, с);

Writeln(а,' ', b ,' ', с);

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

{Число, указанное после двоеточия, (в нашем примере это 3) обозначает количество позиций выделяемых под вывод значения переменной.Если переменная занимает меньше позиций, то в оставшихся позициях перед значением переменной выводятся пробелы}

На экране появится:

123

1 2 3

1 2 3

Структура программыProgram<имя программы>;

Const<имя константы>=<ее значение>;

Var<имя переменной>: <тип переменной>;

Begin

<выполняемые команды>;

End.

Заголовок

Раздел описания констант

Раздел описания переменных

Начало программы

Раздел операторов (команд) или тело программы

Конец программы

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

Задача. Найти сумму двух чисел

Program N1;

Var а, b: Integer; {переменные а и b целого типа}

S: Longint; {переменная S типа длинное целое}

Веgin

а:=7; {присваивание значения первому числу а}

b:=4; {присваивание значения второму числу b}

S:=а+b; {вычисление суммы S чисел а и b}

{вывод результата работы программы на экран}

Writeln (' сумма ', а ,' и ', b ,' равна ', S);

End.

Команда ввода (считывания) с клавиатуры значения переменных во время работы программыREAD ( ); или READLN ( ); - считываетв перечисленные в скобках переменные значения, введенные с клавиатуры (через пробел или после каждого значения нажимают Enter) Если значения вводились через пробел, то после ввода следует нажать Enter. В качестве параметров в круглых скобках через запятую указываются имена переменных, значения которых считываются.При работе с простыми переменными рекомендуется использовать команду Readln ( );Перед каждой командой ввода рекомендуется выводить на экран поясняющий текст с информацией о том, что именно нужно ввести.

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

Var a : Integer;

Write (‘a=’);

Readln(а);

На экране появится а= и после знака равно будет мигать курсор в ожидании ввода с клавиатуры целого числа. После ввода числа необходимо нажать Enter.

Для того, чтобы не переходить к окну с результатами работы программы (alt+F5) после запуска программы на выполнение, последней командой в любой программе перед End. записывается команда Readln; (Программа ждет нажатия Enter).

Задача. Найти произведение двух чисел.

Program N2;

Var a, b :Integer;

p: Longint;

Begin

Writeln(' Введите два числа ');

Readln(а,b);

р:=а*b;

Writeln (' произведение ', а ,' и ', b ,' равно', р);

Readln;

End.

Упражнения

1. Какие значения приобретут переменные а, b и с после выполнения следующих операторов, если начальные значения а=1, b=2, с=39. Как изменится результат, если в приведенном фрагменте последний оператор переставить на первое место?

a:=b;

b:=c;

c:=a;

2. Сколько строчек появится на экране? Что в них будет отображено?

х:=2; у:=3;

Write(х); Write(х*х:3);

Writeln(х*х*х:3); Write(y);

Writeln(у*у:3); Writeln(у*у*у:3);

3. Что выведется на экран?

а:=12; b:=7;

Writeln(' Разность ', а ,' и ', b ,' равна ', а-b);

4. Найти и исправить все ошибки, допущенные в этой программе. Запишите программу без ошибок.

ProgramTask 8;

Var a; b; c: Integer;

Begin

Writeln (' Введите число', а);

Readln(a)

b=5

c:=ab;

Writeln(‘ произведение ’a и b ’ равно ’,S);

Readln(a);

End

5. Пусть х=2, у=3. Напишите оператор печати текста «2+3=5», используя только две переменные х и у.

6. Найдите формулу, вычисляемую программой:

Program Test3;

Var a,b,c:integer; {коэффициенты}

d,e:integer; {промежуточные переменные}

х:integer; {аргумент}

r: integer; {результат}

Begin

Write ('Введите коэффициенты');

Readln (а,b,с);

Write ('Введите значение аргумента');

Readln(x);

d:=a*x*x;

e:=b*x; {*}

r:=d+e+c;

Write ('результат=',г:5);

Readln;

End.

Что будет получено, если в операторе, отмеченном звездочкой, вместо операции умножения (*) использовать операцию деления (/)?

Задачи

1. Найти значение переменной X, если Х=(а+(d-12)*3)*(c-5*k), а значение переменных а, d, с, k задаются с клавиатуры.

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

213 101

214 или 102

215 103

3. Составить программу, которая запрашивает у пользователя два целых числа и выводит квадрат суммы (а+b)2 и сумму квадратов а2+b2 этих чисел. Пример работы программы (данные, введенные пользователем, выделены полужирным шрифтом):

Введите два числа

а=5

b=2

квадрат суммы 3 и 2 равен 25

сумма квадратов 3 и 2 равна 13