Скачать презентацию Тема 4 Программирование разветвляющихся алгоритмов Ø Разветвляющийся алгоритм Скачать презентацию Тема 4 Программирование разветвляющихся алгоритмов Ø Разветвляющийся алгоритм

Синицын Лекция4_Разветвляющиеся алгоитмы.ppt

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

Тема 4 Программирование разветвляющихся алгоритмов Ø Разветвляющийся алгоритм Ø Оператор условия if Ø Оператор Тема 4 Программирование разветвляющихся алгоритмов Ø Разветвляющийся алгоритм Ø Оператор условия if Ø Оператор выбора case Ø Вспомогательные компоненты Delphi 12. 02. 2018 1

Разветвляющийся алгоритм начало a, b, c Пример: ax 2+bx+c=0, a>0 d: =b 2 -4 Разветвляющийся алгоритм начало a, b, c Пример: ax 2+bx+c=0, a>0 d: =b 2 -4 ac d 0 Нет действительных решений a 2: =2*a x 1: =(-b+d)/a 2 x 2: =(-b-d)/a 2 x 1, x 2 конец 12. 02. 2018 2

Программа • • • • • Procedure <имя обработчика события>; var a, b, c, Программа • • • • • Procedure <имя обработчика события>; var a, b, c, d, x 1, x 2: extended; Считывать a, b, c begin Из окон Edit или из файла Read(a, b, c); Writeln(a, b, c); Печатать a, b, c d: =sqr(b)-4*a*c; В Memo, Edit, …, файл if d>=0 then begin d: =sqrt(d); a 2: =2*a; x 1: =(-b+d)/a 2; x 2: =(-b-d)/a 2; writeln(x 1, x 2) end else writeln(’нет корней’); //конец оператора if end; //конец обработчика события 12. 02. 2018 3

Оператор условия if Формы записи: BL –булевское выражение BL If BL then P 1 Оператор условия if Формы записи: BL –булевское выражение BL If BL then P 1 else P 2; P 2 P 1 Перед else не ставится точка с запятой ; BL P 1 If BL then P 1; 12. 02. 2018 4

Вложенность if, составной оператор • каждое else соответствует тому then, которое непосредственно ему предшествует Вложенность if, составной оператор • каждое else соответствует тому then, которое непосредственно ему предшествует If BL 1 then If BL 2 then P 1 else P 2 else begin P 31; P 32; P 3 k end; BL 1 P 31 BL 2 P 3 k P 2 P 1 Составной оператор 12. 02. 2018 5

Пример нахождения min(x, y, z) x, y, z x>y x<z m=z y<z m=x m=z Пример нахождения min(x, y, z) x, y, z x>y x

Более рациональный способ нахождения min(x, y, z) x, y, z m: =x y<m m: Более рациональный способ нахождения min(x, y, z) x, y, z m: =x y

Упорядочить три переменные a<b<c a, b, c • • • • read(a, b, c); Упорядочить три переменные ab then begin r: =a; a: =b; b: =r; end; If b>c then begin r: =b; b: =c; c: =r; end; If a>b then begin r: =a; a: =b; b: =r; end; a>b r=a; a=b; b=r b>c r=b; b=c; c=r a>b r=a; a=b; b=r a

5 4 3 5 3 4 4 5 3 3 5 4 4 3 5 4 3 5 3 4 4 5 3 3 5 4 4 3 5 3 4 5 5 3 сравнения и 2 перестановки 3 сравнения и 3 перестановки 12. 02. 2018 9

Упорядочить три переменных a<b<c • read(a, b, c); • If b>c then • begin Упорядочить три переменных ac then • begin • r: =a; a: =c; c: =r; • end • else • begin • r: =a; a: =b; b: =r; • end; • If b>c then • begin • r: =b; c: =b; b: =r; • end; a, b, c b>c r=a; a=c; c=r r=a; a=b; b=r b>c r=b; c=b; b=r a

5 4 3 5 3 4 5 3 5 4 3 4 5 2 5 4 3 5 3 4 5 3 5 4 3 4 5 2 сравнения и 1 перестановка 2 сравнения и 2 перестановки Таким образом количество вычислений зависит Ø от алгоритма упорядочения Ø от начального состояния 12. 02. 2018 11

Известно, что из 4 -х чисел a, b, c, d одно число отлично от Известно, что из 4 -х чисел a, b, c, d одно число отлично от трех других, равных между собой. Напечатать это число a, b, c, d a=b b=c b 12. 02. 2018 a c d 12

Программная реализация • Read(a, b, c, d); • If a=b then • if b=c Программная реализация • Read(a, b, c, d); • If a=b then • if b=c then Write(d) • else Erite(c) • else • if b=c then Write(a) • else Erite(b); 12. 02. 2018 13

пример Read(x) If x<1 then writeln(’нет’) else • begin • if x<5 then K: пример Read(x) If x<1 then writeln(’нет’) else • begin • if x<5 then K: =cos(x) • else К: =sin(x); • writeln (K); • end; x x<1 нет x<5 K: =sinx K: =cosx K 12. 02. 2018 14

Оператор выбора case • • case <селектор> of <список 1>: P 1; <список 2>: Оператор выбора case • • case <селектор> of <список 1>: P 1; <список 2>: P 2; ………………. . <список n>: Pn; else Pe; end; Pk; • <селектор> - переменная или выражение порядкового типа. • <список i>: - перечисление тех значений селектора, при которых выполняется оператор Pi. 12. 02. 2018 селектор сп 1 P 1 сп 2 спn P 2 else Pn Pe Pk К порядковому типу относятся Целые, Логические Символьный Перечисляемый 15

Схема выполнения CASE С else Без else C сп 1 P 2 C сп. Схема выполнения CASE С else Без else C сп 1 P 2 C сп. N P 2 P 1 C сп 2 C сп 1 Pn Pn Pe Pk Pk 12. 02. 2018 16

Пример использования case • • . . . read (Item); case Item of 5, Пример использования case • • . . . read (Item); case Item of 5, 0: y: =sin(x); 1: begin a: =cos(x); y: =sqr(a) end; 2, 3, 4: y: =ln(x) else Write(’Item<>0 -5’); • end; • 12. 02. 2018 17

Калькулятор в зависимости от введенной операции вычислить 12. 02. 2018 18 Калькулятор в зависимости от введенной операции вычислить 12. 02. 2018 18

Программа калькулятора • • • • procedure TForm 1. Button 1 Click(Sender: TObject); var Программа калькулятора • • • • procedure TForm 1. Button 1 Click(Sender: TObject); var a, b, c: extended; op: char; begin a: =strtofloat(edit 1. Text); Ввод первого символа b: =strtofloat(edit 3. Text); строки op: =edit 2. Text[1]; case op of '+': c: =a+b; '-': c: =a-b; '*': c: =a*b; '/': c: =a/b; end; edit 4. Text: =floattostr(c); end; 12. 02. 2018 19

Вспомогательные компоненты Delphi в виде кнопок – переключателей • Компоненты • TCheck. Box (кнопка Вспомогательные компоненты Delphi в виде кнопок – переключателей • Компоненты • TCheck. Box (кнопка нез. переключателя) • Tradio. Group (группа кнопок зависимых переключателей) • Var bc: boolean; ib: integer; • bc: = Check. Box 1. Checked; • If bc then P 1 • else P 2; • ib: = Radio. Group 1. Item. Index ; • case ib of • 0: y: =sin(x); • 1: y: =cos(x); • 2: y: =ln(x) • 12. 02. 2018 End; 20

Свойство Hint имеется у всех визуальных компонентов Позволяет задать текст, который высвечивается, если курсор Свойство Hint имеется у всех визуальных компонентов Позволяет задать текст, который высвечивается, если курсор помещен в области, занимаемой компонентом Необходимо при этом установить свойство Show. Hint = True 12. 02. 2018 21

Создание обработчика события нажатия клавиши 12. 02. 2018 Установить свойство в состояние true 22 Создание обработчика события нажатия клавиши 12. 02. 2018 Установить свойство в состояние true 22

unit Unit; interface Type TForm 1 = class(TForm) Edit 1: TEdit; Edit 2: TEdit; unit Unit; interface Type TForm 1 = class(TForm) Edit 1: TEdit; Edit 2: TEdit; procedure Form. Create(Sender: TObject); procedure Form. Key. Press(Sender: TObject; var Key: Char); end; var Form 1: TForm 1; implementation procedure TForm 1. Form. Create(Sender: TObject); begin Edit 1. Text: ='5555'; end; procedure TForm 1. Form. Key. Press(Sender: TObject; var Key: Char); begin if key=#13 then Edit 2. Text: =Edit 1. Text; end. Код клавиши Enter 12. 02. 2018 23

После нажатия клавиши «Enter» : 12. 02. 2018 24 После нажатия клавиши «Enter» : 12. 02. 2018 24

Конец темы 4 • Ваши вопросы 12. 02. 2018 25 Конец темы 4 • Ваши вопросы 12. 02. 2018 25