Страница 2 из 4«1234»
Модератор форума: Екатерина_Пашкова 
Форум учителей об образовании в России и мире » Форум педагогов по предметам, разделам » Форум учителей информатики » Стоит ли давать ученикам не совсем обычные методы? (Но после того, как уже объяснил традиционный подход)
Стоит ли давать ученикам не совсем обычные методы?
Александр_ИгрицкийДата: Воскресенье, 01.01.2012, 12:22 | Сообщение # 16

Александр Игрицкий
Ранг: Академик (?)
Группа: Заблокированные
Российская Федерация
Москва

Должность: Freelancer
Сообщений:
11104
Награды: 128
Статус: Offline
pavel7!
Приношу Вам публично свои извинения за нелояльность в ушедшем году!
С наступившим 2012 Новым и високосным Годом!
Не держите зла!
Предлагаю продолжить отношения в спокойном тоне и рабочем режиме.
Если предложение принимается, дайте знать.
Ничего личного. Ничего абсолютно! Привычка к строгости и ясности изложения.
Спасибо
alsergastДата: Воскресенье, 01.01.2012, 12:48 | Сообщение # 17

Алексей Астраханцев
Ранг: Профессор (?)
Группа: Пользователи
Российская Федерация
Аркадак

Сообщений:
4228
Награды: 56
Статус: Offline
Традиционный подход в большинстве случаев даёт понять, так скажем, структуру материала, принципы и т.д, а также связывает его с последующими темами, т.ч. от него не убежать. Если же существует способ реально сделать что-то проще или быстрее, обязательно нужно знакомить и с ним (хотя бы для разнообразия). Но только после "официальной версии".
Спасибо
Александр_ИгрицкийДата: Воскресенье, 01.01.2012, 15:00 | Сообщение # 18

Александр Игрицкий
Ранг: Академик (?)
Группа: Заблокированные
Российская Федерация
Москва

Должность: Freelancer
Сообщений:
11104
Награды: 128
Статус: Offline
Quote (alsergast)
Но только после "официальной версии".

Об этом, собственно, и речь!
Спасибо
pavel7Дата: Воскресенье, 01.01.2012, 20:46 | Сообщение # 19

Павел Сапунов
Ранг: Школьник (?)
Группа: Пользователи
Российская Федерация
Москва

Сообщений:
72
Награды: 1
Статус: Offline
Может быть, кто-нибудь знает, кто автор метода дихотомии?

Например, когда я учился в институте, то ни в одном учебнике я не смог найти, что автор метода "наименьших квадратов" - французский математик Лежандр...
Удивительно! Так ведь можно и имя Пифагора забыть!
Спасибо
YuiSeДата: Понедельник, 02.01.2012, 01:29 | Сообщение # 20

Bvz Afvbkbz
Ранг: Школьник (?)
Группа: Пользователи
Гондурас
Nueva Armenia

Сообщений:
80
Награды: 2
Статус: Offline
Quote (pavel7)
repeat

x:=(t[-1]+t[1])/2; t[ sign( f(x)*t[1] ) ]:=x;

until (t[1]-t[-1]<dx)OR(t[0]>t[-1]);

Quote (pavel7)
... sign( f(x)*t[1] )...

Что нам дает результат произведения аргумента на значение функции?

pavel7, вы все время говорите про высшую математику, про книжки. Посмотрите пожалуйста структуру типа real и как его приходиться обрабатывать процессору. А потом постарайтесь больше его нигде не использовать и никому про него не рассказывать, потому что более точный тип double обрабатывается в разы быстрее, если у вас конечно не компьютер младше 486dx.

И я таки понимаю, что формулировку решаемой задачи мы от вас так и не узнаем.
Спасибо
pavel7Дата: Понедельник, 02.01.2012, 01:46 | Сообщение # 21

Павел Сапунов
Ранг: Школьник (?)
Группа: Пользователи
Российская Федерация
Москва

Сообщений:
72
Награды: 1
Статус: Offline
а я тут никакой задачи и не ставил
просто хотел поговорить – потому что теперь я считаю, что в процессе обучения надо применять самые простые алгоритмы, плюс очень хорошо и доходчиво их объяснять

А если хотите задачу – я подготовлю интересную!
Спасибо
Александр_ИгрицкийДата: Понедельник, 02.01.2012, 22:13 | Сообщение # 22

Александр Игрицкий
Ранг: Академик (?)
Группа: Заблокированные
Российская Федерация
Москва

Должность: Freelancer
Сообщений:
11104
Награды: 128
Статус: Offline
Quote (pavel7)
просто хотел поговорить – потому что теперь я считаю, что в процессе обучения надо применять самые простые алгоритмы, плюс очень хорошо и доходчиво их объяснять

