Паскаль тілінде программалау
бет 6/8 Дата 25.01.2017 өлшемі 131,77 Kb. #7898 түрі Программа
Тақырып 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": Процедураларды пайдалана отырып, мына фигураны құрастыру. Достарыңызбен бөлісу: