Категории раздела
|
|
|
Мини-флудилка
|
|
|
Статистика
|
Общее число человек: 1 Не зарегистированные: 1 Зарегистрированные: 0 |
|
Вход
|
|
|
|
Введение в Pascal;
Введение
- Язык программирования Pascal
был разработан в 1968-1971 гг. Николаусом
Виртом в Цюрихском Институте информатики.
-
Pascal является традиционным
алгоритмическим языком программирования,
продолжающим линию Algol-60.
Это значит, что программа представляет
собой специально организованную
последовательность шагов по преобразованию
данных, приводящую к решению некоторой
задачи.
Алфавит языка.
- Алфавит состоит из следующих символов:
-
Заглавные и строчные латинские буквы
и символ «подчерк». Внимание! Символ
«подчерк» считается буквой!
-
Десять арабских цифр
-
22 специальных символа: + - * / = <
> . , ; : @ ‘ ( ) [ ] { } # $ ^
Лексическая структура
языка
- Лексема – минимальная структура
языка, имеющая самостоятельный смысл.
-
Классы лексем:
-
Служебные слова (52 штуки) – неделимое
образование, смысл которого фиксирован
в языке. Их нельзя использовать в
качестве имен, вводимых программистом.
-
Идентификаторы (имена) – вводятся для
обозначения в программе переменных,
констант, типов, меток, процедур и
функций. Формируются из букв и цифр.
Цифра не может находиться в начале
идентификатора. Длина идентификатора
– не более 63 символов. Заглавные и
строчные символы – не различаются.
-
Комментарии – любой текст, поясняющий
назначение блоков и элементов программы,
заключенный в фигурные скобки "{" и
"}” или в разделители вида "(*” и ")”.
Структура программы.
- Program Name;
{заголовок программы}
Var -
{блок объявления переменных};
Begin -
{основной блок};
-
End.
-
Программа начинается служебным словом
Program, после которого
следует имя программы. Имя конструируется
из латинский букв и цифр. Русские буквы
не используются. Имя не может начинаться
с цифры. Максимальная длина имени – 63
символа.
-
Блок объявления переменных начинается
служебным словом Var. В
блоке указываются имена и типы всех
переменных, используемых в программе.
-
Основной блок начинается служебным
словом Begin и заканчивается
служебным словом End. Блок
содержит в себе команды обработки
величин.
Пример программы.
Program MyFirstProg;
Var
a,b : byte;
c : word;
Begin -
c:=a+b;
-
End.
Система типов языка.
Скалярные типы.
- Любая переменная характеризуется
своим типом. Тип – множество значений,
которые может принимать переменная и
множество операций, которые можно
выполнять над переменной.
Целые типы:
Название |
Диапазон значений |
Размер в памяти |
Shortint |
-128..128 |
1 байт |
Integer |
-32768..32767 |
2 байта |
Longint |
-2147483648..2147483647 |
4 байта |
Byte |
0..255 |
1 байт |
Word |
0..65538 |
2 байта |
Вещественные типы
Название |
Диапазон значений |
Число цифр мантиссы |
Размер в памяти |
Real |
2.9e-39..1.7e38 |
11-12 |
6 байт |
Single |
1.5e-45..3.4e38 |
7-8 |
4 байта |
Double |
5.0e-324..1.7e308 |
15-16 |
8 байт |
Extended |
3.4e-4932..1.1e4932 |
19-20 |
10 байт |
Comp |
-2e63..+2e63-1 |
|
8 байт |
Символьный тип
- Значениями символьного типа являются
символы из множества ASCII
(American Standard
Code For
Information Interchange
– американский стандартный код для
обмена информацией). Это множество
состоит из 256 различных символов,
упорядоченных определенным образом.
- Каждый символ имеет свой порядковый
номер
- Если символ имеет графическое
представление, то оно изображается в
одинарных кавычках (апострофах). Для
представления самого апострофа его
изображение удваивается. Если символ
графического представления не имеет,
то используется эквивалентная форма
записи, состоящая из символа ‘#’ (диез,
решетка) и целочисленного кода символа
от 0 до 255.
-
Например: ‘*’ ‘a’ ‘Z’
‘;’ #10 ‘’’’
-
Булевский тип
- Величина булевского типа может
принимать только одно из двух значений:
-
true (истина);
-
false (ложь)
-
Над величинами булевского типа допустимы
операции сравнения, причем считается,
что
-
true < false
Описание переменных
- В основном блоке программы можно
использовать только те переменные,
которые предварительно объявлены в
блоке Var.
-
Пример описания переменных:
Var
a : byte;
x,y,z : integer; -
index : 0..8;
S : char;
Sinus, Cosinus : real;
semaphore : ( opened, closed);
Описание типов
- Программист при необходимости может
конструировать собственные типы данных.
Новые типы описываются в блоке type,
расположенном сразу после заголовка
программы.
Ограниченные типы
- Самый простой способ создания нового
типа на основе уже существующего
является ограничение диапазона
допустимых значений стандартного
целого типа. Это ограничение определяется
заданием минимального и максимального
значений нового диапазона.
type
marks = 1..5;
diapason = -100..100;
letters = ‘a’..’z’;
Перечислимые типы
- Новый тип задается путем явного
перечисления всех возможных значений
из определенного диапазона.
type
color1 = (red, yellow, green);
color2 = (green, blue, gray); -
days = (Monday, Tuesday, Wednesday, Thursday,
Friday, Saturday, Sunday);
Регулярные типы
(массивы)
- Массив – набор некоторого количества
пронумерованных элементов одного типа.
-
Свойства массива:
-
имя – имя массива должно логически
соответствовать смыслу информации,
хранящейся в массиве;
-
количество элементов массива;
-
способ нумерования элементов массива;
-
тип элементов массива.
-
Массивы определяются в блоке TYPE.
type
massiv = array [1..100] of word;
m = array [0..2003] of real;
V1 = array [1..20,1..40] of char; -
Для обращения к элементам массива
необходимо указать имя массива и в
квадратных скобках после имени массива
индекс элемента массива.
massiv [22] := 125;
m [2000] := 345.21;
V1 [12,21] := ‘a’;
Оператор чтения (ввод)
- readln ( name
); -- считывает введенное с клавиатуры
значение и сохраняет его в переменной,
имя которой указано в круглых скобках.
readln (a);
readln (x,y,z);
readln (massiv[2]);
readln (V1[10,10]);
Оператор записи (вывод)
- writeln (‘строка текстовая’,
Name); -- выводит на экран
произвольный текст или значение
переменной величины. Если некоторый
текст заключен в кавычки, то он выводиться
на экран как есть. Если необходимо
вывеси на экран значение переменной,
то её имя указывается без кавычек.
-
writeln (‘Здравствуйте!’);
-
writeln (‘Значение N=’,N);
-
writeln
(massiv[3]);
Составной оператор
- Применяется в тех случаях, когда
синтаксис языка позволяет использовать
только один оператор, а по логике
программы необходимо использовать
несколько операторов. В таких случаях
несколько операторов просто заключаются
между служебными словами begin
и end и считаются одним
оператором.
-
begin {обмен значений
переменных A и B}
X:=A;
A:=B;
B:=Y;
end;
Условный оператор
- Условные операторы предназначены
для выбора к использованию одного из
двух возможных действий в зависимости
от некоторого условия.
- if
<условие>
-
then
<оператор1>
-
else
< оператор2>;
-
Линейные программы, в которых операторы
всегда следуют друг за другом, встречаются
очень редко. Обычно бывает необходимо
сделать так, чтоб программа могла
сделать выбор из нескольких вариантов
действий, чтоб программа могла
анализировать ситуацию.
-
Если условие выполняется, то выполняется
оператор, следующий за служебным словом
then, в противном
случае выполняется оператор, следующий
за служебным словом else.
-
Ветка else
может отсутствовать.
-
Например:
1) if X>Y
then Max:=X;
2) if X>Y
then Max:=X
else Max:=Y;
3) if X>Y
then begin
- Max:=X;
-
writeln (‘Первое число
больше’);
end
else begin
Max:=Y; -
writeln (‘Второе число
больше’);
-
end;
Оператор варианта
- Используется вместо обычного оператора
условия, если необходимо проанализировать
произвольное число альтернатив.
-
Предположим, необходимо выставить
оценку в зависимости от числа правильных
ответов тестируемого ученика.
case kol_pr_otv of
10: ocen := 5;
8..9: ocen := 4;
5..7: ocen := 3 -
else ocen := 2
end;
Оператор цикла с
предусловием
- Циклы – мощное и гибкое оружие
программиста, позволяющее компактно
и красиво реализовывать самые сложные
алгоритмы. Циклы просто незаменимы при
обработке больших массивов информации.
-
while
<условие> do
begin -
< тело цикла>;
-
end;
-
Этот структурный оператор задает
повторяющееся некоторое число раз
выполнение оператора, содержащегося
в нем. Перед каждым очередным выполнением
внутреннего оператора производится
проверка условия, служащего критерием
выхода из цикла. Если условие истинно,
то цикл повторяется, если условие ложно
– то выполнение цикла заканчивается.
while N>1000 do
begin
s:=s+M1[i]; -
i:=i+1
-
end;
Оператор цикла с
постусловием
repeat -
<тело цикла>
-
until
<условие окончания цикла>
-
- В отличие от предыдущего оператора
данный цикл обязательно повториться
хотя бы один раз. И цикл повторяется до
тех пор, пока условие окончания цикла
= false.
repeat
- writeln (‘Введите
число’);
readln (s);
process (s)
-
until (s<100)
or (s=2000)
-
Оператор цикла с
параметром
- Эту разновидность оператора цикла
удобно использовать, если число
повторений известно наперед. Кроме
того, циклы с параметром позволяют
задать автоматическое изменение
значения некоторой величины и использовать
эту величину в последовательных
итерациях.
-
for
<переменная цикла> := <начальное
значение> to
<конечное значение> do
-
<оператор>;
-
- for
<переменная цикла> := < конечное
значение > downto
< начальное значение > do
-
<оператор>;
-
- Данный вариант оператора цикла
определяет:
-
диапазон изменения значений управляющей
величины и, соответственно, число
повторений оператора, содержащегося
в теле цикла;
-
направление изменения значения
переменной (возрастание или убывание);
-
собственно действия, выполняемые на
каждой итерации (тело цикла).
- В теле цикла запрещается явное
изменение переменной цикла.
Подпрограммы
Современные программы очень
сложны и велики по размеру. Одному
человеку практически невозможно написать
программу самостоятельно от начала и
до конца. Современная программа
конструируется из отдельных блоков.
Каждый блок представляет собой структурно
независимую единицу – подпрограмму.
Подпрограмма – это часть программы,
оформленная в виде отдельной синтакстической
единицы и снабженная именем. По имени
подпрограммы ее и можно вызвать в
основной программе. По своей структуре
подпрограмма в точности соответствует
большой программе, то есть может содержать
в себе любой набор команд а так же может
содержать в себе собственный блок
определения переменных.
Подпрограммы-процедуры
- Procedure NameProc
( <формальные параметры>);
var -
<список локальных переменных>;
begin -
<тело подпрограммы>;
-
end;
Подпрограммы-функции
- Смысл функции заключается в задании
алгоритма вычисления некоторого
значения и организации передачи
вычисленного значения в точку вызова
функции.
-
Function NameFunction
( <формальные параметры>): <тип
результата>;
var -
<список локальных переменных>;
begin -
<тело подпрограммы>;
-
NameFunction:=<вычисленное
значение функции>;
end;
-
Графический режим
работы монитора.
- В графическом режиме экран
монитора понимается как набор точек.
Каждая точка имеет свои координаты и
набор свойств.
-
Команды
графического
режима
DetectGraph (var GraphDriver, GraphMode : integer);
InitGraph (var GraphDriver, GraphMode : integer;
PathToDriver : string); -
Bar
(x1,y1,x2,y2
: integer);
-- закрашенный прямоугольник;
Bar3D (x1,y1,x2,y2 : integer; Depth : word; Top :
boolean); -
ClearDevice;
-- очистка экрана;
Circle (X,Y : integer ; Radius : word); -
CloseGraph;
-- завершение графического режима;
-
GetBkColor
: word;
-- возвращает номер цвета фона;
-
GetColor
: word;
-- возвращает номер цвета линий;
GetFillPattern (var FillPattern : FillPatternType);
GetFillSettings (var FillInfo : FillSettingsType); -
GetGraphMode
: integer;
-- возвращает номер графического режима;
GetLineStyle (var LineInfo : LineSettingsStyle); -
GetMaxColor
: word;
--возвращает максимально возможное
значение, которое может быть использовано
командой SetColor;
-
GetMaxX :
integer;
-- возвращает максимально возможное
значение по оси Х;
-
GetMaxY :
integer;
-- возвращает максимально возможное
значение по оси Y;
-
GetPixel
(X,Y
: integer)
: word;
-- возвращает номер цвета пикселя в
точке с заданными координатами;
-
GetX :
integer;
-- возвращает текущее значение по оси
Х;
-
GetY :
integer;
-- возвращает текущее значение по оси
Y;
GraphErrorMsg (ErrorCode : integer) : string;
GraphResult : integer; -
Line (x1,y1,x2,y2 : integer); --
линия;
-
LineTo
(X,Y
: integer);
-- линия от точки с текущими координатами
к точке с указанными координатами;
-
MoveTo
(X,Y
: integer);
-- задание текущих координат;
OutText (TextString : string);
OutTextXY (X,Y : integer; TextString : string);
PutPixel (X,Y : integer; Pixel : word); -
Rectangle
(x1,y1,x2,y2
: integer);
-- незаполненный прямоугольник;
SetBkColor (Color : word);
SetColor (Color : word); -
SetFillPattern
(Pattern
: FillPatternType;
Color
: word);
-- устанавливает тип закраски, определенный
пользователем, и ее цвет.
- SetFillStyle
(Pattern
: word:
Color
: word);
-- устанавливает тип закраски (pattern)
и ее цвет (color);
SetLineStyle (LineStyle : word; Pattern : word;
Thickness : word); --
- Стиль линии
-
SolidLn |
0
|
DottedLn |
1
|
CenterLn |
2
|
DashedLn |
3
|
UserBitLn |
4 (User-defined line style)
|
- Ширина линии
-
- SetTextJustify
(Horiz,
Vert
: word);
устанавливает тип выравнивания текста;
-
SetTextStyle (Font : word; Direction
: word; Charsize : CharSizeType); устанавливает
характеристики
шрифта
в
графическом
режиме
(тип
шрифта.
направление,
размер);
-
Константа |
Величина |
Значение |
DefaultFont |
0 |
8x8
bit
mapped
font
|
TriplexFont |
1 |
Stroked font
|
SmallFont |
2 |
Stroked font
|
SansSerifFont |
3 |
Stroked font |
GothicFont |
4 |
Stroked font
|
HorizDir |
0 |
Orient left to right
|
VertDir |
1 |
Orient bottom to top
|
UserCharSize |
0 |
User-defined character size |
Файлы.
- В Паскале под файлом понимается
область памяти на внешнем запоминающем
устройстве. В этой области памяти можно
сохранять данные и при необходимости
извлекать данные из нее.
-
В программе файл понимается как
список, состоящий из некоторого числа
величин одного типа.
-
Переменная файлового типа
задается в блоке определения переменных:
Var
F : file of integer;
S1,S2 : file of string;
-
С каждой переменной файлового
типа связано понятие текущего указателя
файла. Текущий указатель можно понимать
как скрытую переменную, которая в каждый
момент времени указывает на какой-то
один элемент файла.
-
Все элементы файла считаются
пронумерованными и начальный элемент
имеет нулевой номер.
-
Элемент файла |
Элемент файла |
Элемент файла |
Элемент файла |
….. |
Элемент файла |
Элемент файла |
….. |
….. |
- Операции чтения из файла и
записи в файл производятся поэлементно,
причем в этих действиях учувствует тот
элемент файла, на который указывает в
данный момент времени текущий указатель.
-
Установочные и завершающие
операции:
-
Assign(F,’d:\bp\data’);
- устанавливает связь файловой переменной
с конкретным файлом, существующим на
диске.
-
Reset(F);
- открывает уже существующий файл;
-
Rewrite(F);
- создает файл. Если файл с таким именем
уже существует, то файл очищается.
-
Операции ввода-вывода:
-
Read
(F,N);
- считывает текущий элемент файла F
в величину N
-
Write
(F,N);
- записывает значение величины N
в текущий элемент файла F
- Операции перемещения по файлу
-
Seek
(F,P)
– перемещает указатель на элемент №P
в файле F;
-
FileSize(F)
– возвращает количество элементов
файла F;
-
FilePos(F)
– возвращает номер текущей позиции в
файле F.
-
Специальные операции
-
Erase(F)
– удаление файла;
-
Renme (F)
– переименование файла;
-
ChDir (F)
– изменение текущего каталога;
-
MkDir (F)
– создание нового каталога;
-
RmDir (F)
– удаление каталог.
Текстовый режим работы монитора
- В текстовом режиме экран
монитора понимается как матрица [80x25].
В каждую ячейку этой матрицы можно
поместить один какой-либо символ.
- Window
(X1,Y1,X2,Y2)
– создает окно с заданными размерами.
-
X1,Y1
– координаты левого верхнего угла;
-
X2,Y2
– координаты правого нижнего угла.
-
- TextBackGround (cb); - цвет
фона;
-
TextColor
(ct);
- цвет текста;
-
ClrScr;
-очистка экрана;
-
GoToXY
(x,y)
– перемещение
курсора в точку текущего окна с заданными
координатами.
-
Пример программы
-
Program
N1;
uses crt;
begin
textbackground (0);
clrscr;
window (20,6,60,17);
textbackground(blue);
textcolor (red);
clrscr;
gotoxy (6,3);
writeln (‘hello’); -
readln;
-
end.
-
Записи
- Записи – составной тип данных.
Если нужно сохранить в памяти
характеристики какого-либо одного
объекта и эти характеристики разного
типа, то используют записи.
-
Например, в программе необходимо
работать с характеристиками помещения
(длина, ширина, высота, кол-во окон, цвет
стен).
type
room = record
dlin : word;
shir : word; -
visota :
byte;
поля записи
kol_ok: byte;
color_s: string;
end;
var
R1,R2 : room; -
- Записи состоят из нескольких
полей. С каждым полем можно работать
отдельно. Для обращения к полям необходимо
указать имя записи и через точку имя
нужного поля.
-
R1.shir:=34;
R2.kol_ok:= R1.kol_ok+2;
R1. color_s:=’brown’; -
- Система программирования
Turbo
Pascal
7.0
-
Комбинации клавиш
-
Alt-F9
-- запуск процесса компиляции (проверка
ошибок);
-
Ctrl-F9
– выполнение программы;
-
Alt-F5
– просмотр результатов работы программы.
-
|
Категория: Уроки программирования на Pascal в Linux | Добавил: prepod (12.04.2010)
|
Просмотров: 1177
| Рейтинг: 5.0/2 |
Добавлять комментарии могут только зарегистрированные пользователи. [ Регистрация | Вход ]
|
|
|