Описать операторы ввода и вывода данных. Оператор ввода-вывода в Pascal
Линейные программы
Линейные программы представляют собой, как уже отмечалось, последовательность операторов, циклов и условных переходов нет. Структурная схема такой программы включает блок ввода данных, блок вычислений и блок вывода результатов.
Для ввода данных используются операторы LET, DATA, READ, RESTORE, INPUT, LINE INPUT, функция INPUT$.
Оператор LET . Служит для присвоения значений переменным. Формат оператора: LET <имя переменной> = <выражение>
Оператор LET может быть опущен, поэтому выражения
LET A=exp(x)+ sin(x) и A=exp(x)+ sin(x)
эквивалентны.
Операторы DATA и READ позволяют вводить данные из программы. Оператор DATA заносит данные в специальную область оперативной памяти компьютера, а оператор READ считывает эти данные из оперативной памяти и присваивает их переменным. Эта область данных содержит специальный указатель. При запуске программы указатель устанавливается в начале области данных. При считывании данных из области памяти он также перемещается. Если число переменных в операторе READ больше числа значений в операторе DATA , то указатель выходит за область данных и будет выдано сообщение об ошибке.
Типы данных в операторах DATA и READ должны соответствовать друг другу. Эти операторы могут располагаться в любом месте программы. Строковые переменные записываются без кавычек, если в них нет пробелов, и заключаются в кавычки, если содержат пробелы.
Форматы операторов:
DATA <список данных>
READ <список переменных>
Пример 9.4.1. Использование операторов DATA, READ
DATA 125, 34.78, 1.24E-5, БРЕСТ, “МИНСК - СТОЛИЦА”
READ A,B,D,C$,C1$
Переменным A, B и D будут присвоены, соответственно, числовые значения 125, 34.78 и 0.0000124, переменным C$ и C1$ - “БРЕСТ” и “МИНСК - СТОЛИЦА”.
Для повторного использования данных используется оператор RESTORE . Формат оператора: RESTORE [<метка>].
Если метка в операторе RESTORE не указана, то указатель устанавливается в начало области данных, иначе указатель устанавливается на соответствующую метку в области данных.
Пример 9.4.2. Использование операторов DATA, READ, RESTORE
10 REM ПРИМЕР ИСПОЛЬЗОВАНИЯ ОПЕРАТОРОВ DATA, DEAD, RESTORE
20 DATA 136.75, 18E5,123.45,1978,.9875
25 DATA .5439,1.567,4.65,12.23,48.56
30 READ A1,A2,A3,A4,А5: REM чтение данных из строки 20
150 READ B1,B2: REM чтение данных из строки 25
250 RESTORE 25: REM перевод указателя данных на метку 25
260 INPUT "Введите размерность массива N, не более 5",N
270 FOR i=1 TO N
280 READ D2(i) : REM чтение данных из строки 25 в одномерный массив
Оператор INPUT служит для ввода данных с клавиатуры в режиме диалога с пользователем. Формат оператора:
INPUT [;] “текстовое выражение”[;/,]<список переменных>
Здесь [;] – необязательный параметр, оставляет курсор в текущей строке; [;/,] - означает, что в качестве разделителя может использоваться один из указанных знаков ";" или ",".
При выполнении оператора INPUT на экран выдается запрос на ввод данных. Если в качестве разделителя используется “;”, то запрос сопровождается выводом на экран вопросительного знака, при использовании в качестве разделителя “,” вопросительный знак на экран не выводится. Текстовое сообщение позволяет сделать запрос понятным пользователю. В списке переменных данные разделяются запятыми или пробелами (предпочтительнее разделять данные запятыми). С помощью оператора INPUT можно вводить как числовые, так и символьные переменные. Если символьная переменная не содержит пробелов и других разделителей, то при вводе данных заключать ее в кавычки не обязательно.
Не используйте оператор INPUT без текстового комментария.
Пример 9.4.3. Использование оператора Input
INPUT “Введите переменные А и B”; A,B
INPUT “Введите Ваш год рождения”, GR$
Здесь A и B - числовые переменные, GR$ - символьная переменная.
Оператор LINE INPUT служит для ввода одной символьной переменной. При вводе значение символьной переменной в кавычки не заключается, в ней допускается наличие пробелов и других разделителей. Конец строки определяется символом возврата каретки - нажатие клавиши ENTER. Формат оператора LINE INPUT аналогичен формату оператора INPUT.
Функция INPUT$ служит для ввода символов, не отображаемых на экране, например пароля. Формат функции: с1$ = INPUT$(n [,[#]nf])
Здесь n - число вводимых символов, # - номер канала при вводе данных из файла, nf - имя файла.
Пример 9.4.4. Использование оператора LINE INPUT и функции INPUT$
LINE INPUT "Введите фамилию, имя и отчество ",FIO$
Символьной переменной B$ присваивается код из пяти символов, при выдаче запроса вводимые символы отображаться на экране не будут. Когда в программе встречается оператор INPUT$(n), программа останавливается и ожидает ввода данных. Поэтому данный оператор в формате B$= Input$(1) может быть использован для остановки программы до нажатия любой клавиши.
Функция Input$(1) может быть использована для остановки программы до нажатия любой клавиши.
Конспект открытого урока в 8 классе «Линейные программы на языке Паскаль»(операторы ввода и вывода)
Тема урока: «Линейные программы на языке Паскаль» (операторы ввода и вывода)
Цель урока: изучить основных операторов языка программирования Pascal, синтаксис, семантику, а также научить учащихся использованию данных операторов при решении задач.
Задачи урока:
- образовательные:
- усвоение учащимися операторов и области его применения;
- формирование умений и навыков записи операторов на языке программирования Pascal;
- выработка навыков составления программ, реализующих линейные алгоритмы при решении задач;
- развивающие :
- развитие логического и алгоритмического мышления учащихся;
- развитие у учащихся познавательной активности;
- развитие памяти и внимания;
- развитие коммуникационной компетентности у учащихся;
- формирование у учащихся компьютерной грамотности и потребности в приобретении знаний;
- воспитательные :
- привитие учащимся навыков самостоятельной работы;
- воспитание бережного отношения к компьютерной технике;
- воспитание толерантности.
Тип урока: урок изучения нового материала.
Формы и методы обучения: словесный, наглядный, практический, проблемный – фронтальный опрос, работа на компьютере.
Общее время: 45 минут.
Место проведения урока: кабинет информатики.
Оснащение урока: компьютерная презентация «Основные операторы языка Паскаль», мультимедийный проектор, интерактивный учебный курс «Основы программирования на Turbo Pascal» издательского дома «Равновесие», компьютеры с инсталлированным на них пакетом Turbo Pascal, колонки, дидактический раздаточный материал.
План урока
- Оргмомент – 1 мин.
- Вводное слово – 1 мин.
- Актуализация знаний и умений учащихся – 8 мин.
- Изучение нового материала – 15 мин.
- Закрепление изученного материала Работа на компьютерах – 15 мин.
- Заключение – 3 мин.
- Задание на дом – 2 мин.
Ход урока
1. Беседа с дежурным. Здравствуйте.
Кто сегодня дежурный? Кто из учащихся отсутствует на уроке?
2. Вводное слово. Сегодня на уроке мы познакомимся с основными операторами языка программирования Паскаль. В каких случаях применяются данные операторы, и каков формат записи этих операторов вы узнаете на сегодняшнем уроке.
3. Актуализация знаний и умений учащихся. Актуализация знаний и умений учащихся осуществляется во время фронтального опроса, в ходе, которого им предстоит ответить на следующие вопросы:
- Дайте определение линейного алгоритма.
- Структура линейного алгоритма.
- Приведите примеры линейных алгоритмов.
- Запишите формат заголовка программы.
4. Изучение нового материала.
Учащимся предлагается прослушать интерактивный учебный курс «Основы программирования на Turbo Pascal» – Введение в Turbo Pascal\Операторы ввода и вывода информации», составить опорный конспект – записать формат и блок-схему в тетрадь и ответить на вопросы:
- В каких случаях используется оператор Read а в каких Readln?
- Чем отличаются операторы Write и Writeln?
- Основные процедуры и функции модуля CRT.
Принцип выполнения операторов и примеры решения некоторых задач.
Начинаем с рассмотрения примера программы:
Найти сумму и произведение 3 введенных с клавиатуры целых чисел.
Программа будет иметь вид:
Program summa (input, output);
Var a,b,c,s,p:integer;
Begin
Write(‘введите 3 целых чисел’);
Readln(a,b,c);
S:=a+b+c; P:=a*b*c;
Writeln(‘сумма введенных чисел равна’,s);
Writeln(‘произведение введенных чисел равно’,p);
End.
Обращаем внимание учащихся на различную форму записи процедуры вывода и излагаем материал.
Ввод данных осуществляется с помощью процедур read и readln ;
Формат записи :
Read(имена переменных); read(а,b,c);
При использовании данной процедуры после ввода значений переменных курсор остается в той же строке, то есть следующий ввод или вывод начинается в той же строке.
Readln(имена переменных); readln(a,b,c);
При использовании данной процедуры после ввода данных курсор переходит на новую строку и следующий ввод или вывод будет осуществляться с новой строки.
Вывод осуществляется с помощью процедур write, writeln.
Формат записи:
Write(‘текст’, имена переменных:m:n);
writeln(‘текст’, имена переменных:m:n);
Эти процедуры работают так же, как и процедуры ввода.
Параметры m и n определяют формат вывода. Для переменных целого типа указывается лищь параметр m, для переменных вещественного типа – могут бать указаны оба параметра, в зависимости от нужного формата вывода, для символьных, строковых только m.
Затем переходим к изучению процедур и функций, имеющихся в модуле CRT .
Даем учащимся основные процедуры и функции модуля.
Процедуры:
Clrscr (clear screen) – гашение экрана(очистка окна вывода).
Gotoxy(m,n) – установка курсора в позицию m строки n.
Trxtbackground(c) – установка цвета фона; с – константа, определяющая цвет(цифра от 0 до 7).
Textcolor(c) – установка цвета шрифта; с может принимать значения от 0 до 7.
Deline – удаление строки, в которой находится курсор. Все строки ниже удаленной сдвигаются на одну строку вверх.
Insline – добавление пустоц строки в позицию курсора, все строки за курсором сдвигаются на строку вниз.
Delay(n) – приостановка выполнения программы на n миллисекунд.
Sound(n) – запуск звукогенератора с частотой тона n Гц.
Nosound – отключение звукового сигнала.
Функции :
Keypressed – значение функции может принимать два значения: true или false. Значение true, если в буфере обмена нет ни одного символа, и false – в противном случае.
Readkey – ввод символов с клавиатуры, без отображения их на экране.
Объяснение применения этих процедур и функций будет кратким. Учащиеся должны усвоить в данном случае только то, какие процедуры и функции есть, каков их формат и для чего они служат. Более полное знакомство с ними будет во время лабораторной работы.
5. Закрепление изученного материала. Работа на компьютерах Для закрепления изученного материала учащимся предлагается выполнить лабораторную работу.
Суть работы состоит в том, что учащиеся загружают в редактор системы указанные учителем файлы и, выполняя указания программы, анализируя ее содержание, усваивают, как работают те или иные процедуры.
Задачи, которые учащиеся выполняют на этом этапе:
Задача 1
Program perim;
Uses crt;
Var a,b,c,d,p:real;
Begin
Writeln(‘Введите значения длин сторон трапеции a,b,c,d’);
Readln(a,b,c,d);
P:=a+b+c+d;
Writeln(‘периметр=’,p);
Writeln(‘для возврата в редактор нажмите любую клавишу’);
Repeat until keypressrd;
End.
Просмотреть текст программы и выяснить, что оно делает;
Запустить программу на исполнение;
Внимательно посмотреть на результат вывода;
Выйти в редактор и:
После begin вставить процедуру gotoxy(25,5);
В процедуре writeln, выводящий на экране значение периметра, изменить запись p на p:7:2;
Запустить на исполнение и выяснить, что изменилось в роботе программы.
Задача 2
Program dvij;
Uses crt,graph;
Var i,j,x:integer;
Begin
i:=detect; initgraph(i,j,’ ‘); sound (400);
for x:=0 to 640 do
begin
setcolor(5); circle(x,100,5); delay(300); setcolor(0);
end;
nosound
end.
Запустить на исполнение;
Пронаблюдать исполнение;
После возвращения в редактор изменить значение параметра в процедуре sound с 400 на 800, значение параметра в процедуре delay с 300 на 1000;
Вновь запустить программу;
Проанализировать, как повлияли изменения на работу программы.
Если класс быстро справится с заданиями, можно дать возможность ребятам поэкспериментировать с этими программами.
6. Заключение. Подводятся итоги уроки, анализируется и оценивается работа каждого ученика.
Рефлексия:
- Было ли вам комфортно сегодня на уроке?
- Что нового вы узнали на сегодняшнем уроке?
- С какими именно трудностями вы столкнулись?
- Какие задания показались вам простыми?
7. Задание на дом.
- Выучить опорный конспект.
- Найти стоимость заданного количества ткани. Цена и количество вводятся с клавиатуры. Составьте блок-схему и программу решения задачи.
- Заданы значения переменных a=12; b=5. Каковы будут значения этих переменных после выполнения следующего фрагмента программы:
а) a:=b; b:=a; c:= a+b;
b) f:=y; y:=x; x:=f; c:=a+b.
Ввод данных - это передача информации от внешних устройств в оперативную память. Вводятся, как правило, исходные данные решаемой задачи. Вывод - обратный процесс, когда данные передаются из оперативной памяти на внешние носители (принтер, дисплей, магнитные устройства и т.д.). Результаты решения всякой задачи должны быть выведены на один из этих носителей.
Основными устройствами ввода-вывода у персонального компьютера являются клавиатура и дисплей (экран монитора). Именно через эти устройства главным образом осуществляется диалог между человеком и ПК.
Оператор ввода read
Процедура ввода с клавиатуры (обращение к стандартной процедуре ввода) имеет следующий формат:
Read(<список ввода>)
где <список ввода> - это последовательность имен переменных, разделенных запятыми. При вводе исходных данных происходит преобразование из внешней формы представления во внутреннюю, определяемую типом переменных. Переменные, образующие список ввода, могут принадлежать либо к целому, либо к действительному, либо к символьному типам. Чтение исходных данных логического типа в языке Паскаль недопустимо. Значения исходных данных могут отделяться друг от друга пробелами и нажатием клавиш табуляции и Enter .
Если в программе имеется несколько операторов read , то данные для них вводятся потоком, т.е. после считывания значений переменных для одного оператора read данные для следующего оператора читаются из той же строки на экране, что и для предыдущего до окончания строки, затем происходит переход на следующую строку.
Другой вариант оператора ввода с клавиатуры имеет вид:
Readln(<список ввода>)
Этот оператор отличается от read только тем, что после считывания последнего в списке значения для одного оператора readln данные для следующего оператора будут считываться с начала новой строки.
Оператор вывода write
Оператор вывода на экран (обращение к стандартной процедуре вывода) имеет следующий формат:
Write(<список вывода>)
Переменные, составляющие список вывода, могут относиться к целому, действительному, символьному или логическому типам. В качестве элемента списка вывода кроме имен переменных могут использоваться выражения и строки. При выводе на экран нескольких чисел в строку они не отделяются друг от друга пробелами. Программист сам должен позаботиться о таком разделении.
Второй вариант процедуры вывода на экран:
Writeln(<список вывода>)
Его действие отличается от оператора write тем, что после вывода последнего в списке значения происходит перевод курсора к началу следующей строки. Оператор writeln , записанный без параметров, вызывает перевод строки.
Вывод каждого значения в строку экрана происходит в соответствии с шириной поля вывода, определяемой конкретной реализацией языка. Форма представления значений в поле вывода соответствует типу переменных и выражений: величины целого типа выводятся как целые десятичные числа, действительного типа - как действительные десятичные числа с десятичным порядком, символьного типа и строки - в виде символов, логического типа - в виде логических констант TRUE и FALSE .
Оператор вывода позволяет задать ширину поля вывода для каждого элемента списка вывода. В этом случае элемент списка вывода имеет вид А:К, где А - выражение или строка, К - выражение либо константа целого типа. Если выводимое значение занимает в поле вывода меньше позиций, чем К, то перед этим значением располагаются пробелы. Если выводимое значение не помещается в ширину поля К, то для этого значения будет отведено необходимое количество позиций. Для величин действительного типа элемент списка вывода может иметь вид А:К:М, где А - переменная или выражение действительного типа, К - ширина поля вывода, М - число цифр дробной части выводимого значения. К и М - выражения или константы целого типа. В этом случае действительные значения выводятся в форме десятичного числа с фиксированной точкой.
10. Операторы ввода и вывода
Рассмотрим организациюввода и вывода данных с терминального уст-
ройства. Терминальное устройство - это устройство, с которым работает
пользователь, обычно это экран (дисплей) и клавиатура.
Для ввода и вывода данных используются стандартные процедуры ввода
и вывода Read и Write, оперирующие стандартными последовательными файлами
INPUT и OUTPUT.
Эти файлы разбиваются на строки переменной длины,отделяемые друг
от друга признаком конца строки.Конец строки задается нажатием кла-
Для ввода исходных данных используются операторы процедур ввода:
Read(A1,A2,...AK);
ReadLn(A1,A2,...AK);
Первый из них реализует чтение К значений исходных данных иприс-
ваивание этих значений переменным А1,А2,...,АК. Второй оператор
реализует чтение К значений исходных данных, пропуск остальных значе-
ний до начала следующей строки, присваивание считанных значений пере-
менным А1,А2, ..., АК. Третий оператор реализует пропуск строки ис-
ходных данных.
При вводе исходных данныхпроисходитпреобразованиеизвнешней
формы представления во внутреннюю, определяемую типом переменных. Пе-
ременные, образующиесписок ввода, могут принадлежать либо к целому,
либо кдействительному,либо к символьному типам. Чтение исходных
данных логического типа в языке ПАСКАЛЬ недопустимо.
Операторы вводапри чтении значений переменных целого и
действительного типа пропускает пробелы,предшествующие числу.В то
же время эти операторы не пропускают пробелов,предшествующих значе-
ниям символьных переменных,так как пробелыявляютсяравноправными
символами строк. Пример записи операторов ввода:
var rV, rS: Real;
iW, iJ: Integer;
................
Read(rV, rS, iW, iJ);
Значения исходных данных могут отделяться друг от другапробелами
и нажатием клавиш табуляции и Enter.
Для вывода результатов работы программы на экран используются
операторы:
Write(A1,A2,...AK);
WriteLn(A1,A2,...AK);
Первый из этих операторов реализует вывод значений переменныхА1,
А2,...,АК встроку экрана.Второй оператор реализует вывод
значений переменных А1,А2,...,АК и переход кначалуследующей
строки. Третийоператор реализует пропуск строки и переход к началу
следующей строки.
Переменные, составляющие список вывода, могут относиться к целому,
действительному, символьному или булевскому типам. В качестве элемен-
та списка вывода кроме имен переменных могут использоваться выражения
и строки.
Вывод каждогозначения в строку экрана происходит в соот-
ветствии с шириной поля вывода,определяемой конкретнойреализацией
Форма представления значений в поле вывода соответствует типупе-
ременных и выражений:величины целого типа выводятся как целые деся-
тичные числа,действительного типа - какдействительныедесятичные
числа с десятичным порядком,символьного типа и строки - в виде сим-
волов, логического типа - в виде логических констант TRUE и FALSE.
Оператор выводапозволяетзадатьширину поля вывода для каждого
элемента списка вывода.В этом случае
элемент списка вывода имеет вид А:К, где
А - выражение или строка,К - выражение либо константа целоготипа.
Если выводимое значение занимает в поле вывода меньше позиций, чем К,
то перед этим значением располагаются пробелы.Если выводимое значе-
ние не помещается в ширину поля К,то для этого значения будет отве-
дено необходимое количество позиций. Для величин действительного типа
элемент списка вывода может иметь вид А:К:М, где А - переменная или выраже-
ние действительного типа,К - ширина поля вывода,М-числоцифр
дробной частивыводимого значения.К и М - выражения или константы
целого типа.В этом случае действительные значения выводятся в форме
десятичного числа с фиксированной точкой.
Пример записи операторов вывода:
. . . . . . . . . . . .
var rA, rB: Real;iP,iQ:Integer;
bR, bS: Boolean;chT, chV, chU, chW: Char;
. . . . . . . . . . . .
WriteLn(rA, rB:10:2);
WriteLn(iP, iQ:8);
WriteLn(bR, bS:8);
Цель лабор а торной работы: научиться правильно описывать переменные, используя следующие стандартные типы данных:целочисленные. вещественные и логический; изучить операторы ввода-вывода данных, выработать практические навыки работы с системой PascalABC, научиться создавать, вводить в компьютер, выполнять и исправлять простейшие программы на языке Pascal в режиме диалога, познакомиться с диагностическими сообщениями компилятора об ошибках при выполнении программ, реализующих линейные алгоритмы.
Оператором называют специальную совокупность служебных слов, идентификаторов и специальных знаков, выполняющих определенные действия. Операторы отделяются друг от друга точкой с запятой «;».Примеры орераторов.
Оператор присваивания: (:=). Оператор присваивания служит для присваивания значений переменным, например: x:=1; a:=5. 02; b:= 32*a+Sin(x); S:= "Иван Иванович".
Составной оператор: Begin <операторы> End;
Составной оператор служит для записи в свое тело других операторов, последовательность которых рассматривается в данном случае как один оператор. Этим оператором начинается и заканчивается раздел выполнения основной программы, подпрограммы, функции. После последнего оператора END основной программы ставится точка.
Операторы ввода/вывода данных
Для выполнения операций ввода-вывода служат четыре оператора:
Read,ReadLn,Write,WriteLn. Оператор чтения (Read) обеспечивает ввод числовых данных, символов, строк и т.д. для последующей их обработки программой.
Формат: Read(X1, Х2, .. , Хn), где X1, Х2, .. , Хn–переменные допустимых типов данных.
Значения X1, Х2, .. , Хnнабираются минимум через один пробел на клавиатуре пользователем и высвечиваются на экране. Значения переменных должны вводиться в строгом соответствии с синтаксисом языка. Если в программе имеется несколько операторовRead, данные для них вводятся потоком, т. е. после считывания значений переменных для одного оператораReadданные для следующего оператораRead–набираются на той же строке, что и для предыдущего до окончания строки, затем происходит переход на следующую строку. Оператор чтенияReadLnаналогичен операторуRead, единственное отличие заключается в том, что после считывания последнего в списке значения для одного оператора ReadLn данные для следующего оператора ReadLn будут считываться с начала новой строки.
Оператор записи (Write) производит вывод данных.
Формат: Write(X1, Х2, .. , Хn), где X1, Х2, .. , Хn- выражения типаinteger,byte,real,char,Booleanи т.д.
Пример: Write(125); (выражение представлено значением)Write(А+В–С); {выводится результат выражения).
Оператор Writeдает возможность выводить значения переменных следующими способами.
Вывод десятичного представления величины Iначиная с позиции расположения курсора (I):
Вывод десятичного представления величины I в крайние правые позиции поля шириной р (I:р):
Где ַ– пробел.
3. Вывод десятичного представления величины Iв крайние правые позиции поля шириной р и дробной части числа ширинойq(I:р:q):
Оператор записи WriteLnаналогичен операторуWrite, но после вывода последнего в списке значения для текущего оператора WriteLn происходит перевод курсора к началу следующей строки. Оператор WriteLn, записанный без параметров, вызывает перевод строки.
При недостатке количества позиций для вывода число или текст выводятся полностью, а формат игнорируется, кроме формата вывода дробной части числа. Если формат вывода не задавать, то значения целых и строковых переменных выводятся полностью, а вещественных – с количеством цифр, соответствующих типу переменной, например,
a:=5.12345678912345678912345; Writeln("а=", a); выведет на экран надпись.