|
Вопрос # 6 586/ вопрос открыт / |
|
Здравствуйте уважаемые эксперты!
Не могу понять почему не работает код при использовании динамического массива (именно его нужно использовать по заданию).
Если тип объявляю как
TmasBook = array[1..10] of tBook;
(соответственно с убором setlength(masBook,numBook);
все работает нормально
Спасибо за помощь!
 |
Вопрос задал: KwaK (статус: Посетитель)
Вопрос отправлен: 19 мая 2015, 22:54
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 9; последнее сообщение — 20 мая 2015, 08:42; участников в обсуждении: 2.
|
KwaK (статус: Посетитель), 19 мая 2015, 23:17 [#2]:
именно для статического массива все работает. Но если вставляю динамический,(см приложение), то все виснет.
А забрел по старой памяти. Кстати, мы уже общались года 4 назад
|
|
min@y™ (статус: Доктор наук), 19 мая 2015, 23:44 [#3]:
Цитата (KwaK):
см приложение
не вижу я тут приложений.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
KwaK (статус: Посетитель), 19 мая 2015, 23:48 [#4]:
прикреплял, вставляю код (не стал править глюки отражения русских букв)
program Lab9v2;
{$APPTYPE CONSOLE}
uses
SysUtils,
convertor in '..Convertorconvertor.pas';
type
tBook = record
Author : string[20];
Name : string[50];
InvNum : Word;
Izdat : string[20];
Pages : Word;
Price : Integer;
end;
TmasBook = array of tBook;
//TmasBook = array[1..10] of tBook;
var
masBook : TmasBook;
Book : tBook;
numBook : Integer;
procedure VvodBook(Book : tBook);
begin
write(rus('Ââåäèòå àâòîðà
êíèãè '));
Readln(Book.Author);
write(rus('Ââåäèòå íàçâàíèå
êíèãè '));
Readln(Book.Name);
write(rus('Ââåäèòå öåíó êíèãè '));
Readln(Book.Price);
write(rus('Ââåäèòå êîëè÷åñòâî
ñòðàíèö â êíèãå '));
Readln(Book.Pages);
write(rus('Ââåäèòå
èíâåíòàðíûé íîìåð
êíèãè '));
Readln(Book.InvNum);
write(rus('Ââåäèòå
èçäàòåëüñòâî,
âûïóñòèâøåå êíèãó '));
Readln(Book.Izdat);
end;
procedure PrintBook(Book : tBook);
begin
writeln(rus('Àâòîð: '),Book.Author);
writeln(rus('Íàçâàíèå: '),Book.Name);
Writeln(rus('Öåíà: '),Book.Price);
Writeln(rus('Êîëè÷åñòâî ñòðàíèö:
'),Book.Pages);
Writeln(rus('Èíâåíòàðíûé íîìåð:
'),Book.InvNum);
Writeln(rus('Èçäàòåëüñòâî: '),Book.Izdat);
end;
procedure PrintMasBook(Book : TmasBook; numBook : Word);
var
i : Integer;
begin
for i:=1 to numBook do
if Book[i].Pages <> 0 then
begin
Writeln;
writeln(rus('Àâòîð: '),Book[i].Author);
writeln(rus('Íàçâàíèå: '),Book[i].Name);
Writeln(rus('Öåíà: '),Book[i].Price);
Writeln(rus('Êîëè÷åñòâî
ñòðàíèö: '),Book[i].Pages);
Writeln(rus('Èíâåíòàðíûé íîìåð:
'),Book[i].InvNum);
Writeln(rus('Èçäàòåëüñòâî: '),Book[i].Izdat);
end;
end;
begin
writeln(rus('Ââåäèòå ÷èñëî êíèã '));
readln(numBook);
setlength(masBook,numBook);//
masBook[1].Pages:=130;
PrintMasBook(masBook,numBook);
Readln;
end.
|
|
KwaK (статус: Посетитель), 19 мая 2015, 23:56 [#5]:
могу выслать код на почту. Модуль Convertor позволяет использовать русский шрифт. Его состав
unit convertor;
interface
function RUS(s:string):string;
implementation
function RUS(s:string):string;
var i:longint;
begin
for i:=1 to length(s) do
begin
if ord(s[i]) in [192..239] then s[i]:=chr(ord(s[i])-64);
if ord(s[i]) in [240..255] then s[i]:=chr(ord(s[i])-16);
end;
RUS:=s
end;
end.
|
|
min@y™ (статус: Доктор наук), 19 мая 2015, 23:56 [#6]:
тебе сколько лет-то?
может повзрослеть уже пора?
вытащить мамкину сиську изо рта, начать называть пипиську хуем, а массивы нумеровать с нуля!
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
min@y™ (статус: Доктор наук), 19 мая 2015, 23:59 [#7]:
и ещё. вместо записей record и дин. массивов из этих записей давно пора юзать классы class и списки.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
KwaK (статус: Посетитель), 20 мая 2015, 06:44 [#8]:
Сколько мне лет можешь сам посмотреть, я при регистрации данные указал реальные.
Что логичнее это сделать через классы, я и без тебя знаю. Это лаба в ВУЗе (разумеется не моя, староват я для ВУЗа), а ее нужно выполнить именно через дин.массив и записи.
Не можешь помочь, так и скажи.
Короче минх.й (догадайся, что пропущено), как был хамом, так им и остался. Кстати, твой старый аватар давал подсказку, какая буква пропущена.
|
|
min@y™ (статус: Доктор наук), 20 мая 2015, 08:42 [#9]:
Цитата (KwaK):
как был хамом, так им и остался.
я никогда не был хамом.
ты просто не дочитал моё сообщение до фразы
Цитата (min@y™):
а массивы нумеровать с нуля
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|