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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.11.2016, 00:43   #1
Cantdie62
 
Регистрация: 24.11.2016
Сообщений: 5
По умолчанию Цикл с постусловием

В последовательности символов, заканчивающейся *, подсчитать количество цифр, прописных и строчных (отдельно) латинских букв, пробелов и специальных символов.
Cantdie62 вне форума Ответить с цитированием
Старый 26.11.2016, 16:24   #2
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,546
По умолчанию

А если так ? Чтобы прога не вылетала при отсутствии '*' , дополнительно проверяем на длину строки.

Код:
program  abc ;
const
  cif : string = '0123456789' ;
  lit : string = 'abcdefghijklmnopqrstuvwxyz' ;
  big : string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' ;
var
  i,l,cif_sym,up_sym,dwn_sym,blnk_sym,spec_sym : integer ;
  stro, tststr : string ; 
begin
  Readln (stro) ;
  i := 1 ; up_sym := 0 ; dwn_sym := 0 ;
  blnk_sym := 0 ; spec_sym := 0 ; cif_sym :=0 ;
  l := Length (stro) ;
    repeat
       tststr := Copy (stro[i],1,1) ; Inc (i) ;
       if Pos(tststr,big) > 0  then Inc(up_sym) else
          if Pos(tststr,lit) > 0  then Inc(dwn_sym) else
             if Pos(tststr,cif) > 0  then Inc(cif_sym) else
                if tststr=' ' then Inc(blnk_sym) else
                    Inc(spec_sym) ;
    until ( tststr = '*' ) or (i>l);
  Writeln ('Cif=',cif_sym,' Up=',up_sym,' Dwn=',dwn_sym,
             ' Blank=',blnk_sym,' Spec=',spec_sym ) ;
  Readln (stro) ;

end.

Последний раз редактировалось digitalis; 27.11.2016 в 12:34.
digitalis вне форума Ответить с цитированием
Старый 01.12.2016, 11:04   #3
Cantdie62
 
Регистрация: 24.11.2016
Сообщений: 5
По умолчанию

Нужно без типа string

Последний раз редактировалось Cantdie62; 01.12.2016 в 15:21.
Cantdie62 вне форума Ответить с цитированием
Старый 01.12.2016, 11:19   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

оператор стринг? вы о чем?
p51x вне форума Ответить с цитированием
Старый 01.12.2016, 11:57   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

так что ли:
Код:
var cnt_dig, cnt_ALPHA, cnt_us : integer;
  ch : char;
begin
  cnt_dig :=0; cnt_ALPHA := 0; cnt_us :=0;
  WriteLn('Вводите символы (символ * - окончание ввода): ');
  repeat
     Read(ch);
     if ch in ['0'..'9'] then inc(cnt_dig)
     else  if ch in ['A'..'Z'] then inc(cnt_ALPHA)
       else  if ch in ['a'..'z'] then inc(cnt_us);
  until ch='*';
  WriteLn('Количество');
  WriteLn('цифр ',cnt_dig);
  WriteLn('прописных латинских букв ',cnt_ALPHA);
  WriteLn('строчных латинских букв ',cnt_us);
  ReadLn
end.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При приближенном вычислении суммы ряда расчет выполнять с точностью E. Использовать цикл с предусловием и цикл с постусловием. dvpvitas Паскаль, Turbo Pascal, PascalABC.NET 0 16.06.2015 18:43
Цикл с постусловием Александр_1с Помощь студентам 0 18.11.2014 07:27
цикл с постусловием. Анна22 Паскаль, Turbo Pascal, PascalABC.NET 1 08.12.2010 21:27
Цикл с предусловием. ( цикл while) Цикл с постусловием. (цикл repeat ... until) Mr.User Помощь студентам 9 23.11.2007 01:34