LINUX.ORG.RU

Помогите другу!

 ,


0

3

Мой друг является неоднократным победителем междугородних турниров по математике. Математика его стихия. Учится на бюджетном отделении, кафедры «Прикладной математики и информатики». 1-ый курс он окончил просто блестяще, получив 5 по всем предметам. Но ситуация изменилась со второго курса, началось программирование(угадайте на чем? Ответ: на Паскале). Тут он зашел в тупик, он просто не понимал конструкцию языка, не умел выразить на нем, так сказать мысли. Лабу он еле-еле сдал, да и то с чьей-то помощью. Схватившись за голову, и поняв, что нужно подтягивать программирование, он пришел ко мне за помощью. ТУТ немножко о себе: быдлокодер со стажем 1,5 года и 3 дня, идиот, кретин, а также человек вылетевший с 1-ого курса института, не осиливший и 2/3 SICP встретив математику. У любого нормального программиста который посмотрит на мой код возникнет одно желание, убить и закопать. Программированием занялся от скуки, и болезни(артрит-хронический). По сути я самоучка-идиот. Я ему намекнул, что я не образец у которого стоит учиться. Но он пришел проконсультироваться, спросил, что такое переменная. Я минут 40 объяснял, опустившись до мата. В итоге сформулировав более-менее понятно, что переменная это пи*да в которую кладут йух, и что извлекать йух можно многократно. Сегодня он придет в 9 утра, опять консультироваться. Теперь вопрос, что с ним не так? Он отличный математик, а не может понять простое, которое даже я понял, и то с помощью аналогий. Я конечно буду ему помогать, но не всегда. Ведь опять начнутся лабы, а там реализация матанских задачек на Паскале, где я не помощник. Можете посоветовать книги в норм качестве, желательно электронные по основам программирования. Нашел программирование для чайников, но качество УГ.



Последнее исправление: loppop (всего исправлений: 2)

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

Фейспалм. 40 минут объяснять что такое переменная (!) лол. Боюсь подумать подумать сколько времени объяснялось значение операторов, циклов и классов.

RedEyedMan3
()

Математик? Не знает что такое переменная?

Чувствую троллинг, практически все математики могут понимать программирование. Тем более на такой простой вещи, как Паскаль.

a1batross ★★★★★
()
Ответ на: комментарий от geometer

Объяснил простое сложным :-)

А что есть память? Как определяется область в ней? Каким аксиомам они удовлетворяют?

Проще сказать, что переменная это просто имя некоторого объекта. Причём, если надо, объект можно и заменить.

anonymous
()

1. Зачем ты кормишь его CISP?

2. Основы программирования проходят в школе. Определение алгоритма дают в третьем классе (сам видел).

3. Переме́нная — атрибут физической или абстрактной системы, который может изменять своё значение. (c) вики.

Переменная характеризуется диапазоном допустимых значений (тип данных) и текущим значением. Что здесь можно не понять?

Математик, my ass.

S-Mage ★★
()

Какой город (вуз)?

Переменная в математике и в программировании две большие разницы. Если конечно не на хаскеле писать:-)

AIv ★★★★★
()
Ответ на: комментарий от S-Mage

Какое определение алгоритма дают в третьем классе? Например о машине тьюринга у нас в третьем классе точно не говорили.

pousqie
()

Если ДС, то могу:

1) Одолжить SICP в бумажном варианте. Также в бумажном варианте есть «Алгоритмы и структуры данных» Вирта, там как раз примеры на паскале.

2) Попробовать проконсультировать за пивом.

Жаббер в профиле.

DELIRIUM ☆☆☆☆☆
()
Последнее исправление: DELIRIUM (всего исправлений: 2)

Он отличный математик

У меня для тебя плохие новости.

LongLiveUbuntu ★★★★★
()

Мой друг является неоднократным победителем междугородних турниров по математике

Математика его стихия

5 по всем предметам

не может в программирование

Ну всё, теперь твой друг обречён не стать жава-быдлокодером и заниматься увлекательной и интересной наукой во славу человечества до конца своих дней.

mentalmenza
()

я настоятельно советую How To Design Programms

mentalmenza
()

На начальном этапе программирование легче всего рассматривать как набор инструкций для компьютера, описывающих некоторое вычисление. Скажи ему, например, вычислить sin(0.5) разложением в ряд Тейлора в окрестности нуля с точностью до пятого знака. Пусть сначала посчитает на бумажке. Потом один-в-один перепишите это на Паскале:

program sine;
begin;
 writeln(sin(0.5), 0.5 - power(0.5, 3) / 6 + power(0.5, 5) / 120);
end.
(я уже подзабыл паскаль, могут быть ошибки). Лучше не показывай ему сразу код, а объясни основы и заставь написать самостоятельно.

А дальше начинайте обобщать. Этот код можно переписать таким образом:

program sine;
var s: real;
begin;
 s := 0.5;                     { sin(0.5): первый член ряда Тейлора }
 s := s - power(0.5, 3) / 6;   { sin(0.5): второй член ряда Тейлора }
 s := s + power(0.5, 5) / 120; { sin(0.5): третий член ряда Тейлора }
 writeln(sin(0.5), s);
end.
Здесь наглядно видно, как на каждом этапе мы пользуемся переменной s как ячейкой, в которой храним промежуточные данные. Можешь тоже заставить его это сначала на бумажке расписать. Дальше можно это вынести в отдельную функцию, вычисляющую уже sin(x) (Объясни, что функция в программировании --- это кусок кода (вычисления), параметризованный аргументами. Он может иметь другое представление о функции, потому что в математике это отображение.), ввести точность вычислений в качестве параметра (для этого надо будет рассказать про циклы) и т.д. Формулы он тебе сам напишет. В результате должно получиться что-то вроде
function sine(x, delta: real): real;
var n, sign, fact: integer;
    s: real;
begin;
 sign := 1;
 n    := 1;
 fact := 1;
 s    := x;
 repeat
  sign   := -sign;
  fact   := fact * (n + 1) * (n + 2);
  n      := n + 2;
  result := s + sign * power(x, n) / fact;
 until abs(s / result - 1) < delta;
end.
Если ты научишь его читать код и покажемшь эту функцию, он, наверное, разберётся, что к чему.

Я себя, кстати, считаю неплохим программистом и математиком, но в самом начале разбирательств с паскалем я долго не мог въехать в понятие массива. Вообще никак. Но потом втянулся, когда начал писать программки для обработки экспериментов из курса общей физики. Оно как-то само стало очевидно.

anonymous
()
Ответ на: комментарий от anonymous

Точнее, мне не стоит писать код за завтраком. Ладно, идея понятна, ты, как программист, баги сможешь вычистить :)

anonymous
()
Ответ на: комментарий от redgremlin

Есть стандарт, академ, и углебленное изучение, если математик «учился в стандарте» то программирования не было вообще. если учитель заинтересовал его помимо уроков то тогда - да.

mul4 ★★★★★
()

Пусть учит haskell

Если он действительно хороший математик, он должен всё понять. А забивать мозги императивщиной большого смысла нет.

anonymous
()

пробовали ему картинки и примеры из книжек показывать, водя по ним пальцем?

anonymous
()
Ответ на: комментарий от pousqie

Алгоритм — это конечная последовательность действий, ведущая к решению какой-то задачи. Учебника третьего класса у меня нет, но смысл там был такой. Мамаша того ребенка еще развыступалась, «научите моего ребенка вордом пользоваться, зачем ему алгоритмы». Я был полон негодования.

Про машину Тьюринга я сам на втором курсе узнал. Не считаю, что знание принципов ее работы как-то поможет тому парню в освоении программирования. К тому же, такой-то блестящий математик должен про нее знать, вместе с алгоритмами Маркова и (чем-то третьим, все время забываю).

S-Mage ★★
()

твой друг - аутист? вроде им математика дается легко при правильном лечении.

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

moot ★★★★
()

спросил, что такое переменная

В математике операции присваивания разве нет? Её вроде обозначают или стрелкой, или как в паскале, :=.

А так у меня вся группа сдала программирование не зная программирование, не вижу проблемы.

кафедры «Прикладной математики и информатики»

Зачем идти на информатику, если с программированием не знаком?

PolarFox ★★★★★
()
Ответ на: комментарий от megabaks

причём аналогично

Действительно аналогичные математическим переменные можно встретить лишь в самых упоротых вариантах ФП вроде хаскеля. В математике переменная — что-то, что может быть чем угодно в определённых рамках. В паскале переменная это что-то, что в каждый конкретный момент времени имеет строго одно определённое значение.

PolarFox ★★★★★
()

Складывается впечатление, что идиот из вас двоих не ты ;)

