Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
UMK_ASDiP_25-06-2012_kz.doc
Скачиваний:
81
Добавлен:
13.03.2015
Размер:
1.79 Mб
Скачать

2.5 Оқытушының жетекшілігімен орындалатын студенттердің өзіндік жұмыстары бойынша өткізілетін сабақтардың жоспары (соөж)

1тақырып. Арифметикалық өрнектер. Сызықты программалар.

СОӨЖ өткізу түрлері: тренинг.

Әдістемелік ұсыныс:

REAL (a,b айнымалылар) мен INTEGER (қалған айнымалар) форматындағы мәліметтерге берілген араласқан арифметикалық өрнектердің есептеу әдісіне блок-схема құру және программасын жазу.

Тапсырмалар варианттары:

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.

14.

15.

16.

17.

18.

19.

20.

21.

22.

23.

24.

25.

26.

27.

28.

29.

30.

Бақылау мысалы.

REAL (a,b айнымалылар) мен INTEGER (қалған айнымалар) форматындағы мәліметтерге берілген араласқан арифметикалық өрнектердің есептеу әдісіне блок-схема құру және программасын жазу.

program primer1;

var rez,a,b:real;

c: integer;

begin

writeln(' c __');

writeln(' a + - - \|28');

writeln(' b');

writeln('---------------');

writeln(' 4*b* a + 1');

writeln;

write('a = '); readln(a);

write('b = '); readln(b);

write('c = '); readln(c);

rez:=(a+c/b-sqrt(28))/(4*b*a+1);

writeln('rez = ', rez:10:5);

end.

Негізгі әдебиет:1 [14-37, 77-85], 4 [14-39].

Қосымша әдебиет:5 [4-6],6[11-14,54-56],7[33-98],8[13-41,53-61,65-72].

2–тақырып. Шартты оператор.

СОӨЖ өткізу түрлері: тренинг.

Әдістемелік ұсыныс: IF шартты операторды қолдана отырып INTEGER форматындағы a, b мәліметтер үшін берілген бүтінсандық өрнектердің есептеу әдісін табу. Алгоритмның блок-сұлбасын құру және программасын жазу.

Тапсырмалар варианттары:

1. 2.

3. 4.

5. 6.

7. 8.

9. 10.

11. 12.

13. 14.

15. 16.

17. 18.

19. 20.

21. 22.

23. 24.

25. 26.

27. 28.

29. 30.

Бақылау мысалы. IF шартты операторды қолдана отырып INTEGER форматындағы a, b мәліметтер үшін берілген бүтінсандық өрнектердің есептеу әдісін табу. Алгоритмның блок-схемасын құру және программасын жазу:

program primer2;

var a,b:integer;

x:real;

begin

write('a = '); readln(a); write('b = '); readln(b);

if (a=b) then x:=-7 else

if (a>b) then x:=a/b-2

else x:=(sqr(a)*a-3)/a;

writeln('X = ',x:6:2);

end.

Негізгі әдебиет:1 [14-37, 77-85], 4 [14-39].

Қосымша әдебиет: 5 [4-6], 6 [11-14, 54-56], 7 [33-98], 8 [13-41, 53-61, 65-72].

3- тақырып. Цикл операторлары.

СОӨЖ өткізу түрлері: есепті шешу.

Әдістемелік ұсыныс: FOR, WHILE және REPEAT циклдық операторларды қолдана отырып вариант бойынша тапсырманы орындау. Алгоритмнің блок-сұлбасын құру және программасын жазу.

Тапсырма варианттары:

1. A мен B (A < B) екі бүтін сан берілген. Өсу тәртібі бойынша осы екі санның арасындағы (бұл сандарды қоса отырып) барлық бүтін сандарды шығару, сонымен бірге сол сандардың N жалпы санын шығару.

2. A мен B (A < B) екі бүтін сан берілген. Кему тәртібі бойынша осы екі санның арасындағы (бұл сандарды қоспай) барлық бүтін сандарды шығару, сонымен бірге сол сандардың N жалпы саның шығару.

3. А нақты сан мен N (> 0) бүтін сан берілген. А санның N дәрежесін табу керек: AN = A·A·...·A (A сандары N рет көбейтіледі)

4.  А нақты сан мен N (> 0) бүтін сан берілген. А санның 1 ден N дейінгі дәрежесін табу.

5.  А нақты сан мен N (> 0) бүтін сан берілген. 1 + A + A2 + A3 + ... + AN шығару.

6. А нақты сан мен N (> 0) бүтін сан берілген. 1 – A + A2 – A3 + ... + (–1)NAN шығару.

7. N (> 1) бүтін сан берілген. 3K > N теңсіздік орындалатын кездегі ең аз бүтін К санын және 3К мәнін шығару.

8. N (> 1) бүтін сан берілген. 3K<  N теңсіздік орындалатын кездегі ең үлкен бүтін К санын және 3К мәнін шығару.

9. Х нақты сан мен N (> 0) бүтін сан берілген. 1 – X2/2! + X4/4! – ... + (–1)X2N/(2N)! (N! = 1·2·...·N) шығару. Алынған сан Х нүктесіндегі cos функциясына жуықталған сан болып табылады.

10. X (|X| < 1) нақты сан мен N (> 0) бүтін сан берілген. X – X2/2 + X3/3 – ... + (–1)N–1XN/N шығару. Алынған сан Х+1 нүктесіндегі ln функциясына жуықталған сан болып табылады.

11. X (|X| < 1) нақты сан мен N (> 0) бүтін сан берілген. X – X3/3 + X5/5 – ... + (–1)NX2N+1/(2N+1) шығару. Алынған сан Х нүктесіндегі arctg функциясына жуықталған сан болып табылады.

12. N (> 2) бүтін сан мен A, B (A < B) сандық осьтеріндегі екі нақты нүктелер берілген. [A, B] кесіндісі Н-үзындықты бірдей кесінділерге бөлінгенген. N нүктеден тұратын қиықтар түрі: A, A + H, A + 2H, A + 3H, ..., B. [A, B] қиықтарын түзетін N нүктелер жиынын және Н мәндерін шығару.

13. N (> 2) бүтін сан және A, B (A < B) сандық осьтеріндегі екі нақты нүктелер берілген. F(X) функциясы F(X) = 1 – sin(X) формуласымен берілген. [A, B]: F(A), F(A + H), F(A + 2H), ..., F(B) қиықтарын түзетін N тең арақашықтықтағы нүктелеріндегі F функциясының мәнін шығару.

14. D (> 0) бүтін сан берілген. AN сандардың тізбегі келесі түрде анықталады:

A1 = 2,     AN = 2 + 1/AN–1,     N = 2, 3, ... |AK – AK–1| < D шарты орындалатын кезіндегі К нөмірлердің біріншісін іздеп табу, оны шығару, сонымен бірге AK–1 мен AK сандарын шығару.

15. D (> 0) бүтін сан берілген. AN сандардың тізбегі келесі түрде анықталады:

A1 = 1,     A2 = 2,     AN = (AN–2+ AN–1)/2,     N = 3, 4, ... |AK – AK–1| < D шарты орындалатын кезіндегі К нөмірлердің біріншісін іздеп табу, оны шығару, сонымен бірге AK–1 мен AK сандарын шығару.

16. Банктік салымының көлемін есептейтін және сол көлемді әр жыл үшін салымның жылдық пайызын (3%) есептей отырып (ол салым екі есе көбейгенше) есептеп шығаратын программаны жазу.

17. Кез келген n және m үшін биноминалдық коэффициентті есептейтін программа жазу:

18. 0˚ ден 90˚ берілген қадаммен sin, cos функциялардың мәндер кестесін шығаратын программаны жазу.

19. қатардың бірінші алты элементтерінін қосындысын есептеу (i элементінің мәні оның нөмірімен келесі формуламен байланысты 1/i). Кезекті элементін есептегеннен кейін ол элементтің нөмірімен мәнін шығару.

20. Клавиатурадан енгізілетін оң сандардың қосындысын есептейтын программаны жазу.

21. Клавиатурадан енгізілетін жұп сандардың қосындысын есептейтын программаны жазу.

22. Клавиатурадан енгізілетін сандардың жәй сандар екендігін анықтайтын программаны жазу.

23. Келесі шексіз қосындының (қосындының есептеу дәлдігі берілетін болсын) жуықталған мәнін есептейтын алгоритмді құру және программасын жазу.

Бақылау мысалы. А натуралды санның барлық бөлгіштерін есептейтін программаны жазу және блок-сұлбаны құру.

program primer3;

var a,n,c,d:word;

begin { негізгі программа }

readln( a );n:=1;

while ( n <= sqrt(a) ) do

begin

c:=a mod n; d:=a div n;

if c = 0 then

begin

writeln( n );

if n <> d then writeln( d );

end;

inc( n );

end; end.

Негізгі әдебиет:1 [14-37, 77-85], 4 [14-39].

Қосымша әдебиет: 5 [4-6], 6 [11-14, 54-56], 7 [33-98], 8 [13-41, 53-61, 65-72].

4- тақырып. Бірөлшемді массивтер

СОӨЖ өткізу түрлері: есепті шешу.

Әдістемелік ұсыныс: Вариантта көрсетілгендей бірөлшемді массивті өңдеуді жүзеге асыру. Алгоритмнің блок- сұлбаны құру және программасын жазу.

Тапсырмалар варианттары:

1. N өлшемді массив берілген. Массив индекстерін оларға сәйкес элементтер өсу реті бойынша түзілетіндей тәртіпте шығару.

2. N өлшемді массив берілген. Алдымен оның жұп индексті элементтерін шығару, сосын – тақ индекстісін шығару.

3. Өлшемі 10-ға тең А массиві берілген. A[1] < A[i] < A[10] теңсіздігін қанағаттандыратын A[i] элементтерінің ішінен біріншісінің нөмірін шығару. Егер мұндай элементтер болмаса, онда 0 мәнін шығару.

4. Өлшемі 10-ға тең А массиві берілген. Жұп сандарына бірінші элементті қосып , массивті жаңа массивке түрлендіру. Массивтің бірінші элементі өзгеріссіз қалмақ.

5. N өлшемді массив берілген. Массивтің жұп элементтерін, содан кейін – тақ элементтерін шығару.

6. 10 өлшемді массивтің минимальды мен максимальды элементтерінің орындарын алмастыру.

7. 10 өлшемді массивтің оң сандық элементтерін минимальды мәнге алмастыру.

8. 10 өлшемді массив берілген. Массивтің минимальды мен максимальды элементтерінің арасындағы тұрған элементтерді кері тәртіппен орналастыру.

9. N өлшемді массив берілген. Массивтің элементтерін бір позицияға солға қарай циклдық жылжытуды жүзеге асыру.

10. N өлшемді массив пен k (0 < k < 5, k < N) саны берілген. Массивтің элементтерінің k позицияға оңға қарай циклдық жылжытуды жүзеге асыру.

11. N өлшемді массивтің элементтерінің арифметикалық прогрессияны түзетіндігі тексеру қажет. Егер Иә болса прогрессияның айырымын шығару, егер болмаса – 0 шығару.

12. N өлшемді нөлдік емес бүтін санды массив берілген. Оның ішінде тақ пен жұп сандары кезектескенін тексеру. Егер кезектессе 0 шығару, егер кезектеспесе, онда бұл заңдылықты бұзатын бірінші элементтің нөмірін шығару.

13. N өлшемді массив берілген. Оның жергілікті минимумын табу.

14. N өлшемді массив берілген. Оның жергілікті минимумдары арасында максимальдысын табу.

15. N өлшемді массив берілген. Оның злементтері бір қалыпты өсетін жерлерінің санын анықтау.

16. N өлшемді массив пен R нақты сан берілген. Оның бір қалыптылық аралықтарының санын (оның элементтері өсетін немесе кемитін жерін) анықтау.

17. N өлшемді массив пен R нақты сан берілген. Берілген санға ең жақын болатын массивтің элементін табу.

18. N өлшемді массив пен R нақты сан берілген. Қосындылары берілген санға жуық мән беретін екі элементті табыңыз.

19. N өлшемді массив берілген. Бұл массивтегі екі ең жақын сандардың нөмірлерін табу.

20. N өлшемді массив берілген. Оның бірдей элементтерінің максимальды санын табу.

21. N өлшемді массив берілген. Екіден кем рет кездескен элементтерін алып тастау.

22. N өлшемді массив берілген. Егер ол құрамында 1 ден N дейінгі сандарды қамтыса, онда нөлді шығару, әйтпесе бірінші кездескен ретсіз элементінің нөмірін шығару.

23. N өлшемді массив берілген. Барлық оң элементтің алдына нөлдік элементті қосып өзгерту.

24. N өлшемді массив берілген. Серия деп қатар келе жатқан бірдей элементтердің тобын атаймыз, ал серияның ұзындығы деп – ол элементтердің санын (серияның ұзындығы 1 тең болуы мүмкін) белгілейміз.. Берілген массивтің барлық серияларының ұзындығын қамтитын массив шығару.

25. N өлшемді массив берілген. Әр серияға бір элементті қосып өзгерту.

26. N өлшемді массив берілген. Бірінші кездескен ең ұзын серияға бір элементті қосып өзгерту.

27. N өлшемді массив берілген. Әр сериядан кейін нөлдік элементін қойып шығу.

28. N өлшемді массив пен k саны берілген. Массивтің соңғы және  k-ші серияларының орындарын ауыстыру. Егер массивте сериялардың саны k-дан төмен болса, онда массивті өзгертпей шығару.

29. N өлшемді массив пен k саны берілген. Сериялардың ұзындығы k –ға тең барлық серияларды массивтен алып тастау.

30. N өлшемді массив пен k саны берілген. Cерияның ұзындығы k саннан кіші әрбір серияны бір нөлдік элементке ауыстырып отыру.

Бақылау мысалы. А(10) массиві берілген. Массивтің барлық элементтерінің әртүрлі екенін анықтау.

program primer4;

var a:array[1..10] of integer;

i,j:integer;

begin

writeln('массивтің 10 элементтерін енгізіңіз');

for i:=1 to 10 do readln( a[i] );

for i:=1 to 9 do begin

for j:=i+1 to 10 do begin

if a[i]=a[j] then break;

end;

if j<10 then break;

end;

if i<9 then writeln(' массивте бірдей элементтері бар')

else writeln('массивтегі барлық элементтер әртүрлі');

end.

Негізгі әдебиет:1 [37-43, 97-99], 2 [123-132], 3 [42-59], 4 [7-11]

Қосымша әдебиет: 2 [95-106].

5 –тақырып. Екі өлшемді массивтер

СОӨЖ өткізу түрлері: есепті шешу.

Әдістемелік ұсыныс: Екі өлшемді нақты сандардан тұратын массив берілген ( А матрицасы), массивті төмендегі варианттарды қолданып, өңдеу. Бастапқы деректерді тапсырма ерекшеліктерін назарға ұстай отырып қолдан енгізу. Алгоритм блок-схемасын құрып, программасын жазу.

Тапсырмалар варианттары:

1. k (0 < k < 11) саны мен 4х10 матрицасы берілген. k бағананың элементтерінің қосындысы мен көбейтындысын табу.

2. 5х9 матрицасы берілген. Оның барлық жұп бағаналарының элементтерінің қосындысын табу.

3. 5х10 матрицасы берілген. Оның барлық тақ бағанасындағы минимальды мәнді табу.

4. 5х10 матрицасы берілген. Оның барлық жұп бағаналарының элементтерінің қосындысын табу.

5. Берілген 5х10 матрицасында максималді элементі орналасқан жолды минималді элемент орналасқан жолмен ауыстыру.

6. 5х10 матрицасы берілген. Барлық бағаналардың элементтерінің қосындысының арасындағы минимальды мәнді табу және сол минимальды мән орналасқан бағананың нөмірін табу.

7. 5х10 матрицасы берілген. Әр жолдың максимальды элементтерінің арасындағы минимальдысын табу.

8. 5х10 матрицасы берілген.Оң және теріс элементтерінің саны тең болған бірінші жолдың нөмірін шығару (нөлдік элементтер есептелмейді). Егер ондай жолдар болмаса, 0 шығару.

9. 5х10 матрицасы берілген.Тек оң элементтерінен құралған соңғы жолдың нөмірін шығару. Егер ондай жолдар болмаса, 0 шығару.

10. MхN матрицасы берілген.Егер жолдарда (бағаналарда) кездескен сандардің көптігі сәкес келсе, онда ол жолдарды (бағаналарды) ұқсас деп атаймыз. Соңғы бағанаға ұқсайтын бағаналардың санын табу.

11. MхN матрицасы берілген. Барлық элементтері әр түрлі жолдардың санын табу.

12. MхN матрицасы берілген. Бірдей элементтердің саны максимальды болған бірінші кездескен жолдың нөмірін шығару.

13. M квадратты матрицасы берілген. A[1,M] бірэлементтік диагональдан бастап басты диагональға параллельді диагональдардың элементтерінің қосындысын табу.

14. M квадратты матрицасы берілген. A[1,1] бірэлементтік диагональдан бастап қосымша диагональға параллельді диагональдардың элементтерінің қосындысын табу.

15. M квадратты матрицасы берілген. A[1,1] бірэлементтік диагональдан бастап қосымша диагональға параллельді диагональдардың элементтерінің арасындағы максимальдысын шығару.

16. M квадратты матрицасы берілген. басты диагональдан төмен жатқан элементтерді нөлге ауыстыру.

17. M квадратты матрицасы берілген. Басты диагональмен қоса одан жоғары жатқан және қосымша диагональмен қоса одан төмен жатқан элементтерін нөлге ауыстыру.

18. M квадратты матрицасы берілген. Матрица симметриясына горизонтальды оське байланысты оның элементтерін айналық түрде көрсету.

19. M квадратты матрицасы берілген. Матрица симметриясына вертикальды оське байланысты оның элементтерін айналық түрде көрсету

20. M квадратты матрицасы берілген. Матрицаның басты диагоналына байланысты оның элементтерін айналық түрде көрсету.

21. M квадратты матрицасы берілген. Матрицаның қосымша диагоналына байланысты оның элементтерін айналық түрде көрсету.

22. M квадратты матрицасы берілген. Оны 90 градуске оң жаққа қарай бұру.

23. M квадратты матрицасы берілген. Оны 180 градуске оң жаққа қарай бұру.

24. M квадратты матрицасы берілген. Оны 270 градуске оң жаққа қарай бұру.

25. k саны мен 4 x 10 өлшемді матрица берілген. K нөмірлі жолды матрицадан алып тастау.

26. 5 x 10 өлшемді матрица берілген. Минимальды элементті қамтитын бағананы матрицадан алып тастау.

27. 5 x 10 өлшемді матрица берілген. Тек оң элементтерін қамтитын барлық бағаналарды матрицадан алып тастау.

28. 4 x 9 өлшемді матрица берілген. K нөмірлі жолдың алдына нөлдерден құрылған жолды қою.

29. 4 x 9 өлшемді матрица берілген. Максимальды элементті қамтитын бағананың көшірмесін құру

30. 5 x 9 өлшемді матрица берілген. Тек оң элементтерден құрылатын соңғы бағанадан кейін тек 1-ден құралатын бағананы қосу.

Бақылау мысалы

NxN екі өлшемді массив берілген. Басты және қосымша диагоналдардағы элементтердің қосындысын табу.

program primer5;

uses crt;

const n=5;

var a:array[1..n,1..n] of integer;

i,j,s,s1,s2:integer;

begin

clrscr;

for i:=1 to n do

for j:=1 to n do

read(a[i,j]);

s:=0; s1:=0; s2:=0;

for i:=1 to n do

for j:=1 to n do

begin

if i=j then s1:=s1+a[i,j] else

if i+j=n+1 then s2:=s2+a[i,j];

end;

s:=s+s1+s2;

write('s=',s);

end.

Негізгі әдебиет:3 [123-135], 4 [92-105] .

Қосымша әдебиет: 5 [12-14].

6–тақырып. Символдық деректер.

СОӨЖ өткізу түрлері: тренинг.

Әдістемелік ұсыныс: Символдар тізбегін клавиатурадан енгізіп, оның өңдеуін вариантта көрсетілген тапсырмалар бойынша іске асыру. Бастапқы деректерді қолдан енгізу, тапсырмалар нақтылығы ескерілуі тиіс.

Тапсырма варианттары.

1. C1 ден бастап C1 мен C2 кезектесетін символдардан тұратын  N (N — жұп) жолдың ұзындығын шығару.

2. Жол берілген. Жол элементтерін кері тәртіпте шығару.

3. Жол берілген. Ішіндегі бас әріптердің санын есептеу.

4. Жол берілген. Ішіндегі сандардың санын есептеу.

5. Жол берілген. Барлық кіші әріптерді бас әріптерге түрлендіру.

6. Жол берілген. Егер ол бүтін сандарды қамтыса – 1 шығару, егер нақты санды жазба болса – 2 шығару; егер жолды санға ауыстыруға болмаса - 0.

7. Бүтін сан берілген. Кері ретіндегі сандардан қамтитын символдар жиынын шығару.

8. N (> 0) бүтін сан мен жылжымалы үтірлі нүкте форматындағы нақты сандарды қамтитын S жолы берілген. Сол санның бөлшек бөліктеріндегі алғашқы N сандарын символдар жиыны түрінде көрсету.

9. S1, S2 жолдары және С символы берілген. S1 жолына С символдың әр кіруінің алдында S2 жолын енгізу.

10. S1 және S2 екі жол берілген. S1 жолынан S2 жолымен сәйкес келген ішкі жолды алып тастау. Егер ондай подстрока болмаса, онда S1 жолын өзгертпей шығару.

11. S1, S2 және S3 үш жол берілген. S1 жолында S2 жолының соңғы кіруін S3 жолына ауыстыру.

12. Жол берілген. Сол жолдың бірінші мен екінші нүктелерінің арасындағыішкі жолды шығару. Егер жолда нүктелердің саны екіден кем болса, онда берілген жолды шығару.

13.  Бір немесе бірнеше пробелмен бөлінген орыс сөздерінен құралған жол берілген. Жолдағы сөздердің санын анықтау.

14. Бір немесе бірнеше пробелмен бөлінген орыс сөздерінен құралған жол берілген. Бір әріптен басталып сол әріпке аяқталған сөздердің санын анықтау.

15. Бір немесе бірнеше пробелмен бөлінген орыс сөздерінен құралған жол берілген. Үш "А" әріп кездесетін сөздердің санын анықтау.

Бақылау мысалы.

Сөз екі жағынанда бірдей оқылатының анықтайтын программаны жазу. Мысалы, «шалаш», «қазақ» - сондай сөздер.

program primer6;

var s1,s2:string;

i:integer;

begin

readln(s1); s2:='';

for i:=length(s1) downto 1 do begin

s2:=s2+s1[i];

end;

if s1=s2 then writeln(s1, ' – сол сөз')

else writeln(s1, ' – ол сөз емес');

end.

Негізгі әдебиет:1 [107-109], 2 [135-140]., 3 [154-165].

Қосымша әдебиет:4 [57-82].

7–тақырып. Жолдық деректер.

СОӨЖ өткізу түрлері: тренинг.

Әдістемелік ұсыныс: Клавиатурадан символдар тізбегін қолдан енгізіп, вариантта көрсетілген тапсырмалар бойынша өңдеу. Бастапқы деректерді қолдан енгізу, тапсырмалар нақтылығы ескерілуі тиіс.

Тапсырма варианттары.

1. Бүтін санды екілік жазба түрінде көрсететін жол берілген. Сол санның ондық жазбасын көрсететін жолды шығару.

2. Бүтін санды көрсететін жол берілген. Сол сандардың қосындысын шығару.

3. S жолы мен N сан берілген. S жолын N ұзындықты жолға келесі түрде өзгерту қажет: егер S жолының ұзындығы N-нан үлкен болса, онда бірінші символдарды лақтырамыз, егер S қатары N-нан кіші болса, онда оның бас жағына “.” Символын қосу қажет.

4. N1 және N2 екі саны, S1 және S2 екі жол берілген. N1 санын S1 қатарының бірінші символына қосып, N2 санын S2 жолының соңғы символдарына қосып, жаңа қатар алу.

5. S1 және S2 екі жол берілген. S2 жолы S1 жолының құрамында барын тексеру. Егер болса, онда S2 жолы S1 жолының құрамына бастап кірген позицияның нөмірін шығару; егер кірмесе – 0 шығару.

6. S1 және S2 екі жол берілген. S2 жолы S1 жолына қанша рет кіретін санын анықтау.

7. S жолы және С символы берілген.  S жолына С символының әр кіруін еселеу.

8. Бір немесе бірнеше пробелмен бөлінген орыс сөздерінен құралған жол берілген. Ең қысқа және ең ұзын сөздердің ұзындығын анықтау.

9. Бір немесе бірнеше пробелмен бөлінген орыс сөздерінен құралған жол берілген. Сол сөздерден құралған, бірақ "." (нүктемен) бөлінген жолын шығару. Ең соңында нүкте қойылмайды.

10. Бір немесе бірнеше пробелмен бөлінген орыс сөздерінен құралған жол берілген. Сол сөздерден құралған, бірақ аралары бір пробелмен бөлінген, сөздер кері ретінде жазылған жолын шығару.

11. Бір немесе бірнеше пробелмен бөлінген орыс сөздерінен құралған жол берілген. Жолдағы әр сөздерден оның бірінші әріпінің келесі кірулерін алып отырып өзгерту.

12. Бір немесе бірнеше пробелмен бөлінген орыс сөздерінен құралған жол берілген. Сол сөздерден құралған, бірақ аралары бір пробелмен бөлінген, сөздер алфавит бойынша жазылған жолын шығару.

13. Сөйлем-жол берілген. Әр сөз бас әріппен басталатындай жолды өзгерту.

14. Сөйлем-жол берілген. Жолдағы тыныс белгілері мен дауысты әріптердің санын есептеу.

15. Сөйлем-жол берілген. Сөйлемдегі ең қысқа мен ең ұзын сөзді шығару (егер ондай сөз бірнеше болса, онда соңғысын шығару).

Негізгі әдебиет:1 [107-109], 2 [135-140], 3[154-165].

Қосымша әдебиет: 4[57-82].

8– тақырып. Процедуралар .

СОӨЖ өткізу түрлері: есепті шешу.

Әдістемелік ұсыныс: Бұл топтың ішіндегі тапсырмаларда іnteger және real типті сандық параметрлері бар процедуралар мен функцияларды жүзеге асыруі қажет. Бұл типтердің кіріс параметрлері әдетте мәнді-параметрлері түрде сипатталады.

Тапсырмалар варианттары:

1. А мен В нақты сандардың біреуін минимальді болып табатын Min2(A,B) нақты типті функцияны сипаттау. Сол функцияның көмегімен А мен В, А мен С, А менD арасынан минимальды санды табу, егер А, В, С және D берілген сандар болса.

2. А мен В мәндердің арасындағы минимальді мәнін А айнымалысына, максимальді мәнін В айнымалысына жазатын Minmax(A,B) процедурасын сипаттау (А мен В – нақты параметрлер, олар бір мезгілде кіріс және шығыс параметрлері болып табылады). Осы процедураның төрт шақыруын пайдалана отырып A, B, C, D сандардың арасындағы минимальді мен максимальді сандарын табу.

3. п. 2 тапсырмадағы Minmax(A,B) процедурасын қолдана отырып A, B, C нақты сандардың арасынан максимальді санды табатын Max3(A,B,C) нақты типті функциясын сипаттау. Осы функция арқылы A, B, C, D сандардың арасындағы келесі жиындардың арасынан (A,B,C), (A,B,D), (A,C,D) максимальдісін табу.

4. п.1 тапсырмадағы Min2 процедурасын қолдана отырып A, B, C, D нақты сандардың арасынан минимальді санды табатын Min4(A,B,C,D) нақты типті функциясын сипаттау. Осы функция арқылы A, B, C, D, Е сандардың арасындағы келесі жиындардың арасынан (A,B,C,D), (A,B,C,E), (A,C,D,E) минимальдісін табу.

5.  N! = 1·2·...·N (N > 0 (бүтін санның параметрі) факториалдің мәнін есептейтін Fact(N) бүтін типті функциясын сипаттау. Сол функция арқылы берілген 10 санның факториалдарын есептеу.

6.  N! = 1·2·...·N (N > 0 (бүтін сандар үшін) факториалдің жуықталған мәнін есептейтін бүтін типті FactR(N) функциясын сипаттау. Сол функция арқылы берілген 5 санның факториалдарын есептеу.

7. Егер N — тақ болып, N!! = 2·4·6·...·N; N — жұп болса (N > 0 (бүтін санның параметрі) N!! = 1·3·5·...·N «екі еселенген факториалдің» мәнін есептейтін бүтін типті Fact2(N) функциясын сипаттау. Сол функция арқылы берілген 10 санның екі еселенген факториалдарын есептеу.

8.  N -бүтін санның цифрлерінің S-қосындысын табатын SumDigit(N,S) процедурасын сипаттау (N –кіріс параметрі, S – шығыс параметрі). Сол процедура арқылы берілген 5 санның факториалдарын есептеу.

9.  A мен B натурал санның ең үлкен бөлгішін табатын бүтін типті NOD2(A,B) рекурсивтік емес функциясын сипаттау, оны Евклид алгоритмі бойынша: НОД(A,B) = НОД(B mod A,A), егер A <> 0;     НОД(0,B) = B. Сол функция көмегімен A мен B, A мен C, A мен D сандардың ең үлкен бөлгішін табу, егер  A, B, C, D сандары берілген болса.

10. PowerA(x,a,eps) нақты типті функцияны сипаттау (x, a, eps параметрлері —нақты, |x| < 1, a > 0, eps > 0), ол (1+x)a: (1+x)a = 1 + a·x + a·(a–1)·x2 / 2! + ... + a·(a–1)·...·(a–n+1)·xn / n! + ... функцияның жуықталған мәнін табады. Қосындыда eps модулінен үлкен барлық қосылғыштарды ескеру керек. PowerA көмегімен х пен а деректердің eps –ң алты әртүрлі мәндер үшін (1+x)a -ң жуықталған мәнін табу.

2-тапсырма. Бұл топтың ішіндегі тапсырмаларындағы процедуралар мен функциялардың сипаттамасында массивтерді параметр арқылы беруінің әрекеттерін ескеру қажет. Бірөлшемді массивтер үшін Borland Pascal 7.0 енгізілген ашық массивтерінің механизімін пайдалану керек.Екі өлшемді массивтерінде алдын ала сәйкесті қолданушілік типін анықтау қажет, оны кейін параметр-матрицаны сипаттағанда қолданатын боламыз. Кірістік параметрлер-массивтерін әдетте параметрлер-мәндер арқылы сипаттамайды. Егер массив процедуралар/функциялар орындалу мерзімінде өзгермесе, оны параметр-константа ретінде, ал өзгерген кезде, параметр-айнымалы ретінде алу керек.

Тапсырмалар варианттары:

1.  Белгілі Х нақты нүктесіндегі Р полиномның мәнін табатын Polynom(A,N,X) нақты типті функцияны сипаттау. Р полиномі  келесі параметрлер арқылы берілген:N (полиномның дәрежесі, 0 < N < 8) және A полиномның (коэффициенты, N+1 өлшемді нақты массив): P(X) = A[1]·XN + A[2]·XN–1 + ... + A[N]·X + A[N+1]. Осы функцияны қолдана отырып белгілі бес нүктедегі полиномның мәнән табу.

2. N нақты саннаң құралатын А массивтегі максимальді элементін табатын Max(A,N) нақты типті функциясын сипаттау. Сол функция көмегімен NA, NB, NC өлшемге сәйкесті А, В, С  массивтегі максимальді элементтерін табу.

3.  N нақты саннаң құралатын А массивтегі минимальді элементін табатын NMin(A,N)) нақты типті функциясын сипаттау. Сол функция көмегімен NA, NB, NC өлшемге сәйкесті А, В, С  массивтегі минимальді элементтерін табу.

4.  N нақты саннан қүралатын А массивтегі минимальді мен максимальді элементтерінің нөмірлерін табатын NMinmax(A,N,NMin,NMax) процедурасын сипаттау. Шығыс параметрлері: NMin (минимальді элементтің нөмірі) және  NMax (максимальді элементтің нөмірі). Сол функция көмегімен NA, NB, NC өлшемге сәйкесті А, В, С  массивтегі минимальді мен максимальді элементтерінің нөмірлерін табу.

5.  A натурал санды жай көбейткіштерге ажыратуын табатын Factors(A,N,F) процедурасын сипаттау. Сол процедура арқылы берілген 5 санңың  жай көбейткіштерге ажыратуын көрсету.

6.  N нақты саннан инверторлі («инвертерілген массивке») А массивтегі элементтерінің еру тәртібін өзгертетін Invert(A,N) процедурасын сипаттау. А массиві – кіріс және шығыс параметрірі, N –кіріс параметрі. Сол процедура көмегімен NA, NB, NC өлшемге сәйкесті А, В, С  массивтерін инверторлау.

7.  N өлшемді А нақты массивті k позициясына (0 < k < 5, k < N) солға1|оңға2 қарай циклдік жылжытуды жүзеге асыратын MoveLeft(A,N,k)1|MoveRight(A,N,k)2 процедурасын сипаттау. А массиві – кіріс және шығыс параметрірі, N мен k – кіріс параметрі. Сол процедура көмегімен N өлшемді массивті k1-позициясына жылжыту, содан кейін – алынған массивтегі элементтерін k2 позицияға жылжыту (k1 мен k2 берілген). Процедураның әр орындалғаннан кейін экранға жаңа массивті шығару.

8.  N өлшемді А нақты массивтің әр элементін онымен көршілес элементерінің орта арифметикалығына ауыстыратын Smooth(A,N) процедурасын сипаттау. А массиві – кіріс және шығыс параметрі, N – кіріс параметрі. Сол процедура көмегімен N өлшемді массивті 5 рет орындау. Процедураның әр орындалғаннан кейін экранға жаңа массивті шығару.

9. N бүтін саннан қүралатын А массивтен Х бүтін санды алып тастайтын RemoveX(A,N,X) процедурасын сипаттау. А массиві мен N саны кіріс және шығыс параметрі болып табылады. Сол процедура көмегімен NA, NB, NC өлшемді A, B, C массивтерден сәйкесті XA, XB, XC сандарын алып тастау.)

10. N бүтін саннан қүралатын А массивтегі Х санға тең элементтерін қайталайтын DoubleX(A,N,X) процедурасын сипаттау. А массиві мен N саны кіріс және шығыс параметрі болып табылады. Сол процедура көмегімен NA, NB, NC өлшемді A, B, C массивтерге і XA, XB, XC сандарының әр кірісін сәйкесті түрінде қайталауы.)

Негізгі әдебиет:1 [161-181].

Қосымша әдебиет:5 [16-19], 6 [104-116], 7 [187-211], 8 [121-134].

9– тақырып. Функциялар.

СОӨЖ өткізу түрлері: есепті шешу.

Әдістемелік ұсыныс: Жолдық деректерді процедуралар/функциялар парамері ретінде беру. Кірістік жолдық параметрлерін, егер олар процедуралар/функциялардің ішінде өзгермесе, онда оларды параметр-константа арқылы сипаттағаны дұрыс.

Тапсырмалар варианттары:

1. S жолы Паскаль тілінің. рұқсат етілетін идентификаторы болатынын тексеретін IsIdent(S) бүтін сандық функциясын сипаттау. Егер дұрыс болса 0 қайтарылады. Егер S бос жол болса – 1 қайтарылады, егер жол саннан басталса – 2 қайтарылады. Егер S рұксат берілмеген символдардан түрса, бірінші рұқсат берілмеген символдың нөмері қайтарылады. Сол функция көмегімен 5 берілген санын тексеру.

2. S шаблон-жолының қайталанатын копияларымен толтырылған Len ұзындығы бар жолды қайтаратын FillStr(S,Len) жолдық типті функциясын сипаттау. Сол функция көмегімен Len берілген санмен және 5 берілген шаблон-жолының 5 жаңа Len, ұзындығы бар жолдарды құру.

3. S жолының барлық бас әріптерін кіші әріптерге ауыстыратын (басқа символдар өзгермейді) LowCase1(S), процедурасын сипаттау. Сол процедурасы көмегімен берілген 5 жолын өзгерту.

4. S жолынан біріші және соңғы пробелдерін алып тастайтын Trim(S)3 процедурасын сипаттау. Сол процедурасы көмегімен берілген 5 жолын өзгерту.

5. S жолында subS ішкіжолының соңғы кірісінен түратын позиция нөмірін қайтарып түратын PosLast(subS,S) функциясын сипаттау. Егер S жолында subS ішкіжолы болмаса, ол функция  0 қайтарылады. Берілген subS және S 5 мәндіріне бұл функцияның мәндерін шығару .

6. S жолында subS (k > 0) ішкіжолының k –кірісі кездескен позиция нөмірін қайтарып түратын PosK(subS,S,k) бүтін типті функциясын сипаттау. Егер S жолындағы subS ішкіжолының кірістерінің саны k-дан аз болса, ол функция  0 қайтарылады.  Берілген subS, k және S 5 мәндіріне бұл функцияның мәндерін шығару .

7. S жолының k-сөзін қайталайтын (сөз дегеніміз пробелмен немесе жолдың басы/аяғымен шектелінген пробелсыз симолдардың жиыні болып табылады) WordN(S,k) жолдық типті функциясын сипаттау. Егер жолдағы сөздердің саны k-дан аз болса, ол функция  бос жолды қайтарады.  Сол функцияны пайдалана отырып берілген S жолынан k1, k2, k3 нөмірлі сөздерді меншіктеу.

8. Берілген S жолмен W сөздердың жиынын қалыптастыратын SplitStr(S,W,N) процедурасын сипаттау, (W — шығыс жолдық массив; N — онын өлшемі, N<= 10). Сөз дегеніміз пробелмен немесе жолдың басы/аяғымен шектелінген пробелсыз симолдардың жиыні болып табылады Сол функцияны пайдалана отырып берілген S жолындғы сөздердің санын шығару (N) және сол сөздерді шығару.

9. N бүтін оң санның 16-қ санау жүйесіндегі жолдық ұсынысын қайтаратын DecToHex(N) функциясын сипаттау. Жаңа жол '0'–'9', 'A'–'F' символдардан құралады. Сол функцияны пайдалана отырып берілген 5 санның 16-лық ауысуын алу.

10. Бүтін оң санды оның S жолдық ұсынылу бойынша екілік санау жүйесінде анықтайтын бүтін типтік BinToDec(S) функциясын сипаттау. S параметрі string типіне сәйкес, ['0'–'1'] символдардан тұрады және бастаушы нөльдерден тұрмайтын. Сол функцияны пайдалана отырып бутін 5 санды шығару (олар екілік1/ 16-лық санау жүйесінде берілген).

1– бақылау мысалы.

Программада 5 пен 7 екі бүтін сан берілген, ол сандар оларді еселейтін Inc2 процедурасына беріледі. Параметрлердің біреуі параметр-айнымалы ретінде, ал екіншісі - параметр-мәні ретінде беріледі Процедураның шығару алдындағы және солан кейінгі алынған еселену нәтижесі экранға шығарылады.

    program primer7;     var a,b: integer;     procedure inc2(var c: integer; b: integer);         begin             c := c + c;             b := b + b;             writeln(‘екі еселенген :’, c:5, b:5)         end; {inc2}     begin {main}         a:=5; b:=7;         writeln(‘бастапқы :’, a:5, b:5); inc2(a, b);         writeln(‘нәтиже :’, a:5, b:5)     end. {main}

Программма орындалғаннан кейін шығарылатын: Бастапқы : 5    7

Екі еселенген: 10    14

Нәтиже: 10    7

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]