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

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

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

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





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

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


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

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

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

Сообщение отредактировано: freejaile -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


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

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

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


Замечательно все разделено по пунктам.
На каком этапе сложности?


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





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

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


Цитата(мисс_граффити @ 28.04.2007 22:36) *

Замечательно все разделено по пунктам.
На каком этапе сложности?

стараемся)
не совсем поняла про сложность...для 1 курса)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

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


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

Вот у меня например вопрос такой
Цитата
найти общую переменную с мин.номером

Что значит общую переменную? пример привести можешь?


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





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

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


В том-то и проблема, что вся задача один большой вопрос(((
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


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

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

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


freejaile, ну почему же сплошной вопрос smile.gif
давай пробовать по порядку.
Цитата
1. задать 2 уравнения

надо уметь создавать списки. почитай FAQ, воспользуйся поиском...
я бы хранила записи из трех полей:
номер переменной, коэффициент и указатель на следующую переменную.
То есть уравнение
3x1+4x2=8
представится в виде
1/3/указатель на второй элемент
2/4/nil


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





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

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


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;


это примерно так?..

М
Правда, с тегами красивее получается? Пожалуйста, не забывай ими пользоваться.
мисс_граффити

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


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

Группа: Пользователи
Сообщений: 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 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






freejaile, можно немного дополнить?

Если хочешь действительно ООП - делай объектами не только сам список, но и его элементы - это значительно облегчит использование списка... И добавит ему гибкости, кстати...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10





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

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


Цитата(volvo @ 29.04.2007 10:10) *

freejaile, можно немного дополнить?

Если хочешь действительно ООП - делай объектами не только сам список, но и его элементы - это значительно облегчит использование списка... И добавит ему гибкости, кстати...


аха, нам изначально нужно список объектов...

мисс_граффити, пасип)) сделала указатель вначало списка...

сделаю печать..а дальше не наю как(
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





- Текстовая версия 16.04.2024 13:33
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name