Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Паскаль, работа с векторами и со строками

15K
22 января 2007 года
Monika
26 / / 14.10.2006
Здравствуйте!
Помогите, пожалуйста, решить задачи. Заранее всех благодарю за отклики!
1. Составить главную программу и процедуру. В процедуре для данного вектора А(М) найти наибольшую по длине возрастающую последовательность элементов вектора.
242
22 января 2007 года
Оlga
2.2K / / 04.02.2006
Monika, читай пожалуйста правила форума Студентам. [COLOR=red]Одна тема - один вопрос[/COLOR]
15K
24 января 2007 года
Monika
26 / / 14.10.2006
Написала алгоритм, наверно он далек от оптимального, но какой есть...

Код:
program vector;
uses crt;
var a: array [1..50] of integer;
i,x,n,l, m, j, k, y: integer;
begin
clrscr;
write ('vvedite razmernost vectora, n=');
readln (n);
writeln ('vvedite koordinaty vectora:');
i:=0;
while i<n do
begin
read(x); a:=x; i:=i+1;
end;
readln;
i:=0; l:=1; m:=0; k:=0; j:=-1;
while i<n do
begin
if a<a[i+1] then
begin
l:=l+1;
if j=-1 then j:=i;
end
else begin l:=1; j:=-1; end;
if l>m then
begin
m:=l; k:=j;
end;
i:=i+1;
end;
if k=-1 then k:=0;
writeln;
for j:=k to m+k-1 do
write(a[j],' ');
readln;
end.


l - считает, какая длина у этой возраст последовательности, m - максимум этой длины, k- номер позиции, начиная с которой идет эта макс. последовательность.

Код корявый, но вроде работает, выводит максимальную последовательность, только в конце ставит какие-то закорючки, рожицы, ромбики и т.д (один из этих символов). с чем это связано и как с этим бороться?
325
24 января 2007 года
Franky
723 / / 10.08.2005
хммм... а где процедура, что нужна по условию? ;)

"только в конце ставит какие-то закорючки, рожицы, ромбики и т.д"
значит это неопределенный элемент массива. Т.е. выводишь больше символов чем надо.
Как вариант можно очищать массив (for i:=1 to 50 do a:='';), тогда этого не будет... или смотри где у тебя вылазит вывод за пределы полезной инф. массива.
15K
26 января 2007 года
Monika
26 / / 14.10.2006
Я пока пишу без всяких процедур, лишь бы прога работала, потом запихну в процедуру. Все никак не могу избавиться от рожиц и закорючек, теперь они (1 символ) появляются перед выводом последовательности. Посмотрите, пожалуйста, что не так... :o
l - считает, какая длина у этой возраст последовательности, m - максимум этой длины, k- номер позиции, начиная с которой идет эта макс. последовательность.
Код:
program vector;
uses crt;
var a: array [1..50] of integer;
i,x,n,l, m, j, k: integer;
begin
clrscr;
write ('vvedite razmernost vectora, n=');
readln (n);
writeln ('vvedite koordinaty vectora and press Enter:');
for i:=0 to n-1 do
begin
read(x); a:=x;
end;
readln;
l:=1; m:=0; k:=0; j:=-1;
for i:=1 to n-1 do
begin
if a[i-1]<a then
begin
l:=l+1;
if j=-1 then j:=i-1;
end
else begin l:=1; j:=-1; end;
if l>m then
begin
m:=l; k:=j;
end;
end;
if k=-1 then k:=0;
writeln;
i:=k;
for j:=0 to m-1 do
write(a[i+j],' ');
readln;
end.
325
26 января 2007 года
Franky
723 / / 10.08.2005
Код:
program vector;
uses crt;
var a: array [1..50] of integer;
i,x,n,l, m, j, k: integer;
begin
clrscr;
write ('vvedite razmernost vectora, n=');
readln (n);
writeln ('vvedite koordinaty vectora and press Enter:');
for i:=1 to n-1 do
begin
read(x); a:=x;
end;
readln;
l:=1; m:=0; k:=0; j:=-1;
for i:=1 to n-1 do
begin
if a<a[i+1] then
begin
l:=l+1;
if j=-1 then j:=i-1;
end
else begin l:=1; j:=-1; end;
if l>m then
begin
m:=l; k:=j;
end;
end;
if k=-1 then k:=0;
writeln;
i:=k;
for j:=1 to m do
write(a[i+j],' ');
readln;
end.

Уфф!! У меня она вообще изначально не работала. Ты обращалась к эл a[0], которого нет в принципе.
Тестил под 7.0
А вообще молодец, почти все правильно написала! :)
15K
26 января 2007 года
Monika
26 / / 14.10.2006
Franky, спасибо тебе большое! :) :)
325
26 января 2007 года
Franky
723 / / 10.08.2005
можно цветами и конфетами... в большой таре... не крепче 20% :)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог