СДАМ ГИА: РЕШУ ЕГЭ
Образовательный портал для подготовки к экзаменам
Информатика
≡ информатика
сайты - меню - вход - новости




Каталог заданий.
Решение уравнений и неравенств

Пройти тестирование по этим заданиям
Вернуться к каталогу заданий
Версия для печати и копирования в MS Word
1
Задание 24 № 3646

Требовалось написать программу, которая решает неравенство «(x - а) / (bx) > 0» относительно x для любых ненулевых чисел а и 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
Задание 24 № 7935

Для заданного положительного вещественного числа 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
Задание 24 № 8000

Для заданного положительного вещественного числа 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
Задание 24 № 9208

Для заданного положительного вещественного числа 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
Задание 24 № 9316

Для заданного положительного вещественного числа 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
Задание 24 № 9774

Дано целое положительное число 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
Задание 24 № 9810

Дано целое положительное число 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
Задание 24 № 3649

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

 

 

Бейсик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
Задание 24 № 3652

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

 

 

БейсикPython

INPUT а, b, х

IF а = 0 THEN

IF b > 0 THEN

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

ELSE

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

ENDIF

ELSE

PRINT -a,"< x < 0"

a,b,x = int(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
Задание 24 № 3637

Требовалось написать программу, которая решает неравенство «(ах) / (х + 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
Задание 24 № 3640

Требовалось написать программу, которая решает уравнение «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, b, x = int(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
Задание 24 № 10300

Даны целые положительные числа 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. Найдите в программе все ошибки (их может быть одна или несколько).

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

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

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

 

Замечание.


Аналоги к заданию № 10300: 10327 Все


13
Задание 24 № 10398

Дано целое положительное число 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
Задание 24 № 10425

Дано целое положительное число 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
Задание 24 № 11253

Дано целое неотрицательное число 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
Задание 24 № 11280

Дано целое неотрицательное число 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
Задание 24 № 11320

Ученик написал программу, определяющую, какой степенью числа 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. Исправьте программу. Запишите ошибочную строку, затем исправленный вариант. Помните, что нужно исправить имеющуюся программу, а не писать свою, хоть и с лучшим алгоритмом.

Источник: ЕГЭ 16.06.2016 по информатике. Основная волна. Вариант 41 (Часть С)

18
Задание 24 № 11324

Ученик написал программу, определяющую, какой степенью числа 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. Исправьте программу. Запишите ошибочную строку, затем исправленный вариант. Помните, что нужно исправить имеющуюся программу, а не писать свою, хоть и с лучшим алгоритмом'

Источник: ЕГЭ 16.06.2016 по информатике. Основная волна. Вариант 52 (Часть С)

19
Задание 24 № 11329

Дано целое положительное число 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. Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.

Источник: ЕГЭ 16.06.2016 по информатике. Основная волна. Вариант 77 (Часть С)

20
Задание 24 № 11333

Дано целое положительное число 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. Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.

Источник: ЕГЭ 16.06.2016 по информатике. Основная волна. Вариант 66 (Часть С)

21
Задание 24 № 11360

Дано целое положительное число 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. Найдите в программе все ошибки (их может быть одна или несколько).

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

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

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

Источник: Де­мон­стра­ци­он­ная вер­сия ЕГЭ—2017 по информатике.

22
Задание 24 № 13420

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

Источник: Тренировочная работа по ИНФОРМАТИКЕ 11 класс 18 января 2017 года Вариант ИН10303

23
Задание 24 № 13473

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

Источник: Тренировочная работа по ИНФОРМАТИКЕ 11 класс 18 января 2017 года Вариант ИН10304
Пояснение · ·

24
Задание 24 № 13500

Даны натуральные числа 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. Найдите в программе все ошибки (их может быть одна или несколько).

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

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

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

Источник: Тренировочная работа по ИНФОРМАТИКЕ 11 класс 29 ноября 2016 года Вариант ИН10203

25
Задание 24 № 13527

Даны натуральные числа 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. Найдите в программе все ошибки (их может быть одна или несколько).

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

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

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

Источник: Тренировочная работа по ИНФОРМАТИКЕ 11 класс 29 ноября 2016 года Вариант ИН10204

26
Задание 24 № 13608

Дано натуральное число 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. Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде. Достаточно указать ошибки и способ их исправления для одного языка программирования.

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

Источник: Тренировочная работа по ИНФОРМАТИКЕ 11 класс 12 мая 2017 года Вариант ИН10503

27
Задание 24 № 13635

Дано натуральное число 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. Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде. Достаточно указать ошибки и способ их исправления для одного языка программирования.

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

Источник: Тренировочная работа по ИНФОРМАТИКЕ 11 класс 12 мая 2017 года Вариант ИН10504

28
Задание 24 № 14239

Даны целые числа 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
Задание 24 № 14283

Даны целые числа 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
Задание 24 № 14710

Факториалом натурального числа 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. Найдите в программе все ошибки (их может быть одна или несколько).

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

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

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

Источник: СтатГрад: Тре­ни­ро­воч­ная ра­бо­та 28.11.2017 ИН10203

31
Задание 24 № 14785

Факториалом натурального числа 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
Задание 24 № 15119

Факториалом натурального числа 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
Задание 24 № 15146

Факториалом натурального числа 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
Задание 24 № 15640

На вход программы поступают 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) укажите, как исправить ошибку, т. е. приведите правильный вариант строки.

Источник: ЕГЭ — 2018. До­сроч­ная волна. Вариант 1., ЕГЭ — 2018. До­сроч­ная волна. Вариант 2.

35
Задание 24 № 16399

Факториалом натурального числа 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
Задание 24 № 16453

Факториалом натурального числа 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;

    end;

    if f−a > a − f div k

        then f := f div k;

        k := k − 1;

    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
Задание 24 № 17342

Факториалом натурального числа 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
Задание 24 № 17388

Факториалом натурального числа 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. Найдите в программе все ошибки (известно, что их не больше двух) и исправьте их. Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.

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

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


Пройти тестирование по этим заданиям