Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 26.05.2012, 18:40   #1 (permalink)
gabriela
Member
 
Регистрация: 10.05.2012
Сообщений: 20
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Помогите найти ошибку

const
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 видов блюд.Определить какие виды блюд имеются только на
завтрак, только на ужин,толькои на обед(виды блюд рассматривать как данные
перечислимого типа)
gabriela вне форума   Ответить с цитированием

Старый 26.05.2012, 18:40
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Почитайте так же аналогичные темы, если есть свободная минутка

Помогите найти ошибку
Помогите найти ошибку
Помогите найти ошибку на плате
Помогите найти ошибку
Помогите найти ошибку в Пролог-Д
Помогите найти ошибку

Старый 26.05.2012, 19:12   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Прежде всего - уберите чисто ошибки "грамматические": пробелы в фрикадельках и студне. Ну а потом... К сожалению, насколько я знаю, в Паскале НЕ СУЩЕСТВУЕТ способа вывести на печать НАЗВАНИЯ компонентов перечисляемого типа, а потому действие
Код:
for i:=Borscht to Coffee do
 if i in a then write(i, ' ')
не пройдет. Вроде как-то так.
Vladimir_S вне форума   Ответить с цитированием
Старый 26.05.2012, 19:38   #3 (permalink)
gabriela
Member
 
Регистрация: 10.05.2012
Сообщений: 20
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

а как исправить?
gabriela вне форума   Ответить с цитированием
Старый 26.05.2012, 20:51   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от gabriela Посмотреть сообщение
а как исправить?
Честно говоря, не знаю. И вообще Вы тут накрутили такие ужасы: работу с массивами множеств элементов перечисляемого типа... Не, нам бы чего попроще, извините.
А как вывести названия... Ну, вероятно, самым тупым образом: объявить массив
Names:Array[Borscht..Coffee] of String;
а затем 20 операций типа
Names[Borscht]:='Borscht';
Names[Soup]:='Soup';
и т.д. - тогда названия можно вывести. Идиотизм, конечно, сам вижу, но ничего более умного в голову не приходит.
Вскользь замечу: если я правильно помню, Вы пользуетесь Паскалем АВС. Так вот, будь у Вас нормальный Паскаль, можно было бы засунуть строковый массив в константы, а с этим... АВС, который, видите ли, типизированных констант в упор не понимает, только так.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 21:15.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.