Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 6 586

/ вопрос открыт /

Здравствуйте уважаемые эксперты!
Не могу понять почему не работает код при использовании динамического массива (именно его нужно использовать по заданию).
Если тип объявляю как
TmasBook = array[1..10] of tBook;
(соответственно с убором setlength(masBook,numBook);
все работает нормально
Спасибо за помощь!

KwaK Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: KwaK (статус: Посетитель)
Вопрос отправлен: 19 мая 2015, 22:54
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 9; последнее сообщение — 20 мая 2015, 08:42; участников в обсуждении: 2.
min@y™

min@y™ (статус: Доктор наук), 19 мая 2015, 23:14 [#1]:

Цитата (KwaK):

TmasBook = array[1..10] of tBook;

это статический массив.

ты как забрёл в этот мёртвый форум-то?
http://programmersforum.ru/index.php
http://www.cyberforum.ru/
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
KwaK

KwaK (статус: Посетитель), 19 мая 2015, 23:17 [#2]:

именно для статического массива все работает. Но если вставляю динамический,(см приложение), то все виснет.
А забрел по старой памяти. Кстати, мы уже общались года 4 назад
min@y™

min@y™ (статус: Доктор наук), 19 мая 2015, 23:44 [#3]:

Цитата (KwaK):

см приложение

не вижу я тут приложений.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
KwaK

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('&#192;&#226;&#242;&#238;&#240;: '),Book[i].Author);
      writeln(rus('&#205;&#224;&#231;&#226;&#224;&#237;&#232;&#229;: '),Book[i].Name);
      Writeln(rus('&#214;&#229;&#237;&#224;: '),Book[i].Price);
      Writeln(rus('&#202;&#238;&#235;&#232;&#247;&#229;&#241;&#242;&#226;&#238;
&#241;&#242;&#240;&#224;&#237;&#232;&#246;: '),Book[i].Pages);
      Writeln(rus('&#200;&#237;&#226;&#229;&#237;&#242;&#224;&#240;&#237;&#251;&#233; &#237;&#238;&#236;&#229;&#240;:
'),Book[i].InvNum);
      Writeln(rus('&#200;&#231;&#228;&#224;&#242;&#229;&#235;&#252;&#241;&#242;&#226;&#238;: '),Book[i].Izdat);
     end;
end;
 
begin
  writeln(rus('&#194;&#226;&#229;&#228;&#232;&#242;&#229; &#247;&#232;&#241;&#235;&#238; &#234;&#237;&#232;&#227; '));
  readln(numBook);
  setlength(masBook,numBook);//
  masBook[1].Pages:=130;
  PrintMasBook(masBook,numBook);
  Readln;
end.
KwaK

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™

min@y™ (статус: Доктор наук), 19 мая 2015, 23:56 [#6]:

тебе сколько лет-то?
может повзрослеть уже пора?
вытащить мамкину сиську изо рта, начать называть пипиську хуем, а массивы нумеровать с нуля!
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
min@y™

min@y™ (статус: Доктор наук), 19 мая 2015, 23:59 [#7]:

и ещё. вместо записей record и дин. массивов из этих записей давно пора юзать классы class и списки.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
KwaK

KwaK (статус: Посетитель), 20 мая 2015, 06:44 [#8]:

Сколько мне лет можешь сам посмотреть, я при регистрации данные указал реальные.
Что логичнее это сделать через классы, я и без тебя знаю. Это лаба в ВУЗе (разумеется не моя, староват я для ВУЗа), а ее нужно выполнить именно через дин.массив и записи.
Не можешь помочь, так и скажи.
Короче минх.й (догадайся, что пропущено), как был хамом, так им и остался. Кстати, твой старый аватар давал подсказку, какая буква пропущена.
min@y™

min@y™ (статус: Доктор наук), 20 мая 2015, 08:42 [#9]:

Цитата (KwaK):

как был хамом, так им и остался.

я никогда не был хамом.
ты просто не дочитал моё сообщение до фразы

Цитата (min@y™):

а массивы нумеровать с нуля
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:55
Выполнено за 0.04 сек.