Информатика (Исправление ошибок в программе)


1
2
3
4
5
6
7
8
9
10
  • 1
  • 2

Вопрос 24

Дано натуральное число A. Требуется вывести такое максимально возможное натуральное число K, при котором сумма 1 + (1 + 2) + (1 + 2 + 3) + … + (1 + 2 + … + K) не превышает A. Для решения этой задачи ученик написал программу, но, к сожалению, его программа – неправильная. Ниже эта программа для Вашего удобства приведена на пяти языках программирования. 

БейсикPython
DIM A,S,P,K AS INTEGER 
 INPUT A
 S = 0 
 P = 0 
 K = 1 
 WHILE S <= A
     K = K + 1
     P = P + K
     S = S + P
 WEND
 PRINT K
 END

a = int(input())

s = 0

p = 0

k = 1

while s <= a:

     k = k + 1

     p = p + k

     s = s + p

print(k)

 

 

ПаскальАлгоритмический язык
var  a, s, p, k: integer;
begin
    readln(a);
    s := 0; 
    p := 0; 
    k := 1; 
    while s <= a do begin
      k := k+1;
      p := k+p;
      s := p+s;
    end;
    writeln(k);
end.
алг
нач
   цел a, s, p, k
   ввод a
   s := 0
   p := 0
   k := 1
   нц пока s <= a
     k := k+1
     p := p+k
     s := s+p
   кц
  вывод k
кон
Си++
#include <iostream>
using namespacestd;
 int main()
 {
   int a, s, p, k; 
   cin >> a;
    s = 0;
    p = 0;
    k = 1;
   while (s <= a) { 
       k = k+1;
       p = p+k;
       s = s+p;
    }
   cout « k « endl; 
   return 0;
}

 

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

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

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

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