04.05.2016, 18:07 | #1 (permalink) |
Member
Регистрация: 07.04.2016
Сообщений: 26
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Четыре задачи в одной программе
В одномерном массиве, состоящем из n вещественных элементов 1) вычислить сумму элементов массива, расположенных между первым и вторым отрицательными элементами; 2) преобразовать массив таким образом, чтобы сначала располагались все элементы, модуль которых не превышает 1, а потом – все остальные; 3) упорядочить элементы массива по убыванию, используя пузырьковую сортировку; 4) найти заданный элемент в упорядоченном массиве, используя бинарный метод поиска. |
04.05.2016, 18:07 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Посетителями нашего форума ранее создавалось что то похожее Вирус не дает запуститься ни одной программе Четыре легких задачи на Pascal Помогите решить четыре задачи в Паскале Четыре задачи на массивы Все файлы запускаются в одной программе |
04.05.2016, 21:04 | #2 (permalink) |
Member
Регистрация: 31.03.2010
Адрес: Тульская область
Сообщений: 1,309
Сказал(а) спасибо: 11
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 13090
|
Код:
uses Crt; const n=10; type Tmass=array[1..n] of Real; var a:Tmass; x,y,z,d:integer; sum,t:Real; begin ClrScr; Writeln('Massiv:'); Writeln; Randomize; for x:=1 to n do begin a[x]:=(Random(41)-20)/10; Write(a[x]:6:1); end; Writeln; Writeln; z:=0; sum:=0; for x:=1 to n do if a[x]<0 then begin y:=x; Inc(z); Break; end; if z=0 then Writeln('Net otricatelnih elementov') else if y=n then Writeln('Net vtorogo otricatelnogo elementa') else begin for x:=y+1 to n do if a[x]<0 then begin Inc(z); Break; end else sum:=sum+a[x]; if z=2 then Writeln('Summa elementov mezhdu 1 i 2 otricatelnimi = ',sum:4:1) else Writeln('Net vtorogo otricatelnogo elementa'); end; Writeln; x:=1; repeat if x=1 then Inc(x) else if Abs(a[x])<1 then begin t:=a[x]; for y:=x downto 2 do a[y]:=a[y-1]; a[1]:=t; Inc(x); end else Inc(x); until x>n; Writeln('Noviy massiv:'); Writeln; for x:=1 to n do Write(a[x]:6:1); Writeln; Writeln; for x:=1 to n-1 do for y:=1 to n-x do if a[y]<a[y+1] then begin t:=a[y]; a[y]:=a[y+1]; a[y+1]:=t; end; Writeln('Massiv sortirovanniy po ubivaniju:'); Writeln; for x:=1 to n do Write(a[x]:6:1); Writeln; Writeln; Write('Cislo dlja poiska = '); Readln(t); Writeln; z:=0; x:=1; y:=n; repeat d:=(x+y) div 2; if t=a[d] then begin z:=d; Break; end; if t<a[d] then x:=d+1 else y:=d-1; until x>y; if z=0 then Writeln('V massive net dannogo cisla') else Writeln('Dannoe cislo imeet poziciju - ',z); ReadKey; end. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|