Помощь - Поиск - Пользователи - Календарь
Полная версия: Есть программа. Нужно переделать в универсальную.
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Осень
Нужно написать универсальную программу в Pascal.

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

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

Здесь мне всё понятно. Я написала программу. Она работает.

Program p;
 const n=100;
 type mas=array[0..n] of real;
 var c,i,j:integer; x,xx:mas; d:real;

 Procedure Data  (var x,xx:mas);
 begin
 writeln('Введите количество х (считать от 0)'); readln(c);
 writeln('Введите доп. число'); readln(d); 
 for i:=0 to c do begin
 write('Vvedite x(',i,') = '); readln(x[i]);
 end;

 j:=0;
 for i:=0 to c do begin
 if x[i]<>x[j] then xx[i]:=x[i]-x[j]
                    else xx[i]:=d-x[j];
 writeln('xx[',i,']=',xx[i]);
  end;
  end;

Begin
   Data(x,xx);
   read;
End.


Проблема в том, что мне нужна универсальная программа.
Моя программа считает только при j:=0. Получается что от всех чисел отнимается только первое число. А мне нужно и второе отнять, и третье и т.д. (в зависимости сколько пользователь пожелает чисел ввести)

Подскажите пожалуйста, как сделать это?
-Федосеев Павел-
Ну так ты уже подошла к решению - сделай второй (внешний) цикл по j, а для условия, что из чего вычитать сравнивай не элементы массива, а их индексы - "i<>j".
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.