0 / 0 / 0
Регистрация: 09.06.2014
Сообщений: 21
1

Оптимизировать (ускорить) программу, работающую с массивами

30.07.2014, 12:59. Показов 922. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток!
Я пытаюсь оптимизировать программу, но опыта хватило только сократить код, но не ускорить.
Раньше программа искала значения прям на листе, сейчас попробовал реализовать через массив, но скорость не увеличилась. Буду очень благодарен за любые советы и помощь.
В коде постарался везде проставить комментарии, чтобы было понятно что и для чего там делаю. Интересует код на листе Revenue.
Вложения
Тип файла: zip array_test.zip (844.1 Кб, 16 просмотров)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.07.2014, 12:59
Ответы с готовыми решениями:

Написать программу работающую с массивами
ребята помогите написать программу на Basic создать программу которая выполняет следующие...

Перевести программу, работающую с txt в программу, работающую с bin
доброго времени суток. я написал программу работающую с файлами txt первая берет данные с файла в...

Как можно оптимизировать/ускорить код?
Здравствуйте, задача примерно такого типа: на экселевском листе есть данные в 3 колоннах (обозначим...

Вывести все правильные скобочные выражения (оптимизировать алгоритм, ускорить работу кода)
есть код, нужно cout и cin перевести на printf и scanf дополнительных библиотек не подключать!...

3
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
30.07.2014, 13:27 2
Ну там массивы используются не всюду, хватает и работы с ячейками.
По поводу этих многократно вызываемых функций - следует эти массивы создать один раз, а не при каждом вызове функций.
И вот зачем брать в массив такой огромный диапазон (на 150000 ячеек), если просматриваете всего одну строку, 70 ячеек?
А вообще тут вероятно прямой резон использовать словари (хотя в задачу не вникал, лень).
0
0 / 0 / 0
Регистрация: 09.06.2014
Сообщений: 21
30.07.2014, 13:41  [ТС] 3
Ячейки использовал только для записи готовых значений.
У меня что-то не получилось использовать в функции массив, объявленный в теле программы. Поэтому пришлось в каждой функции считывать.
Можете на примере любой функции посоветовать, как сделать?

Добавлено через 9 минут
например вот для функции:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Function getcomp(comp As Variant)
Dim tek()
tek() = Worksheets("PL_текущий").Range("A1:BW2000").Value
For k = 1 To 70
    If tek(34, k) = comp Then
        getcomp = k
        Exit For
    End If
    If k = 70 Then
        getcomp = 70
        End If
Next k
 
End Function

и вызываем
Visual Basic
1
s = tek(n, getcomp(Sheets("Revenue").Cells(w, 1)))
0
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
30.07.2014, 14:11 4
Массив можно например объявить публичным, сперва заполнить один раз в программе, а в функции только использовать.
Или передавать его в функцию в параметре, аналогично как значение для проверки.
1
30.07.2014, 14:11
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.07.2014, 14:11
Помогаю со студенческими работами здесь

Как оптимизировать работу с большими массивами изображений
Добрый вечер. Хотел бы получить небольшую консультацию. В процессе работы приложения, необходимо...

Можно ли оптимизировать работу с большими массивами в части добавления и удаления элементов
C# методы работы с массивами char мне нужен совет, есть большой массив в несколько мегабайт и с...

Как отслеживать работающую программу?
Есть проект на VB. NET. Мне нужно дописать очень много функционала в него, но сам язык я терпеть не...

Написать программу, работающую с файлами
люди, помогите написать программу на файлы. я с++ недавно изучать начал, с файлами еще не...

Создать программу, работающую с мультирисунками
Ребята, выручайте. На кону жизнь студентки (фигурально конечно. Отчислить могут очень скоро)....

Как создать программу работающую с Ф.И.О.?
13. Помогите сделать программку! Введите свою фамилию , имя , отчество как одно текстовое Данное...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru