Изучаем Turbo Pascal
Исследование основных понятий системы программирования Турбо Паскаль. Операторы языка Паскаль, его алфавит и словарь, процедуры и функции, массивы, строковые величины, а также графика в данной системе. Арифметические операции и стандартные функции.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 14.01.2011 |
Размер файла | 77,2 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Изучаем Turbo Pascal
Глава 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) имеют фиксированное написание и навсегда определенный смысл. Они не могут изменяться программистом и их нельзя использовать в качестве имен для обозначения величин.
Идентификатор - имя (identification - установление соответствия объекта некоторому набору символов). Для обозначения определенных разработчиками языка функций, констант и т.д. служат стандартные идентификаторы, например Sqr, Sqrt и т.д. В этом примере Sqr вызывает функцию, которая возводит в квадрат данное число, а Sqrt - корень квадратный из заданного числа. Пользователь может переопределить любой стандартный идентификатор, но чаще всего это приводит к ошибкам, поэтому на практике их используют без изменения. Идентификаторы пользователя - это те имена, которые дает сам программист. При записи программ нужно соблюдать общие правила написания идентификаторов:
· Идентификатор начинается только с буквы (исключение составляют специальные идентификаторы меток).
· Идентификатор может состоять из букв, цифр и знака подчеркивания.
· Максимальная длина - 127 символов.
· При написании идентификаторов можно использовать прописные и строчные буквы.
· Между двумя идентификаторами должен стоять хотя бы один пробел.
Некоторые зарезервированные слова версии Турбо Паскаль
Absolute |
Абсолютный |
Library |
Библиотека |
|
And |
Логическое И |
Mod |
Остаток от деления |
|
Array |
Массив |
Not |
Логическое НЕ |
|
Begin |
Начало блока |
Or |
Логическое ИЛИ |
|
Case |
Вариант |
Of |
Из |
|
Const |
Константа |
Object |
Объект |
|
Div |
Деление нацело |
Procedure |
Процедура |
|
Go to |
Переход на |
Program |
Программа |
|
Do |
Выполнять |
Repeat |
Повторять |
|
Downto |
Уменьшить до |
String |
Строка |
|
Else |
Иначе |
Then |
То |
|
End |
Конец блока |
To |
Увеличивая |
|
File |
Файл |
Type |
Тип |
|
For |
Для |
Until |
До |
|
Function |
Функция |
Uses |
Использовать |
|
If |
Если |
Var |
Переменная |
|
Interrupt |
Прерывание |
While |
Пока |
|
Interface |
Интерфейс |
With |
С |
|
Label |
Метка |
Xor |
Исключающее ИЛИ |
Таблица 1
Величины в Паскале
Решение задач на ПК - это процесс сбора, обработки и передачи информации. Поэтому задача любой программы состоит в обработке данных. В Паскале данные делятся на константы и переменные. Они определяются идентификаторами (именами).
Константами называются такие данные, которые не изменяются в процессе выполнения программы, в отличие от переменных, которые могут менять свои значения. Имя переменной подобно ящичку, который можно заполнить различными значениями, что нельзя сделать с константой. Переменная характеризуется именем, типом (см.1.2.) и значением.
Кроме констант и переменных существуют так называемые типизированные константы, которые являются как бы промежуточным звеном между переменными и константами (В данном пособии не рассматриваются. Рекомендуется дополнительная литература, например, [1]).
Структура программы
В программе программист записывает последовательность действий, выполняемых над определенными данными с помощью различных операций для реализации заданной цели. Основные требования, предъявляемые к программе:
· точность полученного результата;
· время выполнения;
· объем требуемой памяти (Максимальный размер программы ограничен. Компилятор позволяет обрабатывать программы, в которых объем данных и генерируемый машинный код не превышают 64 Кбайт каждый. Если объем программы требует большего количества памяти то необходимо использовать дополнительные средства).
Структура программы:
· Заголовок, состоящий из зарезервированного слова program и имени программы. Заголовок несет смысловую нагрузку и может отсутствовать, однако рекомендуется всегда его записывать для быстрого распознавания нужной программы.
· Программный блок, состоящий из 2 разделов:
1. Раздел описаний, в котором должны быть описаны все идентификаторы, встречающиеся в программе. Он представляет собой:
список имен подключаемых библиотечных модулей (определяется зарезервированным словом uses);
описание меток;
описание констант;
определение типов данных;
описание переменных;
описание процедур и функций;
Раздел описания начинается соответствующим каждому элементу списка служебным словом (таблица 1), после которого идет последовательность величин одного типа, разделенных запятой. После списка имен ставится двоеточие и указывается тип данных (см. 1.2.).
Любой элемент данного списка в программе может отсутствовать.
2. Раздел операторов.
Данный раздел начинается со служебного слова Begin и заканчивается служебным словом End. Далее задаются действия над объектами программы, введенными в разделе описаний. Операторы, посредством которых эти действия производятся, разделяются точкой с запятой. После последнего слова End ставится точка.
Для лучшего восприятия текста программы и поиска ошибок рекомендуется следующая схема:
· зарезервированные слова program, procedure, function и т.д. пишутся строчными буквами;
· идентификаторы начинаются с прописных букв;
· операторы записываются строчными буквами;
· логически подчиненные структуры записываются на 1 строку ниже и на 1- 2 позиции правее по отношению к более старшим.
Типы данных
При решении задач выполняется обработка информации различного свойства, например дробные и целые числа, слова, строки и т.д. Для описания множества допустимых значений величины и совокупности операций, в которых участвует данная величина, используется указание ее типа данных. Тип данных - это множество величин, объединенных определенной совокупностью допустимых операций. Каждый тип имеет свой диапазон значений и специальное зарезервированное слово для описания. Все типы данных можно разделить на две группы: скалярные (простые) и структурированные (составные). Простые типы данных также делятся на стандартные и пользовательские. Стандартные - предлагаются разработчиками Турбо Паскаля, а пользовательские разрабатывают сами программисты.
Представим типы данных в виде схемы:
1. Простые типы
· Порядковые типы
o Целые типы
o Логический тип
o Символьный тип
o Перечисляемый тип
o Интервальный тип
o Вещественные типы
· Ссылочный тип
2. Структурированные типы
Строковый тип
Регулярный тип
Комбинированный тип
Множественный тип
Файловый тип
3. Процедурные типы
В данном учебном пособии будут рассмотрены лишь основные типы данных, используемые наиболее часто в курсе учебного школьного программирования. С другими интересующими типами данных можно познакомиться в специальной литературе (например, [1] ). Рассмотрим пока лишь простые типы данных, структурированные типы требуют отдельного более тщательного рассмотрения и будут изучены в частях 4 и 5.
Целочисленные типы данных
Тип |
Диапазон |
Требуемая память (байт) |
|
Byte Shorint Integer Word Longint |
0…255 -128 …127 -32768 … 32767 0 … 65535 -2147483648 …2147483647 |
1 1 2 2 4 |
Значения целых типов могут изображаться в программе 2 способами: в десятичном виде и в шестнадцатеричном. Если число представлено в шестнадцатеричной системе, перед ним без пробела ставится знак $, а цифры старше 9 обозначаются латинскими буквами от A до F. Диапазон изменений таких чисел от $0000 до $FFFF .
Вещественные типы данных
Вещественные (действительные) типы данных представляют собой значения, которые используются в арифметических выражениях и могут быть представлены двумя способами: с фиксированной и с плавающей точкой.
Тип |
Диапазон |
Мантисса |
Требуемая память (байт) |
|
Real Single Double Extended Comp |
2.9*10E-39 … 1.7*10E38 1.5*10Е-45 … 3.4*10Е38 5.0*10Е-324 … 1.7*10Е308 1.9*10Е-4951 … 1.1*10Е4932 -2Е+63+1 … 2Е+63-1 |
11 - 12 7 - 8 15 - 16 19 - 20 10 - 20 |
6 4 8 10 8 |
Примечание. Все вещественные типы, кроме Real, могут быть использованы в программе при наличии в ПК математического сопроцессора Intel 8087/80287.
Действительные числа с фиксированной точкой записываются по обычным правилам арифметики, только целая часть от дробной отделяется точкой. Если точка отсутствует, число считается целым. Перед числом может стоять знак «+» или «-». Если знака нет, то число считается положительным.
Числа в форме с плавающей точкой представляются в экспоненциальном виде: mE+p, где m - мантисса (целое или дробное число), Е означает 10 в степени, р - порядок (целое число).
Например, 5.18Е+2 = 5.18 * 102 = 518
10Е-03 = 10 * 10 -3 = 0.01
Символьный тип
Литерный (символьный) тип char определяется множеством значений кодовой таблицы ПК. Каждому символу приписывается целое число в диапазоне от 0 до 255. Для кодировки используется код ASCII. Например код символа 'A' при русской раскладке клавиатуры будет равен 192
Логический тип
Логический (булевский) тип boolean определяется двумя значениями: true (истина) и false (ложь). Он применяется в логических выражениях и выражениях отношения. Для размещения в памяти - 1 байт.
Для размещения в памяти переменной литерного типа нужен 1 байт.
Арифметические операции и стандартные функции
Арифметическим называется выражение, составленное из операндов - величин, над которыми производится операция, скобок и знаков операций. В результате вычисления выражения получается значение определенного типа. Порядок вычисления выражения определяется скобками и старшинством операций. Они делятся на арифметические, отношения, логические и другие. Операции могут быть унарными и бинарными.
Арифметические операции
программирование турбо паскаль
Операция |
Действие |
Тип операндов |
Тип результата |
|
Бинарные |
||||
+ |
Сложение |
Целый, вещественный |
Целый, вещественный |
|
- |
Вычитание |
Целый, вещественный |
Целый, вещественный |
|
* |
Умножение |
Целый, вещественный |
Целый, вещественный |
|
/ |
Деление |
Целый, вещественный |
Вещественный |
|
DIV |
Целочисленное деление |
Целый |
Целый |
|
MOD |
Остаток от деления |
Целый |
Целый |
|
Унарные |
||||
+ |
Сохранение знака |
Целый, вещественный |
Целый, вещественный |
|
- |
Отрицание знака |
Целый, вещественный |
Целый, вещественный |
Операции отношения
Операции отношения выполняют сравнение двух операндов и определяют, истинно значение или ложно. Сравниваемые величины могут принадлежать к любому типу данных, и результат всегда имеет логический тип, принимая одно значение из двух: истина или ложь.
Операция |
Название |
Выражение |
|
= |
Равно |
А=В |
|
<> |
Неравно |
А<>B |
|
> |
Больше |
A>B |
|
< |
Меньше |
A<B |
|
>= |
Больше или равно |
A>=B |
|
<= |
Меньше или равно |
A<=B |
Стандартные математические функции
Обращение |
Тип аргумента |
Тип результата |
Функция |
|
Abs(x) |
Целый, вещественный |
Целый, вещественный |
Модуль аргумента |
|
Arctan(x) |
Целый, вещественный |
Вещественный |
Арктангенс |
|
Cos(x) |
Целый, вещественный |
Вещественный |
Косинус |
|
Exp(x) |
Целый, вещественный |
Вещественный |
ех - экпонента |
|
Frac(x) |
Целый, вещественный |
Вещественный |
Дробная часть х |
|
Int(x) |
Целый, вещественный |
Вещественный |
Целая часть х |
|
Ln(x) |
Целый, вещественный |
Вещественный |
Натуральный логарифм |
|
Random |
Вещественный |
Псевдослучайное число [0,1] |
||
Random(x) |
Целый |
Целый |
Псевдослучайное число [0,х] |
|
Round(x) |
Вещественный |
Целый |
Округление до ближайшего целого |
|
Sin(x) |
Целый, вещественный |
Вещественный |
Синус |
|
Sqr(x) |
Целый, вещественный |
Вещественный |
Квадрат х |
|
Sqrt(x) |
Целый, вещественный |
Вещественный |
Корень квадратный из х |
|
Trunc(x) |
Вещественный |
Целый |
Ближайшее целое, не превышающее х по модулю |
Логические операции
Логические выражения в результате вычисления принимают логические значения True и False. Операндами это выражения могут быть логические константы, переменные, отношения. Идентификатор логического типа в Паскале: boolean.
В Паскале имеется 4 логические операции: отрицание -NOT, логическое умножение -AND, логическое сложение - OR, исключающее «или» -XOR . Использованы обозначения: T - true, F - false.
A |
B |
Not A |
A and B |
A or B |
A xor B |
|
T |
T |
F |
T |
T |
F |
|
T |
F |
F |
F |
T |
T |
|
F |
F |
T |
F |
F |
F |
|
F |
T |
T |
F |
T |
T |
Приоритеты операций: not, and, or, xor. Операции отношения ( = , <> …) имеют более высокий приоритет, чем логические операции, поэтому их следует заключать в скобки при использовании по отношению к ним логических операций.
Пример. Составить программу, по которой будет выведено значение «истина», если точка с заданными координатами (x, y) лежит внутри некоторой области, и «ложь» - в противном случае. Область состоит из 2 частей: первая часть x 0; y -x-3 и y2 + x2 9, вторая часть - x 0 и x2 + y2 25.
Решение: Данная область состоит из 2 частей. 1: x<=0; x2+y2<=9; y>= - x-3.
2: x>=0; x2+y2<=25.
Точка с координатами (x,y) лежит в данной области, если она принадлежит 1 или 2 части.
Program point;
Var x, y:real; L:boolean;
Begin
Writeln(`Введите х и y');
Readln(x,y);
L:= (x<=0) and (sqr(x)+sqr(y)<=9) and (y>=-x-3) or
(x>=0) and (sqr(x)+sqr(y)<=25);
writeln(`Точка лежит в области?', L);
end.
Результатом выполнения программы будет:
Введите x и y
2 0 {с клавиатуры сами ввели через пробел 2 и 0}
Точка лежит в области?TRUE
Приоритет операций (в порядке убывания):
· вычисление функции;
· унарный минус, not;
· умножение, деление, div, mod, and;
· сложение, вычитание, or, xor;
· операции отношения
Ввод и вывод данных
Решение даже самой простой задачи на компьютере не обходится без операций ввода - вывода информации. Ввод данных - это передача информации от внешнего носителя в оперативную память для обработки. Вывод - обратный процесс, когда данные передаются после обработки из оперативной памяти на внешний носитель (экран монитора, принтер, дискету или винчестер и другие устройства). Выполнение этих операций производится путем обращения к стандартным процедурам: Read, Readln, Write, Writeln.
Ввод данных с клавиатуры
Процедура чтения Read обеспечивает ввод данных для последующей их обработки программой. Общий вид: Read (<список переменных>);
В списке перечисляются имена переменных. Значения этих переменных набираются через пробел на клавиатуре и высвечиваются на экране после запуска программы. После набора данных для одной процедуры Read нажимается клавиша ввода Enter. Значения переменных должны вводиться в строгом соответствии с синтаксисом языка Паскаль. Если соответствие нарушено, то возникают ошибки.
Процедура чтения Readln аналогична процедуре Read, единственное отличие в том, что после считывания последнего в списке значения курсор переходит на начало новой строки.
Пример:
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(<список вывода>);
В списке вывода могут быть представлены выражения допустимых типов данных (integer, real, char и т.д.) и произвольный текст, заключенный в апострофы.
Например, Write(`Привет'); Write(34.7); Write(45+55); Write(b, d);
Процедура Writeln аналогична процедуре Write. Отличие в том, что после вывода последнего в списке выражения курсор переходит на начало новой строки.
В процедурах вывода Write и Writeln имеется возможность записи выражения, определяющего ширину поля вывода.
При рассмотрении форматов вывода примем следующие обозначения:
I, p, q - целочисленное выражение;
R - выражение вещественного типа;
# - цифра;
* - знак «+» или «-»;
_ - пробел.
Значение I |
Выражение |
Результат |
|
324 |
Write (I); |
324 |
|
34 |
Write (I, I, I); |
343434 |
|
324 |
Write (I : 6); |
___324 |
|
312 |
Write (I + I : 7); |
____624 |
|
Значение R |
Выражение |
Результат |
|
123.432 |
Write (R); |
__1.2343200000E+02 |
|
-1.34E+01 |
Write (R); |
_ -1.3400000000E+01 |
|
304.55 |
Write (R :15); |
3.045500000E+02 |
|
Значение R |
Выражение |
Результат |
|
304.66 |
Write (R :8 : 4); |
304.6600 |
|
45.322 |
Write (R : 5 : 2); |
45.32 |
Пример:
Program primer;
Var
a, b, c, sum:integer;
begin
a:=4; b:=6; c:=55;
Write(a:3); Write(b:3); Write(c:3);
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. Операторы языка Паскаль
Общие сведения
Оператором называется предложение языка программирования, задающее полное описание некоторого действия, которое необходимо выполнить. Основная часть программы на языке Турбо Паскаль представляет собой последовательность операторов. Разделителем операторов служит точка с запятой. Операторы, не содержащие других операторов, называются простыми. К ним относятся операторы присваивания, безусловного перехода, вызова процедуры, пустой. Структурные операторы представляют собой конструкции, построенные из других операторов по строго определенным правилам. Эти операторы можно разделить на три группы: составные, условные и повтора.
Оператор присваивания
Оператором называется предложение языка программирования, задающее полное описание некоторого действия, которое необходимо выполнить. Основная часть программы на языке Турбо Паскаль представляет собой последовательность операторов. Разделителем операторов служит точка с запятой. Операторы, не содержащие других операторов, называются простыми. К ним относятся операторы присваивания, безусловного перехода, вызова процедуры, пустой. Структурные операторы представляют собой конструкции, построенные из других операторов по строго определенным правилам. Эти операторы можно разделить на три группы: составные, условные и повтора.
Оператор вызова процедуры
Оператор вызова процедуры служит для активизации стандартной процедуры или процедуры, определенной пользователем. Стандартные процедуры находятся в файлах, подключаемых модулем и для их использования достаточно указать имя процедуры, и если необходимо дополнительные параметры. Для того, чтобы вызвать свою процедуру, ее для этого надо описать перед началом программы (begin), а затем уже использовать.
Например, ClrScr; {Вызов стандартной процедуры очистки экрана}. Подробное рассмотрение данной темы приведено в части 3.
Оператор безусловного перехода
Оператор безусловного перехода (go to) означает «перейти к» и применяется в случаях, когда после выполнения некоторого оператора надо выполнить не следующий по порядку, а какой-либо другой, отмеченный меткой, оператор. Общий вид: go to <метка>.
Метка объявляется в разделе описания меток и состоит из имени и следующего за ним двоеточия. Имя метки может содержать цифровые и буквенные символы, максимальная длина имени ограничена 127 знаками. Раздел описания меток начинается зарезервированным словом Label, за которым следует имя метки.
Пример.
Program primer;
Label 999, metka;
Begin
….
Go to 999;
…
999: write (` Имя');
…
Go to metka;
….
Metka: write(`Фамилия');
…
end.
Использование безусловных передач управления в программе считается теоретически избыточным и подвергается критике, так как способствует созданию малопонятных и трудномодифицируемых программ, которые вызывают сложности при отладке. Поэтому рекомендуется минимальное использование оператора безусловного перехода с соблюдением следующих правил:
· Следует стремиться применять операторы перехода для передачи управления только вниз (вперед) по тексту программы;
· Расстояние между меткой и оператором перехода на нее не должно превышать одной страницы текста (или высоты экрана дисплея).
Пустой оператор
Пустой оператор не содержит никаких символов и не выполняет никаких действий. Используется для организации перехода к концу блока в случаях, если необходимо пропустить несколько операторов, но не выходить из блока. Для этого перед зарезервированным словом end ставятся метка и двоеточие, например:
Label m;
…
begin
…
go to m;
…
m:
end;
Структурные операторы
Структурные операторы представляют собой конструкции, построенные из других операторов по строгим правилам. Их можно разделить на три группы: составные, условные и повтора. Применение структурных операторов в вашей программе очень часто просто незаменимо, потому что они позволяют программисту сделать его программу зависимой от каких-либо условий, например введенных пользователем. К тому же применяя операторы повтора вы получаете возможность обрабатывать большие объемы данных за сравнительно малый отрезок времени (это конечно же зависит и от процессора:)
Составной оператор
Это оператор представляет собой совокупность произвольного числа операторов, отделенных друг от друга точкой с запятой, и ограниченную операторными скобками begin и end. Он воспринимается как единое целое и может находиться в любом месте программы, где возможно наличие оператора.
Условные операторы
Условные операторы предназначены для выбора к исполнению одного из возможных действий, в зависимости от некоторого условия (при этом одно из действий может отсутствовать). Для программирования ветвящихся алгоритмов в Турбо Паскале есть специальные операторы. Одним из них является условный оператор If. Это одно из самых популярных средств, изменяющих порядок выполнения операторов программы.
Он может принимать одну из форм:
If <условие> then <оператор1>
else<оператор2>;
или
If <условие> then <оператор>;
Оператор выполняется следующим образом. Сначала вычисляется выражение, записанное в условии. В результате его вычисление получается значение логического (булевского) типа. Если это значение - «истина», то выполняется оператор1, указанный после слова then. Если же в результате имеем «ложь», то выполняется оператор2. В случае, если вместо оператора1 или оператора2 следует серия операторов, то эту серию операторов необходимо заключить в операторные скобки begin…end.
Обратить внимание, что перед словом else точка с запятой не ставится.
Пример 1. Составить программу, которая запрашивает возраст ребенка и затем выдает решение о приеме ребенка в школу (возраст 7лет).
Program sh;
Var v: integer;
Begin
Write(`Введите возраст ребенка');
Readln(v);
If v>=7 then writeln(`Принимаем в школу')
else writeln (`Не принимаем в школу');
end.
Задание. Модифицировать данную программу, чтобы ограничить верхнюю границу приема в школу 16 годами.
Решение:
Program sh;
Var v: integer;
Begin
Write(`Введите возраст ребенка');
Readln(v);
If (v>=7) and (v<=16) then writeln(`Принимаем в школу')
else writeln (`Не принимаем в школу');
end.
Пример 2. Даны два числа. Меньшее из этих чисел заменить суммой данных чисел, большее - произведением.
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 обеспечивает выбор из двух альтернатив, то существует оператор, который позволяет сделать выбор из произвольного числа вариантов. Это оператор выбора Case. Он организует переход на один из нескольких вариантов действий в зависимости от значения выражения, называемого селектором.
Общий вид: 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;
Пример 1. Составить программу, которая по введенному номеру дня недели выводит на экран его название.
Program days;
Var day:byte;
Begin
Write(`Введите номер дня недели');
Readln(day);
Case day of
1: writeln(`Понедельник');
2: writeln(`Вторник');
3: writeln(`Среда');
4: writeln(`Четверг');
5: writeln(`Пятница');
6: writeln(`Суббота');
7: writeln(`Воскресенье')
else writeln(`Такого дня нет');
end; end.
Пример 2. Составить программу, которая по введенному номеру месяца выводит на экран название времени года.
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.
Операторы повтора (цикла)
Если в программе возникает необходимость неоднократного выполнения некоторых операторов, то для этого используются операторы повтора (цикла). В языке Паскаль различают три вида операторов цикла: цикл с предусловием (while), цикл с постусловием (repeat) и цикл с параметром (for).
Если число требуемых повторений заранее известно, то используется оператор, называемый оператором цикла с параметром.
Оператор цикла с параметром имеет два варианта записи:
1) for <имя переменной> := <начальное значение> to <конечное значение> do
<тело цикла>
2) for <имя переменной> := <начальное значение> downto <конечное значение> do
<тело цикла>
Имя переменной - параметр цикла, простая переменная целого типа; <тело цикла> - операторы или оператор. Цикл повторяется до тех пор пока значение параметра лежит в интервале между начальным и конечным значениями. В первом варианте при каждом повторении цикла значение параметра увеличивается на 1, во втором - уменьшается на 1.
При первом обращении к оператору for вначале определяются начальное и конечное значения, и присваивается параметру цикла начальное значение. После этого циклически повторяются следующие действия.
1. Проверяется условие параметр цикла <= конечному значению.
2. Если условие выполнено, то оператор продолжает работу (выполняется оператор в теле цикла), если условие не выполнено, то оператор завершает работу и управление в программе передается на оператор, следующий за циклом.
3. Значение параметра изменяется (увеличивается на 1 или уменьшается на 1).
Если в теле цикла располагается более одного оператора, то они заключаются в операторные скобки begin … end;
Пример 1. Вывести на экран таблицу перевода из градусов по шкале Цельсия в градусы по Фаренгейту для значений от 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. Вывести на экран натуральные числа от 1 до 9 в обратном порядке.
Program z;
Var i:integer;
Begin
For i:=9 downto 1 do
Writeln(i);
End.
Если число повторений заранее неизвестно, а задано лишь условие его повторения (или окончания), то используются операторы while и repeat. Оператор While часто называют оператором цикла с предусловием. Так как проверка условия выполнения цикла производится в самом начале оператора.
Общий вид:
While <условие продолжения повторений> do
<тело цикла>;
Тело цикла - простой или составной оператор или операторы. Если операторов в теле цикла несколько, то тело цикла заключается в операторные скобки begin…end.
Перед каждым выполнением тела цикла вычисляется значение выражения условия. Если результат - «истина», тело цикла выполняется и снова вычисляется выражение условия. Если результат-«ложь», происходят выход из цикла и переход к первому после while оператору.
Пример. Найти сумму 10 произвольных чисел.
Program z;
Const
N=10;
Var k, x, s: integer;
Begin
k:=0; s:=0; {k- количество введенных чисел}
while k < n do
begin
k:=k+1;
write(`Введите число');
readln(x);
s:=s+x;
end;
writeln(`Сумма чисел равна', s);
end.
Оператор цикла repeat аналогичен оператору while, но отличается от него, во-первых, тем, что условие проверяется после очередного выполнения операторов тела цикла и таким образом гарантируется хотя бы однократное выполнение цикла. Во-вторых, тем, что критерием прекращения цикла является равенство выражения константе true . За это данный оператор часто называют циклом с постусловием, так как он прекращает выполняться, как только условие, записанное после слова until, выполнится. Оператор цикла repeat состоит из заголовка, тела и условия окончания.
Общий вид:
Repeat
<оператор>
. . . . .
<оператор>
until <условие окончания цикла>
Вначале выполняется тело цикла, затем проверяется условие выхода из цикла. В любом случае этот цикл выполняется хотя бы один раз. Если условие не выполняется, т.е. результатом выражения является False, то цикл активизируется еще раз. Если условие выполнено, то происходит выход из цикла. Использования операторных скобок, в случае, если тело цикла состоит из нескольких операторов, не требуется.
Пример. Составить программу, которая вводит и суммирует целые числа. Если введено значение 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.
Глава 3. Процедуры и функции
Стандартные библиотечные модули
В систему Турбо Паскаль версии 6.0. и старше включены 8 модулей: System, Crt, Dos, Graph, Graph3, Overlay, Printer, Turbo3 и специализированная библиотека Turbo Vision. Модуль System подключается по умолчанию, поэтому в любой программе становятся доступными все его встроенные процедуры и функции (см главу 1.3.). Остальные модули должны подключаться с помощью зарезервированного слова uses с добавлением имени модуля. Например: uses Crt.
Рассмотрим кратко назначение каждого модуля.
System - сердце Турбо Паскаля. Подпрограммы, содержащиеся в нем, обеспечивают работу всех остальных модулей системы.
Crt - содержит средства управления дисплеем и клавиатурой компьютера.
Dos - включает средства, позволяющие реализовывать различные функции Dos.
Graph3 - поддерживает использование стандартных графических подпрограмм.
Overlay - содержит средства организации специальных оверлейных программ.
Printer - обеспечивает быстрый доступ к принтеру.
Turbo3 - обеспечивает максимальную совместимость с версией Турбо Паскаль 3.0.
Graph - содержит пакет графических средств.
Turbo Vision - библиотека объектно-ориентированных программ для разработки пользовательских интерфейсов.
На примере модуля Crt познакомимся поближе с работой встроенных процедур и функций. Он устанавливает режим работы адаптера дисплея, организует вывод в буфер экрана, регулирует яркость свечения символов и т.д. С момента подключения пользователю доступны все содержащиеся в нем стандартные средства. Рассмотрим некоторые из них.
§ Установка текстового режима
TextMode(Mode:integer);
Значение Mode равно 1 (40 / 25) или 3(80 / 25).
§ Очистка экрана
ClrScr - полностью очищает экран;
ClrEol - стирает все символы в строке, начиная с текущей позиции до конца строки;
§ Управление курсором
GotoXY(x,y) - перемещает курсор в позицию, заданную координатами x, y.
§ Управление цветом
TextColor(Color:byte) - установка цвета выводимых символов;
TextBackGround(Color) - цвет фона.
Чтобы добавить при выводе эффект мерцания, при установке цвета указывается Blink (16).
Пример. Вывести в центре экрана цветными символами слово «Привет» с эффектом мерцания.
Program primer;
Uses crt;
Begin
TextMode(3);
Clrscr;
Gotoxy(36,12);
Textcolor(5+16);
Write(`Привет');
Процедуры
Для использования подпрограммы-процедуры необходимо сначала описать процедуру, а затем обращаться к ней (обращение к процедуре - отдельный оператор). Описание процедуры включает заголовок (имя) и тело процедуры. Заголовок состоит из зарезервированного слова procedure, имени процедуры и, заключенного в скобки, списка формальных параметров с указанием типа. Название «формальные» эти параметры получили в связи с тем, что в этом списке заданы только имена для обозначения исходных данных и результатов работы процедуры, а при вызове подпрограммы на их место будут поставлены конкретные значения. Тело процедуры - блок, по структуре аналогичный программе.
При создании программ, использующих процедуры, следует учитывать, что все объекты, которые описываются после заголовка в теле процедуры, называются локальными объектами и доступны только в пределах этой процедуры.
Все объекты, описанные в вызывающей программе, называются глобальными и являются доступными внутри процедур, вызываемых этой программой.
Общий вид описания процедуры:
Procedure <имя> (список формальных параметров, блок описания);
Const …;
… блок описания
Var ….;
begin
<операторы>
end;
Пример 1. Вывести по четырем углам экрана свое имя цветными буквами, можно с эффектом мерцания.
Program names;
Uses crt;
Procedure name(x, y, c: byte, );
Begin
Gotoxy (x, y);
Textcolor(c); {textcolor (c+16);}
Write(`Имя');
end;
begin
Clrscr; {очистка экрана}
name (2,2, 14);
name (2, 22, 8);
name (75,2, 3);
name (75, 22, 5);
End.
Пример 2. Найти наибольшее из четырех чисел, используя подпрограмму нахождения наибольшего из двух чисел.
Program max;
Uses crt;
Var a, b, c, d, m, p, q:real;
Procedure Bd(x,y:real, var z: real);
Begin
If x>y then z:=x
else z:=y;
end;
begin
Clrscr; {очистка экрана}
Write(`Введите числа');
Readln(a,b,c,d);
Bd (a, b, p);
Bd (c, d, q);
Bd (p, q, m);
Writeln(`наибольший элемент', m:8:3);
End.
nd.
Функции
Подпрограмма-функция обрабатывает данные, переданные ей из главной программы, и затем возвращает полученный результат (в отличие от процедуры). Функция, определенная пользователем, состоит из заголовка и тела функции. Заголовок содержит зарезервированное слово Function, имя, список формальных параметров (заключенный в скобки) и тип возвращаемого функцией значения. Тело функции представляет собой локальный блок, по структуре сходный с программой. Общий вид описания функции:
Function <имя> (<параметры>): <тип результата>;
Const …;
… блок описания
Var ….;
begin
<операторы>
end;
В разделе операторов должен находиться, хотя бы один оператор, присваивающий имени функции значение. Обращение к функции осуществляется по имени с указанием списка аргументов. Каждый аргумент должен соответствовать формальным параметрам и иметь тот же тип.
Пример 1. Найти значение следующего выражения: F(t) - F(c), где F(x)=x +2x2 +3x
Program m;
Uses crt;
Var t, c, r : real;
Function F(x: real) : real;
Begin
F:= sqrt(x)+ 2*sqr(x) + 3*x;
End;
Begin
Clrscr;
Write(`Введите числа');
Readln (t, c);
r:= F(t) - F(c);
write(`результат =', r:8:3); {8 символов на все число, 3 - на дробную часть, см п.1.4.2}
end.
Пример 2. Найти наибольшее из четырех чисел, используя подпрограмму нахождения наибольшего из двух чисел.
Program max;
Uses crt;
Var a, b, c, d, m, p, q:real;
Function Bid(x, y: real) : real;
Begin
If x>y then bid:=x
else bid:=y;
End;
Begin
Clrscr;
Write(`Введите числа');
Readln (a, b, c, d);
p:=bid(a, b);
q:= bid(c, d);
m:=bid(p, q);
write(`наибольший элемент', m:8:3);
end.
Глава 4. Массивы
Одномерные массивы
Все простые типы данных, рассматриваемые ранее, имеют два характерных свойства: неделимость и упорядоченность их значений. Составные, или структурированные, типы данных задают множество сложных значений с одним общим именем. Существует несколько методов структурирования, каждый из которых отличается способом обращения к отдельным компонентам. В данном учебном пособии будут рассмотрены только два структурированных типа данных: регулярный тип (массивы) и строковый тип (часть 5).
С понятием «массив» приходится встречаться при решении научно-технических, экономических задач обработки большого количества однотипных значений.
Таким образом, массив - это упорядоченная последовательность данных, состоящая из фиксированного числа элементов, имеющих один и тот же тип, и обозначаемая одним именем.
Название регулярный тип массивы получили за то, что в них объединены однородные элементы, упорядоченные (урегулированные) по индексам, определяющим положение каждого элементы в массиве.
Массиву присваивается имя, посредством которого можно ссылаться на него, как на единое целое. Элементы, образующие массив, упорядочены так, что каждому элементу соответствует совокупность номеров (индексов), определяющих его место в общей последовательности. Индексы представляют собой выражения простого типа. Доступ к каждому отдельному элементу осуществляется обращением к имени массива с указанием индекса нужного элемента: <имя массива>[<индекс>].
Описание массива определяет его имя, размер массива и тип данных. Общий вид описания массива:
Type <имя нового типа данных>=array[<тип индекса>] of <тип компонентов>;
Далее, в перечне переменных указывается имя массива, и через двоеточие указывается имя нового типа данных. Массив может быть описан и без представления типа в разделе описания типов данных:
Var <имя массива>: array [<тип индекса>] of <тип компонентов>;
Чаще всего в качестве типа индекса используется интервальный целый тип.
Одномерные массивы
Линейный (одномерный) массив - массив, у которого в описании задан только один индекс, если два индекса - то это двумерный массив и т.д. Одномерные массивы часто называют векторами, т.е. они представляют собой конечную последовательность пронумерованных элементов.
Присваивание начальных значений (заполнение массива) заключается в присваивании каждому элементу массива некоторого значения, заданного типа. Наиболее эффективно эта операция осуществляется при помощи оператора for. Ввод данных может осуществляться : с клавиатуры, при помощи различных формул, в том числе и датчика случайных чисел.
Индексированные элементы массива называются индексированными переменными и могут быть использованы так же, как и простые переменные. Например, они могут находиться в выражениях в качестве операндов, им можно присваивать любые значения, соответствующие их типу и т.д.
Алгоритм решения задач с использованием массивов:
? Описание массива
? Заполнение массива
? Вывод (распечатка) массива
? Выполнение условий задачи
? Вывод результата
Пример 1. Задан одномерный массив В(10), заполненный произвольным образом. Подсчитать количество элементов массива, больших заданного числа k.
Program massiv;
Uses crt;
Var b:array [1..10] of integer;
I, k, s : integer;
Begin
Clrscr; S:=0;
For i:=1 to 10 do
Begin
Write(`Введите', i, `-й элемент массива ');
Readln (B[i]);
Write(b[i], ` `);
End;
Write(`Введите число k');
Readln(k);
For i:=1 to 10 do
If b[i]>k then s:=s+1;
Write(`Количество элементов', s);
End.
Пример 2. Определить самую высокую температуру и самый теплый день в мае.
Program massiv;
Uses crt;
Var t:array [1..31] of integer;
I, max, n : integer;
Begin
Clrscr;
For i:=1 to 31 do
Begin
t[i]:=random(20);
Write(b[i], ` `);
End;
Max:=t[1]; n:=1;
For i:=2 to 31 do
Begin
If t[i] > max then max:=t[i]; n:=i ;
End;
Write(`максимальная температура', max, `в', n, `день');
End.
Двумерные массивы
Двумерный массив - структура данных, хранящая прямоугольную матрицу. В матрице каждый элемент определяется номером строки и номером столбца, на пересечении которых он расположен. В Паскале двумерный массив представляется массивом, элементами которого являются одномерные массивы. Два следующих описания двумерных массивов тождественны:
Var a: array [1..10] of array [1.. 20] of real;
Var a: array [1..10, 1..20] of real;
Чаще всего при описании двумерного массива используют второй способ. Доступ к каждому отдельному элементу осуществляется обращением к имени массива с указанием индексов (первый индекс - номер строки, второй индекс - номер столбца). Все действия над элементами двумерного массива идентичны действиям над элементами линейного массива. Только для инициализации двумерного массива используется вложенный цикл for.
Например, For i:= 1 to 10 do
For j:= 1 to 20 do
A[i, j] := 0;
При организации вложенных (сложных) циклов необходимо учитывать:
? Все правила, присущие простому циклу, должны соблюдаться
? Имена параметров для циклов, вложенных один в другой, должны быть различными
? Внутренний цикл должен полностью входить в тело внешнего цикла. Пересечение циклов недопустимо
Пример 1. Сформировать таблицу Пифагора (таблица умножения) и вывести ее на экран.
Program Pifagor;
Uses crt;
Var p: array[1..9, 1..9] of integer; i, j:integer;
Begin
Clrscr;
for i:=1 to 9 do
for j:= 1 to 9 do
p[i,j]:= i*j;
for i:=1 to 9 do
begin
for j:=1 to 9 do
write(p[i,j], ` `);
writeln
end;
end.
Пример 2. Задан двумерный массив В(10, 10), заполненный случайными числами из [-10,10]. Найти и вывести на экран те элементы массива, которые больше заданного числа k.
Program massiv;
Uses crt;
Var b: array[1..10, 1..10] of integer; i, j, k :integer;
Begin
Clrscr;
for i:=1 to 10 do
begin
for j:= 1 to 10 do
begin
b [i,j]:= random(20)-10;
write(b[i,j], ` `);
end;
writeln;
end;
write(`Введите число k');
readln (k);
For i:=1 to 10 do
For j:=1 to 10 do
If b[i, j] >k then write (b[i, j]);
End.
Глава 5. Строковые величины
Символьные величины
Литерный (символьный) тип char определяется множеством значений кодовой таблицы ПК. Каждому символу задается целое число от 0 до 255. В программе значения переменных и констант типа char должны быть заключены в апострофы.
Пример.
Program lit;
Var c, symbol: char;
Begin
C:= `A';
Symbol:='д';
Writeln(c);
Write(symbol);
End.
Результат выполнения программы:
А
д
Над данными символьного типа определены операции отношения: =, <>, >,<,<=,>=, вырабатывающие результат логического типа, и следующие стандартные функции:
Chr(x) - преобразует выражение х в символ и возвращает значение символа
Ord(ch) - преобразует символ ch в его код и возвращает значение кода
Pred(ch) - возвращает предыдущий символ
Succ(ch) - возвращает следующий символ
Пример.
Ord(`:') =58
Ord(`A')=65
Chr(128)=Б
Pred(`Б')=А
Succ(`Г')=Д
Строковые величины
Строка (строковый тип данных) - это последовательность символов кодовой таблицы ПК. Количество символов в строке (длина строки) может лежать в диапазоне от 0 до 255. Для определения данных строкового типа используется идентификатор string, за которым следует значение максимальной длины строки данного типа (заключается в квадратные скобки).
Строковые данные могут использоваться в качестве констант. Строковая константа - последовательность символов, заключенная в апострофы. Например, `237', `это строковая константа'.
Переменную строкового типа можно определить в разделе описания переменных:
Var <имя>: string[<максимальная длина строки>].
Например, var Name: string[20]. В описании строки можно не указывать длину, в этом случае она равна максимальной величине - 255. Элементы строки определяются именем строки с индексом, заключенным в квадратные скобки. Например, N[5]. Первый символ строки имеет номер 1 и т.д. Можно сказать, что строка представляет собой одномерный массив, элементами которого являются символы. Тип string и тип char совместимы, они могут употребляться в одних и тех же выражениях.
Выражения, в которых операндами служат строковые данные, называются строковыми. Они могут состоять из строковых констант, переменных, знаков операций. Над этими данными допустимы операция сцепления (конкатенация) и операции отношения.
Операция сцепления (+) применяется для соединения нескольких строк в одну строку. Сцеплять можно и константы, и переменные. Длина результирующей строки не должна превышать 255 символов.
Операции отношения (=, <>, >, <, <=, >=) проводят сравнение двух строк и имеют приоритет более низкий, чем операция конкатенации. Сравнение строк производится слева направо до первого несовпадающего символа. Строка считается больше, если в ней первый несовпадающий символ имеет больший номер в таблице кодов.
Например, `MS-DOS'<'MS-Dos'.
Если строки имеют различную длину, но в общей части символы совпадают, то более короткая строка меньше.
Например, `Компьютер'<'Компьютер '.
Строки равны, если они полностью совпадают.
Например, `Маска' = 'Маска'.
Для обработки строковых данных можно использовать специальные процедуры и функции.
Процедура Delete(St, poz, n) - удаление n символов строки St, начиная с позиции Poz.
Пример
Значение St |
Выражение |
Результат |
|
`абвгде' |
Delete(St, 4, 2); |
`абве' |
|
`река Волга' |
Delete(St, 1, 5); |
`Волга' |
Процедура Insert (S1, S2, Poz) - вставка строки S1 в строку S2, начиная с позиции Poz.
Пример
Значение S1 |
Значение S2 |
Оператор |
Результат |
|
` ЕС ' |
`ЭВМ1841' |
Insert (S1, S2, 4); |
`ЭВМ ЕС 1841' |
|
` N' |
` Рис. 2' |
Insert (S1, S2 , 6); |
` Рис. N2' |
Процедура Str(N,St) - преобразование числового значения N в строковый и помещение результата в строку St.
Пример
Значение N |
Выражение |
Результат |
|
1500 |
Str (N:6,St); |
` 1500' |
Процедура Val(St, N,Code) - преобразует значение St в величину целочисленного или вещественного типа и помещает результат в N. Code - целочисленная переменная. Если во время операции преобразования ошибки не обнаружено, значение Code равно 0, если же обнаружена ошибка, то Code будет содержать номер позиции первого ошибочного символа, а значение N не определено.
Пример
Значение St |
Выражение |
Результат |
|
`1500' |
Val(St, N,Code); |
Code=0 |
|
'14.2A+02 |
Val(St, N,Code); |
Code=5 |
Функция Copy(S, Poz, N) - выделяет из строки S подстроку длиной N символов, начиная с позиции Poz.
Пример
Значение S |
Выражение |
Результат |
|
`Мама мыла раму' |
Copy(S, 6, 4); |
`мыла' |
Функция Concat(S1,S2,…,Sn) - выполняет сцепление строк S1,S2,…,Sn в одну строку.
Пример
Выражение |
Результат |
|
Concat(`Мама ','мыла ','раму') |
`Мама мыла раму' |
Функция Length(S) - определяет текущую длину строки S.
Пример
Значение S |
Выражение |
Результат |
|
`1500 символов' |
Length(S) |
13 |
Функция Pos(S1,S2) - определяет первое появление в строке S2 подстроки S1.
Пример
Значение S2 |
Выражение |
Результат |
|
`abcdef' |
Pos(`cd',S2) |
3 |
|
`abcdef' |
Pos(`k',S2) |
0 |
Функция UpCase (ch) - преобразует строчную букву в прописную.Обрабатывает буквы только латинского алфавита.
Пример
Значение Ch |
Выражение |
Результат |
|
`d' |
UpCase (ch) |
`D' |
Пример. Из данной символьной строки выбрать все цифры и сформировать другую строку из этих цифр, сохранив их последовательность.
Program Stroki;
Var S1, S2:string;
Begin
Write(`Введите строку');
Readln(S1);
S2:= ` `;
For i:=1 to length(S1) do
If (S1[i]>='0') and (S1[i]<='9')
Then S2:=S2+S1[i];
Writeln(`Результат', S2)
End.
Глава 6. Графика в системе Турбо Паскаль
Графика в Турбо Паскале
Экран дисплея ПК представляет собой прямоугольное поле, состоящее из большого количества точек. Дисплей может работать в текстовом и графическом режимах. Но в отличие от текстового режима в графическом режиме имеется возможность изменять цвет каждой точки.
Чтобы сделать процесс графического программирования более эффективным, фирма Borland International разработала специализированную библиотеку Graph (в этом библиотечном модуле содержится 79 графических процедур, функций, различных стандартных констант и типов данных), набор драйверов, позволяющих работать с разными типами мониторов, и набор шрифтов для вывода на графический экран текстов разной величины и формы.
Подобные документы
Основные сведения о системе программирования Турбо Паскаль. Структура программы на Паскале и ее компоненты. Особенности и элементы языка Турбо Паскаль. Порядок выполнения операций в арифметическом выражении, стандартные функции и оператор присваивания.
лекция [55,7 K], добавлен 21.05.2009Особенности программирования на языке Паскаль в среде Турбо Паскаль. Линейные алгоритмы, процедуры и функции. Структура данных: массивы, строки, записи. Модульное программирование, прямая и косвенная рекурсия. Бинарный поиск, организация списков.
отчет по практике [913,8 K], добавлен 21.07.2012Программирование на языке Паскаль: алфавит, решение задач, простейшие программы, разветвляющие программы, циклические программы, ввод-вывод, массивы, подпрограммы, строковые данные, записи, файлы, использование библиотеки CRT, графика в Паскале.
учебное пособие [211,1 K], добавлен 30.03.2008Общая характеристика языка программирования Турбо Паскаль: операторы, циклы, файлы. Процедуры и функции модуля Crt. Структурная и функциональная схема программы учета учащихся, таблица идентификаторов. Список и описание использованных подпрограмм.
курсовая работа [702,9 K], добавлен 29.01.2011Лингвистическая концепция языка Паскаль. Интегрированная инструментальная оболочка. Основы построения программ на ТП 7.0. Алфавит языка и специфика использования символов. Простые типы данных: константы и переменные. Циклические конструкции и операции.
курсовая работа [284,6 K], добавлен 02.07.2011Особенности использования графического режима в среде Турбо Паскаль. Типы драйверов. Инициализация графики. Построение изображения на экране. Графические примитивы и работа с текстом. Разработка и реализация программ в среде Турбо Паскаль "Графика".
курсовая работа [1,2 M], добавлен 26.09.2014История и основы структурного программирования в среде Turbo Pascal. Работа с различными типами данных. Операторы языка. Работа с символьными и строковыми переменами, одномерным, двумерным массивами. Классификация компьютерных игр. Игры на языке Паскаль.
курсовая работа [28,8 K], добавлен 06.05.2014Логические конструкции в системе программирования Паскаль. Команды языка программирования, использование функций, процедур. Постановка и решение задач механики в среде системы Паскаль. Задачи статики, кинематики, динамики решаемые с помощью языка Паскаль.
курсовая работа [290,9 K], добавлен 05.12.2008Линейная программа на Паскаль, примеры составления алгоритмов вычисления и обмена значений переменных. Программа с ветвлениями и циклическая программа, массивы, процедуры и функции, файловые данные и записи в Паскале, строки, графика в Турбо-Паскале.
отчет по практике [99,8 K], добавлен 20.07.2010Алгоритмы и алфавит языка Турбо Паскаль. Основные типы данных. Операторы присваивания, перехода и выбора. Понятие массива в Паскале. Особенности работы со строками в программе. Использование линейного поиска и поиска с барьером. Основные виды сортировок.
учебное пособие [53,2 K], добавлен 09.11.2009