Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Алгоритмизация и программирование. Практическое пособие

.pdf
Скачиваний:
0
Добавлен:
06.09.2026
Размер:
1 Мб
Скачать
11
Задание 3
1. Изучив строение программы My1, напишите свою програм-
му My, аналогичную данной в примере 1.
2. Назначьте в своей программе значение одной константе.
Опишите по две переменные целого и вещественного типа. При­свойте описанным переменным значения с помощью операторов присваивания, при написании арифметических выражений руко­водствуйтесь правилами данного пункта.
3. Используйте для конструирования арифметических выра-
жений целые и дробные числа, константы, а также встроенные функции языка Паскаль.
4. Попробуйте присвоить целой переменной дробное значение.
5. Сохраните программу Myна Вашем носителе инфор-
мации.
4. Комментарии. Операторы ввода и вывода
4.1. Комментарий — неисполняемая часть программы, игно­рируется транслятором. Рекомендуется для собственных поме­ток: описания цели программы, ее структуры, основных обозна­чений, входных и выходных данных.
Комментарий заключается в знаки {…} или (**), внутри
которых можно помещать любой текст, в том числе и на русском языке.
Примеры операторов с комментариями:
a:=/3; {используем встроенную константу } k,l:integer; (*описание 2 целых переменных*)
4.2. Операторы ввода служат для введения значений пере- менных непосредственно с клавиатуры компьютера. В списке ввода может быть одно или несколько имен переменных, разде­ленных запятыми. Все используемые переменные должны быть описаны в блоке описания переменных var. При работе операто­ра ввода пользователь набирает на клавиатуре столько чисел, сколько переменных в списке ввода, причем для целых перемен­ных набираются целые значения, для вещественных — целые числа или десятичные дроби. Вводимые числа разделяются про-
12
read(список вводимых переменных);
readln(список вводимых переменных);
Оператор ввода без перевода строки Оператор ввода с переводом строки
write(список вывода);
writeln(список вывода);
Оператор вывода без перевода строки Оператор вывода с переводом строки
белами. После последнего вводимого значения данного операто­ра ввода нужно нажать клавишу <Enter>.
Существуют два варианта оператора ввода:
В первом случае по окончании ввода курсор останется в той
же строке экрана, где осуществлялся ввод чисел. Во втором слу­чае по окончании ввода курсор на экране будет переведен на но­вую строку.
4.3. Операторы вывода служат для выведения на экран тек­стов и значений переменных. Выводимый текст в операторе вы­вода заключается в кавычки, например: ’Введите два целых числа ’, Rezultat:’. В окно вывода будут выведены ука­занные в примере тексты, но без кавычек.
Содержание выводимого текста транслятором игнорируется, для компьютера это просто набор символов. Элементы вывода (тексты в кавычках и имена переменных) разделяются запятыми. Переменные из списка вывода должны быть обязательно описаны в блоке описания переменных var. У каждой выводимой пере­менной должно быть значение, заданное либо оператором при­сваивания, либо оператором ввода с клавиатуры.
Существуют два варианта оператора вывода:
Второй оператор отличается от первого переводом курсора на экране на новую строку по окончании данного вывода.
4.4. Вернемся к примеру 1. При выполнении данной програм-
мы в окнах вывода и ввода не появляется никаких сообщений, так как в этом примере нет ни одного оператора вывода и ввода. Рас-
13
program My2; const a=4; g=9.8; var b:integer; (*целое*) c,d,f:real; {веществ.} begin b:=a+1; c:=g*2+7; d:=sin(9)/8; d:=abs(d); write(’Введите число ’); readln(f); f:=f-b; writeln(f=, f); end.
Оператор назначения имени Заголовок блока констант Оператор назначения константы Оператор назначения константы Заголовок блока переменных Оператор описания переменной Оператор описания переменных Заголовок блока операторов Оператор присваивания Оператор присваивания Оператор присваивания Оператор присваивания Оператор вывода текста Оператор ввода переменной Оператор присваивания Оператор вывода текста и значения Конец программы
четы, заданные в программе, производятся в оперативной памяти, там же остаются и результаты, пользователь об этом не уведом­ляется. Чтобы наладить диалог с выполняемой программой при­мера 1, дополним ее операторами ввода и вывода. Допишем но­вые операторы в текст программы My1 в конце операторного блока (перед end.).
Пример 2:
По сравнению с программой из примера 1 в текст двух опера­торов описания переменных добавили комментарии и в конец операторного блока добавили пять операторов (два оператора ввода, два оператора вывода и оператор присваивания).
Добавленные комментарии игнорируются транслятором и на выполнение программы не влияют, они нужны как пояснения или напоминания пользователю. Рассмотрим работу пяти добавлен­ных в программу операторов:
1) write(’Введите число ’); — оператор вывода тек­ста. Программа в ходе выполнения откроет окно вывода в ниж­ней части экрана, будет выведена надпись Введите число.
Обратите внимание на пробел между словом число и кавыч-
кой, закрывающей текст. Это сделано для того, чтобы курсор на
14
экране сдвинулся на одну позицию, и последующий ввод или вы­вод не сливался с выведенным текстом;
2) readln(f); оператор ввода числа. В этом месте вы­полнение программы остановится, откроется окно ввода в ниж­ней строке экрана, и компьютер будет ожидать ввода числа. Пользователь должен набрать в окне любое вещественное число и нажать клавишу <Enter>, завершая ввод. Введенное значение присвоится переменной f, а также отобразится в окне вывода. По окончании ввода строка ввода закроется.
Далее в программе можно использовать переменную f с дан­ным значением или в дальнейшем присваивать ей другие значе­ния с помощью операторов присваивания или ввода.
В данном операторе ввода была использована команда readln, а не read, поэтому по окончании ввода числа курсор будет переведен на новую строку экрана, и новый ввод или вывод начнется с новой строки.
Предшествующий оператор вывода текста не связан с данным оператором ввода, так как компьютер не понимает значения вы­водимого текста, для него это лишь набор символов. Оператор вывода write перед оператором ввода readln является под- сказкой пользователю о том, что в данный момент нужно наби­рать на клавиатуре число и вводить его.
В одном операторе ввода могут вводиться значения несколь­ких переменных, тогда оператор будет выглядеть следующим образом:
readln(f,c,d); пользователь должен будет ввести с помощью клавиатуры три числа через пробел, а затем нажать клавишу <Enter>. Переменной f будет присвоено значение пер­вого числа из введенных, переменной c — второго, переменной
d третьего;
3) f:=f-b; оператор присваивания, уже описанный ра-
нее, в нашем примере он приведен для того, чтобы показать, что значение переменной, введенное оператором ввода read можно впоследствии менять с помощью операторов присваивания или нового ввода. В данном операторе присваивания значение пере­менной f уменьшится на величину переменной b;
4) writeln(’f=’, f); — оператор вывода, в списке выво-
да поясняющий текст f=’ и вывод численного значения пере-
15
менной f. Использование команды writeln, а не write нуж­но для того, чтобы после вывода результата вычислений курсор перешел на новую строку на экране.
Вывод результата вычислений является естественным завер­шением большинства расчетных программ, а поясняющий текст f=’ является не обязательным, но он помогает пользователю понять, что за число выведено на экран. Еще разумнее в поясняю­щем тексте писать не имя переменной, а смысловое наполнение в соответствии с условиями решаемой задачи, например:
writeln(’Сумма вклада ’, f);
writeln(’Объем воды в бассейне ’, f);
В операторе вывода можно вывести одновременно несколько значений переменных и поясняющих текстов, например:
writeln(’Координаты точки ’, c, ’,’ d); — бу­дет выведен поясняющий текст и два числа, разделенные текстом (запятой).
Задание 4
1. Откройте программу My1, добавьте в нее комментарии и операторы ввода и вывода из примера 2. Назовите новую про­грамму My2 и сохраните ее.
2. Запустите программу My2 на выполнение. Введите значе­ние переменной в окне ввода. Изучите работу операторов вывода.
3. Постройте по аналогии с My2 свою программу My2а. За­дайте операторы описания двух целых и двух вещественных пе­ременных. Дополните операторы описания одним—двумя ком­ментариями. Организуйте ввод с помощью клавиатуры одного целого значения, затем ввод двух вещественных значений для описанных переменных.
4. Измените введенные значения переменных с помощью опе­раторов присваивания, используя встроенные функции, арифме­тические действия и сами переменные.
5. Организуйте вывод значений всех переменных, описанных в программе.
6. Сохраните текст программы, дайте команду на выполне­ние. Введите все необходимые значения, изучите выведенные результаты.
16
program My3; uses CRT; var b:real; begin write(’Введите число ’); readln(b); b:=b+random; writeln(’Получилось ,b);
end.
Оператор назначения имени Блок подключения модуля Заголовок блока переменных Оператор описания переменной Заголовок блока операторов Оператор вывода текста Оператор ввода переменной Оператор присваивания Оператор вывода текста и зна­чения Конец программы
5. Подключаемые модули
5.1. Подключаемые модули — это дополнительные библиотеки языка Паскаль, которые позволяют расширить набор стандарт­ных функций. Например:
CRT модуль, позволяющий использовать для ввода и выво-
да специальное текстовое окно;
GraphABC модуль, дающий возможность работать с гра-
фическими объектами и выводить их на экран в специальном графическом окне.
Ознакомиться с полным набором подключаемых модулей
можно с помощью Основного меню командой Помощь — При-
меры.
5.2. Подключаются дополнительные модули с помощью блока
uses, который располагается после названия программы перед назначением констант и описанием переменных.
Пример 3:
В этом примере подключен модуль CRT, который направляет
ввод и вывод в специальное текстовое окно:
1) write(’Введите число ’); оператор вывода тек­ста в текстовое окно;
2) readln(b); — оператор ввода, программа останавливает­ся и ждет ввода с клавиатуры, введенное число появляется в тек­стовом окне и присваивается переменной b;
17
3) b:=b+random; оператор присваивания, добавляет к введенному числу случайную дробную часть;
4) writeln(’Получилось ,b); оператор вывода в
текстовое окно поясняющего текста и нового значения перемен­ной b.
Задание 5
1. Откройте программу My2a, запустите ее на исполнение, за­помните, как отображаются ввод и вывод данных.
2. Добавьте в программу подключение модуля CRT, аналогич­но примеру 3. Изучите ввод и вывод в текстовое окно. Назовите новую программу My3a и сохраните ее.
3. Вызовите из Основного меню Помощь — Примеры, ознакомьтесь с некоторыми возможностями подключаемых мо­дулей, запуская программы-примеры:
Модуль ABCObjects gr_MovingObjects.pas движение случайно сгенери-
рованных объектов.
Модуль GraphABC Brown_Moving.pas броуновское движение. Fractal_c.pas фракталы. Модуль VCL TrackBar.pas изменение цвета панели (модель RGB). Graph3D.pas визуализация трехмерных поверхностей.
6. Переменные символьного и строкового типа.
Операции с ними
В предыдущих разделах и примерах программ мы разобрали
работу с константами и переменными целого и вещественного типа. В ходе выполнения программы таким константам назна­чались, а переменным присваивались или вводились числен­ные значения. В языке Паскаль существуют и другие типы данных, в этом пункте мы рассмотрим два из них: символьный и строковый.
6.1. Все символы, которые можно использовать в Паскале, пронумерованы и сведены в специальную таблицу (кодовая таб- лица ASCII). В нее входят латинские и русские буквы, цифры,
18
знаки операций, скобки и специальные символы (например, зву­ковой сигнал или перевод строки). Всего символов 256, пронуме­рованы они от 0 до 255. С клавиатуры можно набрать многие символы из кодовой таблицы, но не все. К тем символам, кото­рых нет на клавиатуре, можно обратиться по их номеру в кодовой таблице.
6.2. Переменная символьного типа (их еще называют литера­ми или литерными переменными) имеет значение какого-либо одного символа из кодовой таблицы. Оператор описания сим­вольной переменной выглядит следующим образом:
a:char;
В одном операторе можно описать несколько символьных пе-
ременных:
a,b,c,d:char;
Оператор присваивания для символьной переменной строится
аналогично оператору присваивания целой или вещественной пе­ременной, возможны два варианта его организации:
1) справа от знака присваивания помещается сам символ в ка­вычках:
a:= x; b:= 4; c:= +;
2) справа от знака присваивания помещается специальный знак # и номер символа в кодовой таблице:
d:= #65;
Этим способом можно присвоить символьной переменной лю-
бой символ с клавиатуры, а также иные знаки из таблицы.
6.3. При вводе значения символьной переменной с помощью оператора ввода символ набирается на клавиатуре без кавычек. Оператор ввода выглядит совершенно так же, как для целой или вещественной переменной:
read(а);
При выводе символьной переменной с помощью оператора
вывода
write(а);
на экране появляется значение символьной переменной а, т. е. изо- бражение символа без кавычек (в нашем примере это символ х).
6.4. Переменная строкового типа имеет аналогичный смысл, что и символьная, с той разницей, что значение символьной пере-
19
a:string;
b:string[4];
Оператор описания строковой переменной неопределенной длины Оператор описания строковой переменной длиной четыре символа
менной — это один символ, а строковой — несколько символов подряд (в частности, один). При описании переменной строково­го типа возможны два варианта:
В первом случае описана строковая переменная a неопреде-
ленной длины, ее значением может стать введенная оператором read или присвоенная последовательность символов любой длины.
Во втором случае задана максимальная длина строки (в дан­ном случае — 4, но может быть любое натуральное число). Если в операторе присваивания или ввода переменной b будет назна­чен набор символов большей длины, чем задана в описаниии, то строка будет урезана до четырех первых символов:
b:=’ромашка’; переменной b присвоится значение ’рома’, так как в нашем примере при описании задана макси-
мальная длина строки b, равная четырем символам.
Если число символов меньше заданного при описании строковой
переменной, то дополнительных символов добавляться не будет.
6.5. Кроме строковых и символьных переменных можно на-
значать аналогичные константы, при этом набор символов справа от знака = помещается в кавычки:
a=x;
b=#65;
c=’Начало цикла’;
6.6. В Паскале существуют различные операции с символь-
ными и строковыми переменными. Мы разберем одну из них —
сложение строк.
Знаком операции сложения строк служит обычный знак +, а действие заключается в том, что к первой строке символов допи­сывают вторую. В этой строковой операции в качестве слагаемых могут участвовать символьные и строковые переменные, кон­станты и отдельные символы в кавычках:
20
a,b,c:string; . . . a:=’ро’ b:=’ман’ c:=a+b;
Описаны три строковые переменные произ­вольной длины Переменной a присваивается значение ро Переменной b присваивается значение
ман
Сумма двух строк будет строкой ’роман’, это значение присвоится переменной c
a:string[5]; . . . a:=’по’+’ливерпуль’;
Переменная описана как строка длиной пять символов Сумма двух строк будет строкой ’поливерпуль’, но она будет урезана до пяти символов. Строко­вой переменной a присвоится зна­чение полив
program My4; uses CRT; const a=’Маша’; var b:char; c,d:string; f:string[3]; begin write(’Введите сим- вол’); readln(b); c:=’Вася’; d:=a+b+c;
writeln(’получилось’,d); f:=#136; f:=f+c; writeln(’а теперь’,f); end.
Оператор назначения имени Блок подключения модуля Заголовок блока констант Оператор назначения константы Заголовок блока переменных Оператор описания переменной Оператор описания переменных Оператор описания переменной Заголовок блока операторов Оператор вывода
Оператор ввода Оператор присваивания Оператор присваивания
Оператор вывода Оператор присваивания Оператор присваивания Оператор вывода Конец программы
Если строковой переменной фиксированной длины присваива­ется более длинная строка символов, то она обрезается до задан­ной длины, например:
Пример 4:
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]