В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
zhenyshkrab87
zhenyshkrab87
14.07.2020 22:46 •  Информатика

Вписати фрагмент програми, який відповідає опису

Одновимірний масив Ran із 30 цілих чисел

Показать ответ
Ответ:
VERLIA
VERLIA
30.07.2022 20:40

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

2. Наименьшие значения A, при которых программа выведет верный ответ, равны 2 и 3.

3. В программе допущена типичная для начинающих программистов ошибка «смещения кадра»: значение переменной K, необходимое при первом выполнении цикла, присваивается до начала цикла, а значение для следующего оборота цикла вычисляется в конце предыдущего оборота. В результате, при завершении цикла K имеет значение больше, чем нужно. Вторая ошибка – неверный шаг изменения K. «Идеальная» программа решения этой задачи должна выглядеть так (приведён пример на языке Бейсик):

DIM A,S,K AS INTEGER

INPUT A

S = 0

K = −1

WHILE S <= A

K = K + 2

S = S + K*(K+1)

WEND

PRINT K

END

Но по условиям задания менять местами строки нельзя, их можно только исправлять. Поэтому, кроме исправления шага, приходится корректировать значение K при выводе. Пример исправления для языка Паскаль:

Первая ошибка:

k := k+1;

Исправленная строка:

k := k+2

Вторая ошибка:

writeln(k)

Исправленная строка:

writeln(k-2)

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

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

0,0(0 оценок)
Ответ:
AbstergoAlexander
AbstergoAlexander
15.03.2021 07:15
//Pascal ABC.NET v3.0 сборка 1111

begin
var d:=ReadlnString('Вас приветствует программа, которая может делить '+'два числа с остатком. Напишите свое имя');
Writeln('Здравствуйте, ',d,'!');

repeat
Writeln('Как нужно написать ответ?',#13#10,'1 вариант. 5: 3 = 1(ост.2)',#13#10,'2 вариант. 5 = 3*1 + 2',#13#10,'0 - завершить работу');
  var c:char;
   Repeat
    c:=ReadlnChar('Введите 0, 1 или 2:');
     case c of
      '0': exit;
      '1','2':break;
      end;
    until False;
  var a,b:BigInteger;
 if not BigInteger.TryParse(ReadlnString('Введите целочисленное делимое:'),a) then
 begin
  Writeln('Вы ввели неверное значение. Работа завершена');
  Exit
 end;
 if not BigInteger.TryParse(ReadlnString('Введите целочисленный делитель:'),b) then
 begin
  Writeln('Вы ввели неверное значение. Работа завершена');
  Exit
 end;
 if integer(b)=0 then
{приведение к типу Integer. Менее абстрактно, чем BigInteger}
  begin
   writeln('Вы ввели неверное значение.');
   exit
  end;
if c='1' then WritelnFormat('{0}:{1}={2}(ост.{3})',a,b,a div b,a mod b)
else
WritelnFormat('{0}={1}*{2}+{3}',a,b,a div b,a mod b);
var f:char;
Repeat
f:=ReadlnChar('Если вы хотите завершить работу, введите "0", если продолжить - любую букву.');
case f of
'0': exit;
else break;
end;
until False;
until False
 end.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота