Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 26.09.2018
Сообщений: 8

Массив: Создать массив из 140 элементов, выводящий 3 разных массива по 30 элементов...

26.09.2018, 07:51. Показов 2410. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Создать массив из 140 элементов (значения от 1.000 до 3.000 включительно), выводящий 3 разных массива по 30 элементов.

Разность сумм каждого из массивов не должна превышать 1.500.
Т.е к примеру массив а=35.000, б=36.000,.. с не может быть в таком случае 37.000 т.к это на 2.000 больше а.

Моих знаний не хватает на такое, но очень нужно.

Добавлено через 19 минут
upd. Элементы каждого из 3 массивов должны выбираться случайно из 140 элементов. Если элемент повторяется то его значение надо приравнять к нулю

Добавлено через 1 час 48 минут
upd.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
program massivy;
var
a : array[1..140] of integer;
i : integer;
i2: integer;
i3: integer;
begin
randomize;
for i :=1 to 30 do
begin
  a[i] := random(1000,3000);
 if (a[i] > 1000) and (a[i] < 3000) then writeln('massiv1='+a[i]);
 end;
 for i2 :=31 to 61 do
 begin
  a[i2] := random(1000,3000);
 if (a[i2] > 1000) and (a[i2] < 3000) then writeln('massiv2='+a[i2]);
 end;
 for i3 :=62 to 92 do
 begin
  a[i3] := random(1000,3000);
 if (a[i3] > 1000) and (a[i3] < 3000) then writeln('massiv3='+a[i3]);
end;
end.

Вот пока что к чему я пришёл, проблема в том что тут упущены последние ~50 элементов. Нужно же чтоб из 140 рандомных элементов выбрало 90 неповторяющихся
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.09.2018, 07:51
Ответы с готовыми решениями:

Массив: Записать в файл массив из 6 элементов таких, что являются суммами элементов столбцов исходного массива
Помогите, пожалуйста, написать программу на языке Pascal В текстовом файле записан набор чисел всего 3 строки и 6 столбцов. требуется...

Даны два одномерных массива целых чисел (массив A, состоящий из n элементов, массив B - из m элементов)
Даны два одномерных массива целых чисел (массив A, состоящий из n элементов, массив B - из m элементов), заполненных случайным образом...

Одномерный массив. Создать массив Х суммы среднеарифметического элементов массива А с каждым элементом массива А
Дан массив А.Создать массив Х суммы среднеарифметического элементов массива А с каждым элементом массива А.

16
Эксперт Pascal/Delphi
2388 / 1300 / 1492
Регистрация: 29.08.2014
Сообщений: 4,665
26.09.2018, 11:04
Лучший ответ Сообщение было отмечено Ламер1995 как решение

Решение

на старом паскале нарисовал:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
type TArr=array [1..30] of integer;
     TlargeArr=array[1..140] of integer; 
 
function ArrSum(a:TArr):longint;
var
  i:integer;
  r:longint;
begin
  r:=0;
  for i:=low(a) to High(a) do r:=r+a[i];
  ArrSum:=r;
end;    
 
function TakeEl(var a:TlargeArr;nstart:integer):integer;
var
  i:integer;
begin
  for i:=nstart to High(a) do if a[i]<>0 then break;
  if a[i]=0 then for i:=low(a) to nstart do if a[i]<>0 then break;
  TakeEl:=a[i];  
  a[i]:=0;
end; 
 
procedure GenArr(var a:TlargeArr;i1,i2:integer);
var
  i,j,k:integer;
  b:boolean;
begin  
  for i:=Low(a) to High(a) do begin
    repeat
      b:=true;
      j:=random(i2-i1+1)+i1;
      for k:=1 to i-1 do if a[k]=j then begin b:=false;break;end;
    until b;  
    a[i]:=j;
//    write(a[i],' ');
   end;
end;
 
procedure CopyArr(a:TlargeArr;var b:TlargeArr);
var
  i:integer;
begin
  for i:=low(a) to high(a) do b[i]:=a[i];
end;    
 
var 
  a,b:TlargeArr;
  c,d,e:TArr;  
  i:integer;
begin
  randomize;
  GenArr(a,1000,3000);
  repeat
    CopyArr(a,b);
    for i:=1 to 30 do begin
       c[i]:=TakeEl(b,Random(140)+1);
       d[i]:=TakeEl(b,Random(140)+1);     
       e[i]:=TakeEl(b,Random(140)+1);     
     end;   
   until (abs(ArrSum(c)-ArrSum(d))<=1500) and 
         (abs(ArrSum(c)-ArrSum(e))<=1500) and 
         (abs(ArrSum(e)-ArrSum(d))<=1500);
   for i:=1 to 30 do writeln(i:5,c[i]:7,d[i]:7,e[i]:7);   
   writeln;
   writeln(' ':5,ArrSum(c):7,ArrSum(d):7,ArrSum(e):7);   
end.
1
0 / 0 / 0
Регистрация: 26.09.2018
Сообщений: 8
26.09.2018, 11:23  [ТС]
Спасибо, буду вникать! Теперь вместо рандомных 140 чисел нужно задать свои, вручную неудобно поэтому воспользуюсь чтением из .txt. Про Assign читаю как раз сейчас, если есть идеи как это сюда встроить: Буду рад ознакомиться, в познавательных целях, ессно
0
Эксперт Pascal/Delphi
2388 / 1300 / 1492
Регистрация: 29.08.2014
Сообщений: 4,665
26.09.2018, 12:54
Цитата Сообщение от Ламер1995 Посмотреть сообщение
Теперь вместо рандомных 140 чисел нужно задать свои, вручную неудобно поэтому воспользуюсь чтением из .txt.
а числа в файле уникальные? Файл как выглядит?
0
0 / 0 / 0
Регистрация: 26.09.2018
Сообщений: 8
27.09.2018, 02:57  [ТС]
Да, выборка из 140 чисел. Другая программка формирует .txt файлик, в котором через запятую записаны числа.
Пример:
"...2000,2001,2022,2945,..."
Т.е нужно чтоб числа взялись из текстовика № 1, и записались в текстовик №2, к примеру. Пока всё ещё вожусь с этим
0
0 / 0 / 0
Регистрация: 26.09.2018
Сообщений: 8
27.09.2018, 03:03  [ТС]
Цитата Сообщение от Joy Посмотреть сообщение
а числа в файле уникальные? Файл как выглядит?
Пример во вложении
Вложения
Тип файла: txt Новый текстовый документ.txt (696 байт, 6 просмотров)
0
Эксперт Pascal/Delphi
2388 / 1300 / 1492
Регистрация: 29.08.2014
Сообщений: 4,665
27.09.2018, 05:52
в файле 139 записей, а не 140!
и в Файле числа повторяются!
добавь процедуру:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
procedure ReadArr(var a:TlargeArr;fname:string);
var
  t:string;
  c:char;
  f:text;
  i:integer;
procedure AddElem(var t:string;var a,i:integer);
var
  j:integer;
begin
  Val(t,a,j);
  i:=i+1;
  t:='';
end;    
begin
  assign(f,fname);
  reset(f);
  i:=Low(a);
  while not eof(f) do begin
    while not eoln(f) do begin
      read(f,c);
      if (c=',') and (i<=High(a)) then AddElem(t,a[i],i) else t:=t+c;
    end;
    if (t<>'') and (i<=High(a)) then AddElem(t,a[i],i);
    readln(f);  
   end;
   close(f);   
end;
и в вместо
Pascal
1
2
3
4
5
...
begin
  randomize;
  GenArr(a,1000,3000);
  ...
должно быть
Pascal
1
2
3
4
5
6
...
begin
//  randomize;
//  GenArr(a,1000,3000);
  ReadArr(a,'test.txt');
...
Добавлено через 27 минут
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
type TArr=array [1..30] of integer;
     TlargeArr=array[1..140] of integer; 
 
function ArrSum(a:array of integer):longint;
var
  i:integer;
  r:longint;
begin
  r:=0;
  for i:=low(a) to High(a) do r:=r+a[i];
  ArrSum:=r;
end;    
 
function TakeEl(var a:array of integer;nstart:integer):integer;
var
  i:integer;