pavel7, я не хочу быть неделикатным:
На лавочке бабы обычно говорят о чем угодно, мужики - о бабах. Это если ОЧЕНЬ ПРИМИТИВНО.
Вы о чем говорите, уважаемый pavel7?
Quote (pavel7)
а я тут никакой задачи и не ставил

Простите меня, но нельзя просто так болтать на этом сайте НИ О ЧЕМ? Ерунда какая-то получается?
Предмет-то обсуждения ДОЛЖЕН ЖЕ БЫТЬ?
КАКОЙ?????
Quote (pavel7)
А если хотите задачу – я подготовлю интересную!

God bless You!!!


Сообщение отредактировал Александр_Игрицкий - Вторник, 03.01.2012, 11:56
Спасибо
alex_eduДата: Вторник, 03.01.2012, 16:49 | Сообщение # 23

Александр Обычный
Ранг: Магистр (?)
Группа: Пользователи
Российская Федерация
Иваново

Сообщений:
606
Награды: 7
Статус: Offline
мое небольшое имхо:
Code

function sign(x:real):integer;
begin
if x>0 then sign:=1;
if x=0 then sign:=0;
if x<0 then sign:=-1;
end;

1. Практически любой тип с плавающей точкой довольно "опасный" тип. Вы проверяете на равенство 0. Однако у вас может при совершенно понятных (с точки зрения человека) значениях и операциях появиться злосчастная единичка в последнем разряде
2. В данной ф-ции вы всегда проверяете все три условия. Понятно, что в данной конкретной задачке скорость выполнения не существенна. Но, имхо, более правильный подход ни каких лишних проверок: if ... else .... if ... else ... В конце концов - просто выйти из функции во время.

А главное. Умение придумать нестандартное решение это наверное хорошо для тренировки ума, но на мой взгляд удобоперевариваемость кода (даже учебного) полагаю очень важный фактор. В ваш код мне пришлось вдумываться, я даже засомневался, что помню что такое "метод половинного деления". И вот код который я нагуглил по первой же ссылке показался мне более понятным и прозрачным -вообще ни чего в нем объяснять не надо:
Code

program mdp;
function f(x: real): real;
begin
     f:=exp(x*ln(5))-6*x-3;
end;
var
     a, b, e, c, x: real;
begin
     a:=1;
     b:=2;
     write ('e=');
     read(e);
     c:=(a+b)/2;
     while abs(b-a)>e do
     begin
        if f(a)*f(c)<0 then
            b:=c
        else
            a:=c;
        c:=(a+b)/2;
     end;
     x:=(a+b)/2;
    writeln ('x=',x:3:3,' f(x)=',f(x):4:4);
end.
Спасибо
Александр_ИгрицкийДата: Вторник, 03.01.2012, 17:47 | Сообщение # 24

Александр Игрицкий
Ранг: Академик (?)
Группа: Заблокированные
Российская Федерация
Москва

Должность: Freelancer
Сообщений:
11104
Награды: 128
Статус: Offline
alex_edu, спасибо!
Я не стал вмешиваться, так как ранее был причислен некоторыми к "недоброжелателям и злопыхателям", но был абсолютно уверен, что нормальная и объективная реакция форумчан появится.
Ч.т.д.
Еще раз спасибо.
Спасибо
ArthurLДата: Среда, 04.01.2012, 21:17 | Сообщение # 25

Артур Лаздин
Ранг: Первоклашка (?)
Группа: Пользователи
Российская Федерация
Санкт-Петербург

Сообщений:
27
Награды: 3
Статус: Offline
Есть две программы. Одну предложил pavel7, другую, традиционную отгуглил alex_edu, сравним их в смысле показывать студентам или нет.
Оговорюсь сразу, что вариант alex_edu, в комментариях не нуждается.
1. Сравнение скоростей работы.
Можете проверить, что на точности 0.001 (18 итераций у обоих вариантов), что на точности 0.0000001 (25 итераций у обоих вариантов), разницы в быстродействии нет.
2.Оценка понимания. Программы pavel7, естественно.
Я молчу, что за строчку t[-1]:=1; t[1]:=11; t[0]:=t[-1]-9; могут и по ушам.
Почему она не выглядит вот так: t[-1]:=1; t[0]:=-8; t[1]:=11; - загадка. Текст программы - лучший комментарий. Почему массив инициализируется не по порядку и не константами? Нехорошо.
Ладно.
Примем dx за 0.00001, и проведем небольшую трассировку. (21 итерация)
Что бросается в глаза:
t[0] не меняется (хотя это и так было понятно по коду), т.е. массив высосан из пальца;
функция function sign(x:real):integer; ни разу не приняла значение ноль.
условие t[0] > t[-1] не выполнилось ни разу.

2a. Ввиду того, что выбор значения для инициализации t[0] непонятен, попробуем поиграть с этим значением.
Был использован диапазон от -10 000 до 10 000.
Программа всегда выдает решения.
Причем при t[0] от -10 000 до 1 верные (x=3.9999 f(x) = 0.0001), а от 2 до 10 000 неверные (x=6 y=20).
Таким образом для t[0] подходит любое число равное или меньшее значения левой границы отрезка.
Зачем мистифицировать студентов и читателей, и почему не написать t[0] = t[-1] - тайна автора.
Кстати, за все прогоны от -10 00 до 10 000, с учетом итераций , доблестная функция function sign(x:real):integer; так ни разу и не приняла значение 0, что намекает.
Как оценивать получение результатов для "неправильных" значений t[0] - только как очень, очень и очень плохие. Лучше бы программа зациклилась, стала бы делить на ноль, или хоть как-то сообщила про ошибку. Этого нет.
Если выводить в качестве результата только значение x, ну вы поняли.
Проблема в том, что при ошибки ввода пресловутого t[0], на интервале где есть корень, программа находит неверный корень.

Вывод: показывать такую программу студентам категорически нельзя. Разве в курсе "Тестирование программного обеспечения", как пример некорректной реализации, но это далеко уходит за рамки форума.
Спасибо
Александр_ИгрицкийДата: Среда, 04.01.2012, 21:48 | Сообщение # 26

Александр Игрицкий
Ранг: Академик (?)
Группа: Заблокированные
Российская Федерация
Москва

Должность: Freelancer
Сообщений:
11104
Награды: 128
Статус: Offline
ArthurL, Вы просто молодец!
Пользуясь случаем, хочу еще раз обратить ВСЕХНОЕ (как мог бы сказать Корней Иванович Чуковский) внимание на Санкт-Питербург.
Очень достойно!
И еще!
Призываю всех участников, представляющих любые материалы о любом творчестве на суд форума, сопровождать их вразумительной аннотацией.
Это просто одно из правил хорошего тона: проявление действительного уважения к коллегам.
Спасибо
ArthurLДата: Среда, 04.01.2012, 22:23 | Сообщение # 27

Артур Лаздин
Ранг: Первоклашка (?)
Группа: Пользователи
Российская Федерация
Санкт-Петербург

Сообщений:
27
Награды: 3
Статус: Offline
Александр_Игрицкий, я могу ошибаться, но.
Есть базовая задачка: поменять местами значения двух переменных. Классическое решение предполагает появление промежуточной. Продвинутые выпускники математических школ гордятся тем, что знают, как сделать это без промежуточной переменной.
Поэтому мне кажется (я могу ошибаться), что Павел VII решил выбросить из классического трио a, b и c переменную c. Теперь вместо a - t[-1], вместо b - t[1]. И тут же ввел t[0]. видимо в качестве симметричного ответа. И плюс сильное переусложнение кода, затмевающего суть и с потенциальной дырой.

А если быть совсем честным, то я с Одессы. Но в Питере живу и работаю давно.
Спасибо
Александр_ИгрицкийДата: Среда, 04.01.2012, 23:22 | Сообщение # 28

Александр Игрицкий
Ранг: Академик (?)
Группа: Заблокированные
Российская Федерация
Москва

Должность: Freelancer
Сообщений:
11104
Награды: 128
Статус: Offline
Шо?
Ви хотите быть совсем честный? Обиделись на дюка Ришелье? Теперь стоите им около Ростральной колонны? Тогда, совсем честный, почему ви не сделали себе виход на дальше?
Спасибо
ArthurLДата: Среда, 04.01.2012, 23:34 | Сообщение # 29

Артур Лаздин
Ранг: Первоклашка (?)
Группа: Пользователи
Российская Федерация
Санкт-Петербург

Сообщений:
27
Награды: 3
Статус: Offline
Ни боже мой! (спешу, а то потрут же)
Просто мне несколько неудобно слышать такие комплименты от Вас к Питеру, хотя я понаехавший ))

А черт его не знает..
Спасибо
Александр_ИгрицкийДата: Четверг, 05.01.2012, 00:33 | Сообщение # 30

Александр Игрицкий
Ранг: Академик (?)
Группа: Заблокированные
Российская Федерация
Москва

Должность: Freelancer
Сообщений:
11104
Награды: 128
Статус: Offline
Шоб я так жил, как Вам неудобно!
Спасибо
Форум учителей об образовании в России и мире » Форум педагогов по предметам, разделам » Форум учителей информатики » Стоит ли давать ученикам не совсем обычные методы? (Но после того, как уже объяснил традиционный подход)
Страница 2 из 4«1234»
Поиск:



Спорная ситуация с родителями или администрацией? Ищете выход из проблемы на уроке или с учеником?
Не знаете, как что-то сделать на компьютере?


Вы можете задать анонимный вопрос
х
Подробно изложите суть вашего вопроса.
Обратите внимание, что вопросы публикуются в открытом доступе не сайте, поэтому не указывайте персональные данные ваши или иных лиц. Однако стоит указать свой РЕГИОН, т.к. законодательство в разных регионах разное.
Отправить