- Тақырып 8. Функциялардың графигі
- Есеп: 0 мен 2π интервалы арасындағы y = 3 sin(x) функциясының графигін құру.
- Анализ:
- x = π/2 болғанда максималды мән ymax = 3
- x = 3π/2 болғанда минималды мән ymin = -3
- Мәселе: функция координалардың математикалық жүйесінде көрсетілген, ал графикті координаталарын пиксельдермен көрсете отырып компьютер экранында шығару керек.
- Координаталардың түрленуі
- Координаталардың математикалық
- жүйесі
- Координаталардың экрандық жүйесі (пиксельдер)
- k – масштаб (экрандағы жекелеген кесінді кескінінің ұзындығы)
- 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.
- "4": [-3,3] интервалы арасында y = x2 функциясының графигін құру.
-
- "5": Функция графигін құру (эллипс)
Паскаль тілінде программалау - Есеп: Мына фигураны құру:
- Ерекшелігі: Үш ұқсас фигура.
- жалпы: өлшемдері, айналу бұрышы
- айырмашылықтары: координаталары, түстері
- Белгілі әдістермен шешуге бола ма?
- Неше координата белгілеу керек?
- Процедура – кейбір әрекеттерді орындау үшін қолданылатын көмекші.
- Қолданылуы:
- программаның әр жерінде орналасқан бірдей әрекеттерді орындау
- программаны түсіну оңай болу үшін оны бірнеше қосалқы бөліктерге бөлу
- Есепті орындау тәртібі:
- бірдей немесе ұқсас әрекеттерді ерекшелеп алу (үш фигура)
- олардың ұқсас жерлері (өлшемі, пішіні, айналу бұрышы) мен айырмашылықтарын (координаталары, түсі) табу
- айырмашықтарын белгісіз айнымалылар түрінде өрнектеу, осы айнымалылар процедураның параметрлері болады
- 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.
- procedure Tr( x, y, r, g, b: integer);
- begin
- ...
- end;
- Ерекшеліктері:
- барлық процедуралар негізгі программаның үстінде орналасқан
- процедураның тақырыбында формальды параметрлер жазылады, олар кейде өзгеріп отыратындықтан атаулармен белгіленеді
- процедураны шақыру кезінде жақша ішінде нақтылы параметрлер(сандар немесе арифметикалық өрнектер) көрсетіледі
- procedure Tr( x, y, r, g, b: integer);
- Tr (200, 100, 0, 255, 0);
- Ерекшеліктері:
- әрбір формалды параметрдің қос нүктеден кейін типі көрсетілуі қажет
- егер типтері бірдей параметрлер бірінен кейін бірі орналасса, олардың арасы үтірмен ажыратылады
- процедураның ішіндегі параметрлер айнымалылар секілді қолданылады
- 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;
- Есеп: екі айнымалы мәндерінің орындарын ауыстыратын процедураны құру.
- Ерекшеліктері:
- Процедурада жасалған өзгертулер шақырушы программаға белгілі болуы қажет.
- 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;
- мына процедура параметрлердің көшірмесімен жұмыс істейді
- Қолданылуы: процедура(және функция) осындай әдіс арқылы бірнеше мән бере алады.
- Шақыртудың тыйым салынған нұсқалары
- Exchange ( 2, 3 ); { сандар }
- Exchange ( x+z, y+2 ); { өрнектер }
- procedure Exchange ( a, b: integer );
- var c: integer;
- begin
- c := a; a := b; b := c;
- end;
- "4": Процедураларды пайдалана отырып, мына фигураны құрастыру.
-
- "5": Процедураларды пайдалана отырып, мына фигураны құрастыру.
Паскаль тілінде программалау - Рекурсивті объект деп - бір объект немесе дәл осындай бірнеше объект арқылы анықталатын объектіні айтады.
- N деңгейлі Пифагор ағашы – бұл ағаштың діңгегі мен осы діңгектен симметриялы түрде өсіп шыққан N-деңгейлі екі Пифагор ағашы, бұл ағаштардың бағанының ұзындығы 2 есе кем және олардың арасындағы бұрыш 90o-қа тең.
- Бұның рекурсивті фигура екенін қалай дәлелдеуге болады?
- Ерекшеліктері:
- қашан тоқтау керек?
- ағаштардың иілу бұрышы әр түрлі
- Қалған деңгейлердің саны нөлге тең болғанда!
- x1 = x0 + L·cos(α)
- y1 = y0 – L·sin(α)
- Еншілес ағаштардың иілу бұрышы
- 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;
- Рекурсивті процедура деп өзін өзі шақыратын процедураны айтады
- program qq;
- procedure Pifagor(x0, y0, a, L: real;
- N: integer);
- ...
- end;
- begin
- Pifagor (250, 400, pi/2, 150, 8);
- end;
- Ағашты 30o оңға қалай еңкейтуге болады?
- Pifagor (250, 400, 2*pi/3, 150, 8);
- "4": Рекурсивті процедураны қолдана отырып, мына фигураны құрастыру:
-
- "5": Рекурсивті процедураны қолдана отырып, мына фигураларды құрастыру:
Достарыңызбен бөлісу: |