Turbo Pascal, страница 6
Описание файла
Документ из архива "Turbo Pascal", который расположен в категории "". Всё это находится в предмете "информатика" из 3 семестр, которые можно найти в файловом архиве МАИ. Не смотря на прямую связь этого архива с МАИ, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "информатика" в общих файлах.
Онлайн просмотр документа "Turbo Pascal"
Текст 6 страницы из документа "Turbo Pascal"
Пример
Значение 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.
Графика в Турбо Паскале
Экран дисплея ПК представляет собой прямоугольное поле, состоящее из большого количества точек. Дисплей может работать в текстовом и графическом режимах. Но в отличие от текстового режима в графическом режиме имеется возможность изменять цвет каждой точки.
Чтобы сделать процесс графического программирования более эффективным, фирма Borland International разработала специализированную библиотеку Graph (в этом библиотечном модуле содержится 79 графических процедур, функций, различных стандартных констант и типов данных), набор драйверов, позволяющих работать с разными типами мониторов, и набор шрифтов для вывода на графический экран текстов разной величины и формы.
Аппаратная поддержка графики ПК обеспечивается двумя основными модулями: видеомонитором и видеоадаптером. Какой бы адаптер ни был установлен на компьютере, мы можем использовать один и тот же набор графических процедур и функций Турбо Паскаля благодаря тому, что их конечная настройка на конкретный адаптер осуществляется автоматически. Эту настройку выполняют графические драйверы.
Запуск и завершение работы в графической системе осуществляется следующим образом:
1. Подключить модуль Graph (библиотеку графических процедур): normal">uses Graph;
2. Установить графический режим:
- описываем переменные, которые определяют графический драйвер и монитор:
var gd, gm: integer;
- задаем команду ПК для самовыбора значений переменных:
gd:=Detect;(значение gm после команды gd:=detect; определяется автоматически)
- инициализируем графический режим:
InitGraph( gd, gm,’ указывается путь к драйверу, чем подробнее, тем лучше’)
С этого момента все графические средства доступны пользователю.
3. Завершить работу в графической системе: CloseGraph;
Базовые процедуры и функции
Для построения изображений на экране используется система координат. Отсчет начинается от верхнего левого угла экрана, который имеет координаты (0,0). Значение Х (столбец) увеличивается слева направо, значение Y (строка) увеличивается сверху вниз. Чтобы строить изображения, необходимо указывать точку начала вывода. В текстовых режимах эту точку указывает курсор, который присутствует на экране. В графических режимах видимого курсора нет, но есть невидимый текущий указатель CP (Current Pointer). Фактически это тот же курсор, но он невидим.
Процедуры модуля Graph
Процедура | Формат | Действие |
SetColor | SetColor (a: word); | Устанавливает цвет, которым будет осуществляться рисование |
SetBkColor | SetBkColor (a: word); | Устанавливает цвет фона |
SetFillStyle | SetFillStyle (a,b: word); a – стиль закраски, b – цвет | Устанавливает стиль и цвет закраски |
SetLineStyle | SetLineStyle (a,b,c: word); а – стиль линии, b- образец построения линии (может устанавливаться пользователем), с-толщина линии | Устанавливает стиль и толщину линии |
SetTextStyle | SetTextStyle (a,b,c: word); | Устанавливает шрифт, стиль и размер текста |
SetFillPattern | SetFillPattern (Pattern: FillpatternType; Color:word); Pattern- маска | Выбирает шаблон заполнения, определенный пользователем |
ClearDivice | ClearDivice | Очищает экран и устанавливает текущий указатель в начало |
SetViewPort | SetViewPort (x1, y1 , x2, y2 : integer, Clip:boolean); | Устанавливает текущее окно для графического вывода |
ClearViewPort | ClearViewPort | Очищает окно |
PutPixel | PutPixel (a,b,c :integer); | Рисует точку цветом с в (x,y) |
Line | Line(x1, y1 , x2,y2 :integer); | Рисует линию от (x1, y1) к (x2,y2) |
Rectangle | Rectangle (x1, y1 , x2, y2:integer ); | Рисует прямоугольник с диагональю от (x1, y1) к (x2, y2) |
Bar | Bar (x1, y1 , x2, y2:integer); | Рисует закрашенный прямоугольник |
Bar3D | Bar3D (x1, y1 , x2,y2, d:integer, a:boolean); | Рисует трехмерную полосу (параллелепипед) |
Circle | Circle (x,y,r: word); | Рисует окружность радиуса r с центром в точке (x, y) |
Arc | Arc(x, y, a, b, R:integer); a, b- начальный и конечный углы в градусах | Рисует дугу из начального угла к конечному, используя (x,y) как центр |
Ellipse | Ellipse (x, y, a, b, Rx, Ry: integer); a, b- начальный и конечный углы в градусах | Рисует эллиптическую дугу от начального угла к конечному, используя (x, y) как центр |
FillEllipse | FillEllipse (x, y, Rx, Ry:integer); Rx, Ry – вертикальная и горизонтальная оси | Рисует закрашенный эллипс |
MoveTo | MoveTo (x, y:integer); | Передвигает текущий указатель в (x, y) |
MoveRel | MoveRel(x, y : integer); | Передвигает текущий указатель на заданное расстояние от текущей позиции на x по горизонтали и на y по вертикали |
OutText | OutText (text: string); | Выводит текст от текущего указателя |
OutTextxy | OutTextxy(x, y: integer, text: string); | Выводит текст из (x, y) |
Sector | Sector(x, y, a, b, Rx, Ry: integer); a, b- начальный и конечный углы в градусах | Рисует и заполняет сектор эллипса |
Функции модуля Graph
GetBkColor | Возвращает текущий фоновый цвет |
GetColor | Возвращает текущий цвет |
GetX | Возвращает координату X текущей позиции |
GetY | Возвращает координату Y текущей позиции |
GetPixel | Возвращает цвет точки в (x, y) |
Экран и окно в графическом режиме
По аналогии с текстовыми режимами графический экран может рассматриваться как одно большое или несколько меньших по размеру окон. После установки окна вся остальная площадь экрана как бы не существует, и весь ввод-вывод осуществляется только через окно. В каждый отдельный момент может быть активным только одно окно. Если окон несколько, за переключение ввода-вывода в нужное окно отвечает программист.