Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.03.2010, 20:42   #1
dante92
Пользователь
 
Регистрация: 07.12.2009
Сообщений: 28
По умолчанию pascal массив

Написал прогу которая считывает числа(вводимые числа неодинаковы) и образует 2 новых числовых вектора:1)вектор из чисел,стоящих в ряду между максимальным и минимальным 2)из прочих чисел.Работает,но нужно чтобы при создании 2ух векторов использовались Massiv1 и Massiv2,а то используется только переменная Massiv.Подскажите плиз как это сделать,нужно срочно!!

Код:
Program Massyv;
Const
Dim=30;
Type
TVector=Array[1..Dim] of integer;
Var
Massiv,Massiv1,Massiv2:TVector;
i,Kolvo,NumMax,NumMin :byte;
Max,Min:real;
Begin
Writeln('Задайте количество чисел <= ',Dim,' ');
Readln(Kolvo);
Writeln('ВВедите ',Kolvo,' неповторяющихся чисел ');
For I:=1 to Kolvo do
begin
 Writeln('Введите ',i,'-е число');
 Readln(Massiv[i]);
end;
Max:=Massiv[1];
Min:=Massiv[1];
NumMax:=1;
NumMin:=1;
For I:=1 to Kolvo do
 begin
 If Massiv[i]>Max then
  begin
  Max:=Massiv[i];
  NumMax:=i;
  end;
 If Massiv[i]<Min then
  begin
  Min:=Massiv[i];
  NumMin:=i;
  end;
 end;
  If (NumMin=NumMax+1) or (NumMin=NumMax-1) then
   begin
  writeln('Вектор 1 не сформирован');
  Writeln('');
  write('Вектор 2 :');
  for i:=1 to Kolvo do
  Write(Massiv[i],' ');
   end
   else
   begin
 If NumMin<NumMax then
  begin
  Write('Вектор 1 :');
  For i:=NumMin+1 to NumMax-1 do
  Write(Massiv[i],' ');
  Writeln('');
  Write('Вектор 2 :');
  For i:=1 to NumMin do
  Write(Massiv[i],' ');
  For i:=NumMax to Kolvo do
  Write(Massiv[i],' ');
  end;
 If NumMin>NumMax then
  begin
  write('Вектор 1 :');
  For i:=NumMax+1 to NumMin-1 do
  Write(Massiv[i],' ');
  Writeln('');
  write('Вектор 2 :');
  For i:=1 to NumMax do
  Write(Massiv[i],' ');
  For i:=NumMin to Kolvo do
  Write(Massiv[i],' ');
  end;
  end;
Writeln;
Readln;
end.

Последний раз редактировалось Stilet; 03.03.2010 в 09:15.
dante92 вне форума Ответить с цитированием
Старый 02.03.2010, 21:21   #2
Indian
Форумчанин
 
Регистрация: 23.02.2010
Сообщений: 107
По умолчанию

Разложить код на процедуры ввода/вывода, поиска min/max.

ReadMassive(Massiv1);
ReadMassive(Massiv2);

FindMinMax(Massiv1,Min,Max,iMin,iMa x);
OutVector(Massiv1);

FindMinMax(Massiv2,Min,Max,iMin,iMa x);
OutVector(Massiv2);

Тип массива лучше представить в виде записи, чтобы не создавать лишних переменных для хранения размера каждого массива:
Код:
Type 
   TVector =  Record
      val: Array[1..30] Of integer;
      iMin,iMax: byte;
      count: byte;
   End;

Последний раз редактировалось Stilet; 03.03.2010 в 09:16.
Indian вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
pascal массив dante92 Помощь студентам 3 25.02.2010 01:14
Массив pascal dante92 Помощь студентам 2 23.02.2010 20:22
pascal массив Fornarina Помощь студентам 52 27.12.2009 15:57
pascal массив Fornarina Помощь студентам 3 08.02.2009 18:38
pascal массив Fornarina Помощь студентам 16 27.12.2008 22:48