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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.05.2009, 14:46   #1
malova
Пользователь
 
Аватар для malova
 
Регистрация: 15.04.2009
Сообщений: 19
По умолчанию одномерный массив....

Подскажите с задачкой....
Имеется одномерный массив. Намечатать только те числа из массива, которые образуют растущую последовательность.

То есть Пример: 241536859 ответ: 245689.
оставить только последовательность возрастающую
malova вне форума Ответить с цитированием
Старый 27.05.2009, 14:53   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Выводите первый элемент.
Дальше цикл. И будет еще один дополнительный счетчик (например, k). Изначально k=1. Если текущий элемент больше k-ого, то выводим его и k = индекс текущего элемента. Иначе пропускаем.
Код:
for i:=2 to n do
 if a[i]>=a[k] then
  begin
  write(a[i]:4);
  k := i;
  end;
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 27.05.2009, 20:10   #3
malova
Пользователь
 
Аватар для malova
 
Регистрация: 15.04.2009
Сообщений: 19
По умолчанию Где ошибка?

Получилась такая програмка, вроде правильная, НО! Не берет в расчет отрицательные числа, т.е. если задана последовательность -3 2 5 1, результат будет: 2 5. а надо : -3 2 5 .... Что не так?
program zad7;
uses crt;
var
a:array[1..10] of real;
i,n,k:integer;
begin
clrscr;
write('n=');readln(n);
for i:=1 to n do
begin
write('a[',i,']=');readln(a[i]);
end;
writeln;
For i:=1 to n do
if a[i]>a[k] then
begin
write(' ',a[i]:7:2);
k:=i;
end;
readln;
end.
malova вне форума Ответить с цитированием
Старый 27.05.2009, 20:22   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

У вас k не проинициализировано.
И цикл по i от 2
Код:
program zad7;
uses crt;
var
a:array[1..10] of real;
i,n,k:integer;
begin
clrscr;
write('n=');
readln(n);
for i:=1 to n do
 begin
 write('a[',i,']= ');
 readln(a[i]);
 end;
writeln;
k := 1;
write(a[1]:7:2);
For i:=2 to n do
if a[i]>a[k] then
begin
write(' ',a[i]:7:2);
k:=i;
end;
readln;
end.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
одномерный массив curly182 Паскаль, Turbo Pascal, PascalABC.NET 2 16.05.2009 15:01
Одномерный массив xxxPascalxxx Помощь студентам 3 18.01.2009 15:23
Одномерный массив. Dmitrij Паскаль, Turbo Pascal, PascalABC.NET 1 28.11.2008 19:54
одномерный массив ldx Паскаль, Turbo Pascal, PascalABC.NET 4 06.06.2008 17:45
Массив Одномерный flait111 Помощь студентам 3 15.12.2007 14:08