begin
  for i:=nstart to High(a) do if a[i]<>0 then break;
  if a[i]=0 then for i:=low(a) to nstart do if a[i]<>0 then break;
  TakeEl:=a[i];  
  a[i]:=0;
end; 
 
procedure ReadArr(var a:array of integer;fname:string;delimeter:string);
var
  t:string;
  c:char;
  f:text;
  i:integer;
procedure AddElem(var t:string;var a,i:integer);
var
  j:integer;
begin
  Val(t,a,j);
  i:=i+1;
  t:='';
end;    
begin
  assign(f,fname);
  reset(f);
  i:=Low(a);
  while not eof(f) do begin
    while not eoln(f) do begin
      read(f,c);
      if (Pos(c,delimeter)>0) and (i<=High(a)) then AddElem(t,a[i],i) else t:=t+c;
    end;
    if (t<>'') and (i<=High(a)) then AddElem(t,a[i],i);
    readln(f);  
   end;
   close(f);   
end;    
 
procedure GenArr(var a:array of integer;i1,i2:integer);
var
  i,j,k:integer;
  b:boolean;
begin  
  for i:=Low(a) to High(a) do begin
    repeat
      b:=true;
      j:=random(i2-i1+1)+i1;
      for k:=1 to i-1 do if a[k]=j then begin b:=false;break;end;
    until b;  
    a[i]:=j;
//    write(a[i],' ');
   end;
end;
 
procedure CopyArr(a:array of integer;var b:array of integer);
var
  i:integer;
begin
  for i:=low(a) to high(a) do b[i]:=a[i];
end;    
 
procedure Swap2Int(var a,b:integer);
var
  t:integer;
begin
  t:=a;
  a:=b;
  b:=t;
end;    
 
procedure ArrSort(var a:array of integer;desc:boolean);
var
  i,j:integer;
begin
  for i:=low(a) to high(a)-1 do
    for j:=i+1 to high(a) do
      if (a[i]<a[j]=desc) then Swap2Int(a[i],a[j]);
end; 
 
Procedure ArrDistinct(var a:array of integer);
var
  i,j:integer;
begin
  for i:=low(a) to high(a) do
    for j:=i-1 downto low(a) do
      if a[i]=a[j] then begin a[i]:=0;break;end;
end;  
 
procedure ArrPrint(var a:array of integer;count,npos:integer);
var
  i,j:integer;
begin
  j:=0;
  for i:=low(a) to high(a) do begin
    j:=j+1;
    write(a[i]:npos);
    if j mod count=0 then writeln;
  end;  
end;
 
var 
  a,b:TlargeArr;
  c,d,e:TArr;  
  i:integer;
begin
//  randomize;
//  GenArr(a,1000,3000);//заполнение массива
  ReadArr(a,'test1.txt',',');//чтение массива 
  ArrPrint(a,10,6);writeln;//печать массива
//  ArrSort(a,True);//сортировка массива по убыванию
//  ArrPrint(a,10,6);readln;
  ArrDistinct(a);// обнуляем задвоенные элементы в массиве
  ArrPrint(a,10,6);writeln;
  repeat
    CopyArr(a,b);
    for i:=1 to 30 do begin
       c[i]:=TakeEl(b,Random(140)+1);
       d[i]:=TakeEl(b,Random(140)+1);     
       e[i]:=TakeEl(b,Random(140)+1);     
     end;   
   until (abs(ArrSum(c)-ArrSum(d))<=1500) and 
         (abs(ArrSum(c)-ArrSum(e))<=1500) and 
         (abs(ArrSum(e)-ArrSum(d))<=1500);
   for i:=1 to 30 do writeln(i:5,c[i]:7,d[i]:7,e[i]:7);   
   writeln;
   writeln(' ':5,ArrSum(c):7,ArrSum(d):7,ArrSum(e):7);   
end.
1
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,060
27.09.2018, 06:30
Ламер1995, у вас в файле 139 чисел.
Прочитать их в одно действие вот так:
Pascal
1
2
3
4
5
begin
  var arr := ReadAllText('док1.txt').ToWords(',').Select(s->StrToInt(s));
  arr.PrintLn;
  Writeln(arr.Count);
