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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2015, 22:54   #1
sasharom97
 
Регистрация: 24.11.2015
Сообщений: 9
По умолчанию 1.Описать функцию, которая возвращает количество слов, в которых содержится хотя бы одна заданная буква.

2.Описать процедуру, которая печатает все буквы, входящие в строку менее К раз, с указанием количества вхождений.
Помогите пожалуйста исправить или что не дописал.

1.
Код:
uses crt;
var i: integer;
    s: string;
    b: char;
 
function Kolslov(z:string; y:char):integer;
var sl:string;
    e,j,k,kk:integer;
begin
z:=z+' '; sl:='';
for e:=1 to length(z) do
    if z[e]<>' ' then sl:=sl+z[e] else
       if length(sl)>0 then
          begin
          k:=0;
          for j:=1 to length(sl) do
              if sl[j]=y then inc(k);
          if k>0 then inc(kk);
          sl:='';
          end;
Kolslov:=kk;
end;
 
 
begin
write('s=');
readln(s);
write('b=');
readln(b);
write('В ',Kolslov(s,b),' словах есть символ ',b);
readln;
end.
Код:
2. program Twwo;
 
uses crt;
 
var s: string;
    i: integer;
    c: char;
    p: array ['a'..'z'] of integer;
    f: boolean;
begin
for c := 'a' to 'z' do p[c] := 0;
writeln('Enter string:');
readln(s);
i := 1;
while ((s[i] <> '.') and (i <= length(s))) do begin
  if s[i] in ['a'..'z'] then p[s[i]] := p[s[i]] + 1;
  i := i + 1;
end;
f := false;
for c := 'a' to 'z' do if p[c] >= 2 then f := true;
if f
  then begin
    write('>= 2 symbols: ');
    for c := 'a' to 'z' do if p[c] >=2 then write(c);
    writeln;
  end
  else writeln('Not found');
readln;
end.

Последний раз редактировалось Stilet; 07.12.2015 в 10:00.
sasharom97 вне форума Ответить с цитированием
Старый 07.12.2015, 09:36   #2
alex234
 
Регистрация: 26.09.2015
Сообщений: 5
По умолчанию

Задача 2.
Ты нигде не вводишь K; в твоём примере K=2 и выводятся буквы которые встречаются >=2, а по условию нужно <K.

После readln(s) можно добавить:
Код:
Write('K= '); ReadLn(k);
А вместо твоего алгоритма выбора (от f:=false) я б написал что-то вроде:
Код:
Write('>k: ');
For c:='a' to 'z' do
  If (p[c]<>0) AND (p[c]<k) then Write(c,'(',p[c],') ');
alex234 вне форума Ответить с цитированием
Старый 07.12.2015, 10:01   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Не пойму, чем код-то не устроил?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
количество слов, первая и последняя буква которых совпадают gred Помощь студентам 4 13.11.2014 13:56
C++ Задан текст. Определить количество слов, в которых встречается буква, вводимая с клавиатуры. V-alterman Помощь студентам 2 07.12.2013 19:43
Функция,которая определяет, встречается ли заданная буква, которая передается в функцию как параметр harvey Помощь студентам 1 31.03.2013 00:15
Вывод слов у которых в iой позиции одна и та же буква( язык C) NNAndr Помощь студентам 8 14.01.2013 09:14
Определить количество слов, в которых буква 'П' встречается хотя бы один раз. edgeks Помощь студентам 0 18.11.2012 15:34