Экзаменационные задачи 2009 часть

Скачать презентацию Экзаменационные задачи   2009 часть Скачать презентацию Экзаменационные задачи 2009 часть

Контрольные Задачи2009_1.ppt

  • Количество слайдов: 40

>  Экзаменационные задачи   2009 часть 1     Экзаменационные задачи 2009 часть 1 15 задач Обязательно 2 модуля Unit 1 – вызывающий, в Unit 2 – подпрограмма, которую вызывают из первого модуля 1/22/2018 1

>  Оформление в отдельный модуль o unit Unit 2; o Interface o Function Оформление в отдельный модуль o unit Unit 2; o Interface o Function Rut(const a, e: extended): extended; o Implementation • Function Rut; • Var x 1, x 2, d: extended; • Begin • x 1: =1; • repeat • x 2: =0. 5*(x 1+a/x 1); • d: =abs(x 2 -x 1); • x 1: =x 2; • until d

>   Вызывающая программа o unit Unit 1; o Interface o uses unit Вызывающая программа o unit Unit 1; o Interface o uses unit 2; o Type o Button 1: TButton; o procedure TForm 1. Button 1 Click(Sender: TObject); o Implementation o procedure TForm 1. Button 1 Click(Sender: TObject); o Var a, e, qa: extended o Begin o a: =Strto. Float(Edit 1. Text); o e: =Strto. Float(Edit 2. Text); o qa: =Rut(a, e); o Edit 3. Text: =Float. To. Str. F(qa, fffixed, 6, 2)); o end; o End. 1/22/2018 3

>     № 1 • Составить и оформить в виде отдельного № 1 • Составить и оформить в виде отдельного модуля подпрограмму вычисления значения полинома • для заданного динамического массива коэффициентов А используя рекуррентную схему. • Формальные параметры: x, n, a : mas[1. . n]. • Составить программу - обработчик события, в которой при нажатии кнопки организованы ввод исходных данных(A из компонента TString. Grid), обращение к подпрограмме, вывод исходных данных и результатов в окно TMemo. 1/22/2018 4

>  Задача 1  P(x)=a 0+x(a 1+x (a 2+x(a 3+. . . x(an-2+x(an-1+x Задача 1 P(x)=a 0+x(a 1+x (a 2+x(a 3+. . . x(an-2+x(an-1+x an)). . ). Type mas=array[0. . 1] of extended; Tmas=^mas; Function Pol(const a: Tmas; x: extended; n: word): extended; Var k: word; p: extended; Begin p: =a[n]; For k: =n-1 downto 0 do p: =p*x+a[k]; result : = p; End; . . . . Y: =pol(a, 1, 5); 1/22/2018 5

>     № 2 • Составить и оформить в виде отдельного № 2 • Составить и оформить в виде отдельного модуля подпрограмму вычисления суммы или произведения (в зависимости от значения булевской переменной bl) цифр натурального десятичного числа N. • Формальные параметры: N, bl : boolean. • Составить программу - обработчик события в которой при нажатии кнопки организованы ввод исходных данных (значение bl задаются с помощью установки двух кнопок Radiоgrup на форме), обращение к подпрограмме, вывод исходных данных и результатов в окно TMemo. 1/22/2018 6

>    Вычисление суммы или произведения (в   Задача 2 Вычисление суммы или произведения (в Задача 2 зависимости от значения булевской переменной bl) цифр натурального десятичного числа N. Function Sm. Pr(n: word; bl: boolean): extended; Var cha, ost: word; begin If bl then s: =0 else s: =1; Cha: =N; repeat Ost: =Cha mod 10; If bl then s: =s+ost else s: =s*ost; cha: =cha div 10; Until cha=0; result : = s; End; . . . . Y: =Sm. Pr (387, bl); 1/22/2018 7

>      № 3 • Составить и оформить в виде № 3 • Составить и оформить в виде отдельного модуля подпрограмму вычисления числа М, получаемого из заданного натурального числа N заменой порядка следования его цифр (тип string не использовать). • Формальные параметры: N. • Составить программу - обработчик события в которой при нажатии кнопки организованы ввод исходных данных, обращение к подпрограмме, вывод исходных данных и результатов в окно TEdit. 1/22/2018 8

>    Вычисление числа М, получаемого из заданного  Задача 3 натурального Вычисление числа М, получаемого из заданного Задача 3 натурального числа N заменой порядка следования его цифр N=ck 10 k+ck-110 k-1+……. +c 110+c 0 Function Nrv(n: word): boolean; Var s, cha, ost: word; begin Cha: =N; s: =0; repeat Ost: =Cha mod 10; s: =s*10+ost; Cha: =cha div 10; Until cha=0; result : = s; End; . . . . Y: =N 1 k (387); 1/22/2018 9

>     № 4 • Составить и оформить в виде отдельного № 4 • Составить и оформить в виде отдельного модуля одну подпрограмму вычисления наибольшего общего делителя d и наименьшего общего кратного k двух натуральных чисел M <= N. Использовать рекуррентную формулу Эйлера (алгоритм Евклида) • Если N делится на M то НОД=М • НОД(N, M)=НОД(M, N mod M) • Формальные параметры: m, n, d, k. • Составить программу - обработчик события в которой при нажатии кнопки организованы ввод исходных данных, обращение к подпрограмме, вывод исходных данных и результаты в окно TEdit. 1/22/2018 10

>    Вычисление наибольшего общего делителя d и  Задача 4 наименьшего Вычисление наибольшего общего делителя d и Задача 4 наименьшего общего кратного k двух натуральных чисел M и N. Procedure Nodk(m 0, n 0: word; var D, K: word); Var m, n: word; begin m: =m 0; n: =n 0; d: = n mod m; While d <> 0 do Begin n: =m; m: =d; d: =n mod m; end; D: =m; K: =(n 0 div d)*m 0 ; End; . . . . Nodk (38, 52, d, k); 1/22/2018 11

>    № 5 • Составить и оформить в виде отдельного модуля № 5 • Составить и оформить в виде отдельного модуля подпрограмму табуляции функции f(x) на интервале [a, b] с шагом h=(b-a)/n. • Формальные параметры: a, b, n, f(x), Memo • Составить программу - обработчик события в которой при нажатии кнопки организованы ввод исходных данных, обращение к подпрограмме для вывода таблицы функции • (S(x) описать в вызывающей программе, m передать через глобальную переменную), вывод исходных данных и результатов в окно TMemo. 1/22/2018 12

>Задача  Табуляция функции f(x) на интервале [a, b] с  5  Задача Табуляция функции f(x) на интервале [a, b] с 5 шагом h=(b-a)/n. Type fun=function(x: extended): extended; procedure Tabf(a, b: extended; n: word; f: fun; M: Tmemo); var h, x, y: extended; i: word; begin h: =(b-a)/n; x: =a; for i: =1 to n do begin y: =f(x); M. Lines. Add(Float. To. Str. F(x, fffixed, 6, 2)+’ ’ +Float. To. Str. F(y, fffixed, 6, 2)); x: =x+h; end; Form 1. Memo 1. Lines. Add(’ x y’); 1/22/2018 Tabf(0, 1, 40, myf, Form 1. Memo 1); 13

>     № 6 • Составить и оформить в виде отдельного № 6 • Составить и оформить в виде отдельного модуля подпрограмму вычисления минимального значения функции f(x) на интервале [a, b] с шагом h. • • Формальные параметры: a, b, h, f(x). • Составить программу - обработчик события в которой при нажатии кнопки организованы ввод исходных данных, вычисление • (f(x)=(x-1)2 ) с помощью обращения к подпрограмме, вывод исходных данных и результата в окно TEdit. 1/22/2018 14

>Задача  Минимум функции f(x) на интервале [a, b] с  6  Задача Минимум функции f(x) на интервале [a, b] с 6 шагом h. Type fun=function(x: extended): extended; function minf(a, b, h: extended; f: fun): extended; var x, y, y 1: extended; i: word; begin x: =a; y 1: =f(x); while x

>    № 7 • Составить и оформить в виде отдельного модуля № 7 • Составить и оформить в виде отдельного модуля подпрограмму нахождения номера максимального или минимального значения ( в зависимости от булевской переменной bm) одномерного динамического массива a из n элементов. • • Формальные параметры: a : Pmas 1, n, bm. • • Составить программу - обработчик события в которой при нажатии кнопки организованы ввод исходных данных (используя TString. Grid), обращение к подпрограмме, вывод исходных данных и результатов в окно TMemo 1/22/2018 16

>Задача    Нахождение номера максимального или  7  минимального значения в Задача Нахождение номера максимального или 7 минимального значения в динамическом массиве. Type Tms=array[1. . 1] of extended; pms=^Tms; function min. A(a: pms; n: word; b: boolean): word; Var i: word; begin Im: =1; If b then for i: =2 to n do if a[i]>a[Im] then Im: =I else for i: =2 to n do mt: =sizeof(extended); if a[i]

>    № 8 • Составить и оформить в виде отдельного модуля № 8 • Составить и оформить в виде отдельного модуля подпрограмму вставки в отсортированный динамический массив a из n элементов нового элемента с не изменяя упорядоченности (дополнительный массив не использовать). • Формальные параметры: a : Pmas 1, n, c. • • Составить программу - обработчик события в которой при нажатии кнопки организованы ввод исходных данных (используя TString. Grid 1), обращение к подпрограмме, вывод исходных данных и результатов в окно TString. Grid 2. 1/22/2018 18

>    Вставка в отсортированный массив А из n элементов Задача Вставка в отсортированный массив А из n элементов Задача нового элемента с не изменяя упорядоченности 8 Type Tms=array[1. . 1] of extended; pms=^Tms; procedure vstc. A(var a: pms; n: word; c: extended): word; Var i: word; begin i: =n; while (a[i]>c) and (i>1) do begin a[i+1]: =a[i]; i: =i-1; end; a[i+1]: =c; end; 1/22/2018 19

> Задача 8 (9)  mt: =sizeof(extended); n: =  Get. Mem(a, mt*(n+1)); Задача 8 (9) mt: =sizeof(extended); n: = Get. Mem(a, mt*(n+1)); for i: =1 to n do a[i]: =Str. To. Float( String. Grid 1. cell[i, 0]); c: = Str. To. Float(edit 1. text); Vstc. A(a, n, c); for i: =1 to n+1 do String. Grid 2. cell[i, 0]: =Floattostr(a[i]); Free. Mem(a, mt*(n+1)); 1/22/2018 20

>    № 9 • Составить и оформить в виде отдельного модуля № 9 • Составить и оформить в виде отдельного модуля подпрограмму удаления из динамического массива a из n целых чисел всех четных чисел сдвигая оставшиеся элементы на место удаленных (дополнительный массив не использовать). Вывести размер n 1 полученного массива • Формальные параметры: a : Pmas 1, n, n 1. • • Составить программу - обработчик события в которой при нажатии кнопки организованы ввод исходных данных в массив a (используя TString. Grid 1), обращение к подпрограмме, вывод исходных данных и результатов в окно TString. Grid 2. 1/22/2018 21

> удаление из динамического массива a из n целых чисел всех четных чисел сдвигая удаление из динамического массива a из n целых чисел всех четных чисел сдвигая оставшиеся элементы на место удаленных 1/22/2018 22

>    Удаление из массива a 1. . . an четных элементов, Удаление из массива a 1. . . an четных элементов, не Задача нарушая упорядоченность и сдвигая оставшиеся элементы 9 на место удаленных Type Tms=array[1. . 1] of extended; pms=^Tms; procedure udch. A(var a: pms; var n, n 1: word); Var i, j: word; begin j: =0; for i: =1 to n do if odd(a[i]) then begin j: =j+1; a[j]: =a[i] end; n 1: =j; end; 1/22/2018 23

>    № 10 • Составить и оформить в виде отдельного модуля № 10 • Составить и оформить в виде отдельного модуля подпрограмму вывода графика функции f(x) на интервале [a, b] с шагом h=(b-a)/n с прорисовкой осей. • Формальные параметры: a, b, n, f(x), M : TImage • Составить программу - обработчик события в которой при нажатии кнопки организованы ввод исходных данных, обращение к подпрограмме для вывода графика функции • (S(x) описать в вызывающей программе, m передать через глобальную переменную), вывод исходных данных и результатов компоненту TImage. 1/22/2018 24

>Задача 10  Вывод графика функции f(x) на интервале [a, b] с шагом h=(b-a)/n Задача 10 Вывод графика функции f(x) на интервале [a, b] с шагом h=(b-a)/n Type fun=function(x: extended): extended; Procedure Graf(a, b, ymi, yma: extended; n: word; f: fun; m: TImage); var h, x, y, hx, hy: extended; i, pxma, pyma: word; Begin with m. canvas do begin pen. width: =2; pen. color: =cl. Black; brush. color: =cl. White; pxma: =m. width; pyma: =m. height; rectangle(0, 0, pxma, pyma); hx: =(b-a)/pxma; hy: =(yma-ymi)/pyma; h: =(b-a)/n; x: =a; y: =f(x); Move. To(0, round((yma-y)/hy)); for i: =1 to n do begin x: =x+h; y: =f(x); Line. To(round((x-a)/hx), round((yma-y)/hy)); end; 1/22/2018 25 Graf(0, 7, -1, 1, 100, myf, Image 1);

>  Задача 10 1/22/2018    26 Задача 10 1/22/2018 26

>     № 11 • Составить и оформить в виде отдельного № 11 • Составить и оформить в виде отдельного модуля подпрограмму вывода графика комплексной функции f(x) на интервале [a, b] с шагом h=(b-a)/n. • Формальные параметры: a, b, n, f(x), C : Tchart • Составить программу - обработчик события в которой при нажатии кнопки организованы ввод исходных данных, обращение к подпрограмме для вывода графика функции • (f(x) описать в вызывающей программе, вывод исходных данных и результатов компоненту Tchart. 1/22/2018 27

>Задача Вывод графика комплексной функции f(x) на  11  интервале [a, b] с Задача Вывод графика комплексной функции f(x) на 11 интервале [a, b] с шагом h=(b-a)/n Type fun=function(x: extended): complex; procedure Grafc(a, b: extended; n: word; f: fun; c: Tchart); var h, x: extended; y: complex; i: word; begin C. Series. List[0]. Clear; C. Series. List[1]. Clear; h: =(b-a)/n; x: =a; for i: =1 to n do begin y: =f(x); C. Series. List[0]. Add. XY(x, y. re); C. Series. List[1]. Add. XY(x, y. im); x: =x+h; end; 1/22/2018 Grafc(0, 1, 40, myfc, Form 1. chart 1); 28

>Unit 1;   Задача 11 Interface  Type Complex=record    Unit 1; Задача 11 Interface Type Complex=record re, im: extended end; function Mulc(x, y: Complex): Complex; function myfc(x: extended): Complex; Implementation function Mulc(x, y: Complex): Complex; // x*y begin Mulc. re: =x. re y. re-x. im y. im; Mulc. im: =x. re y. im+x. im y. re; end; function myfc; var a, b: complex; begin a. re: =2; a. im: =x; b. re: =x; b. im: =-2; result: =mulc(a, b); end; end Grafc(0, 1, 40, 1/22/2018 myfc, Form 1. chart 1); 29

>     № 12 • Составить и оформить в виде отдельного № 12 • Составить и оформить в виде отдельного модуля подпрограмму вывода окружности красного цвета на зеленом фоне радиуса R и отображающую точку (x, y). Центр окружности расположить в центре области Image, координаты центра прямоугольника Image равны (0, 0) (масштаб h подобрать таким, чтобы окружность занимала примерно 2/3 от области Image). • Формальные параметры: R, x, y, h: real; • M : TImage • Составить программу - обработчик события в которой при нажатии кнопки организованы ввод исходных данных, обращение к подпрограмме для вывода окружности и точки 1/22/2018 30

>Задача 12 Procedure Sircl(R, x, y, h: real; Image: TImage;    var Задача 12 Procedure Sircl(R, x, y, h: real; Image: TImage; var bl: boolean); Var px, py, p. R, pxc, pyc: word; xc, yc: extended; Begin Pxc: =Image. Width div 2; Pyc: =Image. Height div 2; xc: =h*Pxc; yc: =h*Pyc; px: =round((x+xc)/h); py: =round((-y+yc)/h); p. R: =round(R/h); With Image. Canvas do begin Pen. Color: =Cl. Black; Pen. Width: =4; Brush. Color: =Cl. White; Rectangle(0, 0, Image. Width, Image. Height); Brush. Color: =Cl. Green; Ellipse(Pxc-p. R, Pyc-p. R, Pxc+p. R, Pyc+p. R); Brush. Color: =Cl. Red; Pen. Color: =Clred; Ellipse(px-4, py-4, px+4, py+4); End; end; If sqr(x-xc)+sqr(y-yc)

>      № 13 • Составить и оформить в виде № 13 • Составить и оформить в виде отдельного модуля подпрограмму подсчета количества различных символов в строке st. (использовать множество) • Формальные параметры: string. • Составить программу - обработчик события в которой при нажатии кнопки организованы ввод исходных данных, обращение к подпрограмме, вывод исходных данных и результатов в окно TEdit. 1/22/2018 32

>   13 Подсчитать количество различных символов в строке.  •  Function 13 Подсчитать количество различных символов в строке. • Function Krz(St: string): Word; • Var a: set of char; • ch: char; • n, i, m: Word; • begin • m: =0; • a: =[]; • n: =Lenght(St); • for i: =1 to n do • begin • ch: =St[i]; • if not(ch in a)then • begin • a: =a+[ch]; • m: =m+1; • end; • Result: =m • end; //Krz 1/22/2018 33

>     № 14 • Составить и оформить в виде отдельного № 14 • Составить и оформить в виде отдельного модуля подпрограмму замены в текстовом файле символа (х) на символ (y) • • Формальные параметры: fl : Tfl; x, y: char • Составить программу в которой c помощью компонента Save. Dialog организован доступ к файлу, обращение к подпрограмме с заменой всех круглых скобок на квадратные. В качестве файла взять любую программу с расширением. pas 1/22/2018 34

>  Составить и оформить в виде отдельного модуля подпрограмму замены в текстовом файле Составить и оформить в виде отдельного модуля подпрограмму замены в текстовом файле символа (х) на символ (y) показать исходный файл и полученный после замены 1/22/2018 35

>    подпрограмма • type •  Tfl=file of char;  • подпрограмма • type • Tfl=file of char; • Procedure zam(var fl: Tfl; x, y: char); • var ch: char; • begin • while not eof(fl) do • begin • read(fl, ch); • if ch=x then begin • seek(fl, filepos(fl)-1); • write(fl, y); • end; • end; 1/22/2018 36

>    Программа • procedure TForm 1. Button 1 Click(Sender:  TObject); Программа • procedure TForm 1. Button 1 Click(Sender: TObject); • var fl: Tfl; • Namefl: string; • begin • if Open. Dialog 1. Execute then begin • Namefl: =Open. Dialog 1. File. Name; • Assign. File(fl, Namefl); • Reset(fl); • zam(fl, '(', '['); • seek(fl, 0); • zam(fl, ')', ']'); • closefile(fl); • end; //open • end; 1/22/2018 37

>     № 15 • Составить и оформить в виде отдельного № 15 • Составить и оформить в виде отдельного модуля подпрограмму подсчета в текстовом файле количества повторений символа (х) • • Формальные параметры: fl : Tfl; x: char • Составить программу в которой c помощью компонента Save. Dialog организован доступ к файлу, обращение к подпрограмме с подсчетом количества открывающихся и закрывающихся скобок. В качестве файла взять программу с расширением. pas 1/22/2018 38

>  подпрограмма • type •  Tfl=file of char;  • Function KOLs(var подпрограмма • type • Tfl=file of char; • Function KOLs(var fl: Tfl; x: char): word; • var ch: char; k: word; • begin • k: =0; • while not eof(fl) do • begin • read(fl, ch); • if ch=x then Inc(k); • end; • result: =k; • end; 1/22/2018 39

>    Программа • procedure TForm 1. Button 1 Click(Sender: TObject); Программа • procedure TForm 1. Button 1 Click(Sender: TObject); • var fl: Tfl; • Fil. Name: string; • ks: word; • begin • if Open. Dialog 1. Execute then begin • Fil. Name. D: =Open. Dialog 1. File. Name; • Assign. File(fl, Fil. Name); • Reset(fl); • ks: =KOLs(fl, ’x’); • Edit 1. text: =’в файле’+Fil. Name+’ ’ +Inttostr(ks)+’ символов’; • closefile(fl); • end; //open • end; 1/22/2018 40