Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 02.05.2016, 12:37   #1 (permalink)
gaben134
Member
 
Регистрация: 07.04.2016
Сообщений: 26
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Одномерные массивы

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

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

Старый 02.05.2016, 12:37
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Можете ознакомится, тут наверняка есть дельные советы

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

Старый 02.05.2016, 16:35   #2 (permalink)
Евгений
Member
 
Аватар для Евгений
 
Регистрация: 31.03.2010
Адрес: Тульская область
Сообщений: 1,309
Сказал(а) спасибо: 11
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 13090
По умолчанию

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.
Евгений вне форума   Ответить с цитированием
Старый 02.05.2016, 23:37   #3 (permalink)
gaben134
Member
 
Регистрация: 07.04.2016
Сообщений: 26
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Цитата:
Сообщение от Евгений Посмотреть сообщение
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 можно?
gaben134 вне форума   Ответить с цитированием
Старый 03.05.2016, 18:00   #4 (permalink)
Евгений
Member
 
Аватар для Евгений
 
Регистрация: 31.03.2010
Адрес: Тульская область
Сообщений: 1,309
Сказал(а) спасибо: 11
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 13090
По умолчанию

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.
Евгений вне форума   Ответить с цитированием
Старый 04.05.2016, 15:29   #5 (permalink)
gaben134
Member
 
Регистрация: 07.04.2016
Сообщений: 26
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Цитата:
Сообщение от Евгений Посмотреть сообщение
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 задания
gaben134 вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 20:22.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.