|
Главная | Правила | Регистрация | Дневники | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
|
Опции темы | Опции просмотра |
26.05.2012, 18:40 | #1 (permalink) |
Member
Регистрация: 10.05.2012
Сообщений: 20
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Помогите найти ошибку
n=10; type bluda=(Borscht,Soup,Salsola,Ear,Okroshka,Pickle,Me atballs,Rice,Roast,Buckwheat,Pasta,Vegetable_stew, Mashed_potatoes,Salads,Casseroles,Cheese_cakes,Jel ly,Compote,Tea,Coffee); assort= set of bluda; menu= array [1..n] of assort; //------------------------------------------------- procedure Nal (d:menu;var a,b,c:assort); var i:Integer; begin a:=[ ]; b:=d[1]; for i:=1 to n do begin a:=a+d[i]; b:=b*d[i] end; c:=[Borscht..Coffee]-a end; //------------------------------------------------ procedure Print (a:assort); var i:bluda; begin for i:=Borscht to Coffee do if i in a then write(i, ' ') end; //----------------------------------------------- var mn:menu; x,y,z:assort; begin SetConsoleCP(1251); SetConsoleOutputCP(1251); Nal(mn,x,y,z); Writeln; Print(x); Writeln('блюда которые имеются и на завтрак, и на обед, и на ужин:'); Print(y); Writeln; Print(z); Readln end. В столовой имеются отдельные меню на завтрак, обед и ужин.Известно, что в каждом из этих меню не более 10 видов блюд.Определить какие виды блюд имеются только на завтрак, только на ужин,толькои на обед(виды блюд рассматривать как данные перечислимого типа) |
26.05.2012, 18:40 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Почитайте так же аналогичные темы, если есть свободная минутка Помогите найти ошибку Помогите найти ошибку Помогите найти ошибку на плате Помогите найти ошибку Помогите найти ошибку в Пролог-Д Помогите найти ошибку |
26.05.2012, 19:12 | #2 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Прежде всего - уберите чисто ошибки "грамматические": пробелы в фрикадельках и студне. Ну а потом... К сожалению, насколько я знаю, в Паскале НЕ СУЩЕСТВУЕТ способа вывести на печать НАЗВАНИЯ компонентов перечисляемого типа, а потому действие
Код:
for i:=Borscht to Coffee do if i in a then write(i, ' ') |
26.05.2012, 20:51 | #4 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Честно говоря, не знаю. И вообще Вы тут накрутили такие ужасы: работу с массивами множеств элементов перечисляемого типа... Не, нам бы чего попроще, извините.
А как вывести названия... Ну, вероятно, самым тупым образом: объявить массив Names:Array[Borscht..Coffee] of String; а затем 20 операций типа Names[Borscht]:='Borscht'; Names[Soup]:='Soup'; и т.д. - тогда названия можно вывести. Идиотизм, конечно, сам вижу, но ничего более умного в голову не приходит. Вскользь замечу: если я правильно помню, Вы пользуетесь Паскалем АВС. Так вот, будь у Вас нормальный Паскаль, можно было бы засунуть строковый массив в константы, а с этим... АВС, который, видите ли, типизированных констант в упор не понимает, только так. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Опции темы | |
Опции просмотра | |
|
|