Вверх ↑
Этот топик читают: Гость
Ответов: 96
Рейтинг: 1
#1: 2010-10-18 18:09:58 ЛС | профиль | цитата
Подскажите как можно реализовать расчет среднего арифметического соответствующих строк нескольких файлов. например имеется три или более текстовых файла с числами. колличество строк в этих файлах одинаково. надо чтобы программа усреднила значения этих строк. Если выбираеш усреднение 2, то обрабатывается две таблицы, если 3 - то три и т.д.
карма: 0

0
Ответов: 8958
Рейтинг: 824
#2: 2010-10-18 20:59:35 ЛС | профиль | цитата
301992, проверки на одинаковое количество строк нет, поэтому начинать открывать (сколько хочется) надо с самого длинного, после открытия записываем номера файлов (начиная, как настоящие программеры, с "0") через разделитель ";" и нажимаем кнопочку (на одних и тех же файлах можно делать сколько надо комбинаций) code_21101.txt
карма: 19

0
файлы: 1code_21101.txt [4KB] [203]
Гость
Ответов: 17029
Рейтинг: 0
#3: 2010-10-18 21:05:48 правка | ЛС | профиль | цитата


Редактировалось 3 раз(а), последний 2021-05-21 12:58:09
карма: 0

0
Ответов: 8958
Рейтинг: 824
#4: 2010-10-18 21:37:44 ЛС | профиль | цитата
г. Гость,
301992 писал(а):
расчет среднего арифметического соответствующих строк нескольких файлов
ArraySum не подойдёт
Кстати о птичках: nesco, как-то пытался подсчитывать через ArraySum каждый раз, после добавления в массив новой строчки - получал неправильные результаты
------------ Дoбавленo в 21.37:
Воспроизвести ошибку не удалось, наверное, сам ошибся в той, канувшей в Лету, схеме

Add(MainForm,2953706,140,28)
{
}
Add(For,8503147,210,98)
{
Start=1
End=9999
link(onEvent,12550941:doEvent1,[])
}
Add(Button,7042117,140,91)
{
Left=60
Top=25
link(onClick,765425:doEvent1,[])
}
Add(ArrayRW,11243267,315,84)
{
link(Array,3213789:Var2,[])
link(Value,8503147:Position,[(335,77)(247,77)(247,137)(216,137)])
}
Add(IntegerArray,10384264,315,28)
{
IntArray=['0'=0]
}
Add(Hub,765425,182,91)
{
link(onEvent1,10384264:doClear,[(204,97)(204,48)])
link(onEvent2,8503147:doFor,[])
}
Add(Hub,12550941,252,98)
{
OutCount=3
link(onEvent1,11243267:doAdd,[])
link(onEvent2,14211871:doSum,[(288,111)(288,118)])
link(onEvent3,16651545:doCalc,[(276,118)(276,195)])
}
Add(ArraySum,14211871,357,112)
{
ArrayType=1
link(onSum,11439539:doText,[])
link(Array,3213789:Var3,[(363,68)])
}
Add(GetDataEx,3213789,315,63)
{
link(Data,10384264:Array,[])
}
Add(MathParse,16651545,287,189)
{
MathStr="(1+%1)*%1/2"
link(onResult,660124:doEvent1,[])
}
Add(If_else,13370581,357,196)
{
link(onTrue,1677671:doOff,[])
link(onFalse,1677671:doOn,[])
link(Op1,258299:Var2,[])
}
Add(LED,1677671,455,189)
{
Left=130
Top=25
}
Add(Label,11439539,413,112)
{
Left=230
Top=10
}
Add(Label,8152695,413,224)
{
Left=230
Top=85
}
Add(Hub,660124,329,189)
{
OutCount=3
link(onEvent1,15294727:doText,[(350,195)(350,167)])
link(onEvent2,13370581:doCompare,[])
link(onEvent3,8152695:doText,[(351,209)(351,230)])
}
Add(GetDataEx,258299,357,147)
{
link(Data,14211871:Sum,[])
}
Add(Label,15294727,413,161)
{
Left=230
Top=45
link(Text,258299:Var3,[(419,152)])
}

а я, помятуя об ошибке, сторонился этих элементов :oops: теперь буду применять :idea:
карма: 19

0
Ответов: 96
Рейтинг: 1
#5: 2010-10-21 06:02:04 ЛС | профиль | цитата
Спасибо за ответ,

Мне не надо средее арифметическое какой-то отдельной таблицы, мне надо среднее арифметическое первых строк нескольких таблиц, вторых строк нескольких таблиц и т.д. с сохранением в отдельную таблицу.
карма: 0

0
Ответов: 5446
Рейтинг: 323
#6: 2010-10-21 06:24:20 ЛС | профиль | цитата
Дык а в чём проблема-то? Если не пользоваться "грязными" трюками, то MultiElementEx - твой лучший друг. Подсказка: для MultiElementEx выставь Mode=Dynamic. Советую также прочитать: Контейнеры
карма: 1

0
Ответов: 96
Рейтинг: 1
#7: 2010-10-21 07:07:32 ЛС | профиль | цитата
А каким образом мне поможет MultiElementEx?
карма: 0

0
Ответов: 4641
Рейтинг: 334
#8: 2010-10-21 07:13:19 ЛС | профиль | цитата
301992 писал(а):
Мне не надо средее

мне надо...мне надо. мы так и будем по "мне надо" в неделю? Пора уже схему предоставить и показать где не получается.. Я вот не понимаю какие еще файлы, какие строки и что усреднять.
------------ Дoбавленo в 07.13:
Предлагаю показать или схему или подробно описать задачу...с примерными данными и результатом желаемым.
карма: 1
Время верстки: %cr_time% Текущее время: %time%
0
Ответов: 96
Рейтинг: 1
#9: 2010-10-21 07:36:43 ЛС | профиль | цитата
Табл-1----Табл-2---Табл-3--------Итоговая-Табл
12---------96-------86------------(12+96+86)/3
23---------41-------64------------(23+41+64)/3
31---------42-------32------------(31+42+32)/3
24---------67-------56------------(24+67+56)/3
56---------86-------11------------(56+86+11)/3
35---------49-------44------------(35+49+44)/3
карма: 0

0
Ответов: 5446
Рейтинг: 323
#10: 2010-10-21 08:14:23 ЛС | профиль | цитата
301992, Почему-то не отвечают. В каком конкретно месте "затык"?

В MultiElementEx можно убрать код построчного чтения файла, и использовать динамический режим для обработки нужного числа файлов.
карма: 1

0
Ответов: 4641
Рейтинг: 334
#11: 2010-10-21 08:27:34 ЛС | профиль | цитата
301992, короче. На первый раз отвечу... вот как то так.
code_21147.txt

В следующий раз будь любезен приложить малейшие усилия... т.е указать на схеме где не получается...
------------ Дoбавленo в 08.27:
на 3 не делил.. думаю сам додумаешь как.
карма: 1
Время верстки: %cr_time% Текущее время: %time%
0
файлы: 1code_21147.txt [1KB] [162]
Ответов: 5446
Рейтинг: 323
#12: 2010-10-21 08:41:40 ЛС | профиль | цитата
Мой вариант:
code_21148.txt


карма: 1

0
файлы: 1code_21148.txt [2.2KB] [321]
Ответов: 8958
Рейтинг: 824
#13: 2010-10-21 09:12:47 ЛС | профиль | цитата
301992, в первом же ответе на Ваш вопрос я привёл пример, как решается Ваша задача - не смотрели что-ли
карма: 19

0
13
Сообщение
...
Прикрепленные файлы
(файлы не залиты)