Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.04.21;
Скачать: CL | DM;

Вниз

Помогите плиз с Множествами...   Найти похожие ветки 

 
Rradion   (2003-04-10 13:53) [0]

Если есть два множества ( М и М1 ).
М это множество из "byte" , а М1 из "char" .

Как определить, находятся ли на местах цифр из М, пробелы в М1?

Т.е. если М1:=[qwer tyu ew] и М:=[1,3,5,9] то будет только один пробел в пятом символе М1а.


Спасибо!


 
Zelius ©   (2003-04-10 13:58) [1]

Множества тебе не помогут (там нет понятия порядка следования, можно только определить, если элемент или его там нету), лучше использовать строки или массивы.


 
Palladin ©   (2003-04-10 13:58) [2]

никак
элементы множества не имеют индексации..


 
Rradion   (2003-04-10 14:30) [3]

Ну вот те на... мне поставили задание сделать это с множествами. Мож они там сами чо напутали?
----------------------------------------------------------------
Тема: множества.
Цель работы: целью работы является завкрепление навыков по вводу/выводу сложных типов данных, а также приобретение навыков по использованию и обработке множеств..

Задание: разработать программу на Delphi, позволяющую вводить данные, решать задачу в соответствии с индивидуальным вариантом и выводить результаты. Если речь идет о вводе набора строк, использовать для ввода ListBox. Числа, о которых идет речь в заданиях, являются целыми в диапазоне от 0 до 255..

Варианты заданий: Вариант выбирается в соответствии c номером студента по журналу.

16. Вводится набор строк и набор чисел. Введенные числа показывают номера выбранных мест в строках. Верно ли, что ни в одной строке на выбранных мествах нет пробела?


 
MityaP ©   (2003-04-10 14:34) [4]

А при чем тут множества? В задании ни одного слова про множества не сказано...


 
Palladin ©   (2003-04-10 14:36) [5]

имхо
имелись в виду массивы
выколи глаз тому кто эти задания составлял...


 
Rradion   (2003-04-10 14:37) [6]

Тоже верно... попробую сделать через массив.
Просто если тема "множества" то и предположил что надо делать через множества.


 
Rradion   (2003-04-10 14:46) [7]

А можит так - если есть строки

аслфхал
дфхлй
дфлхыбвы


и цифри 1,3,6,8,10,15

то составляем множество из букв, которым соответствуют эти цифры, т.е. а,д,ф,л,х,л,а,б и смотрим есть ли в нём пробел!

Ои, зря я приподу глаз выколол :) ...


 
Palladin ©   (2003-04-10 14:53) [8]

глупости


 
MityaP ©   (2003-04-10 15:04) [9]

Просто задания по программиированию и ОЦА (цифровая автоматика), в том виде как их в институтах или в школах ставят, имеют, как правило, бесконечное множество решений... ИБО они поставлены некорректно... [В свое время я преподов убивал тем, что понимал эти задания не так, как они их сами понимают - как правило удавалось доказать свою правоту...]


 
evvcom ©   (2003-04-10 15:21) [10]

Митя! В задании сказано, "Если речь идет о вводе набора строк, использовать для ввода ListBox." Вот и используй ListBox, далее

function NoSpacesInPlacesIndexedByByteArray: Boolean;
begin
Result := True;
with ListBox.Items do
for i := 0 to Count - 1 do
for j := Low(ByteArray) to High(ByteArray) do
if (ByteArray[j] <= Length(Strings[i])) and
(Strings[i][ByteArray[j]] = " "
then begin
Result := False;
Exit;
end;
end;


 
SVM (Perm)   (2003-04-10 15:29) [11]

Так все понятно! Составляешь множество из символов, соответствующих заданным номерам, а потом проверяешь,
есть ли пробел в этом множестве.
(
что-то вроде:

ResultSet=[];
...
в цикле
Include(ResultSet,Strings[I][J]);
...

и проверка результата: " " in ResultSet
)


 
Palladin ©   (2003-04-10 15:45) [12]


> SVM (Perm) (10.04.03 15:29)

что тебе понятно?
мне вот ничего не понятно!
в задании две толпы, строки и числа.

Вопрос 1. Для каждой строки одно число. Или все числа для всех строк? (один к одному или много ко многим)
Вопрос 2. Так значит мы храним исходные данные всетаки в массивах? (TListBox для ввода строк) или мы их во множества переводим?

и вопрос лично тебе SVM (Perm)
какой "пятой точкой" ты определишь что пробел находится именно в нужной позиции?


 
Palladin ©   (2003-04-10 15:48) [13]

парню надо брать это задание и идти к преподу выяснять детали...
и стократ прав MityaP © (10.04.03 15:04)


 
Rradion   (2003-04-10 21:22) [14]

Задачка конечно ещё та...

VAR MASS: array of integer;
VAR i,Count:integer;
VAR S:string;

procedure TForm1.Button1Click(Sender: TObject);
begin
ListBox1.Items.Add( Edit1.Text );
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
ListBox2.Items.Add( Edit2.Text );
end;


procedure TForm1.Button3Click(Sender: TObject);
begin

SetLength(MASS,ListBox2.Items.Count); // USTANAVLIVAEM DLINNU MASSIVA

For i:=0 to ListBox2.Items.Count-1 do // TSIFRI KLADJOM V MASSIV
MASS[i]:=StrToInt( ListBox2.Items[i] ); // TSIFRI KLADJOM V MASSIV

Count:=0; // OBNULJAEM SCHJOTCHIK

For i:=0 to ListBox1.Items.Count-1 do
begin
S:=ListBox1.Items[i]; // S = strochka
if S[MASS[i]] = " " then Inc(Count); // Esli simvol iz Massiva = " " v stocke
end;

if Count = 0 then MessageDlg("Probelov net!", mtInformation,[mbOk],0)
else
MessageDlg("Probeli estj!", mtInformation,[mbOk],0);

end;

end.


Первая кнопка добовляет строку из Едита1 в ЛистБокс1, вторая кнопка цифру из Едит2 в ЛистБокс2.

Третя кнопка ( поиск прабелов ) сначало создаёт Массив и кладёт в него цифры из ЛистБокс2. Затам изчив и подшитывает в каждой строчке есть ли на заданых местах пробелы.

Если в конце щётчик = 0 , то соответстенно пробелов нет.

Только вот что-то оне глючит, изчит только в той строке, которая по номеру совпадает с цифрой.
Т.е. если есть СТРОКИ и цифры.
...............аврсафг... 1
...............фуцвнхс... 5
...............цвилкнцй.. 8

то искать она будет в первой строке на первом месте, во второй на пятом и в третей на восьмом... с чего это?


 
Rradion   (2003-04-10 21:34) [15]

Разобрался, по чему глючила. Теперь всё в порядке!

For i:=0 to ListBox1.Items.Count-1 do
begin
S:=ListBox1.Items[i]; // S = strochka
for j:=0 to ListBox2.Items.Count-1 do
if S[MASS[j]] = " " then Inc(Count); // Esli simvol iz Massiva = " " v stocke
end;


Спасибо!


 
Palladin ©   (2003-04-10 21:39) [16]

:))
как это с чего?! ты сам так написал...



Страницы: 1 вся ветка

Текущий архив: 2003.04.21;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.018 c
3-67107
Ihtiandr
2003-04-02 16:44
2003.04.21
delete в FastReport


1-67349
новый
2003-04-09 15:21
2003.04.21
Как считывать с реестра строковые данные?


6-67414
matlash
2003-02-20 15:37
2003.04.21
Панель для MS Internet Explorer.


1-67210
$Hic0
2003-04-10 16:50
2003.04.21
Перевод из одной системы счисления в другую


6-67432
O-LG
2003-02-19 23:29
2003.04.21
Подскажите пожалуйста как в TServerSocket получить указатель