{
case'a':where=B;break;
default:;
}
break;
Case B:switch(current)
{
case'a':;break;
case'b':where=C;break;
default:where=A;
}
break;
Case C:switch(current)
{
case'c':where=D;break;
case'a':where=B;break;
default:where=A;
}
break;
Case D:switch(current)
{
case'd':
printf("входить\n");
stop=true;
break;
case'a':where=B;break;
default:where=A;
}
}
}
if(!stop)printf("не входити");
}
Завдання для самостійної роботи
1. Побудувати СА, що розпізнає мову L. Алфавіт А = { а, b, c }:
а) aÎ L тоді й тільки тоді, коли в слові a зустрічається не більше трьох літер aпоспіль;
б) aÎ L тоді й тільки тоді, коли в слові a поєднання ab зустрічається не більше двох разів;
в) aÎ L тоді й тільки тоді, коли в слові a міститься підслово bbсс;
г) aÎ L тоді й тільки тоді, коли слово a містить парну кількість літер;
д) aÎ L тоді й тільки тоді, коли за наявності в слові a літери а зустрічається також і літера b.
2. Написати програму для реалізації СА з прикладу 1.
3. Написати програму, що перевіряє, чи є слово X підсловом слова Y.
4. Написати програму, що перевіряє, чи є у вхідному слові фрагмент вигляду а? b.
5. Написати програму, що перевіряє, чи є у вхідному слові зразок ab * cd (* позначає входження будь-якого слова).
|
|
6. Дано список слів X 1 ,...,Xk і слово Y. Визначити, чи входить принаймні одне зі слів Xi до слова Y як підслово. Кількість дій не має перевищувати константи, помноженої на сумарну довжину всіх слів (зі списку, у якому відбувається пошук).
7. Написати програму для реалізації СА, зображеного діаграмою станів, який розпізнає числа з плаваючою точкою.
СПИСОК ЛІТЕРАТУРИ
Основи сучасного програмування Основи сучасного програмування Основи сучасного програмування Основи сучасного програмування Основи сучасного програмування Основи сучасного
1. Бабэ Б. Просто и ясно о Borland С++. – 3-е изд., доп. – М.: БИНОМ, 1996.
2. Березин Б., Березин С. Начальный курс C и C++. – М.: ДИАЛОГ-МИФИ, 1999.
3. Биллиг В., Мусикаев И. Visual C++ 4. Книга для программистов. – М.: Русская редакция, 1996.
4. Вирт Н. Алгоритмы + структуры данных = программы. – М.: Мир, 1985.
5. Голуб А. C и C++. Правила программирования. – М.: Бином, 1996.
6. Грегори К. Использование Visual C++ 5: Спец. издание. – К.; М.: Диалектика, 1997.
7. Дэвис С. C++ для "чайников". – К.: Диалектика, 1996.
8. Касаткин А. Профессиональное программирование на языке Си. Управление ресурсами: Справ. пособие. – Минск: Вышэйшая школа, 1992.
9. Керниган Б., Ритчи Д. Язык программирования Си. – 2-е изд., пеpеpаб. и доп. – М.: Финансы и статистика, 1992.
10. Дерк Л. C и C ++: Спpав. – М.: БИНОМ, 1997.
11. Майерс Г. Надежность программного обеспечения – М.: Мир, 1980.
12. Мешков А. Visual C ++ и MFC. Программирование для Windows NT и Windows 95: В 3 т. – Спб.: BHV-Санкт-Петербург, 1997. – Т. 1, 2.
13. Мешков А., Тихомиров Ю. Visual C++ и MFC. Программирование для Windows NT(тм) и Windows 95: В 3 т. -Спб.: BHV- Санкт-Петербург, 1997. – Т. 1.
|
|
14. Нейбауэр А. Моя первая программа на С/С++. – Спб.: Питер Пресс, 1996.
15. Паппас К., Мюррэй У. Visual C++: Рук-во для пpофессионалов. – Спб.: BHV-Санкт-Петербург, 1996.
16. Поттс С., Монк Т. Borland C++ в примерах. – Минск: Попурри, 1996.
17. Программирование на C++: Учеб. Пособие / В.П. Аверкин, А.И. Бобровский, В.В. Веснич и др.; под ред. А.Д. Хомоненко. – Спб.: КОРОНА принт, 1999.
18. Рассохин Д. От С к С++. – М.: Эдель, 1993.
19. Секунов Н. Самоучитель Visual C++ 6. – Спб.: BHV-Санкт-Петербург, 1999.
20. Скляров В. Программирование на языках Си и Си++:Практ. пособие. – М.: Высш. шк., 1996.
21. Собоцинский В. Практический курс TURBO C++. Основы объектно-ориентированного программирования. – М.: Свет, 1993.
22. Страуструп Б. Язык программирования С++. – М.: Радио и связь, 1991.
23. Том С. Освоение Borland С++ 4.5: Пpакт. куpс. – 2-е изд. – К.: Диалектика, 1996.
24. Топп У., Форд У. Структура данных в C++. – М.: БИНОМ, 1999.
25. Фейсон Т. Объектно-ориентированное программирование на Borland C++ 4.5. – 4-е изд. – К.: Диалектика, 1996.
26. Фридман А. Основы объектно-ориентированного программирования на языке Си++. – М.: Радио и связь, 1999.
27. Хаймен М. Borland C++ для "чайников". – К.: Диалектика, 1996.
28. Хендрикс Д. Компилятор языка Си для микро-ЭВМ. – М.: Радио и связь, 1989.
29. Шилдт Г. Теория и практика С++. – Спб.: BHV-Санкт-Петербург, 1996.
30. Эйткен П., Скотт Д. Visual C++ для мультимедиа. – К.: Комиздат, 1996.
ЗМІСТ
Основи сучасного програмування Основи сучасного програмування Основи сучасного програмування Основи сучасного програмування Основи сучасного програмування Основи сучасного
Передмова............................................................................................................ 3
ВСТУП...................................................................................................................... 5
1. ОСНОВИ АЛГОРИТМІЗАЦІЇ.............................................................................. 12
1.1. Поняття алгоритму........................................................................................ 12
1.2. Класифікація внутрішніх структур алгоритмів................................................. 14
1.3. Складність алгоритмів................................................................................... 16
1.4. Складність задач........................................................................................... 19
2. Форма Бекуса – Наура................................................................................. 26