| 
| 
 | Вопрос # 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 попробую пока.
 |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |