Форум: "Основная";
Текущий архив: 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