Delphi ортасында программалау негіздері


Жұмыс түрі: Материал
Тегін: Антиплагиат
Көлемі: 11 бет
Таңдаулыға:
Delphi ортасында программалау негіздері
Символдар және жолдар
Компьютер тек сандық айнымалыларды ғана емес символдық айнымалыларды да өңдейді. Delphi тілінде символды ақпараттар жеке символдармен де беріледі, жолдармен де беріледі.
Символдар
Символдрды сақтауда және өңдеуде айнымалылар типінің Ansichar және wideChar түрлері қолданылады. Ansichar типі АNSI-символов жинақтығынан тұрады, яғни әрбір символ сегіз разрядты екілік сандармен кодталған. wideChar типі Unicode мен кодталған символдардың жиынтығынан тұрады, яғни әрбір символ екі байтпен кодталған.
Символды типті айнымалы мәніне кез келген символ жатады:
- Орыс әріптері немесе латын алфавиттері;
- сандар;
- тыныс белгілері;
Символды типті айнымалы айнымалыларды жазу бөлімінді жазылады. Жалпы түрде жазылуы :
Имя: char;
ондағы:
- имя -символды типтегі айнымалы аты;
- char - символды типтегі айнымалыны көрсететін кілтті сөз.
Мысалы:
otv: char; ch: char;
Программадағы кез-келген айнымалылар сияқты char типтегі айнымалылар меншіктеу құрылымы орындалғаннан кейін ғана мәнге ие болады. Егер char типтегі айнымалы меншіктеу операциясы орындалғаннан кейін мәнге ие болса, онда := мына белгінің оң жағында char типі көрсетілуі керек.
Жолдар
Программада жолдар келесі типтермен жазылуы мүмкін: Shortstring , Longstring и Widestring . Бұл типтер бір-бірінен айырмашылығы жолдың енгізілетін ұзындығына байланысты және символдарды кодтау әдістеріне байланысты болады.
Shortstring айнымалы типі сттистикалық тұрғыда программа орындалғанға дейін символдар саны бұл жолда 255 тен аспауы керек. Longstring және Widestring айнымалы типі динамикалық тұрғыда программа жұмыс істеп тұрған кезде жолдың ұзақтығына шектеу қоймайтын тип.
Аталған айнымалылар типінің ішіндегі универсалды жолдық тип String жиі қолданылады. String типі Shortstring типіне эквивалентті.
Жолдық типтегі айнымалы, айнымалыларды беру бөлімінде көрсетілуі керек. Жалпы түрде құрылымның жазылуы мынадай:
Имя: String;
немесе
Имя: String [длина]
Бұл жердегі:
- имя - айнымалылар аты;
- string- Жолдық типті білдіретін кілттік сөз;
- длина- бүтін типтегі тұтақты.
Жолдық типтегі айнымалыны көрсету:
name: string[30] ;
buff: string;
Жолдық айнымалыларға және тұрақтыларға қосу операциясын қолдануға болады, орындау нәтижесінде жаңа жол алынады. Мысалы:
first__name: ='Иван' ;
last_name:='Иванов';
ful_name:=first_name+last_name;
айнымалы ful_name 'Иван Иванов' мәніне ие болады.
Жолдармен орындалатын операциялар
Delphi тілінде жолдармен жұмыс істейтін бірнеше функциялар мен процедуралар бар. Төменде сол жазбалар келтірілген:
Функция length
Length функциясы жол ұзындығын қайтарады. Бұл функцияның бір ғана параметрі бар - ол жолдық типтің өрнектелуі. L ength функциясының мәні символдар саны болып табылады, яғни ол долдар санымен сәйкес.
Мысалы:
n:=length('Иванов') ;
m:=length('Невский проспект') ;
значение переменных n и m будет равно 6 и 16.
Delete процедурасы
Delete процедурасы жолдың бір бөлігін өшіреді. Жалпы түрдегі жазбасы:
delete(Строка, р, n )
где:
- Строка - Жолдық типтегі жолдар немесе тұрақтылар;
- р- символ номері, жойылатын жолдағы;
- п- жойылатын дол ұзындығы.
Мысалы, орындау барысында:
p:='Город Санкт-Петербург';
delete(s, 7, 6) ;
s айнымалы 'Город Петербург' жолымен жазылады.
Роs функциясы
роs функциясы жолдың астынғы жолын көрсетеді. Жалпы түрде:
pos (Подстрока, Строка) ;
Cору функциясы
Функция сору арқылы жол фрагментін ерекшелеуге болады. Жалпы түрде функция сору мына түрде жазылады:
сору( Строка, р, n ) ;
Массивтер
Массив - бұл берілгендер құрылымы , бір атпен берілген, бір типтегі айнымалылар жиынтығы. Массивтер шығу тегі бір болып келген мәліметтерді сақтауға қолданылатын кестелер мен тізімдер түрінде кездеседі.
Массив элементі - массивке енетін жеке айнымалы;
Индекс - бұл сандық тұрақты немесе бүтін арифметикалық өрнек.
Массива элементінің индексі - массив элементінің номері.
Массивтермен жұмыс
Бір атау арқылы байланыстырылған бір типті айнымалылардың (не олардың мәндерінің) жиынтығы массив деп аталады. Сызықтық массив және матрицамен жұмыс істеу негіздері Паскальдағы сияқты. ) Қолданылатын элементтеріне санына байланысты, массивтер бірөлшемді(жолдық), екіөлшемді(кесте түрінде), үшөлшемді болып беріледі.
Бір өлшемді массивтерде тек бір ғана индекс арқылы массив элементін көрсетеді.
Екі өлшемді массивтерде - екі индекс, жолды және бағандарды көрсетеді.
Массив өлшемдері индекстер санымен анықталады .
Массив өлшемі - массив индекстерінің өзгері диапазонына байланысты.
Массив кез-келген программадағы айнымалы сияқты, қолданар алдында айнымалыларды көрсететін бөлімде көрсетілуі керек. Жалпы түрде жазылуы келесідегідей:
Аты: array [төменгі индекс. . жоғарғы_индекс] of тип;
бұл жердегі:
- аты -массив атауы;
- array -Delphi-дегі арнай қызыметші сөз(массив атауын білдіреді) ;
- төменгі_индекс жәнежоғарғы_индекс- массив элементтерінің индексінің өзгеру диапазонын көрсететін бүтін тұрақты сандар;
- тип -массив элементінің типі;
Массивтердің берілуіне мысал:
temper: array [1. . 31] of real;
коef :array [0. . 2] of integer;
name: array [1. . 30] of string [25] ;
const
NT = 18; // дәрілер саны
SN = 25; // дәрілер атауларының шектеулі ұзындығы
var
lekarstvo: array[1. . NT] of string[SN] ;
Программада массив элементтерін қолдану үшін, ең алдымен массив атауы мен элементтер санын (индексін), индекстерді тік (квадрат) жақшаларда көрсету керек. Индекс ретінде тұрақты және бүтін өрнек типі қолданылады, мысалы:
lekarstvo[1] := 'Аспирин';
d := koef[l] *koef[l] -4*koef[2] *koef[1] ;
temper[i] := StrToFloat(Edit1. text) ;
Имя:array [нижний_индекс. . верхний_индекс] of тип = (список) ;
Бұл жердегі тізім - массив эементтерінің мәні (үтірмен жазылған) . мысалы:
a: array[10] of integer = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0) ;
lekarstvo: array[1. . 5] of String[15] =
('Аспирин', 'Анальгин', 'Ношпа', 'Цитрамон', 'Баралгин') ;
Массивтерге орындалатын операциялар:
- массивтерді енгізу;
- массивтерді шығару;
- массивтің максималды немесе минималды элементтерін іздеу;
- массивтің берілген элементін іздеу;
- массивтерді сұрыптау.
Массивтерді шығару
Массивтерді шығарғанда монитор экранында массив элементтерінің мәні жазылады. Егер программада массив элементтерінің барлық мәнін шығару керек болса, ол үшін for операциясының құрылымын қолданған ыңғайлы, бұл жердегі for массив элементінің индексі ретінде де қолданылуы мүмкін.
24. 1 мысал суретінде көрсетілгендей массив элементтерін шығарда қажет сұхбат терезесінде (белгілер алаңында) нөмірленген дәрілер тізімі жазылып шығады. Берілген тізімді жазу кезінде командалар тізімі әдеттегідей тізім болу үшін Label1. AutoSize қасиетінде False мәнін қабылдау керек. (керісінше Label1. AutoSize қасиетіне True мәнін қабылдаған кезде программаның қалай өзгеретіндігін тексеру керек) .
Массивтерді шығару инициализациялау
unit lek;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Label1: TLabel;
procedure ButtonlClick(Sender: TObject) ;
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
($R *. dfm}
const
NT = 5;
var
lekarstvo:array[1. . NT] of string[10] =('Аспирин', 'Анальгин', 'Ношпа', 'Цитрамон', 'Баралгин') ;
procedure TForml. ButtonlClick(Sender: TObject) ;
var
st:string; // список лекарств
i:integer; // индекс, номер элемента массива
begin
// формирование списка для отображения в форме
for i:=l to NT do st := st + IntToStr(i) + ' '+ lekarstvo [i] + #13;
// вывод списка
Label1. Caption := st;
end;
end.
Массивтерді енгізу
Массивтерді енгізу үшін қолданылатын компоненттер StringGrid және Memo болып табылады. Берілген мәндер тізбегі программада кестеде орындалады, әр сандық мәні жеке ұяшықтарда жазылады. Төменде массивтерді енгізудің екі жолы қарастырылған.
StringGrid компонентін қолдану
Массивтерді енгізуде StringGrid компонентін қолдану қолайлы. Бұл компоненттің шартты түрде белгіленуі компоненттер политрасында Дополнительно (Additional) деп аталатын бөлімінде орналасқан. (сурет. 24. 2) .
Сурет 24. 2. StringGrid компоненті
StringGrid компоненті кестеден тұрады. 24. 1кестесінде StringGrid . компонентінің кейбір қасиеттері көрсетілген.
Кесте 24. 1. StringGrid компонентінің қасиеттері
Кесте ұяшықтарының мәндерін түзетуге мүмкіндік береді
True - түзетуге болады, False - болмайды.
Стандартты типті түрлендіру функциялары:
StrToFloat(x)
FloatToStr(x)
FloatToStrF(x, f, s, o)
StrToInt(x)
IntToStr(x)
Кескіні жолдық типті болатын х нақты санын қалпына келтіру
х нақты санын жолдық типті ету
х нақты санын форматты жолдық типке түрлендіру. Мұндағы f- формат (кескіндеу форматы) . Ол көбінесе ffGeneral не ffFixed түрінде жазылады;
s-барлық цифрлар саны (дәлдік) ;
о- ондық нүктеден соң жазылатын цифрлар саны (ондық дәлдік), мысалы, FloattostrF(x, ffFixed, 7, 3) ;
Кескіні жолдық типті х бүтін санын қалпына келтіру;
Х бүтін санын жолдық типті ету
(IntToStr-- Integer to String, т. с. с. ) .
Memo компонентін қолдану
Массивтерді енгізуде кейде Memo . компоненті қолданылады. Бұл компонент арқылы өте үлкен жолда текст жазуға болады. Көбіне символды массивтер енгізуде қолайлы. Memo компоненті формаға қою үшін Стандартные (Standard) бөліміне көшеу керек (сурет. 24. 3) .
Сурет 24. 3. Memo компоненті
Кесте 24. 2 Memo компонентінің кейбір қасиеттері көрсетілген .
Кесте 24. 2. Memo компонентінің қасиеттері
Memo компонентін қолданып массивтерді енгізу үшін массив элементтерінің әрқайсысын жеке жолдарға енгізеді және енгізгеннен кейін <Enter> пернесін басу керек.
Символды массивтерді енгізуде цикл процедурасының негізі Memo компонентінде мына түрде болады:
for i:=l to SIZE do
a [ i ] := Memol. Lines[i] ;
где:
- SIZE- массив өлшемін анықтайтын атауы бар тұрақты ;
- а - массив;
- Memo1- Memo-компонентінің атауы;
- Lines-Memo, компонентінің қасиеті.
24. 4 суретінде программа формасы көрсетілген.
Сурет 24. 4. Қосымша сұхбат терезесі. Массивтерді енгізу Memo компонентінен массивтерді жолға енгізу
unit fr_memo_; interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Menus, StdCtrls;
type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
Label1: TLabel;
procedure ButtonlClick(Sender: TObject) ;
private
{ Private declarations }
public
{ Public declarations }
end;
var
Forml: TForm1;
implementation
($R *. DFM}
procedure TForml . ButtonlClick(Sender: TObject) ;
const
SIZE=5; // массив өлшемі
var
a:array[l. . SIZE] of string[30] ; //массив
n: integer; // Memo енгізілген жолдар саны
i:integer; // массив элементінің индексі
st :string;
begin
n:=Memo1. Lines. Count;
if n = 0 then begin
ShowMessage('Берілгендер енгізілмеген!') ;
Exit; // оқиғаларды түзетіу процедурасынан шығу
end;
// Memo алаңында мәтін бар
if n > SIZE then begin
ShowMessage('Жолдар саны массив өлшемдерінен артық') ;
n:=SIZE; // тек SIZE бірінші жолдары енгізіледі
end;
for i:=1 to n do
a[i] :=Form1. Memol. Lines[i-1] ; // Memo жолдар нольден бастап нөмірленген
// хабарлама терезесінде массивтерді шығару
if n > 0 then begin
st:='Енгізілген массив:'+#13;
for i: =1 to n do
st:=st+IntToStr(i) +' '+ a[i] +#13; ShowMessage(st) ;
end;
end;
end.
24. 5 суретінде массивтерді енгізудің сұхбат терезесі көрсетілген. Енгізу пернесіне басқаннан кейін мына терезе ашылады:
Сурет 24. 5. Қосымша терезе Массивті енгізу
Сурет 24. 6. Memo-поля арқылы енгізілген жазба
Практикалық жұмыс №5
1. Тапсырманың қойылымы:
Программа құру:
Программа шақырылғаннан кейін орындаушы массив элементтерінің мәндерін енгізеді. Вычислить бастырмасын басқаннан кейін программа массив элементтерінің арифметикалық мәнін есептеп береді.
Сурет 24. 7
2. Программаны жасау жобасы:
... жалғасы- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.

Ақпарат
Қосымша
Email: info@stud.kz