Дискуссионный математический форумМатематический форум

Математический форум Math Help Planet

Обсуждение и решение задач по математике, физике, химии, экономике

Теоретический раздел
Часовой пояс: UTC + 3 часа [ Летнее время ]
MathHelpPlanet.com RSS-лента Математического форума

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Задачка по программированию с математическим уклоном
СообщениеДобавлено: 20 янв 2019, 15:54 
Не в сети
Начинающий
Зарегистрирован:
18 янв 2019, 09:56
Сообщений: 1
Cпасибо сказано: 0
Спасибо получено:
0 раз в 0 сообщении
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
Здравствуйте!

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

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

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Задачка по программированию с математическим уклоном
СообщениеДобавлено: 20 янв 2019, 17:39 
Не в сети
Light & Truth
Аватара пользователя
Зарегистрирован:
06 янв 2015, 22:27
Сообщений: 5006
Откуда: Саратов
Cпасибо сказано: 563
Спасибо получено:
365 раз в 302 сообщениях
Очков репутации: 79

Добавить очки репутацииУменьшить очки репутации
oilbassdiablo писал(а):
Необходимо решить задачку по программированию, но понимания как ее решить нету. Помогите пожалуйста с решением этой задачи.

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

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

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Задачка по программированию с математическим уклоном
СообщениеДобавлено: 23 янв 2019, 15:29 
Не в сети
Продвинутый
Зарегистрирован:
02 июн 2018, 08:50
Сообщений: 71
Cпасибо сказано: 0
Спасибо получено:
12 раз в 12 сообщениях
Очков репутации: 3

Добавить очки репутацииУменьшить очки репутации
Nataly-Mak писал(а):
до тех пор пока даты окончания всех депозитов совпадут.

Они могут совпасть, но в разных итерациях цикла, и этот момент нужно уловить.

В принципе вижу здесь 2 подхода:
1. Проверять каждый день. Этот вариант нужен банку, у которого тысячи вкладов, проверка каждого дня обязательна, высока вероятность совпадения в каждый из дней.
2. Если вкладов немного, к примеру у клиента, построить таблицу дат и в произвести в ней поиск. Иначе при проверке будет много "пустых дней".

Второй метод реализовал, для упрощения даты приняты как календларные дни (номер дня в году, без месяцев), количество дат переоформления принял 12. Пример показательный, сроки вклада минимальные, для того что бы получились совпадения. Проценты по вкладам не считал, это уж сами.


program bank_deposit
implicit none

logical :: l
integer :: i, j, m, b(5, 12)

!Объявим тип "вклад"
type :: bank
integer :: day !дата вклада
integer :: period !период вклада
integer :: data_end !окончание срока вклада
real :: rub !сумма вклада
real :: procent !проценты
end type

type (bank) :: deposit (5) !объявим 5 депозитов

deposit(1) = bank (5 ,10, 0, 35, 10) !детали 1-го депозита
deposit(2) = bank (5 ,5, 0, 50, 12) !детали 2-го депозита
deposit(3) = bank (5 ,4, 0, 50, 10) !...
deposit(4) = bank (5 ,10, 0, 70, 10)
deposit(5) = bank (5 ,5, 0, 80, 12)

!Прогоняем много раз (12) одну и ту же процедуру переоформления депозитов
!и запишем таблицу дат переоформления

do i=1, 12
do j=1, 5
deposit(j)%data_end = deposit(j)%day + deposit(j)%period
deposit(j)%day = deposit(j)%data_end
b(j,i) = deposit(j)%day
end do
end do

!Напечатаем таблицу дат переоформления

print*, "Таблица дат переоформления"
print 100, (b(i,:),i=1,5)
print*,

!Сделаем проверку на совпадение дат и напечатаем совпадения

do i=1,12
m = b(1,i)
do j=2, 5
l = any (b(j,:) == m)
if (l) then
cycle
else
exit
end if
end do
if (l) print 101, " Дата совпадения ", m
end do

100 format (12i5)
101 format (a, i3)
end program

Результат работы:
Код:
Таблица дат переоформления
   15   25   35   45   55   65   75   85   95  105  115  125
   10   15   20   25   30   35   40   45   50   55   60   65
    9   13   17   21   25   29   33   37   41   45   49   53
   15   25   35   45   55   65   75   85   95  105  115  125
   10   15   20   25   30   35   40   45   50   55   60   65

Дата совпадения  25
Дата совпадения  45

Видим, что 25 и 45 есть в каждой из строчек таблицы дат переоформления депозитов.

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Задачка по программированию с математическим уклоном
СообщениеДобавлено: 25 янв 2019, 07:48 
Не в сети
Light & Truth
Зарегистрирован:
10 дек 2013, 02:33
Сообщений: 2359
Cпасибо сказано: 168
Спасибо получено:
301 раз в 292 сообщениях
Очков репутации: 38

Добавить очки репутацииУменьшить очки репутации
Emphatic18
А что это за язык программировантя? Очень интересно?)

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Задачка по программированию с математическим уклоном
СообщениеДобавлено: 26 янв 2019, 08:47 
Не в сети
Продвинутый
Зарегистрирован:
02 июн 2018, 08:50
Сообщений: 71
Cпасибо сказано: 0
Спасибо получено:
12 раз в 12 сообщениях
Очков репутации: 3

Добавить очки репутацииУменьшить очки репутации
sergebsl писал(а):
А что это за язык программировантя?

Фортран. Только современный.

Не подумал кстати, переменная "m" лишняя. Вместо нее можно было вписать b(1, i).

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Задачка по программированию с математическим уклоном
СообщениеДобавлено: 27 янв 2019, 03:00 
Не в сети
Light & Truth
Зарегистрирован:
10 дек 2013, 02:33
Сообщений: 2359
Cпасибо сказано: 168
Спасибо получено:
301 раз в 292 сообщениях
Очков репутации: 38

Добавить очки репутацииУменьшить очки репутации
Подскажите, где можно найти материалы по этому Фортрану?

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Задачка по программированию с математическим уклоном
СообщениеДобавлено: 27 янв 2019, 18:33 
Не в сети
Продвинутый
Зарегистрирован:
02 июн 2018, 08:50
Сообщений: 71
Cпасибо сказано: 0
Спасибо получено:
12 раз в 12 сообщениях
Очков репутации: 3

Добавить очки репутацииУменьшить очки репутации
Вот так сам по ходу дела и изучаю. Можно было и от массива "b" отказаться, добавив в структуру переменную на N значений, массив по сути. По тексту переписать дело техники.

type :: bank    							
integer :: day
integer :: period
integer :: data_end
real :: rub
real :: procent
integer :: day_pereof (12) !таблица дат переоформления (на 12 значений)
end type


sergebsl писал(а):
Подскажите, где можно найти материалы по этому Фортрану?

В основном материалы и книги по последним стандартам к сожалению на английском языке.
Здесь если не ошибаюсь сам стандарт языка.

Но и на русском что-то можно найти. Кое что есть в материалах сети, на форумах, что-то можно найти на сайте поддержки intel, есть wiki fortran, wiki gcc-gfortran с примерами применения тех или иных команд этого языка. По поводу книг можете глянуть здесь, хотя вряд ли там полный список. Здесь есть довольно большая форумная тема и т.п.

Мне в магазине попалась книга "Фортран в задачах и примерах" С. Немнюгин, О. Стесик, 2012 года, взял. Из электронных скачал "Современный Фортран. О.В. Бартеньев (2000 г)", "Современный фортран самоучитель, Немнюгин Стесик", "Артемов И.Л. "Fortran: основы программирования" и "Современный fortran на практике". Арьен Маркус. К последней книжке прилагаются коды в электронном виде. Но в наших русскоязычных книжках, как я заметил, изложение или начальное, что правда то же хорошо, или на мой взгляд громоздкое и запутанное как у Бартеньева. Довольно хорошо изложена книга Артемова. Но во всех наших книгах нет практически ничего об ООП, которое начиная со стандарта 2003 года есть в фортране. Вообще для вычислений и работы с числами язык весьма удобен и хорош, немало всяких приятных "плюшек".

Компиляторы, самым передовым и хорошо оптимизирующим код считают компилятор от Intel - ifort. Но он не бесплатный и весьма дорог, хотя intel дает месяц на тестирование, и однако для студентов бесплатен. Есть PGI Fortran, Silverfrost FTN95, что то еще, по моему Oracle что то поставляет, но я сильно не разбирался что они из себя представляют, какие платные/бесплатные и т.п. Здесь по поддержке плюшек стандарта разными компиляторами.
Из свободных и бесплатных компиляторов в сети можно встретить рекомендации использовать g95, но это старые рекомендации, использовать его не нужно, g95 давно не развивается. А вот gfortran вполне можно рекомендовать (у меня он и есть). Это компилятор из коллекции gcc, хорошо развивается, достаточно точно следует стандарту языка и есть для любой ОС, как и сам gcc.

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

Вернуться к началу
 Профиль  
Cпасибо сказано 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

 Похожие темы   Автор   Ответы   Просмотры   Последнее сообщение 
Задачка по программированию.Определить количество комбинаций

в форуме Комбинаторика и Теория вероятностей

Rembrant

11

407

15 авг 2016, 23:52

Задания по высшей математике с уклоном экономики

в форуме Экономика и Финансы

olga_budilova

6

885

03 июл 2013, 16:52

Два вопроса по математическим обозначениям

в форуме Дискретная математика, Теория множеств и Логика

Igor_1982

3

183

06 ноя 2017, 21:13

Ищем специалиста по математическим моделям в маркетинге

в форуме Объявления участников Форума

tonika

1

133

11 дек 2016, 19:51

Тренажер по программированию

в форуме Информатика и Компьютерные науки

daulet

0

479

02 апр 2011, 19:21

Формализациязадачи по линейному программированию

в форуме Информатика и Компьютерные науки

proofik

3

422

04 мар 2013, 20:42

Литература по Линейному программированию

в форуме Литература и Онлайн-ресурсы по математике

Gargantua

2

360

07 окт 2014, 20:57

Практикум по линейному программированию

в форуме Исследование операций и Задачи оптимизации

vfkbyrf

3

917

02 май 2012, 09:11

Пара вопросов по математическому программированию

в форуме Исследование операций и Задачи оптимизации

AntonCharov

0

159

09 май 2017, 18:13

Задача по линейному программированию из учебника Х. Таха

в форуме Исследование операций и Задачи оптимизации

Andy

1

1365

23 окт 2013, 13:43


Часовой пояс: UTC + 3 часа [ Летнее время ]



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Яндекс.Метрика

Copyright © 2010-2018 MathHelpPlanet.com. All rights reserved