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

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

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

> Задача на одномерный массив
ReQu1eM
сообщение 19.11.2007 19:53
Сообщение #1


Гость






Аллоха! В общем есть задача: ввести одномерный массив C(N)(N<=50). Переставить в нем элементы так, чтобы начале находился минимальный элемент, в конце максимальный, а все остальные элементы сохранили прежний порядок.
Т.е. был массив 4 5 2 89 3 7 9
а получаецо 2 4 5 3 7 9 89;
И никак не могу сделать цикл на перестановку этих элементов(работает тока 1 раз), вот собствено код, подскажите как этот цикл сделать?

Код
Program DEAD_AFFTAR;
uses crt;
var i,N,x,y:integer;
    max, min:real;
    C: array [1..50] of real;
    p,q:real;
begin
clrscr;
  write ('N='); readln(n);
    for i:=1 to n do
     begin
      write ('c[',i,']='); readln (c[i]);
     end;
    for i:=1 to n do
      write (c[i]:8:3 );
      writeln;
  max:=C[1];
  x:=1;
    for i:=1 to n do
      if c[i]>max then
     begin
      max:=c[i];
      x:=i;
      end;
  min:=c[i];
  y:=1;
    for i:=1 to n do
    if c[i]<min then
     begin
      min:=c[i];
      y:=i;
     end;
for i:=1 to n do
  begin
   p:=c[y];
   c[y]:=c[y-1];
   c[y-1]:=p;
  end;
for i:=1 to n do
  begin
   q:=c[x];
   c[x]:=c[x+1];
   c[x+1]:=q;
  end;
for i:=1 to n do
    write (c[i]:8:3);
readkey;
end.
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 2)
мисс_граффити
сообщение 19.11.2007 20:50
Сообщение #2


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


так?
Program DEAD_AFFTAR;
uses crt;
var i,N,x,y:integer;
max, min:real;
C: array [1..50] of real;
p,q:real;
begin
clrscr;
write ('N='); readln(n);
for i:=1 to n do
begin
write ('c[',i,']='); readln (c[i]);
end;
for i:=1 to n do
write (c[i]:8:3 );
writeln;
max:=C[1];
x:=1;
for i:=1 to n do
if c[i]>max then
begin
max:=c[i];
x:=i;
end;

for i:=x to n-1 do
c[i]:=c[i+1];

min:=c[i];
y:=1;
for i:=1 to n do
if c[i]<min then
begin
min:=c[i];
y:=i;
end;

for i:=y downto 2 do
c[i]:=c[i-1];

c[1]:=min;
c[n]:=max;
for i:=1 to n do
write (c[i]:8:3);
readkey;
end.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Гость
сообщение 19.11.2007 21:03
Сообщение #3


Гость






Оооо слава великому Джа! РЕСПЕКТ и УВАЖУХА те товарисч! сталин не забудит тя))
 К началу страницы 
+ Ответить 

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

 



- Текстовая версия 20.07.2025 2:02
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"