Pascal.Строки
-
- Сообщения: 9
- Зарегистрирован: 22 май 2009, 22:47
Уважаемые программисты!! нужна ваша помощь, решите пожалуйста одну задачку:
Дана последовательность символов латинского алфавита и пробелов. Группу символов, разделенную с одной или обеих сторон пробелами и не содержащую внутри себя пробелов, назовем словом. Поменять порядок следования букв на обратный в тех словах, которые имеют наибольшую длину. Подсчитать количество таких слов.
Дана последовательность символов латинского алфавита и пробелов. Группу символов, разделенную с одной или обеих сторон пробелами и не содержащую внутри себя пробелов, назовем словом. Поменять порядок следования букв на обратный в тех словах, которые имеют наибольшую длину. Подсчитать количество таких слов.
Код: Выделить всё
program maxl;
var
fin,fout:text;
c:char;
s:string;
i,lenmax:integer;
kol:longint;
procedure fromin;
begin
read(fin,c);
if c=' ' then begin
if s<>'' then begin
if lenmax=length(s) then inc(kol);
if lenmax<length(s) then begin
lenmax:=length(s);
kol:=1;
end;
s:='';
end;
fromin;
end
else s:=s+c;
end;
procedure intoout;
begin
read(fin,c);
if c=' ' then begin
if s<>'' then begin
if length(s)=lenmax then begin
for i:=lenmax downto 1 do write(fout,s[i]);
write(fout,' ');
end
else write(fout,s,' ');
s:='';
end
else if (c=#32)or(c=#13)then write(fout,c);
intoout;
end
else s:=s+c;
end;
BEGIN
s:='';
assign(fin,'in.txt');
reset(fin);
while not eof(fin) do fromin;
close(fin);
assign(fin,'in.txt');
reset(fin);
assign(fout,'out.txt');
rewrite(fout);
s:='';
while not eof(fin) do intoout;
writeln(fout);writeln(fout);
writeln(fout,kol);
close(fin);
close(fout);
END.
-
- Сообщения: 9
- Зарегистрирован: 22 май 2009, 22:47
большое спасибо!!!!!
- Oleg_Rus
- Сообщения: 335
- Зарегистрирован: 16 окт 2006, 09:56
- Откуда: г.Улан-Удэ, респ.Бурятия, Российская Федерация
- Контактная информация:
Граждане, не забывайте про раздел "алгоритмы" - там я разъяснял решение подобных задач
e-mail: garmayev@yandex.ru
---------------------------------------------------------------------------
<a href="http://nick-name.ru/sertificates/711965/"><img src="http://nick-name.ru/img.php?nick=Garmay ... =2&text=t5" alt="Никнейм Garmayev зарегистрирован!" /></a>
---------------------------------------------------------------------------
<a href="http://nick-name.ru/sertificates/711965/"><img src="http://nick-name.ru/img.php?nick=Garmay ... =2&text=t5" alt="Никнейм Garmayev зарегистрирован!" /></a>
-
- Сообщения: 9
- Зарегистрирован: 22 май 2009, 22:47
Sheka большое спасибо что решил, но препод сказал что задача не должна обращаться к файлам или что то вроде того 
fin,fout:text; и всё что с этим связано лишнее
если не затруднит не мог бы ты убрать это самое "лишнее" пожалуйста....

fin,fout:text; и всё что с этим связано лишнее

если не затруднит не мог бы ты убрать это самое "лишнее" пожалуйста....
откуда тогда берется эта строка?Блондиночка писал(а): задача не должна обращаться к файлам

-
- Сообщения: 9
- Зарегистрирован: 22 май 2009, 22:47
может с клавиатуры вводится?
тогда я думаю надо использвать массив строк.Блондиночка писал(а):может с клавиатуры вводится?
-
- Сообщения: 9
- Зарегистрирован: 22 май 2009, 22:47
может быть можно ввести с клавиатуры, например
jgdfjghdf dkjghdfjghdk djghjfgh fjghfjghfjg. это и будут слова, разделённые пробелами. А которые длиннее,скажем,6 символов - в тех и меня порядок букв?
так нельзя сделать?
jgdfjghdf dkjghdfjghdk djghjfgh fjghfjghfjg. это и будут слова, разделённые пробелами. А которые длиннее,скажем,6 символов - в тех и меня порядок букв?
так нельзя сделать?
тебе же надо самые длинные, а не те которые >6