![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Анна |
![]()
Сообщение
#1
|
Гость ![]() |
Код Найти в исходном символьном массиые слово РАК и заменить его в результирующем массиве словом ЩУКА без потери символов Вот задание, а вот что у меня получилось а алгоритмом, не знаю правильно или нет, порпавьте если что не так. Почему-то у Вас файлы не прикрепляются ![]() Вот ссылка на мой алгоритм: http://ork.53535.ru/Drawing2.vsd |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Анна, так не пойдет... Что такое VSD файл? CorelDraw? В правилах мы просим оффисные файлы не выкладывать, а уж третьесторонние программы так и подавно...
Неужели нельзя прикрепить изображение в распространенном формате? Вот у меня, например, нет на компьютере CorelDraw... Я думаю, кстати, что не только у меня... |
hiv |
![]()
Сообщение
#3
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 660 Пол: Мужской Реальное имя: Михаил Репутация: ![]() ![]() ![]() |
Это в формате MS Visio. Там к стати есть такой вариант: файл сохранить как и выбрать PNG формат. Вот картинка:
![]() -------------------- Никогда не жадничай. Свои проблемы с любовью дари людям!
|
Анна |
![]()
Сообщение
#4
|
Гость ![]() |
To: volvo
VSD - это расширение файлов visio, я в ней составляла алгоритм, он большой, поэтому в одну картинку поместить не могу ![]() ![]() |
Анна |
![]()
Сообщение
#5
|
Гость ![]() |
Ну как алгоритм?
![]() |
Selena |
![]()
Сообщение
#6
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 39 Пол: Женский Реальное имя: Ольга Репутация: ![]() ![]() ![]() |
Я давным давно делала что-то похожее. Вот посмотри.
Прикрепленные файлы ![]() |
Анна |
![]()
Сообщение
#7
|
Гость ![]() |
To: Selena
Спасибо, но у нас совсем разные алгоритмы. И кстатит, какое у тебя задание было? Посчитать сколько раз встречается слово "стоимостью"? и потом домножить на "2" ? ps Мне алгоритм мой нужно проверить ... правильный он или нет? Никто не разбирается что ли? ![]() |
Анна |
![]()
Сообщение
#8
|
Гость ![]() |
Да и ещё, у тебя в курсовой нет описания алгоритма ... сколько тебе за неё хоть поставили?
|
Анна |
![]()
Сообщение
#9
|
Гость ![]() |
Помогите укоратить программу, сделать её попроще, но чтобы смысл не терялся.
Program Kursovik;
var
i, j, x, k, n : Integer;
a, b : array[1..1000] of Char;
s: string;
begin
writeln('Vvedite stroku: ');
readln(s);
i:=1; j:=1; k:=0; x:=0;
repeat
x := x + 1;
a[x]:=s[x];
until x = length(s);
while not (i > x) do
begin
if not (( ( ord(a[i-1])>159 ) and (ord(a[i-1])<176) ) or ((ord(a[i-1])>223) and (ord(a[i-1])<240))) then
if a[i] = 'р' then
if a[i+1] = 'а' then
if a[i+2] = 'к' then
if not ((( ord(a[i+3])>159 ) and (ord(a[i+3])<176) ) or ((ord(a[i+3])>223) and (ord(a[i+3])<240))) then
begin
b[j] := 'щ';
b[j+1] := 'у';
b[j+2] := 'к';
b[j+3] := 'а';
i := i + 3;
j := j + 4;
end
else begin b[j] := a[i]; i := i + 1; j := j + 1; end
else begin b[j] := a[i]; i := i + 1; j := j + 1; end
else begin b[j] := a[i]; i := i + 1; j := j + 1; end
else begin b[j] := a[i]; i := i + 1; j := j + 1; end
else begin b[j] := a[i]; i := i + 1; j := j + 1; end
end;
write('Resoult massiv:');
repeat
k := k + 1;
write(b[k]);
until k = j;
readln;
end.
Помогите упростить вот эти строчки: not (( ( ord(a[i-1])>159 ) and (ord(a[i-1])<176) ) or ((ord(a[i-1])>223) and (ord(a[i-1])<240)))
|
volvo |
![]()
Сообщение
#10
|
Гость ![]() |
not (
((ord(a[i-1])>159) and (ord(a[i-1])<176))
or
((ord(a[i-1])>223) and (ord(a[i-1])<240))
)
аналогично not (
a[i-1] in [#160 .. #175, #224 .. #239]
)
, если я не ошибаюсь... |
klem4 |
![]()
Сообщение
#11
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Хмм .. а во так интересно можно сделать ?
uses crt;
var
s : array[1..80] of char;
temp : string;
n,i,p : byte;
begin
clrscr;
write('n='); readln(n);
temp := '';
for i := 1 to n do begin
readln(s[i]);
temp := temp + s[i];
end;
writeln;
writeln(temp);
p := pos('рак', temp);
if p = 0 then writeln('N0')
else begin
delete(temp, p,3);
insert('щука',temp, p);
for i := 1 to length(temp) do
s[i] := temp[i];
inc(n);
end;
writeln;
for i := 1 to n do
write(s[i]);
readln;
end.
-------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
klem4 |
![]()
Сообщение
#12
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Еще вариант :
uses crt;
const
fish : array [0..3] of char = ('щ','у','к','а');
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<=n-2) do
if (s[i] = 'р') and (s[i+1]='а') and (s[i+2]='к') 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);
end
else inc(i);
writeln;
for i := 1 to n do write(s[i]);
readln
end.
Сообщение отредактировано: klem4 - 23.11.2005 17:25 -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Selena |
![]()
Сообщение
#13
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 39 Пол: Женский Реальное имя: Ольга Репутация: ![]() ![]() ![]() |
Это не курсовая была, а лабораторная. Отн ас не требуют писменого описания алгоритма. Мы рассказываем устно. А получила я 4.
|
Анна |
![]()
Сообщение
#14
|
![]() Бывалая ![]() ![]() ![]() Группа: Пользователи Сообщений: 290 Пол: Женский Реальное имя: Анютка Репутация: ![]() ![]() ![]() |
Вот, закончила работу над алгоритмом, а также программой, вот что получилось.
БОЛЬШАЯ просьба: подправьте меня, если что не так ... Program Kursovik;
var
i, j, x, k, n : Integer;
a, b : array[1..1000] of Char;
s: string;
begin
writeln('Введите строку: ');
readln(s);
i:=1; j:=1; k:=0; x:=0;
repeat
x := x + 1;
a[x]:=s[x];
until x = length(s);
while not (i > x) do
begin
if not (a[i-1] in [#160.. #175, #224..#239]) then
if a[i] = 'р' then
if a[i+1] = 'а' then
if a[i+2] = 'к' then
if not (a[i+3] in [#160.. #175, #224..#239]) then
begin
b[j] := 'щ';
b[j+1] := 'у';
b[j+2] := 'к';
b[j+3] := 'а';
i := i + 3;
j := j + 4;
end
else begin b[j] := a[i]; i := i + 1; j := j + 1; end
else begin b[j] := a[i]; i := i + 1; j := j + 1; end
else begin b[j] := a[i]; i := i + 1; j := j + 1; end
else begin b[j] := a[i]; i := i + 1; j := j + 1; end
else begin b[j] := a[i]; i := i + 1; j := j + 1; end
end;
write('Результат: ');
repeat
k := k + 1;
write(b[k]);
until k = j;
readln;
end.
Эскизы прикрепленных изображений ![]() |
klem4 |
![]()
Сообщение
#15
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Анна, а чем мое второе решение не понравилось ? мне кажется оно проще да и по короче будет ...
-------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Анна |
![]()
Сообщение
#16
|
![]() Бывалая ![]() ![]() ![]() Группа: Пользователи Сообщений: 290 Пол: Женский Реальное имя: Анютка Репутация: ![]() ![]() ![]() |
Не учёл условия, что если к примеру вводить "ракрак", то результатом должно быть "ракрак". Нужно СЛОВО (отдельностоящее) заменить (т.е. нужно чтобы слева и справа от слова небыло букв, а были только либо знаки, либо пробел)
Вот в той программе это учитывается, при вводе "ракрак" или "ракапавпк" результатом эти строки и остаются. |
klem4 |
![]()
Сообщение
#17
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Цитата Нужно СЛОВО (отдельностоящее) заменить В том чтобыло написано тобой выше я такой фразы не видел ![]() -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Анна |
![]()
Сообщение
#18
|
![]() Бывалая ![]() ![]() ![]() Группа: Пользователи Сообщений: 290 Пол: Женский Реальное имя: Анютка Репутация: ![]() ![]() ![]() |
По мне это само собой подразумевало. Сказано "Найти в исходном символьном массиые слово ..." Разве, к примеру ввести строчку "раки" - то результатом не будет являться "щукаи", т.к. в этом случае слово РАКИ, а не РАК
![]() |
volvo |
![]()
Сообщение
#19
|
Гость ![]() |
Анна, проверь:
const
alpha = [#160.. #175, #224..#239];
var
s: string;
p, start: integer;
begin
write('s = '); readln(s);
p := 0;
repeat
start := p;
p := start + pos('рак', copy(s, start + 1, 255));
if
(
(p <> start)
and
((p = 1) or ( (p > 1) and not(s[p-1] in alpha)))
and
((p + 2 = length(s)) or ((p + 2 < length(s)) and not(s[p+3] in alpha)))
) then
begin
delete(s, p, 3);
insert('щука', s, p);
end;
until p = start;
writeln(s);
end.
![]() |
Анна |
![]()
Сообщение
#20
|
![]() Бывалая ![]() ![]() ![]() Группа: Пользователи Сообщений: 290 Пол: Женский Реальное имя: Анютка Репутация: ![]() ![]() ![]() |
volvo
Правильно, только небольшая поправка в строке: alpha = [#48..#57, #160.. #175, #224..#239];
Чтобы при наличии цифр в начале или в конце слова, результат оставался тот же. И ещё, ![]() ![]() ![]() |
![]() ![]() |
![]() |
Текстовая версия | 25.07.2025 23:32 |