Заданы 2 уравнения. Требуется найти общую переменную с мини-
мальным номером, и, если она есть, исключить ее из второго
уравнения. При этом второе уравнение должно измениться, чтобы
система из 2 уравнений осталась эквивалентной заданной.
Если при изменении второго уравнения один из его коэффи-
циентов оказывается равным 0, то этот элемент надо из списка
исключить. Если после таких исключений второе уравнение будет
иметь вид 0=a (или 0=0), то об этом должна выдаваться поясня-
ющая информация.
т.е. нужно примерно это:
1. задать 2 уравнения
2. найти общую переменную с мин.номером
3. удалить из второго уравнения найденную переменную:
-умножить коэффициенты 2-го уравнения на к.1-го
-наоборот
4. вычесть из первого ур-ия второе
5.сравнитьвторое с нулем
помогите плз)
Замечательно все разделено по пунктам.
На каком этапе сложности?
freejaile, насчет сложности тебе хотели сказать, что за тебя вряд-ли кто то станет делать все.
начни делать сама, и если возникнут трудности, задавай вопросы конкретнее.
Пока вопросов у тебя нет.
Вот у меня например вопрос такой
В том-то и проблема, что вся задача один большой вопрос(((
freejaile, ну почему же сплошной вопрос
давай пробовать по порядку.
type Sp = ^Spisok;
Spisok = record
ind : word;
k : real;
next : sp;
end;
TList = object
procedure SetSp (RSP : Sp; Ri : word; Rk : real);
{ещё куча всяких ещё ненаписанных методов}
end;
procedure TList.SetSp (RSp : Sp; Ri : word; Rk : real);
begin
RSp^.ind := Ri;
RSp^.k := Rk;
RSp^.next := nil;
end;
const n=10; (это у нас по условию лабы так..)
...
var i:integer;
...
for i:=1 to n do
begin
writeln('введите', i ,'номер переменной');
readln (ri);
writeln('введите', i ,'коэффициент при переменной');
readln (rk);
RSp^.ind := Ri;
RSp^.k := Rk;
end;
if i=n then rsp^.next:=nil else
begin
new (rsp^.next);
rsp:=rsp^.next;
end;
М | Правда, с тегами красивее получается? Пожалуйста, не забывай ими пользоваться. мисс_граффити |
Давай разбираться...
1. Хочешь объектно-ориентированное? Тогда делай и поля, а не только методы... Принцип инкапсуляции, все-таки.
procedure TList.SetSp (RSp : Sp; Ri : word; Rk : real);
for i:=1 to n do
begin
writeln('введите', i ,'номер переменной');
readln (ri);
writeln('введите', i ,'коэффициент при переменной');
readln (rk);
RSp^.ind := Ri;
RSp^.k := Rk;
end;
if i=n then rsp^.next:=nil else
begin
new (rsp^.next);
rsp:=rsp^.next;
end;
freejaile, можно немного дополнить?
Если хочешь действительно ООП - делай объектами не только сам список, но и его элементы - это значительно облегчит использование списка... И добавит ему гибкости, кстати...