Задача найти ошибку в программе

Автор материалов — Лада Борисовна Есакова.
Самая распространенная ошибка, которую нужно найти и исправить – это неправильное использование вложенных условных операторов. Для усложнения поиска возможно неправильное форматирование текста (неправильно поставленные отступы).

Для того, чтобы найти ошибку, нужно поставить в соответствие друг другу все части условного оператора if и else.

Помним, что часть else относится к ближайшему if. При этом наличие части else не обязательно.

Кроме того, часто присутствует ошибка при вводе или выводе. Обязательно нужно проверить, та ли информация выводится на экран.

Особого внимания требует инициализация переменных.

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

Пример 1.

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

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

return0;

}

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

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

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

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

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

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

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

Решение:

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

1. Про­грам­ма вы­ве­дет число 4.

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

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

3. В про­грам­ме есть две ошиб­ки.

Пер­вая ошиб­ка. Не­вер­ное уве­ли­че­ние суммы.

Стро­ка с ошиб­кой:

sum := sum + 1;

Вер­ное ис­прав­ле­ние:

sum := sum + digit;

Вто­рая ошиб­ка. Не­вер­ный вывод от­ве­та на экран.

Стро­ка с ошиб­кой:

writeln(digit)

Вер­ное ис­прав­ле­ние:

writeln(sum)

Пример 2.

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

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

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

 Бей­сик

Python

DIM A, S AS DOUBLE

DIM K AS INTEGER

INPUT A

K = 1

S = 1

WHILE S < A

S = S + 1.0/K

K = K + 1

WEND

PRINT K

END

a = float(input())

k = 1

s = 1

while s < a:

s = s + 1.0/k

k = k + 1

print(k)

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

Пас­каль

алг

нач

вещ a, s

цел k

ввод a

k := 1

s := 1

нц пока s<a

s := s + 1.0/k

k := k + 1

кц

вывод k

кон

var a, s: real;

k: integer;

begin

read(a);

k := 1;

s := 1;

while s<a do begin

s := s + 1.0/k;

k := k + 1;

end;

write(k);

end.

Си

#include <stdio.h>

int main(){

double a, s;

int k;

scanf(«%lf»,&a);

k = 1;

s = 1;

while (s<a) {

s = s + 1.0/k;

k = k + 1;

}

printf(«%d», k);

return 0;

}

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

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

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

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

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

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

Решение:

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

1. При вводе числа 1.2 про­грам­ма вы­ве­дет число 2.

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

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

В не­ко­то­рых слу­ча­ях эти ошиб­ки ком­пен­си­ру­ют друг друга, и ответ ока­зы­ва­ет­ся пра­виль­ным. Это про­ис­хо­дит, если зна­че­ние A по­па­да­ет в один из сле­ду­ю­щих диа­па­зо­нов: 1.5 < A < 1.83, 2 < A < 2.08.

3. Про­грам­ма со­дер­жит две ошиб­ки.

1) Не­вер­ная ини­ци­а­ли­за­ция. На­чаль­ное зна­че­ние S долж­но быть равно нулю.

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

Стро­ка с ошиб­кой:

s := 1;

Пра­виль­ная стро­ка:

s := 0;

2) Не­вер­ное опре­де­ле­ние от­ве­та. При­ведённая про­грам­ма на­хо­дит не мак­си­маль­ное K, при ко­то­ром вы­пол­ня­ет­ся не­ра­вен­ство, а ми­ни­маль­ное, при ко­то­ром оно не вы­пол­ня­ет­ся, то есть уве­ли­чи­ва­ет вер­ное зна­че­ние на 1.

Кроме того, ис­поль­зо­ван­ный по­ря­док дей­ствий в цикле (уве­ли­че­ние K после уве­ли­че­ния S) при­во­дит к уве­ли­че­нию ещё на 1. Это можно было бы ис­пра­вить, из­ме­нив по­ря­док дей­ствий в цикле и умень­шив K после за­вер­ше­ния цикла, но эти дей­ствия не раз­ре­ше­ны по усло­вию за­да­чи.

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

Стро­ка с ошиб­кой:

write(k);

Пра­виль­ная стро­ка:

write(k-2);

Спасибо за то, что пользуйтесь нашими материалами.
Информация на странице «Задача №24. Исправление ошибок в программе.» подготовлена нашими редакторами специально, чтобы помочь вам в освоении предмета и подготовке к ЕГЭ и ОГЭ.
Чтобы успешно сдать нужные и поступить в высшее учебное заведение или техникум нужно использовать все инструменты: учеба, контрольные, олимпиады, онлайн-лекции, видеоуроки, сборники заданий.
Также вы можете воспользоваться другими статьями из разделов нашего сайта.

Публикация обновлена:
07.06.2023

Всего: 44    1–20 | 21–40 | 41–44

Добавить в вариант

Задания Д24 C1 № 3640

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

Бейсик Python

INPUT a, b, x

IF a = 0 THEN

IF b = 0 THEN

PRINT «любое число»

ELSE

PRINT «нет решений»

ENDIF

ELSE

IF b = 0 THEN

PRINT «x =0»

ELSE

PRINT «x =»,b/a, «или x =»,-b/a

ENDIF

ENDIF

END

a = float(input())

b = float(input())

x = float(input())

if a == 0:

    if b == 0:

        print(‘любое число’)

    else:

        print(‘нет решений’)

else:

    if b == 0:

        print(‘x = 0’)

    else:

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

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

var a,b,x: real;

begin

readln(a,b,x);

if a = 0 then

    if b = 0 then

        write (‘любое число’)

    else

        write (‘нет решений’)

else

    if b = 0 then

        write(‘x = 0’)

    else

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

end.

алг

нач

    вещ a,b,x

    если a = 0 то

        если b = 0 то

            вывод «любое число»

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

        все

    иначе

        если b = 0 то

            вывод «x = 0»

        иначе

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

    все

кон

Си++

#include <iostream>

using namespace std;

int main(void)

{float a,b,x;

cin >> a >> b >> x;

if (a==0)

if (b==0)

cout << «любое число»;

else

cout << «нет решений»;

else

if (b==0)

cout << «x = 0»;

else

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

}

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

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

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

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


Задания Д24 C1 № 4568

i

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

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

INPUT x

IF x>=-3 THEN

IF x<=9 THEN

IF x>1 THEN

PRINT «не принадлежит»

ELSE

PRINT «принадлежит»

ENDIF

ENDIF

ENDIF

END

var x: real;

begin

readln(x);

if x>=-3 then

if x<=9 then

if x>1 then

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

else

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

end.

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

#include <iostream>

using namespace std;

int main(void)

{

float x;

cin >> x;

if(x>=-3)

if(x<=9)

if(x>1)

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

else

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

}

алг

нач

вещ x

ввод x

если x>=-3 то

если x<=9 то

если x>1 то

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

иначе

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

все

все

все

кон

Python

x = float(input())

if x >= -3:

    if x <= 9:

        if x > 1:

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

        else:

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

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

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

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

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

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

Задания Д24 C1 № 5288

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

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

INPUT х

IF х<=30 THEN

IF х<=20 THEN

IF х<=10 THEN

PRINT «не принадлежит»

ELSE

PRINT «принадлежит»

END IF

END IF

END IF

END

var х: real;

begin

readln(х);

if х<=30 then

if x<=20 then

if x<=10 then

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

else

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

end.

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

#include <iostream>

using namespace std;

int main()

{

float x;

cin >> x;

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

if (x<=10)

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

else

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

алг

нач

вещ х

ввод х

если х<=30 то

если х<=20 то

если х<=10 то

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

иначе

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

все

все

все

кон

Python

x = int(input())

if х <= 30:

    if x <= 20:

        if х <= 10:

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

        else:

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

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

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

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

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

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


Задания Д24 C1 № 5320

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

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

INPUT х

IF х<=30 THEN

IF х<=20 THEN

IF х<=10 THEN

PRINT «не принадлежит»

ELSE

PRINT «принадлежит»

END IF

END IF

END IF

END

var х: real;

begin

readln(х);

if х<=30 then

if x<=20 then

if x<=10 then

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

else

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

end.

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

#include <iostream>

using namespace std;

int main()

{

float x;

cin >> x;

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

if (x<=10)

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

else

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

}

алг

нач

вещ х

ввод х

если х<=30 то

если х<=20 то

если х<=10 то

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

иначе

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

все

все

все

кон

Python

x = int(input())

if х <= 30:

    if x <= 20:

        if х <= 10:

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

        else:

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

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

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

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

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

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


Задания Д24 C1 № 5468

i

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

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


Задания Д24 C1 № 5500

i

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

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


Задания Д24 C1 № 5596

i

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

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

DIM N AS LONG

DIM product AS LONG

INPUT N

product = 0

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 := 0;

    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 = 0;

    while (N >= 10)

    {

        digit = N % 10;

        product = product*digit;

        N = N / 10;

    }

    cout << product;

}

алг

нач

    цел N, digit, product

    ввод N

    product := 0

    нц пока N >= 10

        digit := mod(N, 10)

        product := product*digit

        N := div(N, 10)

    кц

    вывод product

кон

Python

n = int(input())

product = 0

while n >= 10:

    digit = n % 10

    product = product*digit

    n //= 10

print(product)

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

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

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

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

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

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


Задания Д24 C1 № 5692

i

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

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


Задания Д24 C1 № 5852

i

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

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

DIM N AS LONG

INPUT N

min_digit = 0

WHILE N > 0

    digit = N MOD 10

    IF digit > min_digit THEN

        min_digit = digit

    END IF

    N = N 10

WEND

PRINT min_digit

END

var N: longint;

    digit, min_digit: integer;

begin

    readln(N);

    min_digit := 0;

    while N > 0 do

    begin

        digit := N mod 10;

        if digit > min_digit then

            min_digit := digit;

        N := N div 10;

    end;

    writeln(min_digit);

end.

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

#include <iostream>

using namespace std;

int main ()

{

    long int N;

    int digit, min_digit;

    cin >> N;

    min_digit = 0;

    while (N > 0)

    {

        digit = N % 10;

        if (digit > min_digit)

            min_digit = digit;

        N = N / 10;

    }

    cout « min_digit « endl;

}

алг

нач

    цел N, digit, min_digit

    ввод N

    min_digit := 0

    нц пока N > 0

        digit := mod(N, 10)

        если digit > min_digit то

            min_digit := digit

        все

        N := div(N, 10)

    кц

    вывод min_digit

кон

Python

N = int(input())

min_digit = 0

while N > 0:

    digit = N % 10

    if digit > min_digit:

        min_digit = digit

    N //= 10;

print(min_digit)

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

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

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

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

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

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


Задания Д24 C1 № 5884

i

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

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

DIM N AS LONG

INPUT N

min_digit = 9

WHILE N >= 10

    digit = N MOD 10

    IF digit < min_digit THEN

        digit = min_digit

    END IF

    N = N 10

WEND

PRINT min_digit

END

var N: longint;

    digit, min_digit: integer;

begin

    readln(N);

    min_digit := 9;

    while N >= 10 do

    begin

        digit := N mod 10;

        if digit < min_digit then

            digit := min_digit;

        N := N div 10;

    end;

    writeln(min_digit);

end.

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

#include <iostream>

using namespace std;

int main()

{

    long int N;

    int digit, min_digit;

    cin >> N;

    min_digit = 9;

    while (N >= 10)

    {

        digit = N % 10;

        if (digit < min_digit)

            digit = min_digit;

        N = N / 10;

    }

    cout << min_digit << endl;

}

алг

нач

    цел N, digit, min_digit

    ввод N

    min_digit := 9

    нц пока N >= 10

        digit := mod(N, 10)

        если digit < min_digit то

            digit := min_digit

        все

        N := div(N, 10)

    кц

    вывод min_digit

кон

Python

n = int(input())

min_digit = 9

while n >= 10:

    digit = n % 10

    if digit < min_digit:

        digit = min_digit

    n //= 10

print(min_digit)

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

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

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

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

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

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


Задания Д24 C1 № 5948

i

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

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

DIM N AS LONG

INPUT N

min_digit = 0

WHILE N > 0

    digit = N MOD 10

    IF digit < min_digit THEN

        min_digit = digit

    END IF

    N = N 10

WEND

PRINT digit

END

var N: longint;

    digit, min_digit: integer;

begin

    readln(N);

    min_digit := 0;

    while N > 0 do

    begin

        digit := N mod 10;

        if digit < min_digit then

            min_digit := digit;

        N := N div 10;

    end;

    writeln(digit);

end.

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

#include <iostream>

using namespace std;

int main()

{

    long int N;

    int digit, min_digit;

    cin >> N;

    min_digit = 0;

    while (N > 0)

    {

        digit = N % 10;

        if (digit < min_digit)

            min_digit = digit;

        N = N / 10;

    }

    cout « digit « endl;

}

алг

нач

    цел N, digit, min_digit

    ввод N

    min_digit := 0

    нц пока N > 0

        digit := mod(N, 10)

        если digit < min_digit то

            min_digit := digit

        все

        N := div(N, 10)

    кц

    вывод digit

кон

Python

n = int(input())

min_digit = 0

while n > 0:

    digit = n % 10

    if digit < min_digit:

        min_digit = digit

    n //= 10

print(digit)

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

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

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

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

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

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


Задания Д24 C1 № 5980

i

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

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

DIM N AS LONG

INPUT N

min_digit = 9

WHILE N >= 10

digit = N MOD 10

IF digit < min_digit THEN

min_digit = digit

END IF

N = N 10

WEND

PRINT digit

END

var N: longint;

digit, min_digit: integer;

begin

readln(N);

min_digit := 9;

while N >= 10 do

begin

digit := N mod 10;

if digit < min_digit then

min_digit := digit;

N := N div 10;

end;

writeln(digit);

end.

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

#include <iostream>

using namespace std;

int main()

{

long int N;

int digit, min_digit;

cin >> N;

min_digit = 9;

while (N >= 10)

{

digit = N % 10;

if (digit < min_digit)

min_digit = digit;

N = N / 10;

}

cout « digit « endl;

}

алг

нач

цел N, digit, min_digit

ввод N

min_digit := 9

нц пока N >= 10

digit := mod(N, 10)

если digit < min_digit то

min_digit := digit

все

N := div(N, 10)

кц

вывод digit

кон

Python

N = int(input())

min_digit = 9

while N >= 10:

    digit = N % 10

    if digit < min_digit:

        min_digit = digit

    N //= 10

print(digit)

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

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

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

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

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

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


Задания Д24 C1 № 6014

i

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

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


Задания Д24 C1 № 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)  Укажите, как исправить ошибку  — приведите правильный вариант строки.

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


Задания Д24 C1 № 7000

Требовалось написать программу, которая получает на вход натуральное число N, не превосходящее 109, и выводит число, которое получается из N после удаления всех пятёрок, порядок остальных цифр при этом не меняется. Например, число 19520125 должно быть преобразовано в число 192012. Число, в котором все цифры – пятёрки и нули, должно быть преобразовано в 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 <> 5 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<>5 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 != 5) {

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 <> 5 то

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 != 5:

        R += d*T

        T += 1

    n //= 10;

print(T)

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

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

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

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

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

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


Задания Д24 C1 № 7469

i

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

Бейсик Python

CONST n = 4

count = 0

maximum = 999

FOR I = 1 TO n

INPUT x

IF x mod 2 <> 0 THEN

count = count + 1

IF x > maximum THEN

maximum = I

END IF

END IF

NEXT I

IF count > 0 THEN

PRINT count

PRINT maximum

ELSE

PRINT «NO»

END IF

n = 4

count = 0

maximum = 999

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

    x = int(input())

    if x % 2 != 0:

        count += 1

        if x > maximum:

            maximum = i

if count > 0:

    print(count)

    print(maximum)

else:

    print(«NO»)

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

const n = 4;

var i, x: integer;

var maximum, count: integer;

begin

count := 0;

maximum := 999;

for i := 1 to n do

begin

read(x);

if x mod 2 <> 0 then

begin

count := count + 1;

if x > maximum then

maximum := i

end

end;

if count > 0 then

begin

writeln(count);

writeln(maximum);

end

else

writeln(‘NO’)

end.

алг

нач

цел n = 4

цел i, x

цел maximum, count

count := 0

maximum := 999

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

ввод x

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

count := count + 1

если x > maximum то

maximum := i

все

все

кц

если count > 0 то

вывод count, нс

вывод maximum

иначе

вывод «NO»

все

кон

Си++

#include <iostream>

using namespace std;

int main(void)

{

const int n = 4;

int i, x, maximum, count;

count = 0;

maximum = 999;

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

cin >> x;

if (x % 2 != 0) {

count++;

if (x > maximum)

maximum = i;

}

}

if (count > 0) {

cout << count << endl;

cout << maximum << endl;

}

else

cout << «NOn»;

}

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

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

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

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

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

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

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


Задания Д24 C1 № 7681

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

Бейсик Python

DIM N AS LONG

INPUT N

sum = 1

WHILE N > 0

D = N MOD 10

N = N 10

sum = d

WEND

PRINT sum

END

N = int(input())

sum = 1

while N > 0:

    d = N%10

    N = N // 10

    sum = d

print(sum)

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

var N: longint;

sum, d: integer;

begin

readln(N);

sum := 1;

while N > 0 do

begin

d := N mod 10;

N := N div 10;

sum := d;

end;

writeln(sum);

end.

алг

нач

цел N, d, sum

ввод N

sum := 1

нц пока N > 0

d := mod(N, 10)

N := div(N, 10)

sum := d

кц

вывод sum

кон

Си++

#include <iostream>

using namespace std;

int main() {

long int N;

int sum, d;

cin >> N;

sum = 1;

while (N > 0) {

d = N%10;

N = N / 10;

sum = d;

}

cout « sum « endl;

return 0;

}

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

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

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

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

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

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

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


Задания Д24 C1 № 7708

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

Бейсик Python

DIM N AS LONG

INPUT N

sum = 1

WHILE N > 0

D = N MOD 10

N = N 10

sum = sum + 1

WEND

PRINT sum

END

N = int(input())

sum = 1

while N > 0:

    d = N%10

    N = N // 10

    sum = sum + 1

print(sum)

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

var N: longint;

sum, d: integer;

begin

readln(N);

sum := 1;

while N > 0 do

begin

d := N mod 10;

N := N div 10;

sum := sum + 1;

end;

writeln(sum);

end.

алг

нач

цел N, d, sum

ввод N

sum := 1

нц пока N > 0

d := mod(N, 10)

N := div(N, 10)

sum := sum + 1

кц

вывод sum

кон

Си++

#include

int main() {

long int N;

int sum, d;

cin >> N;

sum = 1;

while (N > 0) {

d = N%10;

N = N / 10;

sum = sum + 1;

}

cout « sum « endl;

return 0;

}

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

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

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

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

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

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

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


Задания Д24 C1 № 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)  укажите, как исправить ошибку, т. е. приведите правильный вариант строки.

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


Задания Д24 C1 № 7796

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

Бейсик Python

INPUT x

cnt = 0

WHILE x > 0

cnt = cnt + 1

x = x MOD 2

WEND

PRINT cnt

END

x = int(input())

cnt = 0

while x > 0:

    cnt = cnt+1

    x = x % 2

print(cnt)

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

var x,cnt: integer;

begin

readln(x);

cnt := 0;

while x > 0 do

begin

cnt:=cnt + 1;

x := x mod 2

end;

writeln(cnt)

end.

алг

нач

цел x, cnt

ввод x

cnt := 0

нц пока x > 0

cnt := cnt+1

x := mod(x, 2)

кц

вывод cnt

кон

Си++

#include <iostream>

using namespace std;

int main()

{

int x,cnt;

cin >> x;

cnt = 0;

while (x > 0)

{

cnt = cnt + 1;

x = x % 2;

}

cout « cnt « endl;

}

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

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

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

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

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

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

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

Всего: 44    1–20 | 21–40 | 41–44



Скачать материал



Скачать материал

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

INPUT x

IF x>=-3 THEN

IF x<=9 THEN

IF x>1 THEN

PRINT «не принадлежит»

ELSE

PRINT «принадлежит»

ENDIF

ENDIF

ENDIF

END

var x: real;

begin

readln(x);

if x>=-3 then

if x<=9 then

if x>1 then

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

else

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

end.

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

#include <iostream>

using namespace std;

int main(void)

{

float x;

cin >> x;

if(x>=-3)

if(x<=9)

if(x>1)

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

else

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

}

алг

нач

вещ x

ввод x

если x>=-3 то

если x<=9 то

если x>1 то

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

иначе

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

все

все

все

кон

Python

x = float(input())

if x >= -3:

    if x <= 9:

        if x > 1:

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

        else:

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

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

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

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

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

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

Задания Д24 C1 № 5288

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

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

INPUT х

IF х<=30 THEN

IF х<=20 THEN

IF х<=10 THEN

PRINT «не принадлежит»

ELSE

PRINT «принадлежит»

END IF

END IF

END IF

END

var х: real;

begin

readln(х);

if х<=30 then

if x<=20 then

if x<=10 then

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

else

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

end.

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

#include <iostream>

using namespace std;

int main()

{

float x;

cin >> x;

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

if (x<=10)

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

else

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

алг

нач

вещ х

ввод х

если х<=30 то

если х<=20 то

если х<=10 то

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

иначе

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

все

все

все

кон

Python

x = int(input())

if х <= 30:

    if x <= 20:

        if х <= 10:

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

        else:

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

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

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

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

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

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


Задания Д24 C1 № 5320

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

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

INPUT х

IF х<=30 THEN

IF х<=20 THEN

IF х<=10 THEN

PRINT «не принадлежит»

ELSE

PRINT «принадлежит»

END IF

END IF

END IF

END

var х: real;

begin

readln(х);

if х<=30 then

if x<=20 then

if x<=10 then

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

else

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

end.

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

#include <iostream>

using namespace std;

int main()

{

float x;

cin >> x;

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

if (x<=10)

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

else

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

}

алг

нач

вещ х

ввод х

если х<=30 то

если х<=20 то

если х<=10 то

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

иначе

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

все

все

все

кон

Python

x = int(input())

if х <= 30:

    if x <= 20:

        if х <= 10:

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

        else:

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

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

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

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

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

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


Задания Д24 C1 № 5468

i

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

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


Задания Д24 C1 № 5500

i

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

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


Задания Д24 C1 № 5596

i

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

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

DIM N AS LONG

DIM product AS LONG

INPUT N

product = 0

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 := 0;

    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 = 0;

    while (N >= 10)

    {

        digit = N % 10;

        product = product*digit;

        N = N / 10;

    }

    cout << product;

}

алг

нач

    цел N, digit, product

    ввод N

    product := 0

    нц пока N >= 10

        digit := mod(N, 10)

        product := product*digit

        N := div(N, 10)

    кц

    вывод product

кон

Python

n = int(input())

product = 0

while n >= 10:

    digit = n % 10

    product = product*digit

    n //= 10

print(product)

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

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

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

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

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

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


Задания Д24 C1 № 5692

i

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

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


Задания Д24 C1 № 5852

i

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

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

DIM N AS LONG

INPUT N

min_digit = 0

WHILE N > 0

    digit = N MOD 10

    IF digit > min_digit THEN

        min_digit = digit

    END IF

    N = N 10

WEND

PRINT min_digit

END

var N: longint;

    digit, min_digit: integer;

begin

    readln(N);

    min_digit := 0;

    while N > 0 do

    begin

        digit := N mod 10;

        if digit > min_digit then

            min_digit := digit;

        N := N div 10;

    end;

    writeln(min_digit);

end.

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

#include <iostream>

using namespace std;

int main ()

{

    long int N;

    int digit, min_digit;

    cin >> N;

    min_digit = 0;

    while (N > 0)

    {

        digit = N % 10;

        if (digit > min_digit)

            min_digit = digit;

        N = N / 10;

    }

    cout « min_digit « endl;

}

алг

нач

    цел N, digit, min_digit

    ввод N

    min_digit := 0

    нц пока N > 0

        digit := mod(N, 10)

        если digit > min_digit то

            min_digit := digit

        все

        N := div(N, 10)

    кц

    вывод min_digit

кон

Python

N = int(input())

min_digit = 0

while N > 0:

    digit = N % 10

    if digit > min_digit:

        min_digit = digit

    N //= 10;

print(min_digit)

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

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

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

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

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

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


Задания Д24 C1 № 5884

i

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

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

DIM N AS LONG

INPUT N

min_digit = 9

WHILE N >= 10

    digit = N MOD 10

    IF digit < min_digit THEN

        digit = min_digit

    END IF

    N = N 10

WEND

PRINT min_digit

END

var N: longint;

    digit, min_digit: integer;

begin

    readln(N);

    min_digit := 9;

    while N >= 10 do

    begin

        digit := N mod 10;

        if digit < min_digit then

            digit := min_digit;

        N := N div 10;

    end;

    writeln(min_digit);

end.

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

#include <iostream>

using namespace std;

int main()

{

    long int N;

    int digit, min_digit;

    cin >> N;

    min_digit = 9;

    while (N >= 10)

    {

        digit = N % 10;

        if (digit < min_digit)

            digit = min_digit;

        N = N / 10;

    }

    cout << min_digit << endl;

}

алг

нач

    цел N, digit, min_digit

    ввод N

    min_digit := 9

    нц пока N >= 10

        digit := mod(N, 10)

        если digit < min_digit то

            digit := min_digit

        все

        N := div(N, 10)

    кц

    вывод min_digit

кон

Python

n = int(input())

min_digit = 9

while n >= 10:

    digit = n % 10

    if digit < min_digit:

        digit = min_digit

    n //= 10

print(min_digit)

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

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

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

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

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

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


Задания Д24 C1 № 5948

i

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

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

DIM N AS LONG

INPUT N

min_digit = 0

WHILE N > 0

    digit = N MOD 10

    IF digit < min_digit THEN

        min_digit = digit

    END IF

    N = N 10

WEND

PRINT digit

END

var N: longint;

    digit, min_digit: integer;

begin

    readln(N);

    min_digit := 0;

    while N > 0 do

    begin

        digit := N mod 10;

        if digit < min_digit then

            min_digit := digit;

        N := N div 10;

    end;

    writeln(digit);

end.

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

#include <iostream>

using namespace std;

int main()

{

    long int N;

    int digit, min_digit;

    cin >> N;

    min_digit = 0;

    while (N > 0)

    {

        digit = N % 10;

        if (digit < min_digit)

            min_digit = digit;

        N = N / 10;

    }

    cout « digit « endl;

}

алг

нач

    цел N, digit, min_digit

    ввод N

    min_digit := 0

    нц пока N > 0

        digit := mod(N, 10)

        если digit < min_digit то

            min_digit := digit

        все

        N := div(N, 10)

    кц

    вывод digit

кон

Python

n = int(input())

min_digit = 0

while n > 0:

    digit = n % 10

    if digit < min_digit:

        min_digit = digit

    n //= 10

print(digit)

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

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

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

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

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

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


Задания Д24 C1 № 5980

i

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

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

DIM N AS LONG

INPUT N

min_digit = 9

WHILE N >= 10

digit = N MOD 10

IF digit < min_digit THEN

min_digit = digit

END IF

N = N 10

WEND

PRINT digit

END

var N: longint;

digit, min_digit: integer;

begin

readln(N);

min_digit := 9;

while N >= 10 do

begin

digit := N mod 10;

if digit < min_digit then

min_digit := digit;

N := N div 10;

end;

writeln(digit);

end.

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

#include <iostream>

using namespace std;

int main()

{

long int N;

int digit, min_digit;

cin >> N;

min_digit = 9;

while (N >= 10)

{

digit = N % 10;

if (digit < min_digit)

min_digit = digit;

N = N / 10;

}

cout « digit « endl;

}

алг

нач

цел N, digit, min_digit

ввод N

min_digit := 9

нц пока N >= 10

digit := mod(N, 10)

если digit < min_digit то

