≡ информатика
сайты - меню - вход - новости




Варианты заданий

Последовательности чисел

Версия для печати и копирования в MS Word
1
Задание 24 № 8672

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

 

Бейсик Python

count = 0

p = 0

FOR I = 1 TO 4

    INPUT x

    IF x >= 0 THEN

        p = p*x

        count = count + 1

    END IF

NEXT I

IF count > 0 THEN

    PRINT x

    PRINT p

ELSE

    PRINT "NO"

END IF

count = 0

p = 0

for i in range(1, 5):

    x = int(input())

    if x >= 0:

        p = p*x

        count = count + 1

if count > 0:

    print(x)

    print(p)

else:

    print("NO")

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

алг

нач

    цел p,i,x,count

    count := 0

    p := 0

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

        ввод x

        если x >= 0 то

            p := p*x

            count := count+1

        все

    кц

    если count > 0 то

        вывод x, нс

        вывод p

    иначе

        вывод "NO"

    все

кон

var p,i,x,count: integer;

begin

    count := 0;

    p := 0;

    for i := 1 to 4 do

    begin

        read (x);

        if x >= 0 then begin

            p := p*x;

            count := count+1;

        end

    end;

    if count > 0 then

    begin

        writeln(х);

        writeln(p);

    end

    else

        writeln('NO');

end.

Си++

#include <iostream>

using namespace std;

int main(void)

{

    int p, i, x, count;

    count = 0;

    p = 0;

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

    {

        cin >> x;

        if (x >= 0)

        {

            p = p*x;

            count = count+1;

        }

    }

    if (count > 0)

    {

        cout << x;

        cout << p;

    }

    else

        cout << "NO\n";

    }

 

 

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

1. Напишите, что выведет эта программа при вводе последовательности -5 2 1 3.

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

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

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

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

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

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

Исправление ошибки должно затрагивать только строку, в которой находится ошибка.

Пояснение · ·

2
Задание 24 № 9176

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

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

 

Бейсик Python

mx = 0

s = 0

FOR I = 1 TO 4

    INPUT x

    IF x < 0 THEN

        s = x

    END IF

    IF x > mx THEN

        mx = x

    END IF

NEXT I

PRINT s

PRINT mx

mx = 0

s = 0

for i in range(1, 5):

    x = int(input())

    if x < 0:

        s = x

    if x > mx:

        mx = x

print(s)

print(mx)

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

алг

нач

    цел s,i,x,mx

    mx := 0

    s := 0

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

        ввод x

        если x < 0 то

            s := x

        все

        если x > mx то

            mx := x

        все

    кц

вывод s, нс

вывод mx

кон

var s,i,x,mx: integer;

begin

    mx := 0;

    s := 0;

    for i := 1 to 4 do

    begin

        read (x);

        if x < 0 then

            s := x;

        if x > mx then

            mx := x;

    end;

    writeln(s);

    writeln(mx);

end.

Си++

#include <iostream>

using namespace std;

int main(void)

{

    int s, i, x, mx;

    mx = 0;

    s = 0;

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

    {

        cin >> x;

        if (x < 0)

        {

            s = x;

        }

        if (x > mx)

        {

            mx = x;

        }

    }

    cout << s;

    cout << mx;

}

 

 

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

1. Напишите, что выведет эта программа при вводе последовательности -5 2 -4 3.

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

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

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

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

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

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

Исправление ошибки должно затрагивать только строку, в которой находится ошибка.


3
Задание 24 № 6903

Требовалось написать программу, при выполнении которой с клавиатуры вводится последовательность из шести неотрицательных целых чисел, не превышающих 106, подсчитывается и выводится сумма введённых чётных чисел или 0, если чётных чисел в последовательности нет. Ученик написал такую программу:

 

БейсикПаскаль

DIM N, S AS LONG

DIM I AS INTEGER

S = 1

FOR I = 1 TO 6

INPUT N

IF I MOD 2 = 0 THEN

S = S + N

END IF

NEXT I

PRINT S

END

var n, s: longint;

i: integer;

begin

s:=1;

for i:=1 to 6 do begin

readln(n);

if i mod 2 = 0 then

s := s + n;

end;

write(s);

end.

Си++Алгоритмический

#include <iostream>

using namespace std;

int main(){

long int n, s;

int i;

s = 1;

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

cin >> n;

if (i%2 == 0)

s = s + n;

}

cout << s;

}

алг

нач

цел n, s

цел i

s := 1

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

ввод n

если mod(i,2) = 0

то s := s + n

все

кц

вывод s

кон

Python

s = 1

for i in range(1, 7):

    n = int(input())

        if i % 2 == 0:

            s = s + n

print(s)

 

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

1. Напишите, что выведет эта программа при вводе последовательности 1, 1, 2, 3, 5, 8.

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

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

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


4
Задание 24 № 7469

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

 

 

БейсикPython

CONST n = 4

count = 0

maximum = 999

FOR I = 1 TO n

INPUT x

IF x mod 2 <> 0 THEN

count = count + 1

IF x > maximum THEN

maximum = I

END IF

END IF

NEXT I

IF count > 0 THEN

PRINT count

PRINT maximum

ELSE

PRINT "NO"

END IF

n = 4

count = 0

maximum = 999

for i in range(1, n + 1):

    x = int(input())

    if x % 2 != 0:

        count += 1

        if x > maximum:

            maximum = i

if count > 0:

    print(count)

    print(maximum)

else:

    print("NO")

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

const n = 4;

var i, x: integer;

var maximum, count: integer;

begin

count := 0;

maximum := 999;

for i := 1 to n do

begin

read(x);

if x mod 2 <> 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.

алг

нач

цел n = 4

цел i, x

цел maximum, count

count := 0

maximum := 999

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

ввод x

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

count := count + 1

если x > maximum то

maximum := i

все

все

кц

если count > 0 то

вывод count, нс

вывод maximum

иначе

вывод "NO"

все

кон

Си++

#include <iostream>

using namespace std;

int main(void)

{

const int n = 4;

int i, x, maximum, count;

count = 0;

maximum = 999;

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

cin >> x;

if (x % 2 != 0) {

count++;

if (x > maximum)

maximum = i;

}

}

if (count > 0) {

cout << count;

cout << maximum;

}

else

cout << "NO\n";

}

 

 

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

1. Напишите, что выведет эта программа при вводе последовательности: 2 9 4 3

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

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

 

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

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

 

 

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

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

5
Задание 24 № 11125

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

 

 

БейсикPython

CONST n = 4

count = 0

maximum = 1000

FOR I = 1 TO n

  INPUT x

    IF x mod 2 = 0 THEN

      count = count + 1

    IF x > maximum THEN

      maximum = I

    END IF

  END IF

NEXT I

IF count > 0 THEN

  PRINT count

  PRINT maximum

ELSE

  PRINT "NO"

END IF

n = 4

count = 0

maximum = 1000

for i in range (1, n+1):

    x = int(input())

    if x % 2 == 0:

        count += 1

        if x > maximum:

            maximum = i

if count > 0:

    print (count)

    print (maximum)

else:

    print ("NO")

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

алг

нач

  цел n = 4

  цел i, x

  цел maximum, count

  count := 0

  maximum := 1000

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

    ввод x

    если mod(x, 2) = 0 то

      count := count + 1

      если x > maximum то

        maximum := i

      все

    все

  кц

  если count > 0 то

    вывод count, нс

в    ывод maximum

  иначе

    вывод "NO"

  все

кон

const n = 4;

var i, x: integer;

var maximum, count: integer;

begin

  count := 0;

  maximum := 1000;

  for i := 1 to n do

  begin

    read(x);

    if x mod 2 = 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.

Си++

#include <iostream>

using namespace std;

#define n 4

int main(void)

{

  int i, x;

  int maximum, count;

  count = 0;

  maximum = 1000;

  for (i = 1; i <= n; i++)

  {

    cin >> x;

    if (x % 2 == 0)

    {

      count++;

      if (x > maximum)

        maximum = i;

    }

  }

  if (count > 0)

  {

    cout << count << endl;

    cout << maximum << endl;

  }

  else

    cout << "NO\n";

}

 

 

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

1. Напишите, что выведет эта программа при вводе последовательности: 2 9 4 3

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

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

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

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

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

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

 

Примечание. 0 – чётное число.

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

6
Задание 24 № 15864

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

 

БейсикPython

CONST n = 4

count = 0

maximum = 1000

FOR I = 1 TO n

    INPUT x

    IF X MOD 4 = 0 THEN

        count = count + 1

        IF x < maximum THEN

            maximum = x

        END IF

    END IF

NEXT I

IF count > 0 THEN

    PRINT count

    PRINT maximum

ELSE

    PRINT “NO”

END IF

n = 4

count = 0

maximum = 1000

for i in range(1, n + 1):

    x = int(input())

    if x % 4 == 0:

        count += 1

        if x < maximum:

            maximum = x

if count > 0:

    print(count)

    print(maximum)

else:

    print("NO")

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

const n = 4;

var i, x: integer;

var maximum, count: integer;

begin

     count := 0;

    maximum := 1000;

    for i:=1 to n do begin

         read(x);

         if x mod 4 = 0 then begin

            count := count + 1;

             if x < maximum then

                 maximum := x;

            end;

         end;

     if count > 0 then begin

        writeln(count);

        writeln(maximum);

    end

    else

        writeln('NO');

end.

алг

нач

    цел n = 4

    цел i, x

    цел maximum, count

    count := 0

    maximum := 1000

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

        ввод x

        если mod(x, 4) == 0 то

            count := count + 1

            если x < maximum то

                maximum := x

            все

        все

    кц

    если count > 0 то

        вывод count, нс

        вывод maximum

    иначе

        вывод "NO"

    все

кон

Си++

#include <iostream>

using namespace std;

 

