\documentclass[11pt]{article} \usepackage{bulgaria} \textwidth 183mm \textheight 260mm \parindent 5mm \footskip 0pt \topmargin -0.8in \oddsidemargin -0.5in \evensidemargin -0.5in \def\tg{\,\mbox{\eng{tg}}\,} \def\ds{\displaystyle} \def\pp#1#2{%% \par\medskip \hrule\par \begin{center} Югозападен Университет ``Неофит Рилски'' --- Природо-математически факултет\\[4pt] {\it \bf Програмиране и структури от данни} --- летен семестър, 1998/99 уч. година\\[8pt] Практическа задача Х3 \end{center} \par \small Да се напише програма на \eng{Turbo Pascal}, да се въведе в компютъра и да се тества с контролния пример. В текстов файл определяме елемент {\bf дума} -- поредица от букви и цифри (множеството {\tt [0..9,A..Z,a..z,А..Я,а..я]}) отделена от двете страни с друг символ, начало или край на ред. {\bf Изречение} е множество от думи, като първата дума започва с главна буква и последната дума завършва с точка (както изреченията в българския и английския езици). \normalsize \par\smallskip \bf \fbox{#1\ } {\sl Програма:} #2 \par {\sl Контролен пример:}\rm } \begin{document} \pp{1}%% {Даден е текстов файл. Да се направи нов файл, съдържащ текста от входния файл и в който всички многократни шпации (интервали) са заменени с точно 1 шпация (интервал).} {Текста на програмата.} \pp{2}%% {Даден е текстов файл. Да се направи нов файл, съдържащ всички трибуквени думи от файла, наредени по азбучен ред (лексикографски).} {Текста на програмата.} \pp{3}%% {Даден е текстов файл. Да се направи нов файл, съдържащ всички четирибуквени думи от файла, наредени по азбучен ред (лексикографски).} {Текста на програмата.} \newpage \pp{4}%% {Даден е текстов файл. Да се направи нов файл, съдържащ всички думи от файла с дължина по-голяма от 2, наредени по азбучен ред (лексикографски).} {Текста на програмата.} \pp{5}%% {Даден е текстов файл. Да се направи нов файл, съдържащ всички думи от файла с дължина по-голяма от 3, наредени по азбучен ред (лексикографски).} {Текста на програмата.} \pp{6}%% {Даден е текстов файл. Да се направи нов файл, съдържащ всички думи от файла, наредени по азбучен ред (лексикографски).} {Текста на програмата.} \pp{7}%% {Даден е текстов файл. Да се направи нов файл, съдържащ всички думи от файла с дължина по-голяма от 2, наредени по азбучен ред (лексикографски).} {Текста на програмата.} \pp{8}%% {Даден е текстов файл. Да се намери броя на всички $n$-буквени думи във файла за $n=2,3, \ldots$.} {Текста на програмата.} \pp{9}%% {Даден е текстов файл. Да се намери броя на всички изречения във файла.} {Да се създаде примерен файл с текст на български език.} \pp{10}%% {Даден е текстов файл. Да се намери броя на всички главни букви във файла.} {Да се създаде примерен файл с текст на български език.} \pp{11}%% {Даден е текстов файл. Да се намери броя на изреченията във файла, които съдържат $n$ думи, за $n=2,3,\ldots$.} {Да се създаде примерен файл с текст на български език.} \pp{12}%% {Да се напише програма за прекодиране на \eng{Windows} кирилица в \eng{DOS} кирилица.} {Да се създаде примерен файл с текст на български език.} \pp{13}%% {Да се напише програма за прекодиране на \eng{DOS} кирилица в \eng{Windows} кирилица.} {Да се създаде примерен файл с текст на български език.} \pp{14}%% {Да се напише програма за съединяване на всички текстови файлове (тези файлове имат продължение \eng{\tt .TXT} ), намиращи се в дадена директория, в един файл.} {Да се създадат файлове {\eng{\tt a.txt, b.txt, cz.txt}}.} \pp{15}%% {Даден е текстов файл. Да се намерят всички двойки (тройки, четворки, ...) думи, които се различават с не повече от 2 букви и да се направи файл, съдържащ тези думи.} {Да се създаде примерен файл с текст на български език.} \pp{16}%% {Да се напише програма за съединяване на всички текстови файлове (тези файлове имат продължение {\tt .TXT}), намиращи се в дадена директория, в един файл. } {Да се създадат файлове {\tt a.txt, b.txt, cz.txt}.} \pp{17}%% {Даден е файл, съдържащ програма на Паскал. Да се създаде нов файл, съдържащ програмата без коментариите и в подреден вид по правилата на примерите в {\tt Help}-а на Турбо-Паскал.} {Текста на програмата.} \pp{18}%% {Даден е файл, съдържащ програма на Паскал. Да се създадат два нови файла, единия съдържащ програмата без коментариите, другия -- само коментарите.} {Текста на програмата.} \pp{19}%% {Даден е файл, съдържащ текст на английски език. Всяка дума от текста да се запише в отделен файл, чието име е самата дума, ако е не по-дълга от 8 букви и първите 8 букви от думата в противен случай.} {Примерен текст.} \pp{20}%% {Даден е файл, съдържащ програма на Паскал. Всяка дума от програмата да се запише в отделен файл, чието име е самата дума, ако е не по-дълга от 8 букви и първите 8 букви от думата в противен случай.} {Текста на програмата.} \pp{21}%% {Да се създаде файл с големина 1/10 от свободното дисково пространство и да се запише в новосъздадена директория.} {} \pp{22}%% {Да се създаде програма, която търси във файловата система файлове с окончания {\tt .BAK} и когато намери такъв файл, извежда пълното му име на екрана и го изтрива.} {Файловата система на диска {\tt C:}.} \newpage \pp{23}%% {Да се създаде програма, която търси във файловата система директория със зададено име.} {{\tt tp} \pp{24}%% {Да се създаде програма, която търси във файловата система поддиректория на текущата със зададено име и ако намери такава извежда информация дали е празна директорията.} {} \pp{25}%% {Да се създаде програма, която създава файл, съдържащ списък на файловете в текущата директория.} {} \newpage \pp{26}%% {Да се направи програма, която проверява дали в в текущата директория има файл със зададено име.} {} \pp{27}%% {Да се направи програма, която проверява дали в текущата директория има поддиректория със зададено име.} {} \pp{28}%% {Да се направи програма, която проверява дали в коренната директория на диска {\tt C:} има файл със зададено име.} {{\tt autoexec.bat}} \pp{29}%% {Да се направи програма, която проверява дали в коренната директория на диска {\tt C:} има поддиректория със зададено име.} {{\tt temp}} \pp{30}%% {Дадени са два текстови файлове. Да се направи нов файл, съдържащ всички думи от първия файл, които се съдържат и във втория файл.} {Текста на програмата и друг файл.} \pp{31}%% {Дадени са два текстови файлове. Да се направи нов файл, съдържащ всички думи от първия файл, които се съдържат и във втория файл, наредени по азбучен ред (лексикографски).} {Текста на програмата и друг примерен файл.} \pp{32}%% {Даден е текстов файл. Да се направи нов файл, съдържащ всички думи от файла, които започват с главна буква, наредени по азбучен ред (лексикографски).} {Да се създаде примерен файл с текст на български език.} \pp{33}%% {Даден е текстов файл. Да се направи нов файл, съдържащ думите от файла състоящи се от 2 или 3 букви, наредени по азбучен ред (лексикографски).} {Текста на програмата.} \pp{34}%% {Даден е текстов файл. Да се направи нов файл, съдържащ всички думи от файла, в които започват с буквата ``и'', наредени по азбучен ред (лексикографски).} {Да се създаде примерен файл с текст на български език.} \pp{35}%% {Даден е текстов файл. Да се направи нов файл, съдържащ всички думи от файла с дължина по-голяма от 2, наредени по азбучен ред (лексикографски).} {Да се създаде примерен файл с текст на български език.} \pp{36}%% {Даден е текстов файл. Да се намери броя на всички $n$-буквени думи във файла за $n=2,3, \ldots$, които не съдържат буквата {\tt a}.} {Текста на програмата.} \pp{37}%% {Даден е текстов файл. Да се намери броя на всички изречения във файла.} {Да се създаде примерен файл с текст на български език.} \pp{38}%% {Даден е текстов файл. Да се намери броя на всички цифри във файла.} {Текста на програмата.} \pp{39}%% {Даден е текстов файл. Да се намери броя на редовете във файла, които съдържат $n$ думи, за $n=1,2,3,\ldots$.} {Текста на програмата.} \pp{40}%% {Да се напише програма за съединяване на текстовите файлове с продължение {\tt .PAS}), намиращи се в дадена директория, в един файл. } {Да се създаде файл {\tt a.pas} и файла с текста на програмата.} \pp{41}%% {Даден е файл, който съдържа 10000 символа от множеството {\tt [0..9, A..Z, a..z, А..Я, а..я]}. Да се създаде текстов файл, който да съдържа по 60 символа на ред от дадения файл.} {Да се създаде примерен файл от зададения вид.} \pp{42}%% {Да се създаде файл, който съдържа 10000 случайни символа от множеството {\tt [0..9,A..Z,a..z,А..Я,а..я]}. Да се прочете този файл и да се създаде текстов файл, който съдържа броя срещанията на всеки символ от даденото множество.} {} \pp{43}%% {Да се създаде файл, който съдържа 10000 случайни символа от множеството {\tt [0..9]}. Да се прочете този файл и да се създаде текстов файл, който съдържа броя срещанията на всеки символ от даденото множество.} {} \pp{44}%% {Да се създаде файл, който съдържа 10000 случайни цели числа. Да се прочете този файл и да се създаде текстов файл, който съдържа броя срещанията на всяка цифра в числата от файла.} {} \newpage \pp{45}%% {Да се създаде файл, който съдържа 10000 случайни цели числа. Да се прочете този файл и да се създаде текстов файл, който съдържа числата, наредени по големина.} {} \pp{46}%% {Даден е файл, съдържащ текст на английски език. Всяка дума от текста да се запише в отделен файл, чието име е първата буква от думата, а ако файл с това име вече съществува, да се добавя поредно число (напр. {\tt a, a1, a2, ...}).} {Примерен текст.} \pp{47}%% {Даден е файл, съдържащ текст на английски език. Всяка дума от текста да се запише в отделен файл, чието име е първата буква от думата, а ако файл с това име вече съществува, да се добави думата в този файл.} {Примерен текст.} \newpage \pp{48}%% {Даден е файл, съдържащ програма на Паскал. Всяка дума от програмата да се запише в отделен файл, чието име е първата буква от думата, а ако файл с това име вече съществува, да се добави думата в този файл.} {Текста на програмата.} \pp{49}%% {Да се създаде файл с големина 1/10 от свободното дисково пространство и да се запише в новосъздадена директория.} {} \pp{50}%% {Да се създаде файл с големина 1/100 от свободното дисково пространство на диска {\tt C:}.} {} \pp{51}%% {Да се създаде свързан списък, заемащ 1/100 от свободната памет в {\tt heap}-а.} {} \pp{52}%% {Да се създаде свързан списък, заемащ най-голямото парче непрекъсната свободна памет в {\tt heap}-а.} {} \pp{53}%% {Да се създаде свързан списък, заемащ 1/10 от най-голямото парче непрекъсната свободна памет в {\tt heap}-а.} {} \pp{54}%% {Да се създаде програма, която създава файл, съдържащ списък на файлове в текущата директория по зададена ДОС маска.} {Маска {\tt *.p??}.} \pp{55}%% {Да се създаде програма, която извежда списък на файлове в текущата директория по зададена ДОС маска.} {Маска {\tt *.??s}.} \pp{56}%% {Да се създаде програма, която извежда списък на файлове в текущата директория и всички поддиректории по зададена ДОС маска.} {Маска {\tt *.??s}.} \pp{57}%% {Да се създаде програма, която извежда списък на файлове в коренната директория по зададена ДОС маска.} {Маска {\tt *.??s}.} \pp{58}%% {Даден е текстов файл. Да се направи нов файл, съдържащ текста от входния файл, в който всяка главна буква е заменена с 1 шпация (интервал).} {Текста на програмата.} \pp{59}%% {Даден е текстов файл. Да се направи нов файл, съдържащ текста от входния файл, в който всяка поредица от малки букви е заменена със символа {\tt \$}.} {Текста на програмата.} \pp{60}%% {Даден е текстов файл. Да се направи нов файл, съдържащ текста от входния файл, в който всяко изречение започва на нов ред.} {Да се създаде примерен файл.} \pp{61}%% {Даден е текстов файл. Да се направи нов файл, съдържащ текста от входния файл, в който всяко изречение започва на нов ред и има по един празен ред между изреченията.} {Да се създаде примерен файл.} \pp{62}%% {Даден е текстов файл. Да се направи нов файл, съдържащ текста от входния файл, в който всяко изречение започва на нов ред и има по един празен ред между изреченията.} {Да се създаде примерен файл.} \pp{63}%% {Да се направи програма, която разделя произволен файл на два файла с равни големини.} {Кода ({\tt .EXE} файла) на програмата.} \pp{64}%% {Даден е текстов файл и файл-таблица (подобен но {\tt ASCII} таблицата), където е дадено съответствие на {\tt ASCII} кодовете и графични символи. Да се създаде нов, прекодиран в съответствие с таблицата, файл.} {Текста на програмата.} \pp{65}%% {Да се направи програма, която свързва в един файл няколко файла.} {Текста и кода ({\tt .EXE} файла) на програмата.} \pp{66}%% {Да се направи програма, която проверява верността на скобите в програма на Паскал според правилата на езика.} {Текста на програмата.} \pp{67}%% {Да се направи програма, която проверява верността на блоковете {\tt begin end} в програма на Паскал според правилата на езика.} {Текста на програмата.} \pp{68}%% {Да се направи програма, която проверява верността на коментариите (блокове {\tt (* *)} и {\tt \{\ \}} в програма на Паскал според правилата на езика.} {Текста на програмата с добавени коментари.} \pp{69}%% {Да се направи програма, която извежда на файл списък на всички ключови думи (по веднъж всяка) срещащи се в текста на програма на Паскал.} {Текста на програмата.} \pp{70}%% {Да се направи програма, която извежда на файл списък на всички идентификатори, срещащи се в текста на програма на Паскал.} {Текста на програмата.} \pp{71}%% {Да се направи програма, която създава малка база данни -- всеки запис се състои от име, презиме и фамилия на студент, фак. номер и пол. Програмата да може да чете и да записва от/на файл базата; да може да се добавя и да изтрива запис от базата.} {} \pp{72}%% {Да се направи програма, която работи с малка база данни -- всеки запис се състои от име, презиме и фамилия на студент, фак. номер и пол. Програмата да може да чете и да записва от/на файл базата; и да може да променя данните в даден запис.} {} \pp{73}%% {Да се направи програма, която създава малка база данни -- всеки запис се състои от име на автор, заглавие на книга, име на издателство и година на издаване. Програмата да може да чете и да записва от/на файл базата; да може да се добавя и да изтрива запис от базата.} {} \pp{74}%% {Да се направи програма, която работи с малка база данни -- всеки запис се състои от име на автор, заглавие на книга, име на издателство и година на издаване. Програмата да може да чете и да записва от/на файл базата; и да може да променя данните в даден запис.} {} \pp{75}%% {Да се направи програма, която работи с малка база данни -- всеки запис се състои от име на автор, заглавие на книга, име на издателство и година на издаване. Програмата да може да чете и да записва от/на файл базата; и да може да извежда на файл сортираната по дадено поле база.} {} \pp{76}%% {Да се направи програма, която работи с малка база данни -- всеки запис се състои от име, презиме и фамилия на студент, фак. номер и 3 оценки. Програмата да може да чете и да записва от/на файл базата; и да може да извежда на файл сортираната по дадено поле база.} {} \pp{77}%% {Да се направи програма, която работи с малка база данни -- всеки запис се състои от име, презиме и фамилия на студент, фак. номер и 3 оценки. Програмата да може да чете и да записва от/на файл базата; и да може да извежда на файл списък на студентите със среден успех в интервала $(a,b)$.} {} \pp{78}%% {Да се направи програма, която работи с малка база данни -- всеки запис се състои от име на автор, заглавие на книга, име на издателство и година на издаване. Програмата да може да чете и да записва от/на файл базата; и да може да извежда на файл списък от заглавия на книгите на даден автор.} {} \pp{79}%% {Да се направи програма, която работи с малка база данни -- всеки запис се състои от име на автор, заглавие на книга, име на издателство и година на издаване. Програмата да може да чете и да записва от/на файл базата; и да може да извежда на файл списък от автори и заглавия на книгите, издадени през зададена година.} {} \pp{80}%% {Да се направи програма, която работи с малка база данни -- всеки запис се състои от име на автор, заглавие на книга, име на издателство и година на издаване. Програмата да може да чете и да записва от/на файл базата; и да може да извежда на файл списък от книги, издадени от дадено издателство.} {} \end{document}