end.
А вот, скажем, если бы числа разделялись только пробелом и/или переводом строки, то было бы гораздо проще:
Pascal
1
2
3
4
5
begin
  var arr := ReadAllText('док1.txt').ToIntegers;
  arr.PrintLn;
  Writeln(arr.Count);
end.
Файл с числами может выглядеть так:
Code
1
2
3
4
5
6
7
2141 2084 2185 2050 2051 2482 2125 2222 2215
2486 2131 2100 2046 2258 2373 2329 2226 2305
2306 2298 2306 2490 2495 2463 2285 2301 2292
2322 2400 2400 2482 2398 2383 2515 2382 2428
2172 2071 2067 2236 2118 2144 2497 2085 2131
2070 2236 2181 2059 2168 2288 2171 2138 2166
2226 2173 2311 2302 2295 2300 2441
1
0 / 0 / 0
Регистрация: 26.09.2018
Сообщений: 8
27.09.2018, 07:42  [ТС]
Выдаёт ошибку: Program1.pas(122) : Неправильный тип параметров подпрограммы.

Текстовик подправил, пробовал обоими решениями. Проблема в версии паскаля?

И ещё, файл надо ложить в папку с испольняющим файлом программы или можно просто путь прописать в 122 строке?
Вложения
Тип файла: txt test.txt (840 байт, 3 просмотров)
0
233 / 32 / 19
Регистрация: 10.06.2016
Сообщений: 123
27.09.2018, 11:43
Цитата Сообщение от Ламер1995 Посмотреть сообщение
Выдаёт ошибку: Program1.pas(122) : Неправильный тип параметров подпрограммы.
там Joy код под другой паскаль писал. на этом так(сильно не правил):
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
function ArrSum(a:array of integer):longint;
var
  i:integer;
  r:longint;
begin
  r:=0;
  for i:=low(a) to High(a) do r:=r+a[i];
  ArrSum:=r;
end;    
 
function TakeEl(var a:array of integer;nstart:integer):integer;
var
  i:integer;
begin
  for i:=nstart to High(a) do if a[i]<>0 then break;
  if a[i]=0 then for i:=low(a) to nstart do if a[i]<>0 then break;
  TakeEl:=a[i];  
  a[i]:=0;
end; 
 
procedure ReadArr(var a:array of integer;fname:string;delimeter:string);
var
  t:string;
  c:char;
  f:text;
  i:integer;
procedure AddElem(var t:string;var a,i:integer);
var
  j:integer;
begin
  Val(t,a,j);
  i:=i+1;
  t:='';
end;    
begin
  assign(f,fname);
  reset(f);
  i:=Low(a);
  while not eof(f) do begin
    while not eoln(f) do begin
      read(f,c);
      if (Pos(c,delimeter)>0) and (i<=High(a)) then AddElem(t,a[i],i) else t:=t+c;
    end;
    if (t<>'') and (i<=High(a)) then AddElem(t,a[i],i);
    readln(f);  
   end;
   close(f);   
end;    
 
procedure GenArr(var a:array of integer;i1,i2:integer);
var
  i,j,k:integer;
  b:boolean;
begin  
  for i:=Low(a) to High(a) do begin
    repeat
      b:=true;
      j:=random(i2-i1+1)+i1;
      for k:=1 to i-1 do if a[k]=j then begin b:=false;break;end;
    until b;  
    a[i]:=j;
//    write(a[i],' ');
   end;
end;
 
procedure CopyArr(a:array of integer;var b:array of integer);
var
  i:integer;
begin
  for i:=low(a) to high(a) do b[i]:=a[i];
end;    
 
procedure Swap2Int(var a,b:integer);
var
  t:integer;
begin
  t:=a;
  a:=b;
  b:=t;
end;    
 
procedure ArrSort(var a:array of integer;desc:boolean);
var
  i,j:integer;
begin
  for i:=low(a) to high(a)-1 do
    for j:=i+1 to high(a) do
      if (a[i]<a[j]=desc) then Swap2Int(a[i],a[j]);
end; 
 
Procedure ArrDistinct(var a:array of integer);
var
  i,j:integer;
begin
  for i:=low(a) to high(a) do
    for j:=i-1 downto low(a) do
      if a[i]=a[j] then begin a[i]:=0;break;end;