min_digit := digit

все

N := div(N, 10)

кц

вывод digit

кон

Python

N = int(input())

min_digit = 9

while N >= 10:

    digit = N % 10

    if digit < min_digit:

        min_digit = digit

    N //= 10

print(digit)

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

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

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

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

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

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


Задания Д24 C1 № 6014

i

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

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


Задания Д24 C1 № 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)  Укажите, как исправить ошибку  — приведите правильный вариант строки.

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


Задания Д24 C1 № 7000

Требовалось написать программу, которая получает на вход натуральное число N, не превосходящее 109, и выводит число, которое получается из N после удаления всех пятёрок, порядок остальных цифр при этом не меняется. Например, число 19520125 должно быть преобразовано в число 192012. Число, в котором все цифры – пятёрки и нули, должно быть преобразовано в 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 <> 5 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<>5 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 != 5) {

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 <> 5 то

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 != 5:

        R += d*T

        T += 1

    n //= 10;

print(T)

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

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

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

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

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

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


Задания Д24 C1 № 7469

i

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

Бейсик Python

CONST n = 4

count = 0

maximum = 999

FOR I = 1 TO n

INPUT x

IF x mod 2 <> 0 THEN

count = count + 1

IF x > maximum THEN

maximum = I

END IF

END IF

NEXT I

IF count > 0 THEN

PRINT count

PRINT maximum

ELSE

PRINT «NO»

END IF

n = 4

count = 0

maximum = 999

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

    x = int(input())

    if x % 2 != 0:

        count += 1

        if x > maximum:

            maximum = i

if count > 0:

    print(count)

    print(maximum)

else:

    print(«NO»)

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

const n = 4;

var i, x: integer;

var maximum, count: integer;

begin

count := 0;

maximum := 999;

for i := 1 to n do

begin

read(x);

if x mod 2 <> 0 then

begin

count := count + 1;

if x > maximum then

maximum := i

end

end;

if count > 0 then

begin

writeln(count);

writeln(maximum);

end

else

writeln(‘NO’)

end.

алг

нач

цел n = 4

цел i, x

цел maximum, count

count := 0

maximum := 999

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

ввод x

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

count := count + 1

если x > maximum то

maximum := i

все

все

кц

если count > 0 то

вывод count, нс

вывод maximum

иначе

вывод «NO»

все

кон

Си++

#include <iostream>

using namespace std;

int main(void)

{

const int n = 4;

int i, x, maximum, count;

count = 0;

maximum = 999;

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

cin >> x;

if (x % 2 != 0) {

count++;

if (x > maximum)

maximum = i;

}

}

if (count > 0) {

cout << count << endl;

cout << maximum << endl;

}

else

cout << «NOn»;

}

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

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

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

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

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

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

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


Задания Д24 C1 № 7681

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

Бейсик Python

DIM N AS LONG

INPUT N

sum = 1

WHILE N > 0

D = N MOD 10

N = N 10

sum = d

WEND

PRINT sum

END

N = int(input())

sum = 1

while N > 0:

    d = N%10

    N = N // 10

    sum = d

print(sum)

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

var N: longint;

sum, d: integer;

begin

readln(N);

sum := 1;

while N > 0 do

begin

d := N mod 10;

N := N div 10;

sum := d;

end;

writeln(sum);

end.

алг

нач

цел N, d, sum

ввод N

sum := 1

нц пока N > 0

d := mod(N, 10)

N := div(N, 10)

sum := d

кц

вывод sum

кон

Си++

#include <iostream>

using namespace std;

int main() {

long int N;

int sum, d;

cin >> N;

sum = 1;

while (N > 0) {

d = N%10;

N = N / 10;

sum = d;

}

cout « sum « endl;

return 0;

}

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

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

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

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

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

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

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


Задания Д24 C1 № 7708

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

Бейсик Python

DIM N AS LONG

INPUT N

sum = 1

WHILE N > 0

D = N MOD 10

N = N 10

sum = sum + 1

WEND

PRINT sum

END

N = int(input())

sum = 1

while N > 0:

    d = N%10

    N = N // 10

    sum = sum + 1

print(sum)

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

var N: longint;

sum, d: integer;

begin

readln(N);

sum := 1;

while N > 0 do

begin

d := N mod 10;

N := N div 10;

sum := sum + 1;

end;

writeln(sum);

end.

алг

нач

цел N, d, sum

ввод N

sum := 1

нц пока N > 0

d := mod(N, 10)

N := div(N, 10)

sum := sum + 1

кц

вывод sum

кон

Си++

#include

int main() {

long int N;

int sum, d;

cin >> N;

sum = 1;

while (N > 0) {

d = N%10;

N = N / 10;

sum = sum + 1;

}

cout « sum « endl;

return 0;

}

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

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

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

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

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

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

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


Задания Д24 C1 № 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)  укажите, как исправить ошибку, т. е. приведите правильный вариант строки.

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


Задания Д24 C1 № 7796

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

Бейсик Python

INPUT x

cnt = 0

WHILE x > 0

cnt = cnt + 1

x = x MOD 2

WEND

PRINT cnt

END

x = int(input())

cnt = 0

while x > 0:

    cnt = cnt+1

    x = x % 2

print(cnt)

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

var x,cnt: integer;

begin

readln(x);

cnt := 0;

while x > 0 do

begin

cnt:=cnt + 1;

x := x mod 2

end;

writeln(cnt)

end.

алг

нач

цел x, cnt

ввод x

cnt := 0

нц пока x > 0

cnt := cnt+1

x := mod(x, 2)

кц

вывод cnt

кон

Си++

#include <iostream>

using namespace std;

int main()

{

int x,cnt;

cin >> x;

cnt = 0;

while (x > 0)

{

cnt = cnt + 1;

x = x % 2;

}

cout « cnt « endl;

}

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

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

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

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

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

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

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

Всего: 44    1–20 | 21–40 | 41–44



Скачать материал



Скачать материал

  • Сейчас обучается 27 человек из 18 регионов

  • Сейчас обучается 39 человек из 26 регионов

  • Сейчас обучается 29 человек из 22 регионов

Описание презентации по отдельным слайдам:

  • С1- 1. Требовалось написать программу, которая решает уравнение ax+b=0 относи...

    2 слайд

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

  • Program urav; var a, b, x: real; begin readln(a,b,x); If b = 0 then write('x ...

    3 слайд

    Program urav; var a, b, x: real; begin readln(a,b,x); If b = 0 then write(‘x = 0’) else If a = 0 then write(‘нет решений’) else write(‘x =’,-b/a); end.

  • Последовательно выполните задания: Приведите пример таких чисел a, b, x , при...

    4 слайд

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

  • a=0, b=0, x=0 (выдается 0, а должно быть любое число) Лишняя часть программы...

    5 слайд

    a=0, b=0, x=0 (выдается 0, а должно быть любое число) Лишняя часть программы – использование и ввод переменной x. Program C1_1; var a,b: real; begin write(‘Введите a и b’); readln(a,b); if a = 0 then if b = 0 then write(‘любое число’) else write(‘нет решений’) else write(‘x=’, -b/a:8:2); Readln; End.

  • С1-2. В программе вводятся с клавиатуры три различных целых числа a, b, c. Да...

    6 слайд

    С1-2. В программе вводятся с клавиатуры три различных целых числа a, b, c. Далее требуется преобразовать данные так, чтобы в переменной а оказалось наименьшее число, в переменной b среднее число, а в переменной с — наибольшее . Программист торопился и написал программу неправильно.

  • Program tri_chisla; Var a, b, c, x : integer; Begin Write(‘Введите a, b, c’);...

    7 слайд

    Program tri_chisla; Var a, b, c, x : integer; Begin Write(‘Введите a, b, c’); readln(a, b, c); If a>b then begin x:= a; a:= b; b:= x; end; If b>c then begin x:= b; b:= c; c:= x; end; end.

  • Последовательно выполните задания: Приведите пример таких чисел a, b, c , пос...

    8 слайд

    Последовательно выполните задания: Приведите пример таких чисел a, b, c , после обработки которых исходной программой соотношение a<b<c не будет выполнено. Исправьте ошибку в программе так, чтобы она полностью соответствовала постановке задачи. Решение

  • 1) A=5, b=7, c=2 (Программа работает неправильно, если минимальное число ввод...

    9 слайд

    1) A=5, b=7, c=2 (Программа работает неправильно, если минимальное число вводится последним и попадает в переменную c). Program C1_2; var a, b, c, x: integer; Begin write(‘Введите три числа’); read(a, b, c); if a > b then begin x:=a; a:=b; b:=x; end; if b > c then begin x:=b; b:=c; c:=x; end; if a > b then begin x:=a; a:=b; b:=x; end; write(‘Упорядоченная последовательность чисел:’); writeln(a:5, b:5, c:5); readln; end.

  • С1-3. Требовалось написать программу, которая решает уравнение а|x|=b относит...

    10 слайд

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

  • Program modul; Var a, b, x : Real; Begin Readln(a, b, x); If a=0 then If b=0...

    11 слайд

    Program modul; Var a, b, x : Real; Begin Readln(a, b, x); If a=0 then If b=0 then Write(‘Любое число’) else Write(‘Решений нет’) else If b=0 then Write(‘x=0’) else Write(‘x=’,b/a, ‘или x=‘,-b/a); End.

  • Последовательно выполните задания: Приведите пример таких чисел a, b, x, при...

    12 слайд

    Последовательно выполните задания: Приведите пример таких чисел a, b, x, при которых программа работает неправильно. Укажите, какая часть программы является лишней. Доработайте программу так, чтобы не было случаев ее неправильной работы . Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы. Решение

  • a=1, b=-1, x=0 (a и b не могут иметь разные знаки) Лишняя часть программы – и...

    13 слайд

    a=1, b=-1, x=0 (a и b не могут иметь разные знаки) Лишняя часть программы – использование и ввод переменной x. Program C1_3; var a,b: real; begin readln(a, b); if a = 0 then if b = 0 then write (‘х — любое число’) else write (‘нет решений’) else if b = 0 then write(‘x = 0’) else if a*b < 0 then write(‘нет решений’) else write(‘x =’,b/a:8:2,’ или x =’,-b/a:8:2); Readln; end.

  • С1- 4. Требовалось написать программу, которая решает неравенство ax + b &gt; 0...

    14 слайд

    С1- 4. Требовалось написать программу, которая решает неравенство ax + b > 0 относительно х для любых чисел а и b, введенных с клавиатуры. Все числа считаются действительными. Программист торопился и неправильно написал программу.

  • Program nerav1; Var a, b, x : real; Begin readln(a,b,х); if a=0 then write( '...

    15 слайд

    Program nerav1; Var a, b, x : real; Begin readln(a,b,х); if a=0 then write( ‘любое число’) else if a>0 then write( ‘x > ‘,-b/a) else write( ‘x < ‘,-b/a); End.

  • Последовательно выполните задания: Приведите пример таких чисел а, b, х, при...

    16 слайд

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

  • 1) a=0, b=-2, x=1 (значение х может быть не указано) 2) Лишняя часть программ...

    17 слайд

    1) a=0, b=-2, x=1 (значение х может быть не указано) 2) Лишняя часть программы – использование и ввод переменной x. Program C1_4; Var a, b : real; Begin readln(a, b); if a=0 then if b>0 then write( ‘любое число’) else write( ‘нет решений’) else if a>0 then write( ‘x >’,-b/a:8:2) else write( ‘x<‘,-b/a:8:2); Readln; End.

  • С1- 5. Требовалось написать программу, которая определяет, лежит ли точка А(х...

    18 слайд

    С1- 5. Требовалось написать программу, которая определяет, лежит ли точка А(х,у) внутри некоторого кольца («внутри» понимается в строгом смысле). Центр кольца находится в начале координат. Для кольца заданы внутренний и внешний радиусы R1 и R2. Известно, что R1 R2, но неизвестно какой из них больше. В том случае, когда точка А лежит внутри кольца, программа должна выводить соответствующее сообщение, в противном случае никакой выходной информации не выдается. Программист сделал в программе ошибки.

  • Program kolco; Var х, у, r1,r2 : real; h: геаl; {расстояние от т.А до начала...

    19 слайд

    Program kolco; Var х, у, r1,r2 : real; h: геаl; {расстояние от т.А до начала координат} Begin Readln(х,у,г1,r2); h:=sgrt(x*x+y*y) ; If (h<r1) and (h>r2) then writeln(‘точка А лежит внутри кольца’); End.

  • Последовательно выполните задания: Приведите пример таких чисел X и Y, при ко...

    20 слайд

    Последовательно выполните задания: Приведите пример таких чисел X и Y, при которых программа неверно решает поставленную задачу. Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы (можно указать любой вариант). Решение

  • x=0, y=2, r1=1, r2=3 (В программе предполагается, что r1 &gt; r2, хотя в условии...

    21 слайд

    x=0, y=2, r1=1, r2=3 (В программе предполагается, что r1 > r2, хотя в условии это не оговаривается. Поэтому программа будет выдавать неверный ответ, когда r2 > r1 и полученное расстояние h удовлетворяет условию r1 < h < r2) . Program C1_5; var x, у, rl,r2,h :real; Begin Write(‘Введите координаты точки’); readln (x, у); Write(‘Введите радиусы двух окружностей’); readln (rl, r2); h := sqrt(x*x + y*y); if ((h < rl) AND (h > r2)) OR ((h < r2) AND (h > r1)) then writeln(‘точка А лежит внутри кольца’); Readln; end.

  • С1 - 6. Требовалось написать программу, которая решает неравенство ax - b &lt; 0...

    22 слайд

    С1 — 6. Требовалось написать программу, которая решает неравенство ax — b < 0 относительно х для любых чисел а и b, введенных с клавиатуры. Все числа считаются действительными. Программист торопился и неправильно написал программу.

  • Program nerav2; Var a,b,x : real; Begin readln(a,b,х); if a=0 then if b&gt;0 the...

    23 слайд

    Program nerav2; Var a,b,x : real; Begin readln(a,b,х); if a=0 then if b>0 then write( ‘любое число’) else write( ‘нет решений’) else write( ‘x < ‘,b/a); End.

  • Последовательно выполните задания: Приведите пример таких чисел а, b, х, при...

    24 слайд

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

  • 1) a=-5, b=10, x=-3 (a – любое отрицательное число) 2) Лишняя часть программы...

    25 слайд

    1) a=-5, b=10, x=-3 (a – любое отрицательное число) 2) Лишняя часть программы – использование и ввод переменной x. Program C1_6; Var a,b: real; Begin readln(a,b); if a=0 then if b>0 then write( ‘Любое число’) else write( ‘Нет решений’) else if a>0 then write( ‘x < ‘, b/a:8:2) else write( ‘x > ‘, b/a:8:2); Readln; End.

  • С1- 7. Требовалось написать программу, которая определяет, лежит ли точка А(х...

    26 слайд

    С1- 7. Требовалось написать программу, которая определяет, лежит ли точка А(хn, уn ) внутри треугольной области, ограниченной осями координат и прямой у = 2-х («внутри» понимается в строгом смысле, т.е. случай, когда т.А лежит на границе области, недопустим). В результате программа должна выводить соответствующее текстовое сообщение. Программист сделал в программе ошибки.

  • Var х0, у0,у : real; Begin	 readln(x0,y0); if (x00) then begin у = 2 - x0; if...

    27 слайд

    Var х0, у0,у : real; Begin readln(x0,y0); if (x0<2) then begin if (x0>0) then begin у = 2 — x0; if (y0 < y) then writeln ( ‘точка лежит внутри обл.’) else writeln ( ‘точка не лежит внутри обл.’); end else writeln ( ‘точка не лежит внутри обл.’); End else writeln(‘точка не лежит внутри обл.’); End.

  • Последовательно выполните задания: Приведите пример таких чисел Xо и Yо, при...

    28 слайд

    Последовательно выполните задания: Приведите пример таких чисел Xо и Yо, при которых программа неверно решает поставленную задачу. Укажите, как нужно доработать программу, чтобы не было случаев правильной работы (можно указать любой способ доработки исходной программы). Решение

  • 1) x=1, y=-1( не учитывается условие y&gt;0 ) Program C1_7; var x0, у0, у: real;...

    29 слайд

    1) x=1, y=-1( не учитывается условие y>0 ) Program C1_7; var x0, у0, у: real; Begin Write(‘Введите координату точки’); readln (x0, y0); if (x0 > 0) and (x0 <2) and (y0 > 0) and (y0 < 2 — x0) then writeln (‘точка лежит внутри области’) else writein (‘точка не лежит внутри области’); Readln; End.

  • С1-8. Требовалось написать программу, которая решает неравенство (x - а)/(bx)...

    30 слайд

    С1-8. Требовалось написать программу, которая решает неравенство (x — а)/(bx)>0 относительно х для любых ненулевых чисел а и b(a 0,b0), введенных с клавиатуры. Все числа считаются действительными. Программист торопился и написал программу с ошибками:

  • Program trud1; Var a, b, x : Real; Begin Readln(a, b, x); If b&gt;0 then Write (...

    31 слайд

    Program trud1; Var a, b, x : Real; Begin Readln(a, b, x); If b>0 then Write (‘x>’, a , ’или x<0’) else If a>0 then Write(‘0<x<’, a) else Write( a, ’<x<0’); Readln End.

  • Последовательно выполните задания: Приведите пример таких чисел a, b, x, при...

    32 слайд

    Последовательно выполните задания: Приведите пример таких чисел a, b, x, при которых программа работает неправильно. Укажите, какая часть программы является лишней. Доработайте программу так, чтобы не было случаев ее неправильной работы . Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы. Решение

  • 1) a = -7, b = 12, х = 0 (b – любое положительное число, a– любое отрицательн...

    33 слайд

    1) a = -7, b = 12, х = 0 (b – любое положительное число, a– любое отрицательное, х можно не указывать). 2) Лишняя часть программы – ввод переменной x. Program C1_8; Var a, b : real; Begin Readln(a, b); If b>0 then If a>0 then Write (‘x>’, a:8:2 , ’или x<0’) else Write (‘x<’, a:8:2 , ’или x>0’) else If a>0 then Write(‘0<x<’, a:8:2) else Write( a:8:2, ’<x<0’); Readln; End.

  • С1-9. Требовалось написать программу, которая вводит с клавиатуры координаты...

    34 слайд

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

  • Program tochka1; var x,y: real; begin readln(x,y); If y=0 then If y&gt;=sin(x) t...

    35 слайд

    Program tochka1; var x,y: real; begin readln(x,y); If y<=1 then If x>=0 then If y>=sin(x) then write(‘принадлежит’) else write(‘не принадлежит’); readln end.

  • Последовательно выполните задания: Приведите пример таких чисел x, y при кото...

    36 слайд

    Последовательно выполните задания: Приведите пример таких чисел x, y при которых программа работает неправильно. Доработайте программу так, чтобы не было случаев ее неправильной работы. Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы. Решение

  • 1. Программа работает неверно для точек: (x=3.14, y=0.5) (не верно определяет...

    37 слайд

    1. Программа работает неверно для точек: (x=3.14, y=0.5) (не верно определяет принадлежность точки области) (x=0, y=1) (не выдает вообще никакого сообщения). Program C1_9; var x,y: real; begin readln(x,y); if (x >= 0) and (x <= pi/2) and (y <= 1) and (y >= sin(x)) then write(‘принадлежит’) else write(‘не принадлежит’); end.

  • С1_10. Требовалось написать программу, которая решает неравенство (x + а)/(bx)

    38 слайд

    С1_10. Требовалось написать программу, которая решает неравенство (x + а)/(bx)<0 относительно х для любого ненулевого числа b (b0) и любого неотрицательного числа а (a≥0), введенных с клавиатуры. Все числа считаются действительными. Программист торопился и написал программу с ошибками:

  • Program trud2; Var a, b, x : Real; Begin Readln(a, b, x); If a=0 then If b&gt;0...

    39 слайд

    Program trud2; Var a, b, x : Real; Begin Readln(a, b, x); If a=0 then If b>0 then Write(‘Решений нет’) else Write(‘x>0 или x<0’ ) else Write( -a, ‘<x<0’); Readln End.

  • Последовательно выполните задания: Приведите пример таких чисел a, b, x, при...

    40 слайд

    Последовательно выполните задания: Приведите пример таких чисел a, b, x, при которых программа работает неправильно. Укажите, какая часть программы является лишней. Доработайте программу так, чтобы не было случаев ее неправильной работы. Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы. Решение

  • a=10, b=-2, х=0 (a – любое положительное число, b – любое отрицательное, х мо...

    41 слайд

    a=10, b=-2, х=0 (a – любое положительное число, b – любое отрицательное, х можно не указывать). Лишняя часть программы – ввод переменной x. Program C1_10; Var a, b : real; Begin Readln(a, b); If a=0 then If b>0 then Write(‘Решений нет’) else Write(‘x>0 или x<0’ ) else If b>0 then Write( -a:8:2, ‘<x<0’) else Write(‘x>0 или x<’,-a:8:2 ); Readln End.

  • С1- 11. Требовалось написать программу, которая решает уравнение ах2+bх+с=0 о...

    42 слайд

    С1- 11. Требовалось написать программу, которая решает уравнение ах2+bх+с=0 относительно x для действительных чисел а, b, с, введенных с клавиатуры, о которых заведомо известно, что а0, b0, c 0. Была написана следующая программа. Известно, что программа написана с ошибками.

  • Program korni; Var a, b, с, D, x1, x2 : real; Begin readln(a,b,c,xl,x2); D:=b...

    43 слайд

    Program korni; Var a, b, с, D, x1, x2 : real; Begin readln(a,b,c,xl,x2); D:=b*b — 4*a*c; If (D>0) then begin x1:=(-b+sgrt(D))/(2*a); x2: = (-b-sgrt(D) )/ (2*a) ; write( ‘x1 = ‘,x1, ‘x2 = ‘,x2); end else writeln(‘действительных корней нет’); End.

  • Последовательно выполните задания: Приведите пример таких чисел а, Ь, с, при...

    44 слайд

    Последовательно выполните задания: Приведите пример таких чисел а, Ь, с, при которых программа неверно решает поставленную задачу. Укажите, какая часть программы является лишней. Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. Решение

  • a=1 b=2 c=1 (дискриминант равен нулю и должен быть корень, а программа выдает...

    45 слайд

    a=1 b=2 c=1 (дискриминант равен нулю и должен быть корень, а программа выдает, что корней нет). Лишняя часть программы – ввод переменных x1, х2. Program C1_11; var a, b, с, D, xl, x2: real; begin readln(a, b, с); D := b*b — 4*a*c; if D >= 0 then begin x1 := (-b + sqrt(D)) / (2*a); x2 := (-b — sqrt(D)) / (2*a); writeln(‘xl =’, xl:8:2, ‘x2 =’, x2:8:2); end else writeln (‘действительных корней нет’); Readln; end.

  • С1- 12. Требовалось написать программу, которая определяет, имеется ли среди...

    46 слайд

    С1- 12. Требовалось написать программу, которая определяет, имеется ли среди введенных с клавиатуры целых чисел а и b хотя бы одно четное. Была написана следующая программа, в которой программист сделал ошибки:

  • Program chet; Var a, b : integer; Begin readln(a,b); a:=a mod 2; If a&gt;0 then...

    47 слайд

    Program chet; Var a, b : integer; Begin readln(a,b); a:=a mod 2; If a>0 then b:=b mod 2; If b>0 then writeln(‘четных чисел нет’) else writeln(‘четное число есть’); End.

  • Последовательно выполните задания: Приведите пример таких чисел a и b, при ко...

    48 слайд

    Последовательно выполните задания: Приведите пример таких чисел a и b, при которых программа неверно решает поставленную задачу. Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы (можно указать любой способ доработки исходной программы). Решение

  • 1) a=2, b=1 (первое число четное, а второе больше 0) Program C1_12; var a, b:...

    49 слайд

    1) a=2, b=1 (первое число четное, а второе больше 0) Program C1_12; var a, b: integer; Begin write(‘Введите два числа’); readln(a, b); if (a mod 2 = 0) or (b mod 2 = 0) then writeln (‘четное число есть’) else writeln (‘четных чисел нет’); Readln; end.

  • С1-13. Требовалось написать программу, которая решает следующее неравенство a...

    50 слайд

    С1-13. Требовалось написать программу, которая решает следующее неравенство a > bx для любых чисел a и b. Входная информация вводится с клавиатуры. Программист торопился и написал программу некорректно:

  • Program ner; VAR a,b,x: real; BEGIN readln(a,b,x); if b=0 then if a

    51 слайд

    Program ner; VAR a,b,x: real; BEGIN readln(a,b,x); if b=0 then if a<=0 then writeln(‘решения нет’) else writeln(‘x любое число’) else writeln(x,’<’,a/b); readln END.

  • Последовательно выполните задания: Приведите пример таких чисел a, b, x, при...

    52 слайд

    Последовательно выполните задания: Приведите пример таких чисел a, b, x, при которых программа работает неправильно. Укажите лишнюю часть программы и ошибки. Доработайте программу так, чтобы не было случаев ее неправильной работы . Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы. Решение

  • 1) a=5, b=-5, x=-3 (b может быть любым отрицательным числом) 2) Лишняя часть...

    53 слайд

    1) a=5, b=-5, x=-3 (b может быть любым отрицательным числом) 2) Лишняя часть программы – использование и ввод переменной x. Program С1_13; VAR a, b: real; BEGIN readln(a,b); if b=0 then if a<=0 then writeln(‘Решения нет’) else writeln(‘x — любое число’) else if b>0 then writeln(‘x<’,a/b:8:2) else writeln(‘x>’,a/b:8:2); Readln; END.

  • С1-14. Требовалось написать программу, которая решает следующее неравенство ax

    54 слайд

    С1-14. Требовалось написать программу, которая решает следующее неравенство ax<|b| для любых чисел а и b. Входная информация вводится с клавиатуры. Программист торопился и написал программу некорректно:

  • Program neraven; VAR a, b, x: real; BEGIN readln(a,b,x); If a=0 then writeln(...

    55 слайд

    Program neraven; VAR a, b, x: real; BEGIN readln(a,b,x); If a=0 then writeln(‘x любое число’) else If a>0 then writeln(x,’<’,b/a) else writeln(x,’>’,b/a); readln END.

  • Последовательно выполните задания: Приведите пример таких чисел a, b, x, при...

    56 слайд

    Последовательно выполните задания: Приведите пример таких чисел a, b, x, при которых программа работает неправильно. Укажите лишнюю часть программы и ошибки. Доработайте программу так, чтобы не было случаев ее неправильной работы . Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы. Решение

  • 1) a=0, b=0, x=5 (х – любое число, можно не указывать) 2) Лишняя часть програ...

    57 слайд

    1) a=0, b=0, x=5 (х – любое число, можно не указывать) 2) Лишняя часть программы – использование и ввод переменной x. Program С1_14; VAR a,b: real; BEGIN readln(a,b); If a=0 then if b=0 then writeln(‘решений нет’) else writeln(‘x любое число’) else If a>0 then writeln(‘x<’,abs(b)/a:8:2) else writeln(‘x>’,abs(b)/a:8:2); readln; END.

  • С1- 15. Требовалось написать программу, которая определяет, лежит ли точка А(...

    58 слайд

    С1- 15. Требовалось написать программу, которая определяет, лежит ли точка А(х0,у0) внутри квадратной области, ограниченной прямыми, параллельными осям координат : у=-2, у=2, х=-2, х=2 («внутри» понимается в строгом смысле). В результате программа должна выводить соответствующее текстовое сообщение. Программист сделал в программе ошибки.

  • Program tochka; Var х0,у0,у : real; Begin readln(х0,у0); If (x0-2) then If (y0

    59 слайд

    Program tochka; Var х0,у0,у : real; Begin readln(х0,у0); If (x0<2) then begin If (x0>-2) then If (y0<2) then writeln(‘точка лежит внутри области’); end else writeln(‘точка не лежит внутри области’); End.

  • Последовательно выполните задания: Приведите пример таких чисел х0 и у0, при...

    60 слайд

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

  • x=0, y=-7 (точка в область не попала, а программа не выдает никаких сообщений...

    61 слайд

    x=0, y=-7 (точка в область не попала, а программа не выдает никаких сообщений). Program C1_15; var x0, y0: real; Begin write(‘Введите координаты точки’); readln (x0, y0); if (x0 < 2) and (x0 > -2) and (y0 < 2) and (y0 > -2) then writeln(‘точка лежит внутри области’) else writeln(‘точка не лежит внутри области’); readln; end.

  • С1- 16. Требовалось написать программу, которая определяет, можно ли построит...

    62 слайд

    С1- 16. Требовалось написать программу, которая определяет, можно ли построить треугольник из отрезков с длинами х, у и z. Программа должна выводить соответствующее текстовое сообщение. Программист сделал в программе ошибки:

  • Program treug; Var x,у,z :real; Begin Readln (х,у,z); If (x+y&gt;z) then begin I...

    63 слайд

    Program treug; Var x,у,z :real; Begin Readln (х,у,z); If (x+y>z) then begin If (x+z>y) then If (y+z>x) then writeln( ‘треугольник построить можно’); end else writeln(‘треугольник построить нельзя’); End.

  • Последовательно выполните задания: Приведите пример таких чисел х, у и z, пр...

    64 слайд

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

  • 1) x=2, y=4, z=1 (не выдается никакого сообщения, если первое условие истинно...

    65 слайд

    1) x=2, y=4, z=1 (не выдается никакого сообщения, если первое условие истинно (x + y > z), а одно из других – ложно) Program C1_16; var х, у, z: real; Begin Write(‘Введите длины трех отрезков’); readln (x, у, z); if (x + y > z) and (x + z > y) and (y + z > x) then writeln(‘треугольник построить можно’) else writeln(‘треугольник построить нельзя’); Readln; end.

  • С1- 17. Окружность на плоскости задана координатами центра и радиусом. Даны д...

    66 слайд

    С1- 17. Окружность на плоскости задана координатами центра и радиусом. Даны две окружности. Требовалось определить, имеют ли они точку касания. Программист поторопился и сделал в программе ошибки:

  • Program okrug; Var x1,у1,r1,x2,y2,r2 :real; Begin Readln (х1,у1,r1); Readln (...

    67 слайд

    Program okrug; Var x1,у1,r1,x2,y2,r2 :real; Begin Readln (х1,у1,r1); Readln (х2,у2,r2); If sqrt(sqr(x2-x1)+sqr(y2-y1))=r1+r2 then writeln( ‘да’) else writeln( ‘нет’); End.

  • Последовательно выполните задания: Приведите пример таких исходных данных, пр...

    68 слайд

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

  • 1) x1=4, y1=4, r1=4 , x2=4, y2=2, r2=2 (случай внутреннего касания) Program C...

    69 слайд

    1) x1=4, y1=4, r1=4 , x2=4, y2=2, r2=2 (случай внутреннего касания) Program C1_17; Var x1,у1,r1,x2,y2,r2 :real; Begin Readln (х1,у1,r1); Readln (х2,у2,r2); If (sqrt(sqr(x2-x1)+sqr(y2-y1))=r1+r2) OR (sqrt(sqr(x2-x1)+sqr(y2-y1))=abs(r1-r2)) then writeln( ‘да’) else writeln( ‘нет’); Readln; End.

  • С1- 18. Требовалось написать программу нахождения количества цифр в записи н...

    70 слайд

    С1- 18. Требовалось написать программу нахождения количества цифр в записи натурального числа А. Программист поторопился и сделал в программе ошибки:

  • Program cifri; Var a,s :longint; Begin write(‘Введите число’); Readln (А); s:...

    71 слайд

    Program cifri; Var a,s :longint; Begin write(‘Введите число’); Readln (А); s:=0; while a>=10 do a:= a div 10; s:=s+1; writeln(‘Количество цифр:’,s); readln End.

  • Последовательно выполните задания: Приведите пример таких исходных данных, пр...

    72 слайд

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

  • 1) а=124 (любое число большее 9) Program C1_18; Var a,s :longint; Begin write...

    73 слайд

    1) а=124 (любое число большее 9) Program C1_18; Var a,s :longint; Begin write(‘Введите целое число’); Readln(А); s:=0; while a<>0 do begin a:= a div 10; s:=s+1; end; writeln(‘Количество цифр:’,s); readln End.

  • С1-19. Составить программу, которая вводит с клавиатуры координаты точки на п...

    74 слайд

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

  •  VAR x, y : real; Begin readln ( x, y ); If Y

    75 слайд

    VAR x, y : real; Begin readln ( x, y ); If Y <= x-1 then if y <= 0 then if y > — sin(x) then Writeln (‘принадлежит’) else Writeln(‘не принадлежит’); end. Найти ошибки в программе. Решение

  • x= 3 , y= 5 {любая пара, для которой выполняются условия: (y&gt;x-1) или (y&gt;0) и...

    76 слайд

    x= 3 , y= 5 {любая пара, для которой выполняются условия: (y>x-1) или (y>0) или ((y>-sinx) и (y<=0) и (x>=2 .)) } Program C1_19; var x, y: real; begin write(‘Введите коорд. точки’); readln(x, y); if (y <= x-1) and (y <= 0)) and (y >= -sin(x)) and (x<=pi) then write(‘принадлежит’) else write(‘не принадлежит’); readln; end. Проверяемые в программе условия выделяют следующие области (закрашены желтым цветом).  2

  • С1-20. Требовалось написать программу, которая вводит с клавиатуры координаты...

    77 слайд

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

  •  var x, y: real; begin readln(x, y); if y &gt;= x then if y &gt;= 0 then if y

    78 слайд

    var x, y: real; begin readln(x, y); if y >= x then if y >= 0 then if y <= 2-x*x then write(‘принадлежит’) else write(‘не принадлежит’); end.

  • Последовательно выполните задания: Приведите пример таких исходных данных, п...

    79 слайд

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

  • 1) x=0.5, y=0.2 (проверяемые условия выделяют только область, обозначенную на...

    80 слайд

    1) x=0.5, y=0.2 (проверяемые условия выделяют только область, обозначенную на рисунке синим цветом, а не всю заштрихованную серую область. ) Program C1_20; var x, y: real; begin write(‘Введите координаты точки’); readln(x, y); if ((y >= x) or (y >= 0)) and (y <= 2-x*x) then write(‘принадлежит’) else write(‘не принадлежит’); readln; end.

  • С.С. Крылов, П.А. Якушкин. ЕГЭ 2010. Информатика: сборник экзаменационных зад...

    81 слайд

    С.С. Крылов, П.А. Якушкин. ЕГЭ 2010. Информатика: сборник экзаменационных заданий. /ФИПИ — М.: Эксмо, 2009. П.А. Якушкин, Д.М. Ушаков. Самое полное издание типовых вариантов реальных заданий ЕГЭ 2010. Информатика. — М.: Астрель, 2009. О.В. Ярцева, Е.Н. Цикина. ЕГЭ-2009. Информатика. Самые новые задания. – М.: АСТ: Астрель, 2009. http:/kpolyakov.narod.ru Евграфова Ольга Владимировна, учитель информатики МОУ гимназии №8 г.о. Коломна Московской области

Краткое описание документа:

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

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

Ученики должны хорошо знать правила построения программы, правила работы с переменными, основные операторы и особенности их работы. Ключевая тема этого задания ЕГЭ — использование вложенных условных операторов.

Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:

6 285 025 материалов в базе

  • Выберите категорию:

  • Выберите учебник и тему

  • Выберите класс:

  • Тип материала:

    • Все материалы

    • Статьи

    • Научные работы

    • Видеоуроки

    • Презентации

    • Конспекты

    • Тесты

    • Рабочие программы

    • Другие методич. материалы

Найти материалы

Другие материалы

  • 22.11.2014
  • 1805
  • 0

Рейтинг:
5 из 5

  • 22.11.2014
  • 4687
  • 174
  • 22.11.2014
  • 1075
  • 0
  • 22.11.2014
  • 3560
  • 8
  • 22.11.2014
  • 3606
  • 0

Рейтинг:
3 из 5

  • 22.11.2014
  • 6934
  • 93

deadkill

0 / 0 / 1

Регистрация: 03.12.2011

Сообщений: 17

1

Нужно найти ОШИБКУ в программе

06.04.2012, 01:34. Показов 1360. Ответов 2

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

УСЛОВИЕ:
Дан текст, состоящий не менее чем из пяти слов. Вывести на экран слова, которые имеют одинаковые окончания «ИЯ»,»ИСТ»,»ИКА».

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <iostream>
#include <string.h>
#include <stdio.h>
using namespace std;
void main ()
{
    setlocale(LC_ALL,"rus");
 int const n=100, kol=10;
    typedef char String [n];
    String s, mas [kol];
    cout<<"Введите строку: ";
    cin.getline (s,100);
    cout<<s<<endl;
    int k=0;
char* token=strtok(s," ");
while (token)
{
    strtoken (mas [k++], token);
    token = strtok (NULL," ");
}
cout<<"Массив слов:/n";
for (int i=0; i<k;i++)
cout<<mas[i]<<": "<<strlen (mas[i])<<endl;
String t;
for (int i=0,j=0;i<sizeof(k);++i, ++j)
{
    if (k[i]==' '|| k[i]==',' || k[i]== '.'=='')
    {
        mas[j]='';
        if ((strstr(&mas[j-3], "ИЯ")!=&mas[j])||(strstr(&mas[j-3],"ИКА")!=(strstr(&mas[j-3],"ИСТ")!=&mas[j])))
        {
            if (j>1) {
                cout<<mas<<endl;
            }
            j=-1;
        }
        else
        {
            mas[j]=k[i];
        }
    }
}}



