PDA

Просмотр полной версии : Флуд А решите, плиз, задачку, используя эксель



Chade
14.12.2013, 19:03
Упрямый осел.
Имеется осел, понимающий две команды - "но" и "кнут". Осел реагирует только на третью по счету команду "но".
По команде же "кнут" осел всегда делает шаг вперед, но при этом забывает ранее отданные команды "но" (сбрасывает счетчик команд).
Имеется столбец, содержащий команды, отданные ослу. По этим командам требуется узнать, сколько шагов сделал осел.

или эту
Бесстрашный ковбой Джо.
Ковбой Джо убегает от индейцев. На его пути встретились 10 пропастей. Известна ширина каждой пропасти и расстояние, на которое может прыгнуть Джо (3 метра). Требуется:
i.узнать, сможет ли Джо перепрыгнуть через все эти пропасти
ii.то же, что и в (i), но требуется определить номер пропасти, в которую провалится Джо, если ему не повезет
iii.то же, что и в (ii), но после каждого прыжка силы оставляют Джо и расстояние, на которое он может прыгнуть уменьшается на 10 сантиметров

Chade
14.12.2013, 19:12
а на третью команду "но" что делает осел?

про джо не поняла: он всегда прыгает от края пропасти, то есть длина прыжка должна превышать длину пропасти? Или же он все время ходит прыжками, и если следующая пропасть окажется на расстоянии 3,5 метров от предыдущей, он прыжком от предыдущей прямо влетит в следующую?

И зачем для всего этого эксель? В каком виде его надо использовать? вижуал-бейсиком или формулами в столбцах?

Да, Тань, нужно именно эксель - формулы и столбцы... На 3-ю команду "но" считаем, что он сделал шаг. Про Джо - да, как мы поняли он ходит прыжками

Chade
14.12.2013, 19:26
то есть шаг это или "кнут" или "третье но"?

не, Джо не ходит прыжками, потому что тогда нужно расстояние между пропастями, а его нет.
Значит с Джо все просто.
В столбце длины всех пропастей (1, 2,1,2,3,4...)
В отдельной ячейке длина на которую он прыгает.
Добавляем в некоторую ячейку формулу - "максимальное значение столбца" (столбца где длины ям). И дальше сравниваем значение этой ячейки с длиной прыжка. Если оно меньше (все ямы короче чем длина прыжка) - значит он спасся. Если хоть одна длина больше - значит он провалился.

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

А если длина прыжка уменьшается, тогда можно добавить к столбцу с размерами ям второй столбец - длину прыжка. Которая будет рассчитываться автоматически:
значение данной ячейки=значение вышестоящей ячейки - 10см
А в третьем столбце добавить формулу = значение из первого столбца (длина ямы) - значение из второго столбца (длина прыжка к данной яме).
Как только это значение станет <0, так там Джо и упадет.
Супер, Джо сейчас попробуем

Да, шаг считается, либо когда "кнут", либо когда три раза "но"
но при этом при команде "кнут" он забывает предыдущие команды, т.е. если было, допустим, но-но-кнут-но, то кол-во "но" = 1, а не 3

Chade
14.12.2013, 19:36
да понятно...
что-то додумывать лень...
но идея примерно следующая.
Есть столбец с командами
рядом делаем столбец-перевод в числа.
если "но", то надо взять значение из вышестоящей ячейки и добавить ему 1
Осел делает шаг каждый раз, когда сумма становится кратной трем, то есть остаток от деления этого числа на 3 становится равным нулю.. (это уже в следующем столбце обработка).

А если "кнут", то надо взять вышестоящую ячейку, умножить ее на 0 и добавить 3. - то есть фиксируем что осел здесь сделает шаг, а все предыдущее обнулится.

В зависимости от возможного использования экселя этот алгоритм можно упрощать.
может надо брать не сумму, а сразу "остаток от деления на 3". То есть но-но-но-но будет не 4, а 1... А каждую тройку в этом столбце нужно будет посчитать. Сколько троек в столбце было - столько шагов осел и сделал.
Или же если брать сумму, то есть но-но-но-но это 4, то надо считать сколько было чисел, кратных трем. (3, 6, 9..)


А вот если "протягивать" формулу по ячейкам нельзя, то есть надо в одной ячейке сделать обработку всего столбца, то это уже намного сложнее... тогда возникает вопрос, для кого задачка?

Такс, мой мозг взрывается) Передала дочери, сейчас все попробует расписать в столбцы, если что, я еще пристану))) Спасибо!!!!!!!!!!!!!!!!!

Chade
14.12.2013, 19:46
Таааань, а как вычислить номер пропасти, в которую упадет Джо? Есть формула какая-то?

Chade
14.12.2013, 20:18
если можно "протягивать" значения по столбцу, то опять же самое простое - поставить рядом еще один столбец, и вычитать 3. В первой ячейке, где результат будет меньше 0, там и провалится.
А вот если надо формулу в целом к столбцу в одной ячейке, то я с этим методом не очень дружу. Это функции работы с базой данных наверное. Найти первое вхождение числа больше заданного в данный столбец. Но тут я не спец. Знаю что это сделать можно, но каждый раз мучаюсь как. Думаю на форуме найдутся специалисты. В крайнем случае спросить у гугла.

