• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Помогите построить блок-схему

  • Автор темы Автор темы Abelkim
  • Дата начала Дата начала

Abelkim

Ученик
Регистрация
19 Май 2019
Сообщения
1
Реакции
0
Баллы
0
Разработать в среде 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:=-10+random(50);
write(a:4);
end;
writeln;
writeln;
writeln('Задание 1. ');
max:=0;
schet:=0;
i:=2;
while i<=n do
if a>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;
a:=a[n div 2+j+i];
a[n div 2+j+i]:=k;
end;
writeln('Изменённый массив: ');
for i:=1 to n do
write(a: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:4);
readkey;
end.
 
Назад
Сверху