IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> ПРЕДСТАВЛЕНИЕ И ОБРАБОТКА ЛИНЕЙНЫХ СПИСКОВ, система линейных уравнений
freejaile
сообщение 28.04.2007 19:49
Сообщение #1





Группа: Пользователи
Сообщений: 8
Пол: Женский

Репутация: -  0  +


Заданы 2 уравнения. Требуется найти общую переменную с мини-
мальным номером, и, если она есть, исключить ее из второго
уравнения. При этом второе уравнение должно измениться, чтобы
система из 2 уравнений осталась эквивалентной заданной.
Если при изменении второго уравнения один из его коэффи-
циентов оказывается равным 0, то этот элемент надо из списка
исключить. Если после таких исключений второе уравнение будет
иметь вид 0=a (или 0=0), то об этом должна выдаваться поясня-
ющая информация.

т.е. нужно примерно это:
1. задать 2 уравнения
2. найти общую переменную с мин.номером
3. удалить из второго уравнения найденную переменную:
-умножить коэффициенты 2-го уравнения на к.1-го
-наоборот
4. вычесть из первого ур-ия второе
5.сравнитьвторое с нулем

помогите плз)

Сообщение отредактировано: freejaile - 28.04.2007 19:50
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
мисс_граффити
сообщение 29.04.2007 0:55
Сообщение #2


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


Давай разбираться...
1. Хочешь объектно-ориентированное? Тогда делай и поля, а не только методы... Принцип инкапсуляции, все-таки.
procedure TList.SetSp (RSp : Sp; Ri : word; Rk : real);

хотя бы для приличия напиши, какой параметр var, а какой - const

сложно оценивать правильность процедры. неизвестно, как ты ее вызываешь.
я бы делала несколько иначе: передавала указатель на последний элемент и значение для ind и k.
Внутри процедуры:
1) Выделяла память под новый элемент списка
2) последний элемент^.next:=новый элемент
3) последний элемент:=новый элемент
4) заполнила поля ind и k переданными значениями, next - nil'ом

2. что-то ты не то делаешь...
цикл:
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;


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


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 21.07.2025 15:00
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"