- •1 Модуль. Алгоритмдеу және программалауға кіріспе
- •1 Тақырып. Кіріспе
- •1 Лекция
- •1.1 „Автоматтандыру есептерін программалау" курсының мақсаттары мен міндеттері.
- •1.2 Есептеуіш техника құралдарын пайдаланып ақпаратты өндеу және басқару жүйелерін әзірлеу. Компьютерлік жүйелердің ақпаратты өндеу және басқару әдістері мен міндеттері
- •2 Тақырып.Дербес компьютерді (дк) программалауды автоматтандырудың программалық құралдары
- •2 Лекция
- •2.1 Дербес компьютердің программалық қамтамасыз етілуі туралы
- •2.2 Программалауды автоматтандыру әдістері. Алгоритмдік тілдер және оларға қойылатын талаптар.
- •2.3 Процедуралы–бағытталған тілдер және объектке–бағытталған программалау туралы түсінік.
- •3.1 Программаларды құру құралдары
- •3.2 Программалаудың біртұтас жүйелері.
- •3.3 Техникалық есептер
- •3 Тақырып. Есептерді алгоритмдеу негіздері.
- •4 Лекция
- •4.1 Алгоритм анықтамасы. Алгоритмдерді бейнелеу тәсілдері.
- •4.2 Алгоритмдердің блок-схемаларын безендіру ережелері.
- •4.3 Алгоритм құрылымдарының түрлері.
- •4 Тақырып Негізгі процедураға бағытталған алгоритмдеу тілінде программалау
- •5 Лекция
- •5.1 Оқылатын алгоритмдеу тілінің негізгі түсініктері
- •5.3 Тілдің негізгі объектілерін жазу ережелері
- •5.4 Деректердің типтері
- •5.5 Деректердің стандартты типтері
- •6 Лекция
- •6.2 Өрнектер. Арифметикалық және логикалық өрнектер
- •7 Лекция Құрылымды деректер (типтер)
- •7.1 Массивтер
- •7.2 Жиындар
- •7.3 Жазбалар
- •Модуль 2 Алгоритмдік тілдерде программалаудың арнайы мәселелері
- •5 Тақырып Программадағы басқару құрылымдар
- •8.1 Алгоритмдік тілдің операторлары.
- •8.3 Басқару операторлары. Құрама және бос операторлар
- •8.4 Деректерді енгізу-шығаруды ұйымдастыру
- •8.5 Программаның құрылымы. Алгоритмнің схемасынан программаға өту
- •9 Лекция
- •9.1 Сызықты құрылымды алгоритмдерді программалау
- •9.2 Тармақталған құрылымды алгоритмдерді программалау
- •9.3 Таңдау операторы (case)
- •10 Лекция
- •10.1 Циклдік құрылымды алгоритмдерді программалау. Кейінгі шартты цикл операторы (repeat)
- •10.2 Алдынғы шартты цикл операторлары (while)
- •10.3 Параметрлі цикл операторлары (for)
- •10.4 Ішкі циклдерді құрастыру (массивтерді өндеу, массив компоненттерін реттеу есептерінің мысалдары негізінде)
- •11 Лекция
- •11.1 Жолдық деректер
- •Var s: string;
- •Var s1: string[40];
- •11.2 Символдық және жазбалар түріндегі деректерді өндеу есептерін программалау
- •12 Лекция
- •12.1 Пайдаланушының ішкі программалары (процедуралар) классификациясы. Ішкі программаларды рәсімдеу тәсілдері және оларды программа құрамында пайдалану.
- •13 Лекция
- •13.1 Сыртқы сақтауыш құрылғыларын (файлдық шамаларды) және динамикалық жадыны пайдалану арқылы программалау
- •14 Лекция
- •14.1 Тілдің графикалық мүмкіндіктерін пайдалану
- •Initgraph(var gd:integer, var gm:integer, pt:string);
- •15 Лекция
- •15.1 Объектке-бағдарлы программалау (обп) негіздері
- •15.2 Объекттер және олардың негізгі қағидалары
- •15.3 Объекттерді құру және оларды пайдалану
- •15.4 Өткен материалға шолу
- •15.5 Алған білімдердің студенттің алдағы оқу барысында және болашақ инженерлік тіршілігіндегі тәжірибелік мағынасы. Программалау тілдері мен технологиялардың даму перспективалары.
- •Өрнектер – тұрақтылар. Паскаль өрнектер-тұрақтыларды пайдалануға мүмкіндік береді. Ол өрнекті программаны орындау қажеттіліксіз компилятор орындайды. Өрнектер-тұрақтылардың мысалдары:
- •Түсініктемелер (комментарий)
- •6 Лекция
- •6.1 Блоктар, локальділік және амал жасау облысы
- •6.5 Типтердің үйлесімділігі
- •7.1 Ординалды типтер
- •7.2 Құрама құрылымдар
- •10.4 Жалғау операторы (with)
6.2 Өрнектер. Арифметикалық және логикалық өрнектер
Бүтін шамаларға (integer типі) қолданылатын келесі арифметикалық операциялар анықталған: * (көбейту), div (бүтін бөлу), mod (бөлудің қалдығын есептеу), + , - (қосу және алу); бұл операциялар басымдылық реті бойынша келтірілген. Мысалы: 25 div 4 = 6; 25 mod 4=1. кейбір стандартты функциялар бүтін нәтиже қайтарады (функцияның аргументі жай жақшаларға алынады): abs(x) – бүтін х шаманың абсолют мәні; sqr(x) - х мәннің квадраты; trunc(x) – нақты х шаманың бүтін бөлігі; round(x) – дөңгелектендіру ережесі бойынша нақты х шамасынан алынған бүтін сан; random(x) – 0-ден х-ке дейінгі аралықтан алынған кездейсоқ сан. Мысалы: trunc(4,7)=4; round(4.7)=5; sqr(3)=9. byte типті деректер үшін анықталған операциялар мен функциялар integer типті деректер үшін анықталған операциялар мен функциялар бірдей.
Нақты шамаларға қолданылатын келесі операциялар анықталған: *, +, -, /, және сонымен қатар аргументі нақты немесе бүтін болатын стандартты функциялар: abs(x), sqr(x), sin(x), cos(x), arctan(x), ln(x), exp(x), sqrt(x) – х-тің түбір асты, int(x) - х-тің бүтін бөлігі, random - 0-мен 1 аралығындағы кездейсоқ сан. Көрсетілген операциялар және функциялар нақты нәтижені қайтарады.
Логикалық шамаларға қолданылатын келесі операциялар: not - терістеу, and -конъюнкция, оr - дизъюнкция. Логикалық odd(x) функция егер бүтін х сан тақ болса true мәнін қабылдайды, ал жұп болса false мәнін қабылдайды.
Барлық символдардың жиыны символдық шамаларды (char типі) құрайды, олар реттелген болып табылады, сонымен қатар: 'А' < 'В'< 'С <..< 'Z', 'а' < 'b' <...< 'z’, '0' < ‘1’ <..< '9'.
Паскаль екі жолдық операндтарды біріктіру үшін + (конкатенация) операциясын пайдалануға мүмкіндік береді. s және t жолдық, символдық немесе пакеттелген жолдық типке ие болатын s + t операцияның нәтижесі s пен t - ның конкатенациясы болады. Нәтиже кез келген жолдық типке үйлесімді болады. Егер нәтижелі жолдың ұзындығы 255 символдан асып кететін болса, онда ол 255 символға дейін қысқартылады.
Өрнектер – ол айнымалылардың мәндерін есептеу ережелерін беретін конструкциялар. Жалпы жағдайда өрнектер операциялар мен жақшаларды қолдану арқылы айнымалылардан, тұрақтылардан функциялардан құрылады. Өрнектердің бұл рөлі тілдің негізгі операторында – меншіктеу операторында бейнеленген.
Оның түрі: Идентификатор := өрнек;
Айнымалының типі және өрнектің типі үйлесімді болуы тиіс (шамалар бір типке жататын болуы керек). Ерекшелік бар: айнымалының аталуы real типіне, ал өрнектің мәні integer типіне жатуы мүмкін.
Мысалдар. a:=2*pi*r; p:=(a+b+c)/2; z:=sqrt(sqr(x)+sqr(y))
Өрнектерді жазғанда Паскальда қабылданған есептеу ретін ескеру керек. Өрнектер операциялар мен операндтардан тұрады. Операциялардың көбісі бинарлы болып табылады, яғни екі операндты қамтиды. Қалған операциялар унарлы және жалғыз операндты қамтиды. Бинарлы операцияларда кәдімгі алгебралық бейнелеу пайдаланылады, мысалы: a+b. Унарлық операцияларда операция әрдайым операндтың алдында болады, мысалы: -b. Күрделілеу өрнектерде орындалу реті операциялардың басымдылықтарына сәйкес:
Операция |
Басымдылық |
Операция түрі |
@, not *, /, div, mod, and, shl, shr +, -, or, xor =, <>, <, >, <=, >=, in- |
бірінші (ең жоғары) екінші
үшінші төртінші (ең төменгі) |
унарлы операция көбейту операциясы
қосу операциясы қатынас операциясы |
Операциялардың үлкенділігін (басымдылығын) анықтау үшін негізгі үш ереже бар:
басымдылықтары әртүрлі болатын екі операциялардың арасындағы операнд басымдылығы жоғарылау болатын операциямен байланысады.
басымдылықтары бірдей болатын екі операциялардың арасындағы операнд сол жақта орналасқан операциямен байланысады.
жақшаларға алынған өрнек, орындалудың алдында жеке операнд сияқты есептелінеді.
Басымдылықтары бірдей болатын операциялар әдетте сол жақтан оң жаққа қарай орындалады, бырақ кейде компилятор оптималды кодты генерациялау барысында операндтардың ретін өзгертуі мүмкін.
Егер not операцияның операнды бүтін типті операнд болып табылса, онда нәтижеде бүтін типті болады. Егер or, and немесе xor операцияларындағы операндтардың екеуі де бүтін типті болса, онда нәтиженің типі де осы екі операндтардың типіндей болады. not операциясы унарлы операция болып табылады. Бұл операциялардың нәтижелері кәдімгі бульдік логикаға сәйкес. Мысалы, a and b өрнек ақихат (Тruе) болады тек егер екі a және b операндтар ақихат (Тruе) мәндерге ие болғанда ғана. i shl j және i shr j операциялары i мәнін сол жаққа немесе оң жаққа j битке жылжытады. Нәтиженің типі i –дің типімен бірдей.
6.3 Стандартты ішкі программалар (кірістірілген функциялар мен процедуралар)
Паскаль тілінде типтік операциялардың орындалуын қамтамасыз ететін құрамына кірістірілген көптеген функциялар бар.
Pascal ABC жүйесінің стандартты System модуліне шолу.
System модулі кез келген программаға автоматты түрде қосылады. Ол стандартты деп аталатын бір қатар процедураларды, функцияларды, типтерді қамтиды.
жалпы стандартты процедуралар мен функциялар;
жолдармен жұмыс жасауға арналған стандартты процедуралар мен функциялар;
файлдармен жұмыс жасауға арналған стандартты процедуралар мен функциялар;
жадымен жұмыс жасауға арналған стандартты процедуралар мен функциялар;
жүйелік стандартты процедуралар мен функциялар;
стандартты тұрақтылар;
ерекшелеулердің стандартты класстары.
Бұл функциялармен Pascal ABC анықтамалық жүйесінен толығырақ танысуға болады. Мысалы, жалпы стандартты процедуралар мен функциялардың құрамы келесі кестеде келтірілген.
Кесте 6.1 Жалпы стандартты процедуралар мен функциялар
Аталуыжәнепараметрлер |
Процедура н/ефункция |
Параметрлердің типтері |
Қайтарылатын мәннің типі |
Амал |
Read(a,b,...) |
процедура |
a,b,c–жай н/е string типті айнымалылар |
|
клавиатурадан мәндерді a,b... айнымалыларына енгізеді |
Write(a,b,...) |
процедура |
a,b,c–жай, string немесе нұсқағыш типті өрнектер |
|
a,b...мәндерін шығару терезесіне шығарады |
Readln(a,b,...) |
процедура |
a,b,c–жай немесе string типті айнымалылар |
|
клавиатурадан мәндерді a,b... айнымалыларына енгізеді, одан кейін ағымдағы енгізу жолындағы қалған барлық символдарды өткізіп жібереді.Егер процедураның параметрлері көрсетілмесе, онда Enterклавишасы басылғанша программа орындалуында паузаны жүзеге асырады. |
Writeln(a,b,...) |
процедура |
a,b,c–жай, string немесе нұсқағыш типті өрнектер |
|
a,b...мәндерін шығару терезесіне шығарадыда келесі жолға өтуді жүзеге асырады. Егер процедураның параметрлері көрсетілмесе, онда келесі жолға өтуді ғана жүзеге асырады. |
Abs(x) |
функция |
x-integer,real,complex |
параметрдің типімен сәйкес |
х-тің абсолютті мәнін (модулін)қайтарады |
Sqr(x) |
функция |
x-integer,real,complex |
- // - |
х-тің квадратынқайтарады |
Sqrt(x) |
функция |
x-real,complex |
- // - |
х-тің түбір астынқайтарады |
Sin(x) |
функция |
x-real,complex |
- // - |
х-тің синусынқайтарады |
Cos(x) |
функция |
x-real,complex |
- // - |
х-тің косинусынқайтарады |
Ln(x) |
функция |
x-real,complex |
- // - |
х-тің натурал логарифмін |
Exp(x) |
функция |
x-real,complex |
- // - |
e –нің x дәрежесін қайтарады (e=2.718281...) |
Arctan(x) |
функция |
x-real,complex |
- // - |
х-тің арктангенсінқайтарады |
Power(x,y) |
функция |
x,y-real |
real |
х–тің удәрежесін қайтарады |
Conj(z) |
функция |
z-complex |
complex |
z-ке кешенді түрде ілесетін санды қайтарады |
Carg(z) |
функция |
z-complex |
real |
кешенді zсанның ((-Pi,Pi] аралығындағы) аргументін қайтарады |
Round(x) |
функция |
x-real |
integer |
х-ті ең жақын бүтінге дейін дөнгелектеу нәтижесін қайтарады |
Trunc(x) |
функция |
x-real |
integer |
х-тің бүтін бөлігінқайтарады |
Int(x) |
функция |
x-real |
real |
х-тің бүтін бөлігінқайтарады |
Frac(x) |
функция |
x-real |
real |
х-тің бөлшек бөлігінқайтарады |
Ord(x) |
функция |
x-реттіктип |
integer |
реттіктиптегі мәннің нөмірін қайтарады |
Chr(x) |
функция |
x-integer |
char |
кодых болатын символды қайтарады |
Odd(x) |
функция |
x-integer |
boolean |
х – тақ болсаTrue және керісінше жағдайда Falseқайтарады |
Inc(x) |
процедура |
x-реттіктип |
|
х – ті 1-ге арттырады |
Dec(x) |
процедура |
x-реттіктип |
|
х – ті 1-ге кемітеді |
Inc(x,n) |
процедура |
x-реттіктип, n-бүтінтип |
|
х – ті n-ге арттырады |
Dec(x,n) |
процедура |
x-реттіктип, n-бүтінтип |
|
х – ті n ге кемітеді |
Pred(x) |
функция |
x-реттіктип |
параметрдің типімен сәйкес |
реттіктиптегі алдыңғы мәнді қайтарады |
Succ(x) |
функция |
x-реттіктип |
параметрдің типімен сәйкес |
реттіктиптегі келесі мәнді қайтарады |
Random(x) |
функция |
x-integer |
integer |
0 денx-1аралықтағы кездейсоқ санды қайтарады |
Random |
функция |
|
real |
[0..1) аралықтағы кездейсоқ нақты санды қайтарады |
Include(s,x) |
процедура |
s-жиын,x –типі жиынның базалық типімен үйлесімді болатын элемент |
|
xэлементтіs жиынның құрамына кірістіреді |
Exclude(s,x) |
процедура |
s-жиын,x –типі жиынның базалық типімен үйлесімді болатын элемент |
|
xэлементтіs жиынның құрамынан жояды |
Кесте 6.2 Файлдармен жұмыс жасауға арналған стандартты процедуралар мен функциялар
Аталуыжәнепараметрлер |
Процедура н/ефункция |
Параметрлердің типтері |
Қайтарылатын мәннің типі |
Амал |
Assign(f,name) |
процедура |
f – файлдық типтегіайнымалы, name -string |
|
файлдық fайнымалыны аталуы nameболатын файлмен байланыстырады |
Reset(f) |
процедура |
f - файлдық типтегіайнымалы |
|
Assign процедурасыарқылы алдын-ала файлдық fайнымалымен байланысқан файлды ашады. Файл дискіде болуы тиіс, кері жағдайда орындау уақытының қатесі орын алады.Мәтіндік файлдар тек оқу үшін ғана, типтелген файлдар–оқу және жазу үшін ашылады. |
Rewrite(f) |
процедура |
f - файлдық типтегіайнымалы |
|
Assign процедурасыарқылы алдын-ала файлдық fайнымалымен байланысқан жаңа файлды құрады және ашады. Егер көрсетілген атаулы файлбар болса, онда ол жойылады да оның орнына жаңа файл құрылады. Мәтіндік файлдар тек оқу үшін ғана, типтелген файлдар – оқу және жазу үшін ашылады. |
Append(f) |
процедура |
f - Text типті айнымалы |
|
Бірнәсені қосу үшін мәтіндік файлды жазу үшін ашады. Файлдық нұсқағыш файлдың соңына орнатылады |
Close(f) |
процедура |
f - файлдық типтегіайнымалы |
|
Файлды жабалы |
FileExists(name) |
функция |
name - string |
boolean |
дискіде nameатаулы файлбар болса True,кері жағдайда False қайтарады |
CanCreateFile(name) |
функция |
name - string |
boolean |
name атаулы файлды құру мүмкін болсаTrue,кері жағдайда False қайтарады |
Read(f,a,b,...) |
процедура |
f - файлдық типтегіайнымалы, a,b –жай,stringнемесе нұсқағыштиптегіайнымалылар |
|
мәндерді f файлданa, b ...айнымалы-ларға оқиды. Егер файл типтелген болса, онда a, b ... айнымалылардың типтері файлдың базалық типімен сәйкес болуы тиіс, ал олардың мәндері файлдан екілік түрде оқылады. Егер файл мәтіндік болса, онда a, b ... айнымалылардың типтері әртүрлі болуы мүмкін, ал олардың мәндері файлда мәтіндік түрде сақталынуы тиіс |
Write(f,a,b,...) |
процедура |
f - файлдық типтегіайнымалы, a,b –жай,stringнемесе нұсқағыштиптегіайнымалылар |
|
a, b ... мәндерін f файлға жазады.Егер файл типтелген болса, онда a, b ... мәндерінің типтері файлдың базалық типімен сәйкес болуы тиіс. Егер файл мәтіндік болса, онда a, b ... мәндері оған мәтіндік түрде шығарылады, бұл кезде шығару форматтарын пайдалануға болады |
Readln(f,a,b,...) |
процедура |
f - Text типтегіайнымалы, a,b -жай,stringнемесе нұсқағыштиптегіайнымалылар |
|
мәтіндік fфайлдан мәндерді a, b ... айнымалыларға оқиды, одан кейін жолдың соңына дейінгі символдарды өткізіп жібереді. readln(f)-тышақыру жолдың соңына дейінгі символдарды жай өткізіп жібереді |
Writeln(f,a,b,...) |
процедура |
f - Text типтегіайнымалы, a,b -жай,stringнемесе нұсқағыштиптегі өрнектер |
|
мәтіндік fфайлға a, b ... мәндерін жазады, одан кейін оған жол соңын белгілейтін символды жазады.a, b ... мәндері файлға мәтіндік түрде жазылады,бұл кезде шығару формат-тарын пайдалануға болады. writeln(f)-тышақыру файлға жол соңын белгілейтін символды ғана жазады |
Eof(f) |
функция |
f - файлдық типтегі айнымалы |
boolean |
егер файлдық нұсқағыш файлдың соңында тұрған болса True,және кері жағдайда Falseқайтарады |
Eoln(f) |
функция |
f - Text типтегі айнымалы |
boolean |
егер файлдық нұсқағыш жолдың соңында тұрған болса True,және кері жағдайда Falseқайтарады |
SeekEof(f) |
функция |
f - Text типтегі айнымалы |
boolean |
бос орын, табуляциялаужәне жаңа жолға өту символдарын өткізіп жіберіп, одан кейін егер файлдық нұсқағыш файлдың соңында тұрған болса True,және кері жағдайда Falseқайтарады |
SeekEoln(f) |
функция |
f - Text типтегі айнымалы |
boolean |
бос орын, табуляциялаусимволдарын өткізіп жіберіп, одан кейін егер файлдық нұсқағыш жоллдың соңында тұрған болса True,және кері жағдайда Falseқайтарады |
FileSize(f) |
функция |
f - fileтиптегі айнымалы |
integer |
типтелген файлдағы элементтердің санын қайтарады |
FilePos(f) |
функция |
f - fileтиптегі айнымалы |
integer |
типтелген файлдағы файлдық нұсқағыштың позициясын қайтарады (типтелген файлдағы элементтер нөльден бастап нөмірленеді) |
Seek(f,n) |
процедура |
f - fileтиптегі айнымалы |
|
типтелген файлдағы файлдық нұсқағыштыn-ші элементке жылжытады(нөмірлеунөльден басталады) |
Truncate(f) |
процедура |
f - fileтиптегі айнымалы |
|
файлдық нұсқағыштың ағымдағы позициясынан бастап файлдың соңына дейінгітиптелген файлдың барлық элементтерін жояды |
Rename(f,name) |
процедура |
f - файлдық типтегі айнымалы, name -string |
|
файлдық f айнымалымен байланысқан файл аталуын өзгертеді. Файлжабық болуы тиіс. |
Erase(f) |
процедура |
f - файлдық типтегі айнымалы |
|
файлдық f айнымалымен байланысқан файлды жояды. Файлжабық болуы тиіс. |
Кесте 6.3 Жүйелік процедуралар және функциялар
Аталуыжәнепараметрлер |
Процедура н/ефункция |
Параметрлердің типтері |
Қайтарылатын мәннің типі |
Амал |
Sleep(ms) |
процедура |
ms - integer |
|
программаның орындалу барысында ms миллисекундке паузаны жүзеге асырады |
Cls |
процедура |
|
|
Шығару терезесін тазартады |
Halt(n) |
процедура |
n - integer |
|
Программаны аяқтайды. Шығару терезесіне "Программа Halt(n) шақыру арқылы аяқталды" деген ескертуді шығарады |
Halt |
процедура |
|
|
ескертуді шығармай программаны аяқтайды |
Assert(b) |
процедура |
b - boolean |
|
Егер b=False болса, онда арнайы EAssertionFailed болдырмауды генерациялайды. Программадағы тұжырымдардың орындалуын тексеру үшін пайдаланылады. |
Assert(b,mess) |
процедура |
b - boolean, mess - string |
|
Егер b=False болса, онда mess хабарламасы бар арнайы EAssertionFailed болдырмауды генерациялайды. Программадағы тұжырымдардың орындалуын тексеру үшін пайдаланылады. |