|
Вопрос # 5 262/ вопрос открыт / |
|
Здравствуйте, уважаемые эксперты!
У меня такой вопрос. Допустим, у меня есть слова a, b, c и числа 1, 2, 3. Нужно чтобы программа автоматически вывела следующее сообщение:
a;1
a;2
a;3
b;1
b;2
b;3
c;1
c;2
c;3
Примерно так, то есть все комбинации слов и числа, где слова на первой позиции, числа — на второй. Это просто пример, вместо 1, 2, 3, a, b, c будут выражения.
В идеале, чтобы программа брала "числа" и "слова" из txt файлов, результат тоже записывала в txt, но неплохо будет и просто название нужного оператора.
Спасибо.
 |
Вопрос задал: Destiner (статус: Посетитель)
Вопрос отправлен: 6 мая 2011, 17:18
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: Вадим К
Здравствуйте, Destiner!
ок, попробую написать код.
предположим - что 1.txt и 2.txt - это два исходных файла, которые хранят слова и числа, по одному в строку.
Результат будем выводить в 3.txt
procedure TForm1.Button1Click(sender:Tobject);
var i, j:integer;
sl1,sl2, sl3:TStringList;
begin
//загрузим данные
sl1 := TStringList.create;
sl1.loadfromfile('1.txt');
sl2 := TStringList.create;
sl2.loadfromfile('2.txt');
sl3 := TStringList.create;
// а теперь в цикле сделаем "декартовое умножение"
for i:=0 to sl1.count -1 do
for j:=0 to sl2.count -1 do
sl3.add(sl1[i]+';'+sl2[j]); // добавим строку результата
sl3.savetofile('3.txt');
sl3.free;
sl2.free;
sl1.free;
end;
 |
Ответ отправил: Вадим К (статус: Академик)
Время отправки: 6 мая 2011, 17:41
Оценка за ответ: 5
Комментарий к оценке: С кодом вроде разобрался, всё ясно, но скомпилировать не могу, выдаёт ошибку.
В общем, ничего не умею, лучше просто сделать программу.
|
Мини-форум вопроса
Всего сообщений: 4; последнее сообщение — 6 мая 2011, 17:34; участников в обсуждении: 4.
|
Drinkenz (статус: 1-ый класс), 6 мая 2011, 17:22 [#1]:
Вынужден задать наводящий вопрос. А в "словах" буквы русские или английские?
|
|
Вадим К (статус: Академик), 6 мая 2011, 17:25 [#2]:
подозреваю, что названия нужного оператора - for, их нужно два штуки.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Мережников Андрей (статус: Абитуриент), 6 мая 2011, 17:27 [#3]:
Цитата (Drinkenz):
Вынужден задать наводящий вопрос. А в "словах" буквы русские или английские?
а какая разница?
Создаете два массива - один для "слов", другой - для "чисел". И в цикле делаете перебор всех вариантов. В чем собственно проблема? Написать за Вас программу?
|
|
Destiner (статус: Посетитель), 6 мая 2011, 17:34 [#4]:
Ну хорошо, тогда так.
Как массив создать?
Как сделать перебор всех вариантов?
С for попробую пока.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|