Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Помогите разобраться с задачей! / 25 сообщений из 49, страница 1 из 2
09.01.2011, 21:53
    #37050492
Schlafwandler
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с задачей!
Задание 1
Имеется информация о наличии N торгового оборудования на складе. Определить общие количество оборудования.

Программа на VBA

Sub Задание1()
Dim O() As String
Dim K() As Integer
Dim I, N, K As Integer
N = InputBox("Введетите количество элементов массива")
ReDim O(N) As String
ReDim K(N) As Integer
Debug.Print "Оборудование", "кол-во, шт."
For I = 1 To N
F(I) = InputBox("Введите наименование оборудования")
V(I) = InputBox("Введите кол-во, шт.")
Debug.Print O(I), K(I)
Next I
For I = 1 To N
K = K + K(I)
Next I
Debug.Print "Общие количество оборудования:";
End Sub

Проблема в том что не производится вывод данных в immediate окно! программа начинает быковать на 4,10,11,15 строчку!
...
Рейтинг: 0 / 0
09.01.2011, 22:01
    #37050494
Ципихович Эндрю
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с задачей!
Schlafwandler, быковать на 4 строку?? а во второй, то Dim K() As Integer
...
Рейтинг: 0 / 0
09.01.2011, 22:06
    #37050500
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с задачей!
Ципихович Эндрю,

А что не так во второй строке?

ТС - быковать это как? вставленные флешки форматирует и при этом орёт голосом Паваротти?
...
Рейтинг: 0 / 0
09.01.2011, 22:09
    #37050504
Ципихович Эндрю
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с задачей!
Игорь Горбонос, он же ему как быкует орёт дупликате, так и есть
Dim K() As Integer
Dim I, N, K As Integer
ККККККККККККККККККККККККККККККККККККК
...
Рейтинг: 0 / 0
09.01.2011, 22:10
    #37050505
Schlafwandler
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с задачей!
Ципихович Эндрю,

Это значит что там ошибки!
...
Рейтинг: 0 / 0
09.01.2011, 22:14
    #37050507
Ципихович Эндрю
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с задачей!
Schlafwandler, одна из них там
Dim K () As Integer
Dim I, N, K As Integer
Повторений не должно быть
...
Рейтинг: 0 / 0
09.01.2011, 22:25
    #37050519
Ципихович Эндрю
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с задачей!
Schlafwandler, на скорую руку, время позднее
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Dim I, N, Е As Integer
N = InputBox("Введетите количество элементов массива")

Dim O() As String
ReDim O( 1  To N) As String
Dim K() As Integer
ReDim K( 1  To N)

Debug.Print "Оборудование", "кол-во, шт."
For I =  1  To N
O(I) = InputBox("Введите наименование оборудования")
K(I) = InputBox("Введите кол-во, шт.")
Debug.Print O(I), K(I)
Next I
F =  0 
For I =  1  To N
F = F + K(I)
Next I
Debug.Print "Общие количество оборудования:";
...
Рейтинг: 0 / 0
09.01.2011, 22:28
    #37050524
Schlafwandler
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с задачей!
Ципихович Эндрю,

Вот сейчас поправил заработала!
Спасибо тебе!
...
Рейтинг: 0 / 0
09.01.2011, 22:53
    #37050553
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с задачей!
Ципихович Эндрю,

Если на вопрос о количестве элементов массива, ввести "пять", то ошибка появится не сразу. Как ты думаешь, почему?
...
Рейтинг: 0 / 0
10.01.2011, 00:50
    #37050613
Schlafwandler
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с задачей!
Модифицированный код программы

Sub Задание1()
Dim O() As String
Dim K() As Integer
Dim I, N, E As Integer
N = InputBox("Введетите количество элементов массива")
ReDim O(N) As String
ReDim K(N) As Integer
Debug.Print "Оборудование", "кол-во, шт."

Sheets("Лист1").Cells.Clear
Sheets("Лист1").Cells(1, 1) = "Название фирмы"
Sheets("Лист1").Cells(1, 1).BorderAround Weight:=xIMedium
Sheets("Лист1").Cells(1, 1).ColuwnWidht = 100
Sheets("Лист1").Cells(1, 1).HorizontalAlignment = xICenter

Sheets("Лист1").Cells(1, 2) = "Оборудование"
Sheets("Лист1").Cells(1, 2).BorderAround Weight:=xIMedium
Sheets("Лист1").Cells(1, 2).ColuwnWidht = 100
Sheets("Лист1").Cells(1, 2).HorizontalAlignment = xICenter

Sheets("Лист1").Cells(1, 3) = "кол-во, шт."
Sheets("Лист1").Cells(1, 3).BorderAround Weight:=xIMedium
Sheets("Лист1").Cells(1, 3).ColuwnWidht = 100
Sheets("Лист1").Cells(1, 3).HorizontalAlignment = xICenter

For I = 1 To N
O(I) = InputBox("Введите наименование оборудования")
K(I) = InputBox("Введите кол-во, шт.")
Debug.Print O(I), K(I)
Sheets("Лист1").Cells(I + 1, 1) = I
Sheets("Лист1").Cells(I + 1, 1).BorderAround Weight:=xIMedium
Sheets("Лист1").Cells(I + 1, 1).HorizontalAlignment = xICenter

Sheets("Лист1").Cells(I + 1, 2) = O(I)
Sheets("Лист1").Cells(I + 1, 2).BorderAround Weight:=xIMedium
Sheets("Лист1").Cells(I + 1, 2).HorizontalAlignment = xICenter

Sheets("Лист1").Cells(I + 1, 3) = K(I)
Sheets("Лист1").Cells(I + 1, 3).BorderAround Weight:=xIMedium
Sheets("Лист1").Cells(I + 1, 3).HorizontalAlignment = xICenter
Next I

For I = 1 To N
F = F + K(I)
Next I
Debug.Print "Общие количество оборудования:";
Sheets("Лист1").Cells(N + 2, 1) = "Общие количество оборудования"
Sheets("Лист1").Cells(N + 2, 1).BorderAround Weight:=xIMedium
Sheets("Лист1").Cells(N + 2, 1).HorizontalAlignment = xICenter
End Sub

Проблема!!! вывод данных в рабочий лист Excel, не производится!
...
Рейтинг: 0 / 0
10.01.2011, 02:53
    #37050633
Помогите разобраться с задачей!
Schlafwandler,
не просто "не производится", но и ошибка выводится. Что-то вроде Run-time error '13': Object doesn't support this propertie or method
код в тэге SRC красиво смотрится, проще читается, ...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
Option Explicit

' старайтесь не делать лишних действий в программе,
' например, форматирования каждой ячейки отдельно в цикле
Sub Задание1()
Dim O() As String
Dim K() As Integer
Dim I As Integer, N As Integer, E As Integer

N = InputBox("Введетите количество элементов массива")
ReDim O( 1  To N)
ReDim K( 1  To N)
Debug.Print "Оборудование", "кол-во, шт."

With Worksheets("Лист1")
    .Cells.Clear
    
    .Cells( 1 ,  1 ) = "Название фирмы"
    .Cells( 1 ,  2 ) = "Оборудование"
    .Cells( 1 ,  3 ) = "кол-во, шт."
    .Cells(N +  2 ,  1 ) = "Общее количество оборудования"
    
    With .Range(.Cells( 1 ,  1 ), .Cells(N +  2 ,  3 ))
        .ColumnWidth =  100 
        .Borders.Weight = xlMedium
        .HorizontalAlignment = xlHAlignCenter
    End With '.Range(.Cells(1,1), .Cells(N+1,3))
    
    For I =  1  To N
        O(I) = InputBox("Введите наименование оборудования")
        K(I) = InputBox("Введите кол-во, шт.")

Debug.Print O(I), K(I)

        .Cells(I +  1 ,  1 ) = I
        .Cells(I +  1 ,  2 ) = O(I)
        .Cells(I +  1 ,  3 ) = K(I)
        
        E = E + K(I)
    Next I
    
Debug.Print "Общее количество оборудования:"; E
    .Cells(N +  2 ,  3 ) = E
End With 'Worksheets("Лист1")
End Sub
...
Рейтинг: 0 / 0
10.01.2011, 06:51
    #37050663
Ципихович Эндрю
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с задачей!
Игорь ГорбоносЦипихович Эндрю,

Если на вопрос о количестве элементов массива, ввести "пять", то ошибка появится не сразу. Как ты думаешь, почему?
говорил же время позднее, спать лёг, сейчас смотрю вроде всё порешали, но привычка есть отвечать на вопрос, тем боле Вам, тем более это мне может пригодится в дальнейшем
Итак этот вопрос к моему скрипту от вчера, 22:25 ??
...
Рейтинг: 0 / 0
10.01.2011, 10:24
    #37050721
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с задачей!
Ципихович ЭндрюИтак этот вопрос к моему скрипту от вчера, 22:25 ?? Да
...
Рейтинг: 0 / 0
10.01.2011, 12:11
    #37050815
Ципихович Эндрю
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с задачей!
Игорь Горбонос, по Вашему вопросу, сегодня прогнал код вроде нет ошибок, но вчера вроде были, поэтому я и сказал, что на скорую руку, что меня смущает, что N = "5" то есть его определяет в кавычках если навести курсор на N, раз N As Integerч то этого не должно быть, просто N = 5 без кавычек, дайте наводящие вопросы для ЦЭ
чтобы высчитать Общие количество оборудования два цикла не нужно, одного за глаза, я уж не знаю зачем ему этот массив нужен, не вникал, это же Эксель , а кстати если уже в цикл K(I) загнали данные, одной строкой без цикла сумму можно узнать??
...
Рейтинг: 0 / 0
10.01.2011, 12:20
    #37050829
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с задачей!
> Автор: Ципихович Эндрю


Я говорил о том что-бы ввести словом "пять" и этот ввод пройдет без ошибок. Ошибка появится дальше, при попытке
перераспределения размерности массива.
И кто тебе сказал что Ципихович Эндрюраз N As Integer???

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
10.01.2011, 12:34
    #37050838
Ципихович Эндрю
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с задачей!
Игорь Горбонос, вопрос от вчера, 22:53 ввести "пять" - это внимательность для меня, ну тогда вопрос детский, я понимаю, но ответить бы не смог, но Вы на него ответили
А кстати почему сразу же ошибка не возникает, ОКЛИПТИК???????, если так то я его зауважаю
По поводу того, на что я сам раскрутился, прогнал код
Dim N As Integer
N = 5
Навёл курсор на N, но ведь без кавычек, просто 5, почему???
Вопрос открыт - если уже в цикл K(I) загнали данные, одной строкой без цикла сумму можно узнать??
...
Рейтинг: 0 / 0
10.01.2011, 12:55
    #37050862
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с задачей!
> Автор: Ципихович Эндрю
> А кстати почему сразу же ошибка не возникает, ОКЛИПТИК???????, если так то я его зауважаю

Да, оклиптик. Option Explicit заставляет явно объявлять все переменые. Но программист определяет какого
типа
будут объявленные переменные. Объявление:
Код: plaintext
Dim A,B,C As Integer
говорит только о том, что нужно
создать переменную А с типом Variant, переменную B c типом Variant и переменную С с типом Integer

> Навёл курсор на N, но ведь без кавычек, просто 5, почему???

см. выше

> Вопрос открыт - если уже в цикл K(I) загнали данные, одной строкой без цикла сумму можно узнать??

Нет, можно оптимизировать и подсчитывать при заполнении массива, но это не всегда возможно.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
10.01.2011, 13:03
    #37050872
