Мәліметтердің бүтін санды типтері



МАЗМҰНЫ
Кіріспе
І. Паскаль программалау тілі туралы жалпы мағлұмат
1.1 Turbo Pascal жүйесiнiң программалау ортасы
1.2 Паскаль тіліндегі мәліметтер
1.2.1 Турбо Паскаль тіліндегі константалар (тұрақты сандар)
1.2.2 Турбо Паскаль тіліндегі айнымалылар
1.2.3 Турбо Паскаль тіліндегі мәліметтер типі
1.3 Паскаль тіліндегі амалдар мен өрнектер
1.4 Массивтер
ІІ. Паскаль тілінің көмегімен сұрыптау және іздеу алгоритмдерін
2.1 Іздеу алгоритмі
2.1.1 Сызықтық іздеу
2.1.2 Шектеу қою арқылы іздеу
2.1.3 Екілік немесе қақ бөліп іздеу
2.2 Сұрыптау алгоритмі
2.2.1 Таңдау бойынша сұрыптау
2.2.2 Айырбастау бойынша сұрыптау (“көбікше” әдісі)
2.2.3 Мойындық сұрыптау (шейкерлі)
2.2.4 Енгізу арқылы сұрыптау
2.2.5 Хоар сұрыптамасы
2.2.6 Индексті векторларды пайдалану арқылы сұрыптау
2.3 Дербес орындайтын жаттығулары
Қорытынды
Пайдаланылған әдебиеттер тізімі
КІРІСПЕ
Паскаль тілін 1968-71 жылдары Швейцарияда профессор Никлаус Витр
Бұл тілде жазылған программаны компьютерде орындау кезінде ол
Қазіргі кезде Паскаль тілі кез келген күрделі есептерді
Техниканың даму жетістіктеріне сай ЭЕМ – біздің өміріміздің
Программист мұндай программаларды жасаған кезде барлық мәліметті компьютерге
Бұл дипломдық жұмыста Турбо Паскаль тілінде программалаудың негізгі
І. Паскаль программалау тіліне туралы жалпы мағлұмат
Компьютер табиғат құбылыстарын зерттеу, технологиялық процестерді басқару, мультфильмдер
Сөйтіп, есепті шығарудың матемтаикалық моделін құра отырып:
математикалық модель негізделетін болжамдарды ерекшелеу;
алғашқы мәліметтер мен нәтижелерді анықтау;
нәтижелер мен алғашқы мәліметтерді байланыстыратын математикалық қатынастарды (формулалар,
Математикалық модель құру барысында мәліметтер арқылы ізделінді шамаларды
Сонымен, математикалық модель құру кезеңімен компьютердің көмегімен есеп
Компьютер алгоритмді адамның қатысуынсыз автоматты түрде орындайды. Ол
Компьютермен есептеуді жүргізгеннен кейін алынған нәтижені талдау қажет.
Сонымен, компьютерде есеп шығарудың үшінші кезеңі – программа
Математикалық модель→Алгоритм→ Программа. Компьютер жұмысының нәтижелерін талдау.
Қорыта келгенде, қойылған есепті шығару алгоритмін құруда: біріншіден,
1.1 Turbo Pascal жүйесiнiң программалау ортасы
Turbo Pascal-дың соңғы нұсқаларында экрандық редактор, түрлендiрушi
Turbo Pascal жүйесiнiң ерекшелiктерi:
бiрнеше терезелердi пайдалануға, сондай-ақ олардың өлшемдерiн өзгертуге, экранда
меню жүйесi бар;
сұхбат терезелерi бар;
тышқанмен жұмыс iстеу мүмкiндiгi бар;
1Мбайт-қа дейiнгi файлдармен жұмыс iстеуге мүмкiндiк беретiн көп
жөндеушiнiң (отладчик) мүмкiндiктерi өте көп;
экранды толық тазартып, қайта қалпына келтiруге болады.
Программалау ортасында негiзгi жұмыс пернелер тақтасы немесе тышқан
Программалау ортасында жұмыс iстеу үшiн Turbo.exe файлын орындауға
Турбо Паскаль программалау жүйесiнде жұмыс iстеудi меңгеру үшiн,
Терезе негiзiнен меню қатарынан, жұмыс алабынан және функöионалдық
Программа iске қосылып, терезе ашылғаннан кейiн, курсор жұмыс
Меню қатарына F10 пернесi арқылы шығып, ESC арқылы
Меню қатарының командаларын және төменгi сатылы командаларының қажеттiсiн
File менюiнiң командалары файлдармен негiзгi әрекеттердi орындауға мүмкiндiк
New командасы үнсiз келiсiм бойынша NONAMEXX.PAS (ХХ-тiң орнына
Open F3 сақталған файлдарды оқу мүмкiндiгiн беретiн сұхбат
Save (сақтау)- F2 екпiндi терезедегi файлды дискiге сақтайды.
Save as… (… деп сақтау) терезедегi екпiндi файлды
Change dir (Каталогты өзгерту) командасы Change directory сұхбат
Print командасы екпiндi терезенiң мазмұнын баспаға шығарады. Турбо
Printer setup командасы принтердi орнатуға мүмкiндiк беретiн сұхбат
DOS shell (DOS-қа уақытша шығу) DOS-тың командаларын немесе
Exit (шығу)- Alt+X Турбо Паскаль ортасынан шығу, сақталмаған
Edit меню командалары редактор терезесiнде программа мәтiнiн көшiру,
Undo (болдырмау)- Alt+Bksp программа мәтiнiн өңдеу кезiндегi
Redo Undo командасының қатармен орындаған соңғы командасын алып
Cut Shift+del Белгiленген бөлiктi буферге қиып
Copy Ctrl+Ins Белгiленген бөлiктiң көшiрмесiн буферге алады
Paste Shift+Ins Курсор орналасқан жерге буфердегi ақпаратты
Clear Ctrl+Del Белгiленген бөлiктi тазалау, өшiру.
Show Clipboard (буфердi ашу) редактор терезесiнде көшiрмесi алынған
Find (табу) командасы табуға қажеттi және iздеу опöияларын
Replace (алмастыру), Alt+S+R- iздейтiн мәтiн мен оны алмастыратын
Search Again (қайтадан iздеу) Ctrl+L командасы – Find
Go to line number (нөмiр қатарына бару) –
Show last compiler error – экранның жоғарғы жақ
Find error (қатенi iздеу) Alt+F8– программаны орындау кезiндегi
Find procedure (Проöедураны iздеу) iздейтiн проöедураның атын енгiзу
Run (орындау) меню командалары программаны орындауға жiберу, жөндеудi
Run (орындау) Ctrl+F9 командасы Run/Parameters командасының көмегiмен орнатылған
Program reset Ctrl+F2 (сброс программы) – жөндеушiнiң орындап
Go to cursor (курсорға өту) F4 –
Trace into (қосалқы программаға кiрiп, қадамдық орындау) ±7
Step over (қосалқы программаға кiрмей қадам бойынша орындау).
Parameters (Параметрлер)-программа параметрлерiн енгiзу мүмкiндiгiн бередi. Параметрлер программаны
Compile (Компилляöия) меню командалары программаның қатесiн тексеру мүмкiндiгiн
Make (Программаны жинақтау). Егер негiзгi программада немесе негiзгi
Build (Программа құру) – Make (Программаны жинақтау) командасы
Destination memory (Файлды орналастыру) программаның орындалатын файлының (.ехе)
Primary file…(Негiзгi файл) командасы Build (Программа құру) және
Clear primary file (Негiзгi файлдан бас тарту) командасы
Information (файл жөнiнде информаöия алу) ағымдағы файл және
Debug (жөндеу менюi) программаны жөндеу (отладка) үшiн қажеттi
Breakpoints (Тоқтау нүктесi)–Тоқтау нүктесiмен жұмыс iстеу мүмкiндiгiн бередi.
Call stack (қолданылатын қосалқы программа терезесi) – Қолданылатын
Register (регистр) Регистрлер терезесi ашылады.
Watch (Жөндеу терезесi) жөндеу терезесi ашылады.
Output (нәтиже) шығатын нәтижелер терезесi ашылады.
User screen (пайдаланушы терезесi) пайдаланушы терезесi ашылады. Терезеден
Evaluate/modifu… (Есептеу қайталау) мәндерi есептелетiн өрнектi немесе айнымалыны,
Add Watch… (бақылау параметрiн қосу) Бақыланатын параметрлер терезесiне
Add breakpoint…(тоқтау нүктесiн қосу) тоқтау нүктесi мен тоқтау
Tools (Саймандар мен аспаптар) менюi бiрiктiрiлген программмалау ортасынан
Программаны программалау ортасынан жiберiлетiн тiзiмдерi қатарына қосу үшiн,
Messages (Хабарлама)– Dos фильтрi арқылы программадан берiлетiн информаöияны
Options менюiнiң командалары Турбо Паскаль ортасының үнсiз келiсiм
Compiler (Компиллятор) кодты компиляöиялауға әсер ететiн опöияларды таңдау
Memory sizes (Жад өлшемi) командасы үнсiз келiсiм бойынша
Linker (байланыс редакторы) командасы өңдеу жұмыстарына әсер ететiн
Map File (карта файлы) тiзiмi жүктеу картасының құрылуын
Off (ажыратулы) – жүктеу картасы құрылмайды;
Segments (сегменттер параметрi)- жүктеу картасында программаның барлық сегменттерiнiң
Public (глобальды параметрлер)- жүктеу картасында сегмент параметрлерiмен қоса
Detailed (детализаöия)- жүктеу картасында Public параметрлерiмен қоса программаның
Link Buffer (байланы редакторының буферi) тiзiмi буфердiң орналасатын
Memory (жады)- буфер жедел жадыға орналасады, түрлендiру (компилляция)
Disk (диск)- буфер дискiге орналасады.
Debugger (жөндеушi) командасы бiрiктiрiлген жөндеушiнiң жұмысына әсер ететiн
Directories (Каталогтар) командасы Турбо Паскальда түрлендiруге арналған байланыстарды
Window (Терезе) меню командалары терезенi ашу, жабу, экранда
Tile барлық терезелердi бiрiнiң астына бiрiн қатарластырып
Cascade – терезелердi қабаттастырып орналастырады;
Close all – терезелердiң барлығын жабу;
Refresh display (экранды жаңарту) – программа экранның мазмұнын
Size/move CtrlF5 (өлшемiн өзгерту, орнын ауыстыру) – терезенiң
Zoom F5 – терезенiң көлемiн үлкейту, кiшiрейту әрекетiн
NEXT F6 (келесi) ретi бойынша келесi терезенi
Previous Shift+F6 – (алдыңғы) ретi бойынша алдыңғы терезенi
Close Alt+F3 (жабу) – екпiндi терезенi жабады.
List… At+0 (терезелер тiзiмi) – жұмыс iстеп тұрған
Help (көмек) меню командалары жүйедегi анықтамалық ақпаратты оқу
Contents (экранға шығарылған ақпарат жөнiнде мәлiмет) ағымдағы уақытта
Index (түйiндi сөздер) жүйеде бар барлық анықтамалық ақпараттардың
Topic search (сөз бойынша iздеу) Курсор орналасқан сөз
Prevoius topic (алдыңғы тақырып) алдыңғы сұранысқа сәйкес келетiн
Using help (контекстi көмек жүйесi жөнiнде анықтама) контекстi
Files (файлдар) контекстi көмек файлдарын енгiзу мүмкiндiгiн беретiн
Compiler directives (компилятор директиâалары) компилятордың директиâаларының тiзiмiн шығарады.
Reserved words (қордағы слоâа) қордағы сөздердiң тiзiмiн шығарады.
Standard units (стандартты модульдер) стандартты модульдер тiзiмiн шығарады.
Turbo Pascal language (Turbo Pascal тiлi) Turbo Pascal
Error message (қателер жөнiнде хабарлама) қателер жөнiнде берiлген
About (жүйе жөнiнде мәлiмет) программалау жүйесi пакетiнiң нұсқасы
Тілдің алфавиті
Паскаль тілінің алфавиті келесі түрдегі таңбалардан тұрады:
- латын алфавиті А,B,С,...,х,у,z;
- цифрлар 0,1,2,...,9;
- арнайы таңбалар +,-,/,=,< >, [ ], .,
Программа аты, типі, константа, айнымалы, модульдер және тілдің
1.2 Паскаль тіліндегі мәліметтер
Кез-келген программада есепті шешу үшін, керекті айнымалылар мен
Паскаль тіліндегі мәліметтерді константа (тұрақты) және айнымалы деп
1.2.1 Турбо Паскаль тіліндегі константалар (тұрақты сандар)
Программаның орындалуы барысында констанаталар мәні өзгеріссіз қалады. Олар
Const
h=3;
b=-7.5;
c=’abcde’;
1.2.2 Турбо Паскаль тіліндегі айнымалылар
Программаның орындалуы барысында айнымалылар мәні бірнеше рет өзгеруі
Var
a,b: real;
c,d: integer;
1.2.3 Турбо Паскаль тіліндегі мәліметтер типі
Паскальдағы мәліметтер типін скалярлық және құрылымдық деп бөлеміз.
Скалярлық типтегі мәліметтерді келесі топтардан көруімізге болады, яғни
Мысалы. Бүтін санды айнымалылар типін сипаттауға керек болсын:
Var
a,b: byte;
f: word;
1.1-кесте Мәліметтердің бүтін санды типтері
Типі
Byte
Word
Integer
Shortint
Longint
Нақты сан типіндегі мәлімет 4-тен 10 байтқа дейін
Нақты сандарға мысал:
- нақтыланған нүкте: 4.12, 6.05, -17.5489;
- жылжымалы нүкте: -3.2Е-6(-3.2·10-6), -6.42Е+2(-6.42·102).
Барлық нақты сандар типі 1.2- кестеде көрсетілген
1.2- кесте. Мәліметтердің нақты типтері
Типі
Real
Single
Double
Extended
Мысалы. Нақты типтегі айнымалыларды сипаттау керек болсын:
Var
a,b,c: real;
d,f: double;
k: single;
Мәліметтің символдық типі дисплей экранында көрінетін кез-келген символды
Var
a,b:char;
Программа мәтінінде символдық типтегі айнымалылар мен константалар мәні
Мәліметтің логикалық (бульдік) типі. Бұл типтегі мәлімет негізінен
Мысалы:
var
a, b: boolean;
Турбо Паскальда стандартты скалярлық типтен басқа тізбектелген немесе
Тізбектелген тип берліген типтегі айнымалы қабылдай алатын
var
a,c: (red, blue, green);
b: (dog, cat);
Басында мәліметтердің тізбектелген типін енгізіп, содан соң осы
type =;
Мысалы:
type
color=(red,blue,green);
var
a,b: color;
Аралық тип арқылы берілген тип айнымалыларының өзгеру шегін
var
a, b, c: -7 .. 4;
x: ‘a’ .. ‘c’;
Алдында айтылған типтер сияқты мәліметтер типін type қызметші
Мысалы:
type
x=0..9;
var
a,b: x;
Әрбір аралық типтің айнымалысы 1 байт орын алады.
Құрылымдық тип мәліметтеріне келесілер жатады: массивтер, жолдар, жазбалар,
Массивтер - бір тип мәліметтерінің жиынтығы. Типті сипаттау
:array[i..i1,j..j1,…]of ;
мұнда i, i1- бірінші массив индексінің шекарасы; j,
Мысалы:
var
a: array [1 .. 10] of integer;
Алдымен масссив мәліметінің типін анықтап, содан соң скалярлық
Жолдар – символар тізбегі. Оларды өрнектерде қолданғанда жолдар
: string[n],
мұнда n - жол айнымалысының ұзындығы; егер n
1.3 Паскаль тіліндегі амалдар мен өрнектер
Өрнек мәліметтермен жұмыс жасау барысын реттеп отырады және
Турбо Паскаль тілінде қолданылатын арифиметикалық амалдар – 1.3-кестесінде
1.3-кесте. Арифметикалық амалдар
Амалдар Қызметі Операндалар типі Тип шешімдері
+ Қосу Бүтін, нақты Бүтін, нақты
- Алу Бүтін, нақты Бүтін, нақты
* Көбейту Бүтін, нақты Бүтін, нақты
/ Бөлу Бүтін, нақты Бүтін, нақты
Div Бүтін бөлігі Бүтін Бүтін
Mod Қалдық бөлігі Бүтін Бүтін
And «және» Бүтін Бүтін
Shl Солға жылжыту Бүтін Бүтін
Shr Оңға жылжыту Бүтін Бүтін
Or Немесе Бүтін Бүтін
Xor Немесені жоққа шығару Бүтін Бүтін
- Жоққа шығару Бүтін Бүтін
Not Логикалық жоққа шығару Бүтін Бүтін
Қатынас амалдары екі операнданы салыстырғанда, олар ақиқат немесе
Мысалы, қатынас амалдары:
3.142, 6>4
Қатынас амалдары символдық және жолдық айнымалылармен де анықталады:
‘a’ < ‘b’, ‘abc’ < ‘abd’.
Логикалық амалдар логикалық мәліметтерге орындалады. Келесі логикалық амалдар
1.4-кесте. Логикалық амалдар.
A B Not A and B A or
t t f t t
t f f f t
f t t f t
f f t f f
Кестеде t - true (ақиқат) f – false
Логикалық өрнектерде логикалық және арифиметикалық қатынас амалдары да
Логикалық өрнекке мысал:
(a+x)>(c+d*cos(y)) or (a>b)
Күрделі өрнектердегі амалдардың орындалатын тәртібі қарапайым амалдар тәртібіне
1.Унарлы амалдар
2. *, /, div, mod, and, shl, shr.
3. +, -, or, xor.
4.=, , , >=, 0 do
begin
m:=0;
{бұл сүзгі кезінде ауыстырулар болған жоқ, орын 0
for i:=1 to k do
if A[i]>A[i+1] then
begin
x:=A[i]; A[i]:=A[i+1]; A[i+1]:=x; {элементтер орындарын ауыстырамыз}
m:=i; {және алмастырған орындарды есте сақтаймыз}
end;
k:=m-1; {парлар саны соңғы ауыстырылған орынға байланысты}
end;
for i:=1 to n do write(A[i],' '); {реттелген
end.
2.2.3 Мойындық (шейкерлі) сұрыптау
Бұл алгоритмнің негізгі мағынасы алмастыру бойынша сұрыптауға жатады.
МЫСАЛ: N нақты сандарынан тұратын А массивін өсу
program Shaker;
var A:array[1..100] of integer;
N,i,k,x,j,d : integer;
begin
write('массива элементтерінің саны');
read(N);
for i:=1 to n do read(A[i]);
d:=1; i:=0;
for k:=n-1 downto 1 do { k -
begin
i:=i+d;
for j:=1 to k do
begin
if (A[i]-A[i+d])*d>0 then
{көршілес элементтерді орындарымен ауыстырамыз}
begin x:=A[i]; A[i]:=A[i+d]; A[i+d]:=x; end;
i:=i+d;
end;
d:=-d;
{қозғалыс бағытын кері бағытқа ауыстырамыз}
end;
for i:=1 to n do write(A[i],' '); {реттелген
end.
2.2.4 Енгізу арқылы сұрыптау
Бұл әдістің негізгі мақсаты К элементтен тұратын реттелген
Сұрыптау басында массивтің реттелген бөлігі бір элементтен ғана
Сызықтық іздеуді пайдалану кезінде есептелуі енгізу арқылы сұрыптауды
МЫСАЛ: N нақты сандарынан тұратын А массивін
program Sort_Include1;
var A:array[1..100] of integer;
N,i,k,x : integer;
begin
write(' массива элементтерінің саны');
read(N);
read(A[1]); {for i:=1 to n do read(A[i]);}
{k - реттелген массив бөлігінің саны}
for k:=1 to n-1 do
begin
read(x); {x:=A[k+1];}
i:=k;
while (i>0)and(A[i]>x) do
begin
A[i+1]:=A[i];
i:=i-1;
end;
A[i+1]:=x;
end;
for i:=1 to n do write(A[i],' '); {реттелген
end.
МЫСАЛ: N нақты сандарынан тұратын А массивін өсу
program Sort_Include2;
var A:array[1..100] of integer;
N,i,k,x,c,left,right : integer;
begin
write('массив элементтерінің саны'); read(N);
read(A[1]); {for i:=1 to n do read(A[i]);}
{k – массивтің реттелген бөлігіндегі элементтер саны}
for k:=1 to n-1 do
begin
read(x); {x:=A[k+1];}
left:=1; right:=k;
{ізделінетін бөліктің оң және сол шекарасы}
while left=A[c] then left:=c
{ортаның оң жақ бөлігін аламыз}
else right:=c-1; {ортаны қоспағандағы сол жақ бөлігін аламыз}
end;
if x>=A[left] then left:=left+1;
{х массивін енгізу үшін бір орын босата отырып,
for i:=k downto left do A[i+1]:=A[i];
A[left]:=x;
end;
for i:=1 to n do write(A[i],' '); {реттелген
end.
2.2.5 Хоар сұрыптамасы
Бұл сұрыптауды жылдам сұрыптау деп атаймыз. Бұл әдісті
Қандайда да бір элемент мәні, көбінесе ортаңғысын Х
Содан соң ол массив екі бөлікке дәл бөлінеді.
Берілген рекурсивті алгоритмді бір рет шақыруды есептеу сұрыптайтын
МЫСАЛ: N нақты сандарынан тұратын А массивін өсу
program Quick_Sort;
var A:array[1..100] of integer;
N,i : integer;
{Ішкі программаға сұрыпайтын бөліктің оң және сол жақ
procedure QSort(L,R:integer);
var X,y,i,j:integer;
begin
X:=A[(L+R) div 2];
i:=L; j:=R;
while i


Ұқсас жұмыстар

Си тіліндегі мәліметтер типі және олардың хабарлануы
Pascal тіліндегі айнымалылар типі
SQL тілінде деректерді өңдеудің негізгі операторлары. Деректер базасын құру
Паскаль тілінің негізі
Паскалдағы деректердің пайдаланушы типтері
Паскаль программалау тілінің мүмкіншіліктері
Реттік мәліметтер типтері
SQL кестелеріндегі мәліметтердің модификациясы
Кафе жұмысын автоматтандыру (Delphi ортасында)
SQL құрылымдық сұранымдар тілі