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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.05.2010, 22:12   #1
phlamey
 
Регистрация: 24.05.2010
Сообщений: 5
По умолчанию Оставить в одномерном массиве только уникальные значения

Вот. Дан одномерный массив целых чисел. И нужно в другой массив записать уникальные значения из заданного массива, ну тоесть чтобы числа не повторялись.
Кто-то может помочь или хотябы подкинуть пошаговый алгоритм?
phlamey вне форума Ответить с цитированием
Старый 24.05.2010, 22:41   #2
Don Karleone
Форумчанин
 
Регистрация: 05.04.2010
Сообщений: 410
По умолчанию

var
a,b: array [1..20] of Integer;
i,j,k: Integer;
flag: boolean;

begin
randomize;
writeln('Массив чисел:');
for i:=1 to 20 do
begin
a[i]:=random(10);
write(a[i]:3);
end;
writeln;
b[1]:=a[1];
k:=1;
for i:=2 to 20 do
begin
flag:=false;
j:=1;
while not flag and (j<=k) do
begin
if a[i] = b[j] then flag:=true;
Inc(j);
end;
if not flag
then
begin
Inc(k);
b[k]:=a[i];
end;
end;
writeln('массив уникальных чисел:');
for i:=1 to 20 do
write(b[i]:3);
readln;
end.
ICQ: 593-013-807
Don Karleone вне форума Ответить с цитированием
Старый 24.05.2010, 23:00   #3
phlamey
 
Регистрация: 24.05.2010
Сообщений: 5
По умолчанию

оу, да, работает. спасибо большое)
phlamey вне форума Ответить с цитированием
Старый 24.05.2010, 23:10   #4
ROMA2PVT
ТАМБОВСКИЙ ВОЛК.
Участник клуба
 
Аватар для ROMA2PVT
 
Регистрация: 16.03.2010
Сообщений: 1,354
По умолчанию

Код:
Uses
  CRT;
var
  a,b:array[1..100] of integer;
  i,j,n,m,k:integer;
begin
  clrscr;
  randomize;
  write('Введите количество элементов массива: ');
  readln(n);
 writeln('Исходный массив: '); 
 for i:=1 to n do
  begin
    a[i]:=random(10)-5;
    write(a[i]:3,' ')
  end;
  writeln;
  m:=0;
  for i:=1 to n do
  begin
    k:=0;
    for j:=1 to m do
      if a[i]=b[j] then
        inc(k);
    if k=0 then
    begin
      inc(m);
      b[m]:=a[i]
    end;
  end;
  writeln('Полученный массив: ');
  for i:=1 to m do
    write(b[i]:3,' ');
end.
にんじゃ
ROMA2PVT вне форума Ответить с цитированием
Старый 25.05.2010, 13:37   #5
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Don Karleone! Ты сам то свой шедевр проверял?!
Или ты нифига задачу не понял...
Цитата:
в другой массив записать уникальные значения из заданного массива
Перемешивай дело с бездельем и не сойдешь с ума...

Последний раз редактировалось Grag; 25.05.2010 в 13:40.
Grag вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Уникальные значения Fezdipekla Microsoft Office Access 1 13.05.2010 11:02
Как оставить только заливку ячеек? tns-ka Microsoft Office Excel 5 09.04.2010 06:59
Уникальные значения SwiP SQL, базы данных 6 07.05.2009 23:22
В яцейках есть x=1 x=2 Как убрать x= и оставить только значения Володя Минск Microsoft Office Excel 2 29.10.2008 04:57
В ячейках есть x=1 x=2 Как убрать x= и оставить только значения Володя Минск Microsoft Office Excel 2 27.10.2008 20:54