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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.05.2011, 13:00   #1
1Dima
Подтвердите свой е-майл
 
Регистрация: 23.03.2011
Сообщений: 16
Печаль string

плиз помогите с задачкой не понимаю почему не работает!(
программа которая заменяет все буквы (а,е,i,o,u,y)
на слоги sa, se,si,so,su,sy.
у меня заменяет только первый символ не одной s, а дублирует несколько раз
Код:
uses
  SysUtils;

var   rad,cumv: string;
        i,L: integer;
begin
        write ('Vvedit text latunskumu literamu: ');
        readln (rad);
        cumv:='';
        L:=length (rad);
        for i:=1 to L do
                begin
                cumv:=rad[i];
                if cumv='а' then
                Insert('s',rad,i);
                if cumv='o' then
                Insert('s',rad,i);
                if cumv='e' then
                Insert('s',rad,i);
                if cumv='u' then
                Insert('s',rad,i);
                if cumv='i' then
                Insert('s',rad,i);
                if cumv='y' then
                Insert('s',rad,i);
                end;
        writeln (rad);
        readln;
end.
1Dima вне форума Ответить с цитированием
Старый 29.05.2011, 13:15   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

А зачем вам cumv?
Кроме вставки (insert) надо же еще удалить этот символ. И ошибка в синтаксисе там у вас: insert(rad, 'sa', i), rad — в какую строку вставляем, 'sa' (или другая строка без кавычек) — что вставляем.
И после этого у вас изменится количество символов в строке. Поэтому цикл должен быть downto, а не to.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 29.05.2011, 13:24   #3
1Dima
Подтвердите свой е-майл
 
Регистрация: 23.03.2011
Сообщений: 16
По умолчанию

я в етом деле новичек - мало что понял(
1Dima вне форума Ответить с цитированием
Старый 29.05.2011, 13:43   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Ну кроме вставки символа, надо еще воспользоваться Delete для удаления старого символа. И т.к. изменится кол-во символов в строке, то надо в цикле идти не с начала (i:=1 to length(rad) ), а с конца (i:=length(rad) downto 1). И не понятна роль строки cumv в этой программе. Можно же сразу rad[i] проверять, без присваиваивания значения rad[i] другой строке.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
string :( Настя93 Помощь студентам 7 02.11.2010 14:03
String большого размера, более 255 String[255] bitSoft Общие вопросы Delphi 9 28.03.2010 19:45
Как получить адрес String строки или преобразовать String madboy4ik Общие вопросы по Java, Java SE, Kotlin 6 15.01.2010 11:57
String Chartvit Общие вопросы C/C++ 2 01.12.2009 18:04
string dreamish Общие вопросы C/C++ 18 04.09.2009 17:18