Технический форум

Технический форум (http://www.tehnari.ru/)
-   Delphi, Kylix and Pascal (http://www.tehnari.ru/f43/)
-   -   Помогите исправить ошибки. Паскаль (http://www.tehnari.ru/f43/t250338/)

Anastasia12 27.11.2016 08:13

Помогите исправить ошибки. Паскаль
 
Вложений: 1
Program infa;
Const n = 10;
Var i, j, t, v_min, v_max, i_max, max, i_min, min : Integer;
vector : Array [1..n] Of Integer;

Begin

Randomize;

Write('v_min=');
ReadLn(v_min);
Write('v_max=');
ReadLn(v_max);

For i:=1 To n Do
vector[i]:=Random(v_max-v_min + 1) + v_min;

WriteLn;
For i:=1 To n Do
Write(vector[i]:5);
WriteLn;

max:= vector[1];
i_max:= 1;
min:= vector[1];
i_min:= 1;

For i:=2 To n Do
Begin

If (vector[i] > max) Then
Begin
max := vector[i];
i_max := i;
End;

If (vector[i] < min) Then
Begin
min := vector[i];
i_min := i;
End;

End;

WriteLn;
WriteLn('max=', max, ' i_max=', i_max);
WriteLn('min=', min, ' i_min=', i_min);

i := i_min;
j := i_max;

while i<j do begin
t := vector[i];
vector[i]:=vector[n-i+1];
vector[n-i+1]:=vector[j];
vector[j] := t;
end;


WriteLn;
WriteLn('Полученный вектор:');
For i:=1 To n Do
Write(vector[i]:5);
WriteLn;

End.

Вложение 318401

Vladimir_S 27.11.2016 09:43

Цитата:

Сообщение от Anastasia12 (Сообщение 2438674)
Помогите исправить ошибки (Паскаль)

Извольте:
Код:

Const
 n = 10;

Var
 i,t,v_min,v_max,i_max,max,i_min,min,i1,i2: Integer;
 vector : Array [1..n] Of Integer;

Begin

 Randomize;

 Writeln('Input data:');
 Writeln('n= ',n);
 Write('v_min= ');
 ReadLn(v_min);
 Write('v_max= ');
 ReadLn(v_max);

 Writeln('Initial vector:');
 for i:=1 to n do
  begin
  vector[i]:=Random(v_max-v_min + 1) + v_min;
  Write(vector[i]:5);
  end;
 WriteLn;

 max:= vector[1];
 i_max:= 1;
 min:= vector[1];
 i_min:= 1;

 for i:=2 to n do
  begin

  if (vector[i]>max) then
    begin
    max := vector[i];
    i_max := i;
    end;

  if (vector[i] < min) then
    begin
    min := vector[i];
    i_min := i;
    end;

  end;

 if min=max then
  Writeln('All elements are equal!')
 else
  begin
  WriteLn;
  Writeln('Output data:');
  WriteLn('max= ', max, ' i_max= ', i_max);
  WriteLn('min= ', min, ' i_min= ', i_min);

  if i_min<i_max then
    begin
    i1:=i_min+1;
    i2:=i_max-1;
    end
  else
    begin
    i1:=i_max+1;
    i2:=i_min-1;
    end;

  for i:=i1 to ((i1+i2) div 2) do
    begin
    t:=vector[i];
    vector[i]:=vector[i2-(i-i1)];
    vector[i2-(i-i1)]:=t;
    end;

  WriteLn('Output vector:');
  for i:=1 to n do
    Write(vector[i]:5);
  end;

 ReadLn

End.


Anastasia12 27.11.2016 10:30

спасибо большое


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

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.