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


Каталог заданий.
Работа с цифрами числа

Пройти тестирование по этим заданиям
Вернуться к каталогу заданий
Версия для печати и копирования в 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;

    return 0;

}

 

 

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

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 № 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 Все


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

 

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


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

 

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


14
Задание 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 по информатике.

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

16
Задание 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 год.

17
Задание 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. До­сроч­ная волна по информатике

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

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

20
Задание 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 по информатике.

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

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

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


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

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

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


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

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

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

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


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

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

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


25
Задание 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. Основная волна, вариант А. Имаева — «Котолис».

26
Задание 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 по информатике., Де­мон­стра­ци­он­ная вер­сия ЕГЭ—2020 по информатике.

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

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

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


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

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

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


29
Задание 24 № 18600

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

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

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

 

 

Бей­сикPython

DIM N, M, K AS INTEGER

INPUT N

M = 0

K = 0

WHILE N >= 10

    IF N MOD 10 = 0 THEN

        K = K + 1

    ELSE

        K = 1

    END IF

    IF K > 0 THEN

        M = K

    END IF

    N = N \ 10

WEND

PRINT M

n = int(input())

m = 0

k = 0

while n>=10:

    if n % 10 == 0:

        k += 1

    else:

        k = 1

    if k > 0:

        m = k

    n //= 10

print(m)

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

var n, m, k: integer;

begin

    readln(n);

    m := 0;

    k := 0;

    while n >= 10 do begin

        if n mod 10 = 0

            then k := k + 1

        else k := 1;

        if k > 0 then

            m := k;

    n := n div 10;

    end;

    writeln(m)

end.

алг

нач

    цел n, m, k

    ввод n

    m := 0

    k := 0

    нц пока n >= 10

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

            то k := k + 1

        иначе k := 1

        все

        если k > 0

            то m := k

        все

        n := div(n,10)

    кц

    вывод m

кон

С++

#include <iostream>

using namespace std;

int main() {

    int n, m, k;

    cin >> n;

    m = 0;

    k = 0;

    while (n >= 10) {

        if (n % 10 == 0)

            k += 1;

        else

            k = 1;

        if (k > 0)

            m = k;

        n /= 10;

    }

    cout << m;

    return 0;

}

 

 

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

 

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

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

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

 

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

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


30
Задание 24 № 18803

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

 

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

 

 

Бей­сикPython

CONST n=4

count = 0

sum = 0

FOR I = 1 TO n

    INPUT x

    IF x mod 7 = 0 THEN

        count = count + 1

        sum = x

    END IF

NEXT I

IF sum > 0 THEN

    PRINT count

    PRINT sum

ELSE

    PRINT "NO"

END IF

n = 4

count = 0

sum = 0

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

    x = int(input())

    if x % 7 == 0:

        count = count + 1

        sum = x

if sum > 0:

    print(count)

    print(sum)

else:

    print("NO")

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

const n = 4;

var i, x, sum, count: integer;

begin

    count := 0;

    sum := 0;

    for i := 1 to n do begin

        read(x);

        if x mod 7 = 0 then

        begin

            count := count+1;

            sum := x;

        end

    end;

if sum > 0 then begin

    writeln(count);

    writeln(sum);

end

else

    writeln('NO')

end.

алг

нач

цел n = 4

    цел i, x, sum, count

    count := 0

    sum := 0

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

        ввод x

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

            count := count + 1

            sum := x

        все

    кц

    если sum > 0 то

        вывод count

        вывод sum

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

кон

С++

#include <iostream>

#define n 4

using namespace std;

int main(){

    int i, x, sum, count;

    count = 0;

    sum = 0;

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

        cin >> x;

        if(x % 7 == 0){

            count = count + 1;

            sum = x;

        }

    }

    if(sum > 0)

    {

        cout << count << endl;

        cout << sum << endl;

    }

    else

        cout << "NO";

    return 0;

}

 

 

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

1. На­пи­ши­те, что вы­ве­дет эта про­грам­ма при вводе по­сле­до­ва­тель­но­сти: 35 50 70 80.

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

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

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

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

 

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

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

Источник: ЕГЭ по информатике 13.06.2019. Основная волна, Центр. Вариант Имаева-Зубовой — «Котолис».

31
Задание 24 № 18830

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

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

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

Источник: ЕГЭ по информатике 13.06.2019. Основная волна, Юг-Центр.

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