Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.06.2009, 16:41   #1
==Terman==
Пользователь
 
Регистрация: 09.05.2009
Сообщений: 11
Восклицание Помогите с последовательностью

Дана произвольная последовательность А1:А10, в в столбце В надо вычилить разность А2-А1 и так далее. В С1- если все получившиеся числа в столбце В положительные то "последовательность возрастающая", если отрицательные то "убывающая"., а если есть и подожительные и отрицательные, то "смешанная".
Помогите пожалуйста!
==Terman== вне форума Ответить с цитированием
Старый 05.06.2009, 05:49   #2
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Как нужно решать задачу? Формулами? VBA?
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 05.06.2009, 08:51   #3
mc-black
Пользователь
 
Аватар для mc-black
 
Регистрация: 03.06.2009
Сообщений: 26
По умолчанию

А если в столбце "C" встречаются нули, то возможны варианты "неубывающая" (нули и положительные) и "невозрастающая" (нули и отрицательные). Так, по-моему, тоже могут классифицироваться последовательности. Или последовательности с нулями считать также "смешанными"?
mc-black вне форума Ответить с цитированием
Старый 05.06.2009, 09:37   #4
mc-black
Пользователь
 
Аватар для mc-black
 
Регистрация: 03.06.2009
Сообщений: 26
По умолчанию

Я решил двумя способами. Второй расширенный вариант получается при раскомментировании 6 строк кода в конце процедуры Sequence (в указанном месте). Процедура DeterminateSequence нужна для указания листа, на котором надо обработать последовательность. Последовательность на листе может быть любой длины, главное, чтобы она начиналась с "A1" и содержала хотя бы 2 элемента.
Код:
Option Explicit

Sub DeterminateSequence()
    Call Sequence(ThisWorkbook.Worksheets(1))
End Sub

Private Sub Sequence(wsh As Worksheet)
    Dim i As Long
    Dim n As Long
    Dim cntAsc As Long
    Dim cntDsc As Long
    Dim cntZer As Long
    
    ' Заполнение столбца "B" разницами элементов последовательности
    i = 1
    Do While Not wsh.Cells(i + 1, 1).Value = Empty
        wsh.Cells(i, 2).Value = wsh.Cells(i + 1, 1).Value - wsh.Cells(i, 1).Value
        i = i + 1
    Loop
    
    ' Подсчет в столбце "B" числа положительных, отрицательных и нулевых значений
    n = i - 1
    cntAsc = 0
    cntDsc = 0
    cntZer = 0
    For i = 1 To n
        If wsh.Cells(i, 2).Value > 0 Then
            cntAsc = cntAsc + 1
        ElseIf wsh.Cells(i, 2).Value < 0 Then
            cntDsc = cntDsc + 1
        Else
            cntZer = cntZer + 1
        End If
    Next i
    
    ' Выбор типа последовательности судя по значениям счетчиков
    If cntAsc = n Then
        wsh.Cells(1, 3).Value = "возрастающая последовательность"
    ElseIf cntDsc = n Then
        wsh.Cells(1, 3).Value = "убывающая последовательность"
'    Раскомментировать строки ниже для расширенного решения задачи
'    Или удалить совсем, как ненужную часть задачи
'    ElseIf cntAsc + cntZer = n Then
'        wsh.Cells(1, 3).Value = "неубывающая последовательность"
'    ElseIf cntDsc + cntZer = n Then
'        wsh.Cells(1, 3).Value = "невозрастающая последовательность"
'    ElseIf cntZer = n Then
'        wsh.Cells(1, 3).Value = "константная последовательность"
    Else
        wsh.Cells(1, 3).Value = "Смешанная последовательность"
    End If
End Sub

Последний раз редактировалось mc-black; 05.06.2009 в 09:41.
mc-black вне форума Ответить с цитированием
Старый 06.06.2009, 11:52   #5
==Terman==
Пользователь
 
Регистрация: 09.05.2009
Сообщений: 11
По умолчанию извините что не уточнил(

Мне надо решить эту задачу формулой в Екселе. А в с1 получить получить результат. Подскажите пожалуйста как надо через функцию "если"

Я вложил файл
Вложения
Тип файла: rar Файл.rar (1.6 Кб, 9 просмотров)
==Terman== вне форума Ответить с цитированием
Старый 06.06.2009, 12:37   #6
pivas
Форумчанин
 
Регистрация: 03.04.2009
Сообщений: 412
По умолчанию

Попробуйте так:
Вложения
Тип файла: rar Последовательность.rar (1.9 Кб, 8 просмотров)
pivas вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Аналог панели задач. не могу разобраться с последовательностью выполнения программы Paul Hindenburg Общие вопросы Delphi 1 09.04.2009 23:45
Заполнить матрицу линейной последовательностью Настенька..Блонди Помощь студентам 5 05.02.2009 20:53
Вывести все слова входного потока, заканчивающиеся заданной последовательностью символов fiaftw Общие вопросы C/C++ 2 03.02.2009 00:44