Разделы презентаций


Глава 2 Управляющие конструкции

Содержание

2.1 Оператор условной передачи управленияОператор условной передачи управления используется при обработке вариантов вычислений и реализует конструкцию ветвления.Оператор – простой или составной оператор языка.Составной оператор – блок операторов в операторных скобках begin

Слайды и текст этой презентации

Слайд 1Глава 2 Управляющие конструкции
МГТУ им. Н.Э. Баумана
Факультет Информатика и системы

управления
Кафедра Компьютерные системы и сети
Лектор: д.т.н., проф.
Иванова

Галина Сергеевна

2016

Глава 2 Управляющие конструкцииМГТУ им. Н.Э. БауманаФакультет Информатика и системы управленияКафедра Компьютерные системы и сетиЛектор: д.т.н., проф.

Слайд 22.1 Оператор условной передачи управления
Оператор условной передачи управления используется при

обработке вариантов вычислений и реализует конструкцию ветвления.




Оператор – простой или

составной оператор языка.
Составной оператор – блок операторов в операторных скобках
begin …end.

Пример. Разработать программу, которая вводит число от 0 до 15 и выводит его шестнадцатеричный эквивалент, например:
8  ‘8’
12  ‘С’

2.1 Оператор условной передачи управленияОператор условной передачи управления используется при обработке вариантов вычислений и реализует конструкцию ветвления.Оператор

Слайд 3Программа отображения 16-тиричных эквивалентов
Program Ex2_1;
{$APPTYPE CONSOLE}
uses SysUtils;
Var Ch:char; n:Integer;
Begin
Write('Input n:');
ReadLn(n);
if

(n>=0)and(n

Ch:=chr(ord('0')+n)
else
Ch:=chr(ord('A')+n-10);
Write ('n=',Ch);
end
else WriteLn('Error');
ReadLn;
End.

Начало

n

n>=0 и
n<=15

n<10

Ch:=‘0’+n

Ch:=‘A’+n-10

Error

Ch

Конец

да

нет

нет

да

Программа отображения 16-тиричных эквивалентовProgram Ex2_1;{$APPTYPE CONSOLE}uses SysUtils;Var Ch:char; n:Integer;Begin	Write('Input n:');	ReadLn(n);	if (n>=0)and(n

Слайд 4Правило вложения
if then
if then
else

2>
Ветвь else относится к ближайшему if.
Для реализации варианта б используют

begin …end:
if <Условие1> then
begin if <Условие2> then <Действие1> end
else <Действие 2>

begin

end

Правило вложенияif then	if then   else Ветвь else относится к ближайшему if.Для реализации варианта б используют

Слайд 52.2 Оператор выбора
Оператор позволяет программировать несколько вариантов решения.




Пример:
case 1+2*j of
3:

z:=sin(x);
-1..1,10: z:=cos(x);
else z:=0;
end;
Пример. Разработать

программу, вычисляющую значения функции. Функция
выбирается пользователем из нескольких заданных.
Enter cod:
1 – y=sin x
2 – y=cos x
3 – y=exp x
2.2 Оператор выбораОператор позволяет программировать несколько вариантов решения.Пример:	case 1+2*j of		3:    z:=sin(x);		-1..1,10: z:=cos(x);		else

Слайд 6Схема алгоритма
Начало
Kod , x
key:=true
Kod
y:=sin(x)
y:=cos(x)
y:=exp(x)
key:=false
Key
да
нет
Конец
Error
x, y
2
1
3
Иначе

Схема алгоритмаНачалоKod , xkey:=trueKody:=sin(x)y:=cos(x)y:=exp(x)key:=falseKeyданетКонецErrorx, y213Иначе

Слайд 7Программа вычисления значения функции
Program Ex2_2;
{$APPTYPE CONSOLE}
uses SysUtils;
Var Kod:Integer;

y,x:Single;
Key:boolean;
Begin
WriteLn('Enter Kod:');
WriteLn('1 - y=sin x');
WriteLn('2 - y=cos

x');
WriteLn('3 - y=exp x');
ReadLn(Kod);
WriteLn('Enter x:');
ReadLn(x);
Программа вычисления значения функцииProgram Ex2_2;{$APPTYPE CONSOLE}uses SysUtils;Var Kod:Integer;   y,x:Single;   Key:boolean;Begin	WriteLn('Enter Kod:');	WriteLn('1 - y=sin

Слайд 8Программа вычисления значения функции (2)
Key:=true;
Case Kod of

1: y:=sin(x);
2: y:=cos(x);
3: y:=exp(x);
else

Key:=false;
end;
if Key then
WriteLn(' x =',x:10:6,' y =',y:10:6)
else WriteLn('Error');
ReadLn;
End.

Программа вычисления значения функции (2) Key:=true; Case Kod of  1: y:=sin(x);  2: y:=cos(x);  3:

Слайд 92.3 Операторы организации циклов
Циклы
Счетные
Итерационные
Поисковые
Цикл-для
Цикл-пока
Цикл-до
Cчетный цикл – цикл, количество повторений которого

известно или можно посчитать. Выход из такого цикла программируется по

счетчику.
Итерационный цикл – цикл, количество повторений которого неизвестно или считается неизвестным при построении цикла. Выход из цикла программируется по выполнению или нарушению условия.
Поисковый цикл имеет два выхода – нашли и перебрали все и не нашли.
2.3 Операторы организации цикловЦиклыСчетныеИтерационныеПоисковыеЦикл-дляЦикл-покаЦикл-доCчетный цикл – цикл, количество повторений которого известно или можно посчитать. Выход из такого

Слайд 10Цикл-пока
Условие
да
нет
Действие
Пример:

while abs(e)>=1e-5 do
begin

x:=x+1;

e:=e/10;
end;
Цикл-покаУсловиеданетДействиеПример:while abs(e)>=1e-5 do    begin        x:=x+1;

Слайд 11Цикл-до
Действие
Условие
да
нет

Условие
да
нет
Действие
Действие
«Цикл-до» можно реализовать через «цикл-пока»
Пример:

repeat
x:=x+1;

e:=e/10;
until abs(e)

Цикл-доДействиеУсловиеданетУсловиеданетДействиеДействие«Цикл-до» можно реализовать через «цикл-пока»Пример:repeat     x:=x+1;     e:=e/10; until abs(e)

Слайд 12Счетный цикл
i:=1,k
Действие

i  k
да
нет
i :=i+1
i :=1
Действие
Счетный цикл также можно реализовать

через «цикл-пока»
Пример:

for i:=1 to 10 do

begin
x:=x+1;
e:=e/10;
end;
Счетный циклi:=1,kДействиеi  kданетi :=i+1i :=1ДействиеСчетный цикл также можно реализовать через «цикл-пока»Пример:for  i:=1 to 10 do

Слайд 13«Накопление»
суммы
Суммирование натуральных чисел
Найти сумму N натуральных чисел.
Program Ex2_3;
{$APPTYPE CONSOLE}
uses SysUtils;
Var

i,N,S:Integer;
Begin
Write('Input N:');
ReadLn(N);
S:=0;
For i:=1 to N do

S:=S+i;
WriteLn('Summa=',S:6);
ReadLn;
End.
«Накопление»суммыСуммирование натуральных чиселНайти сумму N натуральных чисел.Program Ex2_3;{$APPTYPE CONSOLE}uses SysUtils;Var i,N,S:Integer;Begin	Write('Input N:'); 	ReadLn(N); 	S:=0; 	For i:=1 to

Слайд 14Суммирование ряда
Определить сумму ряда
S = 1 - 1/x + 1/x

2- 1/x3 + … с заданной точностью .







Rn =

-Rn-1/x


S

N

1

2

3

4

S

N

1

2

3

4

x>1

x<1

S

Суммирование рядаОпределить сумму рядаS = 1 - 1/x + 1/x 2- 1/x3 + … с заданной точностью

Слайд 15Приведение алгоритма к структурному виду
Начало
x, Eps
S=0
R=1
S=S+R
|R|Eps
да
нет
R=-R/x
x, S
Конец
S=S+R
Начало
x, Eps
S=0
R=1
S=S+R
|R|

S
Конец

Приведение алгоритма к структурному видуНачалоx, EpsS=0R=1S=S+R|R|EpsданетR=-R/xx, SКонецS=S+RНачалоx, EpsS=0R=1S=S+R|R|

Слайд 16Вариант а
Program Ex2_4а;
{$APPTYPE CONSOLE}
uses SysUtils;
var S,R,X,eps:Single;
Begin

WriteLn('Input x and epsilon:');
ReadLn(X,eps);

S:=1; {S:=0; & S:=S+R;}
R:=1;
while abs(R)>eps do
begin
R:=-R/X;
S:=S+R;
end;
WriteLn('x=', x:6:2,
' S=', S:8:2,' R=', R:8:6);
ReadLn;
End.

Начало

x, Eps

S=0

R=1

S=S+R

|R|>Eps

да

R=-R/x

x, S

Конец

S=S+R

Вариант аProgram Ex2_4а;{$APPTYPE CONSOLE}uses SysUtils;var S,R,X,eps:Single; Begin    WriteLn('Input x and epsilon:');

Слайд 17Вариант б
Program Ex2_4b;
{$APPTYPE CONSOLE}
uses SysUtils;
var S,R,X,eps:Single;
Begin

WriteLn('Input x and epsilon:');
ReadLn(X,eps);

S:=0;
R:=1;
repeat
S:=S+R;
R:=-R/X;
until abs(R)<=eps;
WriteLn('x=', x:6:2,
' S=', S:8:2,' R=', R:8:6);
ReadLn;
End.

Начало

x, Eps

S=0

R=1

S=S+R

|R|<=Eps

да

нет

R=-R/x

x, S

Конец

Вариант бProgram Ex2_4b;{$APPTYPE CONSOLE}uses SysUtils;var S,R,X,eps:Single; Begin    WriteLn('Input x and epsilon:');

Слайд 18Решение задач вычислительной математики
Задача. Вычислить определенный интеграл функции f(x)

на интервале [a,b] методом прямоугольников с точностью .








Итак


n
S = f(x1)d + f(x2)d + f(x3)d+ …+ f(xn)d = df(xi), где d=(b-a)/n.
i=1
Увеличивая n, получаем приближения площади: S1, S2, S3 ...
Останавливаемся, когда |Sk-Sk+1| < 
Решение задач вычислительной математики Задача. Вычислить определенный интеграл функции f(x) на интервале [a,b] методом прямоугольников с точностью

Слайд 19Неформальное описание алгоритма
Алгоритм:
Шаг 1. Ввести a, b, .
Шаг 2. Задать

число прямоугольников n:=10.
Шаг 3. Определить шаг d:=(b-a)/n.
Шаг 4. Определить площадь

фигуры S1.
Шаг 5. Увеличить число прямоугольников вдвое n:=n*2.
Шаг 6. Уменьшить шаг вдвое d:=d/2.
Шаг 7. Определить площадь фигуры S2.
Шаг 8. Если Разность площадей меньше , то перейти к шагу 11
Шаг 9. Запомнить новое значение площади S1:=S2.
Шаг 10. Перейти к шагу 5.
Шаг 11. Вывести S1.
Конец.
Неформальное описание алгоритмаАлгоритм:Шаг 1. Ввести a, b, .Шаг 2. Задать число прямоугольников n:=10.Шаг 3. Определить шаг d:=(b-a)/n.Шаг

Слайд 20Схема алгоритма (неструктурная и неэффективная)
Начало
n:=10
d:=(b-a)/n
S1:=0
x:=a
i:=1,n
S1:=S1+f(x)
x:=x+d
S1:=S1*d
S2:=0
x:=a
i:=1,n
S2:=S2+f(x)
x:=x+d
S2:=S2*d
A
A
|S1-S2|

Схема алгоритма (неструктурная и неэффективная)Началоn:=10d:=(b-a)/nS1:=0x:=ai:=1,nS1:=S1+f(x)x:=x+dS1:=S1*dS2:=0x:=ai:=1,nS2:=S2+f(x)x:=x+dS2:=S2*dAA|S1-S2|

Слайд 21Схема структурированная и сокращенная
Начало
n:=5
d:=(b-a)/n
S2:=1010
S2:=0
x:=a
i:=1,n
S2:=S2+f(x)
x:=x+d
S2:=S2*d
A
A
|S1-S2|

Схема структурированная и сокращеннаяНачалоn:=5d:=(b-a)/nS2:=1010S2:=0x:=ai:=1,nS2:=S2+f(x)x:=x+dS2:=S2*dAA|S1-S2|

Слайд 22Программа
program Ex2_5;
{$APPTYPE CONSOLE}
uses SysUtils;

Var a,b,S1,S2,d,eps,x:Single;
n,i:Integer;
Begin

WriteLn('Input a, b and eps:');
ReadLn(a,b,eps);

n:= 5;
d:=(b-a)/n;
S2:=1E+10;

Начало

n:=5

d:=(b-a)/n

S2:=1010

A

Ввод a, b

Программаprogram Ex2_5;{$APPTYPE CONSOLE}uses SysUtils;Var a,b,S1,S2,d,eps,x:Single;  n,i:Integer; Begin    WriteLn('Input a, b and eps:');

Слайд 23Программа (2)
repeat
S1:=S2;

n:=n*2;
d:=d/2;

S2:=0;
x:=a;
for i:=1 to n do
begin
S2:=S2+x*x-1;
x:=x+d;
end;
S2:=S2*d;
until abs(S2-S1) WriteLn('I=', S2:10:6);
ReadLn;
End.

S2:=0

x:=a

i:=1,n

S2:=S2+f(x)

x:=x+d

S2:=S2*d

A

|S1-S2|<

да

нет

S1:=S2

n:=2*n

B

d:=d/2

Программа (2)   repeat    S1:=S2;    n:=n*2;    d:=d/2;

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика