Вы отправили работу на проверку эксперту. Укажите номер телефона на него придет СМС
Скачать .pdf

Поиск и ис­прав­ле­ние ошибок в программе

Ответами к заданиям являются слово, словосочетание, число или последовательность слов, чисел.

1
1

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

Бейсик

DIM N AS LONG 
INPUT N
max digit = 0
WHILE N > 0
    digit = N \ 10
    IF digit > max digit THEN
        max digit = digit
    END IF
    N = N \ 10
WEND
PRINT digit
END

Паскаль

var N: longint;
иdigit, max digit: integer;
begin
    readln(N)
;
    max digit := 0;
    while N > 0 do
    begin
        digit := N div 10;
        if digit > max digit then
            max digit := digit;
        N := N div 10; end;
    writeln(digit);
end.

Си

#include <stdio.h> 
int main()
{
    long int N;
    int digit, max digit;
    scant("%ld", &N);
    max digit = 0;
    while (N > 0)
    {
        digit = N / 10;
        if (digit > max digit)
            max digit = digit;
        N = N / 10;
    }
    printf("%dM, digit);
}

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

алг
нач
    цел N, digit, max digit
    ввод N
    max digit := 0
    нц пока N > 0
        digit := div(N, 10)
        если digit > max digit то
            max digit := digit
        все
        N := div(N, 10)
    кц
    вывод digit
кон

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

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

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

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

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

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

2
2

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

Бейсик

DIM N AS LONG
DIM product AS LONG
INPUT N
product = 0
WHILE N > 0
    digit = N MOD 10
    product = product + digit
    N = N \ 10
WEND
PRINT product
END

Паскаль

var N, product: longint;
    digit: integer;
begin
    readln(N)
;
    product := 0; while N > 0 do
    begin
        digit := N mod 10; product := product + digit;
        N := N div 10;
    end;
    writeln(product);
end.

Си

#include <stdio.h> int main()
{
    long int N, product;
    int digit;
    scant("%ld", &N);
    product = 0;
    while (N > 0)
    {
    digit = N % 10;
    product = product + digit;
    N = N / 10;
    }
    printf("%d", product);
}

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

алг 
нач
    цел N, digit, product
    ввод N
    product := 0
    нц пока N > 0
        digit := mod(N, 10)
        product := product + digit
        N := div(N, 10)
    кц
    вывод product
кон

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

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

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

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

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

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

3
3

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

Бейсик

DIM N AS LONG INPUT N
min digit = 10
WHILE N > 0
    digit = N \ 10 IF digit < min digit THEN
        min digit = digit
    END IF
    N = N \ 10
WEND
PRINT digit
END

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

алг
нач
    цел N, digit, min digit
    ввод N
    min digit := 10
    нц пока N > 0
        digit := div(N, 10)
        если digit < min digit то
            min digit := digit
        все
        N := div(N, 10)
    кц
    вывод digit
кон

Паскаль

var N: longint;
    digit, min digit: integer;
    begin
    readln(N)
; min digit := 10;
    while N > 0 do
    begin
        digit := N div 10;
        if digit < min digit then
            min digit := digit;
        N := N div 10;
    end;
writeln(digit);
end.

Си

#include <stdio.h> 
int main()
{
    long int N;
    int digit, min digit;
    scant("%ld", &N);
    min digit = 10;
    while (N > 0)
    {
        digit = N / 10;
        if (digit < min digit)
            min digit = digit;
        N = N / 10;
    }
    printf("%d", digit);
}

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

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

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

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

4
4

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

Бейсик
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
Python
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 <stdio.h>
#define n 4

void main(void)
{
int i, x;
int maximum, count;
count = 0;
maximum = 1000;
for (i = 1; i <= n; i++)
{
scanf("%d",&x);
         if (x % 2 == 0)
{
count++;
if (x > maximum)
maximum = i;
         }
}
     if (count > 0)
{
printf("%d\n", count);
     printf("%d\n", maximum);
}
else
printf("NO\n");
}

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

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

2 9 4 3

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

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

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

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

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

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

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

5
5

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

Бейсик

DIM N AS LONG 
INPUT N
max digit = 0
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

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

алг
нач
    цел N, digit, max digit
    ввод N
    max digit := 0
    нц пока N >= 10
        digit := mod(N, 10)
        если digit < max digit to
            max digit := digit
        все
        N := div(N, 10)
    кц
    вывод max digit
кон

Паскаль

var N: longint;
    digit, max digit: integer;
begin
    readln(N)
;
    max digit := 0;
    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 <stdio.h> int main()
{
    long int N;
    int digit, max digit;
    scant("%ld", &N);
    max digit = 0;
    while (N >= 10)
    {
        digit = N % 10;
        if (digit < max digit)
            max digit = digit;
        N = N / 10;
    }
    printf("%dM, max digit);
}

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

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

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

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

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

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

6
6

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

Бейсик

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

Python

N = int(input())
sum = 0
while N > 0:
    digit = N % 10
    if digit < 7:
        sum = sum + 1
    N = N // 10
print(digit)

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

алг
нач
    цел N, digit, sum
    ввод N
    sum := 0
    нц пока N > 0
        digit := mod(N,10)
        если digit < 7 то
            sum := sum + 1
        все
        N := div(N,10)
    кц
    вывод 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.

Си

#include <stdio.h>
int main()
{
    int N, digit, sum;
    scanf("%d", &N);
    sum = 0;
    while (N > 0)
    {
        digit = N % 10;
        if (digit < 7)
            sum = sum + 1;
        N = N / 10;
    }
    printf("%d",digit);
    return 0;
}

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

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

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

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

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

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

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

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

7
7

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

Бейсик

DIM N AS LONG
DIM product AS LONG
INPUT N
product = 1
WHILE N > 0
    digit = N MOD 10
    digit = product * digit
    N = N \ 10
WEND
PRINT digit
END

Паскаль

var N, product: longint;
    digit: integer;
begin
    readln(N)
;
    product := 1;
    while N > 0 do
    begin
        digit := N mod 10;
        digit := product * digit;
        N := N div 10;
    end;
    writeln(digit);
end.

Си

#include <stdio.h>
int main()
{
    long int N, product;
    int digit;
    scant("%ld", &N);
    product = 1;
    while (N > 0)
    {
        digit = N % 10;
        digit = product * digit;
        N = N / 10;
    }
    printf("%d", digit);
}

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

алг
нач
    цел N, digit, product
    ввод N
    product := 1
    нц пока N > 0
        digit := mod(N, 10)
        digit := product * digit
        N := div(N, 10)
    кц
    вывод digit
кон

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

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

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

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

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

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

8
8

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

Бейсик


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

Python


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")

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


алг
нач
    цел N, digit, sum
    ввод N
    sum := mod(N,10)
    нц пока N > 0
        digit := mod(N,10)
        если mod(digit, 3) = 0 to
            sum : = digit
        все
        N := div(N,10)
    кц
    если sum > 0 to
        вывод sum
    иначе
        вывод "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.

Си

#include <stdio.h> int main()
{
    int N, digit, sum;
    scanf ("%d", &N);
    sum = N % 10;
    while (N > 0)
    {
        digit = N % 10;
        if (digit % 3 == 0)
            sum = digit;
        N = N / 10;
    }
    if (sum >0)
        printf("%d",sum);
    else
        printf("NO");
    return 0;
}

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

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

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

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

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

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

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

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

9
9

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

Бейсик

DIM N AS LONG
INPUT N
max digit = 9
WHILE N > 0
    digit = N MOD 10
    IF digit > max digit THEN
        digit = max 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 > 0 do
    begin
        digit := N mod 10;
        if digit > max digit then
            digit := max digit;
        N := N div 10;
    end;
    writeln(max digit);
end.

Си

#include <stdio.h>
int main()
{
    long int N;
    int digit, max digit;
    scant("%ld", &N);
    max digit = 9;
    while (N > 0)
    {
        digit = N % 10;
        if (digit > max digit)
            digit = max digit;
        N = N / 10;
    }
    printf(M%d", max digit);
}

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

алг
нач
    цел N, digit, max digit
    ввод N
    max digit := 9
    нц пока N > 0
        digit := mod(N, 10)
        если digit > max digit to
            digit := max digit
        все
        N := div(N, 10)
    кц
вывод max_digit
кон

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

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

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

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

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

10
10

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

Бейсик

CONST n = 4 
count = 0
sum = 0
FOR I = 1 ТО n
    INPUT x
    IF x mod 11 = 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
    цел i, х
    цел sum, count
    count := 0
    sum := 0
    нц для i от 1 до n
        ввод x
        если mod(x, 11) = 0 то
            count := count + 1
            sum := х
        все
    кц
    если sum > 0
    то
        вывод count, нс
        вывод sum, нс
    иначе
        вывод "NO"
    все
кон

Паскаль

const n = 4;
var i, x: integer;
var sum, count: integer;
begin
    count := 0;
    sum := 0;
    for i := 1 to n do
    begin
        read(x);
        if x mod 11 = 0 then
        begin
            count := count + 1;
            sum := x
        end
    end;
    if sum > 0 then
    begin
    writeln(count);
    writeln(sum)
    end
    else
        writeln('NO')
end.

Си

#define n 4 void main(void)
{
    int i, x;
    int sum, count;
    count = 0;
    sum = 0;
    for (i = 1; i <= n; i++)
#include <stdio.h>
    {
        scanf("%d", &x) ;
        if (x % 11 == 0)
        {
            count++;
            sum = x;
        }
    }
    if (sum > 0)
    {
        printf("%d\n", count);
        printf("%d\n", sum);
    }
    else
        printf("N0\n");
}

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

1. Напишите, что выведет эта программа при вводе последовательности: 22 33 65 45

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

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

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

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

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

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

0 из 10
Ваш ответ Правильный ответ

Здесь появится результат тестовой части.

Нажмите на кнопку «Завершить работу», чтобы увидеть правильные ответы.

2 401 432
Уже готовятся к ЕГЭ, ОГЭ и ВПР.
Присоединяйся!
Мы ничего не публикуем от вашего имени
или
Ответьте на пару вопросов
Вы...
Ученик Учитель Родитель
Уже зарегистрированы?