ПРОГРАМУВАННЯ

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Кафедра ЕОМ

Інформація про роботу

Рік:
2012
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Програмування
Група:
КІ

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” Кафедра ЕОМ / ЗВІТ до лабораторної роботи № 4 з дисципліни " Системне програмування" Львів – 2012 Тема: ПРОГРАМУВАННЯ СПІВПРОЦЕСОРА З ВИКОРИСТАННЯМ КОМАНД ОБЧИСЛЕННЯ ТРАНСЦЕНДЕНТНИХ ФУНКЦІЙ ТА РЕАЛІЗАЦІЯ РОЗГАЛУЖЕНЬ ПРИ ПОРІВНЯННІ ДАНИХ ДІЙСНОГО ТИПУ. Мета: познайомитися з принципами роботи математичного співпроцесора і використати його можливості для обчислення трансцендентних функцій та реалізації розгалужень. ЗАВДАННЯ 1. Створити *.exe програму, яка реалізовує обчислення, заданого варіантом виразу. Вхідні дані повинні вводитися з клавіатури, під час виконання програми в десятковому форматі зі знаком. Програма повинна складатися з двох модулів: головний модуль – створюється мовою С і має забезпечити ввід необхідних даних, виклик асемблерної процедури для обчислення виразу та вивід результату обчислень; модуль безпосередніх обчислень – здійснює всі необхідні арифметичні дії з використанням математичного співпроцесора; 2.Переконатися у правильності роботи кожного модуля зокрема та програми загалом. 3.Скласти звіт про виконану роботу з приведенням тексту програми та коментарів до неї. 4.Дати відповідь на контрольні запитання. ВАРІАНТИ ЗАВДАНЬ 5    Код програми: Main.cpp #include <stdio.h> #include <math.h> extern "C" void calc(void); extern "C" { float X=0; float A=0; float Cv=0; float D=0; float Y=0; }; int main() { printf("Please, enter X:\n"); printf("A = "); scanf_s("%f",&A); printf("C = "); scanf_s("%f",&Cv); printf("D = "); scanf_s("%f",&D); if (Cv>D){ if(log(1-A/4)<=0){ printf("ERROR: Ln <=0 ne dopystumuy\n"); } else{ calc(); printf("X = %.4f\n",X); } } if (D>=Cv){ if(Cv-tan(A/2)==0){ printf("ERROR: Dilennya na 0 nemojlyve!\n"); } else{ calc(); printf("X = %.4f\n",X); } } return 0; }  Calc.asm .586 .model flat,C .data EXTRN X:DWORD, A:DWORD, Cv:DWORD, D:DWORD .data tmp dd 0 .code calc PROC finit fld Cv fcomp D fstsw ax sahf ja _bilshe jmp _menshe _bilshe: mov tmp,2 fild tmp fld Cv fmul fld D mov tmp,23 fild tmp fdiv fsub FLDLN2 mov tmp,1 fild tmp fld A mov tmp,4 fild tmp fdiv fsub FYL2X fdiv jmp _kinets _menshe: mov tmp,4 fild tmp fld Cv fmul fld D fadd mov tmp,1 fild tmp fsub fld Cv fld A mov tmp,2 fild tmp fdiv fptan fmul fsub fdiv _kinets: fstp X ret calc endp end     Результат виконання: C>D / C<=D / Висновок: На даній лабораторній роботі оволодів навиками створення програм, частини яких написані різними мовами програмування Засвоїв правила взаємодії різних модулів.
Антиботан аватар за замовчуванням

11.12.2012 20:12-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!