int main(){

    const int n = 4;

    int x, maximum, count;

    count = 0;

    maximum = 1000;

    for (int i = 1; i <= n; i++) {

        cin >> x;

        if ( x % 4 == 0 ) {

            count++;

            if ( x < maximum )

                maximum = x;

        }

    }

    if ( count > 0 ) {

        cout << count << endl;

        cout << maximum;

    else

        cout << "NO";

    return 0;

}

 

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

1. Напишите, что выведет эта программа при вводе последовательности: 2 8 4 3.

2. Приведите пример такой последовательности, содержащей хотя бы одно делящееся нацело на 4 число, что при её вводе приведённая программа, несмотря на ошибки, выведет правильный ответ.

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

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

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

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

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

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

Примечание. 0 делится на любое натуральное число.

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

Решение уравнений и неравенств

Версия для печати и копирования в 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 № 13370

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

Напоминание: 0 делится на любое натуральное число.

 

БейсикPython

DIM N, DIGIT, SUM AS LONG

INPUT N

SUM = N MOD 10

WHILE N > 0

    DIGIT = N MOD 10

    IF DIGIT MOD 3 > 0 THEN

        SUM = DIGIT

    END IF

    N = N \ 10

WEND

IF SUM > 0 THEN

    PRINT SUM

ELSE

    PRINT "NO"

END IF

N = int(input())

sum = N % 10

while N > 0:

    digit = N % 10

    if digit % 3 > 0:

        sum = digit

    N = N // 10

if sum > 0:

    print(sum)

else:

    print("NO")

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

var N, digit, sum: longint;

begin

    readln(N);

    sum := N mod 10;

    while N > 0 do

    begin

        digit := N mod 10;

        if digit mod 3 > 0 then

            sum := digit;

        N := N div 10;

    end;

    if sum > 0 then

        writeln(sum)

    else

        writeln('NO')

end.

алг

нач

    цел N, digit, sum

    ввод N

    sum := mod(N,10)

    нц пока N > 0

        digit := mod(N,10)

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

            sum := digit

        все

        N := div(N,10)

    кц

    если sum > 0 то

        вывод sum

    иначе

        вывод "NO"

    все

кон

Си++

#include <iostream>

using namespace std;

int main()

{

    int N, digit, sum;

    cin >> N;

    sum = N % 10;

    while (N > 0)

    {

        digit = N % 10;

        if (digit % 3 > 0)

            sum = digit;

        N = N / 10;

    }

    if (sum > 0)

        cout << sum << endl;

    else

        cout << "NO"<< endl;

    return 0;

}

 

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

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

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

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

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

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

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

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

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

23
Задание 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

24
Задание 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
Пояснение · ·

25
Задание 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

26
Задание 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

27
Задание 24 № 13554

Дано натуральное число N > 10, в десятичной записи которого нет нулей. Необходимо определить минимальное двузначное число, которое можно увидеть в десятичной записи N. Например, для N=1984 нужно получить результат 19, а для N = 271 828 — результат 18.

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

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

 

БейсикPython

DIM N, K AS INTEGER

INPUT N

K = 100

WHILE N > 100

  IF N MOD 100 < K THEN

    K = N MOD 100

  END IF

  N = N \ 100

WEND

PRINT K

END

n = int(input())

k = 100

while n > 100:

    if n%100 < k:

        k = n%100

    n = n // 100

print(k)

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

var n, k: integer;

begin

  read(n);

  k := 100;

  while n > 100 do begin

    if n mod 100 < k

      then k := n mod 100;

    n := n div 100;

  end;

  writeln(k)

end.

алг

нач

  цел n, k

  ввод n

  k := 100

  нц пока n > 100

    если mod(n,100) < k

      то k:=mod(n,100)

    все

    n:=div(n,100)

  кц

  вывод k

кон

Си++

#include <iostream>

using namespace std;

int main(){

    int n, k;

    cin >> n;

    k = 100;

    while (n > 100) {

      if (n%100 < k)

        k = n%100;

      n = n/100;

    }

    cout « k « endl;

    return 0;

}

 

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

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

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

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

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

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

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

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

28
Задание 24 № 13581

Дано натуральное число N > 10, в десятичной записи которого нет нулей.

Необходимо определить максимальное двузначное число, которое можно увидеть в десятичной записи N. Например, для N = 1984 нужно получить результат 98, а для N = 271 828 — результат 82. Для решения этой задачи ученик написал программу, но, к сожалению, его программа неправильная.

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

 

БейсикPython

DIM N, K AS INTEGER

INPUT N

K = 0

WHILE N > 100

  IF N MOD 100 > K THEN

    K = N MOD 100

  END IF

  N = N \ 100

WEND

PRINT K

END

n = int(input())

k = 0

while n > 100:

  if n%100 > k:

    k = n%100

  n = n // 100

print(k)

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

var n, k: integer;

begin

  read(n);

  k := 0;

  while n > 100 do begin

    if n mod 100 > k

      then k := n mod 100;

    n := n div 100;

  end;

  writeln(k)

end.

алг

нач

  цел n, k

  ввод n

  k := 0

  нц пока n > 100

    если mod(n,100) > k

      то k:=mod(n,100)

    все

    n:=div(n,100)

  кц

  вывод k

кон

Си++

#include <iostream>

using namespace std;

int main(){

  int n, k;

  cin >> n;

k = 0;

  while (n > 100) {

    if (n%100 > k)

      k = n%100;

    n = n/100;

  }

  cout « k « endl;

  return 0;

}

 

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

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

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

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

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

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

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

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

29
Задание 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

30
Задание 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

31
Задание 24 № 13751

На обработку поступает натуральное число, не превышающее 109. Нужно написать программу, которая выводит на экран максимальную цифру числа, кратную 5. Если в числе нет цифр, кратных 5, требуется на экран вывести «NO». Программист написал программу неправильно. Ниже эта программа для Вашего удобства приведена на пяти языках программирования. Напоминание: 0 делится на любое натуральное число.

 

БейсикPython

DIM N, DIGIT, MAXDIGIT AS LONG

INPUT N

MAXDIGIT = N MOD 10

WHILE N > 0

    DIGIT = N MOD 10

    IF DIGIT MOD 5 = 0 THEN

        IF DIGIT > MAXDIGIT THEN

            MAXDIGIT = DIGIT

        END IF

    END IF

    N = N \ 10

WEND

IF MAXDIGIT = 0 THEN

    PRINT "NO"

ELSE

    PRINT MAXDIGIT

END IF

N = int(input())

maxDigit = N % 10

while N > 0:

    digit = N % 10

    if digit % 5 == 0:

        if digit > maxDigit:

            maxDigit = digit

    N = N // 10

if maxDigit == 0:

    print("NO")

else:

    print(maxDigit)

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

var N,digit,maxDigit: longint;

begin

    readln(N);

    maxDigit := N mod 10;

    while N > 0 do

    begin

        digit := N mod 10;

        if digit mod 5 = 0 then

            if digit > maxDigit then

                maxDigit := digit;

        N := N div 10;

    end;

    if maxDigit = 0 then

        writeln('NO')

    else

        writeln(maxDigit)

end.

алг

нач

    цел N, digit, maxDigit

    ввод N

    maxDigit := mod(N,10)

    нц пока N > 0

        digit := mod(N,10)

        если mod(digit, 5) = 0 то

            если digit > maxDigit то

                maxDigit := digit

            все

        все

        N := div(N,10)

    кц

    если maxDigit = 0 то

        вывод "NO"

    иначе

        вывод maxDigit

    все

кон

Си++

#include <iostream>

using namespace std;

 

int main() {

        long N, digit, maxDigit;

        cin >> N;

        maxDigit = N % 10;

        while (N > 0) {

            digit = N % 10;

            if (digit % 5 == 0)

                if (digit > maxDigit)

                    maxDigit = digit;

            N = N / 10;

        }

        if (maxDigit == 0)

            cout << "NO" << endl;

        else

            cout << maxDigit << endl;

        return 0;

}

 

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

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

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

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

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

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

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

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

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

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

 

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

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

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


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

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

 

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

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


34
Задание 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

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

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

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

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


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

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

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


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

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

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


38
Задание 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.

39
Задание 24 № 15809

В натуральном числе N (0 < N < 109) необходимо подсчитать количество цифр десятичной записи, чётность которых совпадает с чётностью последней цифры числа N. Например, для N = 123 должен получиться ответ 2 (последняя цифра числа нечётная, а всего в записи числа две нечётные цифры: 1 и 3).

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

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

 

 

БейсикPython

DIM N, K, D AS INTEGER

INPUT N

K = 0

D = N MOD 2

WHILE N > 1

    IF N MOD 10 = D THEN

        K = K + 1

    END IF

    N = N \ 10

WEND

PRINT K

END

N = int(input())

k = 0

d = N % 2

while N > 1:

    if N % 10 == d:

        k += 1

    N = N // 10

print(k)

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

var N, k, d: integer;

begin

    read(N);

    k := 0;

    d := N mod 2;

    while N > 1 do begin

        if N mod 10 = d

            then k := k + 1;

        N := N div 10

    end;

    writeln(k)

end.

алг

нач

    цел N, k, d

    ввод N

     k := 0

     d := mod(N,2)

     нц пока N > 1

        если mod(N,10) = d

            то k := k + 1

        все

        N := div(N,10)

     кц

     вывод k

кон

С++

#include <iostream>

using namespace std;

int main(){

     nt N, k, d;

    cin >> N;

    k = 0;

    d = N % 2;

    while (N > 1) {

        if (N % 10 == d)

        ++k;

    N = N / 10;

    }

    cout << k;

    return 0;

}

 

 

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

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

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

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

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

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


40
Задание 24 № 15836

В натуральном числе N (0 < N < 109) необходимо подсчитать количество цифр десятичной записи, чётность которых совпадает с чётностью последней цифры числа N. Например, для N = 123 должен получиться ответ 2 (последняя цифра числа нечётная, а всего в записи числа две нечётные цифры: 1 и 3).

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

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

 

 

БейсикPython

DIM N, K, D AS INTEGER

INPUT N

K = 0

D = N MOD 10

WHILE N > 0

    IF N MOD 2 = D THEN

        K = K + D

    END IF

    N = N \ 10

WEND

PRINT K

END

N = int(input())

k = 0

d = N % 10

while N > 0:

    if N % 2 == d:

        k += d

    N = N // 10

print(k)

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

var N, k, d: integer;

begin

    read(N);

    k := 0;

    d := N mod 10;

    while N > 0 do begin

        if N mod 2 = d

            then k := k + d;

        N := N div 10

    end;

    writeln(k)

end.

алг

нач

    цел N, k, d

    ввод N

     k := 0

     d := mod(N,10)

     нц пока N > 0

        если mod(N,10) = d

            то k := k + d

        все

        N := div(N,10)

     кц

     вывод k

кон

С++

#include <iostream>

using namespace std;

int main(){

     nt N, k, d;

    cin >> N;

    k = 0;

    d = N % 10;

    while (N > 0) {

        if (N % 2 == d)

        k = k + d;

    N = N / 10;

    }

    cout << k;

    return 0;

}

 

 

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

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

2. Назовите минимальное трёхзначное N, при котором программа выведет верный ответ.

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

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

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


41
Задание 24 № 15934

Дано натуральное число N (N ≤ 109). Необходимо найти и вывести наибольшую чётную цифру в десятичной записи N или вывести сообщение «NO», если таких цифр нет.

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

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

 

 

БейсикPython

DIM N, D, M, T AS INTEGER

INPUT N

T = 0

M = T

WHILE N > 1

    D = N MOD 10

    IF D MOD 2 = 0 AND D > M THEN

        M = M + D

    END IF

    N = N \ 10

WEND

IF M = T THEN

    PRINT "NO"

ELSE

    PRINT M

END IF

END

N = int(input())

t = 0

m = t

while N > 1:

    d = N % 10

    if d%2 == 0 and d > m:

        m = m + d

    N = N // 10

if m == t:

    print("NO")

else:

    print(m)

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

var N, d, m, t: integer;

begin

    read(N);

    t := 0;

    m := t;

    while N > 1 do begin

        d := N mod 10;

        if (d mod 2 = 0) and (d>m)

            m := m + d;

        N := N div 10

    end;

    if m = t

        then writeln('NO')

        else writeln(m)

end.

алг

нач

    цел N, d, m, t

    ввод N

     t := 0

     m := t

     нц пока N > 1

        d := mod(N,10)

        если mod(d,2)=0 и d>m то

            m := m + d

        все

        N := div(N,10)

     кц

     если m = t

        то вывод "NO"

        иначе вывод m

    все

кон

С++

#include <iostream>

using namespace std;

int main(){

    int N, d, m, t;

    cin >> N;

    t = 0;

    m = t;

    while (N > 1) {

        d = N % 10;

        if (d % 2 == 0 && d > m)

            m = m + d;

        N = N / 10;

    }

    if (m == t)

        cout >> "NO";

    else

        cout << m;

    return 0;

}

 

 

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

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

2. Какое наибольшее число может стать результатом работы этой программы? Приведите пример числа N, при вводе которого программа выведет такой ответ.

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

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

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


42
Задание 24 № 15961

Дано натуральное число N (N ≤ 109). Необходимо найти и вывести наибольшую нечётную цифру в десятичной записи N или вывести сообщение «NO», если таких цифр нет.

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

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

 

 

БейсикPython

DIM N, D, M, T AS INTEGER

INPUT N

T = 0

M = T

WHILE N > 1

    D = N MOD 10

    IF D MOD 2 = 1 OR D > M THEN

        M = D

    END IF

    N = N \ 10

WEND

IF M = T THEN

    PRINT "NO"

ELSE

    PRINT M

END IF

END

N = int(input())

t = 0

m = t

while N > 1:

    d = N % 10

    if d%2 == 1 or d > m:

        m = d

    N = N // 10

if m == t:

    print("NO")

else:

    print(m)

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

var N, d, m, t: integer;

begin

    read(N);

    t := 0;

    m := t;

    while N > 1 do begin

        d := N mod 10;

        if (d mod 2 = 1) or (d>m)

            m := d;

        N := N div 10

    end;

    if m = t

        then writeln('NO')

        else writeln(m)

end.

алг

нач

    цел N, d, m, t

    ввод N

     t := 0

     m := t

     нц пока N > 1

        d := mod(N,10)

        если mod(d,2)=1 или d>m то

            m := d

        все

        N := div(N,10)

     кц

     если m = t

        то вывод "NO"

        иначе вывод m

    все

кон

С++

#include <iostream>

using namespace std;

int main(){

    int N, d, m, t;

    cin >> N;

    t = 0;

    m = t;

    while (N > 1) {

        d = N % 10;

        if (d % 2 == 1 || d > m)

            m = d;

        N = N / 10;

    }

    if (m == t)

        cout << "NO";

    else

        cout << m;

    return 0;

}

 

 

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

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

2. Какое наменьшее число может стать результатом работы этой программы? Приведите пример числа N, при вводе которого программа выведет такой ответ.

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

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

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


43
Задание 24 № 15992

Дано натуральное число N (1 ≤ N ≤ 109). Необходимо найти и вывести наименьшую нечётную цифру в десятичной записи N или вывести сообщение «NO», если таких цифр нет.

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

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

 

 

БейсикPython

DIM N, DIGIT, MINDIGIT AS INTEGER

INPUT N

MINDIGIT = N MOD 10

WHILE N > 0

    DIGIT = N MOD 10

    IF DIGIT MOD 2 <> 0 THEN

        IF DIGIT < MINDIGIT THEN

            DIGIT = MINDIGIT

        END IF

    END IF

    N = N \ 10

WEND

IF MINDIGIT <= 9 THEN

    PRINT MINDIGIT

ELSE

    PRINT "NO"

END IF

END

n = int(input())

mindigit = n%10

while n > 0:

    digit = n % 10

    if digit%2 <> 0:

        if digit < mindigit:

            digit = mindigit

    N = N // 10

if mindigit <= 9:

    print(mindigit)

else:

    print("NO")

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

var n, digit, mindigit: integer;

begin

    read(n);

    mindigit := n mod 10;

    while N > 0 do begin

        digit := n mod 10;

        if (digit mod 2 <> 0) then

            if digit < mindigit then

                digit := mindigit;

        n := n div 10;

    end;

    if mindigit <= 9 then

        then writeln(mindigit)

        else writeln('No')

end.

алг

нач

    цел n, digit, mindigit

    ввод n

    mindigit := mod(n,10)

     нц пока n > 0

        digit := mod(n,10)

        если mod(digit,2)<>0 то

            если digit < mindigit то

                digit = mindigit

            все

        все

        n := div(n,10)

     кц

     если mindigit <= 9

        то вывод mindigit

        иначе вывод "NO"

    все

кон

С++

#include <iostream>

using namespace std;

int main(){

    int n, digit, mindigit;

    cin >> n;

    mindigit = n%10;

    while (n > 0) {

        digit = n%10;

        if (digit%2 <> 0)

            if (digit < mindigit)

                digit = mindigit;

        n = n / 10;

    }

    if (mindigit <= 9)

        cout << mindigit;

    else

        cout << "NO";

    return 0;

}

 

 

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

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

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

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

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

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

Источник: ЕГЭ по информатике 28.05.2018. Основная волна, вариант А. Имаева — «Котолис».

44
Задание 24 № 16051

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

 

БейсикPython

DIM N, DIGIT, MINDIGIT AS LONG

INPUT N

MINDIGIT = N MOD 10

WHILE N > 0

    DIGIT = N MOD 10

    IF DIGIT MOD 2 = 0 THEN

        IF DIGIT < MINDIGIT THEN

            MINDIGIT = DIGIT

        END IF

    END IF

    N = N \ 10

WEND

IF MINDIGIT = 0 THEN

    PRINT "NO"

ELSE

    PRINT MINDIGIT

END IF

N = int(input())

minDigit = N % 10

while N > 0:

    digit = N % 10

    if digit % 2 == 0:

        if digit < minDigit:

            minDigit = digit

    N = N // 10

if minDigit == 0:

    print("NO")

else:

    print(minDigit)

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

var N,digit,minDigit: longint;

begin

    readln(N);

    minDigit := N mod 10;

    while N > 0 do

    begin

        digit := N mod 10;

        if digit mod 2 = 0 then

            if digit < minDigit then

                minDigit := digit;

        N := N div 10;

    end;

    if minDigit = 0 then

        writeln('NO')

    else

        writeln(minDigit)

end.

алг

нач

    цел N, digit, minDigit

    ввод N

    minDigit := mod(N,10)

    нц пока N > 0

        digit := mod(N,10)

        если mod(digit, 2) = 0 то

            если digit < minDigit то

                minDigit := digit

            все

        все

        N := div(N,10)

    кц

    если minDigit = 0 то

        вывод "NO"

    иначе

        вывод minDigit

    все

кон

Си++

#include <iostream>

using namespace std;

 

int main() {

        long N, digit, minDigit;

        cin >> N;

        minDigit = N % 10;

        while (N > 0) {

            digit = N % 10;

            if (digit % 2 == 0)

                if (digit < minDigit)

                    minDigit = digit;

            N = N / 10;

        }

        if (minDigit == 0)

            cout << "NO" << endl;

        else

            cout << minDigit << endl;

        return 0;

}

 

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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


47
Задание 24 № 16827

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

 

 

БейсикPython

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

INPUT N

M = 10

WHILE N >= 10

    D1 = N \ 10

    D2 = N \ 10 MOD 10

    S = D1 + D2

    IF S < M THEN

        M = S

    END IF

    N = N \ 10

WEND

PRINT M

n = int(input())

m = 10

while n >= 10:

    d1 = n // 10

    d2 = n // 10 % 10

    s = d1 + d2

    if s < m:

        m = s

    n //= 10

print(m)

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

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

begin

    readln(n);

    m := 10;

    while n >= 10 do begin

        d1 := n div 10;

        d2 := n div 10 mod 10;

        s := d1 + d2;

        if s < m then

            m := s;

        n := n div 10

    end;

    writeln(m);

end.

алг

нач

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

    ввод n

    m := 10

    нц пока n >= 10

        d1 := div(n,10)

        d2 := mod(div(n,10),10)

        s := d1 + d2

        если s < m

            то m := s

        все

        n := div(n,10)

    кц

    вывод m

кон

С++

#include <iostream>

using namespace std;

int main(){

    int n,m,d1,d2,s;

    cin >> n;

    m = 10;

    while (n >= 10) {

        d1 = n / 10;

        d2 = n / 10 % 10;

        s = d1 + d2;

        if (s < m)

            m = s;

        n /= 10;

    }

    cout << m;

    return 0;

}

 

 

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

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

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

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

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

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


48
Задание 24 № 16900

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

 

 

БейсикPython

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

INPUT N

M = 0

WHILE N >= 10

    D1 = N MOD 10

    D2 = N MOD 100

    S = D1 + D2

    IF S > M THEN

        M = S

    END IF

    N = N \ 100

WEND

PRINT M

n = int(input())

m = 0

while n >= 10:

    d1 = n % 10

    d2 = n % 100

    s = d1 + d2

    if s > m:

        m = s

    n //= 100

print(m)

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

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

begin

    readln(n);

    m := 0;

    while n >= 10 do begin

        d1 := n mod 10;

        d2 := n mod 100;

        s := d1 + d2;

        if s > m then

            m := s;

        n := n div 100

    end;

    writeln(m);

end.

алг

нач

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

    ввод n

    m := 0

    нц пока n >= 10

        d1 := mod(n,10)

        d2 := mod(n,100)

        s := d1 + d2

        если s > m

            то m := s

        все

        n := div(n,100)

    кц

    вывод m

кон

С++

#include <iostream>

using namespace std;

int main(){

    int n,m,d1,d2,s;

    cin >> n;

    m = 0;

    while (n >= 10) {

        d1 = n % 10;

        d2 = n % 100;

        s = d1 + d2;

        if (s > m)

            m = s;

        n /= 100;

    }

    cout << m;

    return 0;

}

 

 

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

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

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

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

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

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

Числовая прямая

Версия для печати и копирования в MS Word
1
Задание 24 № 4568

Требовалось написать программу, при выполнении которой с клавиатуры считывается координата точки на прямой (x — действительное число) и определяется принадлежность этой точки одному из выделенных отрезков В и D (включая границы). Программист торопился и написал программу неправильно.

 

БейсикПаскаль

INPUT x

IF x>=-3 THEN

IF x<=9 THEN

IF x>1 THEN

PRINT "не принадлежит"

ELSE

PRINT "принадлежит"

ENDIF

ENDIF

ENDIF

END

var x: real;

begin

readln(x);

if x>=-3 then

if x<=9 then

if x>1 then

write('не принадлежит')

else

write('принадлежит')

end.

Си++Алгоритмический язык

int main(void)

{

float x;

cin >> x;

if(x>=-3)

if(x<=9)

if(x>1)

cout << "не принадлежит";

else

cout << "принадлежит";

}

алг

нач

вещ x

ввод x

если x>=-3 то

если x<=9 то

если x>1 то

вывод 'не принадлежит'

иначе

вывод 'принадлежит'

все

все

все

кон

Python

x = int(input())

if x >= -3:

    if x <= 9:

        if x > 1:

            print("не принадлежит")

        else:

            print("принадлежит")

 

 

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

1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A, B, C, D и E). Границы (точки –3, 1, 5 и 9) принадлежат заштрихованным областям (B и D соответственно).

