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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.12.2010, 19:52   #1
Malloperro
 
Регистрация: 19.12.2010
Сообщений: 4
Вопрос Одномерный массив, убывающая последовательность (FreePascal)

Дан одномерный массив числовых значений, насчитывающий N элементов. Определить образуют ли элементы массива, расположенные перед первым нулевым элементом убывающую последовательность.
Malloperro вне форума Ответить с цитированием
Старый 19.12.2010, 20:00   #2
andrewpalkin
Форумчанин
 
Аватар для andrewpalkin
 
Регистрация: 23.11.2010
Сообщений: 458
По умолчанию

Цитата:
Сообщение от Malloperro Посмотреть сообщение
Дан одномерный массив числовых значений, насчитывающий N элементов. Определить образуют ли элементы массива, расположенные перед первым нулевым элементом убывающую последовательность.
Что именно не получилось сделать , так как это не сложная задача, не думаю , что тебе нужна наша помощь !
--- Если я вам помог , то помогите и вы мне . Не просто просите решить задачу , а пробуйте ее сами решить ! Я не пишу программы с нуля , я помогаю поправить код ! ---
andrewpalkin вне форума Ответить с цитированием
Старый 19.12.2010, 20:03   #3
Malloperro
 
Регистрация: 19.12.2010
Сообщений: 4
По умолчанию

мы в школе программирование не изучали.. я вообще ноль.. =(
у меня есть решенная задача с возрастающей последовательностью.... если там что-то исправить, то получится?
Malloperro вне форума Ответить с цитированием
Старый 19.12.2010, 20:07   #4
andrewpalkin
Форумчанин
 
Аватар для andrewpalkin
 
Регистрация: 23.11.2010
Сообщений: 458
По умолчанию

Если что-то исправить , то получится

Но ответь мне такой вопрос , кто тебе задал эту задачу , если до этого тебя не учили программированию , хотя бы простейшему ?
--- Если я вам помог , то помогите и вы мне . Не просто просите решить задачу , а пробуйте ее сами решить ! Я не пишу программы с нуля , я помогаю поправить код ! ---
andrewpalkin вне форума Ответить с цитированием
Старый 19.12.2010, 20:07   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ну а в чём проблема то?
Вводите элементы массива.

Потом i:=2 и цикл, пока (i<=N) и (A[i]<>0) and (A[i-1]>A[i])
(последнее условие как раз проверка на убывание.)
в цикле только Inc(i)

дальше.
после выхода из цикла надо проверить,
Если i>N - значит дошли до конца, нулевых элементов вообще нет и все имеющие элементы образуют убывающую последовательность,
иначе (если i<=N) -
тогда проверяйте - A[i] = 0 если да - дошли до нулевого элемента - имеющие элементы образуют убывающую последовательность
иначе - НЕТ ,не образуют...

думаю, что идея понятна. (я дольше словами расписывал, чем программу писать! )
Serge_Bliznykov вне форума Ответить с цитированием
Старый 19.12.2010, 20:09   #6
Malloperro
 
Регистрация: 19.12.2010
Сообщений: 4
По умолчанию

ну как кто? преподаватель)
Код:
uses crt;
const nmax=30;
var a:array[1..nmax] of integer;
n,i,i1:byte;
f:boolean;
begin
clrscr;
repeat
write('Размер массива до ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('Введите элемеенты массива, в том числе ноли:');
for i:=1 to n do
begin
write('a[',i,']=');
readln(a[i]);
end;
clrscr;
writeln('Массив:');
for i:=1 to n do
write(a[i]:4);
writeln;
writeln;
i1:=0;
i:=1;
while(i<=n)and(i1=0) do
if a[i]=0 then i1:=i
else i:=i+1;
if i1=0 then write('В массиве нет нолей')
else if i1=1 then write('Ноль первый')
else
begin
f:=true;
i:=2;
while(i<i1)and f do
if a[i]<=a[i-1] then f:=false
else i:=i+1;
if f then write('Элементы до первого ноля образуют возрастающую последовательность')
else write('Элементы до первого ноля не образуют возрастающую последовательность');
end;
readln
end.
вот задача с возрастающей последовательностью... что тут поменять нужно?)

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
ну а в чём проблема то?
Вводите элементы массива.

Потом i:=2 и цикл, пока (i<=N) и (A[i]<>0) and (A[i-1]>A[i])
(последнее условие как раз проверка на убывание.)
в цикле только Inc(i)

дальше.
после выхода из цикла надо проверить,
Если i>N - значит дошли до конца, нулевых элементов вообще нет и все имеющие элементы образуют убывающую последовательность,
иначе (если i<=N) -
тогда проверяйте - A[i] = 0 если да - дошли до нулевого элемента - имеющие элементы образуют убывающую последовательность
иначе - НЕТ ,не образуют...

думаю, что идея понятна. (я дольше словами расписывал, чем программу писать! )
спасибо)) но даже Это мне трудно понять.. я с Паскалем всего несколько недель работаю..

Последний раз редактировалось Stilet; 19.12.2010 в 20:15.
Malloperro вне форума Ответить с цитированием
Старый 19.12.2010, 20:13   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Если последовательность возрастает то следующий элемент больше предидущего:
Код:
if a[i]<=a[i-1] then f:=false
А если она убывает то знак обратный.
Понимаешь мою речь?
Цитата:
я с Паскалем всего несколько недель работаю..
Значит тебе стоит взять книжку и потратив неделю почитать ее.
I'm learning to live...

Последний раз редактировалось Stilet; 19.12.2010 в 20:15.
Stilet вне форума Ответить с цитированием
Старый 02.11.2011, 23:29   #8
Letho
Новичок
Джуниор
 
Регистрация: 02.11.2011
Сообщений: 1
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
ну а в чём проблема то?
Вводите элементы массива.

Потом i:=2 и цикл, пока (i<=N) и (A[i]<>0) and (A[i-1]>A[i])
(последнее условие как раз проверка на убывание.)
в цикле только Inc(i)

дальше.
после выхода из цикла надо проверить,
Если i>N - значит дошли до конца, нулевых элементов вообще нет и все имеющие элементы образуют убывающую последовательность,
иначе (если i<=N) -
тогда проверяйте - A[i] = 0 если да - дошли до нулевого элемента - имеющие элементы образуют убывающую последовательность
иначе - НЕТ ,не образуют...

думаю, что идея понятна. (я дольше словами расписывал, чем программу писать! )
Это слишком просто, а если числа будут вразброс?
Letho вне форума Ответить с цитированием
Старый 02.11.2011, 23:38   #9
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Letho, пример не приведёте?
Abstraction вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерный массив , двухмерный массив Woxx Паскаль, Turbo Pascal, PascalABC.NET 0 10.09.2010 09:28
Одномерный массив blok20 Помощь студентам 2 01.02.2010 20:57
Одномерный массив. Q basic - Построить новый массив из элементов исходного ,которые больше P. Marishkaa Помощь студентам 2 12.01.2010 16:54
Двумерный массив, одномерный массив. Branbal Помощь студентам 14 18.11.2009 12:40
числовая последовательность и массив дангер Паскаль, Turbo Pascal, PascalABC.NET 6 28.01.2008 20:38