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

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

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

> Помогите с курсовиком, И снова ООП
SunDevil
сообщение 5.06.2005 17:35
Сообщение #1


Новичок
*

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

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


Помогите, плиз, разобраться с такой проблемой: в прикрепленном файле наполовину сделанный мой курсовик. Все ООП содержтся в файле Main.PAS В этом файле нормально работает только массив (с матрицей и списком я еще не разобрался). Когда запустите прогу, то увидете меню. Мне надо, чтобы на данный момент ВЫ помогли бы мне реализовать первый пункт меню (РАБОТА С МАССИВОМ). Надо, чтобы когда я зашел в этот пункт меню и выбрал любой другой пункт (Ввод массива, ввод диапазона от А до В, вывод измененного массива), то соотвественно это все работало. Моя проблема заключается в том, что я не знаю как вызывать файл Main.PAS и чтобы там все прекрасно работало :o
ПОМОГИТЕ, плиз :p2:


Прикрепленные файлы
Прикрепленный файл  Kursovik.zip ( 3.28 килобайт ) Кол-во скачиваний: 166
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
SunDevil
сообщение 14.06.2005 20:29
Сообщение #2


Новичок
*

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

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


Доделал я этот гребаный курсовик, НО есть теперь опять одно НО! Сначала ввожу матрицу, потом для нее диапазон, все прекрасно. Со списком тоже все хорошо, но вот когда я перехожу к массиву, то при выводе выдает опять черт знает что.
Тестил на:
3 4 6 7
Диапазон 0;3
Вывод 4 6 7 1
Откуда теперь единица? :o Может дело в переменной k? А то ее слишком уж много у меня в программе? Посмотрите, плиз
Исходный код
unit main;
interface
uses crt;
type TAbst=object
n:integer;
constructor Init;
procedure InData; virtual;
procedure Form; virtual;
procedure OutRes; virtual;
destructor Done; virtual;
end;
mas=array[1..1] of integer;
TMas=object(TAbst)
x,y:^mas;
constructor Init(n1:integer);
procedure InData; virtual;
procedure Form; virtual;
procedure OutRes; virtual;
destructor Done; virtual;
end;
matr=array[1..1] of ^mas;
TMatr=object(TAbst)
m:integer;
x:^matr;
y:^mas;
ArrLen:integer;
constructor Init(n1,m1:integer);
procedure InData; virtual;
procedure Form; virtual;
procedure OutRes; virtual;
destructor Done; virtual;
end;
PList1=^List1;
List1=record
dat:integer;
next:PList1;
end;
TList=object(TAbst)
beg,beg1:PList1;
constructor Init(n1:integer);
procedure InData; virtual;
procedure Form; virtual;
procedure OutRes; virtual;
destructor Done; virtual;
end;
PMas=^TMas;
PMatr=^TMatr;
PList=^TList;
procedure InRazm(var n,m:integer);
implementation
procedure InRazm(var n,m:integer);
begin
clrscr;
writeln('Введите размерность матрицы :');
readln(n,m);
end;
constructor TAbst.Init;
begin
end;
procedure TAbst.InData;
begin
end;
procedure TAbst.Form;
begin
end;
procedure TAbst.OutRes;
begin
end;
destructor TAbst.Done;
begin
end;
{Array}
constructor TMas.Init(n1:integer);
begin
n:=n1;
getmem(x,n*sizeof(Mas));
getmem(y,n*sizeof(Mas));
end;
procedure TMas.InData;
var i:integer;
begin
clrscr;
for i:=1 to n do
begin
write('a[',i,']= ');
readln(x^[i]);
end;
clrscr;
end;
procedure TMas.Form;
var i,k:integer;
a,b:real;
begin
clrscr;
writeln('Введите диапазон значений от A до B');
readln( a,B );
k:=0;
for i:=1 to n do
if (x^[i]<a) OR (x^[i]>b) then
begin
inc(k);
y^[k]:=x^[i];
end;
clrscr;
end;
procedure TMas.OutRes;
var k:integer;
begin
clrscr;
for k:=1 to n do
write(y^[k],' ');
readln;
clrscr;
end;
destructor TMas.Done;
begin
freemem(x,n*sizeof(Mas));
freemem(y,n*sizeof(Mas));
end;
{Matrix}
constructor TMatr.Init(n1,m1:integer);
var i:integer;
begin
n:=n1;
m:=m1;
getmem(x,n*sizeof(Matr));
for i:=1 to n do
getmem(x^[i],m*sizeof(Mas));
getmem(y,n*m*sizeof(Mas));
end;
procedure TMatr.InData;
var i,j:integer;
begin
clrscr;
for i:=1 to n do
for j:=1 to m do
begin
write('a[',i,',',j,']= ');
readln(x^[i]^[j]);
end;
clrscr;
end;
procedure TMatr.Form;
var i,j:integer;
a,b:real;
begin
clrscr;
writeln('Введите диапазон значений от A до B');
readln( a,B );
ArrLen:=0;
for i:=1 to n do
for j:=1 to m do
if (x^[i]^[j]<a) OR (x^[i]^[j]>b) then
begin
inc(ArrLen);
y^[ArrLen]:=x^[i]^[j];
end;
clrscr;
end;
procedure TMatr.OutRes;
var k:integer;
begin
clrscr;
for k:=1 to ArrLen do
write(y^[k],' ');
readln;
clrscr;
end;
destructor TMatr.Done;
var i:integer;
begin
for i:=1 to n do
freemem(x^[i],m*sizeof(Mas));
freemem(y,n*m*sizeof(Mas));
freemem(x,n*sizeof(Matr));
end;
constructor TList.Init(n1:integer);
begin
n:=n1;
end;
procedure TList.InData;
var i:integer;
PEnd,p:PList1;
begin
clrscr;
beg:=nil;
for i:=1 to n do
begin
new(p);
write('a[',i,']= ');
readln(p^.Dat);
p^.next:=nil;
if beg=nil then
beg:=p
else
PEnd^.Next:=p;
PEnd:=p;
end
end;
procedure TList.Form;
var a,b:integer;
p,p1,PEnd1:PList1;
begin
clrscr;
writeln('Введите диапазон значений от A до B');
readln( a,B );
p:=beg;
beg1:=nil;
repeat
if (p^.Dat<a) OR (p^.Dat>b) then
begin
new(p1);
p1^.Dat:=p^.Dat;
p1^.next:=nil;
if beg1=nil then
beg1:=p1
else
PEnd1^.next:=p1;
PEnd1:=p1
end;
p:=p^.next;
until p=nil;
end;
procedure TList.OutRes;
var p:PList1;
begin
clrscr;
p:=beg1;
repeat
write(p^.Dat,' ');
p:=p^.next;
until p=nil;
readln
end;
destructor TList.Done;
var p,p1:PList1;
begin
p:=beg;
repeat
p1:=p^.next;
dispose(p);
p:=p1;
until p=nil;
p:=beg1;
repeat
p1:=p^.next;
dispose(p);
p:=p1;
until p=nil;
end;
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
SunDevil   Помогите с курсовиком   5.06.2005 17:35
volvo   Так напиши процедуры, который вызываются вот тут: ...   5.06.2005 18:25
SunDevil   Чтобы всем понятнее было : unit main; interface ty...   5.06.2005 18:45
volvo   Ну, и где во всей программе у тебя хоть одна их эт...   5.06.2005 19:01
SunDevil   2 volvo Разницу между реализовать и подключить зна...   5.06.2005 19:20
volvo   Вот так: var massObj: TMas; ... { там, где нужно ...   5.06.2005 21:35
volvo   Вот тебе простой пример работы с многоуровневым ме...   6.06.2005 11:52
SunDevil   2 volvo СПАСИБО ЗА МЕНЮ ОГРОМНОЕ! РАЗОБРАЛСЯ...   10.06.2005 20:01
volvo   Правильно ругается. Смотри: The FOR statement con...   10.06.2005 20:28
SunDevil   volvo Спасибо, буду работать дальше...   10.06.2005 20:46
SunDevil   Да и еще такой вопрос. Можно ли запретить вводить ...   10.06.2005 21:12
volvo   Ты имеешь в виду запретить создание объектов типа...   10.06.2005 21:42
SunDevil   Мне не совсем понятно куда надо это вставлять, ве...   12.06.2005 19:21
SunDevil   Еще есть вопрос: ... Repeat menu...   10.06.2005 22:50
volvo   Ну, раз только 5 строчек, то я бы просто задавал и...   10.06.2005 23:03
SunDevil   Постепенно добрался до работы с матрицей... Соотве...   12.06.2005 15:12
volvo   И снова он прав :) У тебя неправильно происходит ...   12.06.2005 15:24
SunDevil   procedure TMas.Form; var i,k:integer; a,b:...   12.06.2005 17:27
volvo   Один дополнительный цикл: procedure TMatr.Form; va...   12.06.2005 17:37
SunDevil   Сделал как вы написали, пишу далее процедуру proce...   12.06.2005 18:18
volvo   :no: Неправильно... В массиве Y скорее всего или п...   12.06.2005 18:49
volvo   Ну, так это должно быть там, где ты собрался испол...   12.06.2005 19:33
SunDevil   Unit menu; interface Procedure Run; implementation...   12.06.2005 19:41
volvo   Я же сказал тебе не просто описАть указатели, а ра...   12.06.2005 20:08
SunDevil   Еще возникает такая проблема: constructor TAbst.In...   12.06.2005 21:15
volvo   :no: Никак !!! Ты не имеешь доступа к ...   12.06.2005 22:14
SunDevil   То есть мне надо наследовать так: TMas=object(TMat...   13.06.2005 9:43
volvo   Объясни мне, непонятливому, ПОЧЕМУ ты массив хочеш...   13.06.2005 10:31
SunDevil   2 volvo Я совсем запутался с этими объектами :( Уж...   13.06.2005 13:58
volvo   :no: Нет... Я не знаю смысла всего этого проекта, ...   13.06.2005 14:10
SunDevil   volvo Спасибо за помощь, тогда как все-таки вы мне...   13.06.2005 16:38
volvo   Тогда я делал бы вот так: 1. Наследуешь все как и ...   13.06.2005 17:06
SunDevil   volvo Мне надо еще одну переменную m вводить, для ...   13.06.2005 20:07
SunDevil   Что тут не так???? Почему теперь компилятор гонит ...   13.06.2005 20:35
volvo   Потому что ты его не определил!!! Где ...   13.06.2005 21:07
SunDevil   Доделал я этот гребаный курсовик, НО есть теперь о...   14.06.2005 20:29
volvo   У тебя тут та же самая история, что была с TMatr.....   14.06.2005 21:12


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

 



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