Помогите

array 20; что-то не то при вводе

var a:array[1..100] of real;
var n:=readinteger;
var k:integer;
var l:integer;
read(k,l);
for var i:=k to l do
begin
read(a[i]);
write(a);
var s:=0.0;

if a[i]>0 then
s+=a[i];
write(a[i]);
end;

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

begin
  var a: array[1..100] of real;
  var n := readinteger;
  var k: integer;
  var l: integer;
  read(k, l);
  for var i := k to l do
  begin
    read(a[i]);
    write(a);
    var s := 0.0;
    if a[i] > 0 then
      s += a[i];
    write(a[i]);
  end;
end.

При вводе второго элемента использован тим целого

А можно пояснить например, зачем там переменная n? При вводе любого элемента нормально вводится вещественное число.

Это array20, что не так в нём? n:=readinteger переделал в n:integer.

Автор, объясни: 1). Что делает данная программа? 2). Зачем объявлена переменная n, которая нигде в коде не используется? 3). Если ты считаешь сумму положительных элементов, то зачем ты в цикле постоянно обнуляешь переменную s? 4). Для чего после оператора read(a[i]) стоит оператор write(a) ? По логике, он лишний, т.к. у тебя дальше по тексту есть еще один: write(a[i]) 5. Научись пользоваться операторами readln и writeln, а также выводить пробелы между данными, а то у тебя на экране будет вообще что-то непонятное.

Дык я то не автор, и мне все то же самое интересно было.

Не знаю, где ты взял этот код, но я думаю, что замысел автора был в подсчете суммы положительных элементов массива А, диапазон которых задается переменными К и L. Только вот работает этот код(в исполнении автора) неправильно. Имхо.

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

ну хорошо, ты подправил код. и что он вычисляет? :wink:

А это надо у автора спрашивать. Еще раз, я не автор. Я первым своим ответом в этой теме задал тот же вопрос: что должен делать этот код. Товарищ @Tapochek сразу внятно ответить не смог, а я только сейчас понял что это задание Array20. из встроенного задачника. Судя по условию:

Дан массив размера N и целые числа K и L (1 ≤ K ≤ L ≤ N). Найти сумму элементов массива с номерами от K до L включительно. 

А что там в задумке - я не выяснял, потому что изначально не услышал на свой вопрос ответа, а сейчас уже не знаю, нужно или нет.