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

Вот ссылка на мой алгоритм: http://ork.53535.ru/Drawing2.vsd
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
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 - -------------------- 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];
Чтобы при наличии цифр в начале или в конце слова, результат оставался тот же. И ещё, ![]() ![]() ![]() |
![]() ![]() |
![]() |
Текстовая версия | 18.04.2025 16:51 |