Разве так нельзя писать?
Type
a=array[1..n] of integer
Пишет Error 133...
1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
| Reber |
Сообщение
#1
|
|
Новичок ![]() Группа: Пользователи Сообщений: 44 Репутация: 0 |
Разве так нельзя писать?
Type a=array[1..n] of integer Пишет Error 133... -------------------- Играйте в футбол
|
![]() ![]() |
| SKVOZNJAK |
Сообщение
#2
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 930 Пол: Мужской Репутация: 11 |
Цитата :DХотя предется писать еще несколько процедур для работы!!!! Да уж ещё несколько процедур наверно понадобятся :) Вот как примерно может выглядеть файловый массив для одновременного использования разных типов переменных. Если почаще "попадать" в 512 байтное окно, то обращения к диску будут минимальные. Вместо типизованных констант, можно использовать гл. перемееные. UNIT CEBURAS; interface FUNCTION PAKMAN(FAG:BYTE;DUR,BAIT:LONGINT):LONGINT;{(ФЛАГ,АДРЕС(>0),БАЙТ)} {ФЛАГИ: 1 - BYTE ЗАПИСЬ, 2 - BYTE ЧТЕНИЕ, 3 - INTEGER ЗАПИСЬ, 4 - INTEGER ЧТЕНИЕ, 7 - WORD ЗАПИСЬ, 8 - WORD ЧТЕНИЕ, 9 - LONGINT ЗАПИСЬ, 10 - LONGINT ЧТЕНИЕ} PROCEDURE PAKIN(UU:STRING;ZZ:LONGINT);{СОЗДАНИЕ ФАЙЛА С ИМЕНЕМ ЗАДАННЫМ В UU:STRING И ДЛИНОЙ РАВНОЙ ZZ*512} PROCEDURE PAKEEV(UU:STRING); {ПРИВЯЗКА МАССИВА К УЖЕ ГОТОВОМУ ФАЙЛУ, UU:STRING - ИМЯ ЭТОГО ФАЙЛА} PROCEDURE PAKFIG;{ОБНУЛЕНИЕ ТЕКУЩЕГО СЕГМЕНТА БЕЗ ЗАПИСИ РЕЗУЛЬТАТОВ В ФАЙЛ} PROCEDURE PAKMENT;{ЗАПИСЬ ТЕКУЩЕГО СЕГМЕНТА В ФАЙЛ} implementation USES CRT,DOS; VAR Q7: FILE; Q8: LONGINT; {ДЕЙСТВУЮЩИЙ СЕГМЕНТ(ПРИ ПЕРВОМ СЕГМЕНТЕ Q8=0)} {UY:STRING[12]; } CONST U:ARRAY[0..511] OF BYTE =( 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); PROCEDURE CVB(J,K:LONGINT); BEGIN RESET(Q7,1); SEEK(Q7,J); BLOCKWRITE(Q7,U,512); CLOSE(Q7); RESET(Q7,1); SEEK(Q7,K); BLOCKREAD(Q7,U,512); CLOSE(Q7); END; PROCEDURE CXB(K:LONGINT); {СОВМЕЩЕНИЕ СЕГМЕНТОВ} VAR E: WORD; Q,W,T: LONGINT; BEGIN T:=K DIV 512; E:=K MOD 512; IF T>0 THEN BEGIN IF E>0 THEN T:=T+1; END; IF Q8<>T THEN BEGIN Q:=Q8*512; W:=T*512; CVB(Q,W); Q8:=T; END; END; FUNCTION PAKMAN(FAG:BYTE;DUR,BAIT:LONGINT):LONGINT; LABEL 1, 100; VAR Q, W: LONGINT; F :^INTEGER; G :^WORD; R :^LONGINT; BEGIN Q:=DUR-1; CXB(Q); W:=Q MOD 512; CASE FAG OF 1: BEGIN {BYTE ЗАПИСЬ} U[W]:=BAIT; PAKMAN:=0; GOTO 100; END; 2: BEGIN {BYTE ЧТЕНИЕ} PAKMAN:=U[W]; GOTO 100; END; 3: BEGIN {INTEGER ЗАПИСЬ} IF W=511 THEN GOTO 1; F:=ADDR(U[W]); F^:=BAIT; PAKMAN:=0; GOTO 100; END; 4: BEGIN {INTEGER ЧТЕНИЕ} IF W=511 THEN GOTO 1; F:=ADDR(U[W]); PAKMAN:=F^; GOTO 100; END; 7: BEGIN {WORD ЗАПИСЬ} IF W=511 THEN GOTO 1; G:=ADDR(U[W]); G^:=BAIT; PAKMAN:=0; GOTO 100; END; 8: BEGIN {WORD ЧТЕНИЕ} IF W=511 THEN GOTO 1; G:=ADDR(U[W]); PAKMAN:=G^; GOTO 100; END; 9: BEGIN {LONGINT ЗАПИСЬ} IF W>508 THEN GOTO 1; R:=ADDR(U[W]); R^:=BAIT; PAKMAN:=0; GOTO 100; END; 10: BEGIN {LONGINT ЧТЕНИЕ} IF W>508 THEN GOTO 1; R:=ADDR(U[W]); PAKMAN:=R^; GOTO 100; END; END; 1: WRITELN('ВВЕДЕНЫ НЕПРАВИЛЬНЫЕ ДАННЫЕ: ФЛАГ=',FAG,' СМЕЩЕНИЕ=',Q8,' '); SOUND(120);DELAY(2000);SOUND(70);DELAY(1000); 100: END; PROCEDURE PAKIN(UU:STRING;ZZ:LONGINT); VAR Q:LONGINT; W:ARRAY[0..511] OF LONGINT; BEGIN Q8:=0; ASSIGN(Q7,UU); REWRITE(Q7,1); FOR Q:=1 TO ZZ DO BLOCKWRITE(Q7,W,512); CLOSE(Q7); END; PROCEDURE PAKEEV(UU:STRING); BEGIN Q8:=0; ASSIGN(Q7,UU); END; PROCEDURE PAKFIG; VAR W: WORD; BEGIN FOR W:=0 TO 511 DO U[W]:=0; END; PROCEDURE PAKMENT; VAR W:LONGINT; BEGIN W:=Q8*512; RESET(Q7,1); SEEK(Q7,W); BLOCKWRITE(Q7,U,512); CLOSE(Q7); END; BEGIN END. |
Reber Массивы 25.11.2002 17:10
trminator Re: Массивы 25.11.2002 18:48
AlaRic Re: Массивы 25.11.2002 20:33
Reber Re: Массивы 25.11.2002 22:17
AlaRic Re: Массивы 25.11.2002 23:18
Ivs Re: Массивы 25.11.2002 23:23
trminator Re: Массивы 26.11.2002 15:25
mj Re: Массивы 2.12.2002 4:30
Alex Re: Массивы 2.12.2002 19:49
AGPA Re: Массивы 7.12.2002 19:16
Demik Re: Массивы 20.11.2003 3:26
Demik Re: Массивы 20.11.2003 3:29![]() ![]() |
|
Текстовая версия | 23.12.2025 17:27 |