Файлға шығару инструкциясы
Лабораториялық жұмыс №1
Тақырыбы: Енгізу және шығару операторлары.
Мақсаты: Паскаль тілінін негізгі операторлары қолданып, қарапайым программа құра білу; құрылған алгоритмді ДЭЕМ-ға енгізу білу.
Теориялық мәлімет: Программалаудың кезеңдері:
Есептiң қойылу шартын талдау
Айнымалы шамаларға аттар тағайындау
Математикалық моделін қарастыру
Алгоритм, блок-схема жазу
Программалау тілінде программа жазу
Программа нәтижесін алу
Алгоритм - есепті шығару үшін орындаушыға белгілі бір қатаң заңдылықпен берілетін командалар нұсқаулар тізімі. Алгоритм структурасына қарай үш түрге бөлінеді: сызықтық, тармақталған және қайталану. Сызықтық алгоритм дегеніміз есеп шарты тармақталмайтын және қайталану элементтерінсіз орындалатын нұсқаулар жиыны. Тармақталған алгоритм деп нұсқауда берілген шарт бойынша есеп шығару жолының бірнеше жолға тармақталуын атаймыз. Қайталану алгоритм - нұсқаулар жүйесінің, не формулалар мен амалдардың шартты және шартсыз түрде қайталануын айтамыз.
Шамалардың негізгі типтері. Турбо Паскаль төрт негізгі типтері бар: іnteger (бүтін), real (нақты) , char (символдық), boolean (логикалық).
Integer [-32768; +32768], Real [2.9е-39-1.7е38] аралықта мәндер қабылдайды.
Енгiзу жане шығару операторлары. Write инструкция экранға хабарлау және айнымалы мәндерiн шығаруға арналған.
Мысалы:Write(‘Есептеу нәтижесi’);
Write(‘тендеу түбiрi: х1=’,х1,’х2’, х2);
Read инструкциясы айнымалыға клавиатурадан мәндер енгiзу үшiн арналған.
Мысалы: Read(a,в,c); Read(Cena,kol);
Жай программа курылымы .
Program программа аты;
Var
{айнымалы бейнелеу }
Begin
{программа инструкция}.
End.
Мысалдар: Шарттарды қарастыра отырып, төмендегі тапсырмаларды орындап, нәтижесін ДЭЕМ-да алу.
1. Әрбір оператордың жұмысына көңіл аудара отырып, төменде көрсетілген программаның нәтижесін алу;
Program prim;
Var c,s:real;
begin
read(r);
c:=2*pi*r;
s:=pi*sqr(r);
writeln ('C=',c);
writeln ('s=',s);
end.
Ескерту: r айнымалыcына сандық мәнін енгізуді ұмытпа.
Бақылау тапсырмалары(А)
1. Паскаль тілінде жазу.
1. а) в)
2. а) в)
3. а) в)
4. а) в)
5. а) в)
6. а) в)
7. а) в)
8. а) в)
9. а) в)
10. а) в)
11. а) в)
12. а) в)
13. а) в)
14. а) в)
15. а) в)
16. а) в)
17. а) в)
18. а) в)
19. а) в)
20. а) в)
Бақылау тапсырмалары(В)
2. Есептеңіз
1. х, у жене z айнымалыларының мәндерініњ орнын ауыстырыңдар. х-те у айнымалысының мәні, у-те z айнымалысының мәні, ал z-те - х айнымалысының бұрынғы мәні болсын.
2. шењберлердіњ берілген сыртқы және ішкі радиустары бойынша сақинаның ауданын табыңдар
3. Берілген а саны үшін, көбейтуден басқа ешбір арифметикалық операцияны пайдаланбай, а-ді үш операциядан кейін және - ны төрт операциядан кейін алу керек.
4. m градус және n минут болатын бұрыштың шамасы берілген. Бұл шаманы радиандар түрінде жазыңдар
5. Берілген екі сан үшін оларды орташа арифметикалық кубтерін және орташа геометриялық модульдерін табыңдар?
6.Табандары а және b, үлкен табандағы бұрышы болатын тең б‰йіpлi трапецияның ауданын табыңдар.
7. Моторлы қайықтардың ара қашықтықтары - S км. Біріншісі -; екіншісі - кмсаѓ. жылдамдықпен козғалғанда, өзен ағысының жылдамдығы кмсағ болғанда, t сағаттан кейін олардың ара қашықтығын анықтаңдар.
8. Екі орынды және үш орынды екі натурал сан берілген. Екі орынды және үш орынды сандарыдыњ цифрларыныњ қосындыларындағы айырмашылықты табыңдар.
9. Натурал сан n-миллиметрмен көрсетілген қашықтық берілген. Бұл қашықтықтан метрлерді, сантиметрлерді және миллиметрлерді бөліп жазыңдар. Мысалы, 12345 мм дегеннен 12 м 34 см 5 мм деген жауап аламыз.
10. Мемлекеттегі халыктың саны, ұлттық табысы және көлемі белгілі. Осы мемлекеттегі халыќтың тығыздығын және жан басына шаққандағы табысын анықтаңдар.
Бақылау сұрақтары
1. Паскаль тілінін негізгі операторларын көрсету.
2. Программалаудың негізгі құрылымы қандай?
3. Енгізу-шығару процедуралары қалай жүргізіледі?
4. Сызықтық операторды қандай операторлар орындайды ?
Жұмысты орындауға тапсырмалар
1. Лекциялар, әдебиеттер, әдістемелік нұсқау бойынша теориялық материалды қайталау.
2. Бақылау сұрақтарына ауызша жауап беру.
3. Тапсырма вариантын таңдау және орындау
4. Есеп жазу
Есеп мазмұны
1. Жұмыстың тақырыбы және мақсаты.
2. Бақылау сұрақтарына жауап жазу.
3. Тапсырманың блок-схема, алгоритмі.
4. Паскаль тілінде программасы.
Лабораториялық жұмыс № 2
Тақырып: Шартты және құрама операторлар.
Мақсаты: Таңдау, шартты, құрама операторларын пайдаланып, тармақталған алгоритмге программа құру дағдыларын үйрену;
Теориялық мәлімет: Шартты оператор кез келген шартты тексеруге және тексеру нәтижесіне байланысты сол немесе басқа іс-әрекетті орындауға мүмкіндік беруі. Шартты оператордың құрылымы келесі түрде болады;
if шарт then oпер1 else oпер2
мұндағы if, then, else – қызмет сөздер ( егер, онда, әйтпесе) шарт логикалық типтегі кез келген өрнек; oпер1, oпер2 - Паскаль тілінің кез-келген операторы. Шартты алгоритм келесі алгоритм бойынша жұмыс істейді. Бірінші шарт шартты өрнек есептеледі. Егер нәтижесі TRUE(ақиқат) болса, онда опер1 орындалады. Егер нәтижесінде FALSE (жалған), онда onер2 орындалады да, onер1 орындалмайды.
GOTO көшу операторы: GOTO операторы осы операторда көрсетілген белгі бойынша сол белгіден кейін тұрған операторға басқаруды береді.
Көшу операторына қолдану барысында келесі ережелер сақталуы керек.
көшу операторына көрсетілген белгі сол көшу операторы тұрған блокта немесе модульде болуы керек;
құрамдас оператордан көшуге болмайды;
шартты оператордың бір тармағынан басқа тармағына басқаруды беруге болмайды;
циклдің ішіне оның басын аттап кіруге болмайды;
Case таңдау операторы. Сase операторы if операторының санын азайтуға мүмкіндік береді. Case операторы селектордан және операторлар тізімінен тұрады. Жалпы мына түрде жазылады.
Case cелектор of
тұрақты тізім 1: begin (инструкция тізімі1);
тұрақты тізім 2: begin (инструкция тізімі2);
End;
тұрақты тізім n: begin (инструкция тізімі n);
End;
else
Begin
{егер селектор мәні тұрақты тізімдердегі бірде – біреуіне қанағаттандырмаса}
end;
Case инструкциясы былай орындалады. Бірінші case сөзінен кейінгі өрнек мәні есептеледі, содан кейін алынған мән біртіндеп тұрақты тізімдердегі тұрақтылармен салыстырылады. Егер өрнек мәні тізімдегі тұрақтымен тең болса, онда осыған сәйкес инструкция тізімі орындалады да, case инструкциясының орындалуы аяқталады. Егер өрнек мәні тұрақтылардың ешқайсысымен сәйкес келмесе, онда else сөзінен кейінгі инструкция тізімі орындалады. Сase инструкциясында else жазбауға болады. Бұл жағдайда, егер өрнек мәні тұрақтылардың ешқайсысымен тең болмаса, онда case инструкциясынан кейінгі программа инструкциясы орындалады.
Мысалдар: Шарттарды тексере отырып, төмендегі тапсырмаларды орындап, ДЭЕМ-да нәтижелерін алу.
1. Төмендегі теңдеулер жүйесіне программа құру.
Program Prog;
Var
x,f:real;
Begin
Writee(‘х‐ке мән енгіз ‐’);
Read(x);
if x0 then f:=2*sin(sqr(x))+0.25
else f:=cos(x);
WRITE ('F=',f);
END.
2. Тµмендегі программаның орындалу барысында қандай нәтиже алынады?
Program UROK;
Var n: integer;
Begin
Read(n);
Case n of {* таңдау операторының басы *}
1: writeln('Математика');
2: writeln ('Информатика');
3: writeln ('Физика');
4: writeln ('История');
5: writeln ('Философия');
end; end.
Мысалы:ерs дәлдікпен есептеу программасы .
Program SumR;
Const eps = 0.01;
Label 10;
Var s, i, r: real;
begin
S: = 0.0: I = 0.0;
10: i: = i+1;
r: = 1i;
s: = s + r ;
if ( reps 5 ) then goto10;
writeln (' қатар қосындысы =', s);
end.
Бақылау тапсырмалары.(А)
Төмендегі функцияларды есептеу программаларын құру керек X,Y,Z – нақты айнымалылар:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13. Егер a,b,c сандарының арасында өзара қарама-қарсы екі сан бар болса, онда қалған үшінші санды, ал болмаған жағдайда “жоқ” деген сөзді алыңыз.
14.
15. АХ5 теңсіздігін шешің.
16.
17.
18.
Бақылау тапсырмалары.(В)
1. Қалааралық телефонмен сөйлесу бағасын есептеу программасын жаз. Бастапқы мәндері қала коды мен сөйлесу уақыты(кем дегенде 4 қала).
2. A,B,C сандарының ішінде, ең болмағанда бір жұп сан бар болатынын анықтау программасын құр.
Нұсқау: а) жұптығын анықтау үшін ROUND (x) функциясын пайдалу керек x – бүтін бөлігі.
3. Ортасы координата басында жатқан R радиусы бар шеңберде (х, у) координатасы жата ма анықтаңдар.
4. (х, у) н‰ктесініњ координаталары берілген. Нүкте қандай координата ширегінде орналасќан? Егер нүкте осьтердіњ бірінде орналасса, онда оны айтыңдар.
5. р, q, r-сандары берілген, тиісінше Болаттың, Канаттың және Мараттың бойлары. Балалардын ен ұзыны және ең аласасы кім?
6. Үш орынды натурал санның әрбір келесі саны алдынғысынан артық болатыны рас па?
7. d саны теңдеуінњ немесе тендеуініњ т‰бipi бола ала ма?
8. Тµрт орынды натурал санның сандар косындысы бip орынды сан бола ма, тексеріњдер
9. Кезкелген а, b жене с үшін теңдеуініњ ең болмаса бір наќты т‰бipi бар екенін анықтаңдар
10. (х, у) координатасы бар нүкте координата осьтерініњ бipiндe жата ма? Анықтаңдар.
11. Есептеп шығарыңдар. max(min(a,b), max(c,d)).
12. Берілген х үшін функцияның мәнін келтіріњдер немесе оның бұл х үшін анықталмағанын айтыңдар:
Бақылау сұрақтары.
1. Шартты оператордың жазылу структурасы қандай?
2. Шартты оператордың қандай түрлері бар?
3. Паскаль тілінде құрама шарттар қалай жазылады?
4. Таңдау операторының жазылу структурасы және ол қалай жұмыс жасайды?
5. Тармақталу процесін қандай операторлар орындай алады?
Жұмысты орындауға тапсырмалар
1. Лекциялар, әдебиеттер, әдістемелік нұсқау бойынша теориялық материалды қайталау.
2. Бақылау сұрақтарына ауызша- жазбаша жауап беру.
3. Тапсырма вариантын таңдау және орындау
4. Есеп жазу
Есеп мазмұны
1. Жұмыстың тақырыбы және мақсаты.
2. Бақылау сұрақтарына жауап жазу.
3. Тапсырманың блок-схема, алгоритмі.
4. Паскаль тілінде программасы.
Лабораториялық жұмыс №3
Тақырыбы: Циклдік операторлар (Цикл-әзір, цикл-дейін, цикл параметрлі )
Мақсаты: Циклдық операторларды қолданып, циклдік программаларды құру дағдыларын бекіту;
Теориялық мәліметтер: Турбо Паскаль тiлiнде программаның кайталанатын фрагментiн программалау үшiн үш түрлi оператор бар.
Инструкция FOR.
For цикл параметрі :=бастапқы мәнi to соңғы мәнi do оператор
мұндағы for, to, do(үшiн, дейiн, орында) - Паскаль тілінің қызметші сөздері.
цикл параметрi - айнымалы, типi integer; бастапқы мәнi- параметрдің бастапқы мәнi, cоңғы мәнi- соңғы мәнi –типі іnteger, оператор ‐ кез келген операторы.
Егер for иструкциясындағы to сөзiнiң орнына downto жазса, онда параметр өспейдi, керiсiнше кемидi. Мысалы,
For j:=10 downto 0 do
Writeln (j);
Экранға 10-нан 0-ге дейiнгі сандар шығады.
While инструкциясы. While инструкциясы, егер программа инструкциясының тiзiмi бiрнеше рет қайталанса, бiрақ қажеттi қайталану саны белгiсiз болса және ол тек жұмыс кезiнде айқындалуы мүмкiн болса, яғни есептеу барысында анықталатын болған жағдайда қолданылады. Жалпы түрде while инструкциясы былай жазылады.
While шарт do
Begin
{инструкция тiзiмi}
end;
мұндағы: шарт – логикалык типтегi өрнек.
While инструкциясы былай орындалады. Алдымен шарт шарт тексерiледi. Егер шарт орындалмаса (шарт мәнi false) онда begin және end арасында орналасқан цикл инструкциясы орындалмайды, осымен while инструкциясы аяқталады. Егер шарт орындалса (шарт true болса), онда do кейiнгi тұрған begin және end арасындағы цикл инструкциясы орындалады, осыдан кейiн шарт тағы тексерiледi. Егер шарт орындалса, онда цикл инструкциясы тағы да орындалады. Осылай шарт жалған болғанға дейiн кайталана бередi.
REPEAT инструкциясы. Repeat инструкциясының жалпы түрі:
Repeat
begin
{программа иинструкциясы}
End;
Until шарт
Repeat инструкциясы былай орындалады. Алдымен Repeat сөзінен кейінгі инструкция орындалады, одан кейін шарт тексеріледі. Егер шарт жалған болса(false), онда Repeat және until арасындағы цикл инструкциясы тағы бір рет орындалады. Егер шарт ақиқат болса(true), онда цикл орындалуы аяқталады.
Randomize ‐ процедурасы кездейсоқ сандар генераторын іске қосады. Бұл машина жұмыс істеп тұрғанда уақыт өзгерісін есептейді, яғни үнемі өзгерісте болады. Ал, оның әрбір мәніне Random функциясының әртүрлі мәні сәйкес келеді.
Random‐[диапазон:word] ‐ егер диапазон көрсетілмесе, 0=X1 аралығындағы кездейсоқ Х санын береді. Егер диапазон берілсе, онда 0=Xдиапазон аралығындағы кездейсоқ Х санын береді. Random функциясынан бұрын міндетті түрде Randomіze процедурасын қолдану керек. Мысал:
Program prog;
Var
A:real;
Begin
Randomize;
A:=1000*random;
Writeln(a);
End.
Мысалы:қатар қосындысын, үш операторды қолданып программасын құрамыз.
1. {FOR операторы бойынша }
program summer;
var
i:integer {қатар элемент номерi }
summ:integer;{қатар қосындысы}
begin
summ:=0
for i:=1 to 5 do
summ:=summ+m;
writeln(’Summ=’,summ);
end; end.
2. { WHILE операторы бойынша }
Program summa;
var i,summ:integer;
begin
s:=0; i:=1;
while x=10 do begin
summ:=summ+i;
i:=i+1;
end; writeln(‘summ=’,sum);
end.
3. {Repeat операторы бойынша}
Program summa;
var i,summ:integer;
Begin
S:=0; i:=1;
Repeat begin
Summ:=summ+i;
I:=i+1; end;
Until i10;
write ('summ=',summ);
end.
Мысал 2. S‐тің мәнін есепте.
Program pr2;
var
i,j:integer;
s,s1:real;
begin
s:=0; s1:=1; {Қосынды және көбейтіндінің бастапқы мәндері}
write(‘n,m‐ге мән енгіз, Enter пернесін басыңыз’);
read(n,m);
for i:=1 to n do begin { сыртқы цикл }
S:=s+s1;
for j:=1 to n do { ішкі цикл }
s1:=s1*sqr(i+j)(i*j);
end;
writeln(‘S=’,s);
end.
Программада бір қайталану операторының ішінде екінші қайталану операторы орналасқан және олардың екеуінің де жоғары мәндері айнымалы. Ішкі қайталану операторларында есептегіштің төменгі мәндері сыртқы есептегіш мәндеріне тәуелді.
Тапсырма варианттары(А)
1. , дәрежеге көтеру операциясын қолданбай есептеңіз.
2. 1 мен 10 аралықтарындағы кездейсоқ сандарды экранға шығару және арифметикалық ортасын есептеу программа кұрың. (Нұсқау: Randomize процедурасы мен Random функциясын қолдан).
3. 12 санының көбейту таблицасын мына түрде экранға шығар.
1 х 12=12
10х12=120
4. дәрежеге көтеру операциясын қолданбай есептеңіз.
5. Көбейту таблицасы‐Пифагор квадратын экранға шығару программасын жазыңыз.
6. N бүтін санның цифрлар санын анықтау үшін программасын жаз.
7. Қосындыны есептеу программасын жаз.
8. Теңдікті қолданып π санына жуық мәнін есептеу программасын жаз. .
9. 3‐ке бөлінетін екі мәнді барлық сандардың квадраттарының қосындысын есептеу программасын жаз.
10. для х=0 (0,2) 3. функциясының таблицасын экранға шығар
11. для t=-1 (0,1) 2. функциясының таблицасын экранға шығар
12. , х үшін 0.5дан 1.4ға дейін 0.1 қадаммен өзгергендегі мәндер қосындысын табың.
13. функциясының ‐2 мен 2 аралығындағы мәндерінің әрбір 0.5 қадамына сәйкес келетін таблицасын құруға программа жаз.
14. Берілген х үшін есептеңіз.
15. Тригонометриялық функциялардың (sinx, cosx, tgx, ctgx) 0 мен 1800 аралығындағы мәндерінің әрбір 300 қадамына сәйкес келетін таблицасын құруға программа жаз.
16. қосындысын есептеу программасын жаз.
17. Кез келген L‐ден M‐ге дейінгі натурал сандардан 5‐пен 7‐ге қатар қалдықсыз бөлінетін сандарды табу программасын жаз.
18. 100‐ден 700‐ге дейінгі сандардың ішінен 3 және 5 сандарының екеуіне қатар бөлінетін сандарды экранға шығар.
19. функциясының ‐4‐тен 4‐ке дейін 0.5 қадаммен өзгергендегі мәндер таблицасын экранға шығару программасын жаз.
20. 100‐ге дейінгі натурал сандар ішінен 3‐ке және 7‐ге бөлінбейтін сандарды экранға шығару программасын жаз.
Тапсырма варианттары(В)
1. Есептеңіз.
2. Сиымдылығы L литр ыдысқа литр су құйылып тұрса, ол неше минута толады?
3. Радиусы r‐ға тең шар тәрізді ыдысқа сиымдылығы L литр кіші ыдыспен су құйылады. Шарды толтыру үшін қанша рет кіші ыдысты пайдалану керек.
4. Есептеңіз.
5. Есептеңіз.
6. Есептеңіз.
7. Іштендірілген тең қабырғалы үшбұрыштар берілген. Егер олардың ең кішісінің ауданы S‐ке тең болса, сыртқысының ауданы одан К есе артық болу үшін қаншa үшбұрыш салу керек.
8. Есептеңіз.
9. Есептеңіз.
10. Есептеңіз.
11. Есептеңіз.
12. Ұзындығы L‐ге тең тең кесіндіні бірінші рет 2‐ге, ал екінші рет оның бір бөлігі 3‐ке,т.т. бөлінді. Ұзындығы 0,001 ден кіші кесінді алу үшін бөлшектеу процесін неше рет қайталау керектігін тап.
13. Есептеңіз.
14. Есептеңіз.
15. Есептеңіз.
16. Есептеңіз.
17. Есептеңіз.
18. Есептеңіз.
19. Есептеңіз.
20. Есептеңіз.
Бақылау сұрақтары
1. Қандай жағдайда цикл операторлары қолданылады?
2. Анықталған және анықталмаған қайталану процестерін қалай ажыратамыз?
3. Параметрлі цикл операторы қалай жұмыс жасайды?
4. Цикл-әзір және цикл-дейін операторларының арасында қандай өзгешеліктер бар?
5. Қандай жағдайда параметрлі цикл операторын қолдану дұрыс?
6. Цикл және цикл денесі дегеніміз не?
7. Цикл құру үшін қандай мәліметтер қажет?
8. Цикл параметрі дегеніміз не?
9. Іштестендірілген циклдік оператор дегеніміз не?
Жұмысты орындауға тапсырмалар
1. Лекциялар, әдебиеттер, әдістемелік нұсқау бойынша теориялық материалды қайталау.
2. Бақылау сұрақтарына ауызша жауап беру.
3. Тапсырма вариантын таңдау және орындау
4. Есеп жазу
Есеп мазмұны
1. Жұмыстың тақырыбы және мақсаты.
2. Бақылау сұрақтарына жауап жазу.
3. Тапсырманың блок-схема, алгоритмі.
4. Паскаль тілінде программасы.
Лабораториялық жұмыс №4
Тақырыбы: Бір өлшемді массивтерді өңдеу.
Мақсаты: Массивпен жұмыс істеу дағдысын қалыптастыру, оларды енгізу және шығару ерекшеліктерін игеру, программалау үрдістерін пайдаланып циклді программалар структурасын ұйымдастыру дағдысын жетілдіру.
Теориялық мәліметтер: Массивтер деп бiр атаумен берiлетiн бiрыңғай мәндер қабылдайтын реттелген шамалар тiзбегiн айтамыз. Массивтердi колданбастан бұрын, массив атын айнымалыны бейнелеу бөлiмiнде жазылуы керек. Жалпы түрі:
массив‐аты:[төменгі шегі .. жоғары шегі ] of элемент типі
Мысалдар: temper: array [1...3] of Real;
Name: array [1...30] of string[25];
Noef: array [0..2] of integer;
мұндағы array, of (массив) ‐ Паскаль сөзінің қызмет сөзі. Әрбiр массивке 03 алдын-ала оның элементтерiнiң саны ескерiлiп, қатар орналасқан ұяшықтар бөлiнедi. Массивтерді енгізу үшін for циклдық операторын қолданған оңай. Массивтердi шығару дегенiмiз массив элементтерiн экранға шығару.
Мысалдар
1. Апта күнiн және номерiн экранға шығару.
Program days;
var
day:integer [1..7] of string[11];
i:integer;
begin
day[1]:=’nou’,
day[7]:=’bock’,
for i:=1 To 7 do
writeln (i, ' ',day[i]); end.
2. Бір өлшемді массив элементтерін енгізу және өсу, кему реті бойынша сұрыптау.
Program Massiv1;
uses crt;
const t=5;
var m:string;
i,j:integer;
a:array [1..t] of string;
begin clrscr; {Массив элементтерін енгізу}
for i:=1 to t do
begin
write('элемент номері ',i,' : ');
readln(a[i]); end;
{!---Өсу реті бойынша сұраптау---!}
for i:=1 to t-1 do
for j:=i+1 to t do
if a[j]a[i] then
begin
m:=a [i]; a[i]:=a[j];
a[j]:=m end;
writeln;
{Сұрыпталған массив элементтерін экранға шығару}
writeln('‘Массивті өсу реті бойынша сұраптау');
for i:=1 to t do
write(a[i],' ');
{Кему реті бойынша сараптау}
for i:=1 to t-1 do
for j:=1 to t-1 do
if a[j]a[j+1] then
begin
m:=a[j]; a[j]:=a[j+1];
a[j+1]:=m end;
writeln;
writeln;
{Массив элементтерін экранға шығару}
writeln('кему реті бойынша сұраптау’);
for i:=1 to t do
write(a[i],' ');
end.
Тапсырма варианттары(А)
1. А массиві 41, 52, 23, 15, 94, 79, 12, 38, 13, 17 бүтін он саннан тұрады. Әрбір элементін сәйкес нөмеріне көбейткенде құралатын, жаңа массив құру программасын жазың. в = i·a
2. 10 компоненттен тұратын вектордың модульін есептеңіз
3. Әрқайсысында 14 элементтен тұратын екі А және В массиві берілген. ci=ai+bi бойынша құрылған жаңа массивтің ен кіші элементін табу программасын жаз.
ai={0.1; 0.3; 0.5; 0.7; 0.9; 1.1; 1.3; 2.3; 5.7; 9.8;2.3; 3.1; 6.4; 5.6; 9.7}
bi={5.2; ‐0.5; ‐4.8; 4.6; 4.4; 4.2; ‐6.4;1.3; 5.6; ‐1.2; ‐0.6; 5.2; 7.1; 4.1 }
4. Екі вектордың жарты элементтерінің арифметикалық ортасын табу программасын жазың. А={1,5; 2,5; -0,34; 6; 4.4; 4.2; ‐6.4;1.3; 5.6;}
В={-11,7; 9,3; 2,5; 3,7; -1,2}
5. А={-2,5;3;13;0,5;1,5;-2;0,7;1,9;7,1}. Сандар тізбегі берілсін. -1= a=3 шартты қанағаттандыратын сандарды табу программасын жаз.
6. А(а1,а2, ..., а20) массив элементтерінен қандай да бір с мәнінен үлкен болатын (½аi½ с) жаңа В массивін құру программасын жаз.
7. Берілген b және с үшін (b c) шартын қанағаттандыратын А(а1,а2,...,а15) массив элементтерінің қосындысын табу программасын жазың.
8. А (а1, а2,...,а30) массивінің 0‐ге тең элементтерінің санын табу программасын жазың.
9. А (а1,а2,..., а25), массивінің c шартты қанағаттандыратын барлық элементтерінің арифметикалиқ ортасын табу программасын құрың.
10. А(а1, a2,...,а10) массивіндегі аi100 шартты қанағаттандыратын элементтерін 777 санымен ауыстыру программасын құрың.
11. Он элементтен тұратын А массивінің оң және теріс элементтерінің қосындысын жеке‐жеке табыңдар.
ai={1.2; 3.1; -0.5; -1.7; 0; 1.9; -4.2; 7.1; 8.5; -10}
12. Әрқайсысында 9 элементтен тұратын А және В массиві берілген. ci=(ai+bi) формуласымен анықталған жаңа С массивінің квадраттарының қосындысын табыңдар.
ai={0.1; 0.2; 0.3; 0.8; 1.6; -4.2; -0.4; 5; 7}
bi={-5; 10; 0; 8; -6; -12; 4; 20; 7}
13. 15 элементтен тұратын Х массиві берілген. Массивті өсу реті бойынша орналастыру программасын жаз.
Хi={0.2; -3.5; 43; -15; ‐18; 91; 7.7; 25; 54; 6.4; 46; 0.5; -7; 8; 9.2; }
14. 20 элементтен тұратын Х массиві берілген. Массивтің орта мәнін және бірінші, екінші бөлігіндегі теріс элементтердің санын жеке табыңдар.
хi={1.5; 0; 2.3;-4; 5; 0;2;-5; 0; 1.7; -0.2;12; -2; 0; -4.1; 2.6; 7; 8; 0; -1; 10; 0}
15. Әрқайсысында 8 элементтен тұратын М және N массиві берілген. С массивінің элементі сi=( ai- bi)( ai* bi) бойынша анықталған. С массивінен ең үлкен элементін табың.
16. А(2.6, 4.8, 0.6), В(1.5, 4.0, 3.1), C(2.1, 0.6, 1.9) нүктелерімен берілген үшбұрышың қабырғаларының ұзындығын табу программасы жаз.
17. 100 элементтен тұратын А и B вектордың формуласы бойынша анықталған скаляр көбейтіндісін табыңдар.
18. Q векторының квадраттық ортасын табу программасын құрыңдар Q=
19. P және Q векторының ара қашықтығын табу программасын құрың. D=
20. 25 элементтен тұратын Х массивінің элементтер санын және олардың қосындысын табу программасын құрың.
Бақылау сұрақтары.
1. Массивтерді сипаттау үшін тілдің қандай операторлары қолданады?
2. Массивтерді өңдеу үшін циклді ұйымдастыру әдістері қандай?
3. Массивтерді енгізу және шығару ерекшкліктері қандай?
Жұмысты орындауға тапсырмалар
.
1. Лекциялар, әдебиеттер, әдістемелік нұсқау бойынша теориялық материалды қайталау.
2. Бақылау сұрақтарына ауызша жауап беру.
3. Тапсырма вариантын таңдау және орындау
4. Есеп жазу
Есеп мазмұны
1. Жұмыстың тақырыбы және мақсаты.
2. Бақылау сұрақтарына жауап жазу.
3. Тапсырманың блок-схема, алгоритмі.
4. Паскаль тілінде программасы.
Лабораториялық жұмыс №5
Тақырыбы: Екі өлшемді массивтерді өңдеу
Мақсаты: Күрделі циклдарды қолданып программалау әдістерін, матрицаларды енгізу және шығару әдістерін меңгеру.
Теоиялық мәліметтер: Матрица элементтерін енгізу және экранға шығару мысалдары
program matrix;
var
i,j:integer;
a:array[1..3,1..4] of integer;
g:array[1..3] of integer;
b:array[1..4] of integer;
Begin
{Матрица элементтерін енгізу}
for i:=1 to 3 do
for j:=1 to 4 do
read(a[i,j]);
{Матрица элементтерін шығару}
for i:=1 to 3 do begin
for j:=1 to 4 do
write(a[i,j]:4); writeln; end;
{Матрица жолдарының және бағандарының қосындысы}
for i:=1 to 3 do begin
for j:=1 to 4 do begin
g[i]:=g[i]+a[i,j];
b[j]:=b[j]+a[i,j]; end;
write(i,'-ші жол қосындысы=',g[i]); writeln;
end; writeln;
for j:=1 to 4 do begin
write(j,'-бағана қосындысы',b[j]);
writeln; end;end.
Тапсырма варианттары
1. А(4х7) матрицасының ең үлкен элементінің координатасын (жол және бағана номері) анықтау программасын жазың.
2. Y (5х5) матрицасының әрбір баған элементтерінің қосындысын табыңдар.
3. В(10х6. массивінің барлық оң элементтерінің қосындысын табу программасын жазың.
4. В (8х8) матрицасының элементтерінің арифметикалық ортасын табу программасын жазың.
5. квадрат матрицасының 1‐ші және 2‐ші бағанның орнын ауыстыру программасын жазың. а=
6. матрицасының жеке оң және теріс элементтерінің қосындысын табу программасын жазың. в=
7. А(4х4) өлшемді а= квадрат матрицасының шартты қанағаттандыратын элементтерін экранға шығару программасын жазың. в=1.2;
8. А={aij} 4х4 өлшемді квадрат матрица берілген.5А матрицасының элементтеріне сәйкес жол номеріне көбейткенде пайда болған жаңа d={dij}, матрицасын құрың. Яғни, dij=iaij
9. 10‐ші ретті бірлік матрица құрыңдар.
10. Элементтері а1ij=i2(j2+1), а2ij=j2(i2+j2) формуласымен анықталатын, 5‐ші ретті А1 және А2 квадрат матрицасының элементтерінің арифметикалық ортасын табу программасын жазың.
11. Элементтері Сij=sini+cosi формуламен анықталған 10 ретті С матрицасының әрбір жолының ең үлкен элементінен тұратын, В векторын құру программасын жазың.
12. Элементтері Wi j = tg ( i + j2 ) формуламен анықталған 6‐шы ретті W матрицасының , әрбір жолының элементтерінің қосындысынан тұратын, V векторын құру программасын жазың.
13. Жоғары үшбұрыш элементтері 0‐ге, төменгі үшбұрыш элементтері 1‐ге, диагонал элементтері 2‐ге болатын 8‐ші ретті квадрат матрица құру программасын жазың.
14. Элементтері формуламен анықталған 6‐шы ретті А матрицаның 0‐ге тең элементтерінің, баған және жол номерлерін экранға шығару программасын жаз.
15. Элементтері формуламен анықталған NxN ретті А матрицасының транспондалған матрицасын табу программасын жаз.(матрицаны транспондау‐яғни, сәйкес жолдар және бағандардың орнын ауыстыру.
16. Элементтері формуласымен анықталған 8‐ші ретті Q матрицасының элементтер санын табу программасын жаз.
17. Элементтері формуласымен анықталған 8‐ретті М матрицасының 0 мен 5 аралығында жатқан элементтер санын экранға шығару программасын жаз.
18. Бас диагоналдан жоғары элементтері 0‐ге тең, ал қалған элементтері формуламен анықталған, үшбұрышты М матрицасын құру программасын жаз.
19. Элементтері формуласымен анықталған 5 ретті А квадрат матрицасының шартты қанағаттандыратын элементтерін экранға шығару программасын жаз.(b кез келген сан)
20. Р(5х5) матрицаның бас диагоналының астындағы оң элементтерінің қосындысын және олардың элементтер санын есептеу программасын жаз.
Бақылау сұрақтары
1. Күрделі циклдарды ұйымдастырудың негізгі ережелері
2. Ішкі циклдан шығудың әдістерін көрсет
3. Матрицаны экранға кәдімгі күйде шығарды қалай ұйымжастыруға болады?
4. Төменгі үшбұрышты матрицаны экранға қалай шығаруға болады?
5. Массивтерді сипаттау үшін қандай операторлар қолданады?
Жұмысты орындауға тапсырмалар
1. Лекциялар, әдебиеттер, әдістемелік нұсқау бойынша теориялық материалды қайталау.
2. Бақылау сұрақтарына ауызша жауап беру.
3. Тапсырма вариантын таңдау және орындау
4. Есеп жазу
Есеп мазмұны
1. Жұмыстың тақырыбы және мақсаты.
2. Бақылау сұрақтарына жауап жазу.
3. Тапсырманың блок-схема, алгоритмі.
4. Паскаль тілінде программасы.
Лабораториялық жұмыс №6
Тақырыбы: Символдық шамалармен жұмыс істеу. Жиындар.
Жұмыстың мақсаты: Паскал тіліндегі символдық типтермен және жиындармен танысу, символдық функциялар мен процедураларды қолданып, программалау әдістерін қалыптастыру, жиындарға амалдар қолдану.
Теориялық мәліметтер: Жеке символдарды сақтау және олармен жұмыс істеу үшін char типті айнымалы қолданады. Char типті айнымалының мәні кез келген символ болуы мүмкін. Символдық типтегі айнымалыны айнымалы бейнелеу бөліміне жазылуы керек.
аты: char;
мұндағы, Аты - айнымалы аты, сhar ‐ айнымалы типі.
Мысалы:otv; char;
Ch;char;
Жолдар. Символдар тiзбегiн сақтау және олармен жұмыс iстеу үшiн символдар массивiмен қатар STRING типiн айнымалы колдануға болады.
Жалпы түрi: айнымалы аты: STRING немесе айнымалы аты:string[ ұзындығы].
Мысалы: name:string[30]; buf:string;
Егер ұзындығы көрсетiлмесе онда ұзындығы 255 деп есептеледi.
LENGTH функциясы. Length функциясы жол ұзындығын есептейдi. Функция мәнi – жолдар тұрған символдар саны. Мысалы:
N=tength(‘Информатика’);
Онда N мәні 11‐ге тең.
DELETE процедурасы. Delete поцедурасы жолдың бір бөлігін алып тастайды. Жалпы түрі: delete (st, index, count) - st жолынан index символынан бастап count cимволын алып тастайды. Мысалы:
S:=’инженер‐техникалық факультет’;
Delete ( 1,1,8), онда s айнымалы мәні техникалық факультет
POS функциясы. POS функциясы жолға кіретін символдардың 1-ші әріпінің орнын іздейді. Жалпы түрі. pos (subst, st) - функция типі intger;
Мысалы: p:=pos(‘Пе’, ‘Санкт-Петербург’);
Онда р мәні 7‐ге тең.
COPY функциясы. COPY функциясы жолдар фрагментін көшіру үшін қолданады. Жалпы түрі: copy(st, index, count)- функция мәні string;
st жолынан index нөмірлі символдан бастап count символды көшіреді
Мысалы: st:= ‘Математик Колмогоров ‘;
fam:=copy(st,11,10); fam=’Колмогоров’
VAL процедурасы. Val процедурасы символды санға айналдыру процедурасы. Жалпы түрі: val (st, x, cod); st – сан түріндегі st символды x санға айналдырады. cod-катенің коды(егер 0‐ге тең болса, онда қате жоқ). Мысалы: Val (“225”,h,cod);
Мысалы: ай аттарын цифр арқылы клавиатурадан теріп жазу программаны және оны санға айналдыру.
Program month ;
Var
Mon :integer; {ай}
Buf :string [10]; {жол енгізу буфер }
Cod :integer;
Begin
Repeat write(‘ай-‘);
Readln (buf) ; {ай аттарын символ ретінде жазу };
Val(buf,mon,cod); {символды санға айналдыру}
{енгiзiлген жол цифр емес }
If code 0 then writeln(‘Қате! Ай аттарын цифрмен енгiз‘);
Until code =0;
End.
Программаның жұмыс iстеуі, мысалы:
Ай -май;
Кате! Ай аттарын цифрмен енгiз
Ай-5
INSERT процедурасы. Жалпы түрi: insert(subst, st, index) - бұл subst символдар тiзбегiн, st жолына index нөмерлi символдан бастап қыстырып жазады.
Мысалы: ST=’интика’;
k:=insert(‘форма’,st,2); жауабы: K=’информатика’
STR процедурасы. Жалпы түрi: str(x, s) - х санды, s символға айналдырады.
CONCAT функциясы. Жалпы түрi concat(s1[,s2,,, ,sm])-string типтi функция. S1,s2,...sm2, бiр жол түрiнде көрсетедi.
Мысалы: st: = concat(‘12’,1345’); st=’12345’;
Жиындар.
Жиындар дегеніміз – объектілердің бір-бірімен логикалық байланысқан бір типті тізбегі. Жиынға енетін элементтер саны 0-255 аралығында өзгереді. Жиындардың массивтер мен жазбалардан ерекшелігі элементтерінің тұрақсыздығында. Егер екі жиын элементтері бірдей болса, онда екі жиын эквивалентті болады. Егер бір жиынның барлық элементтері екінші жиында бар болса, онда бірінші жиын екінші жиынға енетін болады.
Жиындар типтерін жазу жалпы түрі: тип аты = set of типтер базасы. Мұндағы тип аты-идентификатор; set, of – Паскаль тілінің қызметші сөздері, тип базасы жиын элементтерінің типтер базасы, мұнда кез-келген типтер базасы қолдануға болады(word, integer, longint типтердан басқа). Жиын элемененттеріне енгізу, шығару операторларын қолдануға болмайды. Жиын элементтерін экранға шығаруды өзіміз ұйымдастырамыз.
Жиындарды анықтау және берілу түрлеріне мысалдар:
type
dgСhar=set of ‘0’..’9’;
dg=set of 0..9.
var
S1,S2,S3:dgСhar;
S4,S5,S6:dg;
Begin
S1:=[‘1’,’2’,’3’]; Бұл жағдайда S1 және S2 эквивалентті
S2:=[‘3’,’2’,’1’]; S3 жиыны S2 жиынына енеді.
S3:=[‘2’,’3’];
S4:=[0..3,6];
S5:=[4,5];
S6:=[3..9];
End.
Жиындарға келесі операциялар қолдануға болады.
* Жиындардың қиылысы: нәтижесі екі жиында бірдей жататын элементтер жатады. Мысалы: S4*S6 = [3,6]. S4*S5 ‐ бос жиын,
+ Жиындардың бірігуі: нәтижесі бірінші жиын элементтері және екінші жиын элементтерін толықтырылған. Мысалы: S4+S5= [0,1,2,3,4,5,6];
– Жиындар айырымы нәтижесі екінші жиынға жатпайтын бірінші жиын элементтері. Мысалы, S6-S5=[3,6,7,8,9]; S4-S5=[0,1,2,3,6];
= Эквиваленттілігін тексеру. Ақиқат[TRUE] егер енгізген жиын эквивалентті
Эквиваленттілігін тексеру нәтижесі ақиқат[TRUE] егер енгізілген жиын эквивалентті емес болса.
= енуін тексеру, егер 1-ші жиын 2-ші жиынға енсе нәтижесі ақиқат(TRUE)
= енуін тексеру, егер 2-ші жиын 1-ші жиынға енсе ақиқат(TRUE)
IN енуін тексеру, бұл операцияда 1‐ші элемент ‐ өрнек, ал 2‐ші жиын; егер өрнекте жиынға енетін мән болса, онда шарт мәні ақиқат(true). Математикалық тілде: а саны N‐ға тиісті; а саны N‐ға тиісті емес;
Ал, Паскаль тілінде: a in N ‐ а саны N‐ға тиісті;
a not (a in N) ‐ а саны N‐ға тиісті емес;
Мысалы: 3 in s6 мәні ақиқат.
Осы операцияларға екі процедура қолдануға болады.
INCLUDE - жиынға жаңа элемент қосады. Процедураны шақыру INCLUDE(S,І), мұндағы S-жиын TsetBase базалық типтегі элементтен тұрады, I – жиынға қосылатын TSetBase типтегі элемент
EXCLUDE(S,І)- жиын элементтерін алып тастау.
Мысалы1: 50 бүтін санынан жай сандарды алып тастау программасы.
program pr;
const
n=50; {бастапқы жиынның элементтер саны}
type
SetOfNumber=set of 1..n;
var
n1,next,i: word;
BegSet,PriSet: SetOfNumber; {бастапқы және жай сандар жиыны}
begin
BegSet:=[2..n]; {бастапқы жиын құрамыз}
PriSet:=[1]; {бірінші жай сан}
next:=2; { келесі жай сан}
while BegSet [] do
begin
n1:=next;
{бастапқы жиыннан жай емес сандарды алып тастау циклі}
while n1=n do
begin
Exclude(BegSet,n1);
n1:=n1+next;
end;
Include(PriSet,next);
{бастапқы жиыннан алынған сандар жиынын аламыз}
repeat
inc(next);
until (next in BegSet) or (nextn)
end; {негізгі циклдің соңы}
{нәтижесін экранға шығару}
for i:=1 to n do
if i in PriSet then Write(i:4);
writeln;
end.
Мысал2: s1=[2,4,5,6,7,8,9]; және s2=[1,2,3,4,5,6]; жиынның қиылысуын табу.
Program pr;
uses crt;
type
SetByte=Set of byte;
var
i,n:integer;
s1,s2:SetByte;
begin
s1:=[2..4,6..9];
s2:=[1..6];
for i:=1 to 10 do
if (i in s1) and (i in s2) then write(' ',i); writeln;
end.
Программаның орындалу нәтижесінде [2,3,4,6] жиынын аламыз.
Тапсырма варианттары
1. Берілген тексте А әрпі қанша рет кездесетінін анықтаңыз.
2. Берілген текстегі жақшаға алынған сөздерді алып тастау программасын құрың.
3. Тексті мынадай үлгімен экранға шығар: бірінші символ ‐ бірінші сөздің ұзындығын көрсететін цифр, бірінші сөзден кейін тағы цифр ‐ екінші сөздің ұзындығын көрсетеді. (символ ұзындығы ≤9 )
4. Берілген текстен ең ұзын сөзді экранға шығар
5. Ұзындығы ең кіші сөз қандай әріптен басталатынын анықта.
6. Берілген сөз тексте қанша рет кездесетінін анықта.
7. Егер берілген тексте а әрпі в әрпінен жиі кездессе TRUE сөзін шығар, кері жағдайда FALSE сөзін шығар.
8. Берілген текстегі бір пробелдің орнына үтір қойу программасын құрың.
9. Берілген текстен артық пробелдерді алып тастап жазыңыз, яғни бірнеше қатар койылған пробелдан тек біреуін қалдырыңыз.
10. Берілген тексте а әрпі кездесетіні белгілі және ол соңғы әріп емес. Осы а әрпінен кейінгі текст литерін экранға шығар
11. Берілген текстен ph символын f әрпіне ауыстырып экранға шығарыңыз.
12. Латын әрпімен жазылған сөздер тізімі берілген. Көршілес сөздер бір-бірімен үтір арқылы ажыратылған және соңғы сөзден кейін нүкте қойылған. а әрпімен басталатын сөздер санын табыңыз.
13. Егер берілген тексте key сөзінің әрбір әрпі кездессе, онда yes деп, әйтпесе no сөзін экранға шығар.
14. Берілген текстен с әрпінен кейінгі b әріптерін алып тастап жазыңыз.
15. Берілген тексте жақшалардың дұрыс қойылуын тексеріңіз. Жауабы YES немесе NO
16. Латын әрпімен жазылған бос емес сөздер тізбегі берілген. w әрпімен аяқталатын сөэдер санын табыңыз.
17. Берілген тексте көрші орналасқан ., (нүкте, үтір) символы кездесетінін анықта. Жауабы Yes немесе No
18. Берілген текстен бірдей әріппен басталатын және сол әріппен аяқталатын сөздер санын табыңыз.
19. Abbcccdddd zzz...z символдар тізбегін экранға шығар
20. Берілген тексте бір сөзде үш рет е әрпі кездесетін сөздер санын табыңыз.
Бақылау сұрақтары
1. Жиын дегеніміз не?
2. Жиындарға қандай амалдар қолдануға болады?
3. EXCLUDE, INCLUDE процедуралары не үшін қолданады?
4. Символдық шамаларды енгізудің кандай ерекшеліктері бар?
5. Символдық мәндерді қалай енгізсе дұрыс болады?
6. Символ кандай тип арқылы беріледі?
7. Жол неден тұрады?
8. Бір жолға қанша символ жазуға болады?
9. Символдық айнымалы және тұрақтыларға қандай амалдар қолданады?
10. Ќандай символдық функциялар бар? Олардың міндеттері қандай?
11. Ќандай символдық процедуралар бар? Олардың міндеттері кандай?
12. Айнымалы тип неге кажет?
13. Айнымалы типтер үшін кандай амалдар қолдануға болады?
Жұмысты орындауға тапсырмалар
.
1. Лекциялар, әдебиеттер, әдістемелік нұсқау бойынша теориялық материалды қайталау.
2. Бақылау сұрақтарына ауызша жауап беру.
3. Тапсырма вариантын таңдау және орындау
4. Есеп жазу
Есеп мазмұны
1. Жұмыстың тақырыбы және мақсаты.
2. Бақылау сұрақтарына жауап жазу.
3. Тапсырманың блок-схема, алгоритмі.
4. Паскаль тілінде программасы.
Лабораториялық жұмыс №7
Тақырыбы: Паскаль тіліндегі аралас типтер. Жазбалар.
Жұмыстың мақсаты: Паскал тіліндегі аралас тип ұғымымен танысу, аралас типті берілгендерді енгізу, шығару және жазбаларды қолданып, программалау дағдыларын қалыптастыру.
Қысқаша теориялық мағлұматтар. Әртүрлі типтегі жеке компоненттерден тұратын күрделі құрылымды жазба деп атайды. Жазба компоненттерін өрістер деп атайды. Өрістер әр түрлі типті қабылдай алады. Әрбір өріске сәйкес есім (идентификатор) беріледі. Өрістің идентификаторы жазба компоненттеріне сілтема жасау үшін қолданылады. Аралас типті сипаттар RECORD қызметші сөзімен басталып, END қызметші сөзімен аяқталады. Бұл екі сөздің арасында өрістер тізімі көрсетіледі. Өрістер тізімінде әрбір өріс жай айнымалылар сияқты сипатталынады. Жазбаның өрісінде сілтеме жасау үшін, алдымен аралас типтігі айнымалының есімі көрсетіледі. Одан кейін нүкте қойылып, өрістің идентификаторы көрсетіледі.
Мысалы: type
Person= reсord
Jam: string [20];
Name:string[15];
Day:integer;
Month: integer;
Year:integer;
Address:string[50]
End.
Типтерді хабарлағаннан кейін жазба-айнымалысын хабарлауға болады.
Мысалы:
Var student:person;
Програмада жазба-айнымалысы элементінің өрісін қолдану үшін айнымалы–аты мен өріс аты арқылы көрсетеді.
Мысалы, инструкция Write(person.fam, ‘ ’,person.name) экранға person жазба айнымалысының fam және name айнымалысының мәнін шығарады.
With инструкциясы
With инструкциясы программада өріс атын жазба айнымалы атын көрсетпей жазуға мүмкіндік береді. Жалпы түрі:
With аты(жазба айнымалы) do
Begin
{ программа инструкциясы}
End;
Мысалы:
Program pr1;
Var
Person:record
Fam:string;
Name:string;
Adress:string;
End
Begin
Writeln( ‘ Мәліметтерді енгіз‐’ );
With person do begin
write(‘Фамилия‐’); readln(fam);
write(‘Аты‐’); readln(name);
write( ‘Адрес‐’); readln(adress);
Тапсырмалар варианттары
1. Өте жақсы, өте жақсы және жақсы, жақсы және қанағаттандырарлық , тек қанағаттандырарлық бағалармен оқитын студенттердің тізімін құру программасын жазу. Өте жақсы оқитын студенттердің атын және тобын экранға шығар.
2. Фамилиялары бірдей студенттер оқитын топты анықтау программасын жазу.
3. Фамилиясы А ‐дан басталатын қызметкерлер тізімін және олардың орташа еңбек ақысын көрсететін программа жазу.
4. Аяқ киім дүкенінде ассортименті жазба түрінде берілген, ең қымбат әйел адамның аяқ киімін және ер адамның аяқ киімін олардың құнымен көрсететін программа жазу.
5. Телефондық анықтама модельдейтін программа құру, әйел адамның телефон номерін және адресін экранға шығару.
6. Автомашинаның жөндеу шеберханасында машина жөніндегі мәліметтер жазба түрінде берілген, қызыл түсті машиналардың маркасын және номерін анықтайтын программа жазу.
7. Мекеменің қызметкерлері туралы жазба түрінде берілген. Ер адамдардың мамандығы және жасын көрсетіп, экранға тізімін шығарыңдар.
8. Кітаптардың аты, авторы, шыққан жылы, бағасы және тиражы анықталған каталог құрыңдар. Экранға алфавиті мен тиражы бойынша сұрыпталған кітаптар тізімін шығарыңдар.
9. Теміржол кассісінде төмендегідей мәліметтер берілген: Поездың номері, баратын жері, билеттің бар жоғы анық. Бос билеттердегі саны 125‐ке тең поездардың номерін шығарыңыз.
10. Өзіңіз оқитын топтың тізімін алфавитімен студенттердің туған жылы бойынша реттеу программасын жазың, нәтижесін экранға шығар.
11. Кітапхананың оқырмандары туралы мәліметтер белгілі. Кітапханаға қарыз оқырмандар туралы олардың фамилиясын, үйінің адресін, жұмыс орнын көрсететін тізім шығару программасын жазың.
12. Стоматологке келушілердің тізімінен фамилияларының бас әріпі Б‐дан Л‐ға дейінгі аралықта жатқан фамилияларды шығару программасын жазың.
13. Оқу жылы бойы жалғыз ғана төрт алған бағалары кілең бес студенттердің анкеталық мәліметтерін экранға шығару программасын жазың.
14. Топ студенттердің мәліметтері белгігі. Топтық орта балын есептеңіз. Топтың орта балынан орташа балы төмен студенттердің тізімін экранға шығару программасын құрың.
15. Фирма қызметкерлері туралы мәліметтер белгілі. Қызметкерлердің фамилиясы және атын, сонымен қатар әйел адам болса, шашының түсін, ер адам болса, темекі шегетінін, шекпейтінін көрсететін тізімді экранға шығару программасын құрың.
16. Телефон абоненттері туралы мағлұмат құрың. Әрбір жазба мына өрістен тұрады: абонент фамилиясы, телефон құрған жылы, телефон номері. 2002 жылы құрылған телефон саны анықтайтын программа жаз.
17. Студенттердің сессия тапсыру туралы мағлұматтар бар файл құрың. Жазба структура: топ индексі, студент фамилиясы, 5 экзамен бойынша бағасы. Жазбалар саны‐15. Топтағы үлгермейтін студенттер санын және топтың орташа балын есепте.
18. Кітапханадағы кітаптар туралы мәліметтері бар файл құрың. Жазба структурасы: кітап шифры, автор, аталуы, баспа жылы. Төмендегі информацияны шығарыңдар: Х авторының кітаптарының тізімін, ХХ жылғы басылған кітаптар. Автор фамилиясы және басып шығарылған жылы клавиатурадан теріледі.
19. Дүкендегі аяқ‐киімдер ассортиментері туралы мәліметтері құрың. Жазба структурасы: аталуы, бағасы. Ең қымбат аяқ‐киімнің аталуын экранға шығар.
20. Фирманың жұмысшылары туралы мағлұмат құрың. Жазба структурасы: фамилиясы, жасы, жұмыс стажы. Экранға пенсия жасындағы адам тізімін стажымен шығару программасын жазың.
Жұмысты орындау үлгісі:
Мысал: Студенттердің орта балын және стипендия тағайындау прораммасын құру керек. Стипендия тағайындау мына ереже бойынша жасалады. 4 пен 5‐ке тапсырған немесе 3‐тері бар, бірақ қоғамдық жұмысқа белсенді араласқандарына жай стипендия, ал кілең 5‐ке оқитындарға ұстемеленген стипендия берілсін. Екпенділік деңгейі а‐мен екпінді емес болса н‐мен белгіленеді. Төмендегі программа төрт емтихан бар деп есептелінген. Және студент екпінді болса 1, әйтпесе 0 (ноль) белгісін қабылдайды. Стипендия тағайындау белгісі ретінде: 0(ноль)‐стипендия жоқ, 1‐жай стипнедия, 2‐үстемеленген стипендия анықталады:
Паскаль тілінде пограммасы төмендегідей.
Program ZapisStud;
Uses crt;
Const
Nk=4; Nst=3;
Type
Rez = array[1..nk] of integer;
Student = record
Fam: string[20];
Ekz: rez;
Srb: real;
Act: char;
Stip:integer;
End;
Var
St:array[1..nst] of Student;
Sum:real;
I,j:integer;
Begin Clrscr;
for i:=1 to nst do begin
with st[i] do begin
write(' фамилия '); Readln (fam);
For j:=1 to nk do begin
Write(j,' экзамен бағасы ');
Readln(ekz[j]); end;
Write(' екпінділі 1 немесе 0 ');
Readln(act);
Writeln; end;end;
for i:=1 to nst do begin
sum:=0;
with st[i] do begin
For j:=1 to nk do begin
If (ekz[j]3) then stip:=0
else sum:=sum+ekz[j];
End;
srb:=sumnk;
If (srb=5) then stip:=2 else begin
If (srb=4) and (srb5) then stip:=1 else begin
If (srb=3) and (srb2) then stip:=0 else begin
If (srb=3) and (srb4) and (act='1') then stip:=1;
end; end; end; end; end; clrscr; Writeln;
for i:=1 to nst do begin
with st[i] do begin
case stip of
0: Writeln (' ',fam,' ',srb:4:2,' ',act, ' стипендия жоқ ');
1: Writeln (' ',fam,' ',srb:4:2,' ',act, ' жай стипендия ');
2: Writeln (' ',fam,' ',srb:4:2,' ',act, ' үстемелі стипендия ');
end; end; end; end.
Бақылау сұрақтары
1. Паскаль тіліндегі жазба деген не?
2. Жазба қалай сипатталады?
3. Жазба амалдарына қандай элементтер қолдануға болады?
4. Жазбадағы мәліметтерді енгзі және шығару қалай жасалады?
5. Тұтас жазбаға қандай амалдар қолдануға болады?
Жұмысты орындауға тапсырмалар
.
1. Лекциялар, әдебиеттер, әдістемелік нұсқау бойынша теориялық материалды қайталау.
2. Бақылау сұрақтарына ауызша жауап беру.
3. Тапсырма вариантын таңдау және орындау
4. Есеп жазу
Есеп мазмұны
5. Жұмыстың тақырыбы және мақсаты.
6. Бақылау сұрақтарына жауап жазу.
7. Тапсырманың блок-схема, алгоритмі.
8. Паскаль тілінде программасы.
Лабораторная работа №8.
Тақырыбы: Көмекші программалар. Процедура және функция.
Мақсат: Паскаль тіліндегі процедуралар және функцияларды қолданып, программалау дағдыларымен қалыптастыру.
Теориялық мәлімет: Функция. Функция аты және нәтижесі бар инструкция тібегі. Функция нәтежесі оның атымен байланысты, сондықтан функция атын өрнекте қолдануға болады. Функция инструкциясы орындалуы, функция аты операнд ретінде қолданылатын өрнек мәндерін есептегенде іске асады.
Функцияны хабарлау. Функцияны хабарлаудың жалпы түрi.
Function аты (параметр1:тип1,...,параметрK:типK):тип;
Var {iшкi айнымалылар}
Begin {программа инструкциясы}
Аты:=өрнек
End;
Мұндағы, Function паскаль тiлiнiң қызметші сөзi, яғни әрi қарай функция инструкциясы сипатталады. Мұндағы аты - функция аты, программадан begin және end арасындағы функция инструкциясына өту үшiн қолданады, параметр-айнымалы оның мәнi функция мәнiн есептеуге қолданады. Бұл параметрдiң кәдiмгi параметрден айырмашылығы, ол var айнымалыны сипаттау бөлiмiнде емес, функция тақырып атында жазылады.
Процедуралар.
Процедураны сипаттаудың жалпы түрі:
Prosedure Аты(var парам1: тип1; парам2:тип2; ... );
Var
{ішкі айнымалыны хабарлау}
Begin
{процедура инструкциясы}
End;
Мұндағы, рrosedure ‐ Паскаль тілінің қызметші сөзі, параметр j процедурадағы инструкцияда қолданатын айнымалы және негізгі программаға процедурадан информация беру үшін қолданады. Процедураны сипаттауда көрсетілген айнымалы формальды деп атайды. Алдында тұрған var сөзін алып жазсақта болады. Ал, егер var сөзі тұрса, онда процедураны шақырғандағы параметр, негізгі программаның айнымалысы болу керек.
Сонымен, процедура ішіндегі параметр өзгергеннен, негізгі программадығы айнымалының өзгерісіне әкеледі.
Мысалдар. Процедураның екі параметрі бар. (n)‐жол, (с)‐жол салынатын символ.
Procedure Line(n:integer; c:char);
Var
I:=integer;
Begin
For i:=1 to n do write(i);
Writeln;
End;
Процедураны қолдану. Процедура инструкциясын шақырудың жалпы түрі:
Аты (параметр тізімі);
Мұндағы аты‐ шақыратын процедура аты, параметр тізімі ‐ үтір арқылы ажыратылатын, фактілі параметр.
Мысалы, жоғарыдағы процедураны қолдану. Егер Line(15; ‘*’); онда экранда он бес сызықшаны салуға болады, нәтижесі: * * * * * * * * * * * * * * *
Тапсырма варианттары
1. А(10,15) и В(15,12) матрицалары үшін ең кіші мәнінің жол және баған номерін табу программасын жаз.
2. Есептеңіз Z=(U1+U2+U3)3, мұндағы U1, U2, U3- сәйкес R1, R2, R3 радиусымен берілген шар көлемі.
3. А(N1), B(N2), C(N3) бір өлшемді массивтің оң элементтерінің арифметикалық ортасын табу программасын жаз.
4. 0=Xij=1 және 0=Yij=1 қанағаттандыратын X(10,15), Y(20,12) бір өлшемді массивтердің элементтер санын табу прораммасын жаз.
5. А(10,12) және В(15,10) матрица үшін әр жолының оң элементтерінің қосындысын таб программасын жаз.
6. A(N,N) және B(M,M) матрицаларының бас диагонал элементтерінің қосындысын табу программасын жаз.
7. Есептеңіз. Z=(Xm1+Xm2)2, мұндағы Xm1 и Xm2 –X1(70), X2(80) массивтердің ең кіші элементтері.
8. Үш топ, әрқайсысында 25 студенттен 5 пәннен емтихан тапсырған. Орта балы бойынша ең жақсы топты анықтаңыз.
9. А(N,N) және B(M,N) матрицаларының 0‐ге тең емес элементтерінің санын табу программасын жаз.
10. А(15,15) және В(20,20) матрицаларының төменгі үшбұрыш элементтерінің қосындысын табу программасын жаз.
10. Х(40), Y(50), Z(N) массивтерінің бірінші теріс элементіне дейінгі оң элементтерінің қосындысын табу программасын жаз.
11. Х(100) және Y(80) массивтерінің оң элементтерін Z массивіне көшіріп жазу программасын кұру.
12. N(5,8) және М(10,6) матрицаларының 3‐ке еселі элементтерін экранға шығару програмасын жаз.
13. Төмендегі функцияның мәнін есептеу программасын жаз S= x=6 ; y=7; z=0
14. Екі матрица берілген: , Әрбір матрицаның бағандарының қосындысын есептеу программасын жаз.
15. Есептеңіз S=N!+K!+(I+K)!, мұндағы N=5, K=7, I=9.
17. n‐нен m бойынша теруді есептеу программасын жаз.
18. n ‐нен m бойынша алмастыру программсын жаз
19. А(N,M), B(K,L), C(I,L) үш матрица берілген. Матрицалардың ең кіші элементін табу программасын жаз.,,
20. Берілген массивтерді экранға шығару программасын жаз.
, ,
21. Берілген массивтерді экранға шығару прораммасын жаз.
, ,
Жұмысты орындау үлгісі:
Мысал:
program prog4;
var
c:real;
i,n,k:integer;
function Fac(m:integer):integer;
var
i,p:integer;
begin
p:=1;
for i:=1 to m do
p:=p*i;
fac:=p;
end;
begin
write('‚Енгіз nk');
read(n,k);
c:=Fac(n)(fac(k)*fac(n-k));
writeln ('С=',c:8:2);
end.
Мысал2. А және В матрицалар элементтерін енгізу, шығару және ең үлкен мәнін табуға көмекші рпограмма құру.
program matr;
uses crt;
var
k,l,x,f:integer;
{ Матрица элементтерін енгізуге процедура }
procedure matrRead(n,m:integer);
const
nt=20; mt=20;
var
i,j:integer;
a:array[1..nt,1..mt] of integer;
begin
for i:=1 to n do
for j:=1 to m do
read(a[i,j]);
end;
{ Матрица элементтерін шығаруға процедура}
procedure matrWrite(n,m:integer);
const
nt=20; mt=20;
var
i,j:integer;
a:array[1..nt,1..mt] of integer;
begin x:=a[1,1];
for i:=1 to n do begin
for j:=1 to m do begin
{ if xa[i,j] then x:=a[i,j];}
write(a[i,j]:4);end; writeln; end;
end; {***********MAX**********}
procedure matrMax(n,m:integer);
const
nt=20; mt=20;
var
i,j:integer;
a:array[1..nt,1..mt] of integer;
begin x:=a[1,1];
for i:=1 to n do begin
for j:=1 to m do
if xa[i,j] then x:=a[i,j];
end;
end;
{ Негізгі программа }
begin clrscr;
Writeln(' А матрицаның баған және жол санын енгіз k,l'); read(k,l);
writeln(' А матрица элементтерін пробел арқылы енгіз Enter пренесін басыңыз ');
matrread(k,l);
writeln('Matrix A');
matrwrite(k,l);
matrMax(k,l);
writeln('max=',x);
Writeln(' В матрицасының жол және баған санын енгіз f'); read(f,f);
writeln(' В матрица элементтерін пробел арқылы енгіз Enter пренесін басыңыз ');
matrread(f,f);
writeln('Matrix B');
matrwrite(f,f);
matrMax(f,f);
writeln('maxB=',x);
end.
Бақылау сұрақтары
1. Көмекші программа деп қандай программаларды айтамыз?
2. Процедура түрінде жазылған қосалқы программаның ерекшелігі неде?
3. Функция түрінде жазылған қосалқы программаның ерекшелігін көрсет
4. Формальды параметр дегеніміз не?
5. Фактілі параметр дегеніміз не?
6. Формальды параметр қандай жағдайда қолданады?
7. Фактілі параметр калай қолданады?
8. Формальді және фактілі параметр арасында қандай байланыс бар?
9. Процедураны параметрсіз жазуға бола ма?
10. Локальды және глобальды параметрлер дегенді қалай түсінесіз?
11. Функцияны қосалқы программа деп айтуға бола ма?
12. Функция мен процедураны шақырылу және мәндер беру ерекшеліктері қандай?
13. Функция мен процедураның арасында қандай ұқсастық және айырмашылық бар?
Жұмысты орындауға тапсырмалар
1. Лекциялар, әдебиеттер, әдістемелік нұсқау бойынша теориялық материалды қайталау.
2. Бақылау сұрақтарына ауызша жауап беру.
3. Тапсырма вариантын таңдау және орындау
4. Есеп жазу
Есеп мазмұны
1. Жұмыстың тақырыбы және мақсаты.
2. Бақылау сұрақтарына жауап жазу.
3. Тапсырманың блок-схема, алгоритмі.
4. Паскаль тілінде программасы.
Лабораториялық жұмыс №9
Тақырыбы: Файлдармен жұмыс.
Мақсаты: Паскаль тілінде файлды енгізу, шығару, оқу тәсілдірін қолданып, программа құра білу, программа нәтижесін файлға жазып үйрену, файлдан информация оқып үйрену.
Теориялық мәлімет: Файл дегенiмiз бiр атаумен берiлетiн бiр типтегi элементтер тiзбегi. Файлда элементтер саны шектелмеген. Басқа айнымалы сияқты файлда “айнымалыны бейнелеу” бөлiмiнде сипаттау керек. Файлды сипаттауда элементтер типi көрсетiлуi тиiс. Жалпы түрi:
Файл-аты: file of элементтер типi
Файлдың міндеті. Файлдық айнымалыны хабарлау тек файл компоненттерiнiң типiн ғана анықтайды. Ал, программа мәлiметтердi файлға шығару немесе файлды оқу үшiн, нақты файлды, яғни файлдың атын көрсету керек. Файл аты assіgn процедурасын шақыру арқылы берiледi. Ол файлдық айнымалыны, нақты файлмен байланыстырады.
Assign процедураны бейнелеу.
Assign (var f:text; файл аты:string ); файл аты MS DOS ережесi бойынша берiледi.
Мысалы: assign(f,’a:\result .txt’) ;
Assign (f,’\student\Іvanov\korni.txt’) ;
Fname: =’otchet.txt’;
Assign(f,fname) ;
Файлға шығару инструкциясы. Текстiк файлға шығару write немесе writeln инструкциясы көмегiмен орындалады. Мысалы:
Write(f, ’теңдiк түбiрi=’,x1,x2);
Бiрақ берiлген мәлiметтi файлға write инструкциясын шығару үшiн, алдын-ала файлды ашып алу кажет.
Файлды шығару үшін ашу. Файлды шығару үшін алдын ала файлды ашу қажет. Егер программада файл бұрын қолданған болса, онда файл дискіде бар болуы мүмкін. Сондықтан орындаушы бұрынғы файлмен қалай жұмыс істеу керек екенін айырып алған қажет. Бұлар: ескі нәтижелерді ауыстыру немесе жаңа мәліметтерді қосу. Бұл файлды ашу кезінде қолданады. Файлды ашудың оған жаңа мәліметтер жазу үшін келесі мүмкіншіліктер бар.
Қайтадан жазу(жаңа файлды ескі файлдың үстіне жазу)
Ескі файлға тіркеп жазу
Жаңа файл немесе ескі файлды ауыстыру режимінде ашу үшін Rewrite процедурасын файлдық айнымалының параметрі ретінде қолдану керек. Ал, файлды тіркеп жазу режимінде жазу үшін Append процедурасын қолданамыз.
Файлды жабу. Файл прорамма аяқталмас бұрын жабылуы қажет, ол clоse процедурасы арқылы орындалады.
Файлды ашу. Файлды енгiзу(оқу) үшiн ашу reset процедурасы арқылы орындалады.
Reset процедурасын шақырудан бұрын файл айнымалысына, assign процедурасы аркылы файл аты көрсетiлдi. Келесi инструкция файлдан енгізу үшiн ашады.
Assign(f ,’c data .txt’);
Reset (f) ;
егер файл-аты дұрыс берiлмесе, онда программа орындалу кезiнде қате болады.
Файлдан оқу. Файлдан оқу read немесе readln инструкциясы аркылы орындалады.
Жалпы түрi:
Read (файлдық айнымалы, айнымалы тiзiмi);
Readln (файлдык айнымалы, айнымалы тiзiмi);
мұндағы файлдық-айнымалы - text типтi айнымалы,
Сандарды оқу. Текстiк файлға сандар емес, ал олардын бейнесi тұрады. Read және readln инструкциясы iс-әрекетi екi бөлiмнен: әуелi файлдан символдар оқылады, бұлар символ бейнесiндегi cандар, кейiн санға айналады, алынған мән айнымалыға меншiктеледi.
Тапсырма варианттары
1. Магнитофон туралы мағлұмат бар файл құрың. Жазба мынадан тұрады: магнитофон маркасы, оның бағасы. Бағасы 5500 теңгеден кем емес маркалы магнитофонды экранға шығар.
2. Кітапханадағы программалау тілі бойынша кітаптар туралы мағлұмат бар файл құрың. Жазба мына өрістерден тұрады:автор фамилиясы, кітап аты, баспа аты, шығарылған жылы. МИР баспасы шығарған кітаптарды экранға шығар.
3. Өздеріңіздің достарыңыз туралы FREND деген файл құрың. Жазба структурасы мына өрістерден тұрады: Фамилиясы, аты және туған жылы. Жазда туылғандардың фамилиясы экранға шығар.
4. STUD деген файл құрың. Жазба структурасы мына өрістерден тұрады: студент фамилиясы, жынысы(М немесе Ж) және туған жылы. Экранға ер балдардың фамилиясын, жасын шығар.
5. Фабрикадағы жұмысшылардың орташа еңбек ақысы туралы мағлұматы бар файл құрың. Әрбір жазба мынадай өрістен тұрады: цехтың аты, ақша көлемі. Х цехы бойынша жалпы еңбек ақы қосындысын, цех жұмысшылардың орташа еңбек ақысын есепте.
6. Бір курс студенттері туралы файл құрың. Жазба структурасы мына өрістерден тұрады: студент фамилиясы, жынысы(М немесе Ж),туған жылы және айы. Экранға жазда туылған ер балдардың фамилиясын шығар.
7. Цехтағы жинаушылар бір аптада жинаған бұйымдар саны туралы мағлұмат бар файл құрың. Әрбір жазба мынадай өрістерден тұрады: Жинаушы фамилиясы, бұйымдар саны(әрқайсысының бір күнде жинаған бұйымдар саны). Бір апта ішінде жинаған детальдар санын және сборщик фамилиясын анықтайтын прграмма құру.
8. Бір айда жұмысшылардың А, В, С категориялы бұйымдар саны туралы мағлұмат бар файл құрың. Жазба структурасы мына өрістерден тұрады: цех аты, жұмысшылардың бір айда жинаған, катергория бойынша бұйымдар саны. А, В, С категориялы бұйымдарды жинаудағы орындалған жұмыстар үшін, сәйкесінше Sa, Sb, Sc деп бағалап Х цехтағв жұмысшылардың еңбек ақысын есептеңіз.
9. Телефон абоненттері туралы мағлұматы бар файл құрың. Әрбір жазба мына өрістен тұрады: абонент фамилиясы, телефон құрған жылы, телефон номері. ХХХХ жылы құрған телефон саны анықтайтын программа жаз. Жыл номері терминалдан теріледі.
10. Дүкендегі ойыншықтар түрлер туралы мәліметтер бар. Жазба структурасы: ойынщық түрі, бағасы, саны, бала жасына шектеуі. Төмендегі мәліметтерді экранға шығар: 2 жастан 5 жасқа дейінгі балдарға арналған ойыншық атын және ең қымбат ойыншық түрін экранға шығару туралы программажаз.
11. Студенттердің сессия тапсыру туралы мағлұматтар бар файл құрың. Жазба структура: топ индексі, студент фамилиясы, 5 экзамен бойынша бағасы. Жазбалар саны – 15. Студенттердің стипендияға ілігуі туралы программа құрың. Екпінділер жоғарлатылған стипендию, жақсы оқитындар жай стипендия. Қалғандарына стипендия берілмейді..
12. Студенттердің сессия тапсыру туралы мағлұматтар бар файл құрың. Жазба структура: топ индексі, студент фамилиясы, 5 экзамен бойынша бағасы. Жазбалар саны – 15. Топтағы үлгермейтін студенттер санын және топтың орташа балын есепте.
13. Кітапханадағы кітаптар туралы мәліметтері бар файл құрың. Жазба структурасы: кітап шифры, автор, аталуы, баспа жылы. Төмендегі информацияны шығарыңдар: Х авторының кітаптарының тізімін, ХХ жылғы басылған кітаптар. Автор фамилиясы және басып шығарылған жылы клавиатурадан теріледі.
14. Аэрофлот рейстерінде және билет бар жоғы туралы мәліметтері бар файл құр. Жазба структурасы: рейс номері, баратын пункті, ұшатын уақыты, салондағы бос орындар саны. Келесі информацияны экранға шығар: Х қаласына баратын самолеттер саны, Х рейсіндегі бос орындар саны.
15. Дүкендегі аяқ‐киімдер ассортиментері туралы мәліметтері бар файл құрың. Жазба структурасы: аталуы, бағасы. Ең қымбат аяқ‐киімнің аталуын анықта.
16. Динамо и Спартак: командасындағы он ойыншы туралы екі файл құрың: ойыншының аты, түсірген шайбалар саны. Осы командалардан ең нәтижелі ойыншыны анықтау программасын құрың.
17. Студенттің бес пәннің ішінде таңдау туралы мәліметі бар файл құрың. Жазба структурасы: Студент фамилиясы, 5 пән, үлгерімінің орташа балы. Таңдаған пән 1‐мен белгіленеді, әйтпесе -0. Х пәнін таңдаған студенттер фамилиясын экранға шығар.
18. Поездың вокзалдан жүретін туралы мәлімет бар файл құрың. Жазба структурасы: поезд номері, жолға кеткен уақыт, баратын станциясы, кассада билеттің бар жоғы туралы. Х қаласына, ең аз уақытта, N номерлі поездың билеттер санын анықтау программасын жаз.
19. Фирманың сотрудниктері туралы мәліметтері бар файл құрың. Жазба структурасы: Фамилиясы, жасы, жұмыс стажы. Экранға пенсия жасындағы адам тізімін стажымен шығару программасын жазың.
20. Көз клиникасының пациенттері туралы мәліметі бар файл құрың. Жазба структурасы: пациент фамилиясы, пол, возраст, диазноз. Х жасындағы ер‐паценит фамилиясын және диагнозын экранға шығару программасын жаз.
Жұмысты орындауға мысал:
Студенттердің сессия тапсырғаны туралы файл құру. Жазба структурасы: студент фамилиясы, тобы, 3 емтихан бойынша бағалары.
Program FileTest;
Uses crt;
Type
stud=record
Fam:string[20];
index:string[8];
ekz:array[1..3] of integer;
End;
Var f:text;
x:array[1..30] of stud;
n,i,j:integer;
procedure line(n:integer; c:char);
var I:integer;
begin
for i:=1 to n do write(c);
end;
begin
line(80,'*');
Assign(f,'c:\ZapStud.txt');
Rewrite(f);
write('Студенттер санын енгіз-'); readln(n);
for i:=1 to n do begin
with x[i] do begin
Write(' Фамилия - '); readln(fam);
Write(' Группа -'); readln(index);
For j:=1 to 3 do begin
Write ('j,'. Экзамен-');
Readln(ekz[i]);end;
end;
end;
Writeln(f,' Фамилия Группа Математика Информатика Химия ');
for i:=1 to n do begin
with x[i] do begin
Write(f,i,'. ',fam,' ',index);
For j:=1 to 3 do
Write(f,' ',ekz[i],' ');
end; writeln; end;
WRITELN(' Файл құрылды. Файлды С: дикісінен ZapStud.txt атпен табасыз');
close(f);readln; end.
Бақылау сұрақтары
1. Файл дегеніміз не?
2. Файл программаның қай бөлімінде бейнеленеді?
3. Файлдың аты қалай беріледі?
4. Assign процедурасы қалай беріледі?
5. Файлды қайта жазу режимінде қалай ашады?
6. Файлды тіркеп жазу режимінде қалай ашады?
7. IORepult функциясы не үшін қолданады?
8. Файлды ашужабу операциясының нәтижесін қалай тексереміз?
9. Файл қалай жабылады?
10. Файлдан оқу үшін қандай инструкциялар орындалады?
Жұмысты орындауға тапсырмалар
1. Лекциялар, әдебиеттер, әдістемелік нұсқау бойынша теориялық материалды қайталау.
2. Бақылау сұрақтарына ауызша жауап беру.
3. Тапсырма вариантын таңдау және орындау
4. Есеп жазу
Есеп мазмұны
1. Жұмыстың тақырыбы және мақсаты.
2. Бақылау сұрақтарына жауап жазу.
3. Тапсырманың блок-схема, алгоритмі.
4. Паскаль тілінде программасы.
Лабораториялық жұмыс №10
Тақырыбы: Модуль. Графикамен жұмыс.
Мақсаты: Паскаль тілінде графиктік процедураларды қолданып жұмыс істеу, жылжымалы графика дағдыларын және функция графигін салып үйрену. Теориялық мәлімет: ТР тілінде көптеген бір топқа біріккен, әр түрлі іс әрекетке арналған функциялар мен процедуралар – модульдер (кітапханалар) қолданады. Мыс: Crt - экранды басқару модульі. Chaph- графикалық процедуралар мен фукцияларды басқару модульі. System- ресурстарды басқару модульі. DOS-операциялық жүйені басқару модульі..
Модульдік функциялар мен процедураларды қолдану. Модульдік процедураларды дайын тұрған процедура ретінде қарастыруға болады. Программада модульдік процедураларды қолдану үшін, қолданатын процедура қай модульге жататынын, процедура атын және параметр санын, типін білу қажет. Модульдік проседураларды қолдану үшін программаға қажетті модульді қосу керек. Бұл Uses инcтрукциясы арқылы орындалады.
Модульдерді қосу инструкциясы:
Uses модуль1 , модуль2, ..., модуль k;
мұндағы, Uses- қызметші сөз, модуль і - модуль аттары.
ТР тілінде сегіз стандартты модульдер бар. Олар: SYSTEM, DOS, CRT, PRINTER, GRAPH, OVERLAY,TURBO3, GRAPH3.
CRT модулі.
CRT модульі экранға шығару кезінде пайдалы функциялар мен процедуралардан тұрады. Мысалы: экранды тазарту программасы CLRSCR процедурасы crt модулінен.
USES Crt;
Begin
Cirscr;
Writeln (‘ Жалғастыру үшін ENTER пернесін басыңыз’);
Readln;
End.
Көптеген модульдік процедуралардың параметрлері бар. Параметрлер процедураларға мәндер беру үшін қолданылады.
Мысалы, goto xy(x: integer;y:integer);
модульге кіретін процедура көмегімен экранға шығаратын символдар түсін, фон түсін, тексті экранның кез келген жерінде шығаруға болады. TextColor және TextBackGround процедуралары арқылы символдар түсін, текст түсін, фон түсін беруге болады.
Графика. ТР тілі алфавитті‐цифрлық информациялармен қатар, графикалық мәліметті де экранға шығару мүмкіндігі бар. Мысалы, схемелар, чертеждар. Күрделі графикалық бейнелер жай элементтер көмегімен құралады: доға, түзу сызық, шеңбер, төртбұрыш, нуктелер.
Графикалық режимді инициализациялау және аяқтау
program grinit;
uses Graph;
var
grDriver:integer; { драйвер }
grMode:integer; { графикалық режим}
grPath:string; { драйвердің тұрған орны }
ErrCode:integer; {граф.реж.инициализациял нәтижесі}
begin
grDriver := VGA; {режим }
grMode:=VGAHi; { мүмкіндігі 640х480}
grPath:='с:\tp\bgi'; { драйвер тұрған орын }
InitGraph(grDriver, grMode,grPath);
ErrCode := GraphResult;
end.
Модуль Graph
Графикалық режимде жұмыс істейтін функциялар мен процедуралар Grahp модульінде орналасқан. Сондықтан графикалық программаның бірінші сөзі Uses Graph.
Шығару көрсеткіші. GetХ және GetY функциясы арқылы шығару көрсеткішін басқаруға болады. Курсорды экранның қажетті жеріне шығару үшін Moveto процедурасын қолдануға болады. Мысалы:
Moveto (310,420);
Ouftext (' Turbo Pascal 7.0 ');
Ағымдағы жағдайдан өзгерту үшін MoveRel процедурасын қолданады.
Жалпы түрі: MoveRel(dx, dy); мұндағы dx,dy переметрлері нүкте саны арқылы беріледі, егер dx(dy) мәні оң болса оңға (төмен) ал, теріс болса, онда солға (жоғары) жылжиды.
Нүкте салу поцедурасы. Экранда нүкте салу үшін PutPixel процедурасы қолданады.
Мысалы, PutPixel(320,240,Red) экран центрінде қызыл нүкте пайда болады.
Түзу сызық салу процедурасы. Түзу салу үшін LineTo процедурасы қолданады. Бұл процедура координаталары берілген, екі нүкте арасын қосады. Жалпы түрі:
Line(x1,y1,x2,y2); мұндағы, x1,y1,x2,y2 түзу ұштарының координаталары
Шеңбер, Эллипстер және төрбұрыштар салу поцедуралары
Circle(x,y,r); шеңбер салу поцедурасы
мұндағы, x,y ‐ шеңбердің координата центрі, r‐ радиус.
Ellipse(x,y, БұрышБасы, БұрышСоңы, РадиусХ, РаудиусУ); эллипс салу процедурасы Мысалы,
Ellipse(100, 100, 0, 360, 20, 50);‐ толық эллипсті салады
Ellipse(100, 100, 0, 180, 20, 50);‐ эллипстің жоғары бөлігін салады.
Ellipse(100, 100, 180, 0, 20, 50); ‐ төменгі бөлігін салады.
РадиусX және РадиусY тең болған жағдайда Ellipse шеңбер салады.
Мысалы, Ellipse(100, 100, 0, 90, 50, 50); шеңбер доғасын салады.
Rectangle (x1, y1, x2, y2) поцедурасы тік төрбұрыш салады.
Мұндағы, x1, y1 ‐ төрбұрыштың сол жоғары бұрыштың координатасы, x2, y2‐ төрбұрыштың оң төменгі бұрыштың координатасы.
Мысалы, Rectangle(0, 0, GetMaxX, GetMaxY); экранның жұмыс аумағына айналасына рамка салады. Инструкцияда қолданған GetMaxX, GetMaxY ‐ бұл функция аттары, мәндері x, y координатасының ең үлкен мәні.
SetColor( түс коды ) фигура түсін анықтау процедурасы
RectoreCRTMode текстік режимге көшу процедурасы
Боялған фигуралар салу процедуралары.
Тік төртбұрыш.
Bar(x1, y1, x2, y2,); тік төртбұрыш салу процедурасы, мұндағы, x1, y1 ‐ жоғары сол бұрыш, x2, y2 ‐ оң төменгі бұрыш.
Bar3D(x1, y1, x2, y2, тереңдігі, ЖоғарыШегі); көлемді параллелепипед салу процедурасы x1, y1 ‐ сол жоғары; x2, y2 ‐ оң төменгі бұрыш орынын береді. Тереңдігі‐ параллелепипедтің алдыңғы және артқы бетінің ара қашықтығын береді. ЖоғарыШегі ‐ (типі Bollean) артқы бетінің жоғары шетін салу керек па, соны анықтайды.
Дөңгелек және сектор.
PieSlise(x, y, Бұрыш1, Бұрыш2, Радиус); дөңгелек секторын салады және ағымдағы стиль бойынша бояйды, мұндағы, x,y ‐ параметрі сектор центрінің орнын анықтайды. Бұрыш1, Бұрыш2 ‐ сектор шектелетін түзу бұрышын анықтайды, Радиус ‐ сектор радиусы. Егер Бұрыш1=0, Бұрыш2=360, онда процедура дөңгелек салады.
Эллипс және эллипсті сектор.
Sector(x, y, Бұрыш1, Бұрыш2, РадиусХ, РадиусY) ‐ эллипстік сектор салады.
мұндағы, x, y ‐ сектор центрінің орнын анықтайды, Бұрыш1, Бұрыш2 ‐ сектор шектелетін, түзу бұрыштарын анықтайды. Көрінетін сектор қиып алатын РадиусХ ‐ Х осьі бойынша радиус, РадиусY ‐ Y осьі бойынша радиусы.
SetFillStyle(Стиль, түс:word); - Стиль және бояу түсін анықтайды (Bar, Вas3D, Sector и т.б қолданады)
Константа
Облысты бояу стильі
SolidFill
Толық бояу
LineFill
Көлбеу штрихтар
LtSlasFill
450 оңға сызылғын штрих
SlashFill
450 солға сызылғын штрих
SetLineStyle(СызықТипі:word; Үлгі:word: Жуандығы:word); - салынатын контур және сызық стильі
Константа
Сызық типі
SolidLn
Үздіксіз
DottedLn
Үздікті
SetTextStyle(Шрифт, Ориентация, Өлшем:word); - Шрифт өзгерту. OutText(Текст:string); ‐ Текст сөзін ағымдағы жолдан шығарады.
OutTextXY(x,y:integer; Текст:string); (х,у) кординаталы нүктеден бастап Тексті шығарады.
Delay(тоқтату:word); - процедура көрсетілген миллисекундта тоқтатып тұру GoToXY(x,y:byte); - курсорды (x,y) координатаға ауыртыру
Randomize ‐ процедурасы кездейсоқ сандар генераторын іске қосады.
Random ‐ [диапозон:word] ‐ егер диапозан көрсетілмесе, 0=X1 аралығындағы кездейсоқ Х санын береді. Егер диапозон берілсе, онда 0=Xдиапозон аралығындағы кездейсоқ Х санын береді. Random функциясынан бұрын міндетті түрде Randomize процедурасын қолдану керек.
Функция графигін салу. Функция графигін салу негізінен PutPixel процедурасы арқылы орындалады. Мысал.. Функция салу программа фрагменті төмендегідей болады.
X:=‐0.68;
While x=6.28 do begin
Y:=sin(x);
Putpixel(300+15*round(x),200+15*round(y),9);
X:=x+0.5;
End;
Программаға түсініктеме: Біріншіден бұлар үздіксіз функциялар. Сондықтан координаталар бас нүктесін экран ортасынан алған дұрыс. Екіншіден графиктің абсолюттік биіктігі 2‐ге тең, яғни нүктенің диаметріне тең. Осыны еркеріп масштаб енгіземіз. Егер y=15*sin(x) деп алсақ графиктің жоғары биіктігі 30‐ға тең болады, яғни координатаны 15 есеге үлкейттік. Функция графигіндегі кез келген нүкте координата бас нүктесінен салыстырмалы түрде анықталады, яғни (300,200) нүктесінен есептеледі.
Декарттық және полярлық координаталар жуйесі арасында ал, кері көшу формуласы . (X,Y) нүктенің декарттық, (R, ) полярлық координаталары.
Тапсырма варианттары(А)
1. Экранды екіге бөліңіз. Жоғары жағына тікбұрышты үшбұрыш, төменгі жағын қызыл түспен бояңыз.
2. Ашық тұрған есікті ұстағышымен салаңыз.
3. Үйдің суретін салыңыз.
4. Ракетаның суретін салыңыз.
5. Түтіні шығып тұрған үйдің сутертін салыңыз.
6. Көрінбей тұрған қабырғаларын көрсетіп, кубтың сутерін салыңыз.
7. Ұстағышы боялған, белдің суретін салыңыз.
8. Жүгі бар кранның суретін салыңыз.
9. Экскаватордың суретін салыңыз.
10. Автомобильдың суретін салыңыз
11. Көрінбей тұрған қабырғаларымен пирамиданың суретін салыңыз
12. Жұлдызшының суретін салыңыз
13. Үшбұрыштың ортасына тік төрбұрыш салың.
14. Боялған маркасы бар конверттің суретін салыңыз.
15. Үшбұрыштың ішіне А әріпін салың.
16. Трапеция ортасына Т әріпін салың.
17. Шахмат тақтасын салыңыз.
18. Параллелограмның ішіне Ш әріпін салыңыз.
19. Желкенімен қайықтың суретін салыңыз.
20. Шыршаның суретін салыңыз
Тапсырма варианттары(В)
1. Диагонал бойынша жоғарыдан төмен қарай жылжыған боялған төрбұрыштың суретін салың.
2. Төмен түсіп келе жатқан парашюттың суретін салу программасын құрың.
3. Ұшып бара жатқан ракетаның суретін салың.
4. Ұшқыш тарелканың суретін салыңыз.
5. Бояған эллипстың солдан оңға қарай жылжыған суретін салыңыз.
6. Сағат тілінің жүріп тұрған программасын жаз.
7. Жүріп бара жатқан автомобильдің суретін салыңыз.
8. Жанып‐өшіп тұрған автомобиль фарының суретін салыңыз.
9. Жанып‐өшіп тұрған светофордың суретін салыңыз.
10. Экранның әр жерінен әртүрлі радиуста шығатын шеңбердің суретін салың.
11. Алыстаған сайын кішірейе беретін шардың суретін салыңыз.
12. Жақындығын сайын үлкейе беретін шеңберді салу программасын жаз.
13. Тирдегі нысананыњ суретін сал және оған атылған оқтың ізін көрсет.
14. Соңынан түтіні шығып бара жатқан машинаның суретін сал.
15. Ұшып бара жатқан самолеттің суретін салу программасын жаз.
16. Жүріп бара жатқан поездың суретін салың.
17. Жүріп бара жатқан велисопедтің суретін салың.
18. Ракетаның жерге түсіп жарылғанының программасын жаз.
19. Ұшып жүрген спутниктің суретін салың.
Бақылау сұрақтары
1. Графикалық режимде нүктенің маңызын қалай түсінесіз?
2. Өзіңіз жұмыс істеп отырған машинаның және одан жоғары ДЭЕМ‐нің графикалық режимін орындау мүмкіндігін қалай түсінесіз?
3. Қарапайым геометриялық фигураларды салу операторының параметрінің жазылу реті және олардың атқаратын қызметі қандай заңдылыққа бағынады?
4. Функция графигін салу үшін қандай ерекшеліктерге көңіл бөлу керек және олардың графика режиміне әсері қандай?
5. Полярлық және кеңістіктегі графиктерді салу негіздерін қалай түсінесіз?
6. Жылжымалы графика салу негізін қалай түсінеміз?
7. Ауысу және қайталану операторларының жылжымалы графикада атқаратын міндеті ата?
Жұмысты орындауға тапсырмалар
.
1. Лекциялар, әдебиеттер, әдістемелік нұсқау бойынша теориялық материалды қайталау.
2. Бақылау сұрақтарына ауызша жауап беру.
3. Тапсырма вариантын таңдау және орындау
4. Есеп жазу
Есеп мазмұны
1. Жұмыстың тақырыбы және мақсаты.
2. Бақылау сұрақтарына жауап жазу.
3. Тапсырманың блок-схема, алгоритмі.
4. Паскаль тілінде программасы.
МАЗМҰНЫ
Алғы сөз ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
2
Лабораториялық жұмыс №1
Паскаль тілінің негізгі операторлары ... ... ... ... ... ... ... ... .
3
Лабораториялық жұмыс №2
Тармақталған операторлар. Шартты және құрама операторлар
7
Лабораториялық жұмыс №3
Циклдік операторлар ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
12
Лабораториялық жұмыс №4
Бір өлшемді массивтерді өңдеу ... ... ... ... ... ... ... ... ... ... .
18
Лабораториялық жұмыс №5
Екі өлшемді массивтерді өңдеу ... ... ... ... ... ... ... ... ... ...
22
Лабораториялық жұмыс №6
Символдық шамалармен жұмыс істеу. Жиындар ... ... ... ... .
25
Лабораториялық жұмыс №7
Паскаль тіліндегі аралас типтер. Жазбалар ... ... ... ... ... ... ...
31
Лабораториялық жұмыс №8
Көмекші программалар. Процедура және функция ... ... ... ... ... .
36
Лабораториялық жұмыс №9
Файлдармен жұмыс істеу ... ... ... ... ... ... ... ... ... ... ... ... ...
42
Лабораториялық жұмыс №10
Модуль. Графикамен жұмыс ... ... ... ... ... ... ... ... ... ... ... .
47
Қолданылған әдебиеттер ... ... ... ... ... ... ... ... ... ... ... ... ...
53
Си тiлiнiң негiзгi түсiнiктерi
Паскаль тілінің операторлары
C++ программалау тілі
Программалау тілінде программа құру
Дәріс кешені с/с++ тілдері
СИ тіліндегі файлдар және мәтіндік файлдар
Turbo Pascal программалау тілінің қосымша мүмкіндіктері
Ұялы сымтетік дүкені
Delphi программасы
Си тілінің алфавиті
ПАСКАЛЬ - Программалау стилі, деректерді енгізу және шығару
Есеп шығаруға үйретудің жалпы мәселелері
Басқару ұйымастыру үкім шығару қызметіне қажет
Құжаттарды баспаға шығару
Жұқа линза формуласын есептер шығару
Марғасқа жырау (туған және өлген жылдары белгісіз) (XVII ғ. ) - ақын, жауынгерлік рухтағы жырларды шығарушы, қазақ поэзиясындағы көне дәстүрді жалғастырушы
Есепті шығару
Бүйрек және зәр шығару мүшелерінің аурулары
Лейкограмманы шығару
Насекомдардың зәр шығару мүшесі