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

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

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

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

Одномерные массивы

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

gaben134

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

Для каждого задания нужна отдельная программа, желательно сделать все предельно простыми методами, т.к много мы не проходили.

В одномерном массиве, состоящем из n вещественных элементов
1) вычислить сумму элементов массива, расположенных между первым
и вторым отрицательными элементами;
2) преобразовать массив таким образом, чтобы сначала располагались
все элементы, модуль которых не превышает 1, а потом – все
остальные;
3) упорядочить элементы массива по убыванию, используя
пузырьковую сортировку;
4) найти заданный элемент в упорядоченном массиве, используя
бинарный метод поиска.
Ниже выложил файл на что желательно опираться при разработке программ, заранее спасибо :)
 

Вложения

1.
Код:
uses  Crt;
const n=10;
type  Tmass=array[1..n] of integer;
var   a:Tmass;
      x,y,z,sum:integer;
begin
      ClrScr;
       Writeln('Massiv:');
        Writeln;
         Randomize;
       for x:=1 to n do
        begin
          a[x]:=Random(11)-4;
          Write(a[x]:4);
        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 = ',sum)
              else Writeln('Net vtorogo otricatelnogo elementa');
           end;
      ReadKey;
end.

2.

Код:
uses  Crt;
const n=10;
type  Tmass=array[1..n] of Real;
var   a:Tmass;
      x,y:integer;
      z:Real;
begin
      ClrScr;
       Writeln('Massiv:');
        Writeln;
         Randomize;
       for x:=1 to n do
        begin
          a[x]:=(Random(31)-10)/10;
          Write(a[x]:6:1);
        end;
         Writeln; Writeln;
       x:=1;
        repeat
           if x=1
            then Inc(x)
            else
             if Abs(a[x])<1
              then
               begin
                 z:=a[x];
                 for y:=x downto 2 do
                  a[y]:=a[y-1];
                 a[1]:=z;
                 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;
      ReadKey;
end.
 
1.
Код:
uses  Crt;
const n=10;
type  Tmass=array[1..n] of integer;
var   a:Tmass;
      x,y,z,sum:integer;
begin
      ClrScr;
       Writeln('Massiv:');
        Writeln;
         Randomize;
       for x:=1 to n do
        begin
          a[x]:=Random(11)-4;
          Write(a[x]:4);
        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 = ',sum)
              else Writeln('Net vtorogo otricatelnogo elementa');
           end;
      ReadKey;
end.

2.

Код:
uses  Crt;
const n=10;
type  Tmass=array[1..n] of Real;
var   a:Tmass;
      x,y:integer;
      z:Real;
begin
      ClrScr;
       Writeln('Massiv:');
        Writeln;
         Randomize;
       for x:=1 to n do
        begin
          a[x]:=(Random(31)-10)/10;
          Write(a[x]:6:1);
        end;
         Writeln; Writeln;
       x:=1;
        repeat
           if x=1
            then Inc(x)
            else
             if Abs(a[x])<1
              then
               begin
                 z:=a[x];
                 for y:=x downto 2 do
                  a[y]:=a[y-1];
                 a[1]:=z;
                 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;
      ReadKey;
end.

огромное спасибо, а 3 и 4 можно? :)
 
3.

Код:
uses  Crt;
const n=10;
type  Tmass=array[1..n] of integer;
var   a:Tmass;
      i,j,t:integer;
begin
      ClrScr;
       Writeln('Massiv:');
        Writeln;
         Randomize;
       for i:=1 to n do
        begin
          a[i]:=Random(100);
          Write(a[i]:4);
        end;
         Writeln;
          Writeln;
       for i:=1 to n-1 do
        for j:=1 to n-i do
         if a[j]<a[j+1] then
          begin
            t:=a[j];
            a[j]:=a[j+1];
            a[j+1]:=t;
          end;
       Writeln('Massiv sortirovanniy po ubivaniju:');
        Writeln;
       for i:=1 to n do
        Write(a[i]:4);
       Writeln;
      ReadKey;
end.

4.

Код:
uses  Crt;
const n=15;
type  Tmass=array[1..n] of integer;
var   a:Tmass;
      i,j,t,f,d:integer;
begin
      ClrScr;
       Writeln('Massiv:');
        Writeln;
         Randomize;
       for i:=1 to n do
        begin
          a[i]:=Random(1000);
          Write(a[i]:5);
        end;
         Writeln;
          Writeln;
       for i:=1 to n-1 do
        for j:=1 to n-i do
         if a[j]>a[j+1] then
          begin
            t:=a[j];
            a[j]:=a[j+1];
            a[j+1]:=t;
          end;
       Writeln('Sortirovanniy massiv:');
        Writeln;
       for i:=1 to n do
        Write(a[i]:5);
         Writeln;
          Writeln;
           Write('Cislo dlja poiska = ');
            Readln(t);
             Writeln;
       f:=0; i:=1; j:=n;
        repeat
           d:=(i+j) div 2;
           if t=a[d] then
            begin
              f:=d;
              Break;
            end;
           if t>a[d]
            then i:=d+1
            else j:=d-1;
        until i>j;
       if f=0
        then Writeln('V massive net dannogo cisla')
        else Writeln('Dannoe cislo imeet poziciju - ',f);
      ReadKey;
end.
 
3.

Код:
uses  Crt;
const n=10;
type  Tmass=array[1..n] of integer;
var   a:Tmass;
      i,j,t:integer;
begin
      ClrScr;
       Writeln('Massiv:');
        Writeln;
         Randomize;
       for i:=1 to n do
        begin
          a[i]:=Random(100);
          Write(a[i]:4);
        end;
         Writeln;
          Writeln;
       for i:=1 to n-1 do
        for j:=1 to n-i do
         if a[j]<a[j+1] then
          begin
            t:=a[j];
            a[j]:=a[j+1];
            a[j+1]:=t;
          end;
       Writeln('Massiv sortirovanniy po ubivaniju:');
        Writeln;
       for i:=1 to n do
        Write(a[i]:4);
       Writeln;
      ReadKey;
end.

4.

Код:
uses  Crt;
const n=15;
type  Tmass=array[1..n] of integer;
var   a:Tmass;
      i,j,t,f,d:integer;
begin
      ClrScr;
       Writeln('Massiv:');
        Writeln;
         Randomize;
       for i:=1 to n do
        begin
          a[i]:=Random(1000);
          Write(a[i]:5);
        end;
         Writeln;
          Writeln;
       for i:=1 to n-1 do
        for j:=1 to n-i do
         if a[j]>a[j+1] then
          begin
            t:=a[j];
            a[j]:=a[j+1];
            a[j+1]:=t;
          end;
       Writeln('Sortirovanniy massiv:');
        Writeln;
       for i:=1 to n do
        Write(a[i]:5);
         Writeln;
          Writeln;
           Write('Cislo dlja poiska = ');
            Readln(t);
             Writeln;
       f:=0; i:=1; j:=n;
        repeat
           d:=(i+j) div 2;
           if t=a[d] then
            begin
              f:=d;
              Break;
            end;
           if t>a[d]
            then i:=d+1
            else j:=d-1;
        until i>j;
       if f=0
        then Writeln('V massive net dannogo cisla')
        else Writeln('Dannoe cislo imeet poziciju - ',f);
      ReadKey;
end.

Спасибо огромное, а это все возможно в одну программу совместить? Если да то можно в одной все 4 задания
 
Назад
Сверху