Android-приложение для поиска дешевых авиабилетов: play.google.com
Главная -> Справочник по алгоритмам

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 [71] 72 73 74 75 76 77 78

Пример А. Вкладчик сберегательной кассы решил ежегодно вносить вклад si = = 1 000 руб. в течение А/=10 лет. Сколько денег он сможет получить, если процент годовых начислений Р = 3 %? Вводим .s = 0, si = !000, Р = 3, Л=10. получаем s = = П 463,88 руб.

Пример В. Семья решила накопить для покупки дома сумму s = 30 000 руб..

Сортировка заключается в вычислении обшей суммы данных, сумм по категориям и процентов (от общей суммы) по категориям. Алгоритм сортировки сводится к указанию номера элемента одномерного массива N и выполнению на каждом цикле ввода операций s-f-s-fX (вычисление общей суммы) и А (N) <-А (N) +Х (вычисление суммы по А/-Й категории).

Программа 7.70.

10 PRIHTСОРТИРОВКА ДАННЫХ ПО КАТЕГПрИЯМ

20 PRINTДЛЯ ВЫДАЧИ РЕЗУЛЬТАТОВ ЗАДАЙТЕ Ы=Х=0

30 1НРиТВЕЕДИТЕ Н МАКС=М!В1М A*:M>sLETS=0

40 FOR 1=0 ТО M!LETA<I>=8SNEXT I

50 INPUTВВЕДИТЕ Н,К Н/Х

60 IF N=0 THEH 80

70 LETA<N>=A<H)+X!LETS=S+XsGOTO 58

88 FOR 1=1 TO M

98 PRINT!3.e!S*:I>= !S.2!Aa>

100 PRIHT!2.2!P«)=AC.I>*100/S!NEXT I

110 PR INT !8.2!ОБЩАЯ СУММА S0=S!ENIi

вкладывая в сберкассу ежегодно сумму si = = !000 руб. Скольк© лет N на это потребуется, если процент годовых начислений Р=3%? Вводим 5 = 30 000, Si = !000, Р = 3, А/=0, получаем А/=2!,7!.

Пример С. Какую сумму si должен ежегодно вносить вкладчик, чтобы через А/=20 лет накопить сумму 5 = 30 000 руб. при проценте годовых Р=3 %? Вводим 5=30 000, 5=0, Р=3 и (V=20, получаем 5, = !П6,47 руб.

Пример D. Какой должен быть процент годовых начислений Р, чтобы при ежегодном вкладе 5, = 1000 руб. накопить сумму 5 = 30 000 руб. за А/= 20 лег? Вводим х = = 30 000, 5, = 1000, Р = 0, N=20, получаем Р = 4,13%.

К распространенным финансово-экономическим расчетам относится сортировка данных по категориям.

Например, данные могут быть представлены в виде месячной заработной платы рабочих со специальностями различных разрядов (категорий) в виде следующей таблицы:

Пример. Введя /\/„акс=6 и данные приведенной выше таблицы (значения Л и X), по окончании ввода указываем Л = 0 и Л=0. Получаем результат сортировки:

Категория N

S(N)

.Р{%)

6,75

7,72

3 397 17.51

Итого

2267

20,16

30,88

19,68

Максимальное число категорий N макс Определяется -максимальным номером индекса у одномерных массивов. Ограничений на М„акс нет.

Часто возникает необходимость в суммировании табличных данных по горизонталям или вертикалям таблицы. Если данные вводятся построчно, то при М столбцах и N строках для такой обработки необходим, одномерный массив из М суммирующих регистров. С его помощью производится суммирование по столбцам.

Рабочий (фамилия)

Иванов

Петров

Сидоров

Козлов

Волков

Петров

Серов

Василенко

Категория (разряд)

Месячный заработок

(руб.)

Рабочий (фамилия)

Карпов

Хохлов

Иваненко

Голубев

Птицын

Зверев

Простаков.

Левашов

Категория (разряд)

Месячный заработок (руб.)



Работу этой программы можно проверить с помощью таблицы, имеющей Af = 4 и N = 5:

где int - операция выделения целой части выражения.

1у>

В финансово-экономических расчетах нередко возникает необходимость в определении дня недели по дате числа, а также вычисления количества дней А/, прошедших между двумя датами. При отсчете дат с 1582 года эта задача решается с помощью следующего алгоритма (взят из описания библиотеки программ программируемого микрокалькулятора TI-58C).

1. Вводим число (день) D, месяц М и год Y.

3. День недели D„ вычисляется по формуле

D„ = f + 7 (-Int (f/7)),

причем D„ = О-суббота, 1 - воскресенье, 2 - понедельник, .... 6 - пятница.

4. Для нахождения Л выполняем п. 1-3 для обеих дат и вычисляем A/ = ABS (fi-F2), где ABS - операция выделения, абсолютного значения, f i - фактор для первого и f2 - для второго числа.

Программа 7.72.

10 PRINTВЫЧИСЛЕНИЕ ПО ДАТЕ ДНЯ НЕДЕЛИ И ЧИСЛА ДНЕЙ МЕ!+;ДУ 28 PRINT ДВУМЯ ДАТАМИ? НАЧИНАЯ С 1582 ГОДА

38 INPUTBBEAHTE ЧИСЛО.МЕСЯЦ..ГОД 11..ИтУ 50 60SUB SesLETR=F

68 IhPUTВВЕДИТЕ- ДЕНЬ.. МЕСЯЦ, ГОД I),M.-V

