Последние записи
- Преобразовать массив байт в вещественное число (single)
- TChromium (CEF3), сохранение изображений
- Как в Delphi XE обнулить таймер?
- Изменить цвет шрифта TextBox на форме
- Ресайз PNG без потери прозрачности
- Вывод на печать графического файла
- Взаимодействие через командную строку
- Перенести программу из Delphi в Lazarus
- Определить текущую ОС
- Автоматическая смена языка (раскладки клавиатуры)
Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk
Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - ttps://clck.ru/fCrQw
27th
Фев
Выяснить, верно ли, что в данном тексте больше групп букв, чем групп знаков
Posted by obzor under Delphi
Дан текст, хранящийся в текстовом файле f, каждый символ которого может быть малой буквой, цифрой или одним из знаков ‘+’, ‘-‘, ‘*’. Группой букв будем называть такую совокупность последовательно расположенных букв, которой непосредственно не предшествует и за которой непосредственно не следует буква. Аналогично определяется группа цифр и группа знаков.
Выяснить, верно ли, что в данном тексте больше групп букв, чем групп знаков. В первом случае в новый файл g вывести все группы букв, во втором – все группы знаков.
Один из вариантов.
uses crt;
var f:text;
s:string;
i,m:byte;
sg,dg,lg:byte;
ssg,sdg,slg:string;
asg,adg,alg:array[1..5]of string;
begin
clrscr;
assign(f,'f.dat');reset(f);
sg:=0;dg:=0;lg:=0;m:=0;
ssg:='';sdg:='';slg:='';
while not eof(f) do
begin
readln(f,s);
s:=s+' ';
for i:=1 to length(s) do
begin
if s[ i] in ['a'..'z'] then
begin
if slg='' then
begin
inc(lg);
if sdg<>'' then adg[dg]:=sdg;
if ssg<>'' then asg[sg]:=ssg;
sdg:='';ssg:='';
end;
slg:=slg+s[ i];
end
else if s[ i] in ['0'..'9'] then
begin
if sdg='' then
begin
inc(dg);
if ssg<>'' then asg[sg]:=ssg;
if slg<>'' then alg[lg]:=slg;
slg:='';ssg:='';
end;
sdg:=sdg+s[ i];
end
else
begin
if ssg='' then
begin
inc(sg);
if sdg<>'' then adg[dg]:=sdg;
if slg<>'' then alg[lg]:=slg;
slg:='';sdg:='';
end;
ssg:=ssg+s[ i];
end;
end;
end;
writeln('[a..z]: ',lg);
writeln('[0..9]: ',dg);
writeln('other : ',sg);
close(f);
for i:=1 to lg do write(alg[ i],' ');
writeln;
for i:=1 to dg do write(adg[ i],' ');
writeln;
for i:=1 to sg do write(asg[ i],' ');
writeln;
assign(f,'f.out');rewrite(f);
{write output by your own}
close(f);
end.
Похожие статьи
Купить рекламу на сайте за 1000 руб
пишите сюда - alarforum@yandex.ru
Да и по любым другим вопросам пишите на почту
пеллетные котлы
Пеллетный котел Emtas
Наши форумы по программированию:
- Форум Web программирование (веб)
- Delphi форумы
- Форумы C (Си)
- Форум .NET Frameworks (точка нет фреймворки)
- Форум Java (джава)
- Форум низкоуровневое программирование
- Форум VBA (вба)
- Форум OpenGL
- Форум DirectX
- Форум CAD проектирование
- Форум по операционным системам
- Форум Software (Софт)
- Форум Hardware (Компьютерное железо)