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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2010, 09:14   #1
Bombastick
Пользователь
 
Аватар для Bombastick
 
Регистрация: 06.12.2010
Сообщений: 26
По умолчанию Для заданного натурального N найти сумму (другая задача)

на словах обьяснить попробую ибо не получается записать,1) Для заданного натурального N найти сумму y=(знак суммы), сверху над знаком N, снизу i=1, слева i в степени 2.
2)Определить количество инверсий в одномерном массиве X[1..20] (т.е. таких пар элементов, в которых большее число находится слева от меньшего: X[I] > X[J] при I < J).
3)Определить, есть ли в вещественной матрице элемент, равный данному числу x.
4)В заданном предложении переставить местами первое и последнее слово.
Заранее благодарю. Это зачетные работы, из 10 только 4 не сделал ума не хватает.

Последний раз редактировалось Bombastick; 06.12.2010 в 09:17.
Bombastick вне форума Ответить с цитированием
Старый 06.12.2010, 10:39   #2
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Могу в очередной раз поучиться,но не даром.Ася в профиле.
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 06.12.2010, 16:54   #3
Bombastick
Пользователь
 
Аватар для Bombastick
 
Регистрация: 06.12.2010
Сообщений: 26
По умолчанию

Сомневаюсь что это не кидалово=)

Последний раз редактировалось Bombastick; 06.12.2010 в 16:57.
Bombastick вне форума Ответить с цитированием
Старый 06.12.2010, 16:56   #4
Bombastick
Пользователь
 
Аватар для Bombastick
 
Регистрация: 06.12.2010
Сообщений: 26
По умолчанию

Первую и третью задачи осилил. Осталась вторая и четвертая если действительно помогут в долгу не останусь
Bombastick вне форума Ответить с цитированием
Старый 06.12.2010, 17:45   #5
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Код:
Function ReplFirstLast(s As String) As String
  Dim rs As String, i As Long
  rs = ""
  For i = 1 To UBound(Split(s, " ")) - 1
    rs = rs & Split(s, " ")(i) & " "
  Next
  ReplFirstLast = Split(s, " ")(UBound(Split(s, " "))) & " " & rs & Split(s, " ")(0)
End Function


Function Calc12(rg As Range) As Long
  Dim i As Long, ar(1 To 20), c As Long
  For i = 1 To 20
   ar(i) = rg.Cells(i).Value
  Next
  c = 0
  For i = 1 To 19
    If ar(i) < ar(i + 1) Then c = c + 1
  Next
  Calc12 = c
End Function
Вложения
Тип файла: rar Книга479.rar (13.7 Кб, 11 просмотров)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 07.12.2010, 09:25   #6
Bombastick
Пользователь
 
Аватар для Bombastick
 
Регистрация: 06.12.2010
Сообщений: 26
По умолчанию

препод не понял видимо очень закручено)) осталась четвертая
Bombastick вне форума Ответить с цитированием
Старый 07.12.2010, 11:22   #7
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Function Calc12(rg As Range) As Long - это задача2
в качестве параметра она получает массив из 20 ячеек, возвращает количество случаев описанных заданием

Function ReplFirstLast(s As String) As String - это задача4
параметром служит исходное предложение, возвращает предложение в котором переставлены местами первое и последнее слово.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 07.12.2010, 11:58   #8
Bombastick
Пользователь
 
Аватар для Bombastick
 
Регистрация: 06.12.2010
Сообщений: 26
По умолчанию

Function Calc12(rg As Range) As Long
Dim i As Long, ar(1 To 20), c As Long
For i = 1 To 20
ar(i) = rg.Cells(i).Value
Next <------ тут что то должно быть вроде Next I
c = 0
For i = 1 To 19
If ar(i) < ar(i + 1) Then c = c + 1
Next <---- и тут вроде Next I
Calc12 = c
End Sub <------- можно ли так?
у нас VBA в экселе и видимо мы такие неудачники что многих команд ваше не встречали.
Bombastick вне форума Ответить с цитированием
Старый 07.12.2010, 12:24   #9
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Calc12 - обьявлена как функция: Function Calc12(rg As Range) As Long
соответственно заканчивается обьявление End Function

можно обьявить ее как процедуру:
Sub Calc12(rg As Range)
Dim i As Long, ar(1 To 20), c As Long
For i = 1 To 20
ar(i) = rg.Cells(i).Value
Next
c = 0
For i = 1 To 19
If ar(i) < ar(i + 1) Then c = c + 1
Next
Msgbox c
End Sub
соответсвенно убрал обьявление типа возвращаемого результата, и вместо
Calc12 = c (присвоить функции результат вычислений)
теперь
Msgbox c (сообщение о результате)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 07.12.2010, 21:07   #10
MCH
Форумчанин
 
Регистрация: 21.11.2010
Сообщений: 326
По умолчанию

можно решить и без VBA
2я:
Код:
=СУММПРОИЗВ(Ч(A1:A19>A2:A20))
4я, формула массива:
Код:
=ПРАВСИМВ(E1;ДЛСТР(E1)-МАКС(ЕСЛИ(ПСТР(E1;СТРОКА($1:$255);1)=" ";СТРОКА($1:$255))))&ПСТР(E1;ПОИСК(" ";E1);МАКС(ЕСЛИ(ПСТР(E1;СТРОКА($1:$255);1)=" ";СТРОКА($1:$255)))-ПОИСК(" ";E1)+1)&ЛЕВСИМВ(E1;ПОИСК(" ";E1)-1)
Вложения
Тип файла: rar задачи.rar (6.4 Кб, 10 просмотров)
MCH вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
найти сумму цифр заданного натурального числа dima.m Microsoft Office Excel 6 06.12.2010 11:30
C++/ Все способы представления заданного натурального числа N в виде суммы двух кубов натуральных чисел / acko Помощь студентам 1 25.09.2010 12:15
Паскаль. Из заданного числа найти сумму его цифр Matlashov Помощь студентам 8 26.11.2009 14:27
вывод на экран наибольшего делителя натурального числа N, меньше заданного натурального M Fatality Помощь студентам 2 03.12.2008 23:27