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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.02.2008, 03:17   #1
sergeyfsd
Пользователь
 
Регистрация: 13.12.2007
Сообщений: 11
По умолчанию процедура, которая выводит все слова, начинающиеся с согласных букв латинского алфавита.

Никак не получаеться решить
Задача:
Описать процедуру, которая выводит все слова, начинающиеся с согласных букв латинского алфавита.
sergeyfsd вне форума Ответить с цитированием
Старый 21.02.2008, 08:32   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ниче сложного, вот примерно так:
Код:
var s:string;
procedure ok(a:string);
var i:integer;b:boolean;
begin
 i:=2;
 a:=' '+a;
 while i<=length(a) do begin
  if (a[i] in ['a','e'])and(a[i-1]=' ') then
   while (a[i]<>' ')and(i<=length(a)) do begin
    write(a[i]);
    inc(i);
   end;
   writeln; inc(i);
 end;
end;
begin
 readln(s);
 ok(s);
 readln;
end.
Твоя задача доставить в проверку оставшиеся согласные, и решить баг с немного некоректным выводом на экран (хотя если так устроит, то ради бога)
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.02.2008, 11:14   #3
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Немного поправлю код от Stileta.
1. Не нужна переменная b:boolean;
2. а,е - гласные буквы.
3.Поскольку гласных меньше, чем согласных, до с ними код будет короче, только тогда надо писать if (not a[i] in []). А чтобы не перечислять их в коде, лучше определить это множество константой.
4.Заодно исправил баг при выводе.
Короче можно написать так.
Код:
uses crt;
const gl=['a','A','e','E','i','I','j','J','o','O','u','U','y','Y'];
var s:string;
procedure ok(a:string);
var i:integer;
begin
i:=2; a:=' '+a;
while i<=length(a)do
   begin
     if(not (a[i] in gl))and(a[i-1]=' ')then
        begin
           while(a[i]<>' ')and(i<=length(a)) do
              begin
                write(a[i]);
                inc(i);
              end;
           writeln;
        end;
     inc(i);
   end;
end;
begin
clrscr;
readln(s);
ok(s);
readln
end.
puporev вне форума Ответить с цитированием
Старый 21.02.2008, 11:51   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
1. Не нужна переменная b:boolean;
Я не виноват, ОНИ сами написали, ОНИ уже улетели на Альфа Центавру...
Цитата:
4.Заодно исправил баг при выводе.
Я то думал оставить это автору чтоб хоть что-то сам подумал. )
Короче с автора тебе пиво.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.02.2008, 14:08   #5
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Ну, извини, что влез.
puporev вне форума Ответить с цитированием
Старый 21.02.2008, 14:37   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Да ниче страшного, автор пусть спасибо скажет.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.02.2008, 22:29   #7
sergeyfsd
Пользователь
 
Регистрация: 13.12.2007
Сообщений: 11
По умолчанию

Спасибо вам други =)) ещё есть добряки в нашем мире =)
sergeyfsd вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
впочему не выводит сумму???? макс07 Общие вопросы C/C++ 2 15.05.2008 20:25
Найти и вывести все слова,у котоpых число гласных букв пpевышает число согласных. Briz Помощь студентам 2 11.05.2008 00:56
процедура, которая вычисляет объем шара motaro Паскаль, Turbo Pascal, PascalABC.NET 2 21.01.2008 19:22
программа, которая выводит на экран одно из данных слов vados Паскаль, Turbo Pascal, PascalABC.NET 11 26.10.2007 23:47