Матрицамен Жұмыс

Автор работы: Пользователь скрыл имя, 03 Января 2014 в 22:41, курсовая работа

Краткое описание

Бағдарлама жазуда «алгоритм» ұғымы басты роль атқарады. Алгоритм – орындаушыға белгілі бір мақсатқа, нәтижеге жетуге арналып жазылған нұсқаулардың жүйеленген, әр қадамында бір әрекетті іске асыратын нұсқау оператор болып табылады. Команда бірнеше операторлар қоспасынан да тұруы мүмкін. Есептерді шығарғанда, алгоритм құрғанда белгілі бір ЭЕМ мен бағдарламалау тілінің мүмкіндіктерін ескеру керек. Бағдарлама бірнеше бөлімнен құралып жазылады: сипаттау бөлімі, процедуралар мен функциялар бөлімі, негізгі бөлім. Паскаль тіліндегі бағдарламада арнайы стандартты процедуралар қолданады. Процедура - аты бойынша қатынас құруға болатын операторлар тізбегі.Writeln процедурасы Паскальдың стандартты немесе тіркелген процедурасына жатады.

Содержание

КІРІСПЕ 4
1 ЖАЛПЫ БӨЛІМ 6
1.1 Пәндік аумақты сипаттау 6
1.2 Бағдарламалау тілінің элементтеріне шолу 12
2 АРНАЙЫ БӨЛІМ 18
2.1 Тапсырманың жалпы қойылымы 18
2.2 Құрылымдық және функционалдық сұлбалар 19
2.3. Модульдерді, процедуралар мен функцияларды сипаттау 25
2.4 Идентификатор кестесі 29
ҚОРЫТЫНДЫ 31
ПАЙДАЛАНҒАН ӘДЕБИЕТТЕР ТІЗІМІ 32
ҚОСЫМША А 33
ҚОСЫМША Б 35
ҚОСЫМШ В 36

Прикрепленные файлы: 1 файл

КУРСОВАЯ_МАТРИЦАМЕН ЖҰМЫС-исправ.doc

— 455.00 Кб (Скачать документ)

334 өлшемдегі С матрицасы берілген. Жолдың нөмерін, максималды элементтердің суммасын табу керек. [4, б. 118-122]

Бұл жағдайда матрицаны  кездейсоқ сандармен толтырамыз. Кезекті жолдың элементтерінің суммасын s белгілейміз, max –максимальды сумма. Ізделініп отырған жолдың нөмірі ретінде imax бүтін санды айнымалыны енгіземіз, оған ағымдағы i бағанының нөмерін енгізетін боламыз, егер s>max қатынасы орындалса. s айнымалысын i бойынша ішкі циклдің әрбір қадамында инициализациялау (өйткені элементтердің суммасы әрбір жолда қайтадан ізделінеді)керек, сонда, max айнымалысы сияқты барлық матрица үшін ізделінеді және екіінші циклға дейін бір рет инициализацияланады.

var c:array [1..3,1..4] of real;

i,j,imax:integer;

s,max:real;

begin

{Матрицаны оның шығысымен қалыптастыру}

writeln;

write (' C матрицасы');

for i:=1 to 3 do begin

writeln;

for j:=1 to 4 do begin

c[i,j]:=random*10

{0-ден 10 дейінгі натурал сандар};

write (c[i,j]:6:2);

end;

end;

{Бағана нөмерін іздеу және нәтижені шығару}

max:=-1e30;

for i:=1 to 3 do begin

s:=0;

for j:=1 to 4 do s:=s+c[i,j];

if s>max then begin

max:=s;

imax:=i;

end;

end;

writeln;

writeln ('Жол нөмері=',imax);

end.

 

Матрицаның бағанында типтік алгоритмдер жоғарыда көрсетілгенге ұқсас жүзеге асуы мүмкін, ол үшін i және j бойынша циклдердің орындарын ауыстырса жеткілікті.

Бағдарламада белгілі бір қайталанатын іс-әрекеттерді, атау бойынша бөлек жазып, атауы арқылы бір немесе бірнеше рет іске қосуға болатын бағдарламаның бөлігін қосалқы бағдарлама деп атайды. [5, б 173-178]

Қосалқы бағдарламаларды қолдану арқылы бағдарламаларды ықшамдауға болады.

Тurbo Pascal бағдарламалау тілінде қосалқы бағдарламаның екі түрі қолданылады:

*Процедура;

*Функция.

Тurbo Pascal бағдарламалау тілінде айнымалыларды негізгі бөлімде сипаттау түрі – ауқымды айнымалылар деп аталады. Егер айнымалылар қосалқы бағдарламада сипатталса, онда олар жергілікті айнымалылар деп аталады. Сондай-ақ негізі бағдарламада қосалқы бағдарламаны шақыруда қолданылатын айнымалыларды нақты айнымалылар деп атайды. Ал қосалқы бағдарламаның атауында берілген айнымалыларды формалды айнымалылар деп атайды.

Әрбір қосалқы бағдарламаның атауы болады және олар айнымалыларды сипаттау бөлімінен құралып, операторлық жақшаларда операторлық жақшаларда орналасқан командалар жиынынан тұруы мүмкін. Көмекші бағдарламалар. Тұрмыста бағдарлама құрған кезде кейбір нұсқаулар жүйесі орындайтын және белгілі бір беретін іс-әрекеттер бағдарламаның орындалу барысында бір, не бірнеше рет пайдаланылуы мүмкін. Әрине, бұл әрекеттер тобын қанша рет пайдалансақ сонша рет бағдарламамызға қайталап жазуымызға болады, әрине, ол тиімді болмас еді. Осы іс-әрекеттерді топтап, бірақ рет жазып, Паскальда көмекші құрал, бағдарлама ретінде беруге болады екен. Қажет кезінде осы көмекші бағдарламаны шақырып, бағдарламамыздың кез келген жеріне пайдалана аламыз.[6, б 325-230]

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

Көптеген операторлар  арқылы жазылған бағдарламаны монолиттік бағдарлама деп, ал функциялар мен процедуралар арқылы берілген бағдарламаларды модульдік бағдарлама дейміз.

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

Жеке бағдарлама түрінде бөлек жазылған, қажетті кезінде оған оралып, оны пайдаланып отыруға болатын негізгі бағдарламаның арнайы бөлігін қосалқы бағдарлама, подбағдарлама дейді. Қосалқы бағдарламаға автоматты түрде енуге және одан солай шығуға да болады. [7, б 131-135]

Қосалқы бағдарламаны пайдаланудың төмендегідей мүмкіндіктері бар:

- негізгі бағдарламаның көлемі кішірейеді;

-негізгі бағдарламада пайдаланылған айнымалыларды қосалқы бағдарламада да пайдалауға болады;

- қосалқы бағдарламаға берілген жады ұяшықтарын ол орындалмай тұрғанда бос ұяшық ретінде, бос айнымалы ретінде пайдалануға болады;

- қосалқы бағдарламаны пайдалану құрылымдық бағдарламалауға мүмкіндік береді.

Паскаль тілінде алгоритмдік тіл тәрізді қосалқы бағдарламаның екі түрі пайдаланылады. Олар: процедура және функция.

Бір бағдарламада бір немесе бірнеше процедура және функция пайдаланылуы мүмкін.

Паскаль тілінде процедуралар мен функциялар бағдарламаның басында айнымалылар белгіленіп болғаннан кейін жазылады.

1.2 Бағдарламалау тілінің элементтеріне шолу

 

 

Бағдарламалау элементтеріне  модульдер, айнымалылар, тұрақтылар, операторлар, жазбалар кіреді.

Модуль деп бағдарламашы жаңа бағдарламлар жасау үшін қолдана алатын, қосалқы бағдарламаның алдын ала компилирленген кітапханаларын айтады. Паскаль тілінде бағдарлама жасағанда модульдер *.tpu (Turbo Pascal Unit) типке ие арнайы кітапханалық файлдардан қосылады. Модуль өздігінен орындалатын бағдарлама болып табылмайды, бірақ оның қосалқы бағдарламалары басқа бағдарламалармен қолданылады.

Модуль құру үшін *.pas кеңейтілген файлды жазу керек. Модулдің жалпы құрылымын кеңінен қарастырайық.

unit Модуль Аты;

Модуль аталған басымен (заголовок) ашылады. Сондықтан модуль аты бағдарламадан uses ИмяМодуля операторымен қосылуы мүмкін. Атаулары қарапайым тіл ережесіне сай құрылады. Паскаль құрамына стандартты модульдер қатары кіреді. Солардың кейбіреуіне тоқтала кетейік:

- dos -- dos модулінде  операциялық жүйе мен файлды өңдеумен байланыстағы қосалқы бағдарламалар болады;

- strings – модулі нөл байтпен аяқталатын символды бағанның болуын қамтамасыз етеді;

- graph – модулінде әртүрлі геометриялық фигураларды салуға арналған 50 астам графикалық қосалқы бағдарламадан тұратын  кітапхана болады;

- crt – модулінің қосалқы бағдарламалары клавиатура кодымен, түсімен, терезе жіне дыбысымен кеңейтілген экранның текстік режимін бақылауды қамтамасыз етеді;

- printer – принтерге бағдарламаны шығару үшін қызмет ететін модуль.

Осы айтылған модулдердің кез келгенін қолдану үшін uses операторымен  қосу жеткілікті.

Бұл курстық жұмыста бағдарлама Crt модулін қолданғандықтан, кеңінен қарастыруды жөн көрдім.

Crt модулі  текстік режимде консоли экранымен жұмыс істеуге арналған продецура мен функциядан тұрады. Басқа стандартты модулдер сияқты crt компиляторға біріккен және turbo.tpl файлында тұрады.

Текстік режимдегі экран жеке жолдарға бөлінеді, ал әрбір жол –позицияға бөлінеді және әрбір позицияға ASCII жиынынан 1 символ ғана орналасуы мүмкін. [8, б 182-187]

Crt модулінің ерекшелігі барлық экранмен ғана емес, онда белгіленген тіктөртбұрышты тереземен де жұмыс істеуге үмкіндік береді. Сонымен қатар тексттің барлық кірісі, шығысы, айналуы терезе шегінде жүреді.  Үнсіздікпен терезе өлшемдері экран өлшемдерімен сәйкес келеді, бірақ оларды Window стандартты процедураларына қарасты анық бекітуге болады. (x1,y1,x2,y2);, где (x1, y1) и (x2, y2) – сәйкесінше терезенің сол жақ жоғары және оң жақ төменгі бұрыштары.

Әрбір файлмен жұмыс жасау үшін text типтегі айнымалы бейнеленеді.

var f:text;

 

 

1-сурет. Текстік файл

Оны файлдық айнымалы деп атайды. Егер бағдарлама бірнеше  файлды бір уақытта өңдейтін болса, олардың әрқайсысына сондай айнымалы бейнеленеді. Олар тізбектеле өңделетін  және әрбір келесі файл алдығы файлмен жұмысты аяқтағаннан кейін ашылатын болса, бірнеше файлдарға бір айнымалыны қолдануға болады. Файлмен барлық жұмыс файлдық айнымалымен жүреді, файл аты төмендегі оператормен тек бір ғана көрсетіледі:

assign (f,'файл аты');

мұнда f – алдында бейнеленген файлдық айнымалы. Бұл оператор файлдың ашылуын қадағалайды және қатты немесе иілгіш дискте файлы бар айнымалыны байланыстырады. Файл аты ретінде қатты немесе ауыстырмалы дисктегі файлға абсолютты немесе қатысты жол көрсетілуі мүмкін.

assign (f,'data.txt');

ағымдағы папкадан data.txt аты бар файл ашылатын болады;

assign (f,'a:\my.dat');

дискетаның түпкі пакасынан my.dat аты бар файл ашылатын болады.

Файл аты қолданушымен клавиатурадан енгізілуі мүмкін.

var name:string; f:text;

begin

writeln ('Файл  атын енгізіңіз:');

readln (name);

assign (f,name);

Соңында файл атын командалық жолдың параметрімен бағдарламаға жіберуге болады. [9, б 147-152 ]

Байланыстырғаннан кейін файлды ашу  керек. әрбір файл үш режимнің бірінде  ғана – мәліметтерді оқу үшін, жаңа мәліметтерді (егер файл болған болса, оның бұрынғы мазмұны өшірілетін болады)жазу үшін немесе файл соңына мәліметтерді толтыруда ашылуы мүмкін. Егер файлдан мәліметтерді алдымен оқып, кейін осы файлды қайта жазу керек болса, файлды оқу үшін ашу керек,оқығаннан кейін оны жауып және қайтадан жазу үшін ашу керек. Файлды ашу үш оператордың біреуімен орындалады:

reset (f); -- оқу үшін ашу;

rewrite (f);  -- жазу үшін ашу;

append (f);  -- толықтыру үшін ашу.

Мәліметтерді оқу немесе жазу read, readln, write және writeln операторларымен жүзеге асады, бірақ бұл стандартты процедуралардың алғашқы параметрі болып файлдық айнымалының аты көрсетіледі. [10, б 345-347]

129-132]

var a,b,c:real; f1,f2:text;

begin

assign (f1,'read.txt');

assign (f2,'write.txt');

reset (f1);  

{read.txt файлын оқу үшін аштыңыз,}

rewrite (f2);

{ал write.txt файлы жазу үшін}

read (f1,a,b);

{read.txt файлынан 2 санды оқыдыңыз}

c:=(a+b)/2;

writeln (f2,c:6:2); {c мәнін және

write.txt файлына жолды аударуды жаздыңыз}

файлмен барлық операция аяқталғаннан кейін оны жабу керек, әсіресе, мәліметтерді жаз және толықтыру жүрген болса.

close(f);

— f.файлды айнымалымен байланысқан файлды жаптыңыз. Міне, осылай файлмен жұмыс істеуге болады.

Турбо Паскальда оператор екіге бөлінеді: қарапайым және құрылымдық.

Қарапайым операторға мыналар  жатады:

- Меншіктеу операторы (:=);

- Шартсыз өту операторы (go to);

- Процедура кіретін оператор (функция).

Құрылымдық оператор келесі операторлардан тұрады:

- Құрама оператор (ол begin деген сөзден басталып,  еnd сөзімен аяқталады);

- Шартты оператор (if, case);

- Қайталау оператор (repeat, while, for);

- Біріктіру операторы (with);

Паскальда  шартсыз  өту операторын go to  операторы  және break, continue, exit, halt процедуралары  кіреді. Шартсыз өту операторы бағдарламада жиі қолданылады.

Шартсыз өту операторы (go to) қарапайым оператор. Ол бағдарлама жұмысын өзгертіп тұрады. Шартсыз өту операторының жалпы түрі мынандай:

GO TO <таңба>

Мұндағы GO TO – Турбо Паскаль тілінде келесі шартты орындайды, ал <таңба> - идентификатор немесе 0 ден 9999 дейінгі бүтін сан. Егер бағдарламада бұл оператор болса, онда келесі Label-ға өтеді. Таңбадан кейін қос нүкте қойылады (<таңба>:).

Жалпы алғанда таңбаларды бағдарламада қолданбаған жөн. Ал егер қажет болған кезде келесі екі ережені есте сақтау керек:

1)Таңбаларды бағдарламаның орындалу ретін тек алға қарай (төмен қарай) орындалуы керек. Ал бағдарламаның ретін кері қарай орындалуы қажет болса циклді қолдану керек.

2)Таңба мен бағдарламаның орындалу ретін өзгертетін оператор ара қашықтығы жақын болуы тиіс. Олар бір бетте немесе бір экранда орналасқаны жөн.

Құрылысына қарай күрделі болып саналатын операторлардың (тармақталу, таңдау, қайталау) бірі тармақталу операторына тоқталайық.

Тармақталу операторы  көрсетілген шартқа байланысты құрамына кіретін операторлардың орындалу орындалмауын қамтамасыз етеді. Паскаль тілінде шартты көшу операторы if операторы арқылы беріледі.

Жалпы түрі:

If  <шарт>  then  <1-операторы>  else  <2-операторы>;

Мұнда еlse қызметші сөзінің  алдына “;” қойылмайды.

Қысқа түрі:

If  <шарт>  then  <операторы>;

Шартты оператордың  синтаксистикалық диаграммасы төменде  көрсетілген.

 

 

 


 

 

 

 

 

Берілген оператор келесі бейнеде орындалады. Алдымен if қызметші сөзімен шарт тексеріледі. Нәтижесі бульдік тип болуы шарт. Егер шарт мәні true  болса, онда then қызметші сөзінен кейінгі оператор орындалады. Егер шарттың есептеу нәижесі false болса, онда else қызметші сөзінен кейінгі оператор орындалады. Егер else қызметші сөзінен кейін шарт орындалмаса, онда басқару шарттан кейінгі операторға беріледі. Шарт қатынас немесе логикалық өрнектер түрінде жазылады. [9, б 147-152 ]

Қайталанатын  операторлар тобы циклдің денесін  құрайды. Паскальда циклдің үш түрі бар:  for (үшін циклі), while (әзір), repeat (дейін). Қайталау саны белгілі болған жағдайда үшін циклін пайдаланған жөн. Ал қайталау саны белгісіз болғанда әзір, дейін циклдерін қолданамыз, бірақ циклге кіру немесе циклден шығу шарттары белгілі жағайда қолданылады. Біздің тапсырма үшін циклін қолданатын болғандықтан, толығырақ қарастырайық.

For-do циклі қайталау  саны алдын ала белгілі болған  жағдайда қолданылады. 

Информация о работе Матрицамен Жұмыс