Ципихович Эндрю
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с задачей!
Игорь Горбонос, ХА ХА, вывод Dim A,B,C As Integer на свалку
я всегда пишу
А = "ЖЖЖ"
В = 99
И не парюсь, а про эти конструкции записи типа Dim A,B,C As Integer я читал, что только не пишут, всё время помнить трудно, потому только в КРАЙНИХ случаях пишу
Dim A As Integer
Dim B As Integer
Dim C As Integer
Плевать что больше места занимает, просто я не так пишу, а так

Dim A As Integer
А=...........
...............
..............
Dim A As Integer
В=...........
...............
..............

Dim A As Integer
С=...........
...............
..............
...
Рейтинг: 0 / 0
10.01.2011, 13:32
    #37050903
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с задачей!
> Автор: Ципихович Эндрю
> Плевать что больше места занимает, просто я не так пишу, а так
> Dim A As Integer
> А=...........
> Dim A As Integer
> В=...........
> Dim A As Integer
> С=...........


Китайская методика програмирования имени Копи-Паста в сочетании с игнорированием Оклиптика придает отладке и
сопровождению программ неповторимый, изысканный и пьянящий привкус БДСМ, но мне не нравится. Эндрю не тупи. И вообще
заканчивай затыкать все топики!

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
10.01.2011, 13:37
    #37050915
Ципихович Эндрю
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с задачей!
Игорь Горбонос,я ошибся, но думаю, что Вы поняли, поэтому, что то и говорили про копи паст
Dim A As Integer
А=...........
...............
..............
Dim В As Integer
В=...........
...............
..............

Dim С As Integer
С=...........
...............
..............
...
Рейтинг: 0 / 0
10.01.2011, 13:57
    #37050952
Ципихович Эндрю
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с задачей!
Schlafwandler, вопрос чисто к Вам, возможно я ошибаюсь, никак не проверить это, эти топики поудаляли, до Нового года Ваши топики были с пустыми вопросами??????
Просто если Ваши, то поздравляю с удачей!!!!
...
Рейтинг: 0 / 0
10.01.2011, 14:13
    #37050981
Schlafwandler
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с задачей!
Ципихович Эндрю,

Эти топики не мои были!
...
Рейтинг: 0 / 0
10.01.2011, 14:14
    #37050984
Ципихович Эндрю
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с задачей!
Schlafwandler, понял, ОК!!!!!!!
...
Рейтинг: 0 / 0
10.01.2011, 14:47
    #37051025
Schlafwandler
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с задачей!
Напечать Таблицу, заменив информацию в последним столбце "на средняя стоймость 1 квартиры"

Sub Задание2()
Dim J() As String
Dim KP() As Single
Dim KM() As Single
Dim S() As Single
Dim S1() As Single
Dim I, N As Integer
N = InputBox("Введетите количество элементов массива")
ReDim J(N) As String
ReDim KP(N) As Single
ReDim KM(N) As Single
ReDim S(N) As Single
Debug.Print "Город", "Кол-во продан-", "Кол-во", "Сумма от про-"
Debug.Print " ", "ных квартир", "кв.м", "дажи тыс.руб."
For I = 1 To N
J(I) = InputBox("Введите название города")
KP(I) = InputBox("Введите кол-во проданных квартир")
KM(I) = InputBox("Введите кол-во кв")
S(I) = InputBox("Введите сумму от продажи")
Debug.Print J(I), KP(I), KM(I), S(I), S1(I)

Next I
S1(I) = S(I) / KP(I)
Debug.Print "Город", "Кол-во продан-", "Кол-во", "Средняя стоимость"
Debug.Print " ", "ных квартир", "кв.м", "1 квартиры."
For I = 1 To N
Debug.Print J(I), KP(I), KM(I), S1(I),
Next I
End Sub

Помоготе! опять не получается программа!
...
Рейтинг: 0 / 0
10.01.2011, 14:51
    #37051030
Ципихович Эндрю
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с задачей!
Schlafwandler, скажите зачем Вам два цикла??
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Помогите разобраться с задачей! / 25 сообщений из 49, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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