Банк рефератов содержит более 364 тысяч рефератов, курсовых и дипломных работ, шпаргалок и докладов по различным дисциплинам: истории, психологии, экономике, менеджменту, философии, праву, экологии. А также изложения, сочинения по литературе, отчеты по практике, топики по английскому.
Полнотекстовый поиск
Всего работ:
364139
Теги названий
Разделы
Авиация и космонавтика (304)
Административное право (123)
Арбитражный процесс (23)
Архитектура (113)
Астрология (4)
Астрономия (4814)
Банковское дело (5227)
Безопасность жизнедеятельности (2616)
Биографии (3423)
Биология (4214)
Биология и химия (1518)
Биржевое дело (68)
Ботаника и сельское хоз-во (2836)
Бухгалтерский учет и аудит (8269)
Валютные отношения (50)
Ветеринария (50)
Военная кафедра (762)
ГДЗ (2)
География (5275)
Геодезия (30)
Геология (1222)
Геополитика (43)
Государство и право (20403)
Гражданское право и процесс (465)
Делопроизводство (19)
Деньги и кредит (108)
ЕГЭ (173)
Естествознание (96)
Журналистика (899)
ЗНО (54)
Зоология (34)
Издательское дело и полиграфия (476)
Инвестиции (106)
Иностранный язык (62791)
Информатика (3562)
Информатика, программирование (6444)
Исторические личности (2165)
История (21319)
История техники (766)
Кибернетика (64)
Коммуникации и связь (3145)
Компьютерные науки (60)
Косметология (17)
Краеведение и этнография (588)
Краткое содержание произведений (1000)
Криминалистика (106)
Криминология (48)
Криптология (3)
Кулинария (1167)
Культура и искусство (8485)
Культурология (537)
Литература : зарубежная (2044)
Литература и русский язык (11657)
Логика (532)
Логистика (21)
Маркетинг (7985)
Математика (3721)
Медицина, здоровье (10549)
Медицинские науки (88)
Международное публичное право (58)
Международное частное право (36)
Международные отношения (2257)
Менеджмент (12491)
Металлургия (91)
Москвоведение (797)
Музыка (1338)
Муниципальное право (24)
Налоги, налогообложение (214)
Наука и техника (1141)
Начертательная геометрия (3)
Оккультизм и уфология (8)
Остальные рефераты (21692)
Педагогика (7850)
Политология (3801)
Право (682)
Право, юриспруденция (2881)
Предпринимательство (475)
Прикладные науки (1)
Промышленность, производство (7100)
Психология (8692)
психология, педагогика (4121)
Радиоэлектроника (443)
Реклама (952)
Религия и мифология (2967)
Риторика (23)
Сексология (748)
Социология (4876)
Статистика (95)
Страхование (107)
Строительные науки (7)
Строительство (2004)
Схемотехника (15)
Таможенная система (663)
Теория государства и права (240)
Теория организации (39)
Теплотехника (25)
Технология (624)
Товароведение (16)
Транспорт (2652)
Трудовое право (136)
Туризм (90)
Уголовное право и процесс (406)
Управление (95)
Управленческие науки (24)
Физика (3462)
Физкультура и спорт (4482)
Философия (7216)
Финансовые науки (4592)
Финансы (5386)
Фотография (3)
Химия (2244)
Хозяйственное право (23)
Цифровые устройства (29)
Экологическое право (35)
Экология (4517)
Экономика (20644)
Экономико-математическое моделирование (666)
Экономическая география (119)
Экономическая теория (2573)
Этика (889)
Юриспруденция (288)
Языковедение (148)
Языкознание, филология (1140)

Реферат: Функції рядків

Название: Функції рядків
Раздел: Рефераты по астрономии
Тип: реферат Добавлен 18:15:48 15 января 2011 Похожие работы
Просмотров: 2 Комментариев: 14 Оценило: 2 человек Средний балл: 5 Оценка: неизвестно     Скачать

Реферат на тему:

Функції рядків


Функції рядків призначені для роботи з текстами. Вони забезпечують виконання великої кількості операцій над текстовими данними — порівняння, пошуку та перетворення P - імен символів та чисел.

1. UNPACK < atom >. Повертає список символів, P - імена кожного з яких складаються з символів атома <atom>. Якщо <atom> не є атомом, повертається NIL.

$ (UNPACK ‘abcde)$ (UNPACK 216)$ (SETQ *PRINT-BASE 16*)

(a b c d e)(\2 \1 \6)$ (UNPACK 216)

(\0 \D \8)

2. PACK <list>. Повертає символ, P - ім’я якого складіється зі счеплених P - імен атомів у списку <list>. Для визначення P - імен чисел використову- ється поточна система числення. Функція PACK завжди повертає символ, навіть якщо P - ім‘я складається тільки з однозначних чисел.

$ (PACK ‘(a b c d e)$ (PACK ‘(\7 \3 \1)$ (PACK ‘(Q \7 \A \1))

abcde|731|Q7A1

3. PACK* <atom1> ... <atomN>. Повертає символ, P-ім’я якого складається зі счеплених P-імен атомів. Ця функція є вузькою версією PACK, оскільки вона працює не зі списком атомів, а з будь-якою кількістю атомів.

$ (PACK* ‘a ‘b ‘c)$ (PACK 4 ‘QW ‘T)

ABC|4QWT|

4. CHAR <atom> <n>. Якщо <atom> — символ або число, а <n> — невід’ємне ціле число, функція CHAR повертає символ, P - ім’я якого є n-ий символ P - імені <atom>, причому відлік символів починається з 0. Функція повертає NIL якщо <n> не ноль і не додатнє ціле число, або якщо P - ім’я атома <atom> містить меньш ніж n символів.

(DEFUN CHAR (atm n)$ (CHAR ‘ABCDE 3)$ (CHAR 12345 0)

((ATOM atm)D\1

(NTH n (UNPACK atm)) ) )

5. SUBSTRING <atom> <n> <m>. Якщо <atom> — символ або число, <n> та <m> — невід’ємні цілі, nЈm, то функція SUBSTRING повертає символ, P - ім’я якого складається з символів P - імен атома починаючи з n-ого до m-ого, причому відлік символів починається з 0. Якщо nЈ0, то вважається що n=0. Якщо m не вказано, або меньше за 0 чи більше за кількість символів в P - імені атома, m вважається рівним кількості символів в P - імені атома. Якщо n>m повертається NIL.

(DEFUN SUBSTRING (atm n m)

((AND (ATOM atm) (INTEGERP n))

((MINUSP n) (SUBSTRING atm 0 m))

(PACK (SUBLIST (UNPACK atm) n m))

$ (SUBSTRING ‘ABCDEFG 2 4)$ (SUBSTRING ‘ABCDEFG 3)

CDEDEFG

$ (SUBSTRING 123456 3)$ (SUBSTRING ‘ABCDEFG 0 3)

|456|ABCD

6. STRING<pr> <atom1> <atom2> <flag> , де <pr - будь-який предикат <, >, <=, >=, =, /=. Відбувається лексикографічне порівняння P - імен атомів згідно з предикатом <pr>. Якщо флаг дорівнює NIL, порівняння відбувається з врахуванням регістру. Якщо флаг не задано, він вважається рівним T. Функція STRING= повертає або T або NIL. Інші функції повертають або NIL, або номер позиції першого символа, починаючи з якого P - імена не співпадають.

$ (STRING= ‘ABC ‘ABC)$ (STRING ‘ABC ‘ABC NIL)

TT

$ (STRING= ‘Abc ‘AbC)$ (STRING= ‘Abc ‘AbC NIL)

TNIL

$ (STRING= |100| 100)$ (STRING< ‘ABC ‘AZC)

T1

$ (STRING< ‘AZC ‘ABC)$ (STRING>= ‘123 ‘123)

NIL3

7. STRING-UPCASE <atom>. Повертає символ, P - ім’я якого співпадає з P - іменем атома, але всі його літери перетворюються в великі. Якщо <atom> не є атомом, повертається NIL.

$ (STRING-UPCASE “Lisp Is A Language”)$ (STRING-UPCASE ‘(a s d))

|LISP IS A LANGUAGE|NIL

8. STRING-DOWNCASE <atom>. Повертає символ, P - ім’я якого співпадає з P - іменем атома, але всі його літери перетворюються в маленькі. Якщо <atom> не є атомом, повертається NIL.

$ (string-upcase |This is A TEXT|)$ (string-downcase |This is A TEXT|)

|THIS IS A TEXT||this is a text|

$ (STRING-UPCASE ‘i)$ (STRING-DOWNCASE ‘I)

I\i

9. FINDSTRING <atom1> <atom2> <n>. Повертає номер позиції першого входження P - імені атома1 в P - ім’я атома2. Якщо <n> - ноль або додатнє ціле, пошук починається з n-ого символа атома2. Якщо P - ім’я атома1 не знайдено, повертається NIL.

$ (FINDSTRING ‘BC ‘ABCDEFG) (FINDSTRING ‘abc ‘abdeabcde)

1 4

10. PRINT-LENGTH <atom>. Повертає кількість символів в P - імені атома з урахуванням значень контрольних змінних *PRINT-BASE* та *PRINT-ESCAPE*.

$ (DEFUN PRINT-LENGTH (atm) $ (PRINT-LENGTH ‘Mulisp)

((ATOM atm) (LENGTH (UNPACK atm))) 6

$ (PRINT-LENGTH -156) $ (PRINT-LENGTH NIL)

4 3

Приклади

1. Написати функцію, яка для заданого атома знаходить максимальну кількість літер, яка в ньому йде підряд. Повернути конс, який складається з літери та числа. Наприклад, для атома a22eeerty повернути (e . 3).

(DEFUN symmax (atm) $ (symmax ‘a22eeerty)

((NOT (ATOM atm)) NIL) (e . 3)

(SETQ lst (UNPACK atm) endel (ASCII 0) endct 0) $ (symmax ‘nil)

(LOOP (n . 1)

((NULL lst)) $ (symmax 1222334)

(SETQ el (CAR lst) ct 0) (\2 . 3 )

(LOOP

((NOT (EQL (CAR lst) el)))

(POP lst)

(INCQ ct) )

(IF (> ct endct) (SETQ endct ct endel el)) )

(CONS endel endct) )

Робота з файлами

По замовченню за пристрій потокового вводу (CIS - CurrentInputStream) береться консоль.

1. Для читання даних з вхідного потоку використовують функцію READ . Після виконання команди (SETQa (READ)) ви повинні ввести з консолі вираз, який буде прочитано та присвоєно змінній а. При цьому якщо буде введено декілька об’єктів, то змінній а буде присвоєно перший об’єкт. Наприклад, якщо ви введете: asbfgh, то змінна a прийме значення as. Якщо Ви хочете ввести список (складний об’єкт), то його необхідно вводити в круглих дужках: (asdfgh).

2. Функція (CLEAR - INPUT ) чистить буфер вводу. В будь-якому випадку повертається NIL.

3. Функція (READ - LINE ) читає елементи з CIS поки не буде прочитано символ переходу на новий рядок (<return>). Повертається символ, Р-ім’я якого складається з усіх прочитаних символів як ті були розташовані у вхідному рядку, окрім <return>.

4. Функція (READ - CHAR ) читає наступний елемент з CIS та повертає його.

5. Функція (UNREAD - CHAR ) повертає в CIS останній прочитаний символ.

6. Функція (LISTEN ) повертає T якщо CIS не порожній, та NIL якщо ми дійшли до кінця файлу.

7. Функції (OPEN - INPUT - FILE “<name>”) та (CLOSE - INPUT - FILE “<name>”) використовуються для відкриття та закриття файла <name> для вводу.

8. Функції (OPEN - OUTPUT - FILE “<name>”) та (CLOSE - OUTPUT - FILE “<name>”) відповідно відкривають та закривають файл <name> для виводу інформації.

Приклади

1. Надрукувати кількість літер sym в файлі name.

(DEFUN f (name sym) (SETQ a (READ))

(SETQ c 0) (IF (EQL a sym) (INCQ c)) )

(OPEN-INPUT-FILE name) (CLOSE-INPUT-FILE name)

(LOOP c )

((NOT (LISTEN)))

2. Надрукувати файл в оберненому порядку, якщо його елементи є атомами.

(DEFUN rew (in out) (PUSH (READ) temp) )

(OPEN-INPUT-FILE in) (LOOP

(OPEN-OUTPUT-FILE out) ((EQL temp NIL))

(SETQ temp NIL) (WRITE (POP temp))

(LOOP (SPACES 1) )

((NOT (LISTEN))) (CLOSE-INPUT-FILE in)

(CLOSE-OUTPUT-FILE out) )

Завдання

1. Написати функцію (SRT <in> <out>), яка сортує текстовий файл <in> та виводить дані в файл <out>.

2. Написати функції (PRNUM2 num) та (PRNUM16 num), які відповідно друкують введені десяткові числа в двійковому та шістнадцятковому представленні.

3. Згенерувати за даними числом n та символом y список (yyyyyyyyyy .... yyyyyyyy. Кількість літер s в останньому елементі списку дорівнює n.

Відповіді

1. (DEFUN appl (lst1 lst2)

((NULL lst1) (append lst3 lst2))

((NULL lst2) (append lst3 lst1))

((STRING< (CAR lst1) (CAR lst2)) (CONS (CAR lst1) (appl (CDR lst1) lst2)))

(CONS (CAR lst2) (APPL lst1 (CDR lst2))) )

(DEFUN QSORT (lst)

((NULL (CDR lst)) lst)

((NULL (CDDR lst))

((STRING< (CAR lst) (CADR lst)) lst)

(CONS (CADR lst) (CONS (CAR lst) NIL)))

(SETQ tmp1 (SPLIT lst))

(APPL (QSORT tmp1) (QSORT lst)) )

(DEFUN srt (in out)

(OPEN-INPUT-FILE in)

(OPEN-OUTPUT-FILE out)

(SETQ temp NIL)

(LOOP

((NOT (LISTEN)))

(PUSH (READ) temp) )

(setq temp1 (qsort temp))

(print temp1)

(CLOSE-INPUT-FILE in)

(CLOSE-OUTPUT-FILE out) )

2. (DEFUN prnum2 (num)

(SETQ res NIL)

(LOOP

((= num 1))

(SETQ tmp (DIVIDE num 2))

(SETQ num (CAR tmp))

(PUSH (CDR tmp) res) )

(PUSH 1 res)

(PACK res) )

(DEFUN prnum16 (num)

(SETQ res NIL)

(LOOP

((< num 16))

(SETQ tmp (DIVIDE num 16))

(SETQ num (CAR tmp) tmp (CDR tmp))

(IF (>= tmp 10) (SETQ tmp (ASCII (+ (- 65 10) tmp))))

(PUSH tmp res) )

(IF (>= num 10) (SETQ num (ASCII (+ (- 65 10) num))))

(PUSH num res)

(PACK res) )

3. ; (m1 y 7 y) -> (y yy yyy yyyy yyyyy yyyyyy yyyyyyy)

(DEFUN m1 (sym n list)

((ZEROP n) NIL)

(CONS (APPEND sym list) (m1 sym (- n 1) (PACK* sym list))) )

Оценить/Добавить комментарий
Имя
Оценка
Комментарии:
Привет студентам) если возникают трудности с любой работой (от реферата и контрольных до диплома), можете обратиться на FAST-REFERAT.RU , я там обычно заказываю, все качественно и в срок) в любом случае попробуйте, за спрос денег не берут)
Olya22:21:07 28 августа 2019
.
.22:21:06 28 августа 2019
.
.22:21:05 28 августа 2019
.
.22:21:05 28 августа 2019
.
.22:21:04 28 августа 2019

Смотреть все комментарии (14)
Работы, похожие на Реферат: Функції рядків

Назад
Меню
Главная
Рефераты
Благодарности
Опрос
Станете ли вы заказывать работу за деньги, если не найдете ее в Интернете?

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



Результаты(235644)
Комментарии (3205)
Copyright © 2005-2019 BestReferat.ru bestreferat@gmail.com реклама на сайте

Рейтинг@Mail.ru