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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.05.2009, 01:10   #1
gree
Пользователь
 
Аватар для gree
 
Регистрация: 28.10.2008
Сообщений: 34
Сообщение Одномерный массив.

Всем привет, Помогите плиз составить задачку а то чёт воообще мысей даже никаких((Дан одномерный массив, Составить новый массив состоящий из положительных элементов данного масива записаных в обратном порядке.. Я понимаю что нужно задать 2 массива проверить каждый элемент с помощью ифа на <= 0 и записать.. но как выразить это в программе не знаю..(
Быть подлинно здравомыслящим уже означает много знать..
gree вне форума Ответить с цитированием
Старый 12.05.2009, 01:21   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Все правильно понимаете. Так в чем проблема? Пока не попробуете, получаться не будет.
Есть исходный массив A, размером в N элементов. И есть массив B, тоже размером в N элементов. Но его размер хранится в M (так сказать, фактический размер, то есть сколько в нем реально элементов).
Сначала M = 0 (массив пуст).
Нужно пройти по массиву A от конца к началу в цикле. При этом, если элемент положительный, то пишем его в массив B и увеличиваем M.
Код:
for i:=N downto 1 do
 if A[i]>0 then
  begin
  inc(M);
  B[M] := A[i];
  end;
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 12.05.2009, 12:18   #3
gree
Пользователь
 
Аватар для gree
 
Регистрация: 28.10.2008
Сообщений: 34
По умолчанию

а inc это что такое?
Быть подлинно здравомыслящим уже означает много знать..
gree вне форума Ответить с цитированием
Старый 12.05.2009, 12:27   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от gree
а inc это что такое?
Инкремент. Просто прибавляет единицу к аргументу. Аналогично выражению:
Код:
i := i + 1;
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 12.05.2009, 13:12   #5
gree
Пользователь
 
Аватар для gree
 
Регистрация: 28.10.2008
Сообщений: 34
По умолчанию

блин чето не пашет ((((((((
Код:
procedure TForm1.Button1Click(Sender: TObject);
var a,b:array[1..5] of integer;
i,j,m:integer;
begin
 for i:=1 to 5 do
a[i]:=strToInt(StringGrid1.Cells[i-1,0]);
  for i:=5 downto 1 do
 if a[i]>0 then
  begin
  i:= i + 1;
  B[j]:= A[i];
  end;
stringgrid2.Cells[i-1,0]:=inttostr(b[i]);
end;

end.
Быть подлинно здравомыслящим уже означает много знать..
gree вне форума Ответить с цитированием
Старый 12.05.2009, 13:23   #6
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Естественно. И не должно. С какой стати?
Код:
  i:= i + 1;
нельзя менять счетчик цикла.
Код:
  B[j]:= A[i];
что такое j? Оно у вас нигде не проинициализировано.
Код:
stringgrid2.Cells[i-1,0]:=inttostr(b[i]);
Что именно вы выводите? Единственное число. И то непонятно какое.

Рассуждайте логически, а не просто копируйте код. Тогда и ошибок будет меньше.
Код:
procedure TForm1.Button1Click(Sender: TObject);
var a,b:array[1..5] of integer;
i,j,m:integer;
begin
 for i:=1 to 5 do
a[i]:=strToInt(StringGrid1.Cells[i-1,0]);
m := 0;
  for i:=5 downto 1 do
 if a[i]>0 then
  begin
  inc(m);
  B[m]:= A[i];
  end;
 for i:=1 to m do
stringgrid2.Cells[i-1,0]:=inttostr(b[i]);
end;
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 12.05.2009, 20:29   #7
gree
Пользователь
 
Аватар для gree
 
Регистрация: 28.10.2008
Сообщений: 34
По умолчанию

Спасибо огромное..
Быть подлинно здравомыслящим уже означает много знать..
gree вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерный массив (СИ) ManInBlack Помощь студентам 8 08.06.2013 17:43
Одномерный массив. medic357 Общие вопросы C/C++ 1 23.03.2009 19:39
одномерный массив ldx Паскаль, Turbo Pascal, PascalABC.NET 4 06.06.2008 17:45
одномерный массив fatdog Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 23.02.2008 10:05
Одномерный массив SkyDreamer Помощь студентам 1 01.12.2007 21:22