Анализ программы, содержащей подпрограммы, циклы, ветвления

Содержание

Слайд 2

Полезные формулы

n-й элемент арифметической прогрессии
сумма первых n членов арифметической прогрессии
S

Полезные формулы n-й элемент арифметической прогрессии сумма первых n членов арифметической прогрессии S

Слайд 3

Тип 1

var n, s, d: integer;
begin
readln(d);
n := 0;
s :=

Тип 1 var n, s, d: integer; begin readln(d); n := 0;
0;
while s <= 365 do begin
s := s + d;
n := n + 5
end;
write(n)
end.

При каком наибольшем введенном числе d после выполнения программы будет напечатано 55?

Слайд 4

При каком наибольшем введенном числе d после выполнения программы будет напечатано 55?

var

При каком наибольшем введенном числе d после выполнения программы будет напечатано 55?
n, s, d: integer;
begin
readln(d);
n := 0;
s := 0;
while s <= 365 do begin
s := s + d;
n := n + 5
end;
write(n)
end.

 

Слайд 5

Тип 2

var s, n: integer;
begin
s := 33;
n := 1;
while

Тип 2 var s, n: integer; begin s := 33; n :=
s > 0 do begin
s := s – 7;
n := n * 3
end;
writeln(n)
end.

Запишите число, которое будет напечатано в результате выполнения программы.

Слайд 6

Запишите число, которое будет напечатано в результате выполнения программы.

 

var s, n: integer;
begin

Запишите число, которое будет напечатано в результате выполнения программы. var s, n:
s := 33;
n := 1;
while s > 0 do begin
s := s – 7;
n := n * 3
end;
writeln(n)
end.

Слайд 7

Тип 3

var k, s: integer;
begin
s:=0;
k:=0;
while s < 1024 do

Тип 3 var k, s: integer; begin s:=0; k:=0; while s s:=s+10;
begin
s:=s+10;
k:=k+1;
end;
write(k);
end.

Определите, что будет напечатано в результате работы следующего фрагмента программы.

Слайд 8

Определите, что будет напечатано в результате работы следующего фрагмента программы.

 

var k, s:

Определите, что будет напечатано в результате работы следующего фрагмента программы. var k,
integer;
begin
s:=0;
k:=0;
while s < 1024 do begin
s:=s+10;
k:=k+1;
end;
write(k);
end.

Слайд 9

Тип 4

var k, s: integer;
begin
k:=5;
s:=2;
while k < 120 do

Тип 4 var k, s: integer; begin k:=5; s:=2; while k s:=s+k;
begin
s:=s+k;
k:=k+2;
end;
write(s);
end.

Определите, что будет напечатано в результате работы следующего фрагмента программы.

Слайд 10

Определите, что будет напечатано в результате работы следующего фрагмента программы.

 

var k, s:

Определите, что будет напечатано в результате работы следующего фрагмента программы. var k,
integer;
begin
k:=5;
s:=2;
while k < 120 do begin
s:=s+k;
k:=k+2;
end;
write(s);
end.

Слайд 11

Резюме: этапы

Определить, какая переменная выводится.
Написать формулу для первой переменной.
Написать формулу для второй

Резюме: этапы Определить, какая переменная выводится. Написать формулу для первой переменной. Написать
переменной.
Определить количество итераций.
+/-: Написать неравенства для выходного значения.
Определить результат выполнения программы.

Слайд 12

Резюме: ошибки

! не забывать смотреть на начальные значения переменных
! не ошибиться со

Резюме: ошибки ! не забывать смотреть на начальные значения переменных ! не
знаком сравнения
! не забывать округлять значения после получения неравенств
! найти наибольшее значение => значений может быть несколько => надо составить неравенство
! не забыть, что в формуле для a(n) написано n – 1: количество итераций на 1 меньше, чем членов арифметической прогрессии!

Слайд 13

Самостоятельно-1

var s, n: integer;
begin
s := 0;
n := 0;
while s*s

Самостоятельно-1 var s, n: integer; begin s := 0; n := 0;
<= 10*s do
begin
s := s + 1;
n := n + 2
end;
writeln(n)
end.

Запишите число, которое будет выведено в результате работы программы.

Слайд 14

Ответ-1

var s, n: integer;
begin
s := 0;
n := 0;
while s*s

Ответ-1 var s, n: integer; begin s := 0; n := 0;
<= 10*s do
begin
s := s + 1;
n := n + 2
end;
writeln(n)
end.

Запишите число, которое будет выведено в результате работы программы.
Ответ: 22
Подсказка: s <= 10, s= 0

Слайд 15

Самостоятельно-2

var s, n: integer;
begin
s := 150;
n := 0;
while s

Самостоятельно-2 var s, n: integer; begin s := 150; n := 0;
+ n < 300 do
begin
s := s - 5;
n := n + 25
end;
writeln(n)
end.

Запишите число, которое будет выведено в результате работы программы.

Слайд 16

Ответ-2

var s, n: integer;
begin
s := 150;
n := 0;
while s

Ответ-2 var s, n: integer; begin s := 150; n := 0;
+ n < 300 do
begin
s := s - 5;
n := n + 25
end;
writeln(n)
end.

Запишите число, которое будет выведено в результате работы программы.
Ответ: 200
Подсказка: доп. переменная s+n

Слайд 17

Самостоятельно-3

s, n = -1, 3
while 6*s*s*s*s*s > 800*s*s*s :
s -= 2

Самостоятельно-3 s, n = -1, 3 while 6*s*s*s*s*s > 800*s*s*s : s
n *= 2
print(n - s)

Запишите число, которое будет выведено в результате работы программы.

Слайд 18

Ответ-3

s, n = -1, 3
while 6*s*s*s*s*s > 800*s*s*s :
s -= 2

Ответ-3 s, n = -1, 3 while 6*s*s*s*s*s > 800*s*s*s : s
n *= 2
print(n - s)

Запишите число, которое будет выведено в результате работы программы.
Ответ: 205
Подсказка: 6*s*s < 800

Слайд 19

Самостоятельно-4

d = int(input())
n = 14
s = 29
while s <= 2000:
s =

Самостоятельно-4 d = int(input()) n = 14 s = 29 while s
s + d
n = n + 5
print(n)

Сколько различных значений числа d можно ввести, чтобы после выполнения программы было напечатано 69?

Слайд 20

Ответ-4

d = int(input())
n = 14
s = 29
while s <= 2000:
s =

Ответ-4 d = int(input()) n = 14 s = 29 while s
s + d
n = n + 5
print(n)

Сколько различных значений числа d можно ввести, чтобы после выполнения программы было напечатано 69?
Ответ: 18
d >= 180, d <= 197

Слайд 21

Самостоятельно-5

d = int(input())
n = 3
s = 38
while s <= 1200:
s =

Самостоятельно-5 d = int(input()) n = 3 s = 38 while s
s + d
n = n + 7
print(n)

При каком наибольшем введенном числе d после выполнения программы будет напечатано 150?

Слайд 22

Ответ-5

d = int(input())
n = 3
s = 38
while s <= 1200:
s =

Ответ-5 d = int(input()) n = 3 s = 38 while s
s + d
n = n + 7
print(n)

При каком наибольшем введенном числе d после выполнения программы будет напечатано 150?
Ответ: 58
d >= 56, d <= 58

Слайд 23

Самостоятельно-6

var s, n: integer;
begin
s := 10;
n := 55;
while n

Самостоятельно-6 var s, n: integer; begin s := 10; n := 55;
> s do
begin
s := s + 1;
n := n - 1
end;
writeln(n)
end.

Запишите число, которое будет выведено в результате работы программы:

Слайд 24

Ответ-6

var s, n: integer;
begin
s := 10;
n := 55;
while n

Ответ-6 var s, n: integer; begin s := 10; n := 55;
> s do
begin
s := s + 1;
n := n - 1
end;
writeln(n)
end.

Запишите число, которое будет выведено в результате работы программы:
Ответ: 32

Слайд 25

Дополнительно

 

Дополнительно

Слайд 26

Самостоятельно-6

#include
int main(){
int s = 1, t = 5;
while (s

Самостоятельно-6 #include int main(){ int s = 1, t = 5; while
% t != 4){
s += 2;
t += 1;
}
std::cout << s + t;
return 0;
}

Запишите число, которое будет выведено в результате работы программы.

Слайд 27

Ответ-6

#include
int main(){
int s = 1, t = 5;
while (s

Ответ-6 #include int main(){ int s = 1, t = 5; while
% t != 4){
s += 2;
t += 1;
}
std::cout << s + t;
return 0;
}

Запишите число, которое будет выведено в результате работы программы.
Ответ: 30
Подсказка: таблица исполнения алгоритма

Слайд 28

Самостоятельно

d = int(input())
n = 1
s = 46
while s <= 2700:
s =

Самостоятельно d = int(input()) n = 1 s = 46 while s
s + d
n = n + 4
print(n)

При каком наименьшем введенном числе d после выполнения программы будет напечатано 121?

Слайд 29

Ответ

d = int(input())
n = 1
s = 46
while s <= 2700:
s =

Ответ d = int(input()) n = 1 s = 46 while s
s + d
n = n + 4
print(n)

При каком наименьшем введенном числе d после выполнения программы будет напечатано 121?
Ответ: 89

Слайд 30

Самостоятельно

s = 0
n = 1
while s*s <= 125:
s = s +

Самостоятельно s = 0 n = 1 while s*s s = s
3
n = n * 2
print(n)

Запишите число, которое будет выведено в результате работы программы: