Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.02.2016, 16:45   #1
Pinguin007
Пользователь
 
Регистрация: 26.02.2016
Сообщений: 14
По умолчанию Выяснить, верно ли, что в данном тексте больше групп букв, чем групп знаков

Дан текст, хранящийся в текстовом файле f, каждый символ которого может быть малой буквой, цифрой или одним из знаков ‘+’, ‘-‘, ‘*’. Группой букв будем называть такую совокупность последовательно расположенных букв, которой непосредственно не предшествует и за которой непосредственно не следует буква. Аналогично определяется группа цифр и группа знаков.
Выяснить, верно ли, что в данном тексте больше групп букв, чем групп знаков. В первом случае в новый файл g вывести все группы букв, во втором – все группы знаков.


что от меня требуется ? И не понял насчет группы букв? и если будут советы по заданию , то дайте
Pinguin007 вне форума Ответить с цитированием
Старый 27.02.2016, 17:10   #2
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

Цитата:
что от меня требуется ? И не понял насчет группы букв?
одному мне кажется, что это вопросы к преподу?
и таки да, пример файла required.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 27.02.2016, 18:12   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Вот твой файл:

abcd++mm2nn*nn*12qq

групп букв 5:
abcd - 1
mm - 1
nn - 2
qq - 1

групп знаков 3:
++ - 1
* - 2

групп цифр 2:
2 - 1
12 - 1

Чего больше надеюсь понятно
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 27.02.2016, 18:55   #4
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Один из вариантов.
Код:
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.
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 28.02.2016, 12:16   #5
CMY_3
Пользователь
 
Регистрация: 24.02.2016
Сообщений: 38
По умолчанию

Так ещё можно:
Код:
program project1;
{$mode fpc}
var
  t : text;
  c, c1 : char;
  cf, zn, bk : integer;
begin
  assign(t,'input.txt');
  reset(t);
  cf:=0; zn:=0; bk:=0;
  read(t,c);
  if c in ['a'..'z'] then inc(bk)
  else if c in ['0'..'9'] then inc(cf)
  else if c in ['+','-','*'] then inc(zn);
  while not eof(t) do begin
    read(t,c1);
    if (c1 in ['a'..'z']) and not (c in ['a'..'z']) then inc(bk)
    else if (c1 in ['0'..'9']) and not (c in ['0'..'9']) then inc(cf)
    else if (c1 in ['+','-','*']) and not (c in ['+','-','*']) then inc(zn);
    c:=c1;
  end;

  writeln('Групп букв больше, чем групп знаков ',bk>zn);

  readln;
end.

Последний раз редактировалось CMY_3; 28.02.2016 в 14:31.
CMY_3 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определить каких букв - согласные\гласных - больше в данном тексте alex377 Паскаль, Turbo Pascal, PascalABC.NET 3 03.05.2015 14:39
Выяснить, верно ли, что сумма тех вещественных чисел , которые больше 20,5, мен Anonim123 Паскаль, Turbo Pascal, PascalABC.NET 6 21.05.2014 17:07
Найти кол-во групп букв в строке. niktim Помощь студентам 5 28.11.2011 23:47
выяснить, встречается ли в данном тексте группа букв one; hidalgo Фриланс 7 19.01.2010 10:57