Паскаль тілінде программалау


Паскаль тілінде программалау



бет6/10
Дата19.05.2022
өлшемі4 Mb.
#457309
түріПрограмма
1   2   3   4   5   6   7   8   9   10
0010fe44-d35973f3

Паскаль тілінде программалау

  • Тақырып 8. Функциялардың графигі
  • Функция графиктерін құру
  • Есеп: 0 мен 2π интервалы арасындағы y = 3 sin(x) функциясының графигін құру.
  • Анализ:
    • x = π/2 болғанда максималды мән ymax = 3
    • x = 3π/2 болғанда минималды мән ymin = -3
  • Мәселе: функция координалардың математикалық жүйесінде көрсетілген, ал графикті координаталарын пиксельдермен көрсете отырып компьютер экранында шығару керек.
  • Координаталардың түрленуі
  • (x,y)
  • X
  • Y
  • x
  • y
  • Координаталардың математикалық
  • жүйесі
  • Координаталардың экрандық жүйесі (пиксельдер)
  • (xэ,yэ)
  • (0,0)
  • (0,0)
  • a
  • b
  • k – масштаб (экрандағы жекелеген кесінді кескінінің ұзындығы)
  • xэ = a + kx
  • yэ = b - ky
  • Программа
  • w – ОХ осінің ұзындығы(пиксельдер саны)
  • экранда
  • координаталар осі
  • графиктің құрылу циклі
  • program qq;
  • const a = 50; b = 200; k = 50;
  • xmin = 0; xmax = 6.2832;
  • var x, y, h: real;
  • xe, ye, w: integer;
  • begin
  • w := round((xmax - xmin)*k);
  • Line(a-10, b, a+w, b);
  • Line(a, 0, a, 2*b);
  • x := xmin; h := 0.05;
  • while x <= xmax do begin
  • y := 3*sin(x);
  • xe := a + round(k*x);
  • ye := b - round(k*y);
  • Point (xe, ye);
  • x := x + h;
  • end;
  • end.
  • Кемшілігі ?
  • ?
  • Нүктелерді қалай біріктіруге болады?
  • Алгоритм:
  • Егер бірінші нүкте болса
  • (xэ,yэ) нүктесіне өту
  • әйтпесе
  • (xэ,yэ) нүктесіне кесінді
  • Программа:
  • бастапқы мән
  • әрекеттердің нұсқасын таңдау
  • логикалық айнымалы
  • var first: boolean;
  • ...
  • begin
  • ...
  • first := True;
  • while x <= xmax do begin
  • ...
  • if first then begin
  • MoveTo(xe, ye);
  • first := False;
  • end
  • else LineTo(xe, ye);
  • ...
  • end;
  • end.
  • Тапсырмалар

Паскаль тілінде программалау

  • Тақырып 9. Процедуралар
  • Процедуралар
  • Есеп: Мына фигураны құру:
  • Ерекшелігі: Үш ұқсас фигура.
    • жалпы: өлшемдері, айналу бұрышы
    • айырмашылықтары: координаталары, түстері
  • Белгілі әдістермен шешуге бола ма?
  • ?
  • Неше координата белгілеу керек?
  • ?
  • Процедуралар
  • Процедура – кейбір әрекеттерді орындау үшін қолданылатын көмекші.
  • Қолданылуы:
    • программаның әр жерінде орналасқан бірдей әрекеттерді орындау
    • программаны түсіну оңай болу үшін оны бірнеше қосалқы бөліктерге бөлу
  • Көмекші есеп1
  • Көмекші есеп2
  • Көмекші есеп3
  • 1.1
  • 1.2
  • 1.3
  • 2.1
  • 2.2
  • 2.3
  • 3.1
  • 3.2
  • 3.3
  • Негізгі есеп
  • Процедуралар
  • Есепті орындау тәртібі:
    • бірдей немесе ұқсас әрекеттерді ерекшелеп алу (үш фигура)
    • олардың ұқсас жерлері (өлшемі, пішіні, айналу бұрышы) мен айырмашылықтарын (координаталары, түсі) табу
    • айырмашықтарын белгісіз айнымалылар түрінде өрнектеу, осы айнымалылар процедураның параметрлері болады
  • (x, y)
  • 100
  • 60
  • (x+100, y)
  • (x, y-60)
  • procedure Tr( x, y, r, g, b: integer);
  • begin
  • MoveTo(x, y);
  • LineTo(x, y-60);
  • LineTo(x+100, y);
  • LineTo(x, y);
  • Brush(1, r, g, b);
  • Fill(x+20, y-20);
  • end;
  • тақырыбы
  • MoveTo(x, y);
  • LineTo(x, y-60);
  • LineTo(x+100, y);
  • LineTo(x, y);
  • Brush(1, r, g, b);
  • Fill(x+20, y-20);
  • процедура тұлғасы
  • координаталар
  • түс
  • параметрлер
  • Программа
  • program qq;
  • begin
  • Pen(1, 255, 0, 255);
  • Tr(100, 100, 0, 0, 255);
  • Tr(200, 100, 0, 255, 0);
  • Tr(200, 160, 255, 0, 0);
  • end.
  • (100,100)
  • 100
  • 60
  • процедура
  • нақтылы параметрлер
  • procedure Tr( x, y, r, g, b: integer);
  • begin
  • ...
  • end;
  • формальды параметрлер
  • Процедуралар
  • Ерекшеліктері:
    • барлық процедуралар негізгі программаның үстінде орналасқан
    • процедураның тақырыбында формальды параметрлер жазылады, олар кейде өзгеріп отыратындықтан атаулармен белгіленеді
    • процедураны шақыру кезінде жақша ішінде нақтылы параметрлер(сандар немесе арифметикалық өрнектер) көрсетіледі
  • procedure Tr( x, y, r, g, b: integer);
  • Tr (200, 100, 0, 255, 0);
  • x
  • y
  • r
  • g
  • b
  • Процедуралар
  • Ерекшеліктері:
    • әрбір формалды параметрдің қос нүктеден кейін типі көрсетілуі қажет
    • егер типтері бірдей параметрлер бірінен кейін бірі орналасса, олардың арасы үтірмен ажыратылады
    • процедураның ішіндегі параметрлер айнымалылар секілді қолданылады
  • procedure A (x: real; y: integer; z: real);
  • procedure A (x, z: real; y, k, l: integer);
  • Процедуралар
  • Ерекшеліктері:
    • процедурада қосымша айнымалы ретінде жергілікті(локальді) айнымалыларды пайдалануға болады, басқа процедуралар оған қатынай алмайды
  • program qq;
  • procedure A(x, y: integer);
  • var a, b: real;
  • begin
  • a := (x + y)/6;
  • ...
  • end;
  • begin
  • ...
  • end.
  • procedure A(x, y: integer);
  • var a, b: real;
  • begin
  • a := (x + y)/6;
  • ...
  • end;
  • локальді айнымалылар
  • var a, b: real;
  • Параметр-айнымалылар
  • Есеп: екі айнымалы мәндерінің орындарын ауыстыратын процедураны құру.
  • Ерекшеліктері:
    • Процедурада жасалған өзгертулер шақырушы программаға белгілі болуы қажет.
  • program qq;
  • var x, y: integer;
  • begin
  • x := 1; y := 2;
  • Exchange ( x, y );
  • writeln ( ’x = ’, x, ’ y = ’, y );
  • end;
  • procedure Exchange ( a, b: integer );
  • var c: integer;
  • begin
  • c := a; a := b; b := c;
  • end;
  • мына процедура параметрлердің көшірмесімен жұмыс істейді
  • x = 1 y = 2
  • Параметр-айнымалылар
  • Қолданылуы: процедура(және функция) осындай әдіс арқылы бірнеше мән бере алады.
  • Шақыртудың тыйым салынған нұсқалары
    • Exchange ( 2, 3 ); { сандар }
    • Exchange ( x+z, y+2 ); { өрнектер }
  • procedure Exchange ( a, b: integer );
  • var c: integer;
  • begin
  • c := a; a := b; b := c;
  • end;
  • var
  • параметрлер өзгере алады
  • Тапсырмалар
  • "4": Процедураларды пайдалана отырып, мына фигураны құрастыру.
  • "5": Процедураларды пайдалана отырып, мына фигураны құрастыру.
  • a
  • a
  • a
  • 0,866∙a
  • Тең қабырғалы үшбұрыш

Паскаль тілінде программалау

  • Тақырып 10. Рекурсия
  • Рекурсивті объект деп - бір объект немесе дәл осындай бірнеше объект арқылы анықталатын объектіні айтады.
  • Мысалдар:
  • Факториал:
  • егер
  • егер
  • Рекурсияланған сурет:
  • Пифагор ағашы
  • N деңгейлі Пифагор ағашы – бұл ағаштың діңгегі мен осы діңгектен симметриялы түрде өсіп шыққан N-деңгейлі екі Пифагор ағашы, бұл ағаштардың бағанының ұзындығы 2 есе кем және олардың арасындағы бұрыш 90o-қа тең.
  • 6 деңгей:
  • Бұның рекурсивті фигура екенін қалай дәлелдеуге болады?
  • ?
  • Пифагор ағашы
  • Ерекшеліктері:
    • қашан тоқтау керек?
    • ағаштардың иілу бұрышы әр түрлі
  • Қалған деңгейлердің саны нөлге тең болғанда!
  • (x1, y1)
  • (x0, y0)
  • α
  • α+45o
  • α-45o
  • L
  • x1 = x0 + L·cos(α)
  • y1 = y0 – L·sin(α)
  • Еншілес ағаштардың иілу бұрышы
  • α + π/4
  • α – π/4
  • Процедура
  • α бұрышы
  • баған ұзындығы
  • procedure Pifagor(x0, y0, a, L: real;
  • N: integer);
  • const k = 0.6; { ұзындықтың өзгеруі }
  • var x1, y1: real; { жергілікті айнымалылар }
  • begin
  • if N > 0 then begin
  • x1 := x0 + L*cos(a);
  • y1 := y0 - L*sin(a);
  • Line (round(x0), round(y0),
  • round(x1), round(y1));
  • Pifagor (x1, y1, a+pi/4, L*k, N-1);
  • Pifagor (x1, y1, a-pi/4, L*k, N-1);
  • end;
  • end;
  • рекурсивті шақырулар
  • егер N=0 болса, аяқтау
  • Рекурсивті процедура деп өзін өзі шақыратын процедураны айтады
  • Программа
  • program qq;
  • procedure Pifagor(x0, y0, a, L: real;
  • N: integer);
  • ...
  • end;
  • begin
  • Pifagor (250, 400, pi/2, 150, 8);
  • end;
  • α бұрышы
  • баған ұзындығы
  • деңгейлер саны
  • x0
  • y0
  • Ағашты 30o оңға қалай еңкейтуге болады?
  • ?
  • Pifagor (250, 400, 2*pi/3, 150, 8);
  • "4": Рекурсивті процедураны қолдана отырып, мына фигураны құрастыру:
  • "5": Рекурсивті процедураны қолдана отырып, мына фигураларды құрастыру:
  • Задания


Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9   10




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет