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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 08.12.2008, 21:34   #1
maziLa
Пользователь
 
Регистрация: 08.12.2008
Сообщений: 30
Восклицание обмен чисел последовательности

Ребята мне нужно в программе используя массив поменять его первые три и последние три элемента местами сохраняя их прохождение ...


Код:
Program LR6_91821;
  uses crt;
  const Size = 20;
  type
    mas = array [1..Size] of integer;
  var
    a : mas;
    i , j , n ,temp : integer;
    ch : char;
Procedure vvodKL;
  begin
   write ('n= ');
   readln (n);
    for i:=1 to n do
     begin
      write ('a[' ,i, '] = ');
      readln (a[i]);
     end;
   end;
Procedure ChangeTwoElems (var  m : mas; i1 , i2 :integer);
  begin
    m[i1]:=m[i2]
  end;
Begin
repeat
ClrScr;
     begin
            i1:=temp;
            i2:=i1;
            temp:=i2;
     end;
 begin
   for i:=1 to n do
   writeln ('a[' ,i, ']= ' , a[i]);
 end;
 ch:=ReadKey;
 until ch='n'
End.
Вообщем вот тут что то пытался ....помогите плиз тут впринципе с помощью процедур но если есть другие варианты то буду оч рад и им.
maziLa вне форума
Старый 08.12.2008, 22:28   #2
SergGhost
Пользователь
 
Аватар для SergGhost
 
Регистрация: 25.09.2008
Сообщений: 39
По умолчанию

program mas;
uses crt;
type v = array[1..20] of integer;

var i,a1,a2,a3,b1,b2,b3:Integer;
a:v;
begin
clrScr;
For i:=1 to 20 do {выводим изначальный массив}
begin
a[i]:=-15+random(9);
write ( a[i]);
if i=1 then a1:=a[i];
if i=2 then a2:=a[i];
if i=3 then a3:=a[i];
if i=18 then b1:=a[i];
if i=19 then b2:=a[i];
if i=20 then b3:=a[i];
{ writeln;}
end;
writeln(' '); {новая строка}
For i:=1 to 20 do //массив с поменянными первыми
begin //и последними элементами
if i=1 then
begin
a[i]:=b1;
write ( a[i]);
end
else
if i=2 then
begin
a[i]:=b2;
write ( a[i]);
end
else
if i=3 then
begin
a[i]:=b3 ;
write ( a[i]);
end
else
if i=18 then
begin
a[i]:=a1;
write ( a[i])
end
else
if i=19 then
begin
a[i]:=a2;
write ( a[i]);
end
else
if i=20 then
begin
a[i]:=a3;
write ( a[i]);
end
else
write ( a[i]);
end;
readkey;
end.

грубо, но работает (если с условием я все так понял.)
P.S. Не забудь жамкнуть на весы.
Хотя и сладостен азарт по сразу двум идти дорогам, нельзя одной колодой карт играть и с дьяволом и с богом.
SergGhost вне форума
Старый 09.12.2008, 00:15   #3
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
По умолчанию

Способ попроще:
Код:
program Zamena;

const Size = 20;
type TMas = array [1..Size] of integer;
var
   A :TMas;
   I,n :Integer;

Procedure vvodKL;
Var I :Integer;
begin  //ввод
 write('Razmer massiva N= '); readln (n);
 writeln('Vvod dannih:');
 for i:=1 to n do
 begin
  write ('a[' ,i, '] = ');
  readln (a[i]);
 end;
 Writeln;
end;

Procedure ChngMas(nn :Integer; var mas :TMas);
Var i,Tmp,Chk :Integer;
begin // меняем местами
 Chk := 0;
 if nn>=6 then
 For I:=1 To nn-3 Do
 begin
  Tmp := Mas[i];
  Mas[i] := Mas[nn-3+i];
  Mas[nn-3+i] := Tmp; 
  Inc(chk);
  If chk>=3 then break;
 end;
end;

procedure PrintMas(Capt :String; nn :Integer; mas :TMas);
Var I :integer;
begin // печать массива
 WriteLn(Capt);
 For I:=1 To nn Do    
 Write(Mas[i], ' ');
 Writeln;
end;

begin
 vvodKL;
 PrintMas('Ishodniy massiv: ', n, a);
 ChngMas(n, a);
 PrintMas('Izmenenniy massiv: ', n, a);
 readln;
end.
Alter вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Генерация последовательности псевдослучайных натуральных чисел с требуемым распределением вероятности elsin Фриланс 4 19.11.2008 08:57
Ввод последовательности чисел POPOV Общие вопросы Delphi 5 16.02.2008 22:13
Как из последовательности чисел выделить недостающие Юрій Microsoft Office Excel 2 27.01.2008 21:46
вычисление суммы чисел, кратных 3 из последовательности, состоящей из 10 чисел, заранее заданных Белка Помощь студентам 3 27.10.2007 11:53