Анализ программы с циклами и условными операторами

Слайд 2

Задача 1.

ИНФОРМАТИКА

2014г. Кирсанов Илья Андреевич ©

Ниже записана программа. Получив на вход число x ,

Задача 1. ИНФОРМАТИКА 2014г. Кирсанов Илья Андреевич © Ниже записана программа. Получив
эта программа печатает два числа, a и b. Укажите наименьшее из таких чисел x, при вводе которых алгоритм печатает сначала 3, а потом 36. 
var x, a, b : integer;
begin
  readln(x);
  a := 0; b := 1;
  while x > 0 do begin
  a := a + 1;
  b := b * (x mod 10);
  x := x div 10;
  end;
  writeln(a); write(b);
end.

Слайд 3

Задача 1.

ИНФОРМАТИКА

2014г. Кирсанов Илья Андреевич ©

Решение.
а=3, следовательно цикл будет выполнен трижды.
b :=

Задача 1. ИНФОРМАТИКА 2014г. Кирсанов Илья Андреевич © Решение. а=3, следовательно цикл
b * (x mod 10);
x mod 10 – остаток от деления на 10, то есть последняя цифра. Например: 314 mod 10 =4
x := x div 10; x div 10 – целая часть от деления на 10. Например: 314 div 10 =34
Переменная b - произведение всех цифр в числе.
Переменная а говорит нам сколько цифр в числе.
У нас трехзначное число с произведением цифр 36.
Нам надо найти минимальное такое число, тогда старший разряд нужно взять наименьшим – 1. Произведение двух оставшихся разрядов равно 36, при этом каждый не превышает 9; это числа 4 и 9. Получим число 149.
Ответ 149.

Слайд 4

N

Задача 1.

ИНФОРМАТИКА

2014г. Кирсанов Илья Андреевич ©

Что будет напечатано в результате выполнения этой

N Задача 1. ИНФОРМАТИКА 2014г. Кирсанов Илья Андреевич © Что будет напечатано
программы:
Program Task;Uses crt;
const L = 4;
type
atype = array [1..L] of integer;
Var R : atype;
N, p : integer;
Procedure Pr1(L : integer; var R : atype );
var i,n,t : integer;
begin
for i:=1 to L do
begin
t:=(R[i] div 2)*4;
R[i]:=t mod 5;
end;
end;
Function F1 (L : integer; R: atype) : integer;
Var N, i, T : integer;
begin
N:=1;
T:=1;
for i:=1 to L do
begin
N:=N*R[i]+T;
T:=T+2;
end;
F1:=N;
end;
BEGIN
R[1]:=5; R[2]:=9; R[3]:=6; R[4]:=2;
Pr1(L, R);
N:=F1(L,R);
write(N);
writeln;
END.

Слайд 5

Задача 2.

ИНФОРМАТИКА

2014г. Кирсанов Илья Андреевич ©

Решение.
Здесь есть процедура и функция. Сначала процедура

Задача 2. ИНФОРМАТИКА 2014г. Кирсанов Илья Андреевич © Решение. Здесь есть процедура
преобразовывает массив :
Затем функция вычисляет значение переменной N:
Ответ 83

Слайд 6

Вопросы.

ИНФОРМАТИКА

2014г. Кирсанов Илья Андреевич ©

Ниже записана программа. Получив на вход число x , эта

Вопросы. ИНФОРМАТИКА 2014г. Кирсанов Илья Андреевич © Ниже записана программа. Получив на
программа печатает два числа, L и M. Укажите наименьшее из таких чисел x, при вводе которых алгоритм печатает сначала 3, а потом 7. 
var x, L, M: integer;
begin
  readln(x);
  L:=0; M:=0;
  while x > 0 do begin
  L:= L + 1;
  M:= M + x mod 10;
  x:= x div 10;
  end;
  writeln(L); write(M);
end.
Ответ 106

Слайд 7

Вопросы.

ИНФОРМАТИКА

2014г. Кирсанов Илья Андреевич ©

Ниже записана программа. Получив на вход число x , эта

Вопросы. ИНФОРМАТИКА 2014г. Кирсанов Илья Андреевич © Ниже записана программа. Получив на
программа печатает два числа, L и M. Укажите наибольшее из таких чисел x, при вводе которых алгоритм печатает сначала 3, а потом 7. 
var x, L, M: integer;
Begin
readln(x);
L:=0; M:=0;
while x > 0 do begin
L:= L + 1;
if x mod 2 = 0 then
M:= M + (x mod 10) div 2;
x:= x div 10;
end;
writeln(L); write(M);
end.
Ответ 986
Имя файла: Анализ-программы-с-циклами-и-условными-операторами.pptx
Количество просмотров: 40
Количество скачиваний: 1