2. 2
Алгоритм
Алгоритм қасиеттері
• дискреттілігі: жеке қадамдардан тұрады (командалар)
• анықтығы: алгоритмнің әр нұсқауы немесе командасы
орындаушыға түсінікті болу тиіс, яғни олар бірмәнді
ұғынылып, бір ғана бастапқы деректер бойынша бір
ғана нәтижелерге әкелуі тиіс.
• нәтижелілігі: айқын белгіленген әрекеттер тізімінің
бәрі бірдей нәтижеге жеткізе бермейді.
Алгоритм – орындаушы берілген мақсатқа жету үшін
бағытталған әрекеттер тізбегін орындап шығуға
арналған нұсқаулар.
3. 3
Программа
Программа – это
• Алгоритмдердің программалау тілінде
жазылуы
• Компьютер үшін командалар жиыны
Команда – компьютер іске асыру керек іс
әрекеттердің сипаттамасы.
• алғашқы мәліметтерді қайдан алуға?
• олармен не істеу керек?
4. 4
Программалау тілдері
• Машина-ориенттіленген (төменгі деңгейде) –
әрбір команда процессордың әрбір командасына
сәйкес келеді (ассемблер)
• Жоғары деңгейдегі тілдер– (ағылшын)
жаратылыс тіліне жақындалған, адаммен оңай
қабылданады, конкретті компьютердан тәуелсіз
• Оқыту үшін: Бейсик, ЛОГО, Паскаль
• мамандырылған: Си, Фортран, Паскаль
• Жасанды интеллект есептері үшін: Пролог,
ЛИСП
• Интернет үшін: JavaScript, Java, Perl, PHP,
ASP
5. 5
Паскаль тілі
1970 – Никлаус Вирт (Швейцария)
• студенттерді, оқушыларды оқыту үшін тіл
• бағдарламаларды құру «жоғарыдан
төменге»
• құрылымдық мәліметтердің көптігі
(массивтер, структуралар, жиындар)
Есепше1 Есепше2 Есепше3
1.1 1.2 1.3 2.1 2.2 2.3 3.1 3.2 3.3
Есеп
6. 6
Программа неден құрылады?
program <программа аты>;
const …;{константалар}
var …; {айнымалылар}
begin
… {негізгі программа}
end.
program <программа аты>;
const …;{константалар}
var …; {айнымалылар}
begin
… {негізгі программа}
end.
{ процедуралар және функциялар }{ процедуралар және функциялар }
Фигуралық жақшадағы
коментарийлер өңделмейді
Фигуралық жақшадағы
коментарийлер өңделмейді
7. 7
Программа неден құрылады?
Константа – атауы бар тұрақты өлшем.
Айнымалы – аты бар өзгермелі өлшем
Процедура – кейбір іс әрекеттерді сипаттайтын,
көмекші алгоритм .
Функция – есептеулерді жүргізу үшін арналған
көмекші алгоритм (квадрат түбірді есептеу,
sin).
8. 8программалардың, константалардың, айнымалылардың
атауы
Атаулар келесідей бола алады
• латын әріптерінен (A-Z)
• сандар
• _ сызу белгісі
Бас әріптер мен кіші әріптер айырылмайдыБас әріптер мен кіші әріптер айырылмайды
Атаулар келесідей бола алмайды
• Орыс әріптерден
• Бос орындар
• жақшалар, белгілер +, =, !, ? Және т.б.
Атау цифрдан бастала алмайдыАтау цифрдан бастала алмайды
Қандай атаулар дұрыс??
AXby R&B 4Wheel Вася “PesBarbos”
TU154 [QuQu] _ABBA A+B
9. 9
Константалар
const
i2 = 45; { бүтін сан}
pi = 3.14; { тұрақты сан}
qq = ‘Асан'; { символдар жолы}
L = True; { логикалық өлшемдік }
const
i2 = 45; { бүтін сан}
pi = 3.14; { тұрақты сан}
qq = ‘Асан'; { символдар жолы}
L = True; { логикалық өлшемдік }
Бүтін және бөлшек бөліктер нүктемен бөлінедіБүтін және бөлшек бөліктер нүктемен бөлінеді
Орыс әріптерін қолдануға болады!Орыс әріптерін қолдануға болады!
Екі мәнге ие бола алады:
• True (ақиқат, «иә»)
• False (жалған, «жоқ»)
Екі мәнге ие бола алады:
• True (ақиқат, «иә»)
• False (жалған, «жоқ»)
10. 10
Айнымалылар
Айнымалы – атауға , типіне және мәніне ие болатын
өлшемдік. Айнымалы мәнін программамен жұмыс
барысында өзгертуге болады.
Айнымалылар типі:
• integer { бүтін }
• real { нақты }
• char { бір символ }
• string { симводық жол}
• boolean { логикалық }
Айнымалыларды енгізу :
var a, b: integer;
Q: real;
s1, s2: string;
var a, b: integer;
Q: real;
s1, s2: string;
11. 11
Айнымалы мәнін қалай өзгертуге болады?
Оператор – программалау тілінің жоғарғы деңгейлі
команда болып саналады.
Меншіктеу операторы айнымалының мәнін өзгерту
үшін қызмет етеді.
program qq;
var a, b: integer;
begin
a := 5;
b := a + 2;
a := (a + 2)*(b – 3);
end.
program qq;
var a, b: integer;
begin
a := 5;
b := a + 2;
a := (a + 2)*(b – 3);
end.
a
? 55
b
? 5+27
a
5 7*428
Мысал:
12. 12
Меншіктеу операторы
Арифметикалық өрнек
• константалар
• Айнымалылар аты
• Арифметикалық операциялардың белгілері:
+ - * / div mod
• Функцияларды шақыру
• Дөңгелек жақшалар( )
көбейтукөбейту бөлубөлу Бүтін
бөлігін
айыру
Бүтін
бөлігін
айыру
Бөлшек
бөлігін
айыру
Бөлшек
бөлігін
айыру
<айнымалы аты> := <өрнек>;<айнымалы аты> := <өрнек>;
13. 13
program qq;
var a, b: integer;
x, y: real;
begin
a := 5;
10 := x;
y := 7,8;
b := 2.5;
x := 2*(a + y);
a := b + x;
end.
program qq;
var a, b: integer;
x, y: real;
begin
a := 5;
10 := x;
y := 7,8;
b := 2.5;
x := 2*(a + y);
a := b + x;
end.
Қандай операторлар дұрыс емес?
Айнымалының аты:=
белгісінен сол жақта
болу керек
Айнымалының аты:=
белгісінен сол жақта
болу керек
Бүтін және бөлшек бөлігі
нүктемен бөлінеді
Бүтін және бөлшек бөлігі
нүктемен бөлінеді
Нақты санның мәнін
бүтін айнымалыларға
жазуға болмайды
Нақты санның мәнін
бүтін айнымалыларға
жазуға болмайды
14. 14
program qq;
var a, b: integer;
begin
a := 5;
b := a + 2;
a := (a + 2)*(b – 3);
b := a div 5;
a := a mod b;
a := a + 1;
b := (a + 14) mod 7;
end.
program qq;
var a, b: integer;
begin
a := 5;
b := a + 2;
a := (a + 2)*(b – 3);
b := a div 5;
a := a mod b;
a := a + 1;
b := (a + 14) mod 7;
end.
a b
? ?
5
7
28
5
3
4
4
15. 15
Операциялардың орындалу реті
• Жақша ішіндегі өрнектерді шығару
• көбейту, бөлу, div, mod сол жақтан оң жаққа
• Қосу және азайту сол жақтан оң жаққа
z := (5*a*c+3*(c-d))/a*(b-c)/ b;z := (5*a*c+3*(c-d))/a*(b-c)/ b;
)2)((
)(5 22
addc
badca
x
−+
+−+
=
)(
)(35
cb
ab
dcac
z −
−+
=
x:=(a*a+5*c*c-d*(a+b))/((c+d)*(d-2*a));x:=(a*a+5*c*c-d*(a+b))/((c+d)*(d-2*a));
2 3 5 4 1 7 8 6 9
2 6 3 4 7 5 1 12 8 11 10 9
16. 16
Екі санды қосу
Есеп. Екі бүтін санды енгізіп, экранға олардың
қосындысын шығару.
Қарапайым есептеу:
program qq;
var a, b, c: integer;
begin
read ( a, b );
c := a + b;
writeln ( c );
end.
program qq;
var a, b, c: integer;
begin
read ( a, b );
c := a + b;
writeln ( c );
end.
17. 17
Енгізу операторы
read ( a ); {a айнымалының мәнін
енгізу}
read ( a, b ); {a және b
айнымалылардың мәнін
енгізу}
Сандарды қалай енгізу керек?
бос орын арқылы:
25 30
Enter арқылы:
25
30
a25
b30
a25
b30
18. 18
Шығару операторы
write ( a ); {a айнымалының мәнін
шығару}
writeln ( a ); {a айнымалының мәнін
шығару және жаңа жолға
өту}
writeln ( ‘Салем!' ); { мәтінді шығару}
writeln ( ‘Жауабы: ', c ); { мәтінді
және c айнымалының мәнін шығару}
writeln ( a, '+', b, '=', c );
19. 19
Шығару форматтары
program qq;
var i: integer;
x: real;
begin
i := 15;
writeln ( '>', i, '<' );
writeln ( '>', i:5, '<' );
x := 12.345678;
writeln ( '>', x, '<' );
writeln ( '>', x:10, '<' );
writeln ( '>', x:7:2, '<' );
end.
program qq;
var i: integer;
x: real;
begin
i := 15;
writeln ( '>', i, '<' );
writeln ( '>', i:5, '<' );
x := 12.345678;
writeln ( '>', x, '<' );
writeln ( '>', x:10, '<' );
writeln ( '>', x:7:2, '<' );
end.
>15<
> 15<
>1.234568E+001<
> 1.23E+001<
> 12.35<
>15<
> 15<
>1.234568E+001<
> 1.23E+001<
> 12.35<
Барлық
символдар
Барлық
символдар
Барлық
символда
р
Барлық
символда
р
Бөлшек
бөлігінде
Бөлшек
бөлігінде
20. 20
Толық шешімі
program qq;
var a, b, c: integer;
begin
writeln(‘екі бүтін санды енгізіңдер');
read ( a, b );
c := a + b;
writeln ( a, '+', b, '=', c );
end.
program qq;
var a, b, c: integer;
begin
writeln(‘екі бүтін санды енгізіңдер');
read ( a, b );
c := a + b;
writeln ( a, '+', b, '=', c );
end.
Протокол:
екі бүтін санды енгізіңдер
25 30
25+30=55
компьютеркомпьютер
қолданушықолданушы
21. 21
Сызықты алгоритмнің блок-схемасы
басы
соңы
c := a + b;
енгізу a, b
шығару c
блок «басы»блок «басы»
блок «енгізу»блок «енгізу»
блок «іс әрекет»блок «іс әрекет»
блок «шығару»блок «шығару»
блок «соңы»блок «соңы»
22. 22
Есептер
«4»: Үш санды енгізіп, олардың қосындысы мен
көбейтіндісін тап.
Мысал:
Үш санды енгіз:
4 5 7
4+5+7=16
4*5*7=140
«5»: Үш санды енгізіп, олардың қосындысы мен
көбейтіндісін және арифметикалық ортасын тап.
мысал:
Үш санды енгіз :
4 5 7
4+5+7=16
4*5*7=140
(4+5+7)/3=5.33