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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.03.2014, 19:52   #1
Iskryen
Пользователь
 
Регистрация: 21.01.2014
Сообщений: 31
По умолчанию Паскаль. Множества.

Добрый вечер, уважаемые Форумчане!
Вновь обращаюсь к Вам за помощью.
Дана Программа.
Работает.
На выходе:
При вводе с клавиатуры слова "Илюша",
Программа подсчитывает количество гласных и согласных букв.
Внимание, вопрос!
А как сделать так, чтобы она учитывала пробел?
Что для этого надо дописать в Программе?
Я пробовал ввести дополнительную переменную, но не получалось...
Не исключено, что я делал это неправильно.
Помогите мне, пожалуйста! )))
Код:

Proram Podch;

Use crt;

Type Bukva = set of ‘А’ .. ‘я’;

Var Sogl, Glasn : Bukva; Text : String; S, G, i : byte;

Begin

Clrscr;

Glasn: = [‘И’,’и’,’Ю’,’ю’, ‘А’, ‘а’]; 
{Присваиваются значения переменным Glasn и Sogl}

Sogl: = [‘Л’,’л’,’Ш’,’ш’];

Write (‘Введите предложение’);

Readln (Text); 
{Программа считывает набранный текст}

S:=0; G:=0; 
{Обнуление до начала подсчёта букв}

For i:=1 to  Length(Text) do

Begin

If Text[i] in Glasn then G:=G+1; 
{Определяется принадлежность буквы}

If Text[i] in Sogl then S:=S+1;

End;

Writeln (‘В предложении ’,Text, ‘ ‘, G, ‘ гласных и ‘,S, ‘ согласных букв’);

Readln;

End.
Я желаю всем достигнуть поставленных целей!
Iskryen вне форума Ответить с цитированием
Старый 23.03.2014, 20:08   #2
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
А как сделать так, чтобы она учитывала пробел?
Эм.. Не хватает некой конкретики..
Тоесть : "Илюша Илюща" : Сколько-то гласных, сколько-то согласных, 1 пробел.. так?
Poma][a вне форума Ответить с цитированием
Старый 23.03.2014, 20:14   #3
Iskryen
Пользователь
 
Регистрация: 21.01.2014
Сообщений: 31
По умолчанию Ответ

Да, да, извините. Я бы хотел строить предложения. Для этого мне и нужен учёт пробелов. А так Программа воспринимает только слитные предложения.
Я желаю всем достигнуть поставленных целей!
Iskryen вне форума Ответить с цитированием
Старый 23.03.2014, 20:22   #4
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Дык if s[i] = ' ' then Inc(cnt); и всё.. не?
Poma][a вне форума Ответить с цитированием
Старый 23.03.2014, 20:46   #5
Iskryen
Пользователь
 
Регистрация: 21.01.2014
Сообщений: 31
По умолчанию Ответ

А разве в самом начале, там где type, ничего добавлять не нужно? Я пытался добавить запись 'А'..'я', ' '; - но тогда выдаётся ошибка.
Ещё я пытался добавить новый type... Ведь символ пробела тоже нужно как-то обыграть в описании. Ну, Вы же знаете, я "ноль" в программировании, поэтому пишу суждения на доступном мне уровне. ))) Знаете, я очень надеюсь получить от Вас ответ, но смогу посмотреть его только завтра. Обязательно отпишусь. )))
В противном случае буду дальше биться.
Я желаю всем достигнуть поставленных целей!
Iskryen вне форума Ответить с цитированием
Старый 23.03.2014, 21:25   #6
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Хорошо.. давайте по порядку..
Для начала огласите свой компилятор (старенький Turbo, божественный Free, полный багов ABC, или отходящий от всех канонов ABC.NET?)
Далее..
Цитата:
Ведь символ пробела тоже нужно как-то обыграть в описании
Не совсем..
Цитата:
Type Bukva = set of ‘А’ .. ‘я’;
Это более наглядно, но, не берусь судить, возможно, чуть и не правильно.. ведь между 'A' и 'я' не все символы букофки..

Цитата:
Use crt;
Вы где-то потеряли букофку s ..

Так-с.. теперь к главному..

Компилятору совершенно всё равно, что будет в строке.. Ему главное, что Вы сказали, что будете читать строку, НЕ число, НЕ символ, а строку.. И даже если в этой строке будут служебные символы, даже если в этой строке будет проклятие на весь род людской, то компилятору будет совершенно безразлично!
Поэтому любой символ строки, Вы можете проверять на соответствие тому или иному символу..
Поэтому Вашу программку можно переделать так :
Код:
Program Podch; // где-то была потеряна буква g

// я убрал Crt, т.к. не вижу в нем острой необходимости

Type Bukva = set of ‘А’ .. ‘я’; // какие-то у Вас не такие кавычки ))

Var Sogl, Glasn : Bukva; Text : String; S, G, i, P : byte;

Begin
       
       Glasn: = [‘И’,’и’,’Ю’,’ю’, ‘А’, ‘а’]; 
       {Присваиваются значения переменным Glasn и Sogl}
       Sogl: = [‘Л’,’л’,’Ш’,’ш’];

       Write (‘Введите предложение’);
       
       Readln (Text); 
       {Программа считывает набранный текст}

       S:=0; G:=0; P := 0;
       {Обнуление до начала подсчёта букв}

       For i:=1 to  Length(Text) do
       Begin

              if Text[i] in Glasn then G:=G+1 else // добавил else, т.к. если символ в согласных, то его точно не будет в гласных
              {Определяется принадлежность буквы}
              If Text[i] in Sogl then S:=S+1
              else Text[i] = ' ' then P:=P+1
      End;

      Writeln (‘В предложении ’,Text, ‘ ‘, G, ‘ гласных и ‘,S, ‘ согласных букв и’ , P, ' пробелов');

      Readln;

End.
Poma][a вне форума Ответить с цитированием
Старый 24.03.2014, 09:16   #7
Iskryen
Пользователь
 
Регистрация: 21.01.2014
Сообщений: 31
По умолчанию Спасибо

Здравствуйте! Вот спасибо, так спасибо! ))) Знаете, даже обидно, что сам не додумал. Так что буду стараться лучше. Я использую Free Pascal, может быть, поэтому у нас были небольшие расхождения в оформлении.
Удачи! Ещё раз благодарю!
Я желаю всем достигнуть поставленных целей!
Iskryen вне форума Ответить с цитированием
Старый 24.03.2014, 09:24   #8
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
Я использую Free Pascal
Прекрасный выбор!
Цитата:
Так что буду стараться лучше.
Удачи!
Цитата:
Удачи! Ещё раз благодарю!
Спасибо! Не стоит
Poma][a вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Множества на Паскаль jemson Помощь студентам 4 16.04.2013 10:38
паскаль - Множества malenkaya Помощь студентам 2 22.04.2011 22:46
Множества паскаль Belii09878 Помощь студентам 5 16.05.2010 16:04
Множества(Паскаль) Lord123 Помощь студентам 6 03.05.2010 16:43