end;  
 
procedure ArrPrint(var a:array of integer;count,npos:integer);
var
  i,j:integer;
begin
  j:=0;
  for i:=low(a) to high(a) do begin
    j:=j+1;
    write(a[i]:npos);
    if j mod count=0 then writeln;
  end;  
end;
 
var 
  a,b:array of integer;
  c,d,e:array of integer;  
  i:integer;
begin
  setlength(a,140);setlength(b,140);
  setlength(c,30);setlength(d,30);setlength(e,30);
//  randomize;
//  GenArr(a,1000,3000);//заполнение массива
  ReadArr(a,'D:\Pas\Новый текстовый документ.txt',',');//чтение массива 
  ArrPrint(a,10,6);writeln;//печать массива
//  ArrSort(a,True);//сортировка массива по убыванию
//  ArrPrint(a,10,6);readln;
  ArrDistinct(a);// обнуляем задвоенные элементы в массиве
  ArrPrint(a,10,6);writeln;
  repeat
    CopyArr(a,b);
    for i:=low(c) to high(c) do begin
       c[i]:=TakeEl(b,Random(High(a)+1));
       d[i]:=TakeEl(b,Random(High(a)+1));     
       e[i]:=TakeEl(b,Random(High(a)+1));     
     end;   
   until (abs(ArrSum(c)-ArrSum(d))<=1500) and 
         (abs(ArrSum(c)-ArrSum(e))<=1500) and 
         (abs(ArrSum(e)-ArrSum(d))<=1500);
   for i:=low(c) to high(c) do writeln(i:5,c[i]:7,d[i]:7,e[i]:7);   
   writeln;
   writeln(' ':5,ArrSum(c):7,ArrSum(d):7,ArrSum(e):7);   
end.
1
233 / 32 / 19
Регистрация: 10.06.2016
Сообщений: 123
27.09.2018, 11:44
Цитата Сообщение от Ламер1995 Посмотреть сообщение
И ещё, файл надо ложить в папку с испольняющим файлом программы или можно просто путь прописать в 122 строке?
например так:
Pascal
1
  ReadArr(a,'D:\Pas\Новый текстовый документ.txt',',');//чтение массива
1
0 / 0 / 0
Регистрация: 26.09.2018
Сообщений: 8
27.09.2018, 12:01  [ТС]
Спасибо господа, это именно то что нужно! Всех поблагодарил, по правилам форума. Знал бы вас лично ещё и руку пожал бы) Я в этом разобраться так быстро точно не смогу, есть последняя сложность ->

Как бы схитрить и пронумеровать числа из большого массива, так, чтобы при выводе в 3 массива нумерация их сохранилась? Тобиш я смотрел на списки и наблюдал случайные числа с их порядковыми номерами из первого массива? Это реально?
0
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,060
27.09.2018, 12:24
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
begin
  var arr := ReadAllText('док1.txt').ToIntegers.Numerate.ToArray;
  
  arr.PrintLn;
  Writeln(arr.Count);
  
  WriteLn('Отсортировали');
  arr.OrderBy(v->v[1]).Println;
 
  WriteLn('Перемешали');
  arr.Shuffle.Println;
  
  WriteLn('Первые 5 по возрастанию, потом 5 перемешанных, а затем 5 в порядке убывания, и ещё 5 исходных');
  var newArr := arr[0:5].OrderBy(v->v[1]) + arr[5:10].Shuffle + arr[10:15].OrderByDescending(v->v[1]) + arr[15:20];
  newArr.Println;
end.
1
Эксперт Pascal/Delphi
2388 / 1300 / 1492
Регистрация: 29.08.2014
Сообщений: 4,665
27.09.2018, 13:25
Цитата Сообщение от Ламер1995 Посмотреть сообщение
Как бы схитрить и пронумеровать числа из большого массива, так, чтобы при выводе в 3 массива нумерация их сохранилась? Тобиш я смотрел на списки и наблюдал случайные числа с их порядковыми номерами из первого массива? Это реально?
давай пример, как ты это видишь?

Добавлено через 2 минуты
т.е.
порядковый номер в коротком массиве порядковый номер в оригинальном массиве значение

