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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.03.2008, 12:55   #1
SZero
 
Регистрация: 24.02.2008
Сообщений: 7
По умолчанию Паскаль, массивы.

Всем привет.
Нужно решить следующую задачу. Дан массив и константа. Нужно задать этот массив, потом произвести выбор элементов, меньших заданной константы и сформировать новый массив из выбранных элементов.
Я смог только задать исходный массив и сделать счетчик. Программа строит исходный массив, делает выбор нужных элеметов, но вот как построить получившийся массив я не знаю. При выводе в нем правильное только количество элементов, а сами они выводятся нулями.
Помогите пожалуйста.
З.Ы. Язык паскаль.
SZero вне форума Ответить с цитированием
Старый 22.03.2008, 13:18   #2
vitalik007
Дельфист
Форумчанин
 
Аватар для vitalik007
 
Регистрация: 14.08.2007
Сообщений: 317
По умолчанию

Код:
var
konst:integer;
m1,m2:array of integer;
n:integer;
i:integer;
begin
readln(konst);
readln(n)//длина массива
setlength(m1,n);
for i:=0 to n-1 do
readln(m1[i])        //заполнение 
for i:=0 to length(m1)-1 do 
  if m1[i]<konst then 
  begin
     setlength(m2,length(m2)+1))
     m2[length(m2)-1]:=m1[i];
  end;
for i:=0 to length(m2)-1 do
writeln(m2[i])     //вывод
readln;
end;
ICQ-465033557
WINDOWS CE THE BEST
vitalik007 вне форума Ответить с цитированием
Старый 22.03.2008, 13:50   #3
SZero
 
Регистрация: 24.02.2008
Сообщений: 7
По умолчанию

Эмм...что-то я не понял.
Допустим a,b - массивы, а - исходный, b - который должен получится.
k - счетчик, z - константа, n - макс. кол-во эл-тов в исходном массиве.
write('Макс число эл-тов - ');
read(n);
for i:=1 to n do
begin
read(a[i]);
end;
for i:=1 to n do
write(a[i]);
*Итак, выведен заполненный массив*
k:=0;
for i:=1 to n do
begin
if (a[i]<z) then
begin
k:k+1;
end;
if (a[i]>k) then
begin
k:=k+0;
end;
end;
*Это счетчик*
Вот это я сделал, а как дальше в массив эти числа, которые в счетчике вывести я не знаю =( Там максимальное число будет K, а дальше...???
SZero вне форума Ответить с цитированием
Старый 22.03.2008, 14:30   #4
vitalik007
Дельфист
Форумчанин
 
Аватар для vitalik007
 
Регистрация: 14.08.2007
Сообщений: 317
По умолчанию

ЧТО ТЕБЕ в моем варианте не устраивает??????????
ICQ-465033557
WINDOWS CE THE BEST
vitalik007 вне форума Ответить с цитированием
Старый 22.03.2008, 15:17   #5
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Да наворотил ты до небес в простейшей задаче, даже динамические массивы, которых в Паскале нет.
Все решается намного проще.
Код:
uses crt;
var a,c:array[1..20]of integer;
    b,i,n,k:integer;
begin
clrscr;
write('n=');readln(n);
write('b=');readln(b);
for i:=1 to n do
     begin
      a[i]:=random(20);
      write(a[i],' ');
     end;
writeln;
k:=0;
for i:=1 to n do
if a[i]<b then
     begin
       k:=k+1;  //считаем нужные элементы
       c[k]:=a[i];
     end;
for i:=1 to k do
write(c[i],' ');
readln
end.
puporev вне форума Ответить с цитированием
Старый 22.03.2008, 16:06   #6
SZero
 
Регистрация: 24.02.2008
Сообщений: 7
По умолчанию

Все понял, во всем разобрался. Я забыл вот это вставить - c[k]:=a[i];
Ребят большое вам спасибо =)
SZero вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль. массивы }{oTT@БЬ)Ч™ Помощь студентам 9 07.12.2015 20:00
Паскаль. задачи на массивы rant Помощь студентам 27 20.04.2010 09:33
Паскаль. Задачи на массивы pr1mat Паскаль, Turbo Pascal, PascalABC.NET 6 26.05.2008 15:04
Паскаль. Массивы Sexy Fox Помощь студентам 5 12.04.2008 21:45
Паскаль, массивы, помогитеее плз ProPaL Помощь студентам 13 16.12.2007 19:03