Спасибо, будем пробовать. Но с ослом что-то пока не сложилось (((

Токси
14.12.2013, 21:13
"найти в данном столбце первое значение, удовлетворяющее определенному критерию".
Это функция эксель. Но я не знаю как ей правильно параметры подавать.

впр?
=впр(критерий;таблица;№столбца в этой таблице;ложь)

Tanushka
14.12.2013, 21:44
да может и ВПР, я не понимаю как им пользоваться.
Вот сейчас задала =ВПР(2,1; a3:e11 ; 2)
Предполагала что мне во втором столбце таблицы a3:e11 будет искать значение "2,1"
Мне функция выдала ответ 1,2.
Что это значит, что именно она делает? - черт его знает.


Попыталась написать
=ВПР(=2,1; a3:e11 ; 2)

мне сказало что ошибка в формуле.

Короче, не умею я пользоваться этой функцией.

Таня, поясни, про какую задачку это? Читаю тему и не могу понять.
А про ВПР, там для себя упрощённо запоминала такой алгоритм (что ищем, где ищем, из какого столбца берём значение, 0).
Насколько я поняла, тут ВПР не поможет.

Натя
14.12.2013, 21:57
да может и ВПР, я не понимаю как им пользоваться.
Вот сейчас задала =ВПР(2,1; a3:e11 ; 2)
Предполагала что мне во втором столбце таблицы a3:e11 будет искать значение "2,1"
Мне функция выдала ответ 1,2.
Что это значит, что именно она делает? - черт его знает.


Попыталась написать
=ВПР(=2,1; a3:e11 ; 2)

мне сказало что ошибка в формуле.

Короче, не умею я пользоваться этой функцией.
Еще в конце функции допиши "; ложь", чтобы она точно искала заданное значение.. Если опускаешь, то ищет примерное. "=" не нужно.

Tanushka
14.12.2013, 22:02
"что ищем" - как обозначаться должно?
про задачку - про любую. Я просто спрашивала как правильно вставлять. Не применительно...

А алгоритм с "протягиванием формул" - я файл выше дала.

Что ищем - это обычно столбец значений, где ищем - массив, ищет в крайнем левом столбце, отсортированном по возрастанию, соотв. далее номер столбца из массива, значение из которого надо взять, если значения в строках что ищем и где ищем совпали.

Я эту функцию использовала, чтобы сопоставить по ключу некоторые строки, точнее когда мне в екселе добрые люди удалили системные id строк, а мне надо было их вернуть.

Chade
14.12.2013, 22:58
Сколько слов непонятных ((( Переслала все что вы написали дочке, утром узнаю получилось ли... Спасибо большое!

Chade
14.12.2013, 23:19
это для какого класса?? странное задание для школьницы.
Если что, пусть в аську что ли мне пишет или в скайп или какие там у нее средства связи есть. может если я пойму чего от нее учитель хочет, будет проще придумать решение.
Мне кажется, что в школе не должно быть задач, на которые мне нужно больше получаса. Или же у них набита рука на какие-то методы, которые я не знаю, и тогда я в принципе движусь не туда.

Не, Тань, это первый курс вуза (гумфак), задача для получения "автомата" =)
А аську дай, плиз, на всякий случай

Токси
14.12.2013, 23:21
Не, Тань, это первый курс вуза (гумфак), задача для получения "автомата" =)
А аську дай, плиз, на всякий случай

гумфак - это что?

Chade
14.12.2013, 23:24
гумфак - это что?

Гуманитарный факультет)

Токси
14.12.2013, 23:25
Гуманитарный факультет)

а зачем им тогда такие задачки? это какой предмет вообще? что-то типа информатики?

Chade
14.12.2013, 23:27
а зачем им тогда такие задачки? это какой предмет вообще? что-то типа информатики?
Точно, информатика) Зачем задачки? Ну, мне кажется, что в обучении много чего того, что нафиг не надо.... Особенно на первом курсе. Хотя, если хочешь получить автомат, то наверное правильный подход....

Токси
14.12.2013, 23:29
Точно, информатика) Зачем задачки? Ну, мне кажется, что в обучении много чего того, что нафиг не надо.... Особенно на первом курсе. Хотя, если хочешь получить автомат, то наверное правильный подход....

Я вспоминаю, что нам на информатике выносили мозг аксесом. Вот как курс закончился, с тех пор эту программу, я не открывала ни разу за 15 лет. Лучше б экселем мозг вынесли, я им каждый день пользуюсь и приходится учиться самой.

Токси
14.12.2013, 23:47
А я помню приходилось пользоваться access-ом когда нужно было смэппить данные из двух таблиц, в которых было больше чем 64 тыс строчек.
Очень он мне помог. Выгрузила все данные из системы в access и уже там их обрабатывала, анализировала и искала ошибки. Потому что в бух.системе это проделать было крайне сложно. А эксель вообще не годился.
Но это единственное, для чего лично мне в жизни был активно нужен access - делать разные связки таблиц. Но вообще говоря часто пригождался.

ну у меня другие задачи и вот функции экселя для расчетов при 50000 позиций - очень выручают. Так что, наверное, была бы рада таким задачкам в институте.

Йола
15.12.2013, 02:24
Для Джо самая простая формула
=if(c2<=b2,"Перепрыгнул ","Провалился")
Я почему то не могу эксель файлы вставлять :(
попробовала в пдф сохранить ( результат + формулы)

Йола
15.12.2013, 06:58
для первой задачки (с ослом) можно применить вот такую формулу
=countif(a2:a4,"но")

=if(a2="кнут",1,if(b2=3,1,0))

Йола
15.12.2013, 19:26
а countif считает количество вхождений конкретного значения?

угу, именно так

Tanushka
15.12.2013, 22:20
Отличная темка, продвинемся в екселе, я не виртуоз екселя, сижу разбираюсь по мере поступления проблем :)

Chade
20.12.2013, 12:59
Всем большущее спасибо!!! "Автомат" получили =)