Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.12.2009, 21:03   #1
siemwseh
Новичок
Джуниор
 
Регистрация: 21.12.2009
Сообщений: 2
Печаль Проблема с процедурами

Собственно сама задача......Задан целочисленный одномерный массив A из N элементов. Найти номер первого максимального элемента среди элементов, значения которых меньше U и расположенных после первого положительного элемента. Если нет положительных элементов, искать с начала массива. (Подсказка: «Сначала найти первый положительный и последний меньший U, а затем уже искать максимум, или вывести сообщение о причинах невозможности поиска.»)



Собственно сама проблема ...нужно чтоб сама программа была написанно с 2-3 процедурами или функциями...не считая процедуры ввода и вывода...я пытался добавить процедуры но программа переставала корректно работать...можете помочь..


Собственно сама програма


procedure Vvod(var v:mas;var x:integer;var dat,res:textfile);//ввод массива
var i:integer;
begin
write(res,'Razmer Massiva: ');
readln(dat,x);
writeln(res,x);
writeln('VVedite ',x,' elementov massiva:');
for i:=1 to x do
readln(dat,v[i]);
writeln(res,'Massiv:');
for i:=1 to x do
write(res,v[i],' ');
writeln(res);
writeln(res);
end;
Procedure Search(v:mas;x:integer;u:integer;va r mx1:integer;var dat,res:textfile);//поиск
var i,p1,f1,f2:integer;
begin
f1:=0;
for i:=1 to x do//ищем первый положительный
if v[i]>0 then
begin
p1:=i;//нашли
f1:=1;//выходим из цикла
break;
end;
if f1=0 then//если нет вообще
begin
writeln(res,'Net pologitelnix elementov!');
readln(dat);
exit;//выходим
end;
f2:=0;
for i:=p1+1 to x do//ищем в хвосте меньше u
if v[i]<u then
begin
f2:=1;
mx1:=i;//нашли
break;//выходим
end;
if f2=0 then//если нет
begin
writeln(res,'net elementov menwe ',u,' posle pervogo pologitelnogo!');
readln(dat);
exit;
end;
for i:=p1+1 to x do
if (v[i]>v[mx1])and(v[i]<u) then mx1:=i;//ищем номер максимального
writeln(res,'nomer pervogo maximalnogo= ',mx1);
Writeln(res,'U= ',u,' ');
readln(dat);
end;
var
dat, res: TextFile;
a:mas;
n,u,umax:integer;
Begin
assignFile(dat, paramstr(1)); Reset (dat);
assignFile(res, paramstr(2)); Rewrite (res);
Vvod(a,n,dat,res);
Write('Vvedite U=');
readln(dat,u);
Search(a,n,u,umax,dat,res);
CloseFile(dat); CloseFile(res);
end.
siemwseh вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сделать процедурами Айдар Помощь студентам 9 01.12.2009 22:22
Задача с процедурами Серафимий Долговяз Помощь студентам 4 14.02.2009 18:55