Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Теория - Учу язык Фортран

Ответить
Настройки темы
Теория - Учу язык Фортран

Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Отправить PM | Цитировать


Здравствуйте многоуважаемые форумчане-программисты.
Прибегаю к вашей помощи как начинающий программист, и прошу вашего участия в развитии молодого поколения ))).
Хочу поступить в универсистет по ИТ системам. Сама я только недавно начала осваивать язык Фортран (немного знаю С++), но хотелось бы для примера типичных задач иметь представление что это, и с чем его едят ))).
Нашла похожие задачи, но пока опыта нет))). Может благодаря вам соорентируюсь что к чему))) Поможите?
Вот задачка:

1) Дано натуральное число n. Выяснить, можно ли его представить в виде произведения трёх последовательных натуральных чисел. n = 95443536.
На С++ вродебы когдато я решала на подобии такого, но Фортран одно, а С++ другое.

Отправлено: 20:29, 17-06-2011

 

Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата KarinchiK 01:
На С++ вродебы когдато я решала на подобии такого, но Фортран одно, а С++ другое. »
я не программер, но вродебы решение задачи начинается с описания алгоритма, а не с выбора языка реализации

P.S. а почему Фортран?.. разве его еще где-то изучают?

Отправлено: 16:34, 18-06-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Аватара для lxa85

Необычный


Contributor


Сообщения: 4463
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


KarinchiK 01, прежде чем писать на фортране, реши задачу устно.
С фортраном проблем не возникнет, когда будешь знать, что искать в справочнике.
Я тебе к сожалению с готовы кодом помочь не смогу, т.к. у меня изучение Фортрана пока только в планах.
Единственное что, могу отдать сборник учебников по фортрану.
Цитата amel27:
P.S. а почему Фортран? »
Изучают, редко, в основном в глубоких технических специальностях.
Хотел на правах препода провести пару семестров на онном.
Кроме того, обрати внимание, что АМД и Интел, выпускают не только С++ компиляторы, но и Фортан компиляторы.
Большая часть мат. вычислений пишется на Фортране. А именно математические вычисления интересны серьезным покупателям.

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)

Это сообщение посчитали полезным следующие участники:

Отправлено: 10:46, 20-06-2011 | #3


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата lxa85:
Большая часть мат. вычислений пишется на Фортране. »
ну дык он был моим первым языком программирования (решали разностные задачи), правда давно это было...
помню только своё ощущение, что весь Фортран крутится вокруг одной команды FORMAT =)

Отправлено: 11:09, 20-06-2011 | #4


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата amel27:
ну дык он был моим первым языком программирования (решали разностные задачи), правда давно это было... »
Почти так же

Отправлено: 12:01, 20-06-2011 | #5


Ветеран


Сообщения: 1813
Благодарности: 146

Профиль | Отправить PM | Цитировать


KarinchiK 01 запостила подобное сообщение и на Ru-Board. После вполне конструктивной просьбы уточнить, как именно надо решать поставленную задачу, свалила в кусты и не показывается. Думаю, проявлять внимание к этой теме бесполезно.

Отправлено: 12:57, 20-06-2011 | #6


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Delirium, по поводу задачи автора, как уже и писалось выше — так ведь и не было ровно никаких попыток продвинуться в построении алгоритма.

Последний раз редактировалось Delirium, 05-07-2011 в 02:37.


Отправлено: 02:00, 04-07-2011 | #7


Ветеран


Contributor


Сообщения: 2728
Благодарности: 1697

Профиль | Отправить PM | Цитировать


Вот тупое решение (в предположении, что оно единственное). Но это Fortran-4 для EC ЭВМ (IBM 360/370) . Однозначно вывод не подойдёт для современного фортрана. Уже в Фортране-77 была конструкция If-Then-Else, в F-4 такого не было. Оператор языка начинается с 7 позиции. У меня нет под руками ни учебника, ни компиллятора, чтобы проверить. Вспоминал по своей программе двадцатилетней давности (Как молоды мы были!!).
Код: Выделить весь код
      N=95443536

      DO 1 I=3,N
      IF (N.NE.(I-2)*(I-1)*I) GO TO 1 
      PRINT 101,N,I-2,I-1,I
      GO TO 100
    1 CONTINUE

  100 STOP
  101 Format(1X,I8,'=',I3,'*',I3,'*',I3)
      END
Наверное, если посоображать немного, решение, как мне кажется, должно быть где-то около корня кубического из исходного числа. И если эту идею реализовать, можно существенно снизить время ваполнения программы. Но это - иллюстрация тезиса: прежде чем бросаться писАть код, надо проработать методику решения. А на каком языке - дело десятое: главное, чтобы хватало библиотеки готовых функций. Писать заново какой-то необходимый мат аппарат - дело муторное и неблагодарное. Помнится, переписывал в Фортран функцию из Алгола (кто сейчас его вспомнит, а вот библиотеки для научных расчетов там были богатые).

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 04-07-2011 в 11:14.

Это сообщение посчитали полезным следующие участники:

Отправлено: 10:54, 04-07-2011 | #8


Аватара для Tau_0

Ветеран


Сообщения: 6211
Благодарности: 1393

Профиль | Отправить PM | Цитировать


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
Цитата:
Однозначно вывод не подойдёт для современного фортрана.
Однозначно --- подойдёт. FORTRAN совместим сверху вниз.
Любопытный алгоритм --- спасибо. Чичас поразмышляю, а я видать перемудрил…

ЗЫ Мы тоже были молоды…

Добавлено…
Скомпилировал и прогнал Вашу "цацку" как консольное приложение в Compaq Visual Fortran Professional Edition 6.6.C под FORTRAN 77
Вот результат прогона ----
Цитата:
95443536=456*457*458
Press any key to continue
Под Fortran 90 то же самое --- FORTRAN 66 (4) входит туда как подмножество...

Последний раз редактировалось Tau_0, 04-07-2011 в 13:50.

Это сообщение посчитали полезным следующие участники:

Отправлено: 12:08, 04-07-2011 | #9


Аватара для Delirium

Ветеран


Сообщения: 5624
Благодарности: 936

Профиль | Отправить PM | Цитировать


Цитата Iska:
Можно ли отделить в отдельную тему данного же раздела сообщения, начиная, скажем с #7? »
Рассуждение про особенности языка продолжаем здесь

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)


Отправлено: 02:37, 05-07-2011 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Теория - Учу язык Фортран

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Установка - немогу добаветь дополнительный язык на "язык и региональные стандарты" DenisK088 Microsoft Windows 2000/XP 3 27-10-2009 07:54
Софт/IDE - нужен язык 1С keet Программирование и базы данных 11 18-07-2007 08:34
Язык =) kLish Хочу все знать 5 16-09-2006 00:37
Что за язык? Shadowed Программирование и базы данных 23 30-11-2004 19:51
Язык прграммирования Geron Программирование и базы данных 4 18-07-2003 12:24




 
Переход