0



Эксперт С++

8385 / 6147 / 615

Регистрация: 10.12.2010

Сообщений: 28,683

Записей в блоге: 30

06.04.2012, 02:59

2

Какие ошибки выдает?



0



deadkill

0 / 0 / 1

Регистрация: 03.12.2011

Сообщений: 17

08.04.2012, 20:32

 [ТС]

3

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

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <iostream>
#include <string.h>
#include <stdio.h>
using namespace std;
void main ()
{
 
 int const n=100, kol=10;
    typedef char String [n];
    String s, mas[kol];
    cout<<"Vvedide stroku: ";
    cin.getline (s,100);
    int k=0;
char* token=strtok(s," ");
while (token)
{
    strcpy (mas [k++], token);
    token = strtok (NULL," ");
}
cout<<"Massiv slov:/n";
for (int i=0; i<k;i++)
cout<<mas[i]<<endl;
 
for (int i=0;i<k;i++)
{
    
        
        if (strstr(mas[i], "ИЯ") || strstr(mas[i],"ИКА") || strstr(mas[i],"ИСТ"))
        {
            
                cout<<mas[i]<<endl;
            
        }
        
    }
}

Может эту поможете до ума довести?

Добавлено через 23 часа 30 минут
Всё таки как нужно вывести на экран с этими окончаниями?!



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

