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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.01.2013, 19:49   #1
Ultar
Пользователь
 
Аватар для Ultar
 
Регистрация: 26.01.2013
Сообщений: 13
По умолчанию Множества.Паскаль

Дано: type M=set of 0..99;
Описать функцию card(A),подсчитывающую количество элементов в множестве А типа М.


Код:
type M=set of 0..99;
var b : m;
    k1, x : integer;
function card(A:M) : integer;
var p,k : integer;
begin
        k:=0;         for p:=0 to 99 do if p in A then k:=k+1;
        card:=k
end;
 begin      b:=[ ];
repeat  write('Vvedite chislo >0<=99 – ');
readln(x); b:=b+[x];
until x=0;
k1:=card(b);
writeln('Kolichestvo razlichnix elementov mnoshestva', k1);
end.

Преподаватель сказал,что здесь ошибка в множестве А.



________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 28.01.2013 в 20:24.
Ultar вне форума Ответить с цитированием
Старый 28.01.2013, 20:36   #2
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

хз... никакой ошибки не вижу. Может он имел в виду, что надо объявить:

Код:
function card(var A: M): integer;
но все-равно не вижу необходимости использовать в аргументах функции var.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 28.01.2013, 20:52   #3
Ultar
Пользователь
 
Аватар для Ultar
 
Регистрация: 26.01.2013
Сообщений: 13
По умолчанию

Как бы объяснить,она сказала,что программа считает количество элементов типа М,но не в множестве А,а это множество А нужно создать.Вот не могу понять,что делать.

Последний раз редактировалось Ultar; 28.01.2013 в 21:32.
Ultar вне форума Ответить с цитированием
Старый 28.01.2013, 21:13   #4
kventin_zhuk
БНТУ ФИТР
Форумчанин
 
Аватар для kventin_zhuk
 
Регистрация: 20.05.2012
Сообщений: 315
По умолчанию

Как я понял: описание A:M предполагает, что будет множество чисел, в диапазоне от 0 до 99. но самих чисел там ещё нет. нужно их туда занести, вот как-то так:
Код:
for i := 0 to 99 do
  A := A + [i];
Думаю, что так.
С++(console/builder/WinAPI/Linux), C#, Pascal, Delphi, Asm, Prolog.
< ----- Контакты
kventin_zhuk@live.com
kventin_zhuk вне форума Ответить с цитированием
Старый 28.01.2013, 21:19   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
он считает количество элементов типа М,но не в множестве А
Скажи ей что она не годится на роль преподавателя.
Цитата:
нужно их туда занести
А это что по твоему?:
Цитата:
repeat write('Vvedite chislo >0<=99 – ');
readln(x); b:=b+[x];
until x=0;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.01.2013, 21:23   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Как бы объяснить,она сказал,что он считает количество элементов типа М,но не в множестве А,а это множество А нужно создать.Вот не могу понять,что делать.
Вы уж извините, но либо Вы его неправильно понимаете (и, соответственно, неверно нам передаёте) его претензии, либо он глуп/не знает Паскаль.

я лично не вижу особенного / ошибочного в вашем коде.
ну, хочет он множество с именем A - так сделайте ему множество с именем A:
Код:
type M=set of 0..99;

function card(A:M) : integer;
var p,k : integer;
begin
  k:=0;         
  for p:=0 to 99 do 
     if p in A then k:=k+1;
  card:=k
end;
var 
  A : m;
  k1, x : integer;

begin      
   A:=[ ];
   repeat  
       write('Vvedite chislo >0<=99 – ');
       readln(x); 
       if (x>0) and (x<=99) then
                   A:=A+[x];  {вместо '+' можно использовать процедуру Include();}
   until x=0;

   k1:=card( A );

   writeln('Kolichestvo razlichnix elementov mnoshestva', k1);
end.

p.s. А задание из учебника/методички (печатного издания)? Если да, не сочтите за труд, сделайте скан(фото) и выложите сюда, может задание чуть по другом звучит...

Цитата:
Сообщение от Stilet
Скажи ей что она не годится на роль преподавателя.
Почему - "ей"? Вроде преподаватель мужчина?... Хотя, по сути, я тоже склоняюсь к этой версии - преподаватель просто некомпетентен...

Последний раз редактировалось Serge_Bliznykov; 28.01.2013 в 21:26.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 28.01.2013, 21:31   #7
kventin_zhuk
БНТУ ФИТР
Форумчанин
 
Аватар для kventin_zhuk
 
Регистрация: 20.05.2012
Сообщений: 315
По умолчанию

Serge_Bliznykov, там непонятки с преподавателем

Цитата:
она сказал
С++(console/builder/WinAPI/Linux), C#, Pascal, Delphi, Asm, Prolog.
< ----- Контакты
kventin_zhuk@live.com
kventin_zhuk вне форума Ответить с цитированием
Старый 28.01.2013, 21:38   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Ага, уже вижу:
Цитата:
она сказала
тем хуже для неё — сути проблемы это не меняет!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 28.01.2013, 22:15   #9
Ultar
Пользователь
 
Аватар для Ultar
 
Регистрация: 26.01.2013
Сообщений: 13
По умолчанию

Большое спасибо ребят.Завтра сфоткаю задание)
Ultar вне форума Ответить с цитированием
Старый 29.01.2013, 07:23   #10
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Странный преподаватель - ни пола, ни компетенции...
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Множества(Паскаль) fisher94 Помощь студентам 7 10.03.2012 13:58
паскаль.множества ЛЮБОЧК@ Паскаль, Turbo Pascal, PascalABC.NET 0 14.05.2011 11:50
Множества(Паскаль) Lord123 Помощь студентам 6 03.05.2010 16:43
Паскаль Множества vacia78 Помощь студентам 3 09.04.2009 22:10