,8 60SUB 88!PRINT!9.8!ЧИСЛО днЕй N=ABS<F-R)5STnp

88 LETF=365*V+D+31*al-l>

98 IF М<=2 THEN 128

188 LETF=F-IHT(. 4*M+2.3>+INT<V-4>

118 LETF=F-INT<:3-4«aNT*:V-18e>+l>>!60T0 1.38

128 LETF=F+INTC,(V-l>,4)-INT<:3.*aNTaV-l>-18e+l>V4

138 LETW=F+<:-INT<F.7>*7>!pRINTflEHb НЕДЕЛИ

148 IF W=l THEN PRINTВОСКРЕСЕНЬЕ

158 IF W=2 THEN PRINTПОНЕДЕЛЬНИК

168 IF U=3 THEN PRINTВТОРНИК

1,e IF Ui=4 THEN PRINTСРЕДА

180 IF (ii=5 THEN PRINTЧЕТВЕРГ

198 IF U=6 THEN PRINTПЯТНИЦА

200 IF W=e THEN PRINTСУББОТА

218 RETURN!END

2. Вычисляем фактор F для января и февраля (Af=l. 2) по формуле f=365)+D + 31 (M-l)-l-Int ((К-1)/4)--1п( (3/4 (Int (((К-1)/100)--1)),

а для остальных месяцев - по формуле f=365)+D + 31 (Af-l)-lnt(0,4M+2,3)-l-+ Int (К/4)-Int (3/4 (Int (Y/m) + \)),

Пример A. Для 01.05.86 получим день недели - четверг.

Пример В. День начала Великой Отечественной войны - 22.06.41 (воскресенье), окончания - 09.05.45 (среда), число дней между этими датами 1417.

В [8] описаны алгоритмы для перевода дат из одного вида календаря в другой и примеры вычислений такого рода.

10 PRIHT"СУММИРОВАНИЕ ДАННЫХ ТАБЛИЦЫ ПО ГОРИЗОНТАЛЯМ И ВЕРТИКАЛЯМ

20 1НРиТВВЕДИТЕ ЧИСЛО СТРОК И СТОЛБЦОВ MjHMjNsHIM ACHS

30 FOR Х=1 ТО N!LETA*:X>=0!NEXT X!LETT=0

40 FOR V=l TO M!LETS=0!FOR X=l TO H

58 PRINT!3.0!ВВЕДИТЕ V V ,XXs IHPUT"Ii

68 LETS=S+Ii.LETT=T+BsLETft*:x>=A<:X>+BsHEXT X

70 PRIHTI3.0!СУММА VV!S.2!=S!NEXT V

80 FOR X=l TO MsPRINT!3.0!СУММА XX!S.2!=Й<:Х):ЫЕХТ X

98 РР1ЫТ0БЩАЯ СУММА S=T:ENIl



Приложен ие 1

ПОДГОТОВКА к РАБОТЕ СИСТЕМЫ ПОДГОТОВКИ ПРОГРАММ

НА БАЗЕ МИКРОЭВМ ЭЛЕКТРОНИКА-ДЗ-28

1. Включение системы в сеть производится с помощью тумблеров, установленных на микроЭВМ, дисплее и принтере. После включения на клавишном пульте дисплея нужно нажать клавиши ДУП, ЛИН и РЕД (см. рис. 1.6).

2. В отсек магнитофона микроЭВМ вставляется кассета с магнитной лентой, содержащей программу-интерпретатор. Нажатием клавиш пульта микроэвм Р (работа - установка микроЭВМ Б рабочее состояние), С (сброс) и СЛ (считывание с ленты) осуществляется пуск магнитофона и запись программы-интерпретатора в ОЗУ. Если загорается индикатор сбоя записи, нажав клавиши С и СЛ, повторяем запись.

3. Проверяем сумму кодов программы-интерпретатора; нажав клавишу КП (контроль программы) на пульте микроЭВМ. Сумма кодов должна соответствовать указанной на кассете с программой-интерпретатором (она индицируется индикатором микроЭВМ).

4. Запускаем программу-интерпретатор, нажав клавишу S (старт) микроЭВМ. На экране дисплея появляется запись (начальный диалог):

БЕЙСИК ДЗ-28. ВАРИАНТ ЗА СНИМИТЕ КАССЕТУ

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

В КОМПЛЕКС ВХОДИТ ПЕЧАТАЮЩЕЕ УСТРОЙСТВО (О - НЕТ, I - ДА) ?

На этот запрос надо ввести код О или \. Допустим, ввели код 1 к нажали клавишу -ПС. Получим новый запрос:

ВВЕДИТЕ ТИП ПЕЧАТАЮЩЕГО УСТРОЙСТВА

(О - ТПУ, I - УВВПЧ-30-0004, 2 - CONSUL, 3-ROBOTRON)? Теперь нужно набрать код подключенного к микроЭВМ печатающего устройства (принтера) и нажать клавишу ПС. Получаем еще один запрос:

НОМЕРА ВНЕШНИХ ПОДПРОГРАММ?

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

ГОТОВ

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

6. Если нужно ввести программу с магнитной ленты, кассета с ней вставляется в отсек магнитофона и лекта перематывается так, чтобы нужная программа заведомо была в правой части кассеты. На пульте задается команда LOAD ИМЯ, где имя-код программы, и нажимается клавиша ПС. Микроэвм обеспечивает поиск и считывание нужной программы. Если код (имя) программы не указаны, будет считана первая из программ на ленте.

7. Запись программ на магнитную ленту производится командой

SAVE ИМЯ.

8. Если нужно считать или записать не все строки программы, а только от номера НС1 до номера НС2 (или только одну НС), соответствующие номера (разделенные запятой) указываются после команд считывания и записи.

9. Листинг программы можно вывести на экран дисплея, дав команду LIST#О (или при первом включении LIST) н нажав клавишу ПС. Команда LIST#:I обеспечивает распечатку листинга программы принтером. Команды LISTED НС >1 LIST#I НС обеспечивают вывод -(и распечатку) одной строки НС, а команды LIST#0 НС1, ИС2 и L1ST#) НС1, ИС2 -вывод (и распечатку) листинга, начиная со строки НС1 и кончая строкой НС2.

10. Пуск программы с начала обеспечивается вводом команды RUN. а со строки НС - вводом команды GOTO НС. После этого нажимается клавиша ПС.



0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 [71] 72 73 74 75 76 77 78



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