Что будет выведено на экран в результате работы программы нарисуйте распределение памяти по ячейкам
Для ввода данных в языке Турбо Паскаль предусмотрены стандартные операторы (процедуры) – READ и READLN , которые предназначены для чтения данных, как с клавиатуры, так и из файла. В данном разделе рассматривается ввод данных только с клавиатуры. Добавление к оператору READ символов LN обеспечивает автоматический переход курсора после ввода данных на новую строку.
Формат оператора:
Здесь a1,a2,a3. an – переменные, которым последовательно присваиваются значения. Если в тексте программы встречается оператор READ , компьютер приостанавливает работу и ожидает ввода значений переменных с клавиатуры. Когда все значения переменных, перечисленных в операторе ввода, введены, процесс выполнения программы продолжается.
Допускается использование оператора ввода без параметров
который выполняет переход на новую строку при вводе данных.
При вводе данных с помощью оператора READ нужно иметь в виду следующие основные правила:
- логические данные в Турбо Паскале вводить не разрешается;
- при вводе числовых данных, числа разделяются пробелом или символом окончания ввода (клавиша ENTER). Ввод всегда заканчивается нажатием клавиши ввода – ENTER;
- пробелы перед числом и между числами игнорируются, поэтому их можно ставить в любом количестве;
- если переменная описана как Integer , ее значение вводится как целое число, т.е. не допускается использование точки после числа;
- если переменная описана как вещественная ( Real ), а ее значение является целым числом, то можно вводить число как целое (т.е. без точки) и как вещественное число – с точкой. Преобразование целого числа к вещественному числу будет выполнено автоматически;
- ввод символьных данных имеет особенности. Поскольку пробел является символом, как и любой другой символ языка Турбо Паскаль, то символьные данные необходимо вводить сплошной строкой;
- одной символьной переменной можно присвоить значение только одного символа;
- нажатие клавиши ENTER воспринимается как символ, поэтому для правильного ввода символьных данных рекомендуется перед каждым оператором ввода символьных данных ставить оператор перехода на новую строку READLN , чтобы их ввод осуществлялся с новой строки.
ЗАДАЧА. Ввод данных.
Введем в программу следующие исходные данные:
Обозначим символом пробел при вводе. При вводе числа будем разделять пробелом. Между числами допускается любое количество пробелов. Тогда экран монитора при вводе данных может выглядеть следующим образом:
Введите a, b, c: 2 3
Введите x, y, z:44.4 47.5 76
Введите s1,s2,s3:A B C
Вывод данных
Для вывода данных из памяти компьютера на экран монитора предназначен оператор Write .
Здесь a1,a2,a3. an могут быть либо переменными, либо строкой символов, заключенной в апострофы. Все элементы перечисляются через запятую. Добавление к оператору WRITE символов LN обеспечивает автоматический переход курсора после вывода данных на новую строку.
Допускается использование оператора ввода без параметров
который выполняет переход на новую строку, поэтому последующий оператор вывода с параметрами будет выводить данные с новой строки. Оператор вывода без параметров часто используется для формирования пустых строк.
Параметрами оператора WRITE могут быть данные целого, вещественного, логического, символьного, а также типа string .
Расположение данных на экране монитора может быть задано параметрами оператора WRITE , тогда вывод называется выводом с форматами данных. Если в операторе WRITE форматы не используются, вывод называется бесформатным выводом или стандартной формой вывода.
Бесформатный вывод. Форма представления выводимых данных зависит от типа данных:
- значения логического типа выводятся в виде логических значений TRUE и FALSE ;
- значения символьных переменных выводятся в виде соответствующих символов;
- символьная константа выводится в том виде, как она записана, но без апострофов;
- значения величин целого типа выводятся как целые числа;
- значения величин вещественного типа выводятся в формате с плавающей точкой.
При бесформатном выводе отводимое количество позиций равно размеру данных. При выводе символа отводится одна позиция, при выводе целого числа – число позиций равно числу значащих цифр плюс одна позиция под знак, если число отрицательное. Это необходимо учитывать при последовательном выводе данных, например чисел, чтобы значения разных переменных не сливались друг с другом.
ПРИМЕР. Рассмотрим фрагмент программы:
Оператором write(n,m); на экран монитора выводятся целые числа: n=1234 и m=7890 . Поскольку используется вывод без форматов данных, результат будет иметь вид:
Два числа слились. Для того чтобы числа не сливались необходимо использовать разделяющие пробелы или разнесение информации по разным строкам.
Результат:
Результат:
Форматный вывод. Для вывода вещественных чисел необходимо указать в операторе WRITE формат представления числа, который имеет вид:
где: m – целое число, указывающее общее количество позиций отводимое под значение переменной, включая позицию под знак числа, точку и количество цифр дробной части; n – целое число, определяющее количество цифр дробной части.
Выводимая информация выравнивается по левому краю. При этом подавляется печать ведущих нулей, т.е. если для вывода числа было выделено четыре позиции, то на экран монитора будет выведено, например, 6 , а не 0006 .
Пример. Выведем значение переменной A , равное 401.3 оператором write(A:8:2) . На экран монитора будет выведено:
401,30 |
8 позиций |
Символом обозначен пробел.
Вывод вещественных чисел выполняется по следующим правилам:
- Если число имеет меньшую длину, чем m , то оно будет дополнено слева пробелами.
- Если число имеет большую длину, чем m , то параметр m игнорируется и число будет выведено полностью.
- Если дробная часть больше, чем параметр n , то число округляется. Округление не изменяет самого значения переменной, меняется только представление числа на мониторе.
- Если параметр n не указан, то ни дробная часть числа, ни десятичная точка не выводятся. Вывод осуществляется в формате с плавающей запятой.
В качестве примера рассмотрим печать вещественного числа в различных форматах.
Результат работы программы:
Печать вещественного числа
Печать в фиксированном формате
Печать в плавающем формате
Для вывода целых чисел необходимо указать в операторе WRITE формат представления числа, который имеет вид:
k – целое число, указывающее общее количество позиций, отводимое под значение переменной.
В целых числах отсутствует дробная часть, поэтому нет необходимости указывать в формате число позиций дробной части.
Сайт учителя информатики. Технологические карты уроков, Подготовка к ОГЭ и ЕГЭ, полезный материал и многое другое.
§ 3.2. Организация ввода и вывода данных
Информатика. 8 класса. Босова Л.Л. Оглавление
Ключевые слова:
• оператор вывода write
• формат вывода
• оператор ввода read
3.2.1. Вывод данных
В предыдущем параграфе мы познакомились со структурой программы на языке Паскаль, научились описывать данные, рассмотрели оператор присваивания. Этого достаточно для того, чтобы записать программу преобразования данных. Но результат этих преобразований нам виден не будет.
Для вывода данных из оперативной памяти на экран монитора используется оператор вывода write:
Здесь в круглых скобках помещается список вывода — список выражений, значения которых выводятся на экран. Это могут быть числовые, символьные и логические выражения, в том числе переменные и константы.
Произвольный набор символов, заключённый в апострофы, считается строковой константой. Строковая константа может содержать любые символы, набираемые на клавиатуре.
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;
read (i, j, х, а)
и организуем входной поток одним из следующих способов:
Здесь мы не только использовали различные разделители (пробел, запятая), но и представляли входной поток в виде одной, двух и четырёх строк.
Для ввода данных с клавиатуры можно также использовать оператор readln. Отличие состоит в том, что после выполнения readln осуществляется автоматический переход на новую строку входного потока, даже если в текущей строке остались невведённые символы. Таким образом, readln позволяет считать лишь начальную часть введённой пользователем строки и, проигнорировав её окончание, перейти к следующей строке.
Результат работы усовершенствованной программы:
Теперь наша программа может ВЫЧИСЛИТЬ длину окружности и площадь круга для любого значения г. Иначе говоря, она решает не единичную задачу, а целый класс задач. Кроме того, в программе понятно и удобно организован ввод исходных данных и вывод получаемых результатов. Это обеспечивает дружественность пользовательского интерфейса.
САМОЕ ГЛАВНОЕ
Для ввода в оперативную память значений переменных используются операторы ввода read и readln.
Для вывода данных из оперативной памяти на экран монитора используются операторы вывода write и writeln.
Ввод исходных данных и вывод результатов должны быть организованы понятно и удобно; это обеспечивает дружественность пользовательского интерфейса.
Вопросы и задания
2. Запишите оператор, обеспечивающий во время работы программы ввод значения переменной summa.
3. Целочисленным переменным i, j, k нужно присвоить соответственно значения 10, 20 и 30. Запишите оператор ввода, соответствующий входному потоку:
а) 20 10 30
б) 30 20 10
в) 10 30 20
4. Опишите переменные, необходимые для вычисления площади треугольника по его трём сторонам, и запишите оператор, обеспечивающий ввод необходимых исходных данных.
5. Что является результатом выполнения оператора?
6. Какой тип имеет переменная f, если после выполнения оператора write (f) на экран было выведено следующее число?
7. Каким образом можно вывести на экран вещественное число?
8. Запишите операторы ввода двух чисел и вывода их в обратном порядке.
9. Дан фрагмент программы:
read (a); read (b); c:=a+b; write (a, b); write (с)
Упростите его, сократив число операторов ввода и вывода.
10. Дан фрагмент программы:
а:=10; b:=a+1: a:=b-a; write (а, b)
Какие числа будут выведены на экран компьютера?
11. Напишите программу, которая вычисляет площадь и периметр прямоугольника по длинам двух его сторон.
Компьютерные программы обрабатывают (изменяют) различные данные. Программа получает данные, что-то делает с ними и выводит их в измененной форме или выводит другие данные.
Следовательно, любой язык программирования должен иметь инструменты как для ввода данных, так и их вывода. В Паскале ввод осуществляется с помощью процедур read() и readln() , а вывод - благодаря write() и writeln() . Процедуры, которые имеют окончание ln , после своего выполнения переводят указатель на новую строку.
Откуда или с помощью чего можно ввести данные в программу? Обычно это можно сделать с помощью клавиатуры или из файлов.
Куда можно вывести данные? На экран, в файл, на принтер и др.
Стандартным устройством ввода является клавиатура, а вывода — монитор. Стандартные — значит "работающие по-умолчанию"; т.е. если не указано ничего иного, то программа будет считывать данные с клавиатуры, а выводить их на монитор. Вместе клавиатуру и монитор называют консолью. Таким образом консоль представляет собой стандартное устройство ввода-вывода.
Вывод данных на экран. Форматированный вывод
Вывод данных на экран и в файл в языке программирования Pascal осуществляется с помощью процедур write ( ) и writeln ( ) . Здесь будет рассмотрен вывод только на экран.
Допустим, нам требуется отобразить на экране пару фраз. Если мы хотим, чтобы каждая из них начиналась с новой строки, то надо использовать writeln() , если нет – то write() .
Еще один пример. В памяти компьютера хранятся данные. Из программы мы обращаемся к ним с помощью переменных num, fl и st. Вывести их значения на экран можно по-разному.
Во втором случае мы видим, что процедуры вывода (как write() так writeln() ) позволяют конструировать выводимую информацию из различных компонент (строк-констант и переменных).
В третьем случае был осуществлен так называемый форматированный вывод. При этом для выводимого значения указывается ширина поля вывода (количество знакомест). Если мы выводим вещественное (дробное) число, то вторым числом через двоеточие указывается количество знаков после запятой. Если для вещественных чисел не осуществлять форматирование, то они отобразятся так, как определено для данного компьютера. Если указать только число знакомест без фиксирования дробной части, то вывод будет в экспоненциальной форме.
Ввод данных с клавиатуры
Ввод данных в языке программирования Паскаль обеспечивается процедурами read() и readln() . Ввод данных осуществляется либо с клавиатуры, либо из файла. Здесь рассматривается только ввод с клавиатуры.
Когда данные вводятся, то они помещаются в ячейки памяти, доступ к которым обеспечивается с помощью механизма переменных. Поэтому, когда в программе на Pascal используется процедура read() (или readln() ), то в качестве фактического параметра (аргумента) ей передается имя переменной, которая будет связана с вводимыми данными. Потом эти данные можно будет использовать в программе или просто вывести на экран.
В процедуры ввода можно передавать не один фактический параметр, а множество.
При вводе данных их разделяют пробелом, табуляцией или переходом на новую строку (Enter). Данные символьного типа не разделяются или разделяются переходом на новую строку.
Существуют особенности ввода данных с помощью операторов read() и readln() . Если используются подряд несколько операторов read() , то вводимые данные можно разделять всеми допустимыми способами. При использовании нескольких вызовов readln() каждый последующий срабатывает только после нажатия Enter. Программа ниже иллюстрирует это. Комментарии поясняют последовательность возможных действий при вводе данных.
a := - 6; b := - 5; a := a + 2 * b ; b := a ; Writeln ( a , b ).
а) 0, - 16; б) – 16, 0;
в) – 16, - 16; г) – 6, - 5.
Скольких команд вывода достаточно для печати на экране твоей фамилии, имени и отчества?
в) Одной; г) Четырех.
Что вычисляет функция SQRT ?
а) Остаток от деления;
в) Квадратный корень;
г) Определяет знак числа.
Чему равно значение выражения - ABS ( - SQRT (36) )?
а) – 6 ; б) 6; в) 36; г) -36
Чему равно значение функции 12 MOD 4?
а) 12; б) 4; в) 3; г) 0.
Чему равно значение выражения
INT (SQRT (37)) + ABS ( - 2 – 6 MOD 3)?
а) 8; б) 4; в) 2; г) 0.
Найдите логически неверно записанную последовательность команд:
а) Readln (F,Y); D:=F*Y; Y:=D+4; Writeln (F);
б) Readln (F,Y); D:=F*Y; Y:=D+4; Writeln (Y);
в) Readln (F,Y); Y:=D+4; d:=F*Y; Writeln (F);
г) Writeln (F); Readln (F,Y); D:=F*Y; Y:=D+4;
С какого служебного слова начинается программа:
a) Var; б ) Program; в) Begin; г) End.
Что делает эта программа?
Var a, b, S: Integer;
Writeln (‘ Введите 2 числа ’);
а) находит периметр квадрата; б) находит площадь квадрата;
в) находит площадь прямоугольника; г) находит площадь круга.
Какими двумя действиями можно получить цифры заданного двузначного числа Х?
а) X div 2; X mod 2; б ) X div 10; X mod 10;
в) (X div 10) mod 10; (X mod 100) div 10; г) X div 100; X mod 100.
Сколько данных нужно ввести для вычисления площади квадрата?
а ) одно; б) два; в) три; г) четыре?
Контрольная работа по информатике «Линейные программы в Паскале»
Вариант 2
Для чего предназначен оператор Writeln ?
а) для ввода данных с клавиатуры;
б) для ввода числовых данных;
в) для печати результатов на принтере;
г ) для вывода на экран.
Определите результат работы программы:
Writeln (‘сумма= ‘, 5 + 5).
а) 10; б) сумма = 10;
в) сумма = 0; г) сумма = 5 + 5.
Какое число будет выведено на экран:
Writeln ( - 50 mod 5) ?
Определите результат работы программы:
a := - 5; b := - 5; a := a + 2 * b; b := a; Writeln (a,b).
а) - 6, - 15; б) – 15, 0;
в) – 6, - 6; г ) – 15, - 15.
Сколько чисел необходимо ввести для вычисления площади прямоугольника?
Что вычисляет функция MOD ?
а) Остаток от деления;
в) Квадратный корень;
г) Определяет знак числа.
Чему равно значение выражения - SQRT ( ABS (- 49) )?
а) – 49; б) 7; в) - 7; г) нет решений.
Чему равно значение функции 12 DIV 4?
а) 12; б) 4; в) 3; г) 0.
Чему равно значение выражения
INT (SQRT (40)) + ABS ( - 2 – 20 MOD 10)?
а) 18; б) 19; в) 8; г) 0.
Есть ли ошибки в записи команды:
Readln введите радиус, R ?
б) лишнее слово «введите»;
в) пояснительный текст не заключен в кавычки;
г) пояснительный текст не нужен.
С какого служебного слова начинается раздел операторов:
a) Var; б) Program; в ) Begin; г) End.
Что делает эта программа?
Var a, b, S: Integer;
Writeln (‘ Введите 2 числа ’);
а) находит периметр прямоугольника б) находит площадь квадрата;
в) находит площадь прямоугольника; г) находит площадь круга.
Какими двумя действиями можно получить первую и последнюю цифры заданного трехзначного числа Х?
а) X div 2; X mod 2; б) X div 100; X mod 10;
в) (X div 10) mod 10; (X mod 100) div 10; г) X div 100; X mod 100.
Сколько команд вывода достаточно для вывода корней квадратного уравнения?
а) одной; б) двух; в) трех; г) четырех?
Контрольная работа по информатике «Линейные программы в Паскале»
Вариант 3
Определите результат работы программы:
A:= -5; B:= - 6; A:=B; B:=A; Writeln (A,B);
Определите результат работы программы:
а) 25; б) произведение = 25;
в) произведение = 5*5; г) 0.
Какое число будет выведено на экран:
Writeln ( 19 mod 2) ?
Определите результат работы программы:
a := - 5; b:= - 6; a := a - 2 * b; b := a; Writeln (a,b).
в) 7 , 7 ; г) – 7, - 7.
Скольких команд ввода исходных данных достаточно для решения квадратного уравнения?
в) Трех; г) Четырех.
Что вычисляет функция ABS ?
а) Остаток от деления;
в) Квадратный корень;
г) Определяет знак числа.
Чему равно значение выражения - ABS ( - SQRT (4) )?
а) 4; б) 2; в ) -2; г) 0
Чему равно значение функции 30 MOD 3?
а) 10; б) 30; в) 3; г) 0 .
Чему равно значение выражения
INT (SQRT (40)) + ABS ( - 2 – 20 MOD 10)?
а) 18; б) 19; в) 8; г) 0.
Как будут выведены значения Writeln ( F , G )?
б) через запятую;
в) через табулятор;
г) на разных строчках.
С какого служебного слова начинается раздел описаний:
a) Var ; б) Program; в) Begin; г) End.
Что делает эта программа?
Var a, S: Integer;
Writeln (‘Введите число’);
а) находит периметр квадрата; б) находит площадь квадрата;
в) находит площадь прямоугольника; г) находит площадь круга.
Какими двумя действиями можно получить цифры заданного двузначного числа Х?
Читайте также: