IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Найти в исходном символьном массиые слово РАК ...
Анна
сообщение 22.11.2005 16:59
Сообщение #1


Гость






Код
Найти в исходном символьном массиые слово РАК и заменить его в результирующем массиве словом ЩУКА без потери символов

Вот задание, а вот что у меня получилось а алгоритмом, не знаю правильно или нет, порпавьте если что не так.

Почему-то у Вас файлы не прикрепляются sad.gif, пришлось попросить помощи
Вот ссылка на мой алгоритм: http://ork.53535.ru/Drawing2.vsd
 К началу страницы 
+ Ответить 
 
Closed Topic Открыть новую тему 
Ответов
klem4
сообщение 24.11.2005 9:59
Сообщение #2


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


вот так лучше ?

uses crt;
const
fish : array [0..3] of char = ('щ','у','к','а');
limits = [#0..#32,'.',',','!','?',':','"'];

var

s : array[1..80] of char;
n,i,j : byte;

begin

clrscr;

write('n='); readln(n); // количество элементов в массиве

FillChar(s, sizeof(s),0);

for i := 1 to n do readln(s[i]); // посимвольный ввод строки

writeln;

for i := 1 to n do write(s[i]); // вывод строки на экран

{$r-} // отключение проверки выхода за границы массива
i := 1;

while(i<=length(s)-2) do begin (* внешний цикл до момента достижения
i = length(s) -2, так как это последнй шанс когда там может находиться слово РАК *)
while(i<=length(s)-2) and (s[i] in limits)
do inc(i); // проходим по массиву пока не найдем букву

if (i<=length(s)-2) and (s[i] = 'р') and (s[i+1]='а') and (s[i+2]='к') and (s[i+3] in limits) then begin
(* Если начиная с найденной буквы следует слово РАК и за ним следует НЕ буква или оно стоит в конце массива,
то сдвигаем все символы на один элемент вправо и
начиная с символа хранащего букву Р слова РАК вставляем слово ЩУКА
*)
for j := n + 1 downto i do s[j] := s[j-1];
for j := 0 to 3 do
s[i+j] := fish[j];
inc(i,4); // проскакивае далее по массиву через добавленое слово ЩУКА
inc(n); (* длина массива увеличилась на единицу, так как щука длинее рака на один символ smile.gif)
*)
end
(* Если найденная группа букв НЕ слово рак с пробелом до и после него или
стоящее в конце строки, то идем по массиву дальше пока не закончится этот набор букв или строка
*)
else repeat
inc(i);
until (s[i] in limits) or (i=length(s)-2);
end;

writeln;

for i := 1 to n do write(s[i]); // выводм результат на экран.

readln
end.



--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Анна   Найти в исходном символьном массиые слово РАК ...   22.11.2005 16:59
volvo   Анна, так не пойдет... Что такое VSD файл? CorelDr...   22.11.2005 17:05
hiv   Это в формате MS Visio. Там к стати есть такой вар...   22.11.2005 17:24
Анна   To: volvo VSD - это расширение файлов visio, я в ...   22.11.2005 17:43
Анна   Ну как алгоритм? :nea:   22.11.2005 20:22
Selena   Я давным давно делала что-то похожее. Вот посмотри...   22.11.2005 20:36
Анна   To: Selena Спасибо, но у нас совсем разные алгори...   22.11.2005 21:49
Анна   Да и ещё, у тебя в курсовой нет описания алгоритма...   22.11.2005 21:51
Анна   Помогите укоратить программу, сделать её попроще, ...   23.11.2005 15:52
volvo   not ( ((ord(a[i-1])>159) and (ord(a[i-1])...   23.11.2005 16:26
klem4   Хмм .. а во так интересно можно сделать ? uses c...   23.11.2005 16:38
klem4   Еще вариант : uses crt; const fish : array [0...   23.11.2005 17:19
Selena   Это не курсовая была, а лабораторная. Отн ас не тр...   23.11.2005 19:56
Анна   Вот, закончила работу над алгоритмом, а также прог...   23.11.2005 20:53
klem4   Анна, а чем мое второе решение не понравилось ? мн...   23.11.2005 21:06
Анна   Не учёл условия, что если к примеру вводить ...   23.11.2005 21:33
klem4   В том чтобыло написано тобой выше я такой фразы ...   23.11.2005 21:37
Анна   По мне это само собой подразумевало. Сказано ...   23.11.2005 21:51
volvo   Анна, проверь: const alpha = [#160.. #175, #224....   23.11.2005 21:53
Анна   volvo Правильно, только небольшая поправка в строк...   23.11.2005 22:27
klem4   goto FAQ : Строки. :blum:   24.11.2005 8:17
klem4   вот так лучше ? uses crt; const fish : array [...   24.11.2005 9:59
Altair   const r='rak'; h='hyka'; var ...   24.11.2005 18:36
klem4   Олег !!! Ухаха, надо символьный массив...   24.11.2005 18:36
Altair   To: klem4 , ты меня начинаешь выводить из себя......   24.11.2005 18:40
klem4   из строки rak12 должна получиться строка rak12   24.11.2005 18:43
Altair   исходя из условия должно быть hyka12 ибо нигде н...   24.11.2005 18:45
klem4   Э-эх, ну ладно, понеслась! это что : http://fo...   24.11.2005 18:48
volvo   :mad: Сколько еще вариантов решения надо предложит...   24.11.2005 18:55
Altair   :4: Уже предложенно порядочно что бы удовлетвори...   24.11.2005 19:02
Анна   Давайте не будем ругаться. Я вообще не просила пис...   24.11.2005 21:32
volvo   Правда? А зачем? Чтобы тебе написали еще 3-4 верс...   25.11.2005 0:07


Closed Topic Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 27.07.2025 5:50
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"