Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.04.21;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.028 c
11-67190
Kirill
2002-07-09 17:22
2003.04.21
Label


7-67579
OxOTHuK
2003-02-28 22:10
2003.04.21
Реестр (значение по умолчанию) и другое


9-67074
deema123
2002-11-19 19:14
2003.04.21
Как поворачивать картинки??????


1-67332
Seb_Kost
2003-04-09 12:50
2003.04.21
Присвоить EditMask время текущее


14-67561
Style
2003-04-03 12:58
2003.04.21
Творчество...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский