Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.02.2009, 16:27   #11
Chudo4258
Форумчанин
 
Аватар для Chudo4258
 
Регистрация: 19.02.2009
Сообщений: 622
По умолчанию

если я пишу тип: variant, то элемент этого типа я не могу ввести с клавиатуры(в делфи пишет такую ошибку "[Error] Project2.dpr(27): Illegal type in Read/Readln statement").
Что делать???
Жми на весы!!!

Последний раз редактировалось Chudo4258; 25.02.2009 в 16:42.
Chudo4258 вне форума Ответить с цитированием
Старый 25.02.2009, 16:46   #12
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А ты не консольную прогу делай, а оконную
Расставь там Эдиты и в них вводи )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.02.2009, 18:28   #13
Chudo4258
Форумчанин
 
Аватар для Chudo4258
 
Регистрация: 19.02.2009
Сообщений: 622
По умолчанию

дак мнеб в консоле желательно.
Жми на весы!!!
Chudo4258 вне форума Ответить с цитированием
Старый 06.03.2009, 08:35   #14
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Тогда делай так: Вооди строку, а ее уж Варианту присваивай, он сам разберется
Код:
var a:Variant;s:string;i:integer;
begin
readln(s);
a:=s;
i:=a+12 ;
 writeln(i);readln;
  { TODO -oUser -cConsole Main : Insert code here }
end.
А дальше уж преобразовывать можно как угодно, как видиш.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.03.2009, 20:03   #15
Chudo4258
Форумчанин
 
Аватар для Chudo4258
 
Регистрация: 19.02.2009
Сообщений: 622
По умолчанию

Если я буду использовать тип variant у меня получается однотипный список(с элементами типа variant), а мне надо гетерогенный.
Короче задачу можно решать так: создать два отдельных списка(например integer и char)заполнить их элементами, а затем их соединить, но вот это соединеие у меня не получеется.
S_int_nach - ссылка на начало типа integer
S_int_kon - ссылка на конец типа integer
S_char_nach - ссылка на начало типа char

а теперь нужно S_int_kon^.Next:=S_char_nach
Но так как эти два типа разные, то я не могу их соединить, вот в этом вся проблема.


Подскажите как это можно сделать???
Жми на весы!!!
Chudo4258 вне форума Ответить с цитированием
Старый 06.03.2009, 21:10   #16
Chudo4258
Форумчанин
 
Аватар для Chudo4258
 
Регистрация: 19.02.2009
Сообщений: 622
По умолчанию

Ну подскажите как быть в такой ситуации???
Жми на весы!!!

Последний раз редактировалось Chudo4258; 07.03.2009 в 14:51.
Chudo4258 вне форума Ответить с цитированием
Старый 08.03.2009, 01:57   #17
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

мне лень писать с нуля. Выложите код, который работает и полностью Вас устраивает за исключением того, что список ГОМОГЕННЫЙ!!
либо сами допишите...
есть несколько вариантов сделать то, что Вы хотите.
Например, используя записи с вариантами:
Код:
 Class  = (Num, Dat, Str);
 UU = ^ZvenoVar;
 ZvenoVar = record
   Next: UU;
   case Kind: Class of
     Num: (N: real);
     Dat: (D: Integer);
     Str: (S: string);
 end;
или, банально объявить разные типы записей и нанизывать их друг на друга:
Код:
Type 
     Zveno1 = Record
        ZType : byte;
        Inf : Integer;
        Next: Pointer
     End;
     Zveno2 = Record
        ZType : byte;
        Inf : String[40];
        Next: Pointer
     End;
     Zveno3 = Record
        ZType : byte;
        Inf : Real;
        Next: Pointer
     End;

Var
  V1 : ^Zveno1;
  V2 : ^Zveno2;
  V3 : ^Zveno3;
Begin
  New(V1);
  V1^.ZType := 1;
  V1^.Inf := 100;

  New(V2);
  V2^.ZType := 2;
  V2^.Inf := 'Testing';
  V2^.Next := Nil;

  V1^.Next := V2
end.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 08.03.2009, 08:48   #18
Chudo4258
Форумчанин
 
Аватар для Chudo4258
 
Регистрация: 19.02.2009
Сообщений: 622
По умолчанию

Ого это уже хорошая идея.
Попробую так. А код для обчного списка выложен в этой теме в самом начале, вернее там процедуры, но с помощю них можно бешить почту любую задачу.
Жми на весы!!!

Последний раз редактировалось Chudo4258; 08.03.2009 в 08:52.
Chudo4258 вне форума Ответить с цитированием
Старый 08.03.2009, 09:51   #19
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
А код для обчного списка выложен в этой теме в самом начале, вернее там процедуры, но с помощю них можно бешить почту любую задачу.
Вы можете мне поверить, что я такую задачу способен решить и без кода, выложенного Вами в начале (да и решал многократно). Просто мне некогда (да и лень, если честно) прикручивать эти процедуры к программе или писать всё заново...
Ну не важно - идея Вам ясна (и даже две :-)
Дерзайте!
Желаю успехов!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 08.03.2009, 13:25   #20
Chudo4258
Форумчанин
 
Аватар для Chudo4258
 
Регистрация: 19.02.2009
Сообщений: 622
По умолчанию

Код:
Class  = (Num, Dat, Str);
 UU = ^ZvenoVar;
 ZvenoVar = record
   Next: UU;
   case Kind: Class of
     Num: (N: real);
     Dat: (D: Integer);
     Str: (S: string);
 end;

Цитата:
[Error] Project2.dpr(8): PROCEDURE or FUNCTION expected
Подскажите что за ошибка и как ее исправить????
Жми на весы!!!
Chudo4258 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Список на Си Annenen Помощь студентам 21 20.12.2010 18:54
Данные-проверка-список (список на другом листе) Inbox Microsoft Office Excel 7 26.12.2008 01:43