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 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 12.06.2005 20:08
Сообщение #2


Гость






Я же сказал тебе не просто описАть указатели, а работать с указателями:
Исходный код
Unit menu;
interface
Procedure Run;
implementation
Uses Crt, main;
Const
maxLen = 42;
myHelp:array[1..5] of string=(
' ',
'Курсовая Работа',
'Все права защищены © 2005',
'БГТУ "ВоенМех" им. Д.Ф. Устинова',
'Автор: ');
Type
menuString = String[maxLen];
Function ShowMenu(Var Options: Array Of menuString;
Const n: Integer): Integer;
Var
ToExit: Boolean;
i, CurrSelect: integer;
Answer: Char;
Begin
TextAttr := 7;
ClrScr;
ToExit := False; CurrSelect := 1;
Repeat
Window(18,7,50,11);
TextBackground(Blue);
ClrScr;
Window(1,1,80,25);
GotoXY(18, 7);
TextColor(White);
Write('╔════════════════════════════════════════╗');
For i := 1 To 7 Do Begin
GotoXY(18,7+i);
Write('║ ║')
End;
GotoXY(18,15);
Write('╚════════════════════════════════════════╝');
GotoXY(29, 8);
WriteLn('Выберите действие:');
For i := 1 To n Do Begin
If i = CurrSelect Then TextBackground(Red)
Else TextBackground(Blue);
GotoXY(20, 9+i); Write(Options[Pred(i)])
End;
TextBackground(Black);
Case ReadKey Of
#0: Begin
Answer := ReadKey;
Case Answer Of
#80 : {Down}
If CurrSelect < n Then Inc(CurrSelect)
Else CurrSelect := 1;
#72 : {Up}
If CurrSelect > 1 Then Dec(CurrSelect)
Else CurrSelect := n;
End; {case}
End;
#13 : {Enter}
ToExit := True;
End;
Until ToExit;
ShowMenu := CurrSelect
End;
Const
mainMenuSize = 5;
mainMenu:
Array[1 .. mainMenuSize] Of menuString =
(' Работа с массивом ',
' Работа с матрицей ',
' Работа со списком ',
' Справка ',
' Выход ');
massivMenuSize = 4;
massivMenu:
Array[1 .. massivMenuSize] Of menuString =
(' Ввести массив ',
' Ввести диапазон от A до B ',
' Вывести измененный массив ',
' Назад ');
matrixMenuSize = 4;
matrixMenu:
Array[1 .. matrixMenuSize] Of menuString =
(' Ввести матрицу ',
' Ввести диапазон от A до B ',
' Вывести массив значений ',
' Назад ');
listMenuSize = 4;
listMenu:
Array[1 .. listMenuSize] Of menuString =
(' Ввести список ',
' Ввести диапазон от A до B ',
' Вывести измененный список ',
' Назад ');
Procedure Run;
Var
i,menuResult: Integer;
pmassObj: ^TMas;
pmatrixObj: ^TMatr;
plistObj: ^TList
Begin
pmatrixObj := nil;
Repeat
Case ShowMenu(mainMenu, mainMenuSize) of
1: { Work with Array: }
Begin
GotoXY(1, 20);
If pmatrixObj <> nil Then Begin
New(pmassObj, Init);
Repeat
menuResult := ShowMenu(massivMenu, massivMenuSize);
Case menuResult Of
1: pmassObj^.InData; { ... }
2: pmassObj^.Form; { ... }
3: pmassObj^.OutRes; { ... }
4: pmassObj^.Done;
End;
Until menuResult = 4;
Dispose(pmassObj, Done)
End
Else WriteLn(' Не могу инициализировать массив.'
+ ' Матрица не была инициализирована ');
End;
2: { Work with Matrix: }
Begin
New(pmatrixObj, Init);
Repeat
menuResult := ShowMenu(matrixMenu, matrixMenuSize);
Case menuResult Of
1: matrixObj^.InData; { ... }
2: matrixObj^.Form; { ... }
3: matrixObj^.OutRes; { ... }
4: matrixObj^.Done;
End;
Until menuResult = 4;
{ не удаляем матрицу - она еще понадобится }
End;
3: { Work with List: }
Begin
{
listObj.Init;
}
Repeat
menuResult := ShowMenu(listMenu, listMenuSize);
Case menuResult Of
1:; { ... }
2:; { ... }
3:; { ... }
4: { listObj.Done; }
End;
Until menuResult = 4;
End;
4: begin
Window(18,7,50,11);
TextBackground(Blue);
ClrScr;
Window(1,1,80,25);
GotoXY(18, 7);
TextColor(White);
Write('╔════════════════════════════════════════╗');
For i := 1 To 7 Do Begin
GotoXY(18,7+i);
Write('║ ║')
End;
GotoXY(18,15);
Write('╚════════════════════════════════════════╝');
GotoXY(29, 8);
WriteLn(' Справка:');
for i:=1 to 5 do
begin
GoToXY(23,8+i);
write(myHelp[i]);
end;
readln
end; { Show help }
5: Break;
End;
Until False;

{ А вот тут уже удаляем матрицу }
Dispose(pmatrixObj, Done);
End;
end.
 К началу страницы 
+ Ответить 

Сообщений в этой теме
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 19:02
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"