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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.05.2008, 00:48   #1
gred
Пока ещё
Форумчанин
 
Аватар для gred
 
Регистрация: 26.02.2008
Сообщений: 116
По умолчанию Выделить русские слова скобками(паскаль)

Трудность возникает например.
Вводишь
go to home домой go to home
у меня получается
go to home(домой)go to home
а надо
go to home (домой) go to home
Плиз помогите заранее спасибо
Я мегапрограммер потерявший память.
Если кому помог, поставте '+' я буду благодарен
gred вне форума Ответить с цитированием
Старый 09.05.2008, 00:54   #2
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

А можно ещё раз только с кодом и поподробней.....
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 09.05.2008, 01:07   #3
gred
Пока ещё
Форумчанин
 
Аватар для gred
 
Регистрация: 26.02.2008
Сообщений: 116
По умолчанию

Код:
uses crt;
var
    str         : string;
    i           : integer;
   strlen      : integer;
   

function IsConsonant(c : char) : boolean;
begin

    result := c in ['Б','В','Г','Д','Ж','З','К',
                    'Л','М','Н','П','Р','С','Т',
                    'Ф','Х','Ц','Ч','Ш','Щ',
                    'б','в','г','д','ж','з','к',
                    'л','м','н','п','р','с','т',
                    'ф','х','ц','ч','ш','щ',
                    'у','е','ы','а','о','э','я',
                    'И','О','Е','А','ь','и'];
end;
begin
    write('Вв предложение: '); readln(str);

    strlen := length(str);

    for i:=1 to  strlen do begin
        if (IsConsonant(str[i])) and (not(IsConsonant(str[i-1]))) then 
        str[i-1]:='(';
        end;
    for i:=1 to  strlen do begin
        if (IsConsonant(str[i-1])) and (not(IsConsonant(str[i]))) then
        str[i]:=')';
        end;
     writeln(str) ;
    readln;
end.
ну вот вводишь например gяz (английскую русскую английскую букву)
должно получится g(я)z а получается (я)
Я мегапрограммер потерявший память.
Если кому помог, поставте '+' я буду благодарен

Последний раз редактировалось gred; 09.05.2008 в 01:12.
gred вне форума Ответить с цитированием
Старый 09.05.2008, 01:46   #4
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

А если ввести ещё одну(промежуточную) переменую типа стринг чтоб туда сбрасывать символы?
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 09.05.2008, 01:51   #5
gred
Пока ещё
Форумчанин
 
Аватар для gred
 
Регистрация: 26.02.2008
Сообщений: 116
По умолчанию

чтот начал делать муть какая то мож дописать
и возникла ешё одна проблема когда вводишь только русское слово выводится какието квадратики
Я мегапрограммер потерявший память.
Если кому помог, поставте '+' я буду благодарен
gred вне форума Ответить с цитированием
Старый 09.05.2008, 05:22   #6
maLoy*508
Форумчанин
 
Аватар для maLoy*508
 
Регистрация: 28.03.2008
Сообщений: 672
По умолчанию

а ты попробуй не заменять этот str[i-1] символ, а вставлять скобку командой insert. Ее синтаксис insert(что_вставлять, строка_куда_вставлять, позиция_с_какой_вставлять)
у меня работало... если не получиться отпиши сюда...
maLoy*508 вне форума Ответить с цитированием
Старый 09.05.2008, 12:27   #7
gred
Пока ещё
Форумчанин
 
Аватар для gred
 
Регистрация: 26.02.2008
Сообщений: 116
По умолчанию

Код:
for i:=1 to  strlen do begin
        if (IsConsonant(str[i])) and (not(IsConsonant(str[i-1]))) then
        iinsert('(',str,i);
        end;
    for i:=1 to  strlen do begin
        if (IsConsonant(str[i-1])) and (not(IsConsonant(str[i]))) then
       insert(')',str,i);
        end;
сделал так неработает вывожу gпg ((gпg
Я мегапрограммер потерявший память.
Если кому помог, поставте '+' я буду благодарен

Последний раз редактировалось gred; 09.05.2008 в 12:32.
gred вне форума Ответить с цитированием
Старый 09.05.2008, 17:52   #8
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
Стрелка Решение

Вот вам моё решение, работает 100%(+me):
Вложения
Тип файла: rar RUSSELKT.rar (382 байт, 10 просмотров)
Alter вне форума Ответить с цитированием
Старый 09.05.2008, 19:25   #9
gred
Пока ещё
Форумчанин
 
Аватар для gred
 
Регистрация: 26.02.2008
Сообщений: 116
По умолчанию

Спасиб как всегда всё элементарно
Я мегапрограммер потерявший память.
Если кому помог, поставте '+' я буду благодарен
gred вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Русские буквы в TurboPascal DartMrakkk Паскаль, Turbo Pascal, PascalABC.NET 4 10.03.2009 21:51
Задача со скобками в Паскале SEREG@ Помощь студентам 7 11.06.2008 15:01
Работа со скобками alikon1 Общие вопросы Delphi 7 15.11.2007 15:14
Реализовать возможность автоматического исправления слова "грамматика". Паскаль Den Помощь студентам 6 04.06.2007 10:48