В столбцах условий укажите «Да», если условие выполнится; «Нет», если условие не выполнится; «—» (прочерк), если условие не будет проверяться; «не изв.», если программа ведет себя по-разному для разных значений, принадлежащих данной области. В столбце «Программа выведет» укажите, что программа выведет на экран. Если программа ничего не выводит, напишите «—» (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите «не изв.». В последнем столбце укажите «Да» или «Нет».

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

 

ОбластьУсловие 1
(x >= –3)
Условие 2
(x <= 9)
Условие 3
(x > 1)
Программа выведетОбласть обрабатывается верно
A
B
C
D
E
Источник: Демонстрационная версия ЕГЭ—2013 по информатике.

2
Задание 24 № 7213

Требовалось написать программу, при выполнении которой с клавиатуры считывается координата точки на прямой (x – действительное число) и определяется принадлежность этой точки одному из выделенных отрезков В и D (включая границы). Программист торопился и написал программу неправильно. (Ниже для Вашего удобства программа представлена на четырёх языках программирования.)

 

БейсикПаскаль

INPUT x

IF x<=17 THEN

IF x<=5 THEN

IF x>=-1 THEN

PRINT "принадлежит"

ELSE

PRINT "не принадлежит"

ENDIF

ENDIF

ENDIF

END

var x: real;

begin

readln(x);

if x<=17 then

if x<=5 then

if x>=-1 then

write('принадлежит')

else

write('не принадлежит')

end.

Си++Алгоритмический

int main(void)

{

float x;

cin >> x;

if(x<=17)

if(x<=5)

if(x>=-1)

cout << "принадлежит";

else

cout << "не принадлежит";

}

алг

нач

вещ x

ввод x

если x<=17 то

если x<=5 то

если x>=-1 то

вывод 'принадлежит'

иначе

вывод 'не принадлежит'

все

все

все

кон

Python

x = int(input())

if x <= 17:

    if x <= 5:

        if x >= -1:

            print("принадлежит")

        else:

            print("не принадлежит")

 

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

1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A, B, C, D и E). Границы (точки –1, 5, 11 и 17) принадлежат заштрихованным областям (B и D соответственно).

 

ОбластьУсловие 1

(x<=17)

Условие 2

(x<=5)

Условие 3

(x>= –1)

Программа

выведет

Область

обрабатывается

верно

A
B
C
D
E

 

В столбцах условий укажите «да», если условие выполнится; «нет», если условие не выполнится; «—» (прочерк), если условие не будет проверяться; «не изв.», если программа ведёт себя по-разному для разных значений, принадлежащих данной области. В столбце «Программа выведет» укажите, что программа выведет на экран. Если программа ничего не выводит, поставьте «—» (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите «не изв.». В последнем столбце укажите «Да» или «Нет».

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

Источник: ЕГЭ по ин­фор­ма­ти­ке 05.05.2014. До­сроч­ная волна. Ва­ри­ант 1.
Пояснение · ·

3
Задание 24 № 4859

Требовалось написать программу, при выполнении которой с клавиатуры считывается координата точки на прямой (х — действительное число) и определяется принадлежность этой точки одному из выделенных отрезков (включая границы). Программист торопился и написал программу неправильно.

 

БэйсикПаскаль

INPUT х

IF х>=-7 OR х<=1 THEN

IF х>=-5 AND х<=5 THEN

IF х>=-1 AND x<=7 THEN

PRINT "принадлежит"

ELSE

PRINT "не принадлежит"

END IF

END IF

END IF

END

var х: real;

begin

readln(х);

if (x >=-7) or (x <= 1) then

if (x >= -5) and (x <= 5) then

if (x >= -1) and (x <= 7) then

write('принадлежит')

else

write('не принадлежит')

end.

Си++Алгоритмический язык

#include <iostream>

using namespace std;

int main(){

float x;

cin >> x;

if (x >= -7 || x <= 1)

if (x >= -5 && x<= 5)

if (x >= -1 && x <= 7)

cout << "принадлежит";

else

cout << не принадлежит;

}

алг

нач

вещ х

ввод x

если х >= -7 или х<=1 то

если х >= -5 и х<=5 то

если х >= -1 и х<=7 то

вывод 'принадлежит'

иначе

вывод 'не принадлежит'

все

все

все

кон

Python

x = int(input())

if (x >=-7) or (x <= 1):

    if (x >= -5) and (x <= 5):

        if (x >= -1) and (x <= 7):

            print("принадлежит")

        else:

            print("не принадлежит")

 

 

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

1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументе, принадлежащем различным областям (А, В, С, D, Е, F, G). Точки, лежащие на границах областей, отдельно не рассматривать.

В столбцах условий укажите «да», если условие выполнится, «нет», если условие не выполнится, «—» (прочерк), если условие не будет проверяться, «не изв.», если программа ведёт себя по-разному для разных значений, принадлежащих данной области.

В столбце «Программа выведет» укажите, что программа выведет на экран. Если программа ничего не выводит, напишите «—» (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите «не изв.». В последнем столбце укажите «да» или «нет».

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

 

ОбластьУсловие 1
(x >= -7 или x <= 1)
Условие 2
(x >= -5 и x <= 5)
Условие 3
(x >= -1 и x <= 7)
Программа
выведет
Область
обрабатывается
верно
A
B
C
D
E
F
G

 


4
Задание 24 № 7382

Требовалось написать программу, при выполнении которой с клавиатуры считывается координата точки на прямой (x — действительное число) и определяется принадлежность этой точки одному из выделенных отрезков В и D (включая границы). Программист торопился и написал программу неправильно. (Ниже для Вашего удобства программа представлена на четырёх языках программирования.)

 

БейсикПаскаль

INPUT x

IF x<12 THEN

IF x>=0 THEN

IF x<=6 THEN

PRINT "принадлежит"

ELSE

PRINT "не принадлежит"

ENDIF

ENDIF

ENDIF

END

var x: real;

begin

readln(x);

if x<12 then

if x>=0 then

if x<=6 then

write('принадлежит')

else

write('не принадлежит')

end.

Си++Алгоритмический

int main(void)

{

float x;

cin >> x;

if(x<12)

if(x>=0)

if(x<=6)

cout << "принадлежит";

else

cout << "не принадлежит";

}

алг

нач

вещ x

ввод x

если x<12 то

если x>=0 то

если x<=6 то

вывод 'принадлежит'

иначе

вывод 'не принадлежит'

все

все

все

кон

Python

x = int(input())

if x < 12:

    if x >= 0:

        if x <= 6:

            print("принадлежит")

        else:

            print("не принадлежит")

 

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

1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A, B, C, D и E). Границы (точки 0, 6, 12 и 18) принадлежат заштрихованным областям (B и D соответственно).

 

ОбластьУсловие 1

(x<12)

Условие 2

(x>=0)

Условие 3

(x<= 6)

Программа

выведет

Область

обрабатывается

верно

A
B
C
D
E

 

В столбцах условий укажите «да», если условие выполнится; «нет», если условие не выполнится; «—» (прочерк), если условие не будет проверяться; «не изв.», если программа ведёт себя по-разному для разных значений, принадлежащих данной области. В столбце «Программа выведет» укажите, что программа выведет на экран. Если программа ничего не выводит, поставьте «—» (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите «не изв.». В последнем столбце укажите «Да» или «Нет».

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

Источник: ЕГЭ по ин­фор­ма­ти­ке 05.05.2014. До­сроч­ная волна. Ва­ри­ант 2.

5
Задание 24 № 4865

Требовалось написать программу, при выполнении которой с клавиатуры считывается координата точки на прямой (х - действительное число) и определяется принадлежность этой точки одному из выделенных отрезков (включая границы). Программист торопился и написал программу неправильно.

 

БэйсикПаскаль

INPUT х

IF х>=-5 OR х<=1 THEN

IF х>=-3 AND x<=3 THEN

IF x>=-l AND x<=5 THEN

PRINT "принадлежит"

ELSE

PRINT "не принадлежит"

END IF

END IF

END IF

END

var х: real;

begin

readln(х);

if (x>=-5) or (x<=1) then

if (x>=-3) and (x<=3) then

if (x>=-l) and (x<=5) then write('принадлежит')

else

write('не принадлежит')

end.

Си++Алгоритмический язык

#include <iostream>

using namespace std;

int main(){

float x;

cin >> x;

if (x>=-5 || x<=l)

if (x>=-3 && x<=3)

if (x>=-l && x<=5)

cout << "принадлежит";

else

cout << "не принадлежит";

}

алг

нач

вещ х

ввод X

если х>=-5 или х<=1 то

если х>=-3 и х<=3 то

если х>=-1 и х<=5 то

вывод 'принадлежит'

иначе

вывод 'не принадлежит'

все

все

все

кон

Python

x = int(input())

if (x >= -5) or (x <= 1):

    if (x >= -3) and (x <= 3):

        if (x >= -l) and (x <= 5):

            print("принадлежит")

        else:

            print("не принадлежит")

 

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

1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументе, принадлежащем различным областям (А, В, С, D, Е, F, G). Точки, лежащие на границах областей, отдельно не рассматривать. В столбцах условий укажите «да», если условие выполнится, «нет», если условие не выполнится, «—» (прочерк), если условие не будет проверяться, «не изв.», если программа ведёт себя по-разному для разных значений, принадлежащих данной области.

В столбце «Программа выведет» укажите, что программа выведет на экран. Если программа ничего не выводит, напишите «—» (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите «не изв.». В последнем столбце укажите «да» или «нет».

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

 

 

ОбластьУсловие 1
(x >= -5 или x <= 1)
Условие 2
(x >= -3 и x <= 3)
Условие 3
(x >= -1 и x <= 5)
Программа
выведет
Область
обрабатывается
верно
A
B
C
D
E
F
G

 


6
Задание 24 № 7417

Требовалось написать программу, при выполнении которой с клавиатуры считывается координата точки на прямой (x — действительное число) и определяется принадлежность этой точки одному из выделенных отрезков В и D (включая границы). Программист торопился и написал программу неправильно. (Ниже для Вашего удобства программа представлена на четырёх языках программирования.)

 

БейсикПаскаль

INPUT x

IF x<=18 THEN

IF x>=-6 THEN

IF x<10 THEN

PRINT "не принадлежит"

ELSE

PRINT "принадлежит"

ENDIF

ENDIF

ENDIF

END

var x: real;

begin

readln(x);

if x<=18 then

if x>=-6 then

if x<10 then

write('не принадлежит')

else

write('принадлежит')

end.

Си++Алгоритмический

int main(void)

{

float x;

cin >> x;

if(x<=18)

if(x>=-6)

if(x<10)

cout << "не принадлежит";

else

cout << "принадлежит";

}

алг

нач

вещ x

ввод x

если x<=18 то

если x>=-6 то

если x<10 то

вывод 'не принадлежит'

иначе

вывод 'принадлежит'

все

все

все

кон

Python

x = int(input())

if x <= 18:

    if x >= -6:

        if x < 10:

            print("не принадлежит")

        else:

            print("принадлежит")

 

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

1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A, B, C, D и E). Границы (точки –6, 2, 10 и 18) принадлежат заштрихованным областям (B и D соответственно).

 

ОбластьУсловие 1 (x<=18)Условие 2 (x>= −6)Условие 3 (x<10)Программа

выведет

Область обрабатывается верно
A
B
C
D
E

 

В столбцах условий укажите «да», если условие выполнится; «нет», если условие не выполнится; «—» (прочерк), если условие не будет проверяться; «не изв.», если программа ведёт себя по-разному для разных значений, принадлежащих данной области. В столбце «Программа выведет» укажите, что программа выведет на экран. Если программа ничего не выводит, поставьте «—» (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите «не изв.». В последнем столбце укажите «Да» или «Нет».

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

Источник: ЕГЭ по ин­фор­ма­ти­ке 08.05.2014. До­сроч­ная волна, ре­зерв­ный день. Ва­ри­ант 201.

7
Задание 24 № 7421

Требовалось написать программу, при выполнении которой с клавиатуры считывается координата точки на прямой (x — действительное число) и определяется принадлежность этой точки одному из выделенных отрезков В и D (включая границы). Программист торопился и написал программу неправильно. (Ниже для Вашего удобства программа представлена на четырёх языках программирования.)

 

БейсикПаскаль

INPUT x

IF x<13 THEN

IF x<=7 THEN

IF x>=1 THEN

PRINT "принадлежит"

ELSE

PRINT "не принадлежит"

ENDIF

ENDIF

ENDIF

END

var x: real;

begin

readln(x);

if x<13 then

if x<=7 then

if x>=1 then

write('принадлежит')

else

write('не принадлежит')

end.

Си++Алгоритмический

int main(void)

{

float x;

cin >> x;

if(x<13)

if(x<=7)

if(x>=1)

cout << "принадлежит";

else

cout << "не принадлежит";

}

алг

нач

вещ x

ввод x

если x<13 то

если x<=7 то

если x>=1 то

вывод 'принадлежит'

иначе

вывод 'не принадлежит'

все

все

все

кон

Python

x = int(input())

if x < 13:

    if x <= 7:

        if x >= 1:

            print("принадлежит")

        else:

            print("не принадлежит")

 

 

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

1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A, B, C, D и E). Границы (точки 1, 7, 13 и 19) принадлежат заштрихованным областям (B и D соответственно).

 

ОбластьУсловие 1 (x<13)Условие 2 (x<=7)Условие 3 (x>=1)Программа

выведет

Область обрабатывается верно
A
B
C
D
E

 

В столбцах условий укажите «да», если условие выполнится; «нет», если условие не выполнится; «—» (прочерк), если условие не будет проверяться; «не изв.», если программа ведёт себя по-разному для разных значений, принадлежащих данной области. В столбце «Программа выведет» укажите, что программа выведет на экран. Если программа ничего не выводит, поставьте «—» (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите «не изв.». В последнем столбце укажите «Да» или «Нет».

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

Источник: ЕГЭ по ин­фор­ма­ти­ке 08.05.2014. До­сроч­ная волна, ре­зерв­ный день. Ва­ри­ант 202.

8
Задание 24 № 5288

Требовалось написать программу, при выполнении которой с клавиатуры считывается координата точки на прямой (х - действительное число) и определяется принадлежность этой точки заданной области (включая границы). Программист торопился и написал программу неправильно.

 

БэйсикПаскаль

INPUT х

IF х<=30 THEN

IF х<=20 THEN

IF х<=10 THEN

PRINT "не принадлежит"

ELSE

PRINT "принадлежит"

END IF

END IF

END IF

END

var х: real;

begin

readln(х);

if х<=30 then

if x<=20 then

if x<=10 then

write('не принадлежит')

else

write('принадлежит')

end.

Си++Алгоритмический язык

#include <iostream>

using namespace std;

int main()

{

float x;

cin >> x;

if (x<=30) if (x<=20)

if (x<=10)

cout << "He принадлежит";

else

cout << "принадлежит";

алг

нач

вещ х

ввод х

если х<=30 то

если х<=20 то

если х<=10 то

вывод ’не принадлежит'

иначе

вывод 'принадлежит'

все

все

все

кон

Python

x = int(input())

if х <= 30:

    if x <= 20:

        if х <= 10:

            print("не принадлежит")

        else:

            print("принадлежит")

 

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

1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (А, В, С, D и Е). Точки, лежащие на границах областей (то есть, точки 10, 20, 30 и 40) при заполнении таблицы не рассматриваются.

 

ОбластьУсловие 1
(x<=30)
Условие 2
(x<=20)
Условие 3
(x<=10)
Программа
выведет
Область
обрабатывается
верно
A
B
C
D
E

 

В столбцах условий укажите «да», если условие выполнится, «нет», если условие не выполнится, «—» (прочерк), если условие не будет проверяться, «не изв.», если программа ведет себя по-разному для разных значений, принадлежащих данной области. В столбце «Программа выведет» укажите, что программа выведет на экран. Если программа ничего не выводит, поставьте «—» (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите «не изв.». В последнем столбце укажите «да» или «нет».

 

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

Пояснение · ·

9
Задание 24 № 5320

Требовалось написать программу, при выполнении которой с клавиатуры считывается координата точки на прямой (х - действительное число) и определяется принадлежность этой точки заданной области (включая границы). Программист торопился и написал программу неправильно.

 

БэйсикПаскаль

INPUT х

IF х<=30 THEN

IF х<=20 THEN

IF х<=10 THEN

PRINT "не принадлежит"

ELSE

PRINT "принадлежит"

END IF

END IF

END IF

END

var х: real;

begin

readln(х);

if х<=30 then

if x<=20 then

if x<=10 then

write('не принадлежит')

else

write('принадлежит')

end.

Си++Алгоритмический язык

#include <iostream>

using namespace std;

int main()

{

float x;

cin >> x;

if (x<=30) if (x<=20)

if (x<=10)

cout << "He принадлежит";

else

cout << "принадлежит";

}

алг

нач

вещ х

ввод х

если х<=30 то

если х<=20 то

если х<=10 то

вывод ’не принадлежит'

иначе

вывод 'принадлежит'

все

все

все

кон

Python

x = int(input())

if х <= 30:

    if x <= 20:

        if х <= 10:

            print("не принадлежит")

        else:

            print("принадлежит")

 

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

1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (А, В, С, D и Е). Точки, лежащие на границах областей (то есть, точки 10, 20, 30 и 40) при заполнении таблицы не рассматриваются.

 

ОбластьУсловие 1
(x<=30)
Условие 2
(x<=20)
Условие 3
(x<=10)
Программа
выведет
Область
обрабатывается
верно
A
B
C
D
E

 

В столбцах условий укажите «да», если условие выполнится, «нет», если условие не выполнится, «—» (прочерк), если условие не будет проверяться, «не изв.», если программа ведет себя по-разному для разных значений, принадлежащих данной области. В столбце «Программа выведет» укажите, что программа выведет на экран. Если программа ничего не выводит, поставьте «—» (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите «не изв.». В последнем столбце укажите «да» или «нет».

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

Работа с цифрами числа

Версия для печати и копирования в MS Word
1
Задание 24 № 7769

Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число x, не превосходящее 1000, и выводится количество значащих цифр в двоичной записи этого числа. Программист торопился и написал программу неправильно. (Ниже для Вашего удобства программа представлена на пяти языках программирования.)

 

 

БейсикPython

INPUT x

cnt = 0

WHILE x > 0

cnt = cnt + x MOD 2

x = x \ 10

WEND

PRINT cnt

END

x = int(input())

cnt = 0

while x > 0:

    cnt = cnt+x % 2

    x = x // 10

print(cnt)

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

var x,cnt: integer;

begin

readln(x);

cnt := 0;

while x > 0 do

begin

cnt:=cnt + x mod 2;

x := x div 10

end;

writeln(cnt);

end.

алг

нач

цел x, cnt

ввод x

cnt := 0

нц пока x > 0

cnt := cnt+mod(x,2)

x := div(x, 10)

кц

вывод cnt

кон

Си++

#include <iostream>

using namespace std;

int main()

{

int x,cnt;

cin >> x;

cnt = 0;

while (x > 0)

{

cnt = cnt + x%2;

x = x /10;

}

cout « cnt « endl;

}

 

 

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

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

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

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

 

Для каждой ошибки:

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

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

 

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


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


2
Задание 24 № 8112

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

Напоминание: 0 делится на любое натуральное число.

 

 

БейсикPython

DIM N, DIGIT, MAXDIGIT AS LONG

INPUT N

MAXDIGIT = N MOD 10

WHILE N > 0

    DIGIT = N MOD 10

    IF DIGIT MOD 3 = 0 THEN

        IF DIGIT > MAXDIGIT THEN

            MAXDIGIT = DIGIT

        END IF

    END IF

    N = N \ 10

WEND

IF MAXDIGIT = 0 THEN

    PRINT "NO"

ELSE

    PRINT MAXDIGIT

END IF

N = int(input())

maxDigit = N % 10

while N > 0:

    digit = N % 10

    if digit % 3 == 0:

        if digit > maxDigit:

            maxDigit = digit

    N = N // 10

if maxDigit == 0:

    print("NO")

else:

    print(maxDigit)

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

var N,digit,maxDigit: longint;

begin

    readln(N);

    maxDigit := N mod 10;

    while N > 0 do

    begin

        digit := N mod 10;

        if digit mod 3 = 0 then

            if digit > maxDigit then

                maxDigit := digit;

        N := N div 10;

    end;

    if maxDigit = 0 then

        writeln('NO')

    else

        writeln(maxDigit)

end.

алг

нач

    цел N, digit, maxDigit

    ввод N

    maxDigit := mod(N,10)

    нц пока N > 0

        digit := mod(N,10)

            если mod(digit, 3) = 0 то

            если digit > maxDigit то

                maxDigit := digit

            все

        все

        N := div(N,10)

    кц

    если maxDigit = 0 то

        вывод "NO"

    иначе

        вывод maxDigit

    все

кон

Си++

#include <iostream>

using namespace std;

int main()

{

    int N, digit, maxDigit;

    cin >> N;

    maxDigit = N % 10;

    while (N > 0)

    {

        digit = N % 10;

        if (digit % 3 == 0)

            if (digit > maxDigit)

                maxDigit = digit;

        N = N / 10;

    }

    if (maxDigit == 0)

        cout << "NO";

    else

        cout << maxDigit<< endl;

    return 0;

}

 

 

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

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

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

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

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

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

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

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

Источник: ЕГЭ 05.05.2015. До­сроч­ная волна.

3
Задание 24 № 9375

На обработку поступает положительное целое число, не превышающее 109. Нужно написать программу, которая выводит на экран сумму цифр этого числа, меньших 7. Если в числе нет цифр, меньших 7, требуется на экран вывести 0. Программист написал программу неправильно. Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

 

 

БейсикPython

DIM N, DIGIT, SUM AS LONG

INPUT N

SUM = 0

WHILE N > 0

    DIGIT = N MOD 10

    IF DIGIT < 7 THEN

        SUM = SUM + 1

    END IF

    N = N \ 10

WEND

PRINT DIGIT

N = int(input())

sum = 0

while N > 0:

    digit = N % 10

    if digit < 7:

        sum = sum + 1

    N = N // 10

print(digit)

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

var N, digit, sum: longint;

begin

    readln(N);

    sum := 0;

    while N > 0 do

    begin

        digit := N mod 10;

        if digit < 7 then

            sum := sum + 1;

        N := N div 10;

    end;

    writeln(digit)

end.

алг

нач

    цел N, digit, sum

    ввод N

    sum := 0

    нц пока N > 0

        digit := mod(N,10)

        если digit < 7 то

            sum := sum + 1

        все

        N := div(N,10)

    кц

    вывод digit

кон

Си++

#include <iostream>

using namespace std;

int main()

{

    int N, digit, sum;

    cin >> N;

    sum = 0;

    while (N > 0)

    {

        digit = N % 10;

        if (digit < 7)

            sum = sum + 1;

        N = N / 10;

    }

    cout << digit<< endl;

    return0;

}

 

 

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

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

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

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

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

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

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


Аналоги к заданию № 9375: 10487 10514 Все

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

4
Задание 24 № 5372

Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится количество цифр этого числа. Программист торопился и написал программу неправильно. (Ниже для Вашего удобства программа представлена на четырёх языках программирования.)

 

БейсикПаскаль

DIM N AS LONG

INPUT N

sum = 1

WHILE N > 1

N = N \ 10

sum = sum + 1

WEND

PRINT sum

END

var N: longint;

sum: integer;

begin

readln(N);

sum := 1;

while N > 1 do

begin

N := N div 10;

sum := sum + 1;

end;

writeln(sum);

end.

Си++Алгоритмический

#include <iostream>

using namespace std;

int main()

{

long int N;

int sum;

cin >> N;

sum = 1;

while (N > 1)

{

N = N /10;

sum = sum + 1;

}

cout « sum « endl;

}

алг

нач

цел N, sum

ввод N

sum := 1

нц пока N > 1

N := div(N, 10)

sum := sum + 1

кц

вывод sum

кон

Python

n = int(input())

sum = 1

while n > 1:

    n //= 10

    sum += 1

print(sum)

 

 

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

 

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

2. Укажите одно число для которого эта программа будет работать верно.

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


Аналоги к заданию № 5372: 5436 9705 Все

Источник: ЕГЭ по ин­фор­ма­ти­ке 30.05.2013. Ос­нов­ная волна. Дальний Восток. Ва­ри­ант 1.

5
Задание 24 № 5468

Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится произведение цифр этого числа. Программист торопился и написал программу неправильно. (Ниже для Вашего удобства программа представлена на четырёх языках программирования.)

 

БэйсикПаскаль

DIM N AS LONG

DIM product AS LONG

INPUT N

product = N mod 10

WHILE N >= 10

    digit = N MOD 10

    product = product*digit

    N = N \ 10

WEND

PRINT product

END

var N, product: longint;

    digit: integer;

begin

    readln(N);

    product := N mod 10;

    while N >= 10 do

    begin

        digit := N mod 10;

        product := product*digit;

        N := N div 10;

    end;

    writeln(product);

end.

Си++Алгоритмический язык

#include <iostream>

using namespace std;

int main()

{

    long int N, product;

    int digit;

    cin >> N;

    product = N % 10;

    while (N >= 10)

    {

        digit = N % 10;

        product = product*digit;

        N = N / 10;

    }

    cout << product;

}

алг

нач

    цел N, digit, product

    ввод N

    product := mod(N, 10)

    нц пока N >= 10

        digit := mod(N, 10)

        product := product*digit

        N := div(N, 10)

    кц

    вывод product

кон

Python

n = int(input())

product = n % 10

while n >= 10:

    digit = N % 10

    product = product*digit

    N //= 10

print(product)

 

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

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

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

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

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

 

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


Аналоги к заданию № 5468: 5596 9659 Все

Источник: ЕГЭ по ин­фор­ма­ти­ке 30.05.2013. Ос­нов­ная волна. Сибирь. Ва­ри­ант 1.

6
Задание 24 № 5500

Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится максимальная цифра этого числа. Программист торопился и написал программу неправильно. (Ниже для Вашего удобства программа представлена на четырёх языках программирования.)

 

БэйсикПаскаль

DIM N AS LONG

INPUT N

max_digit = 9

WHILE N > 9

    digit = N MOD 10

    IF max_digit < digit THEN

        max_digit = digit

    END IF

        N = N \ 10

WEND

PRINT max digit

END

var N: longint;

    digit, max_digit: integer;

begin

    readln(N);

    max_digit := 9;

    while N > 9 do

    begin

        digit := N mod 10;

        if max_digit < digit then

            max_digit := digit;

        N := N div 10;

    end;

    writeln(max_digit);

end.

Си++Алгоритмический язык

#include <iostream>

using namespace std;

int main()

{

    long int N;

    int digit, max digit;

    cin >> N;

    max_digit = 9;

    while (N > 9)

    {

        digit = N % 10;

        if (max_digit < digit)

            max_digit = digit;

        N = N /10;

    }

    cout « max_digit « endl;

}

алг

нач

    цел N, digit, max_digit

    ввод N

    max_digit := 9

    нц пока N > 9

         digit := mod(N, 10)

        если max_digit < digit то

            max_digit := digit

        все

    N := div(N, 10)

    кц

    вывод max_digit

кон

Python

n = int(input())

max_digit = 9

while n > 9:

    digit = n % 10

    if max_digit < digit:

        max_digit = digit

    n //= 10;

print(max_digit)

 

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

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

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

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

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

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


Аналоги к заданию № 5500: 6014 5852 5884 5948 5980 Все

Источник: ЕГЭ по ин­фор­ма­ти­ке 30.05.2013. Ос­нов­ная волна. Урал. Ва­ри­ант 1.

7
Задание 24 № 5532

Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится сумма цифр этого числа. Программист торопился и написал программу неправильно. (Ниже для Вашего удобства программа представлена на четырёх языках программирования.)

 

БэйсикПаскаль

DIM N AS LONG

INPUT N

sum = 0

WHILE N >= 9

    digit = N MOD 10

    sum = sum + digit

    N = N \ 10

WEND

PRINT sum

END

var N: longint;

    digit, sum: integer;

begin

    readln(N);

    sum := 0;

    while N >= 9 do

    begin

        digit := N mod 10;

        sum := sum + digit;

        N := N div 10;

    end;

    writeln(sum);

end.

Си++Алгоритмический язык

#include <iostream>

using namespace std;

int main()

{

    long int N;

    int digit, sum;

    cin >> N;

    sum = 0;

    while (N >= 9)

    {

        digit = N % 10;

        sum = sum + digit;

        N = N / 10;

    }

    cout « sum « endl;

}

 

алг

нач

    цел N, digit, sum

    ввод N

    sum := 0

    нц пока N >= 9

        digit := mod(N, 10)

        sum := sum + digit

        N := div(N, 10)

    кц

    вывод sum

кон

Python

n = int(input())

sum = 0

while n >= 9:

    digit = n % 10

    sum += digit

    n //=10;

print(sum)

 

 

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

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

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

3. Укажите одно число для которого эта программа будет работать верно.


Аналоги к заданию № 5532: 7681 7708 Все

Источник: ЕГЭ по ин­фор­ма­ти­ке 30.05.2013. Ос­нов­ная волна. Даль­ний Восток. Ва­ри­ант 3.

8
Задание 24 № 6014

Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится максимальная цифра этого числа. Программист торопился и написал программу неправильно. (Ниже для Вашего удобства программа представлена на четырёх языках программирования.)

 

 

БейсикПаскаль

DIM N AS LONG

INPUT N

max_digit = 9

WHILE N >= 10

    digit = N MOD 10

    IF digit > max_digit THEN

        max_digit = digit

    END IF

    N = N \ 10

WEND

PRINT max_digit

END

var N: longint;

    digit, max_digit: integer;

begin

    readln(N);

    max_digit := 9;

    while N >= 10 do

    begin

        digit := N mod 10;

        if digit > max_digit then

            max_digit := digit;

        N := N div 10;

    end;

    writeln(max_digit);

end.

Си++Алгоритмический

#include <iostream>

using namespace std;

int main()

{

    long int N;

    int digit, max_digit;

    cin >> N;

    max_digit = 9;

    while (N >= 10)

    {

        digit = N % 10;

        if (digit > max_digit)

            max_digit = digit;

        N = N /10;

    }

    cout « max_digit « endl;

}

алг

нач

    цел N, digit, max_digit

    ввод N

    max_digit := 9

    нц пока N >= 10

        digit := mod(N, 10)

        если digit > max_digit то

            max_digit := digit

        все

        N := div(N, 10)

    кц

    вывод max_digit

кон

Python

n = int(input())

max_digit = 9

while n >= 10:

    digit = N % 10

    if digit > max_digit:

        max_digit = digit

    N //= 10

print(max_digit)

 

 

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

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

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

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

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

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


9
Задание 24 № 6199

Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится сумма чётных цифр в десятичной записи этого числа или 0, если чётных цифр в записи нет. Ученик написал такую программу:

 

БейсикПаскаль

DIM N AS LONG

INPUT N

S = 0

WHILE N > 1

IF N MOD 2 = 0

S = N MOD 10

END IF

N = N \ 10

WEND

PRINT S

END

var N: longint;

s: integer;

begin

readln(N);

s := 0;

while N > 1 do begin

if N mod 2 = 0 then begin

s := N mod 10;

end;

N := N div 10;

end;

write(s);

end.

Си++Алгоритмический язык

#include <iostream>

using namespace std;

int main()

{

long int N;

int s;

cin >> N;

s = 0;

while (N > 1) {

if (N%2 == 0) {

s = N % 10;

}

N = N / 10;

}

cout « s « endl;

}

алг

нач

цел N, s

ввод N

s := 0

нц пока N > 1

если mod(N,2) = 0 то

s := mod(N,10)

все

N := div(N,10)

кц

вывод s

кон

Python

n = int(input())

s = 0

while n > 1:

    if N % 2 == 0:

        s = N % 10

    N //= 10

print(s)

 

 

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

 

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

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

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

 

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


10
Задание 24 № 6789

Требовалось написать программу, при выполнении которой с клавиатуры вводится натуральное число, не превосходящее 108, и выводится его первая (старшая) цифра. Ученик написал такую программу:

 

БейсикПаскаль

DIM N AS LONG

INPUT N

WHILE N>10

N = N MOD 10

WEND

PRINT N

END

var n: longint;

begin

read(n);

while n>10 do begin

n := n mod 10

end;

write(n);

end.

Си++Алгоритмический

#include <iostream>

using namespace std;

int main(){

long int n;

cin >> n;

while (n>10) {

n = n%10;

}

cout << n;

}

алг

нач

цел n

ввод n

нц пока n>10

n := mod(n,10)

кц

вывод n

кон

Python

n = int(input())

while n > 10:

    n %= 10

print(n)

 

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

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

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

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


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


11
Задание 24 № 6853

Требовалось написать программу, при выполнении которой с клавиатуры вводится натуральное число, не превосходящее 108, и выводится его первая (старшая) цифра. Ученик написал такую программу:

 

БейсикПаскаль

DIM N AS LONG

INPUT N

WHILE N>10

N = N MOD 10

WEND

PRINT N

END

var n: longint;

begin

read(n);

while n>10 do begin

n := n mod 10

end;

write(n);

end.

Си++Алгоритмический

#include <iostream>

using namespace std;

int main(){

long int n;

cin >> n;

while (n>10) {

n = n%10;

}

cout << n;

}

алг

нач

цел n

ввод n

нц пока n>10

n := mod(n,10)

кц

вывод n

кон

Python

n = int(input())

while n > 10:

    n %= 10

print(n)

 

 

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

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

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

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


12
Задание 24 № 6968

Требовалось написать программу, которая получает на вход натуральное число N, не превосходящее 109, и выводит число, которое получается из N после удаления всех единиц; порядок остальных цифр при этом не меняется. Например, число 19520125 должно быть преобразовано в число 952025. Число, в котором все цифры — единицы и нули, должно быть преобразовано в 0. Незначащие нули в старших разрядах полученного числа печатать не нужно.

Программист торопился и написал программу неправильно.

 

БейсикПаскаль

DIM N, R, T AS LONG

DIM d AS INTEGER

INPUT N

R = 0

T = 1

WHILE N > 0

d = N MOD 10

IF d <> 1 THEN

R = R + d * T

T = T + 1

END IF

N = N \ 10

WEND

PRINT T

END

var N, R, T: longint;

d: integer;

begin

readln(N);

R:=0;

T:=1;

while N>0 do begin

d := N mod 10;

if d<>1 then begin

R := R + d*T;

T := T+1

end;

N := N div 10;

end;

writeln(T);

end.

Си++Алгоритмический

#include <iostream>

using namespace std;

int main()

{

long int N, R, T;

int d;

cin >> N;

R = 0;

T = 1;

while (N > 0) {

d = N % 10;

if (d != 1) {

R = R + d*T;

T = T+1;

}

N = N / 10;

}

cout << T;

}

алг

нач

цел N, R, T, d

ввод N

R := 0

T := 1

нц пока N > 0

d := mod(N, 10)

если d <> 1 то

R := R + d*T

T := T+1

все

N := div(N, 10)

кц

вывод T

кон

Python

n = int(input())

R=0

T=1

while N > 0:

    d = N % 10

    if d != 1:

        R = R + d*T

        T = T+1

    N //= 10;

print(T)

 

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

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

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

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

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

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


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


13
Задание 24 № 7318

Дано натуральное число N, не превосходящее 108. Необходимо найти и вывести число, которое получится при записи N справа налево и удалении всех единиц. Ведущие нули выводить не надо. Если в числе N нет цифр кроме единиц и нулей, необходимо вывести 0. Например, при вводе числа 1984 нужно вывести 489, а при вводе 2001 нужно вывести 2. Для решения этой задачи ученик написал такую программу:

 

БейсикПаскаль

DIM N, M AS LONG

DIM D AS INTEGER

INPUT N

M = 0

WHILE N>=1

D = N MOD 10

IF D>1 THEN

M = 10*D + M

END IF

N = (N – D) \ 10

WEND

PRINT M

END

var n, m: longint;

d: integer;

begin

read(n);

m := 0;

while n>=1 do begin

d := n mod 10;

if d > 1 then begin

m := 10*d + m;

end;

n := (n – d) div 10;

end;

write(m);

end.

Си++Алгоритмический

#include <iostream>

using namespace std;

int main(){

long int n, m;

int d;

cin >> n;

m = 0;

while (n>=1) {

d = n%10;

if (d>1) {

m = 10*d + m;

}

n = (n – d) / 10;

}

cout << m;

}

алг

нач

цел n, m

цел d

ввод n

m := 0

нц пока n>=1

d := mod(n,10)

если d>1 то

m := 10*d + m

все

n := div(n-d,10)

кц

вывод m

кон

Python

n = int(input())

m = 0

while n >= 1:

    d = n %10;

    if d > 1:

        m = 10*d + m

    n = (n – d) // 10

print(m)

 

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

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

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

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

 

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


14
Задание 24 № 7350

Дано натуральное число N, не превосходящее 108. Необходимо найти и вывести число, которое получится при записи N справа налево и удалении всех девяток. Ведущие нули выводить не надо. Если в числе N нет цифр кроме девяток и нулей, необходимо вывести 0. Например, при вводе числа 1984 нужно вывести 481, а при вводе 2009 нужно вывести 2. Для решения этой задачи ученик написал такую программу:

 

БейсикПаскаль

DIM N, M AS LONG

DIM D AS INTEGER

INPUT N

M = 0

WHILE N>1

D = N MOD 10

IF D<9 THEN

M = M + D

END IF

N = N \ 10

WEND

PRINT M

END

var n, m: longint;

d: integer;

begin

read(n);

m := 0;

while n>1 do begin

d := n mod 10;

if d < 9 then begin

m := m + d;

end;

n := n div 10;

end;

write(m);

end.

Си++Алгоритмический

#include <iostream>

using namespace std;

int main(){

long int n, m;

int d;

cin >> n;

m = 0;

while (n>1) {

d = n%10;

if (d<9) {

m = m + d;

}

n = n / 10;

}

cout << m;

}

алг

нач

цел n, m

цел d

ввод n

m := 0

нц пока n>1

d := mod(n,10)

если d<9 то

m := m + d

все

n := div(n,10)

кц

вывод m

кон

Python

n = int(input())

m = 0

while n > 1:

    d = n % 10

    if d < 9:

        m = m + d

    n //= 10

print(m)

 

 

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

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

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

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

 

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


15
Задание 24 № 7425

Программист писал программу, для определения количества цифр в целом положительном числе, не большем 10^9. Программист торопился, и допустил ошибку. (Ниже для Вашего удобства программа представлена на четырёх языках программирования.)

 

БейсикПаскаль

DIM N AS LONG

INPUT N

sum = 1

WHILE N > 1

N = N \ 10

sum = sum + 1

WEND

PRINT sum

END

var N: longint;

sum: integer;

begin

readln(N);

sum := 1;

while N > 1 do

begin

N := N div 10;

sum := sum + 1;

end;

writeln(sum);

end.

Си++Алгоритмический

#include <iostream>

using namespace std;

int main()

{

long int N;

int sum;

cin >> N;

sum = 1;

while (N > 1)

{

N = N / 10;

sum = sum + 1;

}

cout << sum << endl;

}

алг

нач

цел N, sum

ввод N

sum := 1

нц пока N > 1

N := div(N, 10)

sum := sum + 1

КЦ

вывод sum

КОН

 

Python

n = int(input())

sum = 1

while N > 1:

    N //= 10

    sum += 1

print(sum)

 

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

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

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

3. Укажите одно число для которого эта программа будет работать верно.

Источник: РЕШУ ЕГЭ — Пред­эк­за­ме­на­ци­он­ная ра­бо­та 2014 по информатике.

16
Задание 24 № 5692

Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится максимальная цифра этого числа. Программист торопился и написал программу неправильно. (Ниже для Вашего удобства программа представлена на четырёх языках программирования.)

 

БэйсикПаскаль

DIM N AS LONG

INPUT N

max_digit = 10

WHILE N >= 10

    digit = N MOD 10

    IF max_digit < digit THEN

        max_digit = digit

    END IF

        N = N \ 10

WEND

PRINT max_digit

END

var N: longint;

    digit, max_digit: integer;

begin

    readln(N);

    max_digit := 10;

    while N >= 10 do

    begin

        digit := N mod 10;

        if max_digit < digit then

            max_digit := digit;

        N := N div 10;

    end;

    writeln(max_digit);

end.

Си++Алгоритмический язык

#include <iostream>

using namespace std;

int main ()

{

    long int N;

    int digit, max_digit;

    cin >> N;

    max digit = 10;

    while (N >= 10)

    {

        digit = N % 10;

        if (max_digit < digit)

            max_digit = digit;

        N = N / 10;

    }

    cout « max_digit « endl;

}

 

алг

нач

    цел N, digit, max_digit

    ввод N

    max_digit := 10

    нц пока N >= 10

        digit := mod(N, 10)

        если max_digit < digit то

            max_digit := digit

        все

        N := div(N, 10)

    кц

    вывод max_digit

кон

Python

n = int(input())

max_digit = 10

while n >= 10:

    digit = n % 10

    if max_digit < digit:

        max_digit = digit

    n //= 10

print(max_digit)

 

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

 

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

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

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

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

 

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

Источник: ЕГЭ по ин­фор­ма­ти­ке 30.05.2013. Ос­нов­ная волна. Сибирь. Ва­ри­ант 5.

17
Задание 24 № 12440

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

Напоминание: 0 делится на любое натуральное число.

 

 

БейсикPython

DIM N, DIGIT, COUNT AS LONG

INPUT N

COUNT = 1

WHILE N > 0

    DIGIT = N MOD 10

    IF DIGIT MOD 5 = 0 THEN

        COUNT = COUNT + DIGIT

    END IF

    N = N \ 10

WEND

IF COUNT = 0 THEN

    PRINT "NO"

ELSE

    PRINT COUNT

END IF

N = int(input())

count = 1

while N > 0:

    digit = N % 10

    if digit % 5 == 0:

        count = count + digit

    N = N // 10

if count == 0:

    print("NO")

else:

    print(count)

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

var N, digit, count: longint;

begin

    readln(N);

    count := 1;

    while N > 0 do

    begin

        digit := N mod 10;

        if digit mod 5 = 0 then

            count := count + digit;

        N := N div 10;

    end;

    if count = 0 then

        writeln('NO')

    else

        writeln(count)

end.

 

алг

нач

    цел N, digit, count

    ввод N

    count := 1

    нц пока N > 0

        digit := mod(N,10)

        если mod(digit,5) = 0 то

            count := count + digit

        все

        N := div(N,10)

    кц

    если count = 0 то

        вывод "NO"

    иначе

        вывод count

    все

кон

 

Си++

#include <iostream>

using namespace std;

int main()

{

    int N, digit, count;

    cin >> N;

    count = 1;

    while (N > 0)

    {

        digit = N % 10;

        if (digit % 5 == 0)

            count = count + digit;

        N = N / 10;

    }

    if (count == 0)

        cout << "NO";

    else

        cout << count << endl;

    return 0;

}

 

 

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

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

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

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

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

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

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

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

Обратите внимание, что требуется найти ошибки в имеющейся программе,

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

Источник: Задания для школы экспертов. Информатика. 2016 год.

Координатная плоскость. Окружность

Версия для печати и копирования в MS Word
1
Задание 24 № 2801

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

 

ПаскальБейсик
var x,y: real;

begin

readln(x,y);

if x*x+y*y>=4 then

if x>= –2 then

if y<= –x then

write('принадлежит')

else

write('не принадлежит')

end.

INPUT x, y

IF x*x+y*y>=4 THEN

IF x>= –2 THEN

IF y<= –x THEN

PRINT "принадлежит"

ELSE

PRINT "не принадлежит"

ENDIF

ENDIF

ENDIF

END

Си++Алгоритмический
int main()

{

float x,y;

cin >> x >> y;

if (x*x+y*y>=4)

if (x>= –2)

if (y<= –x)

cout << "принадлежит";

else

cout << "не принадлежит";

}

алг

нач

вещ x,y

ввод x,y

если x*x+y*y>=4 то

    если x>= –2 то

        если y<= –x то

            вывод 'принадлежит'

        иначе

            вывод 'не принадлежит'

        все

    все

все

кон

Python

x = float(input())

y = float(input())

if x*x+y*y >= 4:

    if x >= −2:

        if у <= -x:

            print("принадлежит")

        else:

            print("не принадлежит")

 

 

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

1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A, B, C, D, E, F, G и H).

Точки, лежащие на границах областей, отдельно не рассматривать. В столбцах условий укажите "да", если условие выполнится, "нет", если условие не выполнится, "—" (прочерк), если условие не будет проверяться, "не изв.", если программа ведет себя по-разному для разных значений, принадлежащих данной области. В столбце "Программа выведет" укажите, что программа выведет на экран. Если программа ничего не выводит, напишите "—" (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите "не изв". В последнем столбце укажите "да" или "нет".

 

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

 

ОбластьУсловие 1

(x*x+y*y>=4)

Условие 2

(x>= –2)

Условие 3

(y<= –x)

Программа выведетОбласть обрабатывается верно
A
В
С
D
Е
F
G
Н
Пояснение · ·

2
Задание 24 № 3597

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

 

ПаскальБейсик

var х,у: real;

begin

readln(x,y);

if x*x+y*y >= 4 then

if у >= −2 then

if у <= x then

write('принадлежит')

else

write('не принадлежит')

end.

INPUT x, у

IF x*x+y*y >= 4 THEN

IF у >= −2 THEN

IF у <= x THEN

PRINT "принадлежит"

ELSE

PRINT "не принадлежит"

ENDIF

ENDIF

ENDIF

END

Си++Алгоритмический язык
int main(void)

{ float x, у;

cin >> x >> y ;

if (x*x+y*y >= 4)

if (у >= −2)

if (у <= x)

cout << "принадлежит";

else

cout << "не принадлежит";

}

алг

нач

вещ х, у

ввод х, у

если x*x+y*y >= 4 то

если у >= −2 то

если у <= x то

вывод 1 принадлежит'

иначе

вывод 1 не принадлежит'

все

все

все

кон

Python

x,y = float(input())

if x*x+y*y >= 4:

    if у >= −2:

        if у <= x:

            print("принадлежит")

        else:

            print("не принадлежит")

 

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

1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A, B, C, D, E, F, G и H).

Точки, лежащие на границах областей, отдельно не рассматривать. В столбцах условий укажите "да", если условие выполнится, "нет", если условие не выполнится, "—" (прочерк), если условие не будет проверяться, "не изв.", если программа ведет себя по-разному для разных значений, принадлежащих данной области. В столбце "Программа выведет" укажите, что программа выведет на экран. Если программа ничего не выводит, напишите "—" (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите "не изв". В последнем столбце укажите "да" или "нет".

 

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

 

ОбластьУсловие 1

(x*x+y*y >= 4)

Условие 2

(у >= −2)

Условие 3

(у <= x)

Программа выведетОбласть обрабатывается верно
A
В
С
D
Е
F
G
Н

3
Задание 24 № 3629

Требовалось написать программу, при выполнении которой с клавиатуры считываются координаты точки на плоскости (x, y – действительные числа) и определяется принадлежность этой точки заданной закрашенной области (включая границы). Программист торопился и написал программу неправильно.

 

ПаскальБейсик
var x,y: real; begin

readln(x,y);

if y<=x+2 then

if x<=0 then

if x*x+y*y<=25 then

write('принадлежит')

else

write('не принадлежит')

end.

INPUT x, y

IF y<=x+2 THEN

IF x<=0 THEN

IF x*x+y*y<=25 THEN

PRINT "принадлежит"

ELSE

PRINT "не принадлежит"

ENDIF

ENDIF

ENDIF

END

Си++Алгоритмический язык
#include <iostream>

using namespace std;

int main(){

float x,y;

cin >> x >> y;

if (y<=x+2)

if (x<=0)

if (x*x+y*y<=25)

cout << "принадлежит";

else

cout << "не принадлежит";

}

алг

нач

вещ x,y

ввод x,y

если y<=x+2 то

если x<=0 то

если x*x+y*y<=25 то

вывод 'принадлежит'

иначе

вывод 'не принадлежит'

все

все

все

кон

Python

x = float(input())

y = float(input())

if y<=x+2:

    if x<=0:

        if x*x+y*y<=25:

            print("принадлежит")

        else:

            print("не принадлежит")

 

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

1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A, B, C, D, E, F, G и H).

Точки, лежащие на границах областей, отдельно не рассматривать. В столбцах условий укажите "да", если условие выполнится, "нет", если условие не выполнится, "—" (прочерк), если условие не будет проверяться, "не изв.", если программа ведет себя по-разному для разных значений, принадлежащих данной области. В столбце "Программа выведет" укажите, что программа выведет на экран. Если программа ничего не выводит, напишите "—" (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите "не изв". В последнем столбце укажите "да" или "нет".

 

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

 

ОбластьУсловие 1 (y<=2+x)Условие 2 (x<=0)Условие 3 (x*x+y*y<=25)Программа выведетОбласть обрабатывается

верно

A
В
С
D
Е
F
G
Н
K
Пояснение · ·

4
Задание 24 № 3787

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

 

БейсикПаскаль

INPUT х, у

IF x*x + у*у <= 49 THEN

IF x*x + у*у >= 16 THEN

PRINT "принадлежит"

ELSE

PRINT "не принадлежит"

ENDIF

END IF

END

var x, у: real;

begin

readln(x,y);

if x*x + y*y <= 49 then

if x*x + y*y >= 16 then

write('принадлежит')

else

write('не принадлежит')

end.

Си++Алгоритмический

#include <iostream>

using namespace std;

int main (void) {

float x,y;

cin >> x >> y;

if (x*x + y*y <= 49)

if (x*x + y*y >= 16)

cout << "принадлежит";

else

cout << "не принадлежит";

}

алг

нач

вещ х,у

ввод х,у

если х*х + у*у <= 49 то

если х*х + у* у >= 16 то

вывод 'принадлежит'

иначе

вывод 'не принадлежит'

все

все

кон

Python

x,y = float(input())

if x*x + у*у <= 49:

    if x*x + у*у >= 16:

        print("принадлежит")

    else:

        print("не принадлежит")

 

 

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

1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A, B, C, D). Точки, лежащие на границах областей, отдельно не рассматривать. В столбцах условий укажите "да", если условие выполнится, "нет", если условие не выполнится, "—" (прочерк), если условие не будет проверяться, "не изв.", если программа ведет себя по-разному для разных значений, принадлежащих данной области. В столбце "Программа выведет" укажите, что программа выведет на экран. Если программа ничего не выводит, напишите "—" (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите "не изв". В последнем столбце укажите "да" или "нет".

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

 

ОбластьУсловие 1

(х*х+у*у <= 49)

Условие 2

(х*х+у*у >= 16)

Программа выведетОбласть

обрабатывается верно

A
В
С
D

5
Задание 24 № 3788

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

 

БейсикПаскаль

INPUT х, у

IF х*х + у*у >=1 THEN

IF x*x + у*у >= 49 THEN

PRINT "принадлежит"

ELSE

PRINT "не принадлежит"

ENDIF

END IF

END

var x, у: real;

begin

readln(x,y);

if x*x + y*y >= 1 then

if x*x + y*y >= 49 then

write('принадлежит')

else

write('не принадлежит')

end.

Си++Алгоритмический язык

#include <iostream>

using namespace std;

int main (void) {

float x,y;

cin >> x >> y;

if (x*x + y*y >= 1 )

if (x*x + y*y >= 49)

cout << "принадлежит";

else

cout << "не принадлежит";

}

алг

нач

вещ х,у

ввод х,у

если х*х + у*у >= 1 то

если х*х + у* у >= 49 то

вывод 'принадлежит'

иначе

вывод 'не принадлежит'

все

все

кон

Python

x,y = float(input())

if x*x + y*y >= 1 :

    if x*x + y*y >= 49:

        print("принадлежит")

    else:

        print("не принадлежит")

 

 

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

1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A, B, C, D).

Точки, лежащие на границах областей, отдельно не рассматривать. В столбцах условий укажите "да", если условие выполнится, "нет", если условие не выполнится, "—" (прочерк), если условие не будет проверяться, "не изв.", если программа ведет себя по-разному для разных значений, принадлежащих данной области. В столбце "Программа выведет" укажите, что программа выведет на экран. Если программа ничего не выводит, напишите "—" (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите "не изв". В последнем столбце укажите "да" или "нет".

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

 

ОбластьУсловие 1

(х*х+у*у >= 1)

Условие 2

(х*х+у*у >= 49)

Программа выведетОбласть

обрабатывается верно

A
В
С
D

6
Задание 24 № 4533

Требовалось написать программу, при выполнении которой с клавиатуры считываются координаты точки на плоскости (x,y – действительные числа) и определяется принадлежность точки закрашенной области, включая ее границы. Программист торопился и написал программу неправильно.

 

ПаскальБейсик
var x,y: real;

begin

readln(x,y);

if y>=x-2 then

if x<=0 then

if x*x+y*y<=25 then

write('принадлежит')

else

write('не принадлежит')

end.

INPUT x, y

IF y>=x-2 THEN

IF x<=0 THEN

IF x*x+y*y<=25 THEN

PRINT "принадлежит"

ELSE

PRINT "не принадлежит"

END IF

END IF

END IF

END

Си++Алгоритмический
#include <iostream>

using namespace std;

int main() {

float x,y;

cin >> x >> y;

if (y>=x-2)

if (x<=0)

if (x*x+y*y<=25)

cout << "принадлежит";

else

cout << "не принадлежит";

алг

нач

вещ x,y

ввод x,y

если y>=x-2 то

    если x<=0 то

        если x*x+y*y<=25 то

            вывод 'принадлежит'

        иначе

            вывод 'не принадлежит'

        все

    все

все

кон

Python

x,y = float(input())

if y>=x-2:

    if x<=0:

        if x*x+y*y<=25:

            print("принадлежит")

        else:

            print("не принадлежит")

 

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

1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A, B, C, D, E, F, G и H).

Точки, лежащие на границах областей, отдельно не рассматривать. В столбцах условий укажите "да", если условие выполнится, "нет", если условие не выполнится, "—" (прочерк), если условие не будет проверяться, "не изв.", если программа ведет себя по-разному для разных значений, принадлежащих данной области. В столбце "Программа выведет" укажите, что программа выведет на экран. Если программа ничего не выводит, напишите "—" (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите "не изв". В последнем столбце укажите "да" или "нет".

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

 

ОбластьУсловие1

(y>=x–2)

Условие 2 (x<=0)Условие 3 (x*x+y*y<=25)Программа выведетОбласть обрабатывается

верно

A
В
С
D
Е
F
G
Н
K

7
Задание 24 № 4535

Требовалось написать программу, при выполнении которой с клавиатуры считываются координаты точки на плоскости (x, y – действительные числа) и определяется принадлежность этой точки заданной закрашенной области (включая границы). Программист торопился и написал программу неправильно.

 

ПаскальБейсик

var x,y: real;

begin

readln(x,y);

if y<=2-x then

if y>=0 then

if y<=x*x then

write('принадлежит')

else

write('не принадлежит')

end.

INPUT x, y

IF y<=2-x THEN

IF y>=0 THEN

IF y<=x*x THEN

PRINT "принадлежит"

ELSE

PRINT "не принадлежит"

ENDIF

ENDIF

ENDIF

END

Си++Алгоритмический язык
int main(void){

float x,y;

cin >> x >> y;

if (y<=2-x)

if (y>=0)

if (y<=x*x)

cout << "принадлежит";

else

cout << "не принадлежит";

}

алг

нач

вещ x,y

ввод x,y

если y<=2-x то

если y>=0 то

если y<=x*x то

вывод 'принадлежит'

иначе

вывод 'не принадлежит'

все

все

все

кон

Python

x,y = float(input()), float(input())

if y<=2-x:

    if y>=0:

        if y<=x*x:

            print("принадлежит")

        else:

            print("не принадлежит")

 

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

1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A, B, C, D, E, F, G и H). Точки, лежащие на границах областей, отдельно не рассматривать.

В столбцах условий укажите "да", если условие выполнится, "нет" если условие не выполнится, "—" (прочерк), если условие не будет проверяться, «не изв.», если программа ведет себя по-разному для разных значений, принадлежащих данной области. В столбце "Программа выведет" укажите, что программа выведет на экран. Если программа ничего не выводит, напишите "—" (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите «не изв». В последнем столбце укажите "да" или "нет".

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

 

ОбластьУсловие 1

(y<=2-x)

Условие 2 (y>=0)Условие 3 (y<=x*x)Программа выведетОбласть обрабатывается

верно

A
В
С
D
Е
F
G
Н

8
Задание 24 № 5067

Требовалось написать программу, при выполнении которой с клавиатуры считываются координаты точки на плоскости (х, у — действительные числа) и определяется принадлежность этой точки заданной закрашенной области (включая границы). Ученик написал такую программу:

 

ПаскальБейсик
var x, y: real;

begin

readln(x,у);

if у => x*x − 6 then begin

if x*x + y*y <= 16 then write('принадлежит')

end

else

if x >= 0 then

write('принадлежит')

else

write('не принадлежит')

end.

INPUT х, у

IF у >= х*х − 6 THEN

IF х*х + у*у <= 16 THEN PRINT "принадлежит"

ELSE

IF х => О THEN

PRINT "принадлежит"

ELSE

PRINT "не принадлежит"

END IF

END IF

END

Си++Алгоритмический язык

#include <iostream>

using namespace std;

int main(){

float x, y;

cin >> x >> y;

if (y >= x*x − 6) {

if (x*x +y*y <= 16) cout << принадлежит;

}

else

if (x >= 0)

cout << "принадлежит";

else

cout << "не принадлежит";

}

алг

нач

вещ х, у

ввод х, у

если у >= х*х − 6 то

если х*х + у*у <= 16 то

вывод 'принадлежит'

все

иначе

если х >= 0 то

вывод 'принадлежит'

иначе

вывод 'не принадлежит'

все

все

кон

Python

x,y = float(input())

if у >= х*х − 6:

    if х*х + у*у <= 16:

        print("принадлежит")

    else:

        if х => 0:

            print("принадлежит")

        else:

            print("не принадлежит")

 

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

 

ОбластьУсловие 1 (y >= x*x – 6)Условие 2 (x*x + y*y<= 16)Условие 3 (x >= 0)ВыводВерно
да
принадлежитнет
не принадлежитда
да
дада

 

Графы протокола содержат следующую информацию.

 

Область - часть плоскости, которой принадлежит проверяемая точка. (Все

возможные области отмечены на рисунке буквами А, В, С, ... S.)

 

Условие 1, Условие2, Условие 3 — результат проверки соответствующего

условия (да или нет). Если условие не проверялось, в протокол записывался

прочерк.

 

Вывод — сообщение, которое вывела программа. Если программа ничего не вывела, в протокол записывался прочерк.

 

Верно - итоговое заключение (да или нет) о правильности результата работы программы при данных значениях х и у.

 

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

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

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


9
Задание 24 № 5223

 

Требовалось написать программу, при выполнении которой с клавиатуры считываются координаты точки на плоскости (x, y — действительные числа) и определяется принадлежность этой точки заданной закрашенной области (включая границы).

Ученик написал такую программу:

 

ПаскальБейсик

var x, y: real; begin

readln(x,у);

if у >= 1-х then begin

if у <= 2-2*x*x then write('принадлежит')

end else

if у >= x*x-5 then

write('принадлежит')

else

write('не принадлежит')

end.

INPUT х, у

IF у >= 1-х THEN

IF у <= 2-2*х*х THEN PRINT "принадлежит"

ELSE

IF у >= х*х-5 THEN

PRINT "принадлежит"

ELSE

PRINT "не принадлежит"

END IF

END IF

END

Си++Алгоритмический язык
#include <iostream>

using namespace std;

int main (){

float x, у;

cin >> x >> y;

if (y >= 1-х) {

if (y <= 2-2*x*x) cout << "принадлежит";

}

else

if (y >= x*x-5)

cout << "принадлежит";

else

cout << "не принадлежит";

}

алг

нач

вещ х, у

ввод х, у

если у >= 1-х то

если у <= 2-2*х*х то

вывод 'принадлежит'

все

иначе

если у >= х*х-5 то

вывод 'принадлежит'

иначе

вывод 'не принадлежит'

все

все

кон

Python

x,y = float(input())

if у >= 1-х:

    if у <= 2-2*x*x:

        print("принадлежит")

    else:

        if у >= x*x-5:

            print("принадлежит")

        else:

            print("не принадлежит")

 

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

 

ОбластьУсловие 1 (у >= 1-x)Условие 2 (y <= 2−2*x*x)Условие 3 (y >= x*x−5)ВыводВерно
принадлежитнет
не принадлежитда
да

 

Графы протокола содержат следующую информацию.

 

Область - часть плоскости, которой принадлежит проверяемая точка. (Все возможные области отмечены на рисунке буквами А, В, С, ... S.)

 

Условие 1, Условие2, Условие 3 — результат проверки соответствующего условия (да или нет). Если условие не проверялось, в протокол записывался прочерк.

 

Вывод — сообщение, которое вывела программа. Если программа ничего не вывела, в протокол записывался прочерк.

 

Верно — итоговое заключение (да или нет) о правильности результата работы программы при данных значениях х и у.

 

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

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

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


10
Задание 24 № 6276

Требовалось написать программу, которая вводит с клавиатуры координаты точки на плоскости (x, y — действительные числа) и определяет принадлежность точки заштрихованной области (включая границы). Программист торопился и написал программу неправильно. Ниже для Вашего удобства программа представлена на четырёх языках программирования.

БейсикПаскаль

INPUT x, y

IF y<=1 THEN

IF y>=x THEN

IF x>=-1 THEN

IF x*x+y*y<=1 THEN

PRINT "принадлежит"

ELSE

PRINT "не принадлежит"

END IF

END IF

END IF

END IF

END

var x,y: real;

begin

readln(x,y);

if y<=1 then

if y>=x then

if x>=-1 then

if x*x+y*y<=1 then

write('принадлежит')

else

write('не принадлежит');

end.

Си++Алгоритмический

#include <iostream>

using namespace std;

int main()

{

float x,y;

cin >> x >> y;

if (y<=1)

if (y>=x)

if (x>=-1)

if (x*x+y*y<=1)

cout << "принадлежит";

else

cout << "не принадлежит";

}

алг

нач

вещ x,y

ввод x,y

если y<=1 то

если y>=x то

если x>=-1 то

если x*x+y*y<=1 то

вывод 'принадлежит'

иначе

вывод 'не принадлежит'

все

все

все

все

кон

Python

x,y = float(input())

if y<=1:

    if y>=x:

        if x>=-1:

            if x*x+y*y<=1:

                print("принадлежит")

            else:

                print("не принадлежит")

 

 

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

 

1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A, B, C, D, E, F, G, H, I, J, K). Точки, лежащие на границах областей, отдельно не рассматривать. Координатные оси не являются границами областей. В столбцах условий укажите «да», если условие выполнится, «нет», если условие не выполнится, «—» (прочерк), если условие не будет проверяться, «не изв.», если программа ведёт себя по-разному для разных значений, принадлежащих данной области. В столбце «Программа выведет» укажите, что программа выведет на экран. Если программа ничего не выводит, напишите «—» (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите «не изв.». В последнем столбце укажите «да» или «нет».

 

ОбластьУсловие1 (y<=1)Условие 2 (y>=x)Условие 3

(x>=−1)

Условие 4 (x*x+y*y<=1)Программа

выведет

Область

обрабатывается

верно

A
В
С
D
Е
F
G
Н
I
J
K

 

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

Источник: ЕГЭ по информатике 08.07.2013. Вторая волна. Ва­ри­ант 501.

11
Задание 24 № 6348

Требовалось написать программу, которая вводит с клавиатуры координаты точки на плоскости (x, y — действительные числа) и определяет принадлежность точки заштрихованной области (включая границы). Программист торопился и написал программу неправильно. Ниже для Вашего удобства программа представлена на четырёх языках программирования.

 

БейсикПаскаль

INPUT x, y

IF x>=-1 THEN

IF y>=-1 THEN

IF y<=1 THEN

IF x*x+y*y<=1 THEN

PRINT "принадлежит"

ELSE

PRINT "не принадлежит"

END IF

END IF

END IF

END IF

END

var x,y: real;

begin

readln(x,y);

if x>=-1 then

if y>=-1 then

if y<=1 then

if x*x+y*y<=1 then

write('принадлежит')

else

write('не принадлежит');

end

Си++Алгоритмический

#include <iostream>

using namespace std;

int main()

{

float x,y;

cin >> x >> y;

if (x>=-1)

if (y>=-1)

if (y<=1)

if (x*x+y*y<=1)

cout << "принадлежит";

else

cout << "не принадлежит";

}

алг

нач

вещ x,y

ввод x,y

если x>=-1 то

если y>=-1 то

если y<=1 то

если x*x+y*y<=1 то

вывод 'принадлежит'

иначе

вывод 'не принадлежит'

все

все

все

все

кон

Python

x,y = float(input())

if x>=-1:

    if y>=-1:

        if y<=1:

            if x*x+y*y<=1:

                print("принадлежит")

            else:

                print("не принадлежит")

 

 

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

 

1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A, B, C, D, E, F, G, H, I). Точки, лежащие на границах областей, отдельно не рассматривать. Координатные оси не являются границами областей. В столбцах условий укажите «да», если условие выполнится, «нет», если условие не выполнится, «—» (прочерк), если условие не будет проверяться, «не изв.», если программа ведёт себя по-разному для разных значений, принадлежащих данной области. В столбце «Программа выведет» укажите, что программа выведет на экран. Если программа ничего не выводит, напишите «—» (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите «не изв.». В последнем столбце укажите «да» или «нет».

 

ОбластьУсловие1 (x>=–1)Условие 2 (y>=–1)Условие 3

(y<=1)

Условие 4 (x*x+y*y<=1)Программа

выведет

Область

обрабатывается верно

A
В
С
D
Е
F
G
Н
I

 

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

Источник: ЕГЭ по информатике 08.07.2013. Вторая волна. Ва­ри­ант 601.

12
Задание 24 № 6433

Требовалось написать программу, которая вводит с клавиатуры координаты точки на плоскости (x, y — действительные числа) и определяет принадлежность точки заштрихованной области (включая границы). Программист торопился и написал программу неправильно. Ниже для Вашего удобства программа представлена на четырёх языках программирования.

 

БейсикПаскаль

INPUT x, y

IF y>=-1 THEN

IF y<=x THEN

IF y<=0 THEN

IF x*x+y*y<=1 THEN

PRINT "принадлежит"

ELSE

PRINT "не принадлежит"

END IF

END IF

END IF

END IF

END

var x,y: real;

begin

readln(x,y);

if y>=-1 then

if y<=x then

if y<=0 then

if x*x+y*y<=1 then

write('принадлежит')

else

write('не принадлежит');

end.

Си++Алгоритмический

#include <iostream>

using namespace std;

int main()

{

float x,y;

cin >> x >> y;

if (y>=-1)

if (y<=x)

if (y<=0)

if (x*x+y*y<=1)

cout << "принадлежит";

else

cout << "не принадлежит";

}

алг

нач

вещ x,y

ввод x,y

если y>=-1 то

если y<=x то

если y<=0 то

если x*x+y*y<=1 то

вывод 'принадлежит'

иначе

вывод 'не принадлежит'

все

все

все

все

кон

Python

x,y = float(input())

if y>=-1:

    if y<=x:

        if y<=0:

            if x*x+y*y<=1:

                print("принадлежит")

            else:

                print("не принадлежит")

 

 

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

 

1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A, B, C, D, E, F, G, H, I, J, K). Точки, лежащие на границах областей, отдельно не рассматривать. Координатные оси не являются границами областей. В столбцах условий укажите «да», если условие выполнится, «нет», если условие не выполнится, «—» (прочерк), если условие не будет проверяться, «не изв.», если программа ведёт себя по-разному для разных значений, принадлежащих данной области. В столбце «Программа выведет» укажите, что программа выведет на экран. Если программа ничего не выводит, напишите «—» (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите «не изв.». В последнем столбце укажите «да» или «нет».

 

 

ОбластьУсловие1

(y>=–1)

Условие 2

(y<=x)

Условие 3

(y<=0)

Условие 4

(x*x+y*y<=1)

Программа

выведет

Область

обрабатывается

верно

A
В
С
D
Е
F
G
Н
I
J
K

 

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

Источник: ЕГЭ по информатике 08.07.2013. Вторая волна. Ва­ри­ант 602.

13
Задание 24 № 6469

Требовалось написать программу, которая вводит с клавиатуры координаты точки на плоскости (x, y — действительные числа) и определяет принадлежность точки заштрихованной области (включая границы). Программист торопился и написал программу неправильно. Ниже для Вашего удобства программа представлена на четырёх языках программирования.

БейсикПаскаль

INPUT x, y

IF y<=1-x THEN

 IF y>=0 THEN

  IF x>=0 THEN

   IF x*x+y*y<=1 THEN

    PRINT "принадлежит"

   ELSE

    PRINT "не принадлежит"

   END IF

  END IF

 END IF

END IF

END

var x,y: real;

begin

readln(x,y);

if y<=1-x then

if y>=0 then

if x>=0 then

if x*x+y*y<=1 then

write('принадлежит')

else

write('не принадлежит');

end.

Си++Алгоритмический язык

#include <iostream>

using namespace std;

int main()

{

float x,y;

cin >> x >> y;

if (y<=1-x)

if (y>=0)

if (x>=0)

if (x*x+y*y<=1)

cout << "принадлежит";

else

cout << "не принадлежит";

}

алг

нач

вещ x,y

ввод x,y

если y<=1-x то

если y>=0 то

если x>=0 то

если x*x+y*y<=1 то

вывод 'принадлежит'

иначе

вывод 'не принадлежит'

все

все

все

все

кон

Python

x,y = float(input())

if y<=1-x:

    if y>=0:

        if x>=0:

            if x*x+y*y<=1:

                print("принадлежит")

            else:

                print("не принадлежит")

 

 

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

 

1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A, B, C, D, E, F, G, H, I, J, K). Точки, лежащие на границах областей, отдельно не рассматривать. Координатные оси не являются границами областей. В столбцах условий укажите «да», если условие выполнится, «нет», если условие не выполнится, «—» (прочерк), если условие не будет проверяться, «не изв.», если программа ведёт себя по-разному для разных значений, принадлежащих данной области. В столбце «Программа выведет» укажите, что программа выведет на экран. Если программа ничего не выводит, напишите «—» (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите «не изв.». В последнем столбце укажите «да» или «нет».

 

ОбластьУсловие1 (y<=1–x)Условие 2 (y>=0)Условие 3

(x>=0)

Условие 4 (x*x+y*y<=1)Программа

выведет

Область

обрабатывается

верно

A
В
С
D
Е
F
G
Н
I
J
K

 

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

Источник: ЕГЭ по информатике 08.07.2013. Вторая волна. Ва­ри­ант 603.

14
Задание 24 № 6511

Требовалось написать программу, которая вводит с клавиатуры координаты точки на плоскости (x, y — действительные числа) и определяет принадлежность точки заштрихованной области (включая границы).

 

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

 

БейсикПаскаль

INPUT x, y

IF y>=-1 THEN

IF y<=1 THEN

IF (x+1)*(x+1)+y*y<=1 THEN

IF (x-1)*(x-1)+y*y<=1 THEN

PRINT "

принадлежит"

ELSE

PRINT "

не принадлежит"

END IF

END IF

END IF

END IF

END

var x,y: real;

begin

readln(x,y);

if y>=-1 then

if y<=1 then

if (x+1)*(x+1)+y*y<=1 then

if (x-1)*(x-1)+y*y<=1 then

write('принадлежит')

else

write('не принадлежит');

end.

Си++Алгоритмический

#include <iostream>

using namespace std;

int main()

{

float x,y;

cin >> x >> y;

if (y>=-1)

if (y<=1)

if ((x+1)*(x+1)+y*y<=1)

if ((x-1)*(x-1)+y*y<=1)

cout << "принадлежит";

else

cout << "не принадлежит";

}

алг

нач

вещ x,y

ввод x,y

если y>=-1 то

если y<=1 то

если (x+1)*(x+1)+y*y<=1 то

если (x-1)*(x-1)+y*y<=1 то

вывод 'принадлежит'

иначе

вывод 'не принадлежит'

все

все

все

все

кон

Python

x = float(input())

if y>=-1:

    if y<=1:

        if (x+1)*(x+1)+y*y<=1:

            if (x-1)*(x-1)+y*y<=1:

                print("принадлежит")

            else:

                print("не принадлежит")

 

 

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

 

1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A, B, C, D, E, F, G). Точки, лежащие на границах областей, отдельно не рассматривать. Координатные оси не являются границами областей. В столбцах условий укажите «да», если условие выполнится, «нет», если условие не выполнится, «—» (прочерк), если условие не будет проверяться, «не изв.», если программа ведёт себя по-разному для разных значений, принадлежащих данной области. В столбце «Программа выведет» укажите, что программа выведет на экран. Если программа ничего не выводит, напишите «—» (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите «не изв.». В последнем столбце укажите «да» или «нет».

 

ОбластьУсловие1 (y>=–1)Условие 2 (y<=1)Условие 3

((x+1)2+y2<=1)

Условие 4

((x–1)2+y2<=1)

Программа выведетОбласть обрабатывается

верно

A
В
С
D
Е
F
G

 

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

Источник: ЕГЭ по информатике 08.07.2013. Вторая волна. Ва­ри­ант 801.

Координатная плоскость. Парабола

Версия для печати и копирования в MS Word
1
Задание 24 № 2802

Требовалось написать программу, при выполнении которой с клавиатуры считываются координаты точки на плоскости (x, y — действительные числа) и определяется принадлежность этой точки заданной заштрихованной области (включая границы). Программист торопился и написал программу неправильно.

 

ПаскальБейсик

var x,y: real;

begin

readln(x,y);

if y<=x then

if y<=─x then

if y>=x*x─2 then

write('принадлежит')

else

write('не принадлежит')

end.

INPUT x, y

IF y<=x THEN

IF y<=-x THEN

IF y>=x*x-2 THEN

PRINT "принадлежит"

ELSE

PRINT "не принадлежит"

ENDIF

ENDIF

ENDIF

END

Си++Алгоритмический
int main(void)

{float x,y;

cin >> x >> y;

if (y<=x)

if (y<=-x)

if (y>=x*x-2)

cout << "принадлежит";

else

cout << "не принадлежит";

}

алг

нач

вещ x,y

ввод x,y

если y<=x то

    если y<=─x то

        если y>=x*x─2 то

            вывод 'принадлежит'

        иначе

            вывод 'не принадлежит'

        все

    все

все

кон

Python

x,y = float(input())

if y<=x:

    if y<=-x:

        if y>=x*x-2:

            print("принадлежит")

        else:

            print("не принадлежит")

 

 

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

1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A, B, C, D, E, F, G и H).

Точки, лежащие на границах областей, отдельно не рассматривать. В столбцах условий укажите "да", если условие выполнится, "нет", если условие не выполнится, "—" (прочерк), если условие не будет проверяться, "не изв.", если программа ведет себя по-разному для разных значений, принадлежащих данной области. В столбце "Программа выведет" укажите, что программа выведет на экран. Если программа ничего не выводит, напишите "—" (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите "не изв". В последнем столбце укажите "да" или "нет".

 

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

 

ОбластьУсловие 1

(y<=x)

Условие 2

(y<=-x)

Условие 3

(y>=x*x-2)

Программа выведетОбласть обрабатывается верно
A
В
С
D
Е
F
G
Н
Пояснение · ·

2
Задание 24 № 3601

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

 

ПаскальБейсик
var х, у: real;

begin

readln(х, у) ;

if у <= 2 * х * х then

if х >= −1 then

if у >= 1 then

write('принадлежит ')

else

write('не принадлежит')

end.

INPUT x, y

IF у <= 2 * x * x THEN

IF x >= -1 THEN

IF у >= 1 THEN

PRINT "принадлежит"

ELSE

PRINT "не принадлежит"

ENDIF

ENDIF

ENDIF

END

Си++Алгоритмический язык
int main (void)

{ float x, y;

cin >> x >> y;

if (y <= 2 * x * x)

if (x >= -1)

if (У >= 1)

cout << "принадлежит";

else

cout << "не принадлежит";

}

алг

нач

вещ х, у

ввод х, у

если у <= 2 * х * х то

если х >= -1 то

если у >= 1 то

вывод 'принадлежит'

иначе

вывод 'не принадлежит'

все

все

все

кон

Python

x,y = float(input())

if у <= 2 * x * x:

    if x >= -1:

        if у >= 1:

            print("принадлежит")

        else:

            print("не принадлежит")

 

 

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

1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A, B, C, D, E, F, G и H).

Точки, лежащие на границах областей, отдельно не рассматривать. В столбцах условий укажите "да", если условие выполнится, "нет", если условие не выполнится, "—" (прочерк), если условие не будет проверяться, "не изв.", если программа ведет себя по-разному для разных значений, принадлежащих данной области. В столбце "Программа выведет" укажите, что программа выведет на экран. Если программа ничего не выводит, напишите "—" (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите "не изв". В последнем столбце укажите "да" или "нет".

 

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

 

ОбластьУсловие 1

(у <= 2 * х * х)

Условие 2

(x >= −1)

Условие 3

(у >= 1)

Программа выведетОбласть обрабатывается верно
A
В
С
D
Е
F
G
Н
Пояснение · ·

3
Задание 24 № 3609

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

 

ПаскальБейсик
var х, у: real;

begin

readln(х, у) ;

if у >= −х * х then

if у >= −х − 2 then

if у <= 0 then

write('принадлежит')

else

write('не принадлежит')

end.

INPUT x, у

IF у >= -x * x THEN

IF у >= -x - 2 THEN

IF у <= 0 THEN

PRINT "принадлежит"

ELSE

PRINT "не принадлежит"

ENDIF

ENDIF

ENDIF

END

Си++Алгоритмический язык
int main(void)

{

float х, у;

cin >> x >> y;

if (y >= -x * x)

if (y >= -x - 2)

if (y <= 0)

cout << "принадлежит";

else

cout << "не принадлежит";

}

алг

нач

вещ х, у

ввод х, у

если у >= -х * х то

если y >= -х - 2 то

если у <= 0 то

вывод 'принадлежит'

иначе

вывод 'не принадлежит'

все

все

все

кон

Python

x,y = float(input())

if у >= -x * x:

    if у >= -x - 2:

        if у <= 0:

            print("принадлежит")

        else:

            print("не принадлежит")

 

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

1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A, B, C, D, E, F, G и H).

Точки, лежащие на границах областей, отдельно не рассматривать. В столбцах условий укажите "да", если условие выполнится, "нет", если условие не выполнится, "—" (прочерк), если условие не будет проверяться, "не изв.", если программа ведет себя по-разному для разных значений, принадлежащих данной области. В столбце "Программа выведет" укажите, что программа выведет на экран. Если программа ничего не выводит, напишите "—" (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите "не изв". В последнем столбце укажите "да" или "нет".

 

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

 

ОбластьУсловие 1

(у >= −х*х)

Условие 2

(у >= −х−2)

Условие 3

(у <= 0)

Программа выведетОбласть обрабатывается

верно

A
В
С
D
Е
F
G
Н

4
Задание 24 № 3613

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

 

ПаскальБейсик
var х, у: real;

begin

readln(х, у) ;

if х <= у * у then

if х >= 0 then

if у <= 1 then

write('принадлежит')

else

write{'не принадлежит')

end.

INPUT x, у

IF x <= у * y THEN

IF x >= 0 THEN

IF у <= 1 THEN

PRINT "принадлежит"

ELSE

PRINT "не принадлежит"

ENDIF

ENDIF

ENDIF

END

Си++Алгоритмический язык
int main(void)

{ float х, у;

cin >> x >> у;

if (x <= у * у)

if (x >= 0)

if (y <= 1)

cout << "принадлежит";

else

cout << "не принадлежит";

}

алг

нач

вещ х, у

ввод х, у

если х <= у * у то

если х >= 0 то

если у <= 1 то

вывод 'принадлежит'

иначе

вывод 'не принадлежит'

все

все

все

кон

Python

x,y = float(input())

if x <= у * y:

    if x >= 0:

        if у <= 1:

            print("принадлежит")

        else:

            print("не принадлежит")

 

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

1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A, B, C, D, E, F, G и H).

Точки, лежащие на границах областей, отдельно не рассматривать. В столбцах условий укажите "да", если условие выполнится, "нет", если условие не выполнится, "—" (прочерк), если условие не будет проверяться, "не изв.", если программа ведет себя по-разному для разных значений, принадлежащих данной области. В столбце "Программа выведет" укажите, что программа выведет на экран. Если программа ничего не выводит, напишите "—" (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите "не изв". В последнем столбце укажите "да" или "нет".

 

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

 

ОбластьУсловие 1

(x <= у * у)

Условие 2

(x >= 0)

Условие 3

(y <= 1)

Программа выведетОбласть обрабатывается

верно

A
В
С
D
Е
F
G
Н

5
Задание 24 № 3621

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

 

ПаскальБейсик
var х, у: real;

begin

readln(х, у);

if у <= -х * х then

if у <= 0 then

if у >= -х - 2 then

write('принадлежит')

else

write('не принадлежит')

end.

INPUT x, у

IF у <= -x * x THEN

IF у <= 0 THEN

IF у >= -x - 2 THEN

PRINT "принадлежит"

ELSE

PRINT "не принадлежит"

ENDIF

ENDIF

ENDIF

END

Си++Алгоритмический язык
int main (void)

{ float x, y;

cin >> x >> y;

if (y <= -x * x)

if (y <= 0)

if (y >= -x - 2)

cout << "принадлежит";

else

cout << "не принадлежит";

}

алг

нач

вещ х, у

ввод х, у

если у <= -х * х то

если у <= 0 то

если у >= -х - 2 то

вывод 'принадлежит'

иначе

вывод 'не принадлежит'

все

все

все

кон

Python

x,y = float(input())

if у <= -x * x:

    if у <= 0:

        if у >= -x - 2:

            print("принадлежит")

        else:

            print("не принадлежит")

 

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

1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A, B, C, D, E, F, G и H).

Точки, лежащие на границах областей, отдельно не рассматривать. В столбцах условий укажите "да", если условие выполнится, "нет", если условие не выполнится, "—" (прочерк), если условие не будет проверяться, "не изв.", если программа ведет себя по-разному для разных значений, принадлежащих данной области. В столбце "Программа выведет" укажите, что программа выведет на экран. Если программа ничего не выводит, напишите "—" (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите "не изв". В последнем столбце укажите "да" или "нет".

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

 

ОбластьУсловие 1

(y <= -x * x)

Условие 2

(у <= 0)

Условие 3

(у >= -х - 2)

Программа выведетОбласть обрабатывается

верно

A
В
С
D
Е
F
G
Н

6
Задание 24 № 3625

Требовалось написать программу, при выполнении которой с клавиатуры считываются координаты точки на плоскости (x, y – действительные числа) и определяется принадлежность этой точки заданной закрашенной области (включая границы). Программист торопился и написал программу неправильно.

 

ПаскальБейсик
var x,y: real;

begin

if y<=2+x then

if y>=0 then

if y>=x*x then

write('принадлежит')

else

write('не принадлежит')

end.

INPUT x, y

IF y<=2+x THEN

IF y>=0 THEN

IF y>=x*x THEN

PRINT "принадлежит"

ELSE

PRINT "не принадлежит"

ENDIF

ENDIF

ENDIF

END

Си++Алгоритмический язык
int main(void){

float x, y;

cin >> x >> y;

if (y<=2+x)

if (y>=0)

if (y>=x*x)

cout << "принадлежит";

else

cout << "не принадлежит";

}

нач

вещ x,y

ввод x,y

если y<=2+x то

если y>=0 то

если y>=x*x то

вывод 'принадлежит'

иначе

вывод 'не принадлежит'

все

все

все

кон

Python

x,y = float(input())

if y<=2+x:

    if y>=0:

        if y>=x*x:

            print("принадлежит")

        else:

            print("не принадлежит")

 

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

1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A, B, C, D, E, F, G и H).

Точки, лежащие на границах областей, отдельно не рассматривать. В столбцах условий укажите "да", если условие выполнится, "нет", если условие не выполнится, "—" (прочерк), если условие не будет проверяться, "не изв.", если программа ведет себя по-разному для разных значений, принадлежащих данной области. В столбце "Программа выведет" укажите, что программа выведет на экран. Если программа ничего не выводит, напишите "—" (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите "не изв". В последнем столбце укажите "да" или "нет".

 

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

 

ОбластьУсловие 1 (y<=2+x)Условие 2 (y>=0)Условие 3 (y>=x*x)Программа выведетОбласть обрабатывается

верно

A
В
С
D
Е
F
G
Н

7
Задание 24 № 3643

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

 

ПаскальБейсик
var х,у: real;

begin

readln(х,у);

if у<=х*х then

if х<=1.5 then

if y>=0 then

write('принадлежит ')

else

write ('не принадлежит');

end.

INPUT x, у

IF y<=x*x THEN

IF x<=1.5 THEN

IF y>=0 THEN

PRINT "принадлежит"

ELSE

PRINT "не принадлежит"

ENDIF

ENDIF

ENDIF

END

Си++Алгоритмический
int main(void)

{ float x,у;

cin >> x >> y;

if (y<=x*x)

if (x<=l.5)

if (y>=0)

cout << "принадлежит";

else

cout << "не принадлежит";

}

алг

нач

вещ x,y

ввод x,y

если у<=х*х то

    если х<=1.5 то

        если y>=0 то

            вывод 'принадлежит'

        иначе

            вывод 'не принадлежит'

        все

    все

все

кон

Python

x = float(input())

y = float(input())

if y<=x*x:

    if x<=1.5:

        if y>=0:

            print("принадлежит")

        else:

            print("не принадлежит")

 

 

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

1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A, B, C, D, E и F).

Точки, лежащие на границах областей, отдельно не рассматривать. В столбцах условий укажите "да", если условие выполнится, "нет", если условие не выполнится, "—" (прочерк), если условие не будет проверяться, "не изв.", если программа ведет себя по-разному для разных значений, принадлежащих данной области. В столбце "Программа выведет" укажите, что программа выведет на экран. Если программа ничего не выводит, напишите "—" (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите "не изв". В последнем столбце укажите "да" или "нет".

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

 

ОбластьУсловие 1

(у<=x*x)

Условие 2

(x<=1.5)

Условие 3

(y>=0)

Программа выведетОбласть обрабатывается

верно

A
В
С
D
Е
F

8
Задание 24 № 4531

Требовалось написать программу, при выполнении которой с клавиатуры считываются координаты точки на плоскости (x, y – действительные числа) и определяется принадлежность этой точки заданной закрашенной области (включая границы). Программист торопился и написал программу неправильно.

 

ПаскальБейсик
var x,y: real;

begin

readln(x,y);

if y>=x then

if y>=0 then

if y<=2-x*x then

write('принадлежит')

else

write('не принадлежит')

end.

INPUT x, y

IF y>=x THEN

IF y>=0 THEN

IF y<=2-x*x THEN

PRINT "принадлежит"

ELSE

PRINT "не принадлежит"

ENDIF

ENDIF

ENDIF

END

Си++Алгоритмический язык
int main(void){

float x,y;

cin >> x >> y;

if (y>=x)

if (y>=0)

if (y<=2-x*x)

cout << "принадлежит";

else

cout << "не принадлежит";

}

алг

нач

вещ x,y

ввод x,y

если y>=x то

если y>=0 то

если y<=2-x*x то

вывод 'принадлежит'

иначе

вывод 'не принадлежит'

все

все

все

кон

Python

x,y = float(input())

if y>=x:

    if y>=0:

        if y<=2-x*x:

            print("принадлежит")

        else:

            print("не принадлежит")

 

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

1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A, B, C, D, E, F, G и H).

Точки, лежащие на границах областей, отдельно не рассматривать. В столбцах условий укажите "да", если условие выполнится, "нет", если условие не выполнится, "—" (прочерк), если условие не будет проверяться, "не изв.", если программа ведет себя по-разному для разных значений, принадлежащих данной области. В столбце "Программа выведет" укажите, что программа выведет на экран. Если программа ничего не выводит, напишите "—" (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите "не изв". В последнем столбце укажите "да" или "нет".

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

 

 

ОбластьУсловие 1 (y>=x)Условие 2 (y>=0)Условие 3 (y<=2–x*x)Программа выведетОбласть обрабатывается

верно

A
В
С
D
Е
F
G
Н

9
Задание 24 № 4536

Требовалось написать программу, при выполнении которой с клавиатуры считываются координаты точки на плоскости (x, y – действительные числа) и определяется принадлежность этой точки заданной закрашенной области (включая границы). Программист торопился и написал программу неправильно.

 

 

 

ПаскальБейсик

var x,y: real;

begin

readln(x,y);

if y<=3-x*x then

if y>=0 then

if y>=x+1 then

write('принадлежит')

else

write('не принадлежит')

end.

INPUT x, y

IF y<=3-x*x THEN

IF y>=0 THEN

IF y>=x+1 THEN

PRINT "принадлежит"

ELSE

PRINT "не принадлежит"

END IF

END IF

END IF

END

Си++Алгоритмический
int main(void){

float x,y;

cin >> x >> y;

if (y<=3-x*x)

if (y>=0)

if (y>=x+1)

cout << "принадлежит";

else

cout << "не принадлежит";

}

алг

нач

вещ x,y

ввод x,y

если y<=3-x*x то

    если y>=0 то

        если y>=x+1 то

            вывод 'принадлежит'

        иначе

            вывод 'не принадлежит'

        все

    все

все

кон

Python

x,y = float(input())

if y<=3-x*x:

    if y>=0:

        if y>=x+1:

            print("принадлежит")

        else:

            print("не принадлежит")

 

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

1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A, B, C, D, E, F, G и H).

Точки, лежащие на границах областей, отдельно не рассматривать. В столбцах условий укажите "да", если условие выполнится, "нет", если условие не выполнится, "—" (прочерк), если условие не будет проверяться, "не изв.", если программа ведет себя по-разному для разных значений, принадлежащих данной области. В столбце "Программа выведет" укажите, что программа выведет на экран. Если программа ничего не выводит, напишите "—" (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите "не изв". В последнем столбце укажите "да" или "нет".

 

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

 

ОбластьУсловие 1 y<=3–x*xУсловие 2 (y>=0)Условие 3 (y>=x+1)Программа выведетОбласть обрабатывается

верно

A
В
С
D
Е
F
G
Н

10
Задание 24 № 4537

Требовалось написать программу, при выполнении которой с клавиатуры считываются координаты точки на плоскости (x, y – действительные числа) и определяется принадлежность этой точки заданной закрашенным областям (включая границы). Программист торопился и написал программу неправильно.

 

<
ПаскальБейсик