Разработать в среде Turbo Pascal программу удаления заданных элементов массива.
Дан одномерный массив ненулевых целых чисел размера N. 1. Определить количество участков, на которых его элементы возрастают, найти сумму элементов самого длинного участка. 2. Поменять местами первую и вторую половины массива. 3. Удалить из массива все элементы с четными номерами. Условный оператор не использовать. Для отладки программы исходный массив сформировать с помощью генератора случайных чисел. Program Num_1; uses crt; var n,i,j,k,max,schet,lght,sum,maxsum: integer; a:array [1..100] of integer; begin clrscr; randomize; write('Введите размер массива: '); readln(n); writeln('Сгенерированный массив: '); for i:=1 to n do begin a[i]:=-10+random(50); write(a[i]:4); end; writeln; writeln; writeln('Задание 1. '); max:=0; schet:=0; i:=2; while i<=n do if a[i]>a[i-1] then begin inc(schet); j:=i; lght:=1; sum:=a[i-1]; while(j<=n)and(a[j]>a[j-1]) do begin sum:=sum+a[j]; inc(lght); inc(j); end; if lght>max then begin max:=lght; maxsum:=sum; end; i:=i+lght; end else i:=i+1; if schet=0 then writeln('Нет участков возрастания') else begin writeln('Количество участков=', schet,'. Максимальная длина=',max); writeln('Сумма первого самого длинного участка: ',maxsum); end; writeln; writeln('Задание 2'); if odd(n) then j:=1 else j:=0; for i:=1 to n div 2 do begin k:=a[i]; a[i]:=a[n div 2+j+i]; a[n div 2+j+i]:=k; end; writeln('Изменённый массив: '); for i:=1 to n do write(a[i]:4); writeln; writeln; writeln('Задание 3'); i:=2; while i<=n do begin for j:=i to n-1 do a[j]:=a[j+1]; dec(n); i:=i+1 end; writeln('Измененный массив: '); for i:=1 to n do write(a[i]:4); readkey; end. |
Часовой пояс GMT +4, время: 00:20. |
Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.