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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.10.2013, 15:36   #1
лина 555
 
Регистрация: 01.10.2013
Сообщений: 3
По умолчанию Вводится текст. Конец ввода <F2>. Найти количество букв "е"

Вводится текст. Конец ввода <F 2>. Найти количество букв "е" помогите написать блок схему и программу к задаче. очень нужно. спасибо!
лина 555 вне форума Ответить с цитированием
Старый 02.10.2013, 18:20   #2
unbanned
Форумчанин
 
Аватар для unbanned
 
Регистрация: 23.11.2010
Сообщений: 530
По умолчанию

Код:
uses
  crt;

const
  F2 = 113;

var
  charsLt: set of char;
  charsK: set of char;
  numbers: set of char;
  s: string;
  c: char;
  i, count: integer;

begin
  charsLt := ['А'..'я'];
  numbers := ['0'..'9'];
  charsK := ['A'..'z'];
  s := '';
  while ord(c) <> F2  do 
  begin
    write(s);
    c := readkey;
    if (c in charsLt) or (c in charsk) or (c in numbers) then s := s + c;
    if c = #8 then delete(s, length(s), 1);
    if c = #46 then delete(s, 1, 1);
    clrscr;
  end;
  for i := 1 to length(s) do
    if s[i] = 'e' then inc(count);
  writeln(count, ' раз');
end.
возможно как-то так) не проверял... мб и не сработает)

Последний раз редактировалось unbanned; 02.10.2013 в 18:51.
unbanned вне форума Ответить с цитированием
Старый 03.10.2013, 09:38   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

unbanned, во-первых, переменную c перед использованием надо иницилизировать.
во-вторых, Вы не учитываете, что некоторые клавиши (и F2 в т.ч.) возращают расширенный код (сначала ноль, потом собственно код)
проверить (и посмотреть код очень легко):
Код:
uses crt;
var ch : char;
begin
  repeat
    ch := readkey;
    WriteLn('#',ord(ch)) 
  until ch=#27;
end.
в третьих, я бы не делал редактирование строки (в задании об этом ничего не сказано) и написал примерно так:
Код:
uses crt;
var ch : char;
  flagF2 : boolean;
  cnt : integer;
begin
  flagF2 := false;
  cnt := 0;

  WriteLn;
  Write('введите текст: ');

  repeat
    ch := readkey;
    if ch=#0 then begin
      ch := readkey;
      flagF2 := (ch = #60); {если нажали F2 - flagF2 станет true }
    end
    else begin
      Write(ch);
      if ch='e' then Inc(cnt);
    end;
  until flagF2;
  WriteLn;
  WriteLn('Буква "e" встретилась ', cnt, ' раз.');
  WriteLn; WriteLn('Press any kay to exit...');
  ch := Readkey;
  if ch=#0 then ch := Readkey;
end.

p.s. хотя, конечно, и это решение может быть подвергнуто справедливой критике, оно явно не идеально.. Ну, какое задание, такое и решение!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.10.2013, 13:11   #4
unbanned
Форумчанин
 
Аватар для unbanned
 
Регистрация: 23.11.2010
Сообщений: 530
По умолчанию

Serge_Bliznykov, спасибо, приму к сведению
unbanned вне форума Ответить с цитированием
Старый 12.10.2013, 14:11   #5
лина 555
 
Регистрация: 01.10.2013
Сообщений: 3
По умолчанию

я нажимаю F2 на клавиатуре и у меня не считает количество букв, в чем проблема может быть?
лина 555 вне форума Ответить с цитированием
Старый 12.10.2013, 19:37   #6
unbanned
Форумчанин
 
Аватар для unbanned
 
Регистрация: 23.11.2010
Сообщений: 530
По умолчанию

если у вас ноутбук, то проблема может быть в следующем... у меня по умолчанию при нажатии на клавиши F1-F12 регулируется подсветка экрана, переключаются треки в проигрывателе и т.д. и т.п.
и есть клавиша, написанно на ней "fn". вообщем нужно нажать fn + F2

Последний раз редактировалось unbanned; 12.10.2013 в 19:44.
unbanned вне форума Ответить с цитированием
Старый 16.10.2013, 20:21   #7
лина 555
 
Регистрация: 01.10.2013
Сообщений: 3
По умолчанию

я нажимаю с кнопкой fn и все равно тоже самое, текст вводится, а f2 ввожу, счетчик не считает, помогите пожалуйста. может дело в программе, она неверна
лина 555 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
дан текст.конец ввода f1 заменить все . на ! и найти их количество Casper098 Помощь студентам 1 01.12.2011 06:28
Вводится текст. Конец ввода F6. Найти количество заглавных букв. (Паскаль) Casper098 Помощь студентам 2 06.10.2011 06:03
Вводится текст. Конец ввода <F1>. Найти кол-во букв "А" Руся93 Помощь студентам 4 02.10.2011 12:24
Pascal.найти количество русских букв Мaрина Помощь студентам 5 28.06.2011 16:29
Подсчитать количество букв "А" в предложении и общее количество букв.В тексте из файла несколько строк. kvas91 Общие вопросы C/C++ 3 14.11.2010 16:51