![]() |
Учу язык Фортран
Здравствуйте многоуважаемые форумчане-программисты.
Прибегаю к вашей помощи как начинающий программист, и прошу вашего участия в развитии молодого поколения ))). Хочу поступить в универсистет по ИТ системам. Сама я только недавно начала осваивать язык Фортран (немного знаю С++), но хотелось бы для примера типичных задач иметь представление что это, и с чем его едят ))). Нашла похожие задачи, но пока опыта нет))). Может благодаря вам соорентируюсь что к чему))) Поможите? Вот задачка: 1) Дано натуральное число n. Выяснить, можно ли его представить в виде произведения трёх последовательных натуральных чисел. n = 95443536. На С++ вродебы когдато я решала на подобии такого, но Фортран одно, а С++ другое. |
Цитата:
P.S. а почему Фортран?.. разве его еще где-то изучают? |
KarinchiK 01, прежде чем писать на фортране, реши задачу устно.
С фортраном проблем не возникнет, когда будешь знать, что искать в справочнике. Я тебе к сожалению с готовы кодом помочь не смогу, т.к. у меня изучение Фортрана пока только в планах. Единственное что, могу отдать сборник учебников по фортрану. Цитата:
Хотел на правах препода провести пару семестров на онном. Кроме того, обрати внимание, что АМД и Интел, выпускают не только С++ компиляторы, но и Фортан компиляторы. Большая часть мат. вычислений пишется на Фортране. А именно математические вычисления интересны серьезным покупателям. |
Цитата:
помню только своё ощущение, что весь Фортран крутится вокруг одной команды FORMAT =) |
Цитата:
|
KarinchiK 01 запостила подобное сообщение и на Ru-Board. После вполне конструктивной просьбы уточнить, как именно надо решать поставленную задачу, свалила в кусты и не показывается. Думаю, проявлять внимание к этой теме бесполезно.
|
Delirium, по поводу задачи автора, как уже и писалось выше — так ведь и не было ровно никаких попыток продвинуться в построении алгоритма.
|
Вот тупое решение (в предположении, что оно единственное). Но это Fortran-4 для EC ЭВМ (IBM 360/370) . Однозначно вывод не подойдёт для современного фортрана. Уже в Фортране-77 была конструкция If-Then-Else, в F-4 такого не было. Оператор языка начинается с 7 позиции. У меня нет под руками ни учебника, ни компиллятора, чтобы проверить. Вспоминал по своей программе двадцатилетней давности (Как молоды мы были!!).
Код:
N=95443536 |
Iska,
Цитата:
1. Формулируем ограничения на диапазоны --- машина финитна (не так просто работать даже с натуральными числами) и чтобы попроще оно было --- ограничиваемся разрядностью машинной целой арифметики --- тип (диапазон) INTEGER и ВСЁ… 2. Смотрим что это такое --- Решето Эратосфена, и кодируем его… http://ru.wikipedia.org/wiki/Решето_Эратосфена 3 а. Если наше число простое --- на нет и суда нет --- не факторизуется. в. Если факторизуется, то в цикле “делим (в Fortan это MOD (a, p) ) на решето”, начиная с 2 и смотрим остаток. Как только остаток = 0. Вот так: result = MOD (a, p) где а наше число, p --- число из решета, а result --- остаток от деления. Все числа целые… Далее выполняем деление для получения первого сомножителя. First = a / p 4. С ним идём на 3 a --- цикл двойкой можно ограничить, чтобы выйти потом. Вот и ВСЁ. ЗЫ Не пинайте за простоту и примитивизм --- это сложная задача теории чисел. Факторизация целых чисел http://ru.wikipedia.org/wiki/Факторизация_целых_чисел Повторяю --- я простенько по рабочее-крестянски… Пока закодировать лениво, да и KarinchiK 01 подумать не мешает... ЗЗЫ жду возражений... Добавлено Пока ответ писал у меня первый серьёзный оппенент/союзник/коллега :) появился... Megaloma Цитата:
Любопытный алгоритм --- спасибо. Чичас поразмышляю, а я видать перемудрил… ЗЫ Мы тоже были молоды… Добавлено… Скомпилировал и прогнал Вашу "цацку":) как консольное приложение в Compaq Visual Fortran Professional Edition 6.6.C под FORTRAN 77… Вот результат прогона ---- Цитата:
|
|
Нашел в закромах MS FORTRAN Optimizing Compiler v.5.00 от 1989 года
Моё первое, подправленное решение Код:
LOGICAL L Код:
LOGICAL L |
Цитата:
Цитата:
Цитата:
Вроде как не единственно... 456*457*458 = (456/2) * (457*2) * 458 = etc… …???... Добавлено порсле внимательного прочтени иусловия Цитата:
|
Я бы стал изучать язык другой на вашем месте. Посмотрите западные (США) сайты по работе, кто требуется? Подкасты по Джаве http://americhka.us/
|
kipok, причем здесь
Цитата:
|
Цитата:
456**2 * 457**2 * 458**2 |
Время: 02:49. |
Время: 02:49.
© OSzone.net 2001-