Найдите в программе все ошибки (их может быть одна или несколько).Для
Условие
| Для заданного положительного вещественного числа A необходимо найти максимальное целое число K, при котором выполняется неравенство (при K = 0 сумма считается равной 0).Для решения этой задачи ученик написал такую программу. Бейсик | Python |
|---|---|
| DIM A, S AS DOUBLE DIM K AS INTEGER INPUT A K = 0 S = 1 WHILE S < A K = K + 1 S = S + 1.0/K WEND PRINT K END | a = float(input())k = 0s = 1while s < a: k = k + 1 s = s + 1.0/kprint(k) |
| Алгоритмический язык | Паскаль |
| алгнач вещ a, s цел k ввод a k := 0 s := 1 нц пока s<a k := k + 1 s := s + 1.0/k кц вывод kкон | var a, s: real;k: integer;begin read(a); k := 0; s := 1; while s<a do begin k := k + 1; s := s + 1.0/k; end; write(k);end. |
| Си++ | |
| #include <iostream>using namespace std;int main(){ double a, s; int k; cin >> a; k = 0; s = 1; while (s<a) { k = k + 1; s = s + 1.0/k; } cout « k « endl; return 0;} |
Последовательно выполните следующее.1. Напишите, что выведет эта программа при вводе числа 1.8.2. Приведите пример числа, при вводе которого программа даст верный ответ.3. Найдите в программе все ошибки (их может быть одна или несколько).Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.
Обратите внимание: вам нужно исправить приведённую программу, а не написать свою. Вы можете только исправлять ошибочные строки; удалять строки или добавлять новые строки нельзя. Постарайтесь также не внести новые ошибки - за это оценка снижается.
Ответ
Ответ и полный разбор откроются после входа
Посмотреть ответРешение по шагам
Как рассуждать
Решение. Решение использует запись программы на Паскале. Допускается использование программы на других языках.1. При вводе числа 1.8 программа выведет число 1.2. Примеры чисел, при вводе которых программа выводит верный ответ: 0.6, 1.4.Примечание для проверяющего. Программа содержит две ошибки, одна из которых приводит к увеличению ответа, другая - к уменьшению.В некоторых случаях эти ошибки компенсируют друг друга, и ответ оказывается правильным. Это происходит, если 0 < A ≤ 1.5.3. Программа содержит две ошибки.
- Неверная инициализация. Начальные значения S и K должны быть одинаковы: оба равны нулю или оба равны единице. В приведённом варианте вычисленная сумма оказывается на 1 больше правильного значения. Эту ошибку можно исправить двумя способами.
Первый способ исправления:Строка с ошибкой:s := 1;Правильная строка:s := 0;Второй способ исправления:Строка с ошибкой:k := 0;Правильная строка:k := 1;
Осталось ещё 3 шага
Неверное определение ответа. Приведённая…
Эту ошибку можно исправить двумя способами…
Первый способ исправления работает независимо…
Бесплатно · займёт минуту