chg ★★★★★
()
Ответ на: комментарий от PolarFox

Очень смешно наблюдать за тем, как школота пытается рассуждать о том, что такое математика. Иди лучше, уроки учи. А мнение свое будешь высказывать когда у тебя появится на это право. То есть, лет через 15, не раньше.

anonymous
()
Ответ на: комментарий от moot

коммунисты вообще хренели :) дикие капиталисты работают за $20 в час и не жужжат!

Ну дык если уж тратить свое время, так хоть с пользвай. Это ж целый час я на гармошке не поиграю и песни не поору %)

dikiy ★★☆☆☆
()
Ответ на: комментарий от PolarFox

Тебе довольно мягко намекнули, что ты несешь чушь, и что твое представление о математике и о том, что такое переменная находится где-то на уровне третьего класса школы для у/о. Ты не понял. Повторяю для совсем уж тупых - слейся, ничтожество, не позорься.

anonymous
()

Ещё аналогия

Переменная - это именованная ячейка памяти, которая может хранить определённое значение (число). Память компьютерной программы представляет собой кучу ячеек и задача программиста использовать их рационально, давая значимые имена и выполняя с ними определённые операции (математические, комбинаторные), записывая и считывая в/из ячеек хранимые в них значения.

iZEN ★★★★★
()
Ответ на: комментарий от mul4

Алгоритмы и программирование были и 25 лет назад у двоюродного брата на БКашках (Бейсик), и 20 лет назад у меня на зверь-машинах МК88 (МК — не микрокалькулятор, а серия Минск-Киев, на базе процессора http://ru.wikipedia.org/wiki/К1810ВМ88) (бейсик), и 15 лет назад у другого двоюродного брата на Пентиумах (turbo pascal), и 10 лет назад у племянника на Атлонах (delphi), и 5 лет назад у сына знакомого хз на чём. Да и на упомянутой книжке написано «базовый курс, 9й класс», а не «для спецшкол с углублённым изучением информатики».

redgremlin ★★★★★
()
Ответ на: Ещё аналогия от iZEN

оффтоп

iZEN, ты как патриарх фряхи на ЛОРе, что скажещь про мой скромный daemon-notes.com?

moot ★★★★
()
Ответ на: комментарий от moot

скажи ему прямо: не можешь осилить детскую азбуку информатики - иди в Перельманы, ...

Вот это ты пальцем в небо... Перельман, как минимум, 3 статьи на архив.орг выложил. А там латех - язык не проще любого другого.

anto215 ★★
()
Ответ на: комментарий от Solace
a = 5
b = a * 2
a = 6
c = a * 3

(Императивное) программирование, результат: a = 6, b = 10, c = 18. Математика, результат: несовместная система.

PolarFox ★★★★★
()
Ответ на: комментарий от PolarFox

То есть твой аргумент строится на том, что понятия разные лишь из-за того, что средство выражения одного языка не подходит для другого?
Тогда у англоговорящего понятие «быть» будет отличным от русскоговорящего лишь из-за разницы в написании?

Solace ★★
()
Ответ на: комментарий от Solace

Не, скорее наоборот, две разные хреновины (переменная в программировании и переменная в математике) называются одинаково. Как интеллигент и intelligent в русском и английском.

PolarFox ★★★★★
()
Ответ на: комментарий от megabaks

переменные в математике, и переменные в программировании - две большие разницы.

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

MyTrooName ★★★★★
()
Ответ на: комментарий от PolarFox

Не, скорее наоборот, две разные хреновины (переменная в программировании и переменная в математике) называются одинаково

Редко случается просто так. Обычно для этого есть причины.

Как интеллигент и intelligent в русском и английском.

Вроде как, слово «интеллигент» в его нынешнем значении пошло как раз из России. Отсюда и остальное.

Solace ★★
()
Ответ на: комментарий от PolarFox

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

anonymous
()
Ответ на: комментарий от Solace

В английском intelligent это просто «умный», безо всяких намёков на интеллигенцию.

PolarFox ★★★★★
()
Ответ на: комментарий от Solace

Редко случается просто так. Обычно для этого есть причины.

Мне кажется, переменная (variable) в программировании не от математического термина получила своё название, а от того, что это просто изменяющееся во времени значение. Обзывать привязку иммутабельного значения к символьному имени «переменная» уже как-то язык не поворачивается.

PolarFox ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.