КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Типы команд
Мови символьної обробки. Базуються на математичній логіці. Дозволяють розробляти аналітичні та інтелектуальні системи. Їх називають мовами надвисокого рівня. Приклад - мова Пролог. Об'єктно-орієнтовані мови. Дозволяють створювати програми-додатки для середовища Windows. Програміст створює не тільки текст програми, але і її графічний інтерфейс, використовуючи різні об'єкти, оперуючи їх властивостями і методами, причому цей процес максимально автоматизований. Програмний продукт (проект) в цьому випадку не є єдиною програмою, а являє собою сукупність процедур, пов'язаних з об'єктами і активізується за допомогою певних подій. Приклади об'єктно-орієнтованих мов: Visual Basic, VBA (Visual Basic for Appication), Delphi. Алгоритмічні мови високого рівня, тобто близькі до розмовної англійської мови. Ці мови зручні для програмістів. Практично для кожного блоку алгоритму існує будь-яка команда мови програмування. Завдання програміста, в основному, полягає в описі блок-схеми алгоритму за допомогою відповідних конструкцій мови. Прикладом таких мов є раніше поширені Fortran (Formuler Translater), Algol (Algoritmic Language), і більш сучасні Basic, Pascal, C. Огляд мов програмування 1. Машинні коди - це "мова процесора". Програма складається з команд, записаних в двійковому коді (за допомогою 0 і 1). Кожна команда має дві складові: код операції та адресну частину. Код операції визначає яку команду повинен виконати процесор. Адресна частина вказує де в пам'яті комп'ютера зберігаються операнди і куди помістити результат виконання операції. (Операнди - це дані, над якими виконується операція) В даний час програмісти не користуються безпосередньо машинними кодами при створенні програм, так як це трудомістко і не нагдядно, але, на якій би мові програмування не була написана програма, перед виконанням вона переводиться в машинні коди. Переклад здійснюється автоматично програмою - компілятором (транслятором) або інтерпретатором (для мови Basic). 2. Асемблер - це сімейство мов низького рівня, тобто близьких до машинних кодах. Такий мову можуть використовувати тільки висококваліфіковані програмісти, знайомі з архітектурою процесора. Відмінності асемблера від машинних кодів полягають в тому, що двійковий код операції замінюється літерним позначенням (мнемокода), підказує суть операції, а виконавчі адреси операндів замінюються іменами змінних. Приклад: команда MOV X1, C означає - перемістити вміст комірки пам'яті, позначеної X1, в регістр процесора С. (англійською MOVE означає рух, переміщення) Команды традиционного машинного уровня можно разделить на несколько типов, которые показаны на рис. 4.3.
Команди управління потоком команд В англійській мові для команд безумовного переходу, як правило, використовується термін jump, а для команд умовного переходу - термін branch, хоча різні постачальники необов'язково дотримуються цієї термінології. Можна виділити чотири основних типи команд для управління потоком команд: умовні переходи, безумовні переходи, виклики процедур і повернення із процедур. Частота використання цих команд за статистикою приблизно наступна. У програмах домінують команди умовного переходу. Серед зазначених команд управління на різних програмах частота їх використання коливається від 66 до 78%. Наступні за частотою використання - команди безумовного переходу (від 12 до 18%). Частота переходів на виконання процедур і повернення з них становить від 10 до 16%.
Приклад 1 розв’язання задачі на VBA. Дано дійсне числа А<B,H і ціле число N (> 0). Знайти значення виразу X - X3/(3!) + X5/(5!) -. + (-1)N·X2·N+1/((2·N+1)!) для в порядку убуваня значень x з кроком H. План розв’язання задачі. Необхідно організувати цикл по умові для обчислення значень Х, для кожного з яких здійснювати вивід значення виразу. Для обчислення значення виразу необхідно організувати цикл сумування. Оскільки сумуються вирази із степенями та факторіалами для їх обчислення необхідно побудувати рекурентні формули. Відкриваємо нову книгу в Excel і зберігаємо її. Створюємо шаблон макросу (Сервіс – макрос – макроси – ім’я макросу – IND_test (наприклад) - создать Формуємо сторінку інтерфейсу програми та іменуємо поля вводу:
Призначаємо кнопці обчислень створений макрос. Копіюємо в макрос схему його виконання у вигляді коментарів. Будуємо рекурентну формулу обчислень елементів суми
Формуємо текст програми
Sub IND_test() 'опис змінних Dim A, B, H, x, S, AA As Single, N, i As Integer
'ввід даних 'перевірка коректності даних A = Range("A") B = Range("B") H = Range("H") N = Range("N") 'MsgBox "A=" & A 'MsgBox " B=" & B 'MsgBox " H=" & H 'MsgBox " N=" & N If A > B Then MsgBox "А має бути менше ніж В" ElseIf H < 0 Then MsgBox "H має бути > 0" ElseIf N < 0 Then MsgBox "N має бути > 0" Else ' вхідні дані коректні ' цикл значень x x = B i = 0 Row = 8 'очищення форми виводу Range("A8:D100") = "" ' цикл по значеннях аргументу Do While x > A Cells(Row, 1) = "x" & i & "=" Cells(Row, 2) = x 'формування і вивід результату 'початкове значення суми S = x ' початкове значення доданку AA = 1 For j = 1 To N ' рекурентне обчислення доданку AA = AA * (-x ^ 2) / ((2 * j + 2) * (2 * j + 3)) ' поновлення значення суми S = S + AA Next ' вивід результату для даного аргументу Cells(Row, 3) = "y" & i & "=" Cells(Row, 4) = S ' зміна стрічки виводу Row = Row + 1 ' зміна номеру та значення аргументу i = i + 1 x = x - H Loop End If End Sub
Приклад 2 Дано два цілі числа А і B (А < B). Вивести в порядку спадання всі цілі числа, розташовані між А і B, а також кількість N цих чисел.
Sub diap_zrost() 'опис змінних Dim A, B As Single, x, Row, i As Integer 'ввід даних без прив'язки до конфігурації листка A = Range("A") ' нижня межа B = Range("B") ' верхня межа ' цикл значень x Row = 5 'вибір початкової стрічки виводу i = 0 'початковий номер значення аргументу x = A ' початкове значення аргументу Do While x <= B i = i + 1 'встановлення номера побудованого значення Cells(Row, 1) = "x" & i & "=" 'вивід повідомлення про знач. x Cells(Row, 2) = x 'вивід значення x Row = Row + 1 ' зміна стрічки виводу x = x + 1 Loop Cells(Row, 1) = "Кількість елементів=" & i End Sub
Sub diap_spad() 'опис змінних Dim A, B As Single, x, Row, i As Integer 'ввід даних без прив'язки до конфігурації листка A = Range("A") ' нижня межа B = Range("B") ' верхня межа ' цикл значень x Row = 5 'вибір початкової стрічки виводу i = 0 'початковий номер значення аргументу x = B ' початкове значення аргументу Do While x >= A i = i + 1 Cells(Row, 1) = "x" & i & "=" 'вивід повідомлення про значення x Cells(Row, 2) = x 'вивід значення x Row = Row + 1 ' зміна стрічки виводу x = x - 1 Loop Cells(Row, 1) = "Кількість елементів=" & i End Sub
Sub Och() 'очищення форми виводу Range("A4:D100") = "" End Sub
Sub diap() 'опис змінних Dim A, B As Single, x, Row, i As Integer
'ввід даних 'перевірка коректності даних A = Range("A") B = Range("B")
If A > B Then MsgBox "А має бути менше ніж В"
Else ' вхідні дані коректні ' цикл значень x ' виділення цілої частини числа В x = B \ 1 ' при округленні B до більшого зменшуємо x If x > B Then x = x - 1 i = 0 Row = 5 'очищення форми виводу Range("A4:D100") = "" ' цикл по значеннях аргументу Do While x > A Cells(Row, 1) = "x" & i & "=" Cells(Row, 2) = x ' зміна стрічки виводу Row = Row + 1 ' зміна номеру та значення аргументу i = i + 1 x = x - 1 Loop End If Cells(Row, 1) = "Кількість елементів=" & i
End Sub
Приклад 3 Даний масив розміру N. Знайти його середнє значення
Sub Factor() Dim N, i As Integer Dim F0, F1 As Double ' ввід розмірності масиву N = Range("N") ' очищення області виводу For i = N + 4 To 40 Cells(i, 1) = "" Cells(i, 2) = "" Next F0 = 1 'попереднє значення факторіала For i = 1 To N F1 = F0 * i F0 = F1 Next 'вивід значення факторіала Cells(5 + N, 1) = "N! = " Cells(5 + N, 2) = F1 End Sub Sub Dobutok() Dim A(), N, i, D As Integer ' ввід розмірності масиву N = Range("N") ' відведення пам'яті під масив ReDim A(N) ' очищення області виводу For i = N + 4 To 40 Cells(i, 1) = "" Cells(i, 2) = "" Next ' присвоєння значень елементам масиву For i = 0 To N - 1 A(i) = Cells(4 + i, 1) Next D = 1 'попереднє значення добутку For i = 0 To N - 1 D = D * A(i) Next 'вивід значення добутку Cells(5 + N, 1) = "Добуток елементів масиву = " Cells(5 + N, 2) = D End Sub Sub SumMas() Dim A(), i, S As Integer ' ввід розмірності масиву N = Range("N") ' відведення пам'яті під масив ReDim A(N) ' очищення області виводу For i = N + 4 To 40 Cells(i, 1) = "" Cells(i, 2) = "" Next ' присвоєння значень елементам масиву For i = 0 To N - 1 A(i) = Cells(4 + i, 1) Next ' сума елементів масиву S = 0 For i = 0 To N - 1 S = S + A(i) Next Cells(5 + N, 1) = "Cума елементів массиву=" Cells(5 + N, 2) = S End Sub Sub SumKvElMas() Dim A(), i, El, S As Integer ' ввід розмірності масиву N = Range("N") ' відведення пам'яті під масив ReDim A(N) ' очищення області виводу For i = N + 4 To 40 Cells(i, 1) = "" Cells(i, 2) = "" Next ' присвоєння значень елементам масиву For i = 0 To N - 1 A(i) = Cells(4 + i, 1) Next ' сума елементів масиву S = 0 For i = 0 To N - 1 El = A(i) S = S + El * El Next Cells(5 + N, 1) = "Cума квадр. елем. массиву=" Cells(5 + N, 2) = S End Sub Sub AvgMas() Dim A(), i, S As Integer, AvgMas As Single ' ввід розмірності масиву N = Range("N") ' відведення пам'яті під масив ReDim A(N) ' очищення області виводу For i = N + 4 To 40 Cells(i, 1) = "" Cells(i, 2) = "" Next ' присвоєння значень елементам масиву For i = 0 To N - 1 A(i) = Cells(4 + i, 1) Next ' сума елементів масиву S = 0 For i = 0 To N - 1 S = S + A(i) Next ' середнє значення елементів масиву AvgMas = S / N Cells(5 + N, 1) = "Середнє значення массиву=" Cells(5 + N, 2) = AvgMas End Sub
Приклад 4 Даний масив розміру N. Знайти його максимальний елемент
Sub MaksElMas() Dim A(), i, kmax, Amax As Integer
N = Range("N") ReDim A(N) For i = N + 4 To 40 Cells(i, 1) = "" Cells(i, 2) = "" Next For i = 0 To N - 1 A(i) = Cells(4 + i, 1) Next kmax = 0 Amax = A(0) For i = 0 To N - 1 If A(i) > Amax Then Amax = A(i) kmax = i End If Next Cells(5 + N, 1) = "Максимальний елемент=" & Amax Cells(6 + N, 1) = "Номер максимального елемента=" & kmax + 1 End Sub
Sub MaksParElMas() Dim A(), i, kmax, Amax As Integer
N = Range("N") ReDim A(N) For i = N + 4 To 40 Cells(i, 1) = "" Cells(i, 2) = "" Next For i = 0 To N - 1 A(i) = Cells(4 + i, 1) Next kmax = 0 i = 0 Do If kmax = 0 Then If A(i) Mod 2 = 0 Then Amax = A(i) kmax = i End If Else If A(i) Mod 2 = 0 Then If A(i) > Amax Then Amax = A(i) kmax = i End If End If End If i = i + 1 Loop While i < N Cells(5 + N, 1) = "Максимальний елемент=" & Amax Cells(6 + N, 1) = "Номер максимального елемента=" & kmax + 1 End Sub
Приклад 5 Даний масив розміру N. Знайти кількість його проміжків монотонності (тобто ділянок, на яких його елементи зростають або убувають) Sub FindInterval() Dim A(), i, kZrost, kSpad As Integer, fZrost, fSpad As Boolean
' ввід розмірності масиву N = Range("N") ' відведення пам'яті під масив ReDim A(N) ' очищення області виводу For i = N + 4 To 40 Cells(i, 1) = "" Cells(i, 2) = "" Next ' присвоєння значень елементам масиву For i = 0 To N - 1 A(i) = Cells(4 + i, 1) Next ' присвоєння початкових значень ознакам та кількостям інтервалів монотонності fZrost = False kZrost = 0 fSpad = False kSpad = 0 For i = 0 To N - 2 If A(i) < A(i + 1) And Not fZrost Then 'відкриття інтервалу зростання fZrost = True kZrost = kZrost + 1 fSpad = False ElseIf A(i) > A(i + 1) And Not fSpad Then 'відкриття інтервалу спадання fSpad = True kSpad = kSpad + 1 fZrost = False Else ' значення лементів масиву рівні ' закриття ынтервалів зростання та спадання fSpad = False fZrost = False End If Next Cells(5 + N, 1) = "Кількість інтервалів монотонності" Cells(6 + N, 1) = "K зростання=" Cells(6 + N, 2) = kZrost Cells(7 + N, 1) = "K спадання=" Cells(7 + N, 2) = kSpad End Sub
Фінансовий аналіз діяльності підприємства
Поточний бухгалтерський облік згідно балансового принципу можна розділити на два етапи: порівняння прибутків на цей період і витрат, пов’язаних з отриманням цих прибутків. Концепція порівняння прибутку з витратами може здатися очевидною, але в ній є деякі нюанси Припустимо, ви купуєте запчастини для автомобіля використовуваного фірмою В січні ви платите за них $440. Тоді ж, в січні, ви повністю списуєте цих $440 (тобто вносите їх у витратну частину як витрати, які ви понесли впродовж цього місяця). Використовуючи цей автомобіль, ви отримуєте прибуток або ефективніше управляєте виробництвом не лише і січні, але і впродовж подальших одинадцяти місяців року. Поточний ух облік дозволяє розподілити затрати на використання обладнання рівномірно на всі місяці року і порівнювати прибутки, отримані від використання автомобіля з витратами на запчастини. Прибуток тут обраховується коли зусилля затрачені на виробництво продукту окупилися і є впевненість в тому, що клієнти оплатять рахунки, а фактичне поступлення коштів розглядається як технічна деталь (баланс і фінансовий звіт за період). Фінансові звіти показують зв’язок між доходами і витратами компанії (тобто рентабельність) в даний момент часу. Балансові звіти необхідні для оцінки зв’язку між активами компанії та її заборгованостями в даний момент часу. Связь между активами компании и ее задолженностями (т.е. ее стоимость) в данный момент времени. Факт отримання прибутку не гарантує платоспроможності компанії. Для аналізу платоспроможності використовують метод обліку грошових коштів в звіті про рух грошових коштів. Тут дохід фіксується в той момент, когда отримані гроші, а витрати – коли гроші витрачені. («Оборотные средства и апатит движения денежных средств» с.110) Аналіз балансу Аналіз балансу досліджує зв’язок між елементами фінансового та балансового звіту а також їх зміни в часі. Аналіз фінансових коефіцієнтів розглядає відношення між елементами фінансового звіту. Бухгалтерський звіт як правило має стандартну форму. В найпростішому випадку вона може бути наступною
Зразок фінансового звіту
При аналізі фінансового звіту зручно ділити його показники на валовий обсяг продаж.
При формуванні такого звіту по видах діяльності можна аналізувати вклад кожного із видів в підсумкові показники компанії. Такий же підхід можна застосувати для аналізу балансу. Порівняння фінансових звітів за два періоди дозволяє оцінити динаміку їх зміни: Оцінки абсолютних та відносних змін можна застосовувати і в аналізі балансу Важливим є аналіз відхилень в виконанні планів – із пошуком причин їх невиконання - аналіз відхилень факт-план - аналіз відношень фактичних показників до планових Планування фінансового звіту при зміні кількості працюючих. Обгрунтувати залежності обсягів статей від чисельності працюючих – формується прогноз показників при зміні кількості працюючих. Оборотний кошти і аналіз руху грошових коштів Оборотний капітал включає: товано-матеріальні запаси, дебіторську заборгованість при передачі виробів в реалізацію, грошові кошти від проданих товарів, короткотермінові зобов’язання, які необхідно оплатити, зокрема виплата заробітної плати. Фінансовий звіт та баланс компанії дозволяють встановити її оборотний капітал
Оборотний капітал – це різниця між поточними активами та пасивами
Зразок звіту про рух грошових коштів
Группа фінансових коефіцієнтів аналізуються щоквартально на окремих документах: Показники прибутковості Дохід на акцію Коефіцієнт валового прибутку Коефіцієнт чистого прибутку Іт.д. Методи прогнозування фінансового стану При складанні плану фінансової діяльності необхідно враховувати наступні три найважливіші фактории: - економічне середовище, що склалося історично та тенденції зміни ринку - інформація про можливі зміни в конкурентному середовищі - основні цілі бізнесу (розширення або скорочення виробництва по окремих продуктах) - доступні показники ефективності роботи найближчих конкурентів При плануванні будь-яких рішень в структурі виробництва або врахуванні впливу можливих радикальних змін економічного середовища зміну економічного стану підприємства можна оцінити за допомогою внесення змін у відсоткове представлення фінансового звіту та генерацію на їх основі абсолютних показників. Наслідки таких змін доцільно аналізувати за допомогою порівняльного представлення фінансового звіту та балансу за два базових та один плановий період. На основі планових річних показників фінансового звіту та поквартальній або помісячній сезонностей продаж можна спланувати бюджет компанії на наступний період помісячно або поквартально. При цьому можна планувати рішення по підвищенню ритмічності роботи підприємства. Звичайно застосовують три види бюджетів: - оперативні бюджети доходів та витрат (на основі фінансового звіту), - касові бюджети для планування можливих запозичень на відповідні періоди, - бюджети капіталовкладень на певні періоди. При плануванні капіталовкладень доцільно використати багатолітні бізнес-плани та попередні звіти про фінансову діяльність. Довготривалі прогнози чинять величезний вплив на поточні фінансові плани. Практичні методи прогнозування: - прогнозування на основі ковзаючого середнього (при врахуванні сезонності) – виявлення тенденції в зашумлених даних, - регресійне прогнозування – дозволяє точніше виявляти тенденції та розповсюджувати їх на майбутні періоди; - експоненційне згладжування для врахування можливих поточних коливань від регресійного прогнозу, тобто адаптації прогнозу до мінливості середовища та вчасногї сигналізації про перегляд регресійного прогнозу. При наявності сезонності доцільно застосувати адаптаційне ковзаюче середнє із його врахуванням. - метод Бокса-Дженкінса – інтегральний метод, що поєднує авторегресію в сусідніх точках спостереження, доготермінову тенденцію, ковзаюче середнє для врахування можливих поштовхів регресійного прогнозу, сезонність. Для використання цього методу необхідно нагромадити хоча б 50-100 попередніх спостережень.
Дата добавления: 2014-12-23; Просмотров: 373; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |