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

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

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

> Отсев
Tauka
сообщение 21.08.2003 21:24
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 28

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


Удалить в заданном массиве Х(n) "лишние" (кроме первого) элементы так, чтобы оставшиеся образовали возрастающую последовательность.(за 1 просмотр массива)

что-то вроде бы сделала, но всё равно находятся такие комбинации, для которых условие не исполняется.
На всякий случай, здесь моя "попытка":

Код
Program otsew;
uses crt;
var n:integer;
   X,Y:array [1..1000] of integer;
   t:integer;

   procedure vvid;
     var i:byte;
        Begin
        clrscr;
        Write ('n= ');
        Readln (n);
        Writeln ('wwesty x[i]');
        for i:=1 to n do
        begin
        write ('x[',i,']  ');
        readln (x[i]);
        end;
        End;

   procedure vidbir;
     var i,j:byte;
         t:integer;
        Begin
        t:=0;
        for i:=2  to n do
        begin
        y[i]:=-10000;
         Y[1]:=X[1];
        if X[i]>X[i-1] then if X[i]>t then
        begin
        t:=X[i];
        Y[i]:=X[i];
        end;
        end;
        End;

        procedure vyvid;
     var i:byte;

        Begin
        Writeln ('Zrostayucha poslidownisty z cyh elementiw:');
        for i:=1 to n do
        begin
        if (y[i]<>y[i+1]) and (y[i]<>y[i-1]) then
        if y[i]<>-10000 then begin
        Write ('X[',i,']= ');
        Writeln (Y[i]);
        end;
        end;
        End;


BEGIN
CLRSCR;
vvid;
vidbir;
vyvid;

READLN;
END.

Спасибочки за внимание. :о)

Сообщение отредактировано: volvo - 17.12.2004 13:46


--------------------
С уважением,
Таука.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Ivs
сообщение 22.08.2003 20:21
Сообщение #2


Бывалый
***

Группа: Пользователи
Сообщений: 209

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


Конечно хотелось бы уточнить немного условие задачи, например можно ли использовать дополнительный массив, но вобшем у меня получилось так, (без доп массива), если несложно посмотри, ну или протести.
Код

Program Posled;

Const
  N = 100;

Var
  A : Array [1..N] of Integer;
  i : Integer;
  k : Integer;

Procedure SdvigArray;
Var
  j : Integer;
Begin
  for j := i to k do A[j] := A[j+1];
End;

Begin
  Randomize;
  k := N;
  for i := 1 to N do
  begin
     A[i] := Random(1000) + 1;
     Write(A[i], ' ');
  end;
  i := 2;
  while i <= k do
  begin
     if A[i] <= A[i-1] then {!!!!!!!!!!!!!!!!!}
     begin
      k := k - 1;
      SdvigArray;
      i := i - 1;
     end;
     i := i + 1;
  end;
  WriteLn;
  for i := 1 to k do Write(A[i], ' ');
  ReadLn;
End.


--------------------
Если вы хотите чаще встречаться с понравившейся девушкой установите ей Windows'95
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Tauka   Отсев   21.08.2003 21:24
Tauka   [tt][/tt][tt][/tt]Re: Отсев   22.08.2003 16:09
Ivs   Re: Отсев   22.08.2003 20:21
Tauka   Re: Отсев   26.08.2003 6:42
Ivs   Re: Отсев   26.08.2003 22:23
___ALex___   Re: Отсев   27.08.2003 2:47
zx1024   Re: Отсев   28.08.2003 16:39
AlaRic   Re: Отсев   28.08.2003 17:23
zx1024   Re: Отсев   29.08.2003 4:13


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

 



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