![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 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. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сделать процедурами | Айдар | Помощь студентам | 9 | 01.12.2009 22:22 |
Задача с процедурами | Серафимий Долговяз | Помощь студентам | 4 | 14.02.2009 18:55 |