IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> надо найти ошибки, надо найти ошибки (массивы)
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 3
Пол: Мужской

Репутация: -  0  +


Разработать программу получения и обработки одномерного массива, состоящую из 4 частей.
Часть 1. Вычислить значения 32 элементов одномерного целочисленного массива T в интервале (-8,8) с использованием генератора случайных чисел.
Часть 2. Вычислить среднеарифметическое значение нечетных по номеру элементов последней трети массива.
Часть 3. Определить два наибольших элемента, среди отрицательных элементов первой четверти массива.
Часть 4. Упорядочить чётные по номеру элементы всего массива по возрастанию модулей обратных.

надо найти ошибки


Program Work_4; 
  Type vector=array[1..100] of integer;
  var c,buf,Vr, n, i, a, b: integer;
                   G: vector;
                   Sg,P: real;

Procedure Part_1(Vr,n,a,b:integer; var G:vector);
  var i:integer;
  Begin
     If Vr<>1 then randomize;
     for i:=1 to n do g[i]:=a+Round((b-a)*Random(100)/100);
  end;
  
  
Procedure Part_2(n:integer; G:vector; var Sg:real);
  var i,k:integer;
        P:real;
        
    


Begin
  P:=1;
  k:=0;
  For i:=1 to (n div 3)*2+1 do
    if i mod 2=1 then
      begin
      inc(g[i]);
       inc(k);
      end;
    writeln;
if k=0 then writeln('Нет четных элементов в последней трети массива')
   else writeln('Ср.ар=',P/k:7:2);
    end;
    

Procedure Part_3(n:integer; G:vector);
  var i,k,max,max2:integer;
Begin
 
  k:=0;
   max:=g[1];
   max2:= g[2];

    If g[i]<0 then
  while (i<n) do
    begin
    
   
   if  max < max2 then
   begin
   	max:=g[2];
   	max2:=g[1];
   end;
    For i:=1 to n div 4 do 
   if g[i]>max  then 
   begin
   	max2:=max;
   	max:=g[i];
   end
   else
   if  g[i]>max2 then 
   	max2:=g[i];
    end;
   
  begin
  writeln('max1=',max,'max2',max2);
  end;
  k:=k+1;
  end;
  
  
  
Procedure Part_4(n:integer; var Num,A,B:vector);
var i, temp, m, j: integer;
 f: boolean;
  Begin 
for i:=1 to n do begin
     A[i]:=random(20)+1;
     write(A[i]:4);
end;
writeln;
m:=0;
for i:=2 to n div 2 do begin
     if i mod 2 = 0 then begin
        inc(m);
        B[m]:=A[i];
        num[m]:=i;
     end;
end;
 
for i:=1 to m do begin
     write(B[i]:4);
end;
 
writeln;
 
for i:= 1 to m - 1 do 
 for j:=1 to m - i do
  if Abs(1/b[j]) < Abs(1/b[j+1]) then begin
    temp:=b[j];
    b[j]:=b[j+1];
    b[j+1]:=temp;
 end;
 
for i:=1 to n do begin
  f:=false;
  j:=0;
  repeat
    inc(j);
    if num[j] = i then f:=true;
  until f or ( j = m );
  if f then write(B[j]:4) else write(A[i]:4);
end;
readln;
end;
 
 
begin    
        write('введите вариант расчета Vr => ');
        readln(Vr);
         if Vr=0 then
    begin
    n:=25; a:=-8; b:=7; c:=2;
    g[1] := 1; g[2] := 0; g[3] :=-3; g[4] := 2; g[5] := 0;
    g[6] :=-3; g[7] := 4; g[8] := 3; g[9] := 2; g[10]:= 0;
    g[11]:= 0; g[12]:= 4; g[13]:= 0; g[14]:=-2; g[15]:=-1;
    g[16]:=-1; g[17]:= 1; g[18]:=-5; g[19]:= 0; g[20]:= 6;
    g[21]:= 2; g[22]:=-7; g[23]:=-5; g[24]:= 1; g[25]:= 3;
    end
      else
        begin
        Write('Vvedite n,a,b => '); readln(n,a,b);
        Part_1(Vr,n,a,b,g);
        end;
   for i:=1 to n do write(g[i],' ' );
 

  
end.

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 38
Пол: Мужской

Репутация: -  0  +


  write('введите вариант расчета Vr => ');
  readln(Vr);
  if Vr = 0 then
  begin
    n := 25; a := -8; b := 7; c := 2;
    g[1] := 1; g[2] := 0; g[3] := -3; g[4] := 2; g[5] := 0;
    g[6] := -3; g[7] := 4; g[8] := 3; g[9] := 2; g[10] := 0;
    g[11] := 0; g[12] := 4; g[13] := 0; g[14] := -2; g[15] := -1;
    g[16] := -1; g[17] := 1; g[18] := -5; g[19] := 0; g[20] := 6;
    g[21] := 2; g[22] := -7; g[23] := -5; g[24] := 1; g[25] := 3;
  end
      else
  begin
    Write('Vvedite n,a,b => '); readln(n, a, b);
    Part_1(Vr, n, a, b, g);
  end;
  for i := 1 to n do write(g[i], ' ' ); 


Что такое Vr и почему процедуры Part_2, Part_3 и Part_4 не вызываются??
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 19.04.2025 5:26
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name