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

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

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

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

Четыре задачи в одной программе

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

gaben134

Новые
Регистрация
7 Апр 2016
Сообщения
26
Реакции
0
Баллы
0
Четыре задачи в одной программе

Ранее я создал тему, где Евгений помог мне, огромное ему спасибо, но у меня вопрос, возможно ли эти 4 задания в одной программе объединить? Если кому не сложно помогите пожалуйста!
В одномерном массиве, состоящем из n вещественных элементов
1) вычислить сумму элементов массива, расположенных между первым
и вторым отрицательными элементами;
2) преобразовать массив таким образом, чтобы сначала располагались
все элементы, модуль которых не превышает 1, а потом – все
остальные;
3) упорядочить элементы массива по убыванию, используя
пузырьковую сортировку;
4) найти заданный элемент в упорядоченном массиве, используя
бинарный метод поиска.
 
Код:
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.
 
Назад
Сверху