|  | 
 
 | 
| 
 | |||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны | 
|  | 
|  | Опции темы | Поиск в этой теме | Опции просмотра | 
|  | 
| 
			 
			#1  
			
			
			
			
		 | |||
| 
 | |||
|  Суммирование значений X на предмет поиска суммы чисел, равной Y Здравствуйте! Подскажите, пожалуйста, как можно решить задачу след. типа: В программе набор постоянных значений. Например: X1=30.48 X2=15.24 X3=13.97 X4=12.70 X5=11.43 X6=10.16 X7=8.89 X8=7.62 Единственное что вводит пользователь - это искомую им сумму Y. Программа анализирует и выдает все возможные комбинации сумм Xi...j приближенно равных заданной (искомой) сумме Y, с указанием всех слагаемых в каждой найденной приближенной сумме. Каждый Xi..j программа может взять, скажем, два раза. Приближенность искомого равенства должна быть варьируемой пользователем. Помогите, пожалуйста, советом как можно организовать такой анализ. | 
| 
			 
			#2  
			
			
			
			
		 | |||
| 
 | |||
|  Неужели реально неразрешимая задача?! Может кто всё таки подскажет как организовать сам перебор на сравнение. Или как это можно организовать через массив. | 
| 
			 
			#3  
			
			
			
			
		 | ||||
| 
 | ||||
|   Может я неправильно понял задание, но... потом Код: var Mass[0..10] : array of real;//Массив данных StringList : TStringList;//Список результатов begin for i := 0 to Length(Mass)-1 do for j := 0 to Length(Mass)-1 do begin if Y = Mass[i]+Mass[j] then StringList.Add(FloatToStr(Mass[i])+'+'+FloatToStr(Mass[j])+'='+FloatToStr(Y)); end; end; | 
| 
			 
			#4  
			
			
			
			
		 | |||
| 
 | |||
|  Проблема решена. Ништяк! Спасибо Последний раз редактировалось pavarotti, 27.02.2010 в 13:28. | 
| 
			 
			#5  
			
			
			
			
		 | ||||
| 
 | ||||
|   Цитата: 
 Код: if Y = Mass[i]+Mass[j] then | 
| 
			 
			#6  
			
			
			
			
		 | |||
| 
 | |||
|  Точно... Отлично. Спасибо за ответ. Не подскажете как легче всего представить найденные суммы из StringList, скажем в компоненте Memo или любом другом удобочитаемом компоненте? | 
| 
			 
			#7  
			
			
			
			
		 | ||||
| 
 | ||||
|   Код: Memo1.Lines.Text := StringList.Text; Код: Memo1.Lines.Add(FloatToStr(Mass[i])+'+'+FloatToStr(Mass[j])+'='+FloatToStr(Y)); Последний раз редактировалось Ultras, 27.02.2010 в 13:59. |