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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.12.2018, 11:35   #1
pomogitemneplz
 
Регистрация: 02.12.2018
Сообщений: 8
По умолчанию Вводится текст. Конец ввода F1. Определить количество слов, начинающихся на букву K, в которых нечетное количество букв.

Я только нашел слова на К, а как еще и только нечетные на К сделать не знаю. ПОМОГИТЕ!
Вот что сделал

var c1,c2:char;
f:integer;
begin
c1:=' ';
f:=0;
repeat
c2:=readkey;
while(c2=#0)=false do begin
writeln(c2);
if ((c1=' ')and(c2='K'))=true then f:=f+1;
c1:=c2;
c2:=readkey;
end;
c2:=readkey;
until (c2=#59)=true;
if (c1=' ')=true then write('slov net')
else write(f);
end.
pomogitemneplz вне форума Ответить с цитированием
Старый 02.12.2018, 12:23   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

1) код нужно форматировать и на форуме выделять тегами:
Код программы нужно выделять (форматировать) тегами [CODE] [/CODE] (читать FAQ)


2) почему не используете тип string? Не знаете про него, не умеете использовать?
И тут же вопрос - зачем использовать ReadKey? Это функция нужна совсем для других целей. Вводить символы строки через эту функцию - как минимум странно, как максимум - неверно. В Паскале есть стандартная функция ввода Read / ReadLn

3) чем отделены слова в вашей строке? Только исключительно пробелами?

4) ну и последнее. нечётные слова нужно проверять так - завести переменную, в которой считать все найденные слова. Если эта переменная нечётная (см. функцию odd() или (число mod 2 = 1)) — тогда нужно проверять слово и выводить его, если оно подходит.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.12.2018, 22:22   #3
jillitil
Форумчанин
 
Аватар для jillitil
 
Регистрация: 17.10.2018
Сообщений: 184
По умолчанию

На полноценный диплом не годится, но работает.
Код:
Program ForStudent001;
USES Crt;
Function ReadWord(VAR Out: String): Boolean;
VAR
  Ch    : Char;
Begin
  Out:= '';
  ReadWord:= True;
  Repeat
    Ch:= ReadKey;
    Case Ch of
       #0: Begin
             Ch:= ReadKey;
             If Ch = ';' Then
                Begin
                  ReadWord:= False;
                  Exit;
                End
             Else
                Continue;
           End;
       #8: Begin
             If Out = '' Then Continue;
             Dec(Out[0]);
             Write(Ch, ' ', Ch);
             Continue;
           End;
      #13: Exit;
#60..#255: Out:= Out + Ch;
      Else
           Continue;
    End;
  Write(Ch);
  Until Ch = #13;
End;

VAR
  WCounter: Word;
  TCounter: Word;
  UserWord: String;
Begin
  WCounter:= 0;
  TCounter:= 0;
  TextAttr:= $1F; ClrScr;
  TextAttr:= $30; ClrEol; GotoXY(35, 1); Writeln('RGR-01/1993');
  TextAttr:= $30; GotoXY(1, 25); Write('█ QUIT █      █      █      █      █      █      █      █      █      █      ');
  TextAttr:= $02; ClrEol;
  TextAttr:= $1b; GotoXY(2, 4);
  WriteLn('Type words. "Return" for enter. F1 to finish'#10#10);
  While ReadWord(UserWord) Do
  Begin
    If (UpCase(UserWord[1]) = 'K'  ) AND
    ( ( Length(UserWord) AND 1) = 1) Then
    Inc(WCounter);
    Inc(TCounter);
    Write(#13); ClrEol; Write(#13);
  End;
  Write  ('Total words entered:':47,
          TCounter:3,
          #13#10'Words starnig with "K" and odd number of chars:',
          WCounter:3);
  ReadLn;
End.
Вложения
Тип файла: 7z STD.7z (815 байт, 7 просмотров)
jillitil вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вводится последовательность символов, конец ввода -ESC(код#27). Определить количество букв "b". помогите сделать через string. kolbaskin Паскаль, Turbo Pascal, PascalABC.NET 2 30.12.2013 09:12
C++ Задан текст. Определить количество слов, в которых встречается буква, вводимая с клавиатуры. V-alterman Помощь студентам 2 07.12.2013 19:43
Вводится текст. Конец ввода <F2>. Найти количество букв "е" лина 555 Паскаль, Turbo Pascal, PascalABC.NET 6 16.10.2013 20:21
Вводится текст. Конец ввода F6. Найти количество заглавных букв. (Паскаль) Casper098 Помощь студентам 2 06.10.2011 06:03
Определить количество слов, в которых более трех гласных букв. fuzo Помощь студентам 9 28.09.2010 18:01