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 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 28.04.2007 20:36
Сообщение #2


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

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

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


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


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





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

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


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

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

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


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

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

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


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

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

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


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





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

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


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


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

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

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


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

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


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
freejaile
сообщение 28.04.2007 21:37
Сообщение #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 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 29.04.2007 0:55
Сообщение #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 
 К началу страницы 
+ Ответить 
volvo
сообщение 29.04.2007 8:10
Сообщение #9


Гость






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

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





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

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


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

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

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


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

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

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

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

 



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