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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.01.2018, 11:16   #1
sohibnut
Пользователь
 
Аватар для sohibnut
 
Регистрация: 15.01.2018
Сообщений: 32
По умолчанию pascalABC.NET. Как можно узнать количество элементов в множестве ( БЕЗ foreach ) ?

как можно узнать количество элементов в множестве?
БЕЗ foreach
pascalABC.NET
за рано спасибо!
только быстрее!

Последний раз редактировалось sohibnut; 18.01.2018 в 11:38.
sohibnut вне форума Ответить с цитированием
Старый 18.01.2018, 11:50   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

через цикл for можно.

а чем foreach не устраивает?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 18.01.2018, 12:03   #3
sohibnut
Пользователь
 
Аватар для sohibnut
 
Регистрация: 15.01.2018
Сообщений: 32
По умолчанию

без for и без никакой циклное оператора. просто , задача такая
please help me!!
sohibnut вне форума Ответить с цитированием
Старый 18.01.2018, 12:11   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

приведите текст задания полностью.
Множество из элементов какого типа?

так устроит?

Код:
  if b=[] then
     count := 0
  else     
     count := b.ToString.Where(v -> v=',').Count()+1;
p.s. работать будет не для всех типов множеств.

p.p.s. не люблю задачи типа "достаньте левой пяткой до правого уха. Без использования рук!"

Последний раз редактировалось Serge_Bliznykov; 18.01.2018 в 12:24.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 18.01.2018, 13:07   #5
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

Да откуда вы все лезете с этим паскалем-абц?
Кто вас всё время заставляет на нём что-то писать?
Что за чикатилы вас там электрошоком или флюгегехайменом пытают, а?!
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 18.01.2018, 13:36   #6
sohibnut
Пользователь
 
Аватар для sohibnut
 
Регистрация: 15.01.2018
Сообщений: 32
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
приведите текст задания полностью.
Множество из элементов какого типа?

[/I]
тип integer или int64
sohibnut вне форума Ответить с цитированием
Старый 18.01.2018, 13:45   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
Кто вас всё время заставляет на нём что-то писать?
студент - существо подневольное, что приказали, то и учит. Прикажут на фортране для ЕС ЭВМ писать, будут писать на фортране.

а что это Вас так пучит от PascalABC.NET ??! Фобии? Немотивированная ненависть?

(кстати, Вы, наверное, не знаете, но есть PascalABC, а есть - PascalABC.NET это совершенно разные вещи. Оба монстры, но первый ближе к Паскалю, второй ближе к C# (точнее, это и есть C# слегка закамуфлированный под Паскаль). и если рассматривать его не как Паскаль, а как некий совершенно отдельный язык программирования, то он не так уж и плох.
Вы, например, можете на любом известном Вам языке программирования одним оператором записать решение задачи:
"Ввести строку текста, содержащую не более 10 слов, из строчных русских букв, между соседними словами – запятая, за последним словом - точка.
Составить программу, в который напечатать в алфавитном порядке:
все гласные буквы, которые входят хотя бы в одно слово более двух раз.
(гласные буквы – а, е, и, о, у, ы, э, ю, я; )"
решение:
Код:
//Эникей  Магистр
//2017-05-15T20:17:26+03:00
//Было занятно сделать все это в виде одного оператора)))

// PascalABC.NET 3.2, сборка 1439 от 09.05.2017
// Внимание! Если программа не работает, обновите версию!

begin
  ReadlnString('->').ToWords(Arr(',','.'))
      .Select(w->w.Where(c->Pos(c,'аеёиоуыэюя')>0).GroupBy(x->x)
      .Select(x->(x.Key,x.Count)).Where(x->x[1]>2)).Where(x->x.Count>0)
      .SelectMany(x->x).Select(x->x.Item1).Distinct.OrderBy(x->x)
      .Println(',')
end.
или:
"Задать целочисленную квадратную матрицу A размерностью N и заполнить её случайными числами от -50 до 50. найти строку матрицы A, которая содержит только положительные элементы и имеет минимальный номер в матрице A.
Если строка в матрице A не найдена, то выдать соответствующее сообщение. "
Код:
(c)

var
  n := ReadInteger('Введите размерность матриц: ');
  a := MatrRandomInteger(n, n, -10, 10);
begin
  a.Println;
  var k := a.Rows.ToArray.FindIndex(i -> i.All(x -> x >= 0));
  Println(k = -1 ? 'Нет строки удовлетворяющей условию поиска'
                 : 'Номер строки удовлетворяющий условию: ' + k)
end.
или
"// в предложении найти все слова с одной буквой "а" и вывести их"

Код:
// (c) Plague  http://programmersforum.ru/showpost.php?p=1686131&postcount=4"
begin
  ReadString.ToWords(Arr(' ','-','"')).Where(x->x.Count(i->i='а')=1).Print(NewLine)
end.
и т.д. и т.п.
хотя, конечно, это не отменяет того, что PascalABC.NET - это страшный монстр.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 18.01.2018, 13:52   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от sohibnut Посмотреть сообщение
тип integer или int64
так я же привёл код выше.
Есть сомнения или проблемы?

проверил.
вроде бы работает:
Код:
var b : set of int64;
  count : integer;
begin 
  b:=[]; 
  for count := 1 to Random(10) do include(b, Random(100000));
  println(b);

  if b=[] then
     count := 0
  else     
     count := b.ToString.Where(v -> v=',').Count()+1;  
  
  WriteLn('Размерность множества = ',count)
  
end.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 18.01.2018, 13:56   #9
sohibnut
Пользователь
 
Аватар для sohibnut
 
Регистрация: 15.01.2018
Сообщений: 32
Хорошо

Цитата:
Сообщение от min@y™ Посмотреть сообщение
Да откуда вы все лезете с этим паскалем-абц?
Кто вас всё время заставляет на нём что-то писать?
Что за чикатилы вас там электрошоком или флюгегехайменом пытают, а?!
у меня ест секретная задача и я не магу расказат вам об этом
sohibnut вне форума Ответить с цитированием
Старый 18.01.2018, 13:59   #10
sohibnut
Пользователь
 
Аватар для sohibnut
 
Регистрация: 15.01.2018
Сообщений: 32
По умолчанию

no tam yest for
mne nujna bez nikakova cikla!nikakova!!!!!!

Последний раз редактировалось sohibnut; 18.01.2018 в 14:01.
sohibnut вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Преобразование кода из C в PascalABC.NET (символы и строки) - PascalABC.NET ParkerVans Помощь студентам 5 05.12.2017 10:09
Как узнать значение следующего элементо в foreach? KBO PHP 3 18.08.2016 18:57
Процедура с C# на PascalABC.NET(можно просто на язык Pascal) EMILSKI Помощь студентам 1 14.11.2010 17:39
Можно ли к среде PascalABC.NET прикрутить модуль “graph» WitaliG Помощь студентам 0 18.09.2010 08:24
Как узнать текущий индекс в foreach boris-blade Общие вопросы .NET 4 25.03.2010 19:26