Помощь - Поиск - Пользователи - Календарь
Полная версия: Линейная таблица
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Ксюша
Привет. Помогите решить задачу: Подсчитать количество различных чисел, встречающихся в ленейной таблице.
APAL
F.A.Q. по матрицам читала?
Ксюша
Читать - то читала, но что такое линейная таблице?
APAL
Я так думаю, что это матрица array [1..n] of ....
volvo
Код

const
 n = 50; { размер линейной таблицы }

var
 table: array[1 .. n] of integer; { сама таблица }
 was: array[1 .. n] of integer; { доп. массив }

 i, j, current, count: integer;
 found: boolean;
begin
 { ввод таблицы }
 ...

 { подсчет }
 for i := 1 to n do
   begin
     found := false;
     for j := 1 to current do
       found := found or (was[j] = table[i]);
     if not found then
        begin
           inc(current); was[current] := table[i];
        end
   end;
 writeln('количество различных чисел = ', current)
end.


Набирал без проверки, прямо сюда, так что могут быть ошибки...

P.S. Если числа ограничены 0 - 255, можно использовать множества - будет работать быстрее
APAL
volvo, ну вот. Как всегда впереди всех. Мог бы и подождать - может Ксюша сама сделала бы - это было бы полезней...
Rothmans
Код

const n=100;
var a:array[1..n] of integer;
     i,j,k:integer;
begin
 k:=0;
 for i:=1 to n do a[i]:=random(1000);
 for i:=1 to n do if a[i]=0 then k:=1;
 for i:=1 to n-1 do
   for j:=i+1 to n do
     if a[j]=a[i] then a[j]:=0;
 for i:=1 to n do if a[i]<>0 then Ink(k);
 writeln(k);
end.

Вот такой вариантик.
Только от массива останутся только уникальные числа.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.