такая таблица нужна?

если да, то какого ты сначала задание все не озвучил?

System.Array.FindIndex в помощь

Добавлено через 2 минуты
Цитата Сообщение от xtro Посмотреть сообщение
for i:=low(c) to high(c) do writeln(i:5,c[i]:7,d[i]:7,e[i]:7); *
* *writeln;
* *writeln(' ':5,ArrSum(c):7,ArrSum(d):7,ArrSum(e):7) ; *
end.
замени на
Pascal
1
2
3
4
5
6
   writeln('№':5,'№c':5,'Ci':7,'№d':5,'Di':7,'№e':5,'Ei':7);         
   for i:=low(c) to high(c) do 
      writeln(i:5,a.FindIndex(q->q=c[i]):5,c[i]:7,a.FindIndex(q->q=d[i]):5,d[i]:7,a.FindIndex(q->q=e[i]):5,e[i]:7);   
   writeln;
   writeln('Sum':5,ArrSum(c):12,ArrSum(d):12,ArrSum(e):12);   
end.
1
0 / 0 / 0
Регистрация: 26.09.2018
Сообщений: 8
28.09.2018, 05:00  [ТС]
Спасибо, получилась конфетка , а не программа! )

Добавлено через 24 минуты
Каюсь, господа, что дописываю условия на ходу, а не сразу - просто пытаюсь создать выборку, максимально упрощающую мою задачу - появилась необходимость, в этот раз уж точно последняя, (т.к нечего больше придумать в принципе) отсортировать и убрать из главного, большого массива (а) 5 наименьших чисел, и чтобы они не фигурировали в принципе.

Pascal
1
2
3
4
5
6
7
begin
  setlength(a,140);setlength(b,140);
  setlength(c,30);setlength(d,30);setlength(e,30);
  ReadArr(a,'C:\test.txt',',');   //Откуда 
  ArrSort(a, False);               //Сортируем
 
ArrPrint(a,10,6);writeln;//Возврат

Отсортировал, но первые(наименьшие 5 элементов) хз как убрать из расчётов. Попытался поменять количество элементов но первые и последние числа не меняются, где то в середине пропадают по видимому.. Бесспорно, можно и ручками в екселе или т.п отсортировать и закинуть в ткстешник, но хочется) Немного в переменных путаюсь, попытался условие написать, но паскаль чего то на типы ругается, спасайте, уже очень надо(
0
Эксперт Pascal/Delphi
2388 / 1300 / 1492
Регистрация: 29.08.2014
Сообщений: 4,665
28.09.2018, 07:34
обнули их после сортировки да и все

Добавлено через 3 минуты
Pascal
1
2
  ArrSort(a,false);
  for i:=low(a) to low(a)+4 do a[i]:=0;
1
0 / 0 / 0
Регистрация: 26.09.2018
Сообщений: 8
28.09.2018, 08:28  [ТС]
Кланяюсь, именно то что нужно)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.09.2018, 08:28
Помогаю со студенческими работами здесь

Создать массив с номерами элементов исходного массива, соответствующие порядку убывания элементов
В массив заданной размерности N ввести произвольные числа. Не изменяя состояния исходного массива создать новый массив, в который...

Массив разных элементов другого массива
В последнее время чувствую себя идиотом... Трудно идет обучение. Простите, это не по теме.... Так вот, условие задачи следующее: дан...

Дан целочисленный массив А[п], среди элементов есть одинаковые. Создать массив из различных элементов А[п]
Помогите пожалуйста с поставленной задачей: Дан целочисленный массив А, среди элементов есть одинаковые. Создать массив из различных...

Даны два одномерных массива целых чисел (массив А, состоящий из n элементов, массив В – из m элементов), заполненных с
n= 22, m= 16, L= -50, P=30; Массив С состоит из элементов исходных массивов, меньших первого элемента массива А, а массив D –...

Массив: Из элементов массива А сформировать массив D того же размера по правилу: первые 10 элементов - Di=Ai+i,а остальные - Di=Ai - i.
1)Заменить минимальный по модулю положительный элемент нулем. 2)Заменить элементы с k1-го по k2-й на обратные. 3) Из элементов массива...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru