помогите пожалуйста решить задачи
1.В текстовом файле input.txt записан русский текст. Найти в тексте слова, начинающиеся и оканчивающиеся теми же буквами, что и последнее слово текста, записать их заглавными буквами и указать после каждого такого слова в скобках порядковый номер найденного слова. Полученный текст записать в файл output.txt. Весь текст, кроме найденных слов, должен остаться неизменным, включая и знаки препинания. 2.Дан файл, содержащий русский текст. Найти в тексте N<=2000 слов, содержащих наименьшее количество гласных. Записать найденные слова в текстовый файл в порядке неубывания количества гласных. Для каждого слова вывести также это количество. Все найденные слова должны быть разными! |
1.В текстовом файле input.txt записан русский текст. Найти в тексте слова, начинающиеся и оканчивающиеся теми же буквами, что и последнее слово текста, записать их заглавными буквами и указать после каждого такого слова в скобках порядковый номер найденного слова. Полученный текст записать в файл output.txt. Весь текст, кроме найденных слов, должен остаться неизменным, включая и знаки препинания.
Program P1; Const Name1 = ‘c:\...адресс папки…\input.txt’; Name2 = ‘c:\...адресс папки…\output.txt’; N = 5000; rusB :set of char = [‘А’,’Б’,’В’,’Г’,’Д’,’Е’,’Ё’,’Ж’,’З’,’И’,’К’,’Л’,’М ’,’Н’,’О’,’П’,’Р’,’С’,’Т’,’У’,’Ф’,’Ц’,’Ч’,’Щ’,’Ш’, ’Ь’,’Ы’,’Ъ’,’Э’,’Ю’,’Я’]; russ : set of char = [‘а’,’б’,’в’,’г’,’д’,’е’,’ё’,’ж’,’з’,’и’,’к’,’л’,’м ’,’н’,’о’,’п’,’р’,’с’,’т’,’у’,’ф’,’ц’,’ч’,’щ’,’ш’, ’ь’,’ы’,’ъ’,’э’,’ю’,’я’]; Var Rusin,rusout:text; M:array [1..N] of char; I,k,j,l:integer; Nom,simv:string; Function UpCaseAll(Ch: Char): Char; {Преобразует латинскую или русскую букву Ch к заглавной} begin case Ch of 'a'..'z': UpCase := Chr(ord('A')+ord(Ch)-ord('a')); 'a'..'n': UpCase := Chr(ord('A')+ord(Ch)-ord('a')); 'p'..'я': UpCase := Chr(ord('P')+ord(Ch)-ord('p')); else UpCase:= Ch end end; Begin Assign(rusin,name1); Assign(rusout,name2); {$I-} {Отключаем контроль ошибок ввода-вывода} reset(rusin); {$I+} {Включаем контроль ошибок ввода-вывода} if IOResult <> 0 then writeln(‘Ошибка, файла не существует’); else while not EOF(rusin) and (i <= N) do begin read(rusin ,m[i] ) ; {Записали все символы из файла инпут в массив М} inc(i) end; close(rusin); for j:= I DOWN TO 1 DO IF and (((m[j+1] in rusB)) or ((m[j+1] in russ))) then begin simv:=m[i-1]; break; end; {запомнили последнюю букву} for j:=1 to to I-1 do if ((not(m[j] in rusB)) or (not(m[j] in russ))) and (((m[j+1] in rusB)) or ((m[j+1] in russ))) then begin k:=k+1; if m[j+1] = simv then { преобразуем буквы в заглавные} begin for l:=j+1 to I-1 do begin if ((not(m[l] in rusB)) or (not(m[l] in russ))) then begin str(k,nom); for q:=i+length(nom) downto l do m[q]:=m[q-length(nom)]; for q:=l to l+lentg(mon)-1 do m[q]:=nom[l-q+1]; I:=I+length(nom); break; end; m[l]:=upCaseAll(m[i]); end; end; rewrite(rusout); for j:=2 to I do {записываем все обратно без первого пробела} write(rusout,m[i]); close(rusout); end. |
Значит так
Писалось все в ворде - следовательно мог где то напутать синтаксис Я не очень хорошо помню конкретно эту тему так что могут гдето быть мелкие ошибки - НО они все легко находяться и исправляють при кампилировании Со вторым задание придеться подождать так как щас надо всетаки поработать |
Function UpCaseAll(Ch: Char): Char;
{Преобразует латинскую или русскую букву Ch к заглавной} begin case Ch of 'a'..'z': UpCase := Chr(ord('A')+ord(Ch)-ord('a')); 'a'..'n': UpCase := Chr(ord('A')+ord(Ch)-ord('a')); 'p'..'я': UpCase := Chr(ord('P')+ord(Ch)-ord('p')); else UpCase:= Ch end end; отказывается работать что я с ней уже не делала |
где ошибку выбивает?
вставете перед фунцией эту строку: {$Х+} {Включаем расширенный синтаксис} а в конце функции {$Х-} |
теперь он выделяет {$X+} и пишет invalid compiler directiv
|
а еще выделяет 'a'..'ï': UpCaseAll := Chr(ord('À')+ord(Ch)-ord('à')); и пишет duplicate case lable
|
теперь он не выделяет {$X}но про duplicate case lable все равно пишет
|
какая версия паскаля? (попробуй убрать {$Х-})
вот еще раз функция Function UpCase(Ch: Char): Char; {Преобразует латинскую или русскую букву Ch к заглавной} begin case Ch of 'a'..'z': UpCase := Chr(ord('A')+ord(Ch)-ord('a')); 'a'..'n': UpCase := Chr(ord('A')+ord(Ch)-ord('a')); 'p'..'я': UpCase := Chr(ord('P')+ord(Ch)-ord('p')); else UpCase:= Ch end end; |
оооо, теперь он пишет
variable "l" mignt have not been inicialized и про k тоже самое |
Часовой пояс GMT +4, время: 04:38. |
Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.