Анна, так не пойдет... Что такое VSD файл? CorelDraw? В правилах мы просим оффисные файлы не выкладывать, а уж третьесторонние программы так и подавно...
Неужели нельзя прикрепить изображение в распространенном формате? Вот у меня, например, нет на компьютере CorelDraw... Я думаю, кстати, что не только у меня...
hiv
22.11.2005 21:24
Это в формате MS Visio. Там к стати есть такой вариант: файл сохранить как и выбрать PNG формат. Вот картинка:
To: volvo VSD - это расширение файлов visio, я в ней составляла алгоритм, он большой, поэтому в одну картинку поместить не могу Вот в с раширением *doc http://ork.53535.ru/drawling.doc по-другому не могу
Анна
23.11.2005 0:22
Ну как алгоритм?
Selena
23.11.2005 0:36
Я давным давно делала что-то похожее. Вот посмотри.
Анна
23.11.2005 1:49
To: Selena Спасибо, но у нас совсем разные алгоритмы. И кстатит, какое у тебя задание было? Посчитать сколько раз встречается слово "стоимостью"? и потом домножить на "2" ?
ps Мне алгоритм мой нужно проверить ... правильный он или нет? Никто не разбирается что ли?
Анна
23.11.2005 1:51
Да и ещё, у тебя в курсовой нет описания алгоритма ... сколько тебе за неё хоть поставили?
Анна
23.11.2005 19:52
Помогите укоратить программу, сделать её попроще, но чтобы смысл не терялся.
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
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
23.11.2005 20:26
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
23.11.2005 20:38
Хмм .. а во так интересно можно сделать ?
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.
klem4
23.11.2005 21:19
Еще вариант :
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.
Selena
23.11.2005 23:56
Это не курсовая была, а лабораторная. Отн ас не требуют писменого описания алгоритма. Мы рассказываем устно. А получила я 4.
Анна
24.11.2005 0:53
Вот, закончила работу над алгоритмом, а также программой, вот что получилось. БОЛЬШАЯ просьба: подправьте меня, если что не так ...
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
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
24.11.2005 1:06
Анна, а чем мое второе решение не понравилось ? мне кажется оно проще да и по короче будет ...
Анна
24.11.2005 1:33
Не учёл условия, что если к примеру вводить "ракрак", то результатом должно быть "ракрак". Нужно СЛОВО (отдельностоящее) заменить (т.е. нужно чтобы слева и справа от слова небыло букв, а были только либо знаки, либо пробел) Вот в той программе это учитывается, при вводе "ракрак" или "ракапавпк" результатом эти строки и остаются.
klem4
24.11.2005 1:37
Цитата
Нужно СЛОВО (отдельностоящее) заменить
В том чтобыло написано тобой выше я такой фразы не видел
Анна
24.11.2005 1:51
По мне это само собой подразумевало. Сказано "Найти в исходном символьном массиые слово ..." Разве, к примеру ввести строчку "раки" - то результатом не будет являться "щукаи", т.к. в этом случае слово РАКИ, а не РАК
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.
Анна
24.11.2005 2:27
volvo Правильно, только небольшая поправка в строке:
alpha = [#48..#57, #160.. #175, #224..#239];
Чтобы при наличии цифр в начале или в конце слова, результат оставался тот же.
И ещё, , алгоритм был сделан под мою задачу, переделывать что ли .. даже и не знаю . Да и вообще с pos, delete ... плохо знакома. И поэтому сама программа не так понятна
klem4
24.11.2005 12:17
Цитата
Да и вообще с pos, delete ... плохо знакома. И поэтому сама программа не так понятна
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); (* длина массива увеличилась на единицу, так как щука длинее рака на один символ ) *) 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.
Altair
24.11.2005 22:36
const r='rak'; h='hyka'; var
s: string; begin writeln('Enter string: '); readln(s); while pos(r,s)<>0 do begin insert(h,s,pos(r,s)); delete(s,pos(r,s),3); end; writeln(s); readln end.
klem4
24.11.2005 22:36
Олег !!! Ухаха, надо символьный массив использовать !!! Задание читал ?
Altair
24.11.2005 22:40
To: klem4 , ты меня начинаешь выводить из себя... своим гонором и неоправданным самомнением... перевести символьный массив в строку ....
у меня скомпилилось и сработало так:
Program Kursovik; {$R+} const r='rak'; h='hyka'; var
s: string; c:array[1..5] of char; begin c[1]:='r'; c[2]:='a'; c[3]:='k'; c[4]:='1'; c[5]:='2'; s:=c; writeln('Enter string: '); { readln(s);} while pos(r,s)<>0 do begin insert(h,s,pos(r,s)); delete(s,pos(r,s),3); end; writeln(s); readln end.
klem4
24.11.2005 22:43
из строки rak12 должна получиться строка rak12
Altair
24.11.2005 22:45
Цитата
Найти в исходном символьном массиые слово РАК и заменить его в результирующем массиве словом ЩУКА без потери символов
Цитата
из строки rak12 должна получиться строка rak12
исходя из условия должно быть hyka12 ибо нигде не сказанно что слова долдны чем то разделятся (ты на это типа намекнул )
вобщем если каша в теме будет продолжаться, она будет закрыта, из-за отсутствия темы обсуждения как таковой!
Не учёл условия, что если к примеру вводить "ракрак", то результатом должно быть "ракрак". Нужно СЛОВО (отдельностоящее) заменить (т.е. нужно чтобы слева и справа от слова небыло букв, а были только либо знаки, либо пробел) Вот в той программе это учитывается, при вводе "ракрак" или "ракапавпк" результатом эти строки и остаются.
volvo
24.11.2005 22:55
Сколько еще вариантов решения надо предложить, чтобы это НАКОНЕЦ-ТО устроило автора темы???
Altair
24.11.2005 23:02
Цитата
Сколько еще вариантов решения надо предложить, чтобы это НАКОНЕЦ-ТО устроило автора темы???
Уже предложенно порядочно что бы удовлетворить всех и все...
Анна
25.11.2005 1:32
Давайте не будем ругаться. Я вообще не просила писать мне программу, я выложила свою программу и алгоритм на ваш суд.
А тему закрывать не надо. Ещё может будет обсуждение самого алгоритма.
volvo
25.11.2005 4:07
Цитата
Ещё может будет обсуждение самого алгоритма.
Правда? А зачем? Чтобы тебе написали еще 3-4 версии, а ты сказала, "Я не просила мне ничего писать, я хотела только пообсуждать"? Спасибо, второй раз такой вариант не проходит...
Кроме этого, я бы порекомендовал разобраться с терминологией. Что есть Алгоритм? Этот твой рисунок? Ха... Тогда что есть блок-схема этого самого алгоритма? Так вот в этом и есть вся проблема: сначала надо было придумать АЛГОРИТМ (словесное описание процесса решения задачи), и пообсуждать его, если тебе очень этого хотелось. А теперь обсуждать нечего, ты всем навязала свой способ решения. Ну, так пользуйся.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.