№№ заданий Пояснения Ответы Ключ Добавить инструкцию Критерии
Источник Раздел кодификатора ФИПИ Справка
PDF-версия PDF-версия (вертикальная) PDF-версия (крупный шрифт) PDF-версия (с большим полем) Версия для копирования в MS Word
Решение уравнений и неравенств
1.

Требовалось написать программу, которая решает неравенство относительно x для любых ненулевых чисел a и b введенных с клавиатуры. Все числа считаются действительными. Программист торопился и написал программу неправильно.

 

 

БейсикPython

INPUT a, b, x

IF b > 0 THEN

PRINT "x > ",a," или x<0"

ELSE

IF a > 0 THEN

PRINT "0 < x < ",a

ELSE

PRINT a," < x < 0"

ENDIF

ENDIF

END

a = float(input())

b = float(input())

x = float(input())

if b > 0:

    print('x > ', a, ' или x < 0')

else:

    if a > 0:

        print('0 < x <', a)

    else:

        print(a, '< x < 0 ')

ПаскальАлгоритмический язык

var a,b,x: real;

begin

readln(a,b,x);

if b>0 then

write ('x > ', a, ' или x < 0')

else

if a > 0 then

write ('0 < x <', a)

else

write (a, '< x < 0 ');

end.

алг

нач

    вещ a,b,x

    ввод a,b,x

    если b > 0 то

        вывод "x > ", a, " или x < 0"

    иначе

    если a > 0 то

        вывод "0 < x <", a

    иначе вывод a, "< x < 0 "

    все

    все

кон

Си++

#include <iostream>

using namespace std;

int main(void)

{ float a,b,x;

cin >> a >> b >> x;

if (b > 0)

cout << "x > " << a << "или x < 0'" << endl;

else

if (a>0)

cout << "0 < x <" << a << endl;

else

cout << a << "< x < 0" << endl;

}

 

 

Последовательно выполните три задания:

1) Приведите пример таких чисел а, b, х, при которых программа неверно решает поставленную задачу.

2) Укажите, какая часть программы является лишней.

3) Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы).

2.

Для заданного положительного вещественного числа A необходимо найти минимальное целое число K, при котором выполняется неравенство Для решения этой задачи ученик написал такую программу.

 

 

БейсикPython

DIM A, S AS DOUBLE

DIM K AS INTEGER

INPUT A

K = 0

S = 1

WHILE S >= A

K = K + 1

S = S + 1.0/K

WEND

PRINT K

END

a = float(input())

k = 0

s = 1

while s>=a:

    k = k + 1

    s = s + 1.0/k

print(k)

ПаскальАлгоритмический язык

var a, s: real;

k: integer;

begin

read(a);

k := 0;

s := 1;

while s>=a do begin

k := k + 1;

s := s + 1.0/k;

end;

write(k);

end.

алг

нач

вещ a, s

цел k

ввод a

k := 0

s := 1

нц пока s>=a

k := k + 1

s := s + 1.0/k

кц

вывод k

кон

Си++

#include <iostream>

using namespace std;

int main(){

double a, s;

int k;

cin >> a;

k = 0;

s = 1;

while (s>=a) {

k = k + 1;

s = s + 1.0/k;

}

cout « k « endl;

return 0;

}

 

 

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе числа 1.4.

2. Сколько существует натуральных чисел А, при вводе которых программа выведет ответ 1?

3. Найдите в программе все ошибки (их может быть одна или несколько).

Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде. Обратите внимание: Вам нужно исправить приведённую программу, а не написать свою. Вы можете только заменять ошибочные строки, но не можете удалять строки или добавлять новые. Заменять следует только ошибочные строки: за исправления, внесённые в строки, не содержащие ошибок, баллы будут снижаться.

3.

Для заданного положительного вещественного числа A необходимо найти минимальное целое число K, при котором выполняется неравенство Для решения этой задачи ученик написал такую программу.

 

 

БейсикPython

DIM A, S AS DOUBLE

DIM K AS INTEGER

INPUT A

K = 1

S = 1

WHILE S <= A

K = K + 1

S = 1.0/K

WEND

PRINT K

END

a = float(input())

k = 1

s = 1

while s<=a:

    k = k + 1

    s = 1.0/k

print(k)

ПаскальАлгоритмический язык

var a, s: real;

k: integer;

begin

read(a);

k := 1;

s := 1;

while s<=a do begin

k := k + 1;

s := 1.0/k;

end;

write(k);

end.

алг

нач

вещ a, s

цел k

ввод a

k := 1

s := 1

нц пока s<=a

k := k + 1

s := 1.0/k

кц

вывод k

кон

Си++

#include <iostream>

using namespace std;

int main(){

double a, s;

int k;

cin >> a;

k = 1;

s = 1;

while (s<=a) {

k = k + 1;

s = 1.0/k;

}

cout « k « endl;

return 0;

}

 

 

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе числа 0.4.

2. Сколько существует натуральных чисел А, при вводе которых программа выведет ответ 2?

3. Найдите в программе все ошибки (их может быть одна или несколько).

Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде. Обратите внимание: Вам нужно исправить приведённую программу, а не написать свою. Вы можете только заменять ошибочные строки, но не можете удалять строки или добавлять новые. Заменять следует только ошибочные строки: за исправления, внесённые в строки, не содержащие ошибок, баллы будут снижаться.

4.

Для заданного положительного вещественного числа A необходимо найти максимальное целое число K, при котором выполняется неравенство

(при K = 0 сумма считается равной 0).

Для решения этой задачи ученик написал такую программу.

 

Бейсик Python

DIM A, S AS DOUBLE

DIM K AS INTEGER

INPUT A

K = 1

S = 1

WHILE S < A

    S = S + 1.0/K

    K = K + 1

WEND

PRINT K

END

a = float(input())

k = 1

s = 1

while s < a:

    s = s + 1.0/k

    k = k + 1

print(k)

Алгоритмический язык Паскаль

алг

нач

    вещ a, s

    цел k

    ввод a

    k := 1

    s := 1

    нц пока s<a

        s := s + 1.0/k

        k := k + 1

    кц

    вывод k

кон

var a, s: real;

k: integer;

begin

    read(a);

    k := 1;

    s := 1;

    while s<a do begin

        s := s + 1.0/k;

        k := k + 1;

    end;

    write(k);

end.

Си++

#include <iostream>

using namespace std;

int main(){

    double a, s;

    int k;

    cin >> a;

    k = 1;

    s = 1;

    while (s<a) {

        s = s + 1.0/k;

        k = k + 1;

    }

    cout « k « endl;

    return 0;

}

 

 

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе числа 1.2.

2. Приведите пример числа, при вводе которого программа даст верный ответ.

3. Найдите в программе все ошибки (их может быть одна или несколько).

Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.

Обратите внимание: вам нужно исправить приведённую программу, а не написать свою. Вы можете только исправлять ошибочные строки; удалять строки или добавлять новые строки нельзя. Постарайтесь также не внести новые ошибки – за это оценка снижается.

5.

Для заданного положительного вещественного числа A необходимо найти максимальное целое число K, при котором выполняется неравенство

(при K = 0 сумма считается равной 0).

Для решения этой задачи ученик написал такую программу.

 

Бейсик Python

DIM A, S AS DOUBLE

DIM K AS INTEGER

INPUT A

K = 0

S = 1

WHILE S < A

    K = K + 1

    S = S + 1.0/K

WEND

PRINT K

END

a = float(input())

k = 0

s = 1

while s < a:

    k = k + 1

    s = s + 1.0/k

print(k)

Алгоритмический язык Паскаль

алг

нач

    вещ a, s

    цел k

    ввод a

    k := 0

    s := 1

    нц пока s<a

        k := k + 1

        s := s + 1.0/k

    кц

    вывод k

кон

var a, s: real;

k: integer;

begin

    read(a);

    k := 0;

    s := 1;

    while s<a do begin

        k := k + 1;

        s := s + 1.0/k;

    end;

    write(k);

end.

Си++

#include <iostream>

using namespace std;

int main(){

    double a, s;

    int k;

    cin >> a;

    k = 0;

    s = 1;

    while (s<a) {

        k = k + 1;

        s = s + 1.0/k;

    }

    cout « k « endl;

    return 0;

}

 

 

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе числа 1.8.

2. Приведите пример числа, при вводе которого программа даст верный ответ.

3. Найдите в программе все ошибки (их может быть одна или несколько).

Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.

Обратите внимание: вам нужно исправить приведённую программу, а не написать свою. Вы можете только исправлять ошибочные строки; удалять строки или добавлять новые строки нельзя. Постарайтесь также не внести новые ошибки – за это оценка снижается.

6.

Дано целое положительное число N. Необходимо определить наименьшее целое число K, для которого выполняется неравенство:

 

1 + 2 + … + K > N.

 

Для решения этой задачи ученик написал программу, но, к сожалению, его программа неправильная.

Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

 

БейсикPython

DIM N, K AS INTEGER

INPUT N

K = 1

WHILE N > 0

  N = N - K

  K = K + 1

WEND

PRINT K

END

n = int(input())

k = 1

while n>0:

  n = n - k

  k = k + 1

print(k)

ПаскальАлгоритмический язык

var n, k: integer;

begin

  read(n);

  k := 1;

  while n>0 do begin

    n := n- k;

    k := k + 1;

  end;

  writeln(k)

end.

алг

нач

  цел n, k

  ввод n

  k := 1

  нц пока n>0

    n := n - k

    k := k + 1

  кц

  вывод k

кон

Си++

#include <iostream>

using namespace std;

int main(){

int n, k;

cin >> n;

k = 1;

while (n>0) {

n = n - k;

k = k + 1;

}

cout « k « endl;

return 0;

}

 

Последовательно выполните следующее.

1. Приведите пример числа N, при вводе которого программа выведет неверный ответ. Укажите верный ответ и ответ, который выведет программа.

2. Приведите пример числа N, при вводе которого программа выведет верный ответ. Укажите этот ответ.

3. Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.

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

Обратите внимание: Вам нужно исправить приведённую программу, а не написать свою. Вы можете только заменять ошибочные строки, но не можете удалять строки или добавлять новые. Заменять следует только ошибочные строки: за исправления, внесённые в строки, не содержащие ошибок, баллы будут снижаться.

7.

Дано целое положительное число N. Необходимо определить наименьшее целое число K, для которого выполняется неравенство:

 

1 + 2 + … + KN.

 

Для решения этой задачи ученик написал программу, но, к сожалению, его программа неправильная.

Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

 

БейсикPython

DIM N, K AS INTEGER

INPUT N

K = 1

WHILE N >= 0

  K = K + 1

  N = N - K

WEND

PRINT K

END

n = int(input())

k = 1

while n>=0:

  k = k + 1

  n = n - k

print(k)

ПаскальАлгоритмический язык

var n, k: integer;

begin

  read(n);

  k := 1;

  while n>=0 do begin

    k := k + 1;

    n := n- k;

  end;

  writeln(k)

end.

алг

нач

  цел n, k

  ввод n

  k := 1

  нц пока n>=0

    k := k + 1

    n := n - k

  кц

  вывод k

кон

Си++

#include <iostream>

using namespace std;

int main(){

int n, k;

cin >> n;

k = 1;

while (n>=0) {

k = k + 1;

n = n - k;

}

cout « k « endl;

return 0;

}

 

Последовательно выполните следующее.

1. Приведите пример числа N, при вводе которого программа выведет неверный ответ. Укажите верный ответ и ответ, который выведет программа.

2. Приведите пример числа N, при вводе которого программа выведет верный ответ. Укажите этот ответ.

3. Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.

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

Обратите внимание: Вам нужно исправить приведённую программу, а не написать свою. Вы можете только заменять ошибочные строки, но не можете удалять строки или добавлять новые. Заменять следует только ошибочные строки: за исправления, внесённые в строки, не содержащие ошибок, баллы будут снижаться.

8.

Требовалось написать программу, которая решает уравнение относительно х для любого числа с, введенного с клавиатуры. Все числа считаются действительными. Программист торопился и написал программу неправильно.

 

 

БейсикPython

INPUT с, х

IF с>0 THEN

PRINT "нет решений"

ELSE

PRINT "х=",SQR(-с)

или х=",-SQR(-с)

ENDIF

END

c = float(input())

x = float(input())

if c > 0:

    print("нет решений")

else:

    print('х=',sqrt(-с),

' или х=',-sqrt(-с))

ПаскальАлгоритмический язык

var с,х: real;

begin

readln (с,х);

if с>0 then

write ('нет решений')

else

write ('х=',sqrt(-с),

' или х=',-sqrt(-с));

end.

алг

нач

    вещ c,x

    если c > 0 то

        вывод 'нет решений'

    иначе

        вывод 'х=',sqrt(-с),

' или х=',-sqrt(-с)

    все

кон

Си++

#include <iostream>

using namespace std;

int main(void)

{ float c,x;

cin >> c >> x;

if (c>0)

cout << "нет решений";

else

cout << ""х="" << sqrt(-с) << " или х=" << -sqrt(-с)) << endl;

}

 

 

Последовательно выполните три задания:

1) Приведите пример таких чисел с, х, при которых программа неверно решает поставленную задачу.

2) Укажите, какая часть программы является лишней.

3) Укажите, как нужно доработать программу, чтобы не было случаев ее некорректной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы).

9.

Требовалось написать программу, которая решает неравенство относительно для любого ненулевого числа и любого неотрицательного числа и введенных с клавиатуры. Все числа считаются действительными. Программист торопился и написал программу неправильно.

 

 

БейсикPython

INPUT а, b, х

IF а = 0 THEN

IF b > 0 THEN

PRINT "нет решений"

ELSE

PRINT "x>0 или x<0"

ENDIF

ELSE

PRINT -a,"< x < 0"

a = float(input())

b = float(input())

x = float(input())

if a == 0:

    if b > 0:

        print("нет решений")

    else:

        print("x > 0 или x <0")

else:

    print(-a,'< x <0')

ПаскальАлгоритмический язык

var a,b,x: real;

begin

readln(a,b,x);

if a = 0 then

if b > 0 then

write ('нет решений')

else

write('x > 0 или x <0')

else

write(-a,'< x <0');

end.

алг

нач

    вещ a, b, x

    если a == 0 то

        если b > 0 то

            вывод 'нет решений'

        иначе

            вывод 'x > 0 или x <0'

        все

    иначе

        вывод -a,'< x <0'

    все

кон

Си++

#include <iostream>

using namespace std;

int main(void)

{ float a,b,x;

cin >> a >> b,&x;

if (a==0)

if (b>0)

cout << "нет решений"<< endl;

else

cout << "x>0 или x<0"<< endl;

else

cout << -a << "< x <0" << endl;

 

 

Последовательно выполните три задания:

1) Приведите пример таких чисел а, b, х, при которых программа неверно решает поставленную задачу.

2) Укажите, какая часть программы является лишней.

3) Укажите, как нужно доработать программу, чтобы не было случаев ее некорректной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы).

10.

Требовалось написать программу, которая решает неравенство «(ах) / (х + b) > 0» относительно х для любого ненулевого числа а и любого неотрицательного числа b и , введенных с клавиатуры. Все числа считаются действительными. Программист торопился и написал программу неправильно.

 

 

БейсикPython

INPUT а, b, х

IF b = 0 THEN

PRINT "х > 0 или х <0"

ELSE

IF а>0 THEN

PRINT "х >0 или х<",-b

ELSE

PRINT -b,"<х<0"

ENDIF

ENDIF

END

a = int(input())

b = int(input())

x = int(input())

if b == 0:

    print("x > 0 или x < 0")

else:

    if a > 0:

        print('x > 0 или x <',-b)

    else:

        print(-b,'< x <0 ')

ПаскальАлгоритмический язык

var a,b,x: real;

begin

readln(a,b,x);

if b = 0 then

write('x > 0 или x < 0')

else

if a > 0 then

write('x > 0 или x <',-b)

else

write(-b,'< x <0 ' ) ;

end.

алг

нач

    вещ a,b,x

    если b = 0 то

        вывод "x > 0 или x < 0"

    иначе

    если a > 0 то

        вывод "x > 0 или x <",-b

    иначе вывод -b,"< x <0"

    все

    все

кон

Си++

#include <iostream>

using namespace std;

int main(void)

{ float a,b,x;

cin >> a >> b >> x ;

if (b==0)

cout << "x>0 или x<0" << endl;

else

if (a > 0)

cout << "x > 0 или x <" << -b << endl;

else

cout << -b << "< x <0" << endl;

}

 

 

Последовательно выполните три задания:

1) Приведите пример таких чисел a, b, x, при которых программа неверно решает поставленную задачу.

2) Укажите, какая часть программы является лишней.

3) Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы).

11.

Требовалось написать программу, которая решает уравнение «a |x| = b» относительно х для любых чисел а и b, введенных с клавиатуры. Все числа считаются действительными. Программист торопился и написал программу неправильно.

 

 

БейсикPython

INPUT a, b, x

IF a = 0 THEN

IF b = 0 THEN

PRINT "любое число"

ELSE

PRINT "нет решений"

ENDIF

ELSE

IF b = 0 THEN

PRINT "x =0"

ELSE

PRINT "x =",b/a, "или x =",-b/a

ENDIF

ENDIF

END

a = float(input())

b = float(input())

x = float(input())

if a == 0:

    if b == 0:

        print('любое число')

    else:

        print('нет решений')

else:

    if b == 0:

        print('x = 0')

    else:

        print('x =', b/a, 'или x =',-b/a)

ПаскальАлгоритмический язык

var a,b,x: real;

begin

readln(a,b,x);

if a = 0 then

    if b = 0 then

        write ('любое число')

    else

        write ('нет решений')

else

    if b = 0 then

        write('x = 0')

    else

        write('x =',b/a,' или x =',-b/a);

end.

алг

нач

    вещ a,b,x

    если a = 0 то

        если b = 0 то

            вывод "любое число"

        иначе вывод "нет решений"

        все

    иначе

        если b = 0 то

            вывод "x = 0"

        иначе

            вывод "x =", b/a, "или x =",-b/a

    все

кон

Си++

#include <iostream>

using namespace std;

int main(void)

{float a,b,x;

cin >> a >> b >> x;

if (a==0)

if (b==0)

cout << "любое число";

else

cout << "нет решений";

else

if (b==0)

cout << "x - 0";

else

cout << "x=" << b/a << "или x=" << -b/a << endl;

}

 

 

Последовательно выполните три задания:

1) Приведите пример таких чисел a, b, x, при которых программа неверно решает поставленную задачу.

2) Укажите, какая часть программы является лишней.

3) Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы).

12.

Даны целые положительные числа M и N. Необходимо определить количество таких целых положительных чисел K, для которых выполняется неравенство

 

Для решения этой задачи ученик написал программу, но, к сожалению, его программа неправильная. Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

 

БейсикPython

DIM M, N, K, T AS INTEGER

INPUT M, N

K = 1

T = 1

WHILE K*K < N

  IF K*K >= M THEN T = T + 1

  K = K + 1

WEND

PRINT T

END

m = int(input())

n = int(input())

k = 1

t = 1

while k*k < n:

  if k*k >= m:

    t = t+1

  k = k + 1

print(t)

ПаскальАлгоритмический язык

var m, n, k, t: integer;

begin

  read(m, n);

  k := 1;

  t := 1;

  while k*k < n do begin

    if k*k >= m

      then t := t+1;

    k := k + 1;

  end;

  writeln(t)

end.

алг

нач

  цел m, n, k, t

  ввод m, n

  k := 1

  t := 1

  нц пока k*k < n

    если k*k >= m

      то t := t+1

    все

    k := k+1

  кц

  вывод t

кон

Си++

#include <iostream>

using namespace std;

int main(){

  int m, n, k, t;

  cin >> m >> n;

  k = 1;

  t = 1;

  while (k*k < n) {

    if (k*k >= m) t = t + 1;

    k = k + 1;

  }

  cout « t « endl;

  return 0;

}

 

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе M = 10 и N = 40.

2. Приведите пример таких чисел M и N, при вводе которых программа выведет верный ответ. Укажите этот ответ.

3. Найдите в программе все ошибки (их может быть одна или несколько).

Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.

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

Обратите внимание: Вам нужно исправить приведённую программу, а не написать свою. Вы можете только заменять ошибочные строки, но не можете удалять строки или добавлять новые. Заменять следует только ошибочные строки: за исправления, внесённые в строки, не содержащие ошибок, баллы будут снижаться.

 

Замечание.

13.

Дано целое положительное число N. Необходимо определить максимальное значение степени числа 2, на которое N делится без остатка. Например, для N = 2016 нужно получить результат 32, а для N = 2017 — результат 1. Для решения этой задачи ученик написал программу, но, к сожалению, его программа неправильная. Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

 

БейсикPython

DIM N, K AS INTEGER

INPUT N

K = 2

WHILE N MOD 2 = 0

  N = N\2

  K = K + 1

WEND

PRINT K

END

n = int(input())

k = 2

while n%2 == 0:

  n = n//2

  k = k + 1

print(k)

ПаскальАлгоритмический язык

var n, k: integer;

begin

  read(n);

  k := 2;

  while n mod 2 = 0 do begin

    n := n div 2;

    k := k + 1;

  end;

  writeln(k)

end.

алг

нач

  цел n, k

  ввод n

  k := 2

  нц пока mod(n,2) = 0

    n := div(n,2)

    k := k+1

  кц

  вывод k

кон

Си++

#include <iostream>

using namespace std;

int main(){

  int n, k;

  cin >> n;

  k = 2;

  while (n%2 == 0) {

    n = n/2;

    k = k + 1;

  }

  cout « k « endl;

  return 0;

}

 

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе N = 2016.

2. Приведите два возможных значения N, при вводе которых программа выведет верный ответ. Укажите этот ответ.

3. Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде. Достаточно указать ошибки и способ их исправления для одного языка программирования.

Обратите внимание: Вам нужно исправить приведённую программу, а не написать свою. Вы можете только заменять ошибочные строки, но не можете удалять строки или добавлять новые. Заменять следует только ошибочные строки: за исправления, внесённые в строки, не содержащие ошибок, баллы будут снижаться.

14.

Дано целое положительное число N. Необходимо определить максимальное значение степени числа 2, на которое N делится без остатка. Например, для N = 2016 нужно получить результат 32, а для N = 2017 — результат 1. Для решения этой задачи ученик написал программу, но, к сожалению, его программа неправильная. Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

 

БейсикPython

DIM N, K AS INTEGER

INPUT N

K = 0

WHILE N MOD 2 = 0

  N = N\2

  K = K + 2

WEND

PRINT K

END

n = int(input())

k = 0

while n%2 == 0:

  n = n//2

  k = k + 2

print(k)

ПаскальАлгоритмический язык

var n, k: integer;

begin

  read(n);

  k := 0;

  while n mod 2 = 0 do begin

    n := n div 2;

    k := k + 2;

  end;

  writeln(k)

end.

алг

нач

  цел n, k

  ввод n

  k := 0

  нц пока mod(n,2) = 0

    n := div(n,2)

    k := k+2

  кц

  вывод k

кон

Си++

#include <iostream>

using namespace std;

int main(){

  int n, k;

  cin >> n;

  k = 0;

  while (n%2 == 0) {

    n = n/2;

    k = k + 2;

  }

  cout « k « endl;

  return 0;

}

 

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе N = 2016.

2. Приведите два возможных значения N, при вводе которых программа выведет верный ответ. Укажите этот ответ.

3. Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде. Достаточно указать ошибки и способ их исправления для одного языка программирования.

Обратите внимание: Вам нужно исправить приведённую программу, а не написать свою. Вы можете только заменять ошибочные строки, но не можете удалять строки или добавлять новые. Заменять следует только ошибочные строки: за исправления, внесённые в строки, не содержащие ошибок, баллы будут снижаться.

15.

Дано целое неотрицательное число N. Необходимо вывести два неотрицательных целых числа, которые при возведении к квадрат дадут результаты, наиболее близкие к N. Например, для N = 2016 нужно вывести числа 44 и 45 (442 = 1936, 452 = 2025), а для N = 9 нужно вывести числа 2 и 3. Для решения этой задачи ученик написал программу, но, к сожалению, его программа — неправильная.

Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

 

 

БейсикPython

DIM N, K AS INTEGER

INPUT N

K = 1

WHILE K*K <= N

  K = K + 1

WEND

PRINT (K-1)*(K-1), K*K

END

n = int(input())

k = 1

while k*k <= n:

    k = k + 1

print((k-1)*(k-1),k*k)

Алгоритмический языкПаскаль

алг

нач

  цел n, k

  ввод n

  k := 1

  нц пока k*k <= n

    k := k + 1

  кц

  вывод (k-1)*(k-1), " ", k*k

кон

var n, k: integer;

begin

  read(n);

  k := 1;

  while k*k <= n do

    k := k + 1;

  writeln((k-1)*(k-1),' ',k*k)

end.

Си++

#include <iostream>

using namespace std;

    int main(){

    int n, k;

    cin >> n;

    k = 1;

    while (k*k <= n)

        k = k + 1;

    cout << (k-1)*(k-1) << k*k << endl;

    return 0;

}

 

 

Последовательно выполните следующее.

 

1. Напишите, что выведет эта программа при вводе N = 2016.

2. Назовите значение N, при вводе которого программа выведет верный ответ. Укажите этот ответ.

3. Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде. Достаточно указать ошибки и способ их исправления для одного языка программирования.

 

Обратите внимание: Вам нужно исправить приведённую программу, а не написать свою. Вы можете только заменять ошибочные строки, но не можете удалять строки или добавлять новые. Заменять следует только ошибочные строки: за исправления, внесённые в строки, не содержащие ошибок, баллы будут снижаться.

16.

Дано целое неотрицательное число N. Необходимо вывести два ближайших к нему точных квадрата в порядке возрастания. Например, для N = 2016 нужно вывести числа 1936 и 2025 (1936 = 442, 2025 = 452), а для N = 9 нужно вывести числа 4 и 9.

Для решения этой задачи ученик написал программу, но, к сожалению, его программа — неправильная.

Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

 

 

БейсикPython

DIM N, K AS INTEGER

INPUT N

K = 1

WHILE K*K <= N

  K = K + 1

WEND

PRINT K-1, K

END

n = int(input())

k = 1

while k*k <= n:

    k = k + 1

print(k-1,k)

Алгоритмический языкПаскаль

алг

нач

  цел n, k

  ввод n

  k := 1

  нц пока k*k <= n

    k := k + 1

  кц

  вывод k-1, " ", k

кон

var n, k: integer;

begin

  read(n);

  k := 1;

  while k*k <= n do

    k := k + 1;

  writeln(k-1, " ", k)

end.

Си++

#include <iostream>

using namespace std;

    int main(){

    int n, k;

    cin >> n;

    k = 1;

    while (k*k <= n)

        k = k + 1;

    cout << k-1 << k << endl;

    return 0;

}

 

 

Последовательно выполните следующее.

 

1. Напишите, что выведет эта программа при вводе N = 2016.

2. Назовите значение N, при вводе которого программа выведет верный ответ. Укажите этот ответ.

3. Найдите в программе все ошибки (их может быть одна или несколько). ля каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде. Достаточно указать ошибки и способ их исправления для одного языка программирования.

 

Обратите внимание: Вам нужно исправить приведённую программу, а не написать свою. Вы можете только заменять ошибочные строки, но не можете удалять строки или добавлять новые. Заменять следует только ошибочные строки: за исправления, внесённые в строки, не содержащие ошибок, баллы будут снижаться.

17.

Ученик написал программу, определяющую, какой степенью числа 4 является введенное. Например, для 16 это 2, так как 42 = 16. Если же такой степени нет, то необходимо вывести сообщение "Не существует". К сожалению, ученик написал программу неверно.

 

 

БейсикPython

DIM N, K AS INTEGER

INPUT N

K = 0

WHILE K MOD 4 = 0

    N = N \ 4

    K = K + 1

WEND

IF N <= 4 THEN

    PRINT K

ELSE

    PRINT "Не существует"

END IF

END

n = int(input())

k = 0

while k%4 == 0:

    n = n // 4

    k = k + 1

if n <= 4:

    print(k)

else:

    print("Не существует")

ПаскальАлгоритмический язык

var n, k: integer;

begin

    read(n);

    k := 0;

    while k mod 4 = 0 do begin

        n := n div 4;

        k := k + 1;

    end;

    if n <= 4 then

        writeln(k)

    else

        writeln('Не существует')

end.

алг

нач

    цел n, k

    ввод n

    k := 0

    нц пока mod(k, 4)=0

        n := div(n,4)

        k := k + 1

    кц

    если n <= 4

        то вывод k

        иначе вывод "Не существует"

    все

кон

Си++

#include <iostream>

using namespace std;

int main(){

    int n, k;

    cin >> n;

    k = 0;

    while (k%4 == 0) {

        n = n / 4;

        k = k + 1;

    }

    if (n <= 4)

        cout « k « endl;

    else

        cout << "Не существует";

    return 0;

}

 

 

 

Последовательно выполните следующее.

 

1. Что выдаст программа при вводе числа 64?

2. При вводе какого числа программа выдаст верный ответ? Укажите этот ответ.

3. Исправьте программу. Запишите ошибочную строку, затем исправленный вариант. Помните, что нужно исправить имеющуюся программу, а не писать свою, хоть и с лучшим алгоритмом.

18.

Ученик написал программу, определяющую, какой степенью числа 5 является введенное. Например, для 25 это 2, так как 52 = 25. Если же такой степени нет, то необходимо вывести сообщение "Не существует". К сожалению, ученик написал программу неверно.

 

 

БейсикPython

DIM N, K AS INTEGER

INPUT N

K = 0

WHILE K MOD 5 = 0

    N = N \ 5

    K = K + 1

WEND

IF K <= 5 THEN

    PRINT K

ELSE

    PRINT "Не существует"

END IF

END

n = int(input())

k = 0

while k%5 == 0:

    n = n // 5

    k = k + 1

if k <= 5:

    print(k)

else:

    print("Не существует")

ПаскальАлгоритмический язык

var n, k: integer;

begin

    read(n);

    k := 0;

    while k mod 5 = 0 do begin

        n := n div 5;

        k := k + 1;

    end;

    if k <= 5 then

        writeln(k)

    else

        writeln('Не существует')

end.

алг

нач

    цел n, k

    ввод n

    k := 0

    нц пока mod(k, 5)=0

        n := div(n,5)

        k := k + 1

    кц

    если k <= 5

        то вывод k

        иначе вывод "Не существует"

    все

кон

Си++

#include <iostream>

using namespace std;

int main(){

    int n, k;

    cin >> n;

    k = 0;

    while (k%5 == 0) {

        n = n / 5;

        k = k + 1;

    }

    if (k <= 5)

        cout « k « endl;

    else

        cout << "Не существует";

    return 0;

}

 

 

Последовательно выполните следующее.

 

1. Что выдаст программа при вводе числа 125?

2. При вводе какого числа программа выдаст верный ответ? Укажите этот ответ.

3. Исправьте программу. Запишите ошибочную строку, затем исправленный вариант. Помните, что нужно исправить имеющуюся программу, а не писать свою, хоть и с лучшим алгоритмом'

19.

Дано целое положительное число N, не превосходящее 1000. Необходимо определить, является ли это число степенью числа 4. То есть требуется определить, существует ли такое целое число К, что 4K = N, и вывести это число либо сообщение, что такого числа не существует. Для решения этой задачи ученик написал программу, но, к сожалению, его программа оказалась неверной.

 

 

БейсикPython

DIM N, K AS INTEGER

INPUT N

K = 0

WHILE N MOD 4 = 0

    K = K + (n \ 4)

    N = n div 4

WEND

IF N <= 4 THEN

    PRINT K

ELSE

    PRINT "Не существует"

END IF

END

n = int(input())

k = 0

while n%4 == 0:

    k = k + (n // 4)

    n = n // 4

if n <= 4:

    print(k)

else:

    print("Не существует")

ПаскальАлгоритмический язык

var n, k: integer;

begin

    read(n);

    k := 0;

    while n mod 4 = 0 do begin

        k := k + n div 4;

        n := n div 4;

    end;

    if n <= 4 then

        writeln(k)

    else

        writeln('Не существует')

end.

алг

нач

    цел n, k

    ввод n

    k := 0

    нц пока mod(n, 4)=0

        k := k + div(n, 4)

        n := div(n,4)

    кц

    если n <= 4

        то вывод k

        иначе вывод "Не существует"

    все

кон

Си++

#include <iostream>

using namespace std;

int main(){

    int n, k;

    cin >> n;

    k = 0;

    while (n%4 == 0) {

        k = k + n / 4;

        n = n / 4;

    }

    if (n <= 4)

        cout « k « endl;

    else

        cout << "Не существует";

    return 0;

}

 

 

 

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе числа 16.

2. Приведите пример числа, при вводе которого приведённая программа напечатает то, что требуется.

3. Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.

20.

Дано целое положительное число N, не превосходящее 1000. Необходимо определить, является ли это число степенью числа 5. То есть требуется определить, существует ли такое целое число К, что 5K = N, и вывести это число либо сообщение, что такого числа не существует. Для решения этой задачи ученик написал программу, но, к сожалению, его программа оказалась неверной.

 

 

БейсикPython

DIM N, K AS INTEGER

INPUT N

K = 0

WHILE N MOD 5 = 0

    K = K + (n \ 5)

    N = n div 5

WEND

IF N > 0 THEN

    PRINT K

ELSE

    PRINT "Не существует"

END IF

END

n = int(input())

k = 0

while n%5 == 0:

    k = k + (n // 5)

    n = n // 5

if n > 0:

    print(k)

else:

    print("Не существует")

ПаскальАлгоритмический язык

var n, k: integer;

begin

    read(n);

    k := 0;

    while n mod 5 = 0 do begin

        k := k + n div 5;

        n := n div 5;

    end;

    if n > 0 then

        writeln(k)

    else

        writeln('Не существует')

end.

алг

нач

    цел n, k

    ввод n

    k := 0

    нц пока mod(n, 5)=0

        k := k + div(n, 5)

        n := div(n,5)

    кц

    если n > 0

        то вывод k

        иначе вывод "Не существует"

    все

кон

Си++

#include <iostream>

using namespace std;

int main(){

    int n, k;

    cin >> n;

    k = 0;

    while (n%5 == 0) {

        k = k + n / 5;

        n = n / 5;

    }

    if (n > 0)

        cout « k « endl;

    else

        cout << "Не существует";

    return 0;

}

 

 

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе числа 25.

2. Приведите пример числа, при вводе которого приведённая программа напечатает то, что требуется.

3. Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.

21.

Дано целое положительное число N, не превосходящее 1000. Необходимо определить, является ли это число степенью числа 3. То есть требуется определить, существует ли такое целое число K, что 3K = N, и вывести это число либо сообщение, что такого числа не существует.

Для решения этой задачи ученик написал программу, но, к сожалению, его программа оказалась неверной. Ниже эта написанная им программа для Вашего удобства приведена на пяти языках программирования.

 

БейсикPython

DIM N, K AS INTEGER

INPUT N

K = 0

WHILE K MOD 3 = 0

    K = K + 1

    N = N \ 3

WEND

IF N > 0 THEN

    PRINT K

ELSE

    PRINT "Не существует"

END IF

END

n = int(input())

k = 0

while k%3 == 0:

    k = k + 1

    n = n // 3

if n > 0:

    print(k)

else:

    print("Не существует")

ПаскальАлгоритмический язык

var n, k: integer;

begin

    read(n);

    k := 0;

    while k mod 3 = 0 do begin

        k := k + 1;

        n := n div 3;

    end;

    if n > 0 then

        writeln(k)

    else

        writeln('Не существует')

end.

алг

нач

    цел n, k

    ввод n

    k := 0

    нц пока mod(k, 3)=0

        k := k + 1

        n := div(n,3)

    кц

    если n > 0

        то вывод k

        иначе вывод "Не существует"

    все

кон

Си++

#include <iostream>

using namespace std;

int main(){

    int n, k;

    cin >> n;

    k = 0;

    while (k%3 == 0) {

        k = k + 1;

        n = n / 3;

    }

    if (n > 0)

        cout « k « endl;

    else

        cout << "Не существует";

    return 0;

}

 

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе числа 9.

2. Приведите пример числа, при вводе которого приведённая программа напечатает то, что требуется.

3. Найдите в программе все ошибки (их может быть одна или несколько).

Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.

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

Обратите внимание: Вам нужно исправить приведённую программу, а не написать свою. Вы можете только заменять ошибочные строки, но не можете удалять строки или добавлять новые. Заменять следует только ошибочные строки: за исправления, внесённые в строки, не содержащие ошибок, баллы будут снижаться.

22.

Дано натуральное число A. Требуется вывести такое максимально возможное натуральное число K, при котором сумма 1 + (1 + 2) + (1 + 2 + 3) + … + (1 + 2 + … + K) не превышает A. Для решения этой задачи ученик написал программу, но, к сожалению, его программа – неправильная. Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

 

БейсикPython

DIM A,S,P,K AS INTEGER

INPUT A

S = 0

P = 0

K = 1

WHILE S <= A

    K = K + 1

    P = P + K

    S = S + P

WEND

PRINT K

END

a = int(input())

s = 0

p = 0

k = 1

while s <= a:

     k = k + 1

     p = p + k

     s = s + p

print(k)

ПаскальАлгоритмический язык

var a, s, p, k: integer;

begin

    readln(a);

    s := 0;

    p := 0;

    k := 1;

    while s <= a do begin

      k := k+1;

      p := k+p;

      s := p+s;

    end;

    writeln(k);

end.

алг

нач

   цел a, s, p, k

   ввод a

   s := 0

   p := 0

   k := 1

   нц пока s <= a

     k := k+1

     p := p+k

     s := s+p

   кц

  вывод k

кон

Си++

#include <iostream>

using namespace std;

int main()

{

   int a, s, p, k;

   cin >> a;

   s = 0;

   p = 0;

   k = 1;

   while (s <= a) {

       k = k+1;

       p = p+k;

       s = s+p;

   }

   cout « k « endl;

   return 0;

}

 

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе числа 17.

2. Перечислите все значения A, при вводе которых программа выведет ответ 3.

3. Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде. Достаточно указать ошибки и способ их исправления для одного языка программирования. Обратите внимание: Вам нужно исправить приведённую программу, а не написать свою. Вы можете только заменять ошибочные строки, но не можете удалять строки или добавлять новые. Заменять следует только ошибочные строки: за исправления, внесённые в строки, не содержащие ошибок, баллы будут снижаться.

23.

Дано натуральное число A. Требуется вывести такое максимально возможное натуральное число K, при котором сумма 1 + (1 + 2) + (1 + 2 + 3) + … + (1 + 2 + … + K) не превышает A. Для решения этой задачи ученик написал программу, но, к сожалению, его программа – неправильная. Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

 

БейсикPython

DIM A,S,P,K AS INTEGER

INPUT A

S = 0

P = 0

K = 1

WHILE S < A

    P = P + K

    S = S + P

    K = K + 1

WEND

PRINT K

END

a = int(input())

s = 0

p = 0

k = 1

while s < a

     p = p + k

     s = s + p

     k = k + 1

print(k)

ПаскальАлгоритмический язык

var a, s, p, k: integer;

begin

    readln(a);

    s := 0;

    p := 0;

    k := 1;

    while s < a do begin

      p := k+p;

      s := p+s;

      k := k+1;

    end;

    writeln(k);

end.

алг

нач

   цел a, s, p, k

   ввод a

   s := 0

   p := 0

   k := 1

   нц пока s < a

     p := p+k

     s := s+p

     k := k+1

   кц

  вывод k

кон

Си++

#include <iostream>

using namespace std;

int main()

{

   int a, s, p, k;

   cin >> a;

   s = 0;

   p = 0;

   k = 1;

   while (s < a) {

       p = p+k;

       s = s+p;

       k = k+1;

   }

   cout « k « endl;

   return 0;

}

 

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе числа 17.

2. Приведите пример значения A, при вводе которого программа выведет верный ответ. Укажите этот ответ.

3. Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде. Достаточно указать ошибки и способ их исправления для одного языка программирования. Обратите внимание: Вам нужно исправить приведённую программу, а не написать свою. Вы можете только заменять ошибочные строки, но не можете удалять строки или добавлять новые. Заменять следует только ошибочные строки: за исправления, внесённые в строки, не содержащие ошибок, баллы будут снижаться.

24.

Даны натуральные числа A и B. Требуется найти такое минимально возможное натуральное число K ≥ A, что сумма всех чисел от A до K больше или равна B.

Для решения этой задачи ученик написал программу, но, к сожалению, его программа неправильная.

Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

 

БейсикPython

DIM A,B,S,K AS INTEGER

INPUT A,B

S = 1

K = A

WHILE S <= B

    K = K + 1

     S = S + K

WEND

PRINT K

END

a = int(input())

b = int(input())

s = 1

k = a

while s <= b:

     k = k + 1

     s = s + k

print(k)

ПаскальАлгоритмический язык

var a, b, s, k: integer;

begin

     read(a,b);

     s := 1;

     k := a;

     while s <= b do begin

        k := k+1;

         s := s+k;

     end;

     writeln(k)

end.

алг

нач

     цел a, b, s, k

     ввод a, b

     s := 1

     k := a

     нц пока s <= b

         k := k+1

         s := s+k

     кц

     вывод k

кон

Си++

#include <iostream>

using namespace std;

 

int main(){

     int a, b, s, k;

     scanf("%d %d", &a, &b);

     s = 1;

     k = a;

     while (s <= b) {

         k = k+1;

         s = s+k;

     }

     printf("%d", k);

     return 0;

}

 

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе чисел 10 и 13.

2. Приведите пример значений A и B, при вводе которых программа выведет верный ответ. Укажите этот ответ.

3. Найдите в программе все ошибки (их может быть одна или несколько).

Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.

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

Обратите внимание: Вам нужно исправить приведённую программу, а не написать свою. Вы можете только заменять ошибочные строки, но не можете удалять строки или добавлять новые. Заменять следует только ошибочные строки: за исправления, внесённые в строки, не содержащие ошибок, баллы будут снижаться.

25.

Даны натуральные числа A и B. Требуется найти такое минимально возможное натуральное число K ≥ A, что сумма всех чисел от A до K больше B.

Для решения этой задачи ученик написал программу, но, к сожалению, его программа неправильная.

Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

 

БейсикPython

DIM A,B,S,K AS INTEGER

INPUT A,B

S = 0

K = A

WHILE S < B

    K = K + 1

    S = S + K

WEND

PRINT K

END

a = int(input())

b = int(input())

s = 0

k = a

while s < b:

    k = k + 1

    s = s + k

print(k)

ПаскальАлгоритмический язык

var a, b, s, k: integer;

begin

    read(a,b);

    s := 0;

    k := a;

    while s < b do begin

      k := k+1;

      s := s+k;

    end;

    writeln(k)

end.

алг

нач

    цел a, b, s, k

    ввод a, b

    s := 0

    k := a

    нц пока s < b

      k := k+1

      s := s+k

    кц

    вывод k

кон

Си++

#include <iostream>

using namespace std;

int main(){

    int a, b, s, k;

    cin >> a >> b;

    s = 0;

    k = a;

    while (s < b) {

      k = k+1;

      s = s+k;

    }

    cout « k « endl;

    return 0;

}

 

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе чисел 15 и 26.

2. Приведите пример значений A и B, при вводе которых программа выведет верный ответ. Укажите этот ответ.

3. Найдите в программе все ошибки (их может быть одна или несколько).

Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.

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

Обратите внимание: Вам нужно исправить приведённую программу, а не написать свою. Вы можете только заменять ошибочные строки, но не можете удалять строки или добавлять новые. Заменять следует только ошибочные строки: за исправления, внесённые в строки, не содержащие ошибок, баллы будут снижаться.

26.

Дано натуральное число A > 0. Требуется вывести такое минимально возможное нечётное натуральное число K, при котором сумма 1*2 + 3*4 + … + K*(K+1) окажется больше A.

Для решения этой задачи ученик написал программу, но, к сожалению, его программа – неправильная.

Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

 

 

БейсикPython

DIM A,S,K AS INTEGER

INPUT A

S = 0

K = 1

WHILE S <= A

    S = S + K*(K+1)

    K = K + 1

WEND

PRINT K

END

a = int(input())

s = 0

k = 1

while s <= a:

    s = s + k*(k+1)

    k = k + 1

print(k)

ПаскальАлгоритмический язык

var a, s, k: integer;

begin

    read(a);

    s := 0;

    k := 1;

    while s <= a do begin

        s := s+k*(k+1);

        k := k+1;

    end;

    writeln(k)

end.

алг

нач

    цел a, s, k

    ввод a

    s := 0

    k := 1

    нц пока s <= a

        s := s+k*(k+1)

        k := k+1

    кц

    вывод k

кон

Си++

#include <iostream>

using namespace std;

int main() {

    int a, s, k;

    cin >> a;

    s = 0;

    k = 1;

    while (s <= a) {

        s = s+k*(k+1);

        k = k+1;

    }

    cout « k « endl;

    return 0;

}

 

 

 

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе числа 15.

2. Укажите два наименьших значения A, при которых программа выведет верный ответ.

3. Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде. Достаточно указать ошибки и способ их исправления для одного языка программирования.

Обратите внимание: Вам нужно исправить приведённую программу, а не написать свою. Вы можете только заменять ошибочные строки, но не можете удалять строки или добавлять новые. Заменять следует только ошибочные строки. За исправления, внесённые в строки, не содержащие ошибок, баллы будут снижаться.

27.

Дано натуральное число A>0. Требуется вывести такое минимально возможное нечётное натуральное число K, при котором сумма 1*2 + 3*4 + … + K*(K+1) окажется больше A. Для решения этой задачи ученик написал программу, но, к сожалению, его программа – неправильная. Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

 

 

БейсикPython

DIM A,S,K AS INTEGER

INPUT A

S = 0

K = 1

WHILE S <= A

    K = K + 1

    S = S + K*(K+1)

WEND

PRINT K

END

a = int(input())

s = 0

k = 1

while s <= a:

    k = k + 1

    s = s + k*(k+1)

print(k)

ПаскальАлгоритмический язык

var a, s, k: integer;

begin

    read(a);

    s := 0;

    k := 1;

    while s <= a do begin

        k := k+1;

        s := s+k*(k+1);

    end;

    writeln(k)

end.

алг

нач

    цел a, s, k

    ввод a

    s := 0

    k := 1

    нц пока s <= a

        k := k+1

        s := s+k*(k+1)

    кц

    вывод k

кон

Си++

#include <iostream>

using namespace std;

int main() {

    int a, s, k;

    cin >> a;

    s = 0;

    k = 1;

    while (s <= a) {

        k = k+1;

        s = s+k*(k+1);

    }

    cout « k « endl;

    return 0;

}

 

 

 

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе числа 15.

2. Укажите два наименьших значения A, при которых программа выведет верный ответ.

3. Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде. Достаточно указать ошибки и способ их исправления для одного языка программирования.

Обратите внимание: Вам нужно исправить приведённую программу, а не написать свою. Вы можете только заменять ошибочные строки, но не можете удалять строки или добавлять новые. Заменять следует только ошибочные строки: за исправления, внесённые в строки, не содержащие ошибок, баллы будут снижаться.

28.

Даны целые числа A и B, 0 ≤ B ≤ A. Последовательно вычисляются значения A – 1, A – 1 – 2, A – 1 – 2 – 3 и т. д. Необходимо вывести наибольшее из этих значений, которое меньше B.

Для решения этой задачи ученик написал программу, но, к сожалению, его программа неправильная.

Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

 

БейсикPython

DIM A,B,S,K AS INTEGER

INPUT A, B

IF NOT (0<=B AND B<=A) THEN

    PRINT "Неверные данные"

ELSE

    S = A

    K = 0

    WHILE S > B

         S = S - K

        K = K + 1

     WEND

    PRINT K

END IF

END

a = int(input())

b = int(input())

if not 0<=b<=a:

    print("Неверные данные")

else:

    s = a

    k = 0

    while s > b:

        s = s-k

        k = k+1

    print(k)

ПаскальАлгоритмический язык

var a, b, s, k: integer;

begin

    read(a,b);

    if not ((0<=b) and (b<=a)) then

        writeln('Неверные данные')

    else begin

        s := a;

        k := 0;

        while s > b do begin

            s := s-k;

            k := k+1;

        end;

        writeln(k)

    end

end.

алг

нач

    цел a, b, s, k

    ввод a, b

    если не 0<=b<=a

        то

        вывод "Неверные данные"

        иначе

        s := a

        k := 0

        нц пока s > b

            s := s-k

            k := k+1

        кц

        вывод k

    все

кон

Си++

#include

using namespace std;

int main(){

    int a, b, s, k;

    cin >> a >> b;

    if (!(0<=b && b<=a))

        cout << "Неверные данные";

    else {

        s = a;

        k = 0;

        while (s > b) {

            s = s-k;

            k = k+1;

        }

        cout << k;

    }

    return 0;

}

 

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе чисел 6 и 2.

2. Приведите пример таких значений A и B, при вводе которых программа выведет правильный числовой ответ.

3. Найдите в программе все ошибки (их может быть одна или несколько).

 

Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.

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

Обратите внимание: Вам нужно исправить приведённую программу, а не написать свою. Вы можете только заменять ошибочные строки, но не можете удалять строки или добавлять новые. Заменять следует только ошибочные строки: за исправления, внесённые в строки, не содержащие ошибок, баллы будут снижаться

29.

Даны целые числа A и B, 0 ≤ B ≤ A. Последовательно вычисляются значения A – 1, A – 1 – 2, A – 1 – 2 – 3 и т.д. Необходимо вывести наибольшее из этих значений, которое меньше B.

Для решения этой задачи ученик написал программу, но, к сожалению, его программа неправильная.

Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

 

 

БейсикPython

DIM A,B,S,K AS INTEGER

INPUT A, B

IF NOT (0<=B AND B<=A) THEN

    PRINT "Неверные данные"

ELSE

    S = 0

    K = 0

    WHILE S > B

         K = K + 1

        S = S - K

     WEND

    PRINT S

END IF

END

a = int(input())

b = int(input())

if not 0<=b<=a:

    print("Неверные данные")

else:

    s = 0

    k = 0

    while s > b:

        k = k+1

        s = s-k

    print(s)

ПаскальАлгоритмический язык

var a, b, s, k: integer;

begin

    read(a,b);

    if not ((0<=b) and (b<=a)) then

        writeln('Неверные данные')

    else begin

        s := 0;

        k := 0;

        while s > b do begin

            k := k+1;

            s := s-k;

        end;

        writeln(s)

    end

end.

алг

нач

    цел a, b, s, k

    ввод a, b

    если не 0<=b<=a

        то

        вывод "Неверные данные"

        иначе

        s := 0

        k := 0

        нц пока s > b

            k := k+1

            s := s-k

        кц

        вывод s

    все

кон

Си++

#include <iostream>

using namespace std;

int main(){

    int a, b, s, k;

    cin >> a >> b;

    if (!(0<=b && b<=a))

        cout << "Неверные данные";

    else {

        s = 0;

        k = 0;

        while (s > b) {

            k = k+1;

            s = s-k;

        }

        cout << s;

    }

    return 0;

}

 

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе чисел 12345 и 1234.

2. Приведите пример таких значений A и B, при вводе которых программа выведет правильный числовой ответ.

3. Найдите в программе все ошибки (их может быть одна или несколько).

Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.

 

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

Обратите внимание: Вам нужно исправить приведённую программу, а не написать свою. Вы можете только заменять ошибочные строки, но не можете удалять строки или добавлять новые. Заменять следует только ошибочные строки: за исправления, внесённые в строки, не содержащие ошибок, баллы будут снижаться.

30.

Факториалом натурального числа n (обозначается n!) называется произведение всех натуральных чисел от 1 до n. Например, 4! = 1 · 2 · 3 · 4 = 24.

Дано целое положительное число A. Необходимо найти минимальное натуральное K, для которого K! ≥ A.

Для решения этой задачи ученик написал программу, но, к сожалению, его программа неправильная.

Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

 

 

БейсикPython

DIM A, K, F AS INTEGER

INPUT A

K = 0

F = 1

WHILE F <= A

    K = K + 1

    F = F * K

WEND

PRINT K

END

a = int(input())

k = 0

f = 1

while f <= a:

    k += 1

    f *= k

print(k)

ПаскальАлгоритмический язык

var a, k, f: integer;

begin

    read(a);

    k := 0;

    f := 1;

    while f <= a do begin

        k := k + 1;

        f := f * k

    end;

    writeln(k)

end.

алг

нач

    цел a, k, f

    ввод a

    k := 0

    f := 1

    нц пока f <= a

        k := k + 1

        f := f * k

    кц

    вывод k

кон

Си++

#include

using namespace std;

int main(){

    int a, k, f;

    cin >> a;

    k = 0;

    f = 1;

    while (f <= a) {

        ++k;

        f *= k;

    }

    cout << k;

    return 0;

}

 

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе A = 6.

2. Назовите минимальное A, большее 10, при котором программа выведет неверный ответ.

3. Найдите в программе все ошибки (их может быть одна или несколько).

Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.

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

Обратите внимание: Вам нужно исправить приведённую программу, а не написать свою. Вы можете только заменять ошибочные строки, но не можете удалять строки или добавлять новые. Заменять следует только ошибочные строки: за исправления, внесённые в строки, не содержащие ошибок, баллы будут снижаться.

31.

Факториалом натурального числа n (обозначается n!) называется произведение всех натуральных чисел от 1 до n. Например, 4! = 1 · 2 · 3 · 4 = 24.

Дано целое положительное число A. Необходимо найти минимальное натуральное K, для которого K! > A.Для решения этой задачи ученик написал программу, но, к сожалению, его программа неправильная.

Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

 

БейсикPython

DIM A, K, F AS INTEGER

INPUT A

K = 2

F = 1

WHILE F < A

    K = K + 1

    F = F * K

WEND

PRINT K

END

a = int(input())

k = 2

f = 1

while f < a:

    k += 1

    f *= k

print(k)

ПаскальАлгоритмический язык

var a, k, f: integer;

begin

    read(a);

    k := 2;

    f := 1;

    while f < a do begin

        k := k + 1;

        f := f * k

    end;

    writeln(k)

end.

алг

нач

    цел a, k, f

    ввод a

    k := 2

    f := 1

    нц пока f < a

        k := k + 1

        f := f * k

    кц

    вывод k

кон

Си++

#include

using namespace std;

int main(){

    int a, k, f;

    cin >> a;

    k = 2;

    f = 1;

    while (f < a) {

        ++k;

        f *= k;

    }

    cout << k;

    return 0;

}

 

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе A = 5.

2. Назовите минимальное A, большее 10, при котором программа выведет неверный ответ.

3. Найдите в программе все ошибки (их может быть одна или несколько).

Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.

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

Обратите внимание: Вам нужно исправить приведённую программу, а не написать свою. Вы можете только заменять ошибочные строки, но не можете удалять строки или добавлять новые. Заменять следует только ошибочные строки: за исправления, внесённые в строки, не содержащие ошибок, баллы будут снижаться.

32.

Факториалом натурального числа n (обозначается n!) называется произведение всех натуральных чисел от 1 до n. Например, 4! = 1 · 2 · 3 · 4 = 24.

Дано целое положительное число A.

Необходимо вывести минимальное натуральное число K, для которого 1! + 2! + … + K! > A.

Для решения этой задачи ученик написал программу, но, к сожалению, его программа неправильная.

Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

 

 

БейсикPython

DIM A, K, F, S AS INTEGER

INPUT A

K = 1

F = 1

S = 0

WHILE F <= A

    K = K + 1

    F = F * K

    S = S + F

WEND

PRINT K

END

a = int(input())

    k = 1

    f = 1

    s = 0

while f <= a:

    k += 1

    f *= k

    s += f

print(k)

ПаскальАлгоритмический язык

var a, k, f, s: integer;

begin

    read(a);

    k := 1;

    f := 1;

    s := 0;

    while f <= a do begin

        k := k + 1;

        f := f * k;

        s := s + f

    end;

    writeln(k)

end.

алг

нач

    цел a, k, f, s

    ввод a

    k := 1

    f := 1

    s := 0

    нц пока f <= a

        k := k + 1

        f := f * k

        s := s + f

    кц

    вывод k

кон

С++

#include <iostream>

using namespace std;

int main(){

    int a, k, f, s;

    cin >> a;

    k = 1;

    f = 1;

    s = 0;

    while (f <= a) {

        ++k;

        f *= k;

        s += f;

    }

    cout << k;

    return 0;

}

 

 

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе A = 8.

2. Назовите минимальное A, большее 10, при котором программа выведет неверный ответ.

3. Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.

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

Обратите внимание: Вам нужно исправить приведённую программу, а не написать свою. Вы можете только заменять ошибочные строки, но не можете удалять строки или добавлять новые. Заменять следует только ошибочные строки: за исправления, внесённые в строки, не содержащие ошибок, баллы будут снижаться.

33.

Факториалом натурального числа n (обозначается n!) называется произведение всех натуральных чисел от 1 до n. Например, 4! = 1 · 2 · 3 · 4 = 24.

Дано целое положительное число A.

Необходимо вывести минимальное натуральное число K, для которого 1! + 2! + … + K! > A.

Для решения этой задачи ученик написал программу, но, к сожалению, его программа неправильная.

Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

 

 

БейсикPython

DIM A, K, F, S AS INTEGER

INPUT A

K = 1

F = 1

S = 1

WHILE S <= A

    F = F * K

    K = K + 1

    S = S + F

WEND

PRINT K

END

a = int(input())

    k = 1

    f = 1

    s = 1

while s <= a:

    f *= k

    k += 1

    s += f

print(k)

ПаскальАлгоритмический язык

var a, k, f, s: integer;

begin

    read(a);

    k := 1;

    f := 1;

    s := 1;

    while s <= a do begin

        f := f * k;

        k := k + 1;

        s := s + f

    end;

    writeln(k)

end.

алг

нач

    цел a, k, f, s

    ввод a

     k := 1

     f := 1

     s := 1

     нц пока s <= a

         f := f * k;

         k := k + 1;

         s := s + f

     кц

     вывод k

кон

С++

#include <iostream>

using namespace std;

int main(){

     int a, k, f, s;

     cin >> a;

     k = 1;

     f = 1;

     s = 1;

     while (s <= a) {

        f *= k;

        ++k;

        s += f;

    }

    cout << k;

    return 0;

}

 

 

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе A = 6.

2. Назовите минимальное A, большее 10, при котором программа выведет верный ответ.

3. Найдите в программе все ошибки (известно, что их не более двух). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.

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

Обратите внимание: Вам нужно исправить приведённую программу, а не написать свою. Вы можете только заменять ошибочные строки, но не можете удалять строки или добавлять новые. Заменять следует только ошибочные строки: за исправления, внесённые в строки, не содержащие ошибок, баллы будут снижаться.

34.

На вход программы поступают 4 неотрицательных целых числа, не превышающие 1000, среди которых могут быть одинаковые. Нужно написать программу, которая выводит количество чисел, не кратных 3, и максимальное из этих чисел. Если среди входных данных нет чисел, не кратных трёх, программа должна вывести слово «NO». Программист написал программу неправильно.

 

БейсикPython

COUNT = 0

MAXIMUM = 1000

FOR I = 1 TO 4

    INPUT X

    IF X MOD 3 <> 0 THEN

        COUNT = COUNT + 1

        IF X > MAXIMUM THEN

            MAXIMUM = I

        END IF

    END IF

NEXT I

IF COUNT > THEN

    PRINT COUNT

    PRINT MAXIMUM

ELSE

    PRINT “NO”

END IF

count = 0

maximum = 1000

for i in range(4):

    x = int(input())

    if x % 3 != 0:

        count = count + 1

        if x > maximum:

            maximum = i

if count > 0:

    print(count)

    print(maximum)

else:

    print("NO")

ПаскальАлгоритмический язык

var i, x: integer;

var maximum, count: integer;

begin

     count := 0;

    maximum := 1000;

    for i:=1 to 4 do begin

         read( x );

         if x mod 3 <> 0 then begin

            count := count + 1;

             if x > maximum then

                 maximum := i;

            end;

         end;

     if count > 0 then begin

        writeln(count);

        writeln(maximum);

     end

    else

        writeln('NO');

end.

алг

нач

цел i, x

цел maximum, count

count := 0

maximum := 1000

нц для i от 1 до 4

ввод x

если mod(x, 3) <> 0 то

count := count + 1

если x > maximum то

maximum := i

все

все

кц

если count > 0 то

вывод count, нс

вывод maximum

иначе

вывод "NO"

все

кон

Си++

#include <iostream>

using namespace std;

 

int main(){

    int i, x, maximum;

    int count = 0;

    maximum = 1000;

    for (i=1; i<= 4; i++) {

        cin >> x;

        if ( x % 3 != 0 ) {

             count = count + 1;

             if ( x > maximum ) maximum = i;

            }

        }

     if ( count > 0 ) {

        cout << count << endl;

        cout << maximum;

    }

    else

        cout << "NO";

     return 0;

}

 

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе чисел 7 15 8 21.

2. Приведите пример такой последовательности, содержащей число, кратное 3, при вводе которой программа выведет правильный ответ.

3. Найдите все ошибки в этой программе (их может быть одна или несколько). Известно, что каждая ошибка затрагивает только одну строку и может быть исправлена без изменения других строк. Для каждой ошибки:

1) выпишите строку, в которой сделана ошибка;

2) укажите, как исправить ошибку, т. е. приведите правильный вариант строки.

35.

Факториалом натурального числа n (обозначается n!) называется произведение всех натуральных чисел от 1 до n. Например, 4! = 1 · 2 · 3 · 4 = 24.

Дано целое положительное число A. Необходимо найти ближайшее к A число, которое является точным факториалом какого-либо натурального числа. Если два точных факториала одинаково близки к A, нужно выбрать меньший из них. Например, для A = 15 нужно получить ответ 6, а для A = 20 – ответ 24.

Для решения этой задачи ученик написал программу, но, к сожалению, его программа неправильная.

Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

 

 

БейсикPython

DIM A, K, F AS INTEGER

INPUT A

K = 1

F = 1

WHILE F < A

    K = K + 1

    F = F * K

WEND

IF F − A >= F \ K − A THEN

    F = F \ K

END IF

PRINT K

END

a = int(input())

k = 1

f = 1

while f < a:

    k += 1

    f *= k

if f − a >= f // k − a:

    f //= k

print(k)

ПаскальАлгоритмический язык

var a, k, f: integer;

begin

    read(a);

    k := 1;

    f := 1;

    while f < a do begin

        k := k + 1;

        f := f * k

    end;

    end;

    if f−a >= f div k − a

        then f := f div k;

    writeln(k)

end.

алг

нач

    цел a, k, f

    ввод a

    k := 1

    f := 1

    нц пока f < a

        k := k + 1

        f := f * k

    кц

    если f − a >= div(f,k) − a

        то f := div(f,k)

    все

    вывод k

кон

С++

#include <iostream>

using namespace std;

int main(){

    int a, k, f;

    cin >> a;

    k = 1;

    f = 1;

    while (f < a) {

        ++k;

        f *= k;

    }

    if (f − a >= f/k − a)

        f = f/k;

    cout << k;

    return 0;

}

 

 

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе A = 5.

2. Приведите пример числа A, при котором программа выведет верный ответ. Укажите этот ответ.

3. Найдите в программе все ошибки (известно, что их не больше двух) и исправьте их. Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.

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

Обратите внимание: Вам нужно исправить приведённую программу, а не написать свою. Вы можете только заменять ошибочные строки, но не можете удалять строки или добавлять новые. Заменять следует только ошибочные строки: за исправления, внесённые в строки, не содержащие ошибок, баллы будут снижаться.

36.

Факториалом натурального числа n (обозначается n!) называется произведение всех натуральных чисел от 1 до n. Например, 4! = 1 · 2 · 3 · 4 = 24.

Дано целое положительное число A. Необходимо найти ближайшее к A число, которое является точным факториалом какого-либо натурального числа. Если два точных факториала одинаково близки к A, нужно выбрать меньший из них. Например, для A = 15 нужно получить ответ 6, а для A = 20 – ответ 24.

Для решения этой задачи ученик написал программу, но, к сожалению, его программа неправильная.

Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

 

 

БейсикPython

DIM A, K, F AS INTEGER

INPUT A

K = 0

F = 1

WHILE F <= A

    K = K + 1

    F = F * K

WEND

IF F − A > A − F \ K THEN

    F = F \ K

    K = K − 1

END IF

PRINT K

END

a = int(input())

k = 0

f = 1

while f <= a:

    k += 1

    f *= k

if f − a > a − f // k:

    f //= k

    k −= 1

print(k)

ПаскальАлгоритмический язык

var a, k, f: integer;

begin

    read(a);

    k := 0;

    f := 1;

    while f <= a do begin

        k := k + 1;

        f := f * k

    end;

    if f−a > a − f div k then begin

         f := f div k;

        k := k − 1;

    end;

    writeln(k)

end.

алг

нач

    цел a, k, f

    ввод a

    k := 0

    f := 1

    нц пока f <= a

        k := k + 1

        f := f * k

    кц

    если f − a > a − div(f,k)

        то f := div(f,k)

            k := k − 1

    все

    вывод k

кон

С++

#include <iostream>

using namespace std;

int main(){

    int a, k, f;

    cin >> a;

    k = 0;

    f = 1;

    while (f <= a) {

        ++k;

        f *= k;

    }

    if (f − a > a − f/k) {

        f = f/k;

        −−k;

    }

    cout << k;

    return 0;

}

 

 

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе A = 7.

2. Приведите пример числа A, при котором программа выведет верный ответ. Укажите этот ответ.

3. Найдите в программе все ошибки (известно, что их не больше двух) и исправьте их. Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.

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

Обратите внимание: Вам нужно исправить приведённую программу, а не написать свою. Вы можете только заменять ошибочные строки, но не можете удалять строки или добавлять новые. Заменять следует только ошибочные строки: за исправления, внесённые в строки, не содержащие ошибок, баллы будут снижаться.

37.

Факториалом натурального числа N (обозначается N!) называется произведение всех натуральных чисел от 1 до N. Например, 4! = 1 · 2 · 3 · 4 = 24. Даны целые положительные числа A и B, 0 < AB. Необходимо найти количество таких натуральных K, для которых AK! ≤ B. Например, при A = 5, B = 25 ответ должен быть равен 2 (подходящие значения K — 3 и 4, их факториалы 6 и 24 попадают в заданный интервал). Для решения этой задачи ученик написал программу, но, к сожалению, его программа неправильная. Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

 

 

БейсикPython

DIM A, B, K, F, D AS INTEGER

INPUT A: INPUT B

F = 1

K = 0

D = 0

WHILE F < B

    IF F >=A THEN

        D = D + 1

    END IF

    K = K + 1

    F = F * K

WEND

PRINT D

END

a = int(input())

b = int(input())

f = 1

k = 0

d = 0

while f < b:

    if f >= a:

        d += 1

    k += 1

    f *= k

print(d)

ПаскальАлгоритмический язык

var a, b, k, f, d: integer;

begin

    read(a, b);

    f := 1;

    k := 0;

    d := 0;

    while f < b do begin

        if f >= a then

            d := d + 1;

        k := k + 1;

        f := f * k

    end;

    writeln(d)

end.

алг

нач

    цел a, b, k, f, d

    ввод a, b

    f := 1

    k := 0

    d := 0

    нц пока f < b

        если f >=a

            то d := d + 1

        все

        k := k + 1

        f := f * k

    кц

    вывод d

кон

С++

#include <iostream>

using namespace std;

int main(){

    int a, b, k, f, d;

    cin >> a >> b;

    f = 1;

    k = 0;

    d = 0;

    while (f < b) {

        if (f >= a)

            ++d;

        ++k;

        f *= k;

    }

    cout << d;

    return 0;

}

 

 

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе чисел 2 и 6.

2. Приведите пример входных данных, при которых программа выведет ответ, который больше правильного.

3. Найдите в программе все ошибки (известно, что их не больше двух) и исправьте их. Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.

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

Обратите внимание: Вам нужно исправить приведённую программу, а не написать свою. Вы можете только заменять ошибочные строки, но не можете удалять строки или добавлять новые. Заменять следует только ошибочные строки: за исправления, внесённые в строки, не содержащие ошибок, баллы будут снижаться.

38.

Факториалом натурального числа N (обозначается N!) называется произведение всех натуральных чисел от 1 до N. Например, 4! = 1 · 2 · 3 · 4 = 24. Даны целые положительные числа A и B, 0 < AB. Необходимо найти количество таких натуральных K, для которых AK! ≤ B. Например, при A = 5, B = 25 ответ должен быть равен 2 (подходящие значения K — 3 и 4, их факториалы 6 и 24 попадают в заданный интервал). Для решения этой задачи ученик написал программу, но, к сожалению, его программа неправильная. Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

 

 

БейсикPython

DIM A, B, K, F, D AS INTEGER

INPUT A: INPUT B

F = 1

K = 1

D = 1

WHILE F <= B

    IF F >A THEN

        D = D + 1

    END IF

    K = K + 1

    F = F * K

WEND

PRINT D

END

a = int(input())

b = int(input())

f = 1

k = 1

d = 1

while f <= b:

    if f > a:

        d += 1

    k += 1

    f *= k

print(d)

ПаскальАлгоритмический язык

var a, b, k, f, d: integer;

begin

    read(a, b);

    f := 1;

    k := 1;

    d := 1;

    while f <= b do begin

        if f > a then

            d := d + 1;

        k := k + 1;

        f := f * k

    end;

    writeln(d)

end.

алг

нач

    цел a, b, k, f, d

    ввод a, b

    f := 1

    k := 1

    d := 1

    нц пока f <= b

        если f >a

            то d := d + 1

        все

        k := k + 1

        f := f * k

    кц

    вывод d

кон

С++

#include <iostream>

using namespace std;

int main(){

    int a, b, k, f, d;

    cin >> a >> b;

    f = 1;

    k = 1;

    d = 1;

    while (f <= b) {

        if (f > a)

            ++d;

        ++k;

        f *= k;

    }

    cout << d;

    return 0;

}

 

 

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе чисел 5 и 25.

2. Приведите пример входных данных, при которых программа выведет верный ответ.

3. Найдите в программе все ошибки (известно, что их не больше двух) и исправьте их. Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.

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

Обратите внимание: Вам нужно исправить приведённую программу, а не написать свою. Вы можете только заменять ошибочные строки, но не можете удалять строки или добавлять новые. Заменять следует только ошибочные строки: за исправления, внесённые в строки, не содержащие ошибок, баллы будут снижаться.

39.

Дано целое положительное число N ≥ 10. Необходимо найти наибольшую сумму двух соседних цифр в десятичной записи N. Например, для N = 2018 нужно получить ответ 9, а для N = 2010 ответ 2.

Для решения этой задачи ученик написал программу, но, к сожалению, его программа неправильная.

Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

 

 

БейсикPython

DIM N,M,D1,D2,S AS INTEGER

INPUT N

M = 0

D1 = 0

WHILE N > 9

    D2 = N MOD 10

    S = D1 + D2

    IF S > M THEN

        M = S

    END IF

    N = N \ 10

    D1 = N MOD 10

WEND

PRINT M

n = int(input())

m = 0

d1 = 0

while n>9:

    d2 = n % 10

    s = d1 + d2

    if s > m:

        m = s

    n //= 10

    d1 = n % 10

print(m)

ПаскальАлгоритмический язык

var n,m,d1,d2,s: integer;

begin

    readln(n);

    m := 0;

    d1 := 0;

    while n > 9 do begin

        d2 := n mod 10;

        s := d1 + d2;

        if s > m then

            m := s;

        n := n div 10;

        d1 := n mod 10

    end;

    writeln(m)

end.

алг

нач

    цел n,m,d1,d2,s

    ввод n

    m := 0

    d1 := 0

    нц пока n > 9

        d2 := mod(n,10)

        s := d1 + d2

        если s > m

            то m := s

        все

        n := div(n,10)

        d1 := mod(n,10)

    кц

    вывод m

кон

С++

#include <iostream>

using namespace std;

    int main() {

    int n,m,d1,d2,s;

    cin >> n;

    m = 0;

    d1 = 0;

    while (n > 9) {

        d2 = n % 10;

        s = d1 + d2;

        if (s > m)

            m = s;

        n /= 10;

        d1 = n % 10;

    }

    cout << m;

    return 0;

}

 

 

Последовательно выполните следующее.

 

1. Напишите, что выведет эта программа при вводе N = 2018.

2. Приведите пример числа N, при котором программа выведет верный ответ. Укажите этот ответ.

3. Найдите в программе все ошибки (известно, что их не больше двух) и исправьте их. Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.

 

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

Обратите внимание: Вам нужно исправить приведённую программу, а не написать свою. Вы можете только заменять ошибочные строки, но не можете удалять строки или добавлять новые. Заменять следует только ошибочные строки: за исправления, внесённые в строки, не содержащие ошибок, баллы будут снижаться.

40.

Дано целое положительное число N. Необходимо найти наибольшее количество подряд идущих единиц в десятичной записи N. Например, для N = 2019 нужно получить ответ 1, а для N = 21011 ответ 2.

Для решения этой задачи ученик написал программу, но, к сожалению, его программа неправильная.

Ниже эта программа для Вашего удобства приведена на пяти языках программирования

 

 

БейсикPython

DIM N, M, K AS INTEGER

INPUT N

M = 0

K = 0

WHILE N >= 10

    IF N MOD 10 = 1 THEN

        K = K + 1

    ELSE

        K = 1

    END IF

    IF K > M THEN

        M = M + 1

    END IF

    N = N \ 10

WEND

PRINT M

n = int(input())

m = 0

k = 0

while n>=10:

    if n % 10 == 1:

        k += 1

    else:

        k = 1

    if k > m:

        m += 1

    n //= 10

print(m)

ПаскальАлгоритмический язык

var n, m, k: integer;

begin

    readln(n);

    m := 0;

    k := 0;

    while n >= 10 do begin

        if n mod 10 = 1

            then k := k + 1

        else k := 1;

        if k > m then

            m := m + 1;

    n := n div 10;

    end;

    writeln(m)

end.

алг

нач

    цел n, m, k

    ввод n

    m := 0

    k := 0

    нц пока n >= 10

        если mod(n,10) = 1

            то k := k + 1

        иначе k := 1

        все

        если k > m

            то m := m + 1

        все

        n := div(n,10)

    кц

    вывод m

кон

С++

#include <iostream>

using namespace std;

int main() {

    int n, m, k;

    cin >> n;

    m = 0;

    k = 0;

    while (n >= 10) {

        if (n % 10 == 1)

            k += 1;

        else

            k = 1;

        if (k > m)

            m += 1;

        n /= 10;

    }

    cout << m;

    return 0;

}

 

 

Последовательно выполните следующее.

 

1. Приведите пример числа N, при котором программа выведет верный ответ. Укажите этот ответ.

2. Приведите пример числа N, при котором программа выведет неверный ответ. Укажите верный ответ и ответ программы.

3. Найдите в программе все ошибки (известно, что их не больше двух) и исправьте их. Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.

 

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

Обратите внимание: Вам нужно исправить приведённую программу, а не написать свою. Вы можете только заменять ошибочные строки, но не можете удалять строки или добавлять новые. Заменять следует только ошибочные строки: за исправления, внесённые в строки, не содержащие ошибок, баллы будут снижаться.

41.

Дано целое положительное число N ≥ 10. Необходимо найти наибольшую сумму двух соседних цифр в десятичной записи N. Например, для N = 2018 нужно получить ответ 9, а для N = 2010 ответ 2.

Для решения этой задачи ученик написал программу, но, к сожалению, его программа неправильная.

Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

 

 

БейсикPython

DIM N,M,D1,D2,S AS INTEGER

INPUT N

M = 0

D1 = N MOD 10

WHILE N > 0

    D2 = N MOD 10

    S = D1 + D2

    IF S > M THEN

        M = S

    END IF

    D1 = N MOD 10

    N = N \ 100

WEND

PRINT M

n = int(input())

m = 0

d1 = n%10

while n>0:

    d2 = n % 10

    s = d1 + d2

    if s > m:

        m = s

    d1 = n%10

    n //= 100

print(m)

ПаскальАлгоритмический язык

var n,m,d1,d2,s: integer;

begin

    readln(n);

    m := 0;

    d1 := n mod 10;

    while n > 0 do begin

        d2 := n mod 10;

        s := d1 + d2;

        if s > m then

            m := s;

        d1 := n mod 10;

        n := n div 100

    end;

    writeln(m)

end.

алг

нач

    цел n,m,d1,d2,s

    ввод n

    m := 0

    d1 := mod(n,10)

    нц пока n > 0

        d2 := mod(n,10)

        s := d1 + d2

        если s > m

            то m := s

        все

        d1 := mod(n,10)

        n := div(n,100)

    кц

    вывод m

кон

С++

#include <iostream>

using namespace std;

int main() {

    int n,m,d1,d2,s;

    cin >> n;

    m = 0;

    d1 = n % 10;

    while (n > 0) {

        d2 = n % 10;

        s = d1 + d2;

        if (s > m)

            m = s;

        d1 = n % 10;

        n /= 100;

    }

    cout << m;

    return 0;

}

 

 

Последовательно выполните следующее.

 

1. Напишите, что выведет эта программа при вводе N = 2018.

2. Приведите пример числа N, при котором программа выведет верный ответ. Укажите этот ответ.

3. Найдите в программе все ошибки (известно, что их не больше двух) и исправьте их. Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.

 

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

Обратите внимание: Вам нужно исправить приведённую программу, а не написать свою. Вы можете только заменять ошибочные строки, но не можете удалять строки или добавлять новые. Заменять следует только ошибочные строки: за исправления, внесённые в строки, не содержащие ошибок, баллы будут снижаться.