Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.141.170.104] |
|
Сообщ.
#1
,
|
|
|
вы знаете, что есть такая конструкция в языке, как запись с вариантами. что-то типа этого:
type struct = record kind = (bla1,bla2); case kind of bla1 : ({переменные}); bla2 : ({переменные}); end; я в ней толком ещё не разобрался.. вот дано задание: составьте программу, которая использует массив записей жильцов дома. у них есть имена, номера квартиры и т.д.. и потом дано условие: для лиц старше 18 лет в зависимости от рода деятельности (студент, пенсионер, работающий) - записать ещё кое-какие переменные. Всё бы ничего, но для лиц старше 18 лет. как записать, чтобы он вначале смотрел сколько лет, а потом уже шёл оператор case kind of ... Или никак? может придётся проверять это уже из самой программы? |
Сообщ.
#2
,
|
|
|
Почитай:
http://pascalforall.ru/2010/02/zapisi-s-variantami/ |
Сообщ.
#3
,
|
|
|
эмм.. ну вроде у меня почти то же, что и в примере сайта:
type kind = (student,worker,pensioner); { род деятельности} tenant=record flat :integer; { № квартиры} surname :string; { фамилия} hisname :string; { имя} age :integer; { возраст} // kindp :kind; case sort : kind of student : (placeS : string;); worker : (placeW : string; exp:string;); pensioner: (year : integer); end; чего тут не так?) Добавлено ммда.. оказывается PascalABC не поддерживает записи с вариантами. какой-то странный компилятор( |
Сообщ.
#4
,
|
|
|
Цитата Potroshitell @ Если у тебя 32-битный компилятор, то нельзя использовать String без указания длины в вариантной записи... Или укажи в квадратных скобках длину, или используй ShortString.чего тут не так?) А PascalABC вообще пора бы на свалку вынести... |
Сообщ.
#5
,
|
|
|
Цитата volvo877 @ А PascalABC вообще пора бы на свалку вынести... =))) я бы не против, просто там хотя бы интерфейс современный) а в freepascal старинный синий экран) почему-бы не изобрести компилятор паскаля с внешним видом ABC, а возможностями freepascal=)) P.S а так, запись с вариантами то без ошибок сделана?) |
Сообщ.
#6
,
|
|
|
Цитата Potroshitell @ бы не против, просто там хотя бы интерфейс современный) Такой устроит? http://www.bloodshed.net/devpascal.html Как его приклеить к новой версии FPC, есть тема здесь же на форуме. Похоже, сайт умер http://www.softportal.com/get-184-bloodshed-dev-pascal.html Отсюда качается норм. |
Сообщ.
#7
,
|
|
|
Цитата Potroshitell @ P.S а так, запись с вариантами то без ошибок сделана?) volvo877 уже сказал, что в вариантной части (после case) нельзя использовать типы, требующие специальной инициализации\финализации, т.е. длинные строки (string), дин.массивы, варианты и интерфейсы |
Сообщ.
#8
,
|
|
|
Цитата Оззя @ Как его приклеить к новой версии FPC, есть тема здесь же на форуме. Не могу найти Помню, что Jenia создавал, а volvo877 ответил. Кажется, просто в настройках путь прописать надо к новому компилятору |
Сообщ.
#9
,
|
|
|
Цитата Оззя @ Как подключить к Dev-Pascal новый FPC Не могу найти |
Сообщ.
#10
,
|
|
|
http://www.bloodshed.net/devpascal.html
оО, ну вроде норм=) спс) |
Сообщ.
#11
,
|
|
|
тут в консоли опять проблема русских букв. выводятся иероглифы. как исправить?)
Добавлено причём FPC я подключил) |
Сообщ.
#12
,
|
|
|
Цитата Potroshitell @ проблема русских букв UTF8ToConsole - только это скорее больше для Lazarus'a, а вот CharToOEM можно попробовать вот это почитайте |