08.08.2014, 13:47 | #1 (permalink) |
Member
Регистрация: 27.05.2013
Сообщений: 29
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Турбо паскаль
1) Задана последовательность из N чисел. Найти самую длинную последовательность, обладающую следующим свойством: Ai<Ai+1>Ai+2<Ai+3>Ai+4<… 2) Построить график функции y=cos(x-1)+|x| Заранее спасибо |
08.08.2014, 13:47 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Схожие темы могут помочь вам в решении вопроса Помогите составить программу на турбо паскаль Турбо Паскаль. Задание на анимацию Турбо Паскаль. Тип запись Турбо Паскаль. Рекурсии Программа в Турбо-Паскаль 7,0 |
08.08.2014, 19:33 | #2 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
Код:
Const N=100; Var k1,k2,i,Nbeg,Nbeg_max:Byte; A:Array[1..N] of Byte; Function Test(Q1,Q2,Q3:Integer):Boolean; begin Test:=((Q1>Q2) and (Q3>Q2)) or ((Q1<Q2) and (Q3<Q2)); end; Begin Randomize; Writeln('Initial sequence:'); for i:=1 to N do begin A[i]:=Random(200); Write(A[i]:4); end; Writeln; Writeln; i:=1; k1:=0; k2:=0; Repeat Nbeg:=i; repeat if (i<N-1) and Test(A[i],A[i+1],A[i+2]) then Inc(k2); Inc(i); until (i>=N-1) or Not(Test(A[i-1],A[i],A[i+1])); if k2>k1 then begin Nbeg_max:=Nbeg; k1:=k2; end; k2:=0; Until i>=N-1; Writeln; Writeln; Writeln('Longest subsequence:'); for i:=Nbeg_max to Nbeg_max+k1+1 do Write(A[i]:4); Readln End. |
|
09.08.2014, 10:15 | #3 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Так, ну прежде всего, поскольку Вы не сподобились указать диапазон значений аргумента, для которого нужно строить график, выбор этого диапазона я оставляю за собой и ставлю принудительно от -2.0 до +2.0. Претензии типа "а мне надо от -3 до +7" НЕ ПРИНИМАЮТСЯ.
Далее. Инициализацию графического режима задавайте сами. Параметры функции InitGraph определяются именами Ваших драйверов, их адресами на Вашем диске и т.д. Если возникнут проблемы, прошу в эту тему: Турбо Паскаль. Задание на анимацию - там инициализация графики разобрана подробно. Код:
Uses CRT, Graph; Const ShX=30; ShY=30; Var CfX,CfY,Xgr,Ygr,i:Integer; x,y,dx:Real; s:String; Function F(z:real):Real; begin F:=Cos(z-1.0)+Abs(z); end; Begin InitGraph(..., ...); { тут самостоятельно } CfX:=(GetMaxX-2*ShX) div 4; CfY:=(GetMaxY-2*ShY) div 3; SetLineStyle(SolidLn,0,ThickWidth); Line(ShX,GetMaxY-ShY,ShX+CfX*4,GetMaxY-ShY); Line(ShX,ShY,ShX,ShY+CfY*3); SetLineStyle(DottedLn,0,NormWidth); SetTextJustify(CenterText, TopText); x:=-2.0; STR(x:4:1,s); OutTextXY(ShX,ShY+CfY*3+8,s); for i:=1 to 8 do begin x:=-2.0+0.5*i; STR(x:4:1,s); Xgr:=ShX+Round(0.5*i*CfX); OutTextXY(Xgr,ShY+CfY*3+8,s); Line(Xgr,ShY,Xgr,ShY+CfY*3); end; SetTextJustify(RightText, CenterText); y:=0; STR(y:3:1,s); OutTextXY(ShX-4,GetMaxY-ShY,s); for i:=1 to 6 do begin y:=0.5*i; STR(y:3:1,s); Ygr:=GetMaxY-ShY-Round(y*CfY); OutTextXY(ShX-4,Ygr,s); Line(ShX,Ygr,ShX+Round(CfX*4),Ygr); end; SetLineStyle(SolidLn,0,ThickWidth); x:=-2.0; y:=Cos(-3.0)+2; Xgr:=ShX; Ygr:=GetMaxY-ShY-Round(F(x)*CfY); MoveTo(Xgr,Ygr); dx:=0.02; for i:=1 to 200 do begin x:=x+dx; y:=F(x); Xgr:=ShX+Round((x+2)*CfX); Ygr:=GetMaxY-ShY-Round(F(x)*CfY); LineTo(Xgr,Ygr); end; ReadKey; CloseGraph; End. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|