Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 19.06.2008, 15:33   #1 (permalink)
Mystyc
Member
 
Регистрация: 19.06.2008
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

помогите пожалуйста решить задачи
1.В текстовом файле input.txt записан русский текст. Найти в тексте слова, начинающиеся и оканчивающиеся теми же буквами, что и последнее слово текста, записать их заглавными буквами и указать после каждого такого слова в скобках порядковый номер найденного слова. Полученный текст записать в файл output.txt. Весь текст, кроме найденных слов, должен остаться неизменным, включая и знаки препинания.
2.Дан файл, содержащий русский текст. Найти в тексте N<=2000 слов, содержащих наименьшее количество гласных. Записать найденные слова в текстовый файл в порядке неубывания количества гласных. Для каждого слова вывести также это количество. Все найденные слова должны быть разными!
Mystyc вне форума   Ответить с цитированием

Старый 19.06.2008, 15:33
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Я думаю, что тут найдется много полезного для вас

Помогите решить задачи на C++
Помогите, пожалуйста, решить три задачи по Pascal

Старый 20.06.2008, 11:33   #2 (permalink)
bubuka
Member
 
Аватар для bubuka
 
Регистрация: 23.01.2008
Сообщений: 1,110
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 141
По умолчанию

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.
bubuka вне форума   Ответить с цитированием
Старый 20.06.2008, 11:35   #3 (permalink)
bubuka
Member
 
Аватар для bubuka
 
Регистрация: 23.01.2008
Сообщений: 1,110
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 141
По умолчанию

Значит так
Писалось все в ворде - следовательно мог где то напутать синтаксис
Я не очень хорошо помню конкретно эту тему так что могут гдето быть мелкие ошибки - НО они все легко находяться и исправляють при кампилировании

Со вторым задание придеться подождать так как щас надо всетаки поработать
bubuka вне форума   Ответить с цитированием
Старый 20.06.2008, 14:09   #4 (permalink)
Mystyc
Member
 
Регистрация: 19.06.2008
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

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;
отказывается работать что я с ней уже не делала
Mystyc вне форума   Ответить с цитированием
Старый 20.06.2008, 14:26   #5 (permalink)
bubuka
Member
 
Аватар для bubuka
 
Регистрация: 23.01.2008
Сообщений: 1,110
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 141
По умолчанию

где ошибку выбивает?
вставете перед фунцией эту строку:

{$Х+} {Включаем расширенный синтаксис}


а в конце функции
{$Х-}
bubuka вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 20.06.2008, 14:35   #6 (permalink)
Mystyc
Member
 
Регистрация: 19.06.2008
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

теперь он выделяет {$X+} и пишет invalid compiler directiv
Mystyc вне форума   Ответить с цитированием
Старый 20.06.2008, 14:36   #7 (permalink)
Mystyc
Member
 
Регистрация: 19.06.2008
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

а еще выделяет 'a'..'ï': UpCaseAll := Chr(ord('À')+ord(Ch)-ord('à')); и пишет duplicate case lable
Mystyc вне форума   Ответить с цитированием
Старый 20.06.2008, 14:38   #8 (permalink)
Mystyc
Member
 
Регистрация: 19.06.2008
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

теперь он не выделяет {$X}но про duplicate case lable все равно пишет
Mystyc вне форума   Ответить с цитированием
Старый 20.06.2008, 14:39   #9 (permalink)
bubuka
Member
 
Аватар для bubuka
 
Регистрация: 23.01.2008
Сообщений: 1,110
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 141
По умолчанию

какая версия паскаля? (попробуй убрать {$Х-})

вот еще раз функция
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;
bubuka вне форума   Ответить с цитированием
Старый 20.06.2008, 14:41   #10 (permalink)
Mystyc
Member
 
Регистрация: 19.06.2008
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

оооо, теперь он пишет
variable "l" mignt have not been inicialized и про k тоже самое
Mystyc вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 11:05.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.