Программа


       PROGRAM Calc;
       VAR F:text;          { Файловая переменная }
           FileName:string; { Имя файла }
           QuantityBEGIN,QuantityEND:word;  { Количества BEGIN и END }
           i:byte;  { Счетчик }
       PROCEDURE GetFirstWord(var St,FirstWord:string);
                              { Процедура выделения первого слова из строки }
         Begin
           while not(St[1] in ['A'..'Z']) and (Length(St)>0) do
             St:=Copy(St,2,Length(St)-1);
                                    { Цикл удаления первых символов "НЕБУКВ" }
           FirstWord:='';  { "Сброс" значения переменной }
           while (St[1] in ['A'..'Z']) and (Length(St)>0) do
             begin           { Цикл переноса первого слова из St в FirstWord }
               FirstWord:=FirstWord+St[1];
                             { Копирование первого символа из St в FirstWord }
               St:=Copy(St,2,Length(St)-1) { Удаление первого символа из St }
             end
         End;
       PROCEDURE GetQuantity(var F:text;var QuantityBEGIN,QuantityEND:word);
                  { Процедура подсчета количества слов BEGIN и END в файле F }
         Var Buf:string;  { Буфер для чтения строки из файла }
             WordString:string; { Выделенное из строки слово }
         Begin
           { Обнуление значений: }
           QuantityBEGIN:=0;
           QuantityEND:=0;
           Reset(F);            { Открытие файла под чтение }
           while not EOF(F) do { Цикл просмотра файла }
             begin
               ReadLn(F,Buf); { Чтение строки из файла }
               while Length(Buf)<>0 do  { Цикл обработки строки }
                 begin
                   for i:=1 to Length(Buf) do Buf[i]:=UpCase(Buf[i]);
                                  { Перевод строчных букв строки в заглавные }
                   GetFirstWord(Buf,WordString);
                                         { Выделение первого слова из строки }
                   { Подсчет слов BEGIN и END: }
                   Inc(QuantityBEGIN,Ord(WordString='BEGIN'));
                   Inc(QuantityEND,Ord(WordString='END'))
                 end
             end;
           Close(F)             { Закрытие файла }
         End;
       BEGIN
         WriteLn;
         Write('Введите имя файла '); { Вывод приглашения }
         ReadLn(FileName);            { Ввод имени файла }
         Assign(F,FileName);  { Связывание имени файла с файловой переменной }
         GetQuantity(F,QuantityBEGIN,QuantityEND); { Подсчет слов }
         { Вывод результатов: }
         WriteLn('В файле ',FileName);
         WriteLn('Слов BEGIN: ',QuantityBEGIN);
         WriteLn('Слов END: ',QuantityEND);
       END.

Бесплатные примеры программ
Примеры написанных программ
Помощь студентам по программированию