![]() |
Извините за оффтоп, но я не бородатый старый программер, а студент еще...
Цитата:
Один страрый АСУшник поведал мне, что фортран стал языком для математиков, потому что там впервые была реализована двойная точность для вычислений с плавающей точкой. Сейчас она есть везде, вроде даже уже четверная есть в gcc. Да, для него много библиотек с математикой, но многие библиотеки для серьезной математики я видел и для си, и для фортрана (MPI, например). Суммируя, что ж в нем такого? Киньте ссылки или разъясните в 2 словах. Буду благодарен.:) |
Цитата:
Цитата:
|
Цитата:
Тем более любопытно, видя, что lxa85 хочет провести пару семестров на онном. |
|
Цитата:
Чтобы почувствовать язык надо на нём писать… Я писал на разных ассемблерах, Модуле-2, С и С++ и десть лет на Фортране, начиная с четвертого (60-го) м заканчивая 90-ым. Это мой любимый язык --- прост (не перегружен) и лаконично красив (в последних версиях даже изящен) --- науке не нужны излишние навороты… Фортран стал языком научной братии: физиков, механиков и инженеров. Но не математиков --- математика это совсем иное… Академическое общество в этом смысле разумно консервативно --- пользуется проверенным надёжным инструментов --- его на C++ не пересадишь… Поэтому и жив Фортран по пору сию… |
Tau_0, можно вас попросить уточнить разницу между физиками, механиками и математиками? Разница для меня пока не столь очевидна, т.к. данные науки тесно сплетаются между собой. Дополняя и "раскрывая" друг друга.
|
;) Учитель, можно я? Можно мне ответить?!
Математика является основой, базовой составляющей, которая даёт численный аппарат как для теоретического обоснования, так и для реализации задач перечисленной научной и инженерной братии. Без математического аппарата, что физика, что механика — мертва. Так я понимаю это. |
тема вопроса
Цитата:
|
Tau_0 Считал раньше на Fortrane еще в 1968 году динамику полета экранопланов Орленок,
Касп. Монстр, Лунь и т.д. Накоплены данные расчето, проверенные по результатам летных испытаний. Пробовал использовать MatLab. Уранения и исх. данные те же, но выходные переходные процессы сильно отличаются. Считать приходится систему нормальных дифф. урвнений 5-го порядка методом Рунге_Кутта. Сейчас попрежнему использую Fortran (Fortran Power Station ) для расчетов все классно. Вопрос. Можно ли считать системы дифференциальных уравнений (нормальных) и в частных производных с помощью программ С++ |
Цитата:
Но раз есть разные слова, то значит, есть и разница --- даже в тонкостях мышления. Математика она очень большая --- есть логики и абстрактные алгебраисты --- им вроде машина ник чему. Хотя кто его знает…???.... Раскрыть разницу не берусь --- будет много слов, и мало толка… Но я эту разницу чувствую и ощущаю --- тесно работал с ними рядом. Ну вот Вам вариация одной старой шутки… Цитата:
Цитата:
Хотя и старался применять технологии структурного программировании, но многое по пять раз перекраивал и переписывал… По крайней мере для меня это было неизведанным… Какое здесь объектное программирование --- оно только мешает сосредоточится…. |
Tau_0
Код:
Конечно можно, но мне было бы неудобно.. примеров решений в С++ систем дифференциальных уравнений (нормальных) и тем более в частных производных |
Цитата:
|
Не знаю, что такое Фортран сейчас, в своё время отдал 14 лет F-4, и немного Fortran-77. Моё твёрдое убеждение - ни в каком другом языке нельзя так просто работать с комплексными переменными (+ куча стандартных функций для них), как в Фортране. Прежде всего это нужно физикам, инженерам-физикам: электротехника, электродинамика - вот естественная область применения. А любая задача на любом языке прежде всего связана с методикой решения: вот конкретная задача, вот придумали метод (в научных расчётах -99% успешного результата и эффективности конечного кода) - а уж потом - программа. Уже порядочное время мощная альтернатива Фортрану - MathCad.
Правда, существует очень давнее обидное высказывание какого-то гуру от программирования: "Кто начал изучение программирования с Бейсика - потерянный для программирования человек. Начавший с Фортрана - недалеко от них ушел". Но Бейсик сейчас другой. Наверное, и Фортран не тот. Цитата:
|
|
Цитата:
Вот интересная дискуссия на эту тему --- три странички всего… Научный форум dxdy Фортран http://dxdy.ru/topic27402.html |
Tau_0 Я без подначки. Мне просто интересно знать.
Цитата:
Именно решение систем дифференциальных уравнений на С++ реально? Я его просто не знаю |
Цитата:
См., что там написано Цитата:
Цитата:
|
Tau_0
1. Посмотрел на dxdy… Ну и что ? Разные компиляторы ( да есть комбинированные) под разные классы задач. Цитата:
2. На rutracker.org мы уже обсудили. Цитата:
Классно работает Может я все же не понял о чем Вы говорите? |
Цитата:
http://www.nag.co.uk/ А документацмя по Mark 18 лежит вот тут. NAG Fortran Library, Mark 18 http://nag.co.uk/numeric/fl/manual19/html/mark18.html Цитата:
Я и для фортрана в большинстве своём писал собственные подпрограммы и функции --- стандартные порой плохо подходили, или их у меня не было, или не так надо было делать.... Впрочем, были у меня исходные тексты с очень неплохой документацией. Но то было для серии DEC VAX, а надо было на IBM 360/370 --- куча машинно зависимых констант. Разбирал и правил исходные тексты, что очень утомительно. Повторяю, --- написать на C ничто не запрещает. Вот только готовых библиотек маловато будет, а FORTRAN за 55 лет столько ВСЕГО накопил...!!!... Да и не люблю я на этом "телеграфном коде" (C, C++ кодировать....) Цитата:
Впрочем, ВСЕ они (компиляторы и интегрированные среды) хороши --- вроде как одна команда делала...???... |
Tau_0 Понятно. А уменя как раз Compaq Visual Fortran Professional Edition 6.0 не пошел.
|
Считать можно все на всем, хоть на Фортране, хоть на С++, хоть на Паскале. Хоть на Хаскеле с Прологом. Проблема в том, на чем считать быстрее и удобнее. Фортран изначально был как бы высокоуровневым заменителем ассемблера. То есть он не компилировался, а прямо перегонялся в машинный код. Поэтому он был изначально заточен именно на легкость такого преобразования, а не на легкость написания программ. И поэтому постоянно лидировал в скорости вычислений. Но некогда, с точки зрения человека, был жутко, невыносимо корявым языком. Фортран-IV и Алгол-66 - ну земля и небо! То есть, язык очень неудобный, но очень быстрый. В те времена скорость расчетов очень ценилась, поэтому Фортран и пошел в гору. Опять же, Ай-Би-Эма-мать (Фортрановская, ибо во всю продвигала) сильно поспособствовала...
Хотя в те времена все языки перегонялись в машинный код, как Ассемблер. И заявление Кернигана и Ричи, что С - это портируемый Ассемблер, в те времена было абсолютно верным (но не сейчас!). Однако, Фортран очень долгое время оперировал до дебильности простой моделью компьютера. В которой память под все переменные выделяется сразу и навсегда, и потом ничего сверх этого отводить не надо. Зато как при этом все быстро считается! Плата за это неслабая: вплоть до стандарта Фортрана-90 (чудовищно поздно, по сравнению с другими языками) не было никаких динамически размещаемых в памяти массивов. Но жить-то как-то надо! В результате в реальной практике под массив приходилось заказывать памяти с избытком. Т.е. некое фиксированное количество, которое в любом случае перекроет все разумные потребности. А потом использовать под данные только ту часть из общего объема массива, которая нужна. Это еще цветочки, ягодки - это концепция псевдодинамического распределения памяти, или как там она называлась... Это вообще гроб! Точнее, такая братская могила, причем одномерная. То есть, заказывался неслабых размеров одномерный массив, а потом в него в разных местах пихались все промежуточные переменные, в том числе и массивы. И, опять же, в том числе и многомерные. Запихивались в разные порции этой братской могилы. Выглядит это обычно так: в описании некоторой подпрограммы некая переменная описана как массив (возможно, многомерный), а при реальном вызове этой подпрограммы этой переменной (массиву!) ставится в соответствие некий единичный элемент описанного выше временного массива. Скажем, а(12). И массив этот пишется во временное хранилище, начиная с 12 элемента. И еще в такие массивы, объявленные как массив действительных переменных, запихивали даже целочисленные переменные, и это было в порядке вещей. Короче, в действительно серьезных программах, написанных по такой методе, разобраться детально просто не реально. Тем более перевести на другие языки. Тут или все похоронить, или так и использовать. А поскольку динамических массивов не было до 90-х годов, то кода такого накопилось дофига, и Фортран теперь просто непотопляем! |
Цитата:
Цитата:
Простой пример --- проекционно сеточные методы (конечные, граничные элементы, да и конечно-разностные схемы тоже). Там получались симметричные сильно разреженные матрицы --- много нулей. Хранить их в виде массива 2х2 глупо --- использовались ленточные и профильные схемы. Более того, применялись различные алгоритмы перенумерации узлов для минимизации ширины ленты и профиля. Делалось для повышения скорости вычислений и экономии памяти. Матрицы были слабо обусловленными и так просто эти СЛАУ не решались --- серьёзная кухня использовалась. Это оправдывало себя. А динамическое распределение памяти печально знаменито тем, что хороший мусорщик в общем случае очень трудно реализовать. Память есть, но она дробится --- не непрерывным блоком, а с дырками это всё равно, что её нет. Страничный обмен не спасает ---- для цифродробилки высокая скорость нужна, а тут толкотня страниц… ЗЫ Хорошая задача и суперкомпьютер положит… ЗЗЫ Что до гроба --- в том и состояло искусство программиста, чтобы реже хоронить… Грубая проза жизни --- прошло время настоящих профи :(:laugh:... ЗЗЗы Стандарты 2003 и 2008 ещё не смотрел --- интересно --- чего там ещё накрутили…???... |
Tau_0
Я как бы программист не профессиональный, надо было результаты обрабатывать, причем не тривиально... Влез в Фортран, поскольку язык обманчиво простой, типа Бейсика (ну, на самом деле, это именно Бейсик типа Фортрана, но не будем об этом...). Но, по ходу дела, выяснилось, что простота эта совершенно обманчива. Нет другого такого языка программирования, в котором можно написать программу, которая будет абсолютно превратно понята. Если не указать условия компилирования. Скажем, ключик, разрешающий старинный глючный цикл Фортрана, который сначала выполнится, а потом уже будет проверено условие его выполнения. Да даже если этот ключик указать, фига с два теперешние программеры, не программировавшие на Фортране-IV, поймут его смысл. Почти что язык только для посвященных, если захотеть... |
Цитата:
Наш ответ Керзону… Цитата:
Прочтите до ко конца --- там мой полный ответ прикопан... :laugh: Настоящие программисты не используют Паскаль http://lib.ru/ANEKDOTY/non_pas.txt |
Время: 22:24. |
Время: 22:24.
© OSzone.net 2001-