08.04.2012, 20:32

Помогаю со студенческими работами здесь

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

Нужно найти ошибку в программе простенькой задачи
Задача:
TopCoder

(Время: 1 сек. Память: 16 Мб Сложность: 25%)
Некоторые из вас, наверное,…

Нужно найти ошибку в программе, встает и не работает дальше
Program lab8;

Var
a: array of char;
b: array of char;
konstr, kontxt, sym: char;
i, u:…

нужно найти ошибку в программе, буду в крайней степени благодарен
program pr6n5;
var z,c,x:integer;
s,e,a:real;
begin
writeln(‘vvedite x’);
readln(x);
s:=0;…

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

3

Нажмите, чтобы узнать подробности

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

Просмотр содержимого документа

«ПР ОШИБКИ»

Практическая работа:

«Поиск и исправление ошибок в программах. Одномерные массивы»

1 Дан линейный массив размерности п действительных чисел. Подсчитать сколько в нём отрицательных, положительных и нулевых элементов.

program line 1;

useс crt;

const n1=100;

var a:array[1..n] of real;

i, n,kpol, kotr, kzero: integer;

begin

writeln (‘введите размерность вашего массива’);

readln(n);

randoize;

textColor(4);

for i:= to n do

begin

a[i]:=randon(100)-50;

if (a[i]or (a[i]30) a[i]:=0;

write(a[i],’ ‘);

end;

writeln;

textColor(2);

kpol:=0;

kotr:=0;

kzero:=0;

for i:=1 to n do

if a[i]000 then kpol:=kpol+1 else

if a[i]then kotr:=kotr+1 else kzero:=kzero+1;

writeln

textColor(3);

writeln(‘количество положительных элементов =’, kol);

textColor(4);

writeln(‘количество отрицательных элементов =’, kotr);

textColor(5);

writeln(‘количество нулевых элементов =’, kzero);

end

2 Дан линейный массив размерности 20 действительных чисел. Выдать на экране новый массив, сформированный из положительных элементов первоначального массива.

program masiv1;

uses crt;

var i;integer;

m:array [0..100] of real;

begin

randomize;

textColor(4);

writeln (‘ваш массив)‘;

textColor(3);

for i:=1 to 20

begin;

m[i]:=random(20)-10;

write([i],’ )‘;

end;

writelne;

textColor(5);

writeln (‘ваш новый массив‘);

textColor(10);

for i:=1 to do

begin

if m[i]0 write (m[i],’ ‘);

end.

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

program masiv_dlina;

uses crt;

var i,n:real;

m:array [0..100] of real;

dlina, min, max:real;

begin

writeln (‘введите размерность вашего массива’)

readln(n);

randomize;

textColor(1);

writeln(‘ваш массив‘);

for i:=1 n do

m[i]:=random(100)-50;

write(m[i]:6:1,’ ‘);

end;

writeln;

min:=m[1];

max:=m[1];

for i:=1 to n do;

if m[i]max then max:=m[i] else if m[i]then min:=m[i];

dlina:=abs(min-max)

writeln;

textColor(5);

writeln(‘наименьший элемент =’,min);

writeln(‘наибольший элемент =’,max);

writeln;

textColor(3);

writeln(‘длина отрезка =’,dlina);

Просмотр содержимого документа

«ПР Поиск ошибок ОДНОМЕРНЫЕ массивы»

Практическая работа:

«Поиск и исправление ошибок в программах. Одномерные массивы»

1 Дан линейный массив размерности п действительных чисел. Подсчитать сколько в нём отрицательных, положительных и нулевых элементов.

program line1;

uses crt;

const n1=100;

var a:array[1..n1] of real;

i, n,kpol, kotr, kzero: integer;

begin

writeln (‘введите размерность вашего массива’);

readln(n);

randomize;

textColor(4);

for i:=1 to n do

begin

a[i]:=random(100)-50;

if (a[i]or (a[i]30) then a[i]:=0;

write(a[i],’ ‘);

end;

writeln;

textColor(2);

kpol:=0;

kotr:=0;

kzero:=0;

for i:=1 to n do

if a[i]0 then kpol:=kpol+1 else

if a[i]then kotr:=kotr+1 else kzero:=kzero+1;

writeln;

textColor(3);

writeln(‘количество положительных элементов =’, kpol);

textColor(4);

writeln(‘количество отрицательных элементов =’, kotr);

textColor(5);

writeln(‘количество нулевых элементов =’, kzero);

end.

2 Дан линейный массив размерности 20 действительных чисел. Выдать на экране новый массив, сформированный из положительных элементов первоначального массива.

program masiv1;

uses crt;

var i:integer;

m:array [0..100] of real;

begin

randomize;

textColor(4);

writeln (‘ваш массив‘);

textColor(3);

for i:=1 to 20 do

begin

m[i]:=random(20)-10;

write(m[i],’ ‘);

end;

writeln;

textColor(5);

writeln (‘ваш новый массив‘);

textColor(10);

for i:=1 to 20 do

begin

if m[i]0 then write (m[i],’ ‘);

end;

end.

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

program masiv_dlina;

uses crt;

var i,n:integer;

m:array [0..100] of real;

dlina, min, max:real;

begin

writeln (‘введите размерность вашего массива‘);

readln(n);

randomize;

textColor(1);

writeln(‘ваш массив‘);

for i:=1 to n do

begin

m[i]:=random(100)-50;

write(m[i]:6:1,’ ‘);

end;

writeln;

min:=m[1];

max:=m[1];

for i:=1 to n do

if m[i]max then max:=m[i] else if m[i]then min:=m[i];

dlina:=abs(min-max);

writeln;

textColor(5);

writeln(‘наименьший элемент =’,min);

writeln(‘наибольший элемент =’,max);

writeln;

textColor(3);

writeln(‘длина отрезка =’,dlina);

end.

4 (записать на доске) Замена всех элементов массива, больших заданного числа к.

program masiv_dlina;

uses crt;

var i,k:integer;

m:array [0..100] of integer;

begin

writeln(‘введите число для необходимой замены’);

readln(k);

randomize;

textColor(1);

writeln(‘ваш массив‘);

for i:=1 to 6 do

begin

m[i]:=random(100)-50;

write(m[i],’ ‘);

end;

writeln;

textColor(5);

writeln(‘все элементы большие ‘,k,’ будут заменены на ‘,k);

writeln;

textColor(2);

writeln(‘ваш новый массив‘);

for i:=1 to 6 do

begin

if m[i]k then m[i]:=k;

write(m[i],’ ‘);

end;

end.

Просмотр содержимого документа

«задание 4 НА ЭКРАНЕ»

4 (записать на доске) Замена всех элементов массива, больших заданного числа к.

program masiv dlina;

uses crt

vare i, k integer:

m: array [0..100] of integer;

begin;

writein(‘введите число для необходимой замены’)

readln(k);

randovize;

textColor (1);

writeln (‘ваш массив‘);

for i:=1 6 do

begin

m[i]=random(100)-50;

write (m[i] ‘ ‘);

end

writeln;

textColor(5);

writeln(‘все элементы большие ‘,k,’ будут заменены на ‘, k);

writeln;

textColor(2);

writel (‘ваш новый массив‘);

for i:=1 to 6

begin

if m[i]k then m[i]:=k

write(m[i],’ ‘);

end.

Понравилась статья? Поделить с друзьями:
  • Задания с заведомо допущенными ошибками
  • Задача найти ошибку в коде
  • Займи мне тысячу рублей до февраля ошибка
  • Задания с грамматическими ошибками с ответами
  • Задача завершена с ошибкой 113 kaspersky endpoint agent