Posted By

ozkriff on 11/01/09


Tagged


Versions (?)

alm.*z


 / Published in: Pascal
 

  1. {
  2. Нахождение в заданном словаре слов,
  3. содержащих только буквы заданного слова
  4. (например дано слово "программа",
  5. и из него можно составить слова пар,паром,грамм,рог...)
  6. основное слово вводиться с клавиатуры,
  7. вывод результатов по желанию на экран или файл.
  8.  
  9. Словарь храниться в текст. файле - каждое слово на отдельной строке:
  10. содержит примерно 20000 слов;
  11. должна быть представлена возможность добавления слов в словарь,
  12. причем,если вводимое с клавиатуры слово уже есть в словаре,
  13. оно не должно добавляться повторно.
  14. }
  15.  
  16. uses crt; {использовать модуль псевдорафики}
  17.  
  18. var
  19. f :text; {указатель на файл}
  20. adres :string; {адрес файла-словаря}
  21. slovar :string; {словарь}
  22. slovo :string; {для слова}
  23. k :integer; {счетчик}
  24. i :longint; {счетчик}
  25. l :boolean; {нашли или нет}
  26. ch :char; {символ}
  27.  
  28.  
  29. {проверяет наличие слов содержащих буквы заданного слова}
  30. function proverka(slovo, slovar :string) :boolean;
  31. var {секция бъявления переменных}
  32. flag :boolean; {нашли или нет}
  33. ch :char; {}
  34. begin {начало тела функции}
  35. flag := true; {установка флага в ИСТИНУ}
  36. repeat {начало тела цикла}
  37. if pos(slovar[1], slovo) = 0 then {есть ли в слове первая буква соваря?}
  38. flag := false {установить флаг в ЛОЖЬ}
  39. else {иначе}
  40. begin
  41. delete(slovo, pos(slovar[1], slovo),1); {удалить первую букву словаря из слова}
  42. delete(slovar, 1, 1); {удалить 1й символ из словаря}
  43. end;
  44. until(flag = false) or (slovar = ''); {до тех пор, пока флаг истенен и словарь не пуст}
  45. proverka := flag; {вернут ьрезультатом флаг}
  46. end; {конец функции}
  47.  
  48.  
  49. begin {начало тела прогарммы}
  50. l := false; {уатановить l в ЛОЖЬ}
  51. clrscr; {очистить экран}
  52. writeln('Dobavit slovo v slovar : 1 '); {вывести меню}
  53. writeln('Nayti v slovare slova : 2 '); {вывести меню}
  54. ch := readkey; {прочитать символ с клавиатуры в ch}
  55.  
  56. if ch = '1' then {если введено 1 то}
  57. begin
  58. clrscr; {очистить экран}
  59. writeln('Vvedite adres slovarya ');
  60. readln(adres); {прочитать адрес}
  61. writeln('Vvedite slovo kotoroe nado dobavit ');
  62. readln(slovo); {прочитать слово}
  63.  
  64. assign(f, adres); {прикрепитьуказатель на файл}
  65. reset(f); {перемотать файл}
  66. repeat {начало тела цикла}
  67. readln(f, slovar); {прочитать строку из файла в словарь}
  68. if slovo = slovar then {если слово равно со строкой}
  69. l := true; {установить L в истину}
  70. until(eof(f)) or (l); {повторять до тех пор, пока не кончится файл или не найдем такое же слово}
  71. close(f); {закрыть файл}
  72.  
  73. if l then {если l истинен}
  74. writeln('Takoe slovo est ')
  75. else {иначе}
  76. begin
  77. append(f); {добавить к файлу}
  78. writeln(f, slovo); {вывести слово в файл}
  79. close(f); {закрыт ьфайл}
  80. writeln('Slovo dobavleno ');
  81. end;
  82. end;
  83.  
  84. if ch = '2' then {если введено 2}
  85. begin
  86. clrscr; {очистить экран}
  87. writeln('Vvedite adres slovarya ');
  88. readln(adres); {прочитать адрес}
  89. writeln('Vvedite slovo ');
  90. readln(slovo); {прочитать слово}
  91.  
  92. assign(f, adres); {прочитать адрес}
  93. reset(f); {перемотать}
  94. k := 0; {обнулить k}
  95. i := 0; {обнулить i}
  96. repeat {начало цикла}
  97. readln(f, slovar); {прочитать из файла строкув словарь}
  98. if length(slovar) <= length(slovo) then {если словарь меньше или равен слову}
  99. if proverka(slovo, slovar) = true then {слово есть в словаре словарю}
  100. begin
  101. l := true;
  102. writeln(slovar);
  103. k := k+1;
  104. i := i+1;
  105. end;
  106. if k = 20 then
  107. begin
  108. readln; {прочиатть строку}
  109. k := 0; {обнулить k}
  110. end;
  111. until(eof(f)); {до конца файла}
  112.  
  113.  
  114. if l = false then {если L ложно}
  115. writeln('Net')
  116. else {иначе}
  117. writeln('Naydeno ', i, ' slov');
  118.  
  119. end;
  120.  
  121. readln; {прочитать строку}
  122. end. {конец прогарммы}

Report this snippet  

Comments

RSS Icon Subscribe to comments
Posted By: kurokikaze on November 2, 2009

Похоже на чью то курсовую работу :)

You need to login to post a comment.