Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Провести фильтрацию полученных данных...программа / 15 сообщений из 15, страница 1 из 1
23.11.2006, 19:30
    #34151557
Цветланаа
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Провести фильтрацию полученных данных...программа
помогите пожалуйста написать программу...совсем заваливаюсь...

нужно провести фильтрацию полученных чисел х, сформированных на листе Excel столбец, сосоящий из 30 элементов,случайных чисел Х, распределенных равномерно в диапазоне [2,7]u[9,10]. В виде фильтрации Х принадлежит промежутку [max/4, max].

помогите пожалуйста, вы просто наверна даже спасете мне жизнь, как это не банально звучит, но такое может быть)
...
Рейтинг: 0 / 0
24.11.2006, 08:12
    #34152081
nibbles
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Провести фильтрацию полученных данных...программа
Цветланаапомогите пожалуйста написать программу...совсем заваливаюсь...

нужно провести фильтрацию полученных чисел х, сформированных на листе Excel столбец, сосоящий из 30 элементов,случайных чисел Х, распределенных равномерно в диапазоне [2,7]u[9,10]. В виде фильтрации Х принадлежит промежутку [max/4, max].

помогите пожалуйста, вы просто наверна даже спасете мне жизнь, как это не банально звучит, но такое может быть)

Нужно обеспечить ТОЛЬКО фильтрацию или необходимость создания диапазона случайных чисел - тоже на твоей совести?
...
Рейтинг: 0 / 0
24.11.2006, 08:27
    #34152106
nibbles
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Провести фильтрацию полученных данных...программа
Кажется так:
1. Открываешь Excel
2. Заполняешь диапазон А2:А31 диапазоном случайных чисел (СЛЧИС(), если преподаватель спросит). Формулу создания случайного числа в заданном дапазоне "от и до" найдешь на форуме.
3. Копируешь этот диапазон на то же место, но уже в виде значения, чтобы каждый раз оно не пересчитывалось ("Специальная вставка" называется)
4. Диапазон B2:B31 заполняешь формулой "=ЕСЛИ(И(A2<=9,1;A2>=9,1/4);A2;0)"... ессно, А2 меняется от А2 до А31
5. Применяешь на диапазоне B2:B31 автофильтр (Данные - Фильтр), выбираешь "Не равно 0".
6. Получаешь нужный диапазон
...
Рейтинг: 0 / 0
25.11.2006, 12:54
    #34155255
Цветланаа
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Провести фильтрацию полученных данных...программа
спасибо за помощь...
я правда уже сама сделала...там оказывается очень прсто)) нужно было просто ввести мой диапозон и написать всего две формулы
Лист1.ells(i,1) = ((d2 - d1 + 1) * Rnd + d1
другая в таком же духе)))

спасибки

а можно мне задать вопрос по другому?? вот мы получили данные по этой программе, а как их упорядочить в матьрице?...там получаются очень громоздкие числа и не натуральные..очень много... Их нужно расположить по возрастанию по диагонали параллельным главной

7 11 14 16
4 8 12 15
2 5 9 13
1 3 6 10

причем матрица размерности К
как это их так расположить? ну т.е. какой мне писать диапозон?? For j=1 To ... (какое чило?) 30 ??
я просто не понимаю как так расположить по диагонали параллельным главной...вот в чем вопрос(((

если не турдно..помоги пожалуйста еще раз
...
Рейтинг: 0 / 0
25.11.2006, 21:49
    #34155597
nibbles
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Провести фильтрацию полученных данных...программа
Цветланааесли не турдно..помоги пожалуйста еще раз
да я б с радостью... только я вопроса нифига не понял :((
что имеется (желательно на примере, т.к. уже вторая бутылка пошла), что нужно получить (тоже желательно на примере...)
...
Рейтинг: 0 / 0
26.11.2006, 01:29
    #34155715
VladConn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Провести фильтрацию полученных данных...программа
"...по диагонали параллельным главной..."

Что это было?
...
Рейтинг: 0 / 0
26.11.2006, 01:40
    #34155718
VladConn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Провести фильтрацию полученных данных...программа
Там, кстати, 30 элементов, и матьрица не квадратная.

Где диагональ делать будем?
...
Рейтинг: 0 / 0
26.11.2006, 02:07
    #34155725
VladConn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Провести фильтрацию полученных данных...программа
Там, наверно, идея такова. Допустим, есть матрица (позволю себе каприз - квадратная) из 25 элементов. Для простоты, заполним ее числами от 1 до 25. Тогда главная диагональ будет заполнена равноотстоящими от границ массива чисел элементами.

Это числа 11,12,13,14,15. Их пять по числу элементов в диагонали. Справа и слева от них - ровно по десять оставшихся элементов.

Далее, справа и слева от этого диапазона выстраиваем укорачивающиеся упорядоченные отрезки - младшие диагонали. Чем короче, тем и младше. В нижнем треугольнике матрицы это: [7,8,9,10], [4,5,6] и [1]. Соответственно, в верхнем, это [16,17,18,19], [20,21,22] [23,24] и [25].

Индексы же элементов будут аккуратно сползать и нарастать, что удобно для кодирования.

Желающие могут построить такой алгоритм для произвольной квадратной матрицы. По-моему, это совсем несложно.

VladConn
...
Рейтинг: 0 / 0
26.11.2006, 02:10
    #34155727
VladConn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Провести фильтрацию полученных данных...программа
Вставьте в нижний треугольник пропущенную младшую диагональ [2,3].

VladConn
...
Рейтинг: 0 / 0
26.11.2006, 12:50
    #34155862
Цветланаа
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Провести фильтрацию полученных данных...программа
nibbles Цветланааесли не турдно..помоги пожалуйста еще раз
да я б с радостью... только я вопроса нифига не понял :((
что имеется (желательно на примере, т.к. уже вторая бутылка пошла), что нужно получить (тоже желательно на примере...)


Здание звучит так:
Заполнить квадратуню матрицу размерности К (тогда наверна будем писать 25 элементов,да?)
числами, полученными после фильтрации и упорядочить ее по заданному закону:
расположить по возрастанию по диагоналям, параллельной главной
7 11 14 16
4 8 12 15
2 5 9 13
1 3 6 10
...
Рейтинг: 0 / 0
26.11.2006, 12:52
    #34155863
Цветланаа
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Провести фильтрацию полученных данных...программа
VladConnТам, наверно, идея такова. Допустим, есть матрица (позволю себе каприз - квадратная) из 25 элементов. Для простоты, заполним ее числами от 1 до 25. Тогда главная диагональ будет заполнена равноотстоящими от границ массива чисел элементами.

Это числа 11,12,13,14,15. Их пять по числу элементов в диагонали. Справа и слева от них - ровно по десять оставшихся элементов.

Далее, справа и слева от этого диапазона выстраиваем укорачивающиеся упорядоченные отрезки - младшие диагонали. Чем короче, тем и младше. В нижнем треугольнике матрицы это: [7,8,9,10], [4,5,6] и [1]. Соответственно, в верхнем, это [16,17,18,19], [20,21,22] [23,24] и [25].

Индексы же элементов будут аккуратно сползать и нарастать, что удобно для кодирования.

Желающие могут построить такой алгоритм для произвольной квадратной матрицы. По-моему, это совсем несложно.

VladConn

Если мы заполняем ее числами от 1 до 25, то тогда пишем For j=1 To 25 или как писать?я не понимаю((
...
Рейтинг: 0 / 0
26.11.2006, 22:11
    #34156363
Цветланаа
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Провести фильтрацию полученных данных...программа
смотрите...
задание см. выше...заполнить квадратную матрицу числами полученными после фильтрации...
вот она фильтрация:

Sub Фильтрация () 'определение процедуры фильтрации
Max=Лист1.Cells(1,1) 'задаем макс. ячейку
For i=2 To 30 ' цикла для поиска макс. значения
If (Лист1.Cells(i,1) 'проверка выполнения условия
End If
Next i
k=1
For i=1 To 30 'цикл для поиска занчения из заданного промежудка
If Лист1.Cells(i,1)>Max\4 And Лист1.Сells(i,1)<Max Then 'если ячейка из столбца случайных чисел > Max\4 или < Max, тогда ...
Лист1.Cells(k,4)=Лист1.Cells(i,1) 'выводим эту ячейку в 4 чтолбец
k=k+1 'шаг цикла
End If 'завершения условия
Next i ' зверешение цикла
End Sub ' завершение процедуры


Так вот..тперь нам нада заполнить квадратную матрицу...Мы пишем вместо промежудка For i=2 To 30 промежуток For i=1 To 25 u For j=1 To 25 Да??

А что дальше?? что насчет диагонали????
...
Рейтинг: 0 / 0
27.11.2006, 04:48
    #34156513
VladConn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Провести фильтрацию полученных данных...программа
Так главная диагональ, это элементы с индексами (1,1), (2,2), (3,3), (4,4), (5,5). Там скромно сидят самые средние условные значения 11,12,13,14,15. Т.е., код для главной диагонали такой:

1. Вычисляем ее длину L= SQRT(25). Это 5.
2. Вычисляем ее элементы для общего случая:
For k = 1 to L
MyMatrix(k,k) = MyArray(25-15+k) 'где 25 - число ваших элементов, a 15 = L + (25-L)/2, MyArray - это ваш упорядоченный одномерный массив случайно отобранных величин.
Next k
3. Проявляем инициативу и смекалку и сами пишем код для младших диагоналей. Только не пишем больше "промежудок". Не надо. Смодреть жудко.
...
Рейтинг: 0 / 0
27.11.2006, 05:10
    #34156517
VladConn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Провести фильтрацию полученных данных...программа
А легкий способ упорядочить массив, прежде чем его потребить на двумерную матрицу, загнать его в сортированный лист бох и прочитать его, записав обратно в массив. Но можно и пузырьками или чем там у вас сейчас сортируют. Важно не мешать этот интим с внутриматричными проблемами. Мухи отдельно, котлеты отдельно. Т.е., нужно написать отдельную функцию, возвращающую упорядоченный массив и потребляющую в виде параметра исходный массив, неупорядоченный и случайный. Будьте начеку с массивами. В прошлых версиях VB была проблема с их передачей, и нужно было использовать Variant вместо массивов. Но это уже другая история.
...
Рейтинг: 0 / 0
27.11.2006, 18:23
    #34158833
Цветланаа
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Провести фильтрацию полученных данных...программа
=))))))))))))) хорошо промежуДок..писать больше не буду))))))))

а насчет программы...так я чего то ничего не поняла((
причем тут массив.у меня простая программа в Visial Basic...
и кстати..что такое L= SQRT(25) ???
и я думаю MyMatrix(k,k) = MyArray(25-15+k) тут точна не нужна...
канешна нажно написать (k,k) = (25-15+k) Но как-то по другому...

и все-так элементы с индексами (1,1), (2,2), (3,3), (4,4), (5,5)
как их записать то??
вот именно в мою фильтрацию...
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Провести фильтрацию полученных данных...программа / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]