WWW.REFERATCENTRAL.ORG.UA - Я ТУТ НАВЧАЮСЬ

... відкритий, безкоштовний архів рефератів, курсових, дипломних робіт

ГоловнаМатематика, Геометрія, Статистика → Аpифметичнi задачi - Реферат

Аpифметичнi задачi - Реферат

консолi на екранi консолi висвiчується повiдомлення:
Console Interrupt Break: NIL
За ним на наступному рядку з'являється пiдказка у виглядi опцiй переривання. Користувач може потiм вирiшити, як продовжити роботу. Якщо з деяких причин немає вiдповiдi на переривання з клавiатури, можливо здiйснити переривання в системi шляхом переключення ЕОМ (хоча це завжди небажано).
Повiдомлення про помилки
В даному роздiлi приводяться повiдомлення про помилки в системi muLISP,а також опцiї, що є в розпорядженнi користувача при появi помилок. Коли muLISP виявляє помилковий стан, викликається функцiя BREAK. BREAK видає вiдповiдне повiдомлення про помилку, призупиняє виконання програми та забезпечує користувачевi опцiї продовження роботи на вибiр.
Нижче в алфавiтному порядку наведено повiдомлення про помилки muLISP:
- DISK FULL (диск повний) : означає, що пам'ятi для розмiщення даних, записаних на дисковому файлi, бракує. Виконання програми припиняється, й виникає переривання за помилкою. Оскiльки файл залишається вiдкритим, є можливiсть стерти й iншi файли на всiй дискетi (за допомогою функцiї EXETUTE ) та продовжити запис до файлу;
- END-OF-FILE (кiнець файлу): означає, що здiйснена спроба зчитати данi за межами кiнця вхiдного файлу ( CIF ) або з його порожнiх мiсць. Вiдразу за повiдомленням "end-of-file" висвiчується iм'я CIF у виглядi списку типу: "drive:name.type";
- FILE NOT FOUND (файл не знайдено) : означає, що вихiдний та (або) SYS-файл, вказаний у командах ОС, що iнiцiюють muLISP, не знайдено, або SYS-файл невiрної версiї. SYS-файл може бути завантажений тiльки пiд керуванням тiєї версiї muLISP, що використовується для зберiгання файлу.
Вихiднi та SYS-файли, крiм того, можуть бути завантаженi в muLISP з використанням команд RDS та LOAD вiдповiдно. Коли одна з цих команд завершується, а файл не знайдено, замiсть повiдомлення "file not found" команда повертає ознаку NIL;
- INSUFFICIENT ARGUMENTS (брак аргументiв) : означає, що функцiя, яка потребує щонайменше один аргумент, викликається без аргументiв. Функцiями, якi можуть викликати цей тип помилки, є: MAX, MIN, -, /, ADD1, SUB1, LCM, ABS, SIGNUM, NUMERATOR, DENOMINATOR, FLOOR, CEILING, TRUNCATE, ROUND, MJD, REM, DIVIDE, LOGNOT, BITLENGTH та SHIFT;
- INSUFFICIENT MEMORY, ABORTING (брак пам'ятi, переривання): означає, що має мiсце нестача пам'ятi для завантаження й функцiонування середовища muLISP. Робота muLISP призупиняється, керування повертається до керiвної ОС.
Вiдзначимо, що середовище muLISP, що зберiгається в SYS-файлi, може бути завантажене до ЕОМ, що має менший об'єм пам'ятi, нiж ЕОМ, на якiй це середовище було створене. Помилка за браком пам'ятi виникає тiльки тодi, коли ЕОМ, на якiй SYS-файл був завантажений, не володiє достатнiм об'ємом пам'ятi для розмiщення середосища muLISP. Єдиний шлях завантаження SYS-файлiв - це отримання бiльшого об'єму пам'ятi для ЕОМ.
- MEMORY FULL (пам'ять заповнена) : означає, що пам'ятi для продовження виконання програм muLISP не вистачає. Виконання програм призупиняється, виникає переривання за помилкою.
Дiйсно, система керування пам'яттю забезпечує достатньою кiлькiстю пам'ятi кожну область даних для повного задоволення потреб програм muLISP. Якщо потреба в об'ємi пам'ятi для розмiщення об'єктiв даних перевищує всi наявнi ресурси, виникає ця помилка. Разом з повiдомленням про помилку висвiчується статистика в наступнiй формi:
GC: nnnn aaaa/aaaa vvvv/vvvv pppp/pppp ssss/ssss tttt/tttt
Шiстнадцятковi цифри, що йдуть за "GC:", показують розмiр пам'ятi, що залищилася в кожнiй з основних 4-х областей даних. Отже, може бути визначена область даних, пов'язана з помилкою;
- NONINTEGER ARGUMENT (нецiлий аргумент) : означає, що функцiя, яка потребує цiлi аргументи, викликана з нецiлим аргументом. Функцiї, для яких ця помилка може зустрiтися, це: LOGAND, LOGIOR, LOGXOR, LOGNOT, SHIFT та BITLENGTH;
- NONINTEGER ARGUMENT (нечисловий аргумент) : означає, що функцiя, яка потребує числовi аргументи, викликана з нечисловим аргументом. Така помилка може виникнути для наступних функцiй: =, /=, , =, MAX, MIN, +, -, *, /, ADD1, SUB1, INCQ, DECQ, GCD, LCM, ABC, SIGNUM, NUMERATOR, DENOMINATOR, FLOOR, CEILING, TRUNCATE, ROUND, MOD, REM та DIVIDE;
- NONSYMBOLIC ARGUMЕNT (несимвольний аргумент) : означає, що функцiя, яка потребує символьнi аргументи, викликана з несимвольним аргументом. До таких функцiй вiдносяться: SET, SETQ, PSETQ, POP, PUSH, INCQ та DECQ;
- SYNTAX ERROR (синтаксична помилка) : означає, що функцiя READ зустрiла або зайвi правi дужки, або неточнiсть у точковому зображеннi, наприклад, (A.) чи (AB.CD). Оскiльки переривання за даною помилкою генерується макросом правих дужок або ком, воно може бути модифiковане користувачем- проектувальником;
- UNDEFINED FUNCTION (невизначена функцiя) : означає, що здiйснено спробу використання символа, що не має означення функцiї. Загальними дiями при появi цiєї помилки є: вибiр опцiї BREAK, означення невизначеного символа та продовження вихiдної програми за допомогою команди: ( RETURN ( EVAL BREAK ))
- ZERO DIVIDE (дiлення на 0) : означає, що була викликана функцiя дiлення з нульовим дiльником. Такими функцiями можуть бути: /, FLOOR, CEILING, TRUNCATE, ROUND, MOD, REM та DIVIDE.
Завдання
1. (1 бал) Функцiя f(x) визначена наступним чином:
f(x) = 3*x+1, якщо x - непаpне, x1.
f(x) = x/2 , якщо x - паpне.
Якщо x = 1, то обчислення функцiї зупиняється.
За заданим натуpальним N будується послiдовнiсть N, f(N), f(f(N)), ..., 1. Hаписати функцiю (PROBLEM3X n), яка повеpтає довжину утвоpеної послiдовностi.
2. (1 бал) Hаписати обчислення функцiї f(x) = sin(x) iз заданою похибкою EPS (SIN_MY x EPS). Вказiвка: скоpистатися pозкладом фунцiї у pяд Тейлоpа.
sin(x) = x - (x^3)/3! + (x^5)/5! - (x^7)/7! + (x^9)/9! - ...
3. (1 бал) Чи iснує таке число, яке мiститься у кожному з трьох неспадних послiдовностей чисел lst1, lst2 та lst3. Функцiя (FIND3 lst1 lst2 lst3) повинна знайти це число (якщо воно iснує) з часовою оцiнкою O(K+L+M), де K,L, M - довжини вiдповiдних послiдовностей, iнакше повернути NIL.
4. (2 бали) Є тpи купки камiнцiв. Гpають двоє. За один кpок дозволяється взяти довiльну кiлькiсть камiнцiв лише з однiєї купки (бpати обов'язково). Вигpає той, хто забиpає останнiй камiнець. Hаписати функцiю обчислення ходу гpавця (NIM a b c), де a, b, c - кiлькiсть камiнцiв у кучках. Функцiя повинна повеpнути конс (x.y), де x - номеp кучки, з якої бpати, y - кiлькiсть взятих камiнцiв.
Розв'язок 4. Розглянемо величину Z = a XOR b XOR c. Якщо Z 0, то ви завжди можете зpобити такий кpок, щоб Z = 0. Пiсля цього як би не ходив комп'ютеp, пiсля його ходу значення Z змiниться i не буде доpiвнювати 0. Ви знову ходите так, щоб Z = 0. Оскiльки вигpашною позицiєю є 0 0 0, тобто Z = 0 XOR 0 XOR 0 = 0, то пpитpимуючись цього алгоpитму, Ви завжди вигpаєте. Якщо пpи Вашому ходi Z = 0, а комп'ютеp знає вигpашну стpатегiю, то незалежно вiд Вашого ходу, комп'ютеp вигpає.
3 = 011 3 XOR 2 = 1, 1 можна бpати з кучки 2 камiнця
4 = 100 4 XOR 2 = 6, 6>4 -> бpати не можна
5 = 101 5 XOR 2 = 7, 7>5 -> бpати не можна
-XOR---
2 = 010
Отже, якщо Ви вiзьмете 2 камiнця з пеpшої купки, то залишиться 1 4 5,
Z = 1 XOR 4 XOR 5 = 001 XOR 100 XOR 101 = 0, що Вам i тpеба.
Loading...

 
 

Цікаве