Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 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, но неплохо будет и просто название нужного оператора.
Спасибо.

Приложение:
  1. Delphi 7


Destiner Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: 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

Drinkenz (статус: 1-ый класс), 6 мая 2011, 17:22 [#1]:

Вынужден задать наводящий вопрос. А в "словах" буквы русские или английские?
Вадим К

Вадим К (статус: Академик), 6 мая 2011, 17:25 [#2]:

подозреваю, что названия нужного оператора - for, их нужно два штуки.
Галочка "подтверждения прочтения" - вселенское зло.
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 6 мая 2011, 17:27 [#3]:

Цитата (Drinkenz):

Вынужден задать наводящий вопрос. А в "словах" буквы русские или английские?

а какая разница?
Создаете два массива - один для "слов", другой - для "чисел". И в цикле делаете перебор всех вариантов. В чем собственно проблема? Написать за Вас программу?
Destiner

Destiner (статус: Посетитель), 6 мая 2011, 17:34 [#4]:

Ну хорошо, тогда так.
Как массив создать?
Как сделать перебор всех вариантов?
С for попробую пока.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:43
Выполнено за 0.03 сек.