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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.06.2009, 18:19   #1
f4rr3l
 
Регистрация: 06.01.2009
Сообщений: 7
По умолчанию Строки

Парни у кого есть время помогите со строками.
Первый пуркт я сделал а вот второй не выходит пожалуйста помогите сделать.

1. - Подсчитать сколько раз в строке встречается звонкая согласная.
1.1 - Вывести все звонкие согласные буквы, которые не входят ни в одно нечетное слово и входят в каждое четное слово.
Код:
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;
Var 
  s,sl: string; 
  k,i: integer;
begin
  { TODO -oUser -cConsole Main : Insert code here }
  Write('Введите строку:');
  ReadLn(s);
  Write('Введите звонкую согласную которую вы хотите узнать сколько раз она встречается в строке (Б, В, Г, Д, Ж, З, К, Л, М, П, Р, С, Т): ');
  ReadLn(sl); 
  k:=0;
  while pos(sl,s)>0 do 
  begin k:=k+1; 
    delete(s,pos(sl,s),length(sl)); 
  end; 
WriteLn(k);
end.
f4rr3l вне форума Ответить с цитированием
Старый 20.06.2009, 21:11   #2
Monte-Kristo
Пользователь
 
Регистрация: 03.03.2009
Сообщений: 27
По умолчанию

Ты где это задание брал?))) У меня на практике такое же было...)))))
Monte-Kristo вне форума Ответить с цитированием
Старый 21.06.2009, 17:28   #3
f4rr3l
 
Регистрация: 06.01.2009
Сообщений: 7
По умолчанию

Это моя лаба
f4rr3l вне форума Ответить с цитированием
Старый 21.06.2009, 18:46   #4
Gongled
Пользователь
 
Регистрация: 17.02.2009
Сообщений: 78
По умолчанию

Вроде оно. Если есть ошибки — говорите.
Код:
// 1. - Подсчитать сколько раз в строке встречается звонкая согласная.
// 1.1 - Вывести все звонкие согласные буквы, которые не входят
// ни в одно нечетное слово и входят в каждое четное слово.

program pr;
uses CRT;
type
  myarray = array['А'..'Я'] of boolean;
  symbol = set of char;
var
  a, b : myarray;
  i, k, j : integer;
  mn : symbol;
  s : string;
  c, sl : char;
  
begin
clrscr;

// Множество согласных звонких букв
mn := ['Б', 'В', 'Г', 'Д', 'Ж', 'З', 'К', 'Л', 'М', 'П', 'Р', 'С', 'Т'];
k := 1;

write('Введите строку: ');
read(s);

// Вводить до тех пор, пока не будет корректной согласной
repeat
write('Введите интересующую звонкую согласную: ');
read(sl);
until sl in mn;

for c:='А' to 'Я' do
begin
    // Предположим, все символы нам подходят
    a[c] := true;
    b[c] := true;
end;

while i<>length(s) do
begin
    inc(i);

    // Если встретим пробел, то прибавляем счётчик слов
    // и прибавляем к счётчику символов единицу
    if s[i]=' ' then
    begin
        inc(k);
        inc(i);
    end;
    
    //Переводим в верхний регистр
    c := upcase(s[i]);
    
    if k mod 2=1 then
    begin
        // Если буква в нечётном слове входит в множество,
        // то она не может претендовать (или не претендовать) на искомую букву
        if (c in mn) then a[c] := false;
    end
    else
    begin
        // Если буква в чётном слове входит в множество,
        // и она нас уже не устраивает так как встречается в нечётном слове,
        // то она нас уже точно не интересует.
        if (c in mn) and (not a[c]) then b[c] := false;
    end;
    
    // Считаем интересующую согласную
    if s[i]=sl then inc(j);
end;

// Вывод результатов
writeln('Результат: ');
writeln('Буква ',sl,' встречается в строке ',j,' раз.');

writeln('Список символов: ');
for c:='А' to 'Я' do
begin
    // Если буква входит в множество и удволетворяет обеим условиям
    // и существует в слове, то выводим её
    if (c in mn) and a[c] and b[c] and (pos(c,s)<>0) then writeln(c);
end;

end.
f4rr3l, зачем для подсчёта символов удалять их из строки?

P.S. Сильно не бейте. Я ещё школий :'-)
Пишу глупости.

Последний раз редактировалось Gongled; 21.06.2009 в 18:49.
Gongled вне форума Ответить с цитированием
Старый 21.06.2009, 18:59   #5
f4rr3l
 
Регистрация: 06.01.2009
Сообщений: 7
По умолчанию

Gongled, спасибо, вроде все верно.
f4rr3l вне форума Ответить с цитированием
Старый 22.06.2009, 17:04   #6
Somebody
Участник клуба
 
Регистрация: 08.10.2007
Сообщений: 1,185
По умолчанию

А это ничего, что К, П, С являются глухими (а в паре с ними звонкие Г, Б, З), а также ещё Й звонкая?
Somebody вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перенести символа с начала строки в место перед запятой этой же строки. Zhiltsov Microsoft Office Excel 4 05.06.2009 13:10
Строки. Как вывести часть строки? Anfall Общие вопросы Delphi 7 26.02.2009 09:10
считать из файла две строки, вывести на экран символы первой строки, которые отсутствуют во второй gotex Помощь студентам 4 08.05.2008 02:27
Строки Настена Помощь студентам 1 07.01.2008 23:47
как вывести строку поочередно сначала первая буква первой строки потом первая буква второй строки и т.д. vitalik007 Помощь студентам 1 25.09.2007 20:45