Лабораторная работа №1 цель работы: ознакомиться и научиться работать с файлами в среде Турбо Паскаля. Работа с файлами



Скачать 252.57 Kb.
Дата26.07.2014
Размер252.57 Kb.
ТипЛабораторная работа
Лабораторная работа №1
цель работы: ознакомиться и научиться работать с файлами в среде Турбо Паскаля.
Работа с файлами.

Под файлом понимается либо именованная область внешней памяти ПК (жёсткого диска,гибкой дискеты, электронного «виртуального» диска), либо логическое устройства- потенциальный источник или приёмник информации.

Любой файл имеет три характерные особенности. Во-первых, у него есть имя, что даёт возможность программе работать одновременно с несколькими файлами. Во-вторых, он содержит компоненты одного типа. Типом компонентов может быть любой тип Турбо Паскаля, кроме файлов. Иными словами, нельзя создать «файл файлов». В-третьих, длина вновь создаваемого файла никак не оговаривается при его объявлении и ограничивается только ёмкостью устройств внешней памяти.

Файловые типы или переменную файлового типа можно задать одним из трёх способов:



  • <имя> = FILE OF <тип>;

  • <имя> = TEXT;

  • <имя> = FILE;

В зависимости от способа объявления можно выделить три вида файлов:

  • типизированные файлы (задаются предложением FILE OF...);

  • текстовые файлы (определяются типом TEXT);

  • не типизированные файлы (определяются типом FILE);

Вид файла, определяет способ хранения информации в файле. Однако в Турбо Паскале нет средств контроля вида ранее созданных файлов. При объявлении уже существующих файлов программист должен сам следить за соответствием вида объявления характеру файла.

Доступ к файлам.

Любой программе доступны два предварительно объявленных файла со стандартными файловыми переменными: INPUT-для чтения данных с клавиатуры и OUTPUT-для вывода на экран. Стандартный Паскаль требует обязательного упоминания этих файлов в заголовке программы.

В Турбо Паскале это необязательно, вот почему заголовок программы можно опускать.

Имя файла.

Имя файла – это любое выражение строкового типа, которое строится по правилам определения имён в MS-DOS (операционной системе ПК):



  • имя содержит до восьми разрешённых символов; разрешённые символы -это прописные и строчные латинские буквы, цифры и символы:! @ # $ & ( ) ' -

  • имя начинается с любого разрешённого символа;

  • за именем может следовать расширение – последовательность до трёх разрешённых символов; расширение, если оно есть, отделяется от имени точкой.

Перед именем может указываться так называемый путь к файлу: имя диска и/или имя текущего каталога и имена каталогов вышестоящих уровней.

За именем диска может указываться имя каталога, содержащего файл. Если имени каталога предшествует обратная косая черта, то путь к файлу начинается из корневого каталога, если черты нет – из текущего каталога, установленного в системе по умолчанию.

За именем каталога может следовать одно или несколько имён каталогов нижнего уровня. Каждому из них должна предшествовать обратная косая черта. Весь путь к файлу отделяется от имени файла обратной косой чертой. Максимальная длина имени вместе с путём – 79 символов.



Логические устройства.

Стандартные аппаратные средства ПК, такие как клавиатура, экран дисплея, печатающее устройство (принтер) и коммуникационные каналы ввода-вывода, определяются в Турбо Паскале специальными именами, которые называются логическими устройствами. Все они В Турбо Паскале рассматриваются как потенциальные источники или приёмники информации. Связывание логического устройства с файловой переменной осуществляется процедурой ASSIGN.

Турбо Паскаль никогда не связывает имена логических устройств с дисковыми файлами, в этом смысле эти имена можно считать зарезервированными. Иными словами, нельзя,например, обратиться к дисковому файлу с именем PRN, т. к. Турбо Паскаль всегда интерпретирует такой запрос, как обращение к принтеру.

Инициация файла.

Инициировать файл означает указать для этого файла направление передачи данных. В Турбо Паскале можно открыть файл для чтения и записи одновременно.

Для чтения файл инициируется с помощью стандартной процедуры RESET. Стандартная процедура REWRITE инициирует записи информации в файл или в логическое устройство, связанное ранее с файловой переменной. Процедурой REWRITE нельзя инициировать запись информации в ранее существовавший дисковый файл: при выполнении этой процедуры старый файл уничтожается и никаких сообщений об этом в программу не передаётся. Стандартная процедура APPEND инициирует запись в ранее существовавший текстовый файл для его расширения, при этом указатель файла устанавливается в его конец. Процедура применима только к текстовым файлам. Процедурой APPEND нельзя инициировать запись в типизированный или не типизированный файл. Если текстовый файл ранее уже был открыт с помощью RESET или REWRITE, использование процедуры APPEND приведёт к закрытию этого файла и открытию его вновь, но уже дл добавления записей.

Текстовые файлы.

Текстовые файлы связываются с файловыми переменными, принадлежащими стандартному типу TEXT. Текстовые файлы предназначены для хранения текстовой информации. Именно в такого типа файлах хранятся, например, исходные тексты программ. Компоненты (записи) текстового файла могут иметь переменную длину, что существенно влияет на характер работы с ними. Текстовый файл трактуется в Турбо Паскале, как совокупность строк переменной длины. Доступ к каждой строке возможен лишь последовательно, начиная с первой. При создании текстового файла в конце каждой записи (строки) специальный признак EOLN, а в конце файла – признак EOF. Эти признаки можно протестировать одноимёнными логическими функциями.



Вывод: мы научились работать с файлами в среде Турбо Паскаля.

Программа 1

Program AAA;

f = file of integer;

var


A: array [1..7] of integer;

i:integer;

begin

assign (f,'too.txt');



rewrite ( f );

reset ( f );

writeln ('vvedite massiv');

for i: = 1 to 7 do readln (A [ i ]);

begin

if (A [ i ]/2)<> liht (A [ i ]/2) then



A [ i ]: = 0;

end;


writeln ('massiv')

for i: = 1 to 7 do

begin

writeln (A [ i ]);



reset ( f );

writeln (f, A[ i ]);

close ( f );

end;


readln;

end.


Лабораторная работа №2

цель работы: ознакомиться с основными процедурами и функциями модулей Crt и Graph.

Использование модуля Crt.

Модуль Crt содержит ряд подпрограмм, предоставляющих возможность программам, работающим под DOS, эффективно управлять такими характеристиками ПК, как режимы экрана, расширенные коды клавиатуры, цвета, окна и звуковые сигналы. Модуль Crt может использоваться только в программах, работающих на персональных компьютерах IBM PC или полностью совместимых с ними.

Одним из основных преимуществ использования модуля Crt является повышение скорости и гибкости при выполнении операций работы с экраном. Программы, не работающие с модулем Crt, выводят на экран информацию с помощью средств операционной системы DOS, что связано с дополнительными операциями, замедляющими вывод. При использовании модуля Crt выводимая информация посылается базовой системе ввода – вывода (BIOS) или, для ещё большего ускорения операций, непосредственно в видеопамять.

Чтобы использовать модуль Crt, его имя нужно указать в операторе USES:

USES CRT;

При инициализации модуля Crt, для того чтобы можно было обращаться к процедурам и функциям модуля, вместо стандартных файлов ввода вывода DOS назначаются стандартные входные выходные текстовые файлы. Такое назначение осуществляется выполнением в начале программы следующих операторов:



AssignCrt (Input); Reset (Input);

AssignCrt (Output); Rewrite (output);

эти операторы выполняются автоматически при подключении модуля Crt и указывают, что переназначение входных и выходных файлов далее не допускается до тех пор, пока для них не будет выполнено обратного переназначения и не произойдёт переход с помощью операторов:



Assing (Input ,' '); Reset (Input);

Assing (Output,' '); Rewrite (output);

Сама процедура AssignCrt определена в модуле Crt .


В режиме текстового вывода используются следующие координаты экрана: левый верхний угол экрана имеет координаты 1,1; горизонтальная координата возрастает слева направо, вертикальная – сверху вниз. Если на экране определено окно, все координаты определяются относительно границ окна. Исключением являются координаты процедуры Window установки границ окна, которые всегда задаются относительно границ экрана. Для чтения клавиатуры используются две функции – KeyPressed и ReadKey. Функция KeyPressed определяет факт нажатия на любую клавишу и не приостанавливает дальнейшее исполнение программы. Функция KeyPressed читает расширеный код нажатой клавиши. Если к моменту обращения к функции не была нажата ни одна клавиша, программа приостанавливает свою работу, ожидая действий пользователя.

Управление звуковым генератором строится по схеме Sound – Delay – NoSound. Процедура Sound включает звуковой генератор и заставляет его непрерывно генерировать звук нужного тона. Процедура Delay приостанавливает работу программы на заданное число миллисекунд реального времени. Процедура NoSound отключает звуковой генератор.




Переменные модуля Crt.

В модуле Crt определён ряд констант и переменных, предназначенных для управления экраном, клавиатурой, цветом и др.



Список переменных модуля:

Переменная

Тип

Описание

ChecmkBreak

BOOLEAN

Разрешает или запрещает использование комбинации клавиш [Ctrl+Break] для прерывания работы программы

CheckEOF

BOOLEAN

Разрешает или запрещает использование признака конца файла

CheckSnow

BOOLEAN

Разрешает или запрещает проверку на «снег».

DirectVideo

BOOLEAN

Разрешает или запрещает прямой доступ к видеопамяти для процедур Writeln и Write

LastMode

WORD

При каждом вызове процедуры TextBMode сохраняет текущий видеорежим

TextAttr

BYTE

Содержит текущие цветовые атрибуты текста

WindMin

WORD

Содержит координаты верхнего левого угла текущего окна

WindMax

WORD

Содержит координаты нижнего правого угла текущего окна


Константы режима работы.

BW 40 = 0; {чёрно – белый, 40 символов, 25 строк}

BW 80 = 2;{чёрно – белый, 80 х 25}

Mono = 7; {Монохромный, 80 х 25}

CO40 = 1; {Цветной, 40 х 25}

CO80 = 3; {Цветной, 80 х 25}

Font8x8 = 256; {Для EGA / VGA режим 43 или 50 строк}

C40 = CO40; {Для совместимости с версией 3.0}

C80 = CO80; {Для совместимости с версией 3.0}


Использование модуля GRAPH.

Модуль Graph представляет собой мощную библиотеку графических подпрограмм универсального назначения, расчитанную на работу с наиболее распространёнными графическими адаптерами IBM – совместимых ПК. Подпрограммы модуля Graph обеспечивают различные режимы работы многорежимных адаптеров, полностью используют их цветовые возможности и разрешающую способность.

При исполнении графических программ требуется автономный драйвер графического адаптера (BGI – файл). Если программа использует штриховые шрифты, то кроме того нужен один или несколько шрифтовых файлов (CHR – файлов). При необходимости драйвер и шрифты могут быть включены в тело программы ещё на этапе компиляции.

Графические драйверы поддерживают следующие графические адаптеры (и полностью совместимые с ними):




CGA

Hercules

MCGA

AT&T 400

EGA

3270 PC

VGA

IBM - 8514

Для поддержки этих аппаратных средств используются следующие драйверы:




CGA.BGI

Драйвер для CGA,MCGA

EGAVGA.BGI

Драйвер для EGA, VGA

HERC.BGI

Драйвер для монохромного Hercules

ATT.BGI

Драйвер для AT&T 6300 (400)

PC3270.BGI

Драйвер для IBM 3270 PC

IBM8514.BGI

Драйвер для IBM 8514

Во время выполнения программы процедура InitGraph автоматически распознаёт графический адаптер, установленный на ПК, загружает и инициализирует соответствующий графический драйвер, переводит адаптер в графический режим и возвращает управление вызывающей программе. Процедура CloseGraph выгружает драйвер из памяти и восстанавливает текстовый режим работы адаптера.

Подпрограммы модуля Graph позволяют адресоваться к любому элементу (пикселю) растрового графического экрана и управлять светимостью этого элемента. Для указания пикселя используется следующая система координат: верхний левый угол графического экрана имеет координаты 0,0; горизонтальная координата X увеличивается слева направо, вертикальная координата Y увеличивается сверху вниз.

Некоторые графические подпрограммы используют понятие текущего указателя. Указатель содержит координаты того пикселя, начиная с которого будет строиться изображение подпрограммами LineTO, LineRel, OutText и др. В этом смысле указатель подобен текстовому курсору, но, в отличии от него, не имеет видимого изображения на экране.

Для вывода текстовых сообщений на графический экран модуль Graph предоставляет один матричный и 4 штриховых шрифтов. Каждый символ матричного шрифта на экране реализуется в виде матрицы из 8х8 пикселей. Штриховые шрифты для каждого символа определяют набор штрихов (векторов), с помощью которых на экране создаётся (вычерчивается) соответствующий символ. Штриховые шрифты позволяют изменять размеры текстовых надписей в широких пределах без существенного ухудшения качества изображения символов. Однако стандартные штриховые шрифты не содержат символы кириллицы.

В модуле Graph имеется несколько процедур для рисования элементарных графических фигур – точек, линий, окружностей, дуг и т. п. При необходимости замкнутые фигуры могут быть закрашены различными цветами и стилями.

Процедура SetViewPort создаёт на экране графическое окно. Если окно определенно, весь дальнейший графический вывод осуществляется относительно координат этого окна и отсекает его границами.

В модуле имеются средства сохранения и выдачи изображений, работы с несколькими графическими страницами, установки необходимых цветов.



Вывод: мы ознакомились с основными процедурами и функциями модулей Crt и GRAPH, а также научились их применять в программах.

Программа №2

program uuu;

uses crt,graph;

var graphdriver,graphmode:integer;i:word;x,y:real;

begin


clrscr;

graphdriver:=detect;

initgraph(graphdriver,graphmode,'c:\bp\bgi');

setbkcolor(1);

SetColor(14);

line(54,45,54,360);

line(54,360,560,360);

SetColor(13);

line(47,55,54,45);

line(54,45,61,55);

SetColor(2);

line(550,355,560,360);

line(550,365,560,360);

For i:=0 to 48 do line (i*10+64,355,i*10+64,365);

For i:=0 to 29 do line (50,i*10+60,58,i*10+60);

readln;


end.

Лабораторная работа №3

Построение графиков математических функций.

Цель работы: изучить принципы построения графиков математических функций.

Рассмотрим математические процедуры и функции, встроенные в системную библиотеку ТП 7.0. Список всех этих процедур и функций, а также краткое их описание приведены ниже.



Математические функции.

Abs(X):


Возвращает абсолютное значение числа X.

Cos(X):


Возвращает косинус числаX, где X – угол в радианах.

Sin(X):


Возвращает синус угла X, где X – угол в радианах.

Arctan(X):

Возвращает арктангенс числа X, где X – угол в радианах.

Exp(X):


Возвращает число, равное е в степени X.

Ln(X):


Возвращает число, равное логарифму натуральному от числа X.

Pi:


Число Пи

Sqr(X):


Возвращает число, равное квадрату X.

Sqrt(X)


Возвращает число, равное корню квадратному из X.

Trunc(X):

Возвращает число, равное целой части числа X (округление происходит путём отбрасывания дробной части числа X; усечённое число имеет тип данных LongInt).

Frac(X):


Возвращает число, равное дробной части числа X.

Int(X):


Возвращает число, равное целой части числа X.

Round(X):

Возвращает число, равное целой части числа X(округление происходит по правилам математики, т. е. К ближайшему целому; округленное число имеет тип данных LongInt).

Random(X):

Возвращает случайное число от 0 до X(функция Random(X) может быть задана без аргумента (Random). Вэтом случае будут генерироваться случайные числа от 0 до 1).

Примечание: используя математические процедуры или функции в ТП – программах, помните, что их аргументами могут быть только целые или вещественные числа.

Примечание: функция Int преобразует действительное число не в число типа целое, а в действительное число с целочисленным значением.
Вывод: мы ознакомились и научились строить графики математических функций на языке Паскаль.

Программа №3
program uuu;

uses crt,graph;

var graphdriver,graphmode:integer;i:word;x,y:real;

begin


clrscr;

graphdriver:=detect;

initgraph(graphdriver,graphmode,'c:\bp\bgi');

setbkcolor(1);

SetColor(14);

line(54,45,54,360);

line(54,360,560,360);

SetColor(13);

line(47,55,54,45);

line(54,45,61,55);

SetColor(2);

line(550,355,560,360);

line(550,365,560,360);

For i:=0 to 48 do line (i*10+64,355,i*10+64,365);

For i:=0 to 29 do line (50,i*10+60,58,i*10+60);

Outtextxy(50,364,'0');

SetFillStyle(1,10);

SetColor(6);

Circle(320,245,35);

floodfill(320,245,6);

Bar3D (120,235,453,235,333,true);

SetColor(17);

Arc(112,134,45,30,123);

SetColor(13);

SetFillStyle(2,7);

FillEllipse(223,134,136,85);

FillEllipse(223,134,75,150);

SetFillStyle(1,4);

FillEllipse(185,95,22,11);

FillEllipse(261,95,22,11);

Outtextxy(65,73,'gumanoid');

readln;


end.

Лабораторная работа №4
Интерфейсная часть

Интерфейсная часть открывается зарезервированным словом INTERFACE. В этой части содержатся объявления всех глобальных объектов модуля (типов, констант, переменных и подпрограмм), которые должны стать доступными основной программе и / или другим модулям. При объявлении глобальных подпрограмм в интерфейсной части указывается только их заголовок.

Если в основной программе написать предложение

Uses Cmplx;

то в программе станут доступными тип COMPLEX и две прцедуры - ADD MULC из модуля CMPLX.
Отметим, что объявление подпрограммы в интерфейсной части автоматически сопровождается их компиляцией с использованием дальней модели памяти. Таким образом обеспечивается доступ к подпрограммам из основной программы и других модулей.

Следует учесть, что все константы и переменные, объявленные в интерфейсной части модуля, равно как и глобальные константы и переменные основной программы, помещаются компилятором Турбо Паскаля в общий сегмент данных . Порядок появления различных разделов объявлений и их количество может быть произвольным. Если в интерфейсной части объявляются внешние подпрограммы или подпрограммы в машинных кодах, их тела (т. е. Зарезервированное слово EXTERNAL,в первом случае, и машинные коды вместе со словом INLINE – во втором) должны следовать сразу за их заголовками в исполняемой части модулей нельзя использовать опережающее описание



Программа №4

Program GA

uses crt, graph;

label nachalo;

var GraphDriver, GraphMode: Integer;

n:byte;


m:byte;ch:char;

i,c:byte;

e:integer; S,St:string;

R: array [1..54,1..50] of shortint;

Begin

GraphDriver: = Detect;



InitGraph (GraphDriver, GraphMode,'');

nachalo;


SetBKcolor (1);

setFillStyle (1,8); setcolor (9); textcolor (15);


bar (0,0,639,479); SetFillstyle (1,1);

Bar (100,20,539,200);

rectangle (100,20, 539,200);Setcolor (15);

Settextstyle (1,0,1);

OuttextXY (120,40, «vvedite razmernost matric»);

outtextxy (150,75,'n=');

gotoxy ?(27,6);readln (n);

outtextxy (150,90,'m= ');

gotoxy (27,7); readln(m);

outtextxy (200,120, 'Nagmite probel');

repeat;

ch:=readkey;



until ch =#32;

setbkcolor (2); setcolor (10); textcolor (3);

setFillstyle (1,8);

bar (0,0,639,479);

setFillstyle (1,2);

Bar (110,30,539,170);

rectangle (110,30,339,170);

settextstyle (3,0,1); setcolor (15);

outtextxy (120,40, 'Gelaete vvodit rucami?');

outtextxy (120,65, 'yes-A no-B');

writeln ('A- yes B- no');

repeat


ch: = readkey;

until (ch ='A') or (ch ='B') or (ch= 'a') or (ch ='b');

if (ch =' a') or (ch= 'A') then

begin


bar (110,30,539,170); rectangle (110,30,539,170);

settextstyle (12,0,1); setcolor(14);

outtextxy (120,40,'vvedite elementi:');

textcolor (12);

For i:=1 to m do

for c:=1 to n do

begin

str (i,s); str(c,st);



S:='f ['+s+','+st+']=';

outtextxy (40+c*80,67+i*16,s]; Gotoxy (23+(c-1)*10,5+i);

Readln (R[i,c]); end;

readln;end;

if (ch = 'b') or (ch = 'B') then

begin


bar (110,31,540,170);

rectangle (110,31,540,170);

settextstyle (10,0,1);

setcolor (8);

outtextxy (120,40, 'sluchainii massiv:');

setcolor (15);

textcolor(1);

for i:=1 to m do

for c: = 1 to n do

R [i,c]:=random (250)-125;

for i:=1 to m do

for c:=1 to n do

begin

str (i,s);str(c,st);



s:='f ['+s+','+st+']='; str(r[i,c],st);

s:=s+st; outtextxy (40+c*100,67+i*16,s);end;

end; readln; setFillstyle (1,2);

Bar (110,30,539,170);rectangle (110,30,539,170);

settextstyle (3,0,1);

setcolor (15); outtextxy (120,40,'Gelaete Povtorit?');

outtextxy (120,65,'yes- C no- D');

writeln ('c-yes D-no');

repeat

ch:=readkey;until(ch='C')or (ch:='D')or (ch='c') or (ch:='d');



if (ch:='C')or (ch:='c') then

Goto nachalo; CloseGraph;

end.

Лабораторная работа №5

Ознакомление со средой Delphi.

Цель работы: Приобрести практические навыки в работе с объектно – ориентированной средой программирования Delphi 4.
Визуально среда Delphi реализуется несколькими одновременно раскрытыми на экране окнами. Окна могут перемещаться по экрану, частично или полностью перекрывая друг друга. После запуска Delphi на экране появятся четыре наиболее важных окна: главное окно (оно имеет заголовок Delphi 4 – имя проекта), окно инспектора объектов и окно кода программы (имя). Слева в окне кода располагается вспомогательное окно браузера , с помощью которого можно просматривать структуру всех объявлений в окне кода.

Обычно после загрузки окно формы закрывает собой окно кода программы. Для того чтобы увидеть окно кода программы надо нажать F12, ещё одно нажатие эту клавишу показывает окно формы. Можно также в ручную изменить размеры этих окон, чтобы они были видны оба.



Главное окно:

Главное окно осуществляет основные функции управления проектом создаваемой программы. В главном окне располагается главное меню Delphi, набор пиктографических командных кнопок и палитра компонентов.

Главное меню содержит все необходимые средства для управления проектом. Все опции главного меню представляют собой опции – заголовки, открывающие доступ к выпадающим меню второго уровня.

Пиктографические кнопки открывают быстрый доступ к наиболее важным опциям главного меню. По функциональному признаку они разделены на 6 групп. Каждая группа занимает отдельную панельку.



Окно формы.

Окно формы представляет собой проект Windows – окна. Будущей программы. Вначале это окно пусто. Точнее, оно содержит стандартные для Windows интерфейсные элементы – кнопки вызова системного меню , максимизации, минимизации и закрытия окна, полосу заголовка и очерчивающую рамку. Вся рабочая область окна обычно заполнена точками координатной сетки, служащей для упорядочения размещаемых на форме компонентов.

Особенность визуального программирования состои в следующем: программист выбирает из палитры компонентов нужный компонент и размещает его на форме, постепенно заполняя форму интерфейсными элементами. Он в любой момент времени контролирует содержание окна создаваемой программы и может внести в него необходимые изменения.

Окно инспектора объектов.

Любой размещаемый на форме компонент характеризуется некоторым набором параметров: положением, размером, цветом и т. д. Часть этих параметров, например, положение и размеры компонента, программист может изменять, манипулируя с компонентом в окне формы. Для изменения других параметров предназначено окно Инспектора объектов . Это окно содержит две страницы – Properties (свойства) и Events (События). Страница Properties служит для установки нужных свойств компонента, страница Events позволяет определить реакцию компонента на то или иное событие. Совокупность свойств отображает видимую сторону компонента: положение относительно левого верхнего угла рабочей области формы, его размеры и цвет, шрифт и текст надписи на нём и т. п.

Каждая страница Инспектора Объектов представляет собой двухколонную таблицу, левая колонка которой содержит название свойства или имя подпрограммы, обрабатывающей соответствующее событие.

Строки таблицы выбираются щелчком мыши и могут отображать простые или сложные свойства. К простым относятся свойства, определяемые, единственным значением – числом, строкой символов, значением True (Истина) или False (Ложь) и т. п.

В верхней части окна Инспектора Объектов располагается раскрывающийся список всех помещённых на форму компонентов. Поскольку форма сама по себе является компонентом, её имя также присутствует в этом списке.

Если вы случайно или намеренно сделали все окна невидимыми, нажмите F11 или выберете опцию Viev/ Object Inspector , чтобы оно вновь появилось на экране.



Вид программы:

procedure Tform1. Button2Clic

(sender: tobject);

begin


close

end;


procedure tForm 1. Button3Clic (sender:tobject);

begin


edit 2. Text:= inttostr (random (100));

edit 1. Text:=inttostr (random (100));

edit 3. Text:=inttostr (strtoint(edit 1. text );

end;


end.

Лабораторная работа №6

Работа с массивами

Цель работы: научиться вводить, выводить и обрабатывать массивы.
Для ввода двумерного массива с клавиатуры разместим два компонента класса Tlabel, два компонента класса Tedit и кнопку TbitBth.

Среда «Delphi» по умолчанию присвоила этим компонентам имена «Form1», «Label1», «Label2» и т. д. Так как в программе может использоваться большое количество одинаковых компонентов, а наличие у них однотипных имён затруднит понимание и написание программы, поэтому рекомендуют изменять название на более индивидуальные, например, «Form Label1», «IbMassIn» и «IbResult». Имена в Delphi должны состоять из латинских букв, цифр и знака подчёркивания, причём имя не должно начинаться цифрой и содержать пробелов.

Изменение свойств формы следующим образом (приведём пример) : в инспекторе объектов в «Caption» напишем «Лабораторная работа №2», в «BorderStyle» - «bsSingle», «BorderIcons», «biSystemMenu» = «True», «biMaximize» = «False», «biHelp» = «False». Полученая форма имеет заголовок «Лабораторная работа №2», её размеры неизменяемы, её можно закрыть нажав, на крестик в верхнем правом углу, и минимизировать. С помощью Tlabel создаём заголовки над редакторами. Для этого размещаем их соответствующим образом, переходим в инспектор объектов, и в их свойствах «Caption» пишем, например, следующее: «Введите массив» и «Результат». Для изменения шрифта в инспекторе объектов два раза щёлкаем на свойстве «Font», установим высоту шрифта и стиль. Присвоим редакторам имена «edMassIn» и «edResult». В инспекторе объектов удалим текст, содержащийся в свойстве «Text». Редактор edResult будет использоваться только для вывода результатов. Можно запретить изменение в нём текста, для этого установим свойство «ReadOnly» «True».

Кнопка TbitBth используется для выхода из программы. Присвоим ей имя «BtBnClose». В «Caption» запишем текст для ввода на кнопке, например, «Закрыть». Для того чтобы при нажатии кнопки завершалась программа необходимо сделать следующее: в инспекторе объектов перейти на страницу «Events» (события), выбрать пункт «onClik» и два раза щёлкнуть на нём мышью. В окне кода программы в появившийся текст новой процедуры вставить Close. Таким образом, при нажатии кнопки возникает событие «onClik», оно обрабатывается написанной процедурой, метод формы Close закрывает окно и завершает работу программы.

Ввод массива осуществляется в редакторе edMassIn, элементы массива отделяются пробелами, а строки – каким-нибудь символом, например «;». Количество элементов в строках определяется количеством элементов в первой строке, а строк – количеством разделителей +1. Например опишем в программе двумерный массив mas а размером 5х5, при этом нельзя будет вводить более 5 строк и 5 элементов в строке. После завершения ввода элементов нажимаем клавишу «Таб» или мышью выбираем edResult. При этом возникает событие «OnExit». Для создания процедуры обработки этого события перейдём в инспекторе объектов на страницу «Events» и два раза щёлкнем мышью на «OnExit». В окне кода программы появится заготовка процедуры, с которой и будем дальше работать.

Обработка массива сводится к нахождению сумм элементов каждой строки. После нахождения сумма преобразуется в строку символов и записывается в свойство «Text» редактора edResult.

Работа функции Conv состоит в преобразовании символов преданной ей подстроки в последовательность чисел и последующей их записи в указанную строку массива. Переменная i int – счётчик элементов строки массива, element – последовательность символов элемента строки массива. Следует отметить, что String – это цепочка следующих друг за другом символов Char. Каждый символ пронумерован, причём первый символ имеет номер 1. Программист может обращаться к любому символу строки, указывая его порядковый номер в квадратных скобках сразу за именем переменной.

Определяем длину подстроки и организуем цикл с первого до последнего символа. Если символ – пробел и element непустой, то element преобразуем в число и записываем его в строку n и номером в строке i int массива mass_a. Затем очищаем element и увеличиваем

i int на 1.

Номер последнего преобразованного элемента строки массива записываем в результат функции.




Лабораторная работа №7

Разработка программного интерфейса и работа с файлами.
Цель работы: научиться использовать компоненты TopenDialog, TsaveDialog, TbitBtn, TgroupBox, TradioButton, TcheckBox, Tedit. Отработать приёмы работы с файлами.
Любой файл имеет три характерные особенности. Во-первых, у него есть имя, что даёт возможность программе работать одновременно с несколькими файлами. Во-вторых, он содержит компоненты одного типа. Типом компонентов может быть любой тип Object Pascal , кроме файлов. Иными словами, нельзя создать «файл файлов». В-третьих, длина вновь создаваемого файла никак не оговаривается при его объявлении и ограничивается только ёмкостью устройств внешней памяти.

Файловые типы или переменную файлового типа можно задать одним из трёх способов:



  • <имя> = FILE OF <тип>;

  • <имя> = TEXT;

  • <имя> = FILE;

В зависимости от способа объявления можно выделить три вида файлов:

  • типизированные файлы (задаются предложением FILE OF...);

  • текстовые файлы (определяются типом TEXT);

  • не типизированные файлы (определяются типом FILE);

Доступ к файлам:

файлы становятся доступны программе только после выполнения особой процедуры открытия файла. Эта процедура заключается в связывании ранее объявленной файловой переменной с именем существующего или вновь создаваемого файла, а также в указании направления обмена информацией: чтение из файла или запись в него.

Файловая переменная связывается с именем файла в результате обращения к стандартной процедуре AssignFile.

Инициировать файл означает указать для этого файла направление передачи данных. В Object Pascal можно открыть файл для чтения и записи одновременно.

Для чтения файл инициируется с помощью стандартной процедуры Reset. При выполнении этой процедуры дисковой файл подготавливается к чтению информации. В результате специальная переменная – указатель, связанная с этим файл, будет указывать на начало файла, т. е. на компонент с порядковым номером 0.

Если совершается попытка инициировать чтения из несуществующего файла, возбуждается исключительная ситуация.

Текстовые файлы:

Текстовые файлы связываются с файловыми переменными, принадлежащими стандартному типу TEXT. Текстовые файлы предназначены для хранения текстовой информации. Именно в такого типа файлах хранятся, например, исходные тексты программ. Компоненты (записи) текстового файла могут иметь переменную длину, что существенно влияет на характер работы с ними. Текстовый файл трактуется в Object Pascal, как совокупность строк переменной длины. Доступ к каждой строке возможен лишь последовательно, начиная с первой. При создании текстового файла в конце каждой записи (строки) специальный признак EOLN, а в конце файла – признак EOF. Эти признаки можно протестировать одноимёнными логическими функциями.

Для доступа к записям применяются процедуры Read, ReadLn, Write, WeteLn. Они отличаются возможностью обращения к ним с переменным числом фактических параметров, в качестве которых могут использоваться символы, строки и числа. Первым параметром в любой из перечисленных процедур должна стоять файловая переменная. Обращение осуществляется к дисковому файлу, связанному с переменной F процедурой AssignFile.

Процедура Read предназначена для последовательного чтения из текстового файла символьных представлений переменны Vi

При вводе числовых переменных процедура Read вначале выделяет подстроку во входном потоке по следующему правилу: все ведующие пробелы, символы табуляции и маркеры конца строк EOLN пропускаются; после выделения первого значещего символа, наоборот, любой из перечисленных символов или символ EOF служат признаком подстроки. Выделенная таким образом подстрока затем рассматривается как символьное представление числовой константы соответствующего типа и преобразуется во внутреннее представление, а полученное значения присваивается переменной. Если в подстроке был нарушен требуемый формат представления численной константы, возникает исключительная ситуация. Если при пропуске ведущих пробелов встретился символ EOF, переменная получает значение 0. В Object Pascal не предусмотрен ввод шестнадцатеричных констант.

Процедура Read прекрасно приспособлена к вводу чисел. При обращении к ней за вводом очередного целого или вещественного числа процедура «перескакивает» маркеры конца строк, т. е. Фактически весь файл рассматривается ею как одна длинная строка, содержащая текстовые представления чисел. В сочетании с проверкой конца файла функцией EOF процедура Read позволяет организовать простой ввод массивов данных.

Процедура ReadLn идентична процедуре Read за исключением того, что после считывания последней переменной оставшаяся часть строки до маркера EOLN пропускается, поэтому следующее обращение к ReadLn начинается с первого символа новой строки. Кроме того, эту процедуру можно вызвать без параметров Vi что приведёт к пропуску всех символов текущей строки вплоть до EOLN.

Процедура Write обеспечивает вывод в текстовый файл группы переменных.

Процедура WriteLn полностью идентична процедуре Write за исключением того, что выводимая последовательность символов автоматически завершается маркером EOLN (свое название процедура получила от Write Line – писать строку).

При вызове WriteLn можно опускать параметры Vi - в этом случае в файл передаётся пустая строка.

Типизированные файлы.

Длина любого компонента типизированного файла строго постоянна, что даёт возможность организовать прямой доступ к каждому из них (т. е. Доступ к компоненту по его порядковому номеру).

Перед первым обращением к процедурам ввода – вывода указатель файла стоит в его начале и указывает на первый компонент с номером 0. После каждого чтения или записи указатель сдвигается к следующему компоненту файла. Переменные в списках ввода – вывода должны иметь тот же тип, что и компоненты файла. Если этих переменных в списке несколько, указатель будет смещаться после каждой операции обмена данными между переменными и дисковым файлом.

TopenDialog,TsaveDialog,

Эти компоненты имеют идентичные свойства и поэтому рассматриваются вместе.

Свойство FileName: String содержит маршрут поиска и выбранный файл при успешном завершении диалога. Программа может использовать это свойства для доступа к файлу с целью читать из него данные (TopenDialog) или записывать в него (TsaveDialog). Следует отметить, что пользователь может ввести произвольное имя и, следовательно, указать несуществующий файл. Для записи это не имеет значения, но при чтении отсутствие файла может привести к краху программы. Чтобы избежать этого, можно проверить существование файла глобальной функцией FileExists, или использовать механизм обработки исключительных ситуаций.

Свойство Filter:String используется для фильтрации (отбора) файлов, показываемых в диалоговом окне.

Процедура Look Mas используется для просмотра в редакторе edMassIn исходного массива. Редактор доступен только для чтения. Массив отображается в виде, как и при вводе с клавиатуры (строки отделены «;»). В Look Mas передаётся количество строк (х) и элементов в строке (n). Работа этой процедуры поясняется комментариями.

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
ВОРОНЕЖСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

Лабораторные работы по информатике

1 – 7




Выполнил: Бордей К. Б. Проверил: Новикова И. А.

Воронеж

2006

Похожие:

Лабораторная работа №1 цель работы: ознакомиться и научиться работать с файлами в среде Турбо Паскаля. Работа с файлами iconЛабораторная работа №1 Функции Win32 api для работы с файлами Лабораторный практикум Математический факультет
Создать приложение, в котором работа с файлами и каталогами организована через системные вызовы (функции Win32 api)
Лабораторная работа №1 цель работы: ознакомиться и научиться работать с файлами в среде Турбо Паскаля. Работа с файлами iconКомпьютера. Папки. Файлы (имя, тип, путь доступа). Операции с папками и файлами в среде операционной системы
Ютере в среде операционной системы фактически сводится к работе с файлами. В операционной системе Windows 98 понятие файл часто заменяется...
Лабораторная работа №1 цель работы: ознакомиться и научиться работать с файлами в среде Турбо Паскаля. Работа с файлами iconПрактикум по дисциплине «информатика» для студентов направлений 230100. 62 «Информатика и вычислительная техника»
Лабораторная работа Команды работы с дисками, файлами и каталогами ос ms dos 9
Лабораторная работа №1 цель работы: ознакомиться и научиться работать с файлами в среде Турбо Паскаля. Работа с файлами iconЛабораторная работа №1 Работа в Oracle Database Express Edition 1 Лабораторная работа №6
Лабораторная работа Выполнение расчетов с использованием программирования в среде Visual Basic for Applications
Лабораторная работа №1 цель работы: ознакомиться и научиться работать с файлами в среде Турбо Паскаля. Работа с файлами iconЛабораторная работа №2 работа с пакетными файлами (. bat) в операционной системе dos
Коментарий), echo (Вывод сообщения), call (Вызов другого пакетного файла), goto (Переход по метке), if (Условие), for (Цикл), shift...
Лабораторная работа №1 цель работы: ознакомиться и научиться работать с файлами в среде Турбо Паскаля. Работа с файлами iconЛабораторная работа № Логика высказываний
...
Лабораторная работа №1 цель работы: ознакомиться и научиться работать с файлами в среде Турбо Паскаля. Работа с файлами iconЛабораторная работа №7 Обработка файлов средствами языка Turbo Pascal
Освоение методики проектирования Pascal-программ с использованием операций с файлами
Лабораторная работа №1 цель работы: ознакомиться и научиться работать с файлами в среде Турбо Паскаля. Работа с файлами iconЛабораторная работа №3 многозадачное программирование в linux
Цель работы: Ознакомиться с компилятором gcc, методикой отладки программ, функциями работы с процессами
Лабораторная работа №1 цель работы: ознакомиться и научиться работать с файлами в среде Турбо Паскаля. Работа с файлами iconЛабораторная работа №5 Анализ операций с ценными бумагами
Лабораторная работа №5 включает 5 заданий. Для выполнения этих заданий необходимо ознакомиться с теоретическим материалом, приведенным...
Лабораторная работа №1 цель работы: ознакомиться и научиться работать с файлами в среде Турбо Паскаля. Работа с файлами iconЛабораторная работа №3 Холодильные машины. Определение параметров работы и кпд холодильника
Цель работы: ознакомиться с принципом работы холодильной машины, криогенными приборами (машина Линде, сосуд Дьюара)
Разместите кнопку на своём сайте:
ru.convdocs.org


База данных защищена авторским правом ©ru.convdocs.org 2016
обратиться к администрации
ru.convdocs.org