![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
SunDevil |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 28 Пол: Мужской Репутация: ![]() ![]() ![]() |
Помогите, плиз, разобраться с такой проблемой: в прикрепленном файле наполовину сделанный мой курсовик. Все ООП содержтся в файле Main.PAS В этом файле нормально работает только массив (с матрицей и списком я еще не разобрался). Когда запустите прогу, то увидете меню. Мне надо, чтобы на данный момент ВЫ помогли бы мне реализовать первый пункт меню (РАБОТА С МАССИВОМ). Надо, чтобы когда я зашел в этот пункт меню и выбрал любой другой пункт (Ввод массива, ввод диапазона от А до В, вывод измененного массива), то соотвественно это все работало. Моя проблема заключается в том, что я не знаю как вызывать файл Main.PAS и чтобы там все прекрасно работало :o
ПОМОГИТЕ, плиз :p2: Прикрепленные файлы ![]() |
![]() ![]() |
SunDevil |
![]()
Сообщение
#2
|
Новичок ![]() Группа: Пользователи Сообщений: 28 Пол: Мужской Репутация: ![]() ![]() ![]() |
Что тут не так???? Почему теперь компилятор гонит на I и говорит, что неизвестный идентификатор???
Исходный код unit main; interface uses crt; type pMassiv=^massiv; massiv=array[1..1] of integer; pMatrix=^matrix; matrix=array[1..1] of pMassiv; TAbst=object Size,ArrCount:integer; n:integer; x:pMassiv; constructor Init; procedure InData; virtual; procedure Form; virtual; procedure OutRes; virtual; destructor Done; virtual; end; {mas=array[1..1] of integer;} TMas=object(TAbst) y:pMassiv; constructor Init; 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:pMatrix; constructor Init; procedure InData; virtual; procedure Form; virtual; procedure OutRes; virtual; destructor Done; virtual; end; {PList1=^List1; List1=record dat:real; next:PList1; end; TList=object(TAbst) beg,beg1:PList1; constructor Init; procedure InData; virtual; procedure Form; virtual; procedure OutRes; virtual; destructor Done; virtual; end;} PMas=^TMas; PMatr=^TMatr;{ PList=^TList;} implementation constructor TAbst.Init; begin {clrscr; writeln('Введите размерность матрицы'); readln(n); clrscr;} 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; begin TAbst.Init; n:=Size; getmem(y,n*sizeof(integer)); {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(pMassiv)); freemem(y,n*sizeof(pMassiv)); end; {Matrix} constructor TMatr.Init; begin TAbst.Init; write('Размерность:'); readln(n); getmem(y,n*sizeof(pMassiv)); for i:=1 to n do getmem(y[i],n*sizeof(integer)); end; function TMatr.GetSize:Integer; begin GetSize:=n end; procedure TMatr.InData; var i,j:integer; begin clrscr; for i:=1 to n do for j:=1 to n 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 n 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; begin freemem(x,n*sizeof(Matr)); freemem(y,n*sizeof(Matr)); end; end. Поправьте, и плиз гляньте нет ли еще ошибок??? |
![]() ![]() |
![]() |
Текстовая версия | 6.07.2025 18:35 |