Варианттар



Кіріспе
Варианттардың негізгі қасиеттері
Варианттарды мәліметтердің басқа типіне түрлендіру
Варианттармен жұмыс істеуге арналған қосалқы программалар
Вариантты массивтер
Вариантты массив параметрлері
Пайдаланушының варианттары
Қорытынды
Вариант бұл компликация кезеңінде программист өрнектегі қандайоа бір мәліметтер типі немесе қосалқы программаны шақыру параметрін көрсете алмаған жағдайда пайдалануға болатын, арнайы жасалған Variant типі. Вариант айнымалысы жадыдан қосымша 2 байт орын алады, онда айнымалы нақты типі жөніндегі аппарат орналасады. Бұл ақпарат программаны жүргізу кезеңінде типтерге қажетті түрлендіруді жүзеге асырады. Компиляторға кодты құру мүмкіндігін береді.
Вариант айнымалысын:
-- бүтін және нақты;
-- логикалық мәнді;
-- жолды;
-- уақыт немесе датаны;
-- OLE объектісін;
-- элементі жоғарыда аталған типтердің бірінен құралатын, өлшемі мен ұзындығын еркін алынған массивті орналастыруға болады.
Варианттар сәйкес түрлендіру нақты болған жағдайда бүтін санды, нақты, логикалық немесе уақыт және дата өрнектеріне қатыса алады. Мысалы, егер кез келген V вариантына «1,0» жолы меншіктелсе, 1+v өрнегінің дұрыс нақты мәні 2,0 болады. Ал, егер v;= «текст» болса, 1+v өрнегі Е Variant Error қатесін шақырады.
Варианттық типтің құрылымы төмендегідей сипатталады:
TVar Data=packed record
VType: Word:
1. Стоцкий Ю., Самоучитель Office 2000, Санкт-Петербург, "Питер", 2000.
2. Микляев А., Настольная книга пользователя, Москва, "Салон", 1998.
3. Коржинский С., Самоучитель работы на компьютере, Москва, "ТК Велби", 2002.
4. Симонович С., Евсеев Г., Алексеев А., Лаборатория мастера. Работа с компьютером без проблем. Практическое руководство по эффективному использованию компьютера, Москва, "АСТ - ПРЕСС", 2000.
5. Глушаков С.В., Сурядный А.С., MS Office 2000, уч. курс, Харьков, "Фолио", Ростов-на-Дону, "Феникс", 2001.
6. Симонович С., Евсеев Г., Специальная информатика, Москва, "АСТ - ПРЕСС", 2002.
7. Симонович С., Евсеев Г., Практическая информатика, Москва, "АСТ - ПРЕСС", 2002.
8. Информатика: Базовый курс, С.В.Симонович и др. Санкт-Петербург, "Питер", 2001.
9. Золотова С.И., Практика по Aссess, Москва, Финансы и статистика, 2001.
10. Инчин А.С., Рекомендации по работе на персональном компьютере. В 4-х частях, Алматы,1999.
11. Крейнак Дж., Хебрейкен Дж., Интернет. Энциклопедия, Санкт-Петербург, "Питер", 2000.
12. Интернет с нуля! Книга + Видеокурс: Учеб. пособие под редакцией Н.А.Домина, М.: "Лучшие книги", 2003.

Жоспары

Кіріспе
Варианттардың негізгі қасиеттері
Варианттарды мәліметтердің басқа типіне түрлендіру
Варианттармен жұмыс істеуге арналған қосалқы программалар
Вариантты массивтер
Вариантты массив параметрлері
Пайдаланушының варианттары
Қорытынды

Варианттардың негізгі қасиеттері

Вариант бұл компликация кезеңінде программист өрнектегі қандайоа бір
мәліметтер типі немесе қосалқы программаны шақыру параметрін көрсете
алмаған жағдайда пайдалануға болатын, арнайы жасалған Variant типі. Вариант
айнымалысы жадыдан қосымша 2 байт орын алады, онда айнымалы нақты типі
жөніндегі аппарат орналасады. Бұл ақпарат программаны жүргізу кезеңінде
типтерге қажетті түрлендіруді жүзеге асырады. Компиляторға кодты құру
мүмкіндігін береді.
Вариант айнымалысын:
-- бүтін және нақты;
-- логикалық мәнді;
-- жолды;
-- уақыт немесе датаны;
-- OLE объектісін;
-- элементі жоғарыда аталған типтердің бірінен құралатын, өлшемі мен
ұзындығын еркін алынған массивті орналастыруға болады.
Варианттар сәйкес түрлендіру нақты болған жағдайда бүтін санды, нақты,
логикалық немесе уақыт және дата өрнектеріне қатыса алады. Мысалы, егер кез
келген V вариантына 1,0 жолы меншіктелсе, 1+v өрнегінің дұрыс нақты мәні
2,0 болады. Ал, егер v;= текст болса, 1+v өрнегі Е Variant Error қатесін
шақырады.
Варианттық типтің құрылымы төмендегідей сипатталады:
TVar Data=packed record
VType: Word:
Recerved 1, Recerved 2, Recerved 3, Word;
Case Inyeger of
VarSmallnt: (VSmallnt: Smallnt);
VarSingle: (VSingle, Single);
VarDouble: (VDouble, Double);
VarCurrency: (VCurrency, Currency);
VarDate: (VDate, Double);
VarOLEStr: (VOLEStr: PWide Char;
VarDispatch: (VDispatch: Pointer);
VarError: (VError: WordBool);
VarString: (VString:Pointer);
VarArray: (Varray: PVarArray);
VarByRef: (VPointer: Pointer);
End;

Варианттық типті кез келген айнымалы 8 байттық варианттық бөліктен
тұратын 16 байттық жазу болып келеді, ол өзіне мәліметті немесе адресті
(яғни динамикалық орналасқан мәліметтерге сілтеме) сақтайды. Кез келген
VType өрісіне компилятор вариант құру мезетінде мәліметтердің жоқ екендігі
туралы. VarEmpty белгісін орналастырады. Орындалатын программады бұл
өрістің мәні варианттық бөлікте орналасқан ағымдағы мәліметтер типіне
сәйкес өзгереді. Бұдан программа варианты жазуының өрістеріне тікелей кіре
алмайды. Варианттық мәліметтер типін VarType функциясының көмегімен алуға
болады, ал типті вариантқа жаңа мән меншіктеу жолымен өзгертуге болады.

Варианттарды мәліметтердің басқа типіне түрлендіру. Варианттар
өрнектерде, олардың мәндеріне басқа типтерді меншіктегенде пайдаланылған
жағдайда мәліметтер варианттарында орналасқан типтер төмендегі ереже
бойынша түрленеді.

Варианттардағы типтердің түрлендірілуі

ҚолданылВарианттардағы мәліметтер типі
уы
VarEpty Бүтін Нақты Дата уақыт Жолдық Логикалық
Бүтін 0 Сәйкес Бүтінге Бүтінге Бүтін False үшін
типке дөңгелектедөңгелектеу типке 0, әйтпесе
түрлендіруу түрлендіру1, Byte
үшін 255
Нақты 0.0 Сәйкес Сәйкес Сәйкес типке Нақты False үшін
типке типке түрлендіру типке -0, True
түрлендірутүрлендіру түрлендіруүшін -1
Дата 30.12.1899Double- геDouble- геТүрлендір-ілмейДатаға Double- ге
уақыт 00:00:00 түрлендірутүрлендіруді түрленеді түрлендіру
Жолдық Бос жол Символдық Символдық Символдық түргеТүрлендіріFalse үшін
түрге түрге түрлендіру лмейді –“0”, True
түрлендірутүрлендіру үшін –“1”
ЛогикалыFalse 0 False 0 False 0 False “False” Түрлендірі
қ әйтпесе- әйтпесе- әйтпесе- True -0- False лмейді
True True әйтпесе-
True

Мұндағы
Бүтінге: VarByte, VarSmallInt, VarInteger, VarError;
Нақтыға: VarSingle, VarDouble, VarCurrency;
Жолдыққа: VarString, VarOLEStr жатады.

Варианттармен жұмыс істеуге арналған қосалқы программалар
Варианттармен жұмыс істеу үшін төмендегідей қосалқы программаларды
пайдалануға болады:
1. Function VarAsType (Const V: Variant; VarType: Integer): Variant;

2. Procedure VarCast (VarDest: Variant; const Source: Variant;
VarType:Integer);
3. Procedure VarClear (Var V: Variant);
4. Procedure VarCopy (VarDest: Variant; const Source: Variant);
5. Function
VarForme DateTime (DateTime: TDateTime): Variant;
6. Function VarLsEmpty (Const V: Variant); Boolean;
7. Function VarLsNull (Const V: Variant); Boolean;
8. Function VarToDateTime (Const V: Variant): TDateTime;
9. Function VarToStr (Const V: Variant): string;
10. Function VarType (Const V: Variant): Integer;

1. –Функция – кез келген варианттың мәліметін VarType параметрімен
анықталатын типке түрлендіреді.
2. –Процедура – Sourse вариантының мәліметін VarType параметрімен
анықталнған типке түрлендіріп, нәтижені Dest айнымалысына
орналастырады.
3. –Процедура динамикалық жадыны босатады, егер ол вариантпен байланысы
болса, және оған VarEmpty типін береді.
4. – Процедура Dest вариантына Sourse параметрін көшіреді.
5. – Функция – типі дата – уақыт болып келген DataTime мәліменттерінен
тұратын варианты береді.
6. –Функция – егер V-да мәліметтер болмаса, True мәнін береді.
7. –Функция – егер V варианты анықталмаған мәліметтер типінен тұратын
болса, True мәнін береді.
8. –Функция – V вариантының мәліменттерін дата – уақыт типіне
түрлендіреді.
9. –Функция – V вариантының мәліменттерін жолға түрлендіреді.
10. –Функция – Варианта сақталған мәліменттер типін береді.

Вариантты массивтер. Варианттың мәні мәліметтер массиві болуы мүмкін,
мұндай варианттар – вариантты массивтер деп аталады. Вариантты массив
элементерінің мәндері вариант үшін мүмкін болатын кез келген мәндер болуы
мүмкін, бірақ оған VarString жолы кірмейді. Вариантты массив элементтерінің
мәндері варианттарда бола алады, олай болса мұндай массивте бір мезгілде
әртүрлі мәліметтер типі сақталады.

Var
V: Variant;
Begine
5 элементтен тұратын бір өлшемді вриантты массив құрайық.
Var:= VarArrayCreate ([0,14], Var Variant);
толтырамыз:
V[0]:=1;
V[1]:=1234.5678;
V[2]:='сәлем';
V[3]:=True;
массивтің бес элементі тағы бір массив болсын.
V[4]:= VarArray of ([1..10, 100.. 1000]);
Caption: = V[2];
LBOutput. Caption:= Intto Ster (V[4] [2]);
End;

Вариантты массивтермен жасалатын барлық әрекеттер төмедегі процедуралар
мен функциялардың көмегімен жүзеге асырылады.
1. Function VarArrayCreate (const Bounds: arry of integer; Vartype:
Integer): Variant; - Bounds параметрі арқылы мөлшері мен
шекарасының өлшемі көрсетілген Vartype типті элементтерден
вариантты массив құрады;
2. Function VarArrayDimCount (const A: Variant): Integer; - Варианты
А массиві өлшемінің мөлшерін (санын) береді, егер А массив
болмаса, 0-ге тең.
3. Function VarArrayHighBound (const A: Variant: Dim:Integer):
Integer; - Dim өлшемі бойынша варианты А массиві жоғарғы
шекарасының индексін береді;
4. Function VarArrayLock (Var a: Variant): Pointer; - массив
бұғаттап, мәліменттерге варианты көрсеткішті береді;
5. Function VarArrayLowBound (const A: Variant; Dim:Integer):
Integer; - Dim өлшемі бойынша А варианты массиві төменгі
шекарасының индексін береді;
6. Function VarArray (const Values: array of Variant): Variant;
-Values ашық массивіндегі мәндерден тұратын бір өлшемді вариантты
массив құрады. Бұл жағдайда вариантты массивінің төменгі
шекарасының индексі 0-ге тең;
7. Procedure VarArrayRedim (Var A:Variant; HighBound: Integer); A
варианты массивтің жоғарғы индексінің шекарасын HighBound шамасына
өзгертеді. Егер массив VarArrayLock функциясымен бұғатталған
болса, онда процедураның шақырылуы жойылады;
8. Function VarArrayRef (const A:Variant): Variant; - Варианты
массивке сілтемені береді. API функцияларды шақыруда
пайдапланылады;
9. Procedure VarArrayUnlock (Var A:Variant)- VarArrayLock
функциясының әрекетін жоққа шығарады.

Вариантты массив параметрлері. Delphi 32 жүйесінде қосалқы программаға
ұзындығы мен өлшемі айнымалы болып келген массивті бергенде вариантты
массивтерді пайдаланған ыңғайлы. Төменгі мысалды GetArrayAverage
функциясышның көмегімен өлшемі 5-тен артпайтын ұзындығы айнымалы болып
келген варианты массивтің барлық элементтерінің арифметикалық ортасы
анықталады:
Function GetArrayAverage (const V:Variant): Double;
(ұзындығы мен өлшемі айнымалы болып келген массивтің арифметикалық орта
мәнін береді)
var
i, j, k, l, m: integer;
Sum: Double;
NItem: integer;
Begin
Result:=-lE-309;
If ((var type (v) and VarArray) VarArray) or (VarArrayDim Count (v)
5) then
Exit;
Sum:=0;
NItem:=0;
Массив элементтерінің санын есептейміз.
for k: =1 to VarArrayDim Count (v) do
NItem: = NItem: + VarArray HighBound (v, k)
VarArrayLowBound (v, k);

Элементтердің қосындысын есептейміз.
Case VarArrayDim Count (v) of
1: for i:= VarArrayLowBound (v, l) to VarArray HighBound (v,l) do
Sum:= Sum+v[i];

2: for i:= VarArrayLowBound (v, l) to VarArray HighBound (v,l) do
for j:= VarArrayLowBound (v, 2) to VarArray HighBound (v,2) do
Sum:= Sum+v[i,j];

3: for i:= VarArrayLowBound (v, l) to VarArray HighBound (v,l) do
for j:= VarArrayLowBound (v, 2) to VarArray HighBound (v,2) do
for k:= VarArrayLowBound (v, 3) to VarArray HighBound (v,3) do
Sum:= Sum+v[i,j,k];

4: for i:= VarArrayLowBound (v, l) to VarArray HighBound (v,l) do
for j:= VarArrayLowBound (v, 2) to VarArray HighBound (v,2) do
for k:= VarArrayLowBound (v, 3) to VarArray HighBound (v,3) do
for l:= VarArrayLowBound (v, 4) to VarArray HighBound (v,4) do
Sum:= Sum+v[i,j,k,l];

5: for i:= VarArrayLowBound (v, l) to VarArray HighBound (v,l) do
for j:= VarArrayLowBound (v, 2) to VarArray HighBound (v,2) do
for k:= VarArrayLowBound (v, 3) to VarArray HighBound (v,3) do
for l:= VarArrayLowBound (v, 4) to VarArray HighBound (v,4) do
for m:= VarArrayLowBound (v, 5) to VarArray HighBound (v,5) do
Sum:= Sum+v[i,j,k,l,m];
End;
Result:= Sum NItem
End;
NItem

Пайдаланушының варианттары. Delphi- дің 6-нұсқасынан бастап,
варианттың мәндерінің сипатындағы шектеулерді толық алып тастайтын
пайдаланушының варианттары жұмыс істейді. Бұл варианттың қасиеттерімен
толдық танысу үшін төмендегідей вариантты қарастырайық: комплексті сандарды
сақтап, оларды басқа типке түрлендіріп және олармен қажетті әрекетті жүзеге
асыратын вариантты пайдаланайық. Пайдаланушының вариантын құру – ондағы
сақталатын мәліметтердің күнделігіне тәуелді болады. Delphi –ді
жасаушылардың құрған VarCmplx модуліне қосылған вариантты пайдаланайық.
Төмендегідей оқиға өңдеушісін ... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
Лексика - семантикалық, фонетикалық - орфограммалық және грамматикалық варианттардың ерекшеліктерін саралап көрсету, нормадан ауытқу немесе сай келу заңдылықтарын талдау және варианттарды кодификациялаудың теориялық негіздерін іздестіру
Менеджмент этикасы
Ауыл шаруашылығында жүргізілетін тәжірибелік жұмыстар
Коносукэ Мацусита - жапон менеджментінің патриархы
Егістік тәжірибелер жүргізу
ВАРИАЦИЯЛЫҚ ҚАТАРЛАР ЖӘНЕ ОЛАРДЫҢ СТАТИСТИКАЛЫҚ СИПАТТАМАЛАРЫ
Көркемдік тәсілдер арқылы жасалған фразеологизмнің лексикалық варианттары
Тілдік норма
Тілдік норманың қалыптануы
Генетикалық зерттеулерде биометриялық әдістерді қолдану
Пәндер