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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.05.2010, 20:24   #1
Driver_09
Пользователь
 
Регистрация: 11.10.2009
Сообщений: 61
По умолчанию в массиве N*N найти совпадающие числа

Сгенерировать массив N*N из случайных чисел, выяснить, сколько в массиве совпадающих по величине чисел.
N-константа, заданная в начале.
Нижний массив - это произвольно сгенерированный и каждый раз будет новый...как мне определить совпадающие по величине числа?
я думаю цикл for i:=1 to N do
и взять два счётчика на кол-во элемента и на сам эелемент, если он конечно получится(тут я имею в виду, что допустим у меня три тройки, и прога мне покажет что именно троек у меня 3 штуки=)))

немного конечно есть код программы, но он вообще кривой...
Изображения
Тип файла: png Снимок.PNG (10.5 Кб, 49 просмотров)
Driver_09 вне форума Ответить с цитированием
Старый 26.05.2010, 21:31   #2
Driver_09
Пользователь
 
Регистрация: 11.10.2009
Сообщений: 61
По умолчанию

может сделать если a[i,j]=a[j,i] , то например n:=n+1 ?
Driver_09 вне форума Ответить с цитированием
Старый 26.05.2010, 21:50   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

1) откуда взялся нижний массив? У Вас всё таки одна матрица или две разных?

2) на каком языке Вы пишете программу?

3) так Вам надо всё таки найти количество повторяющихся чисел или выяснить, какие числа повторяются?! Если, допустим, в матрице есть два числа 9 и три числа 5, то что должна выдать программма?

4) почитайте здесь
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.05.2010, 22:05   #4
Driver_09
Пользователь
 
Регистрация: 11.10.2009
Сообщений: 61
По умолчанию

пишу на делфи.
выяснить, сколько в массиве совпадающих по величине чисел.
Первая матрица исходная, на неё можно не смотреть...
а вот вторая матрица, всегда новая, то есть генерируется по-разному...и вот во второй матрице нужно найти совпадающие по величине числа...
а может, я сам запутался и нужно вывести только все числа, которые повторяются?
Driver_09 вне форума Ответить с цитированием
Старый 26.05.2010, 22:17   #5
Driver_09
Пользователь
 
Регистрация: 11.10.2009
Сообщений: 61
По умолчанию

Цитата:
const NMAX=50; //Максимальное кол-во элементов в массиве.
type mas=array[1..NMAX,1..NMAX] of Integer;
//"скрываем" массив, для сохранности индексов

procedure FillArray(var x:mas; n:integer);
var i,j:Integer;
k:Integer;
begin
for I := 1 to n do begin
k:=n-i+1;
for j := 1 to n-i+1 do
begin
x[i,j]:=k;k:=k-1;
end; end;
end;


procedure FillArrayRandom(var m:mas;min,max,N:integer);
var i,j:integer; //используется, как индексы элементов массива
begin
Randomize();
for i:=1 to N do //последовательный перебор всех строк массива
for j:=1 to N do //последовательный перебор всех столбцов массива
m[i,j]:=min+random(max-min+1); //случ. числа генерируем в диапазоне
end;

procedure PrintArray(var m:mas;N:integer);
var i,j:integer; //используется, как индекс элементов массива
begin
for i:=1 to N do //последовательный перебор всех строк массива
begin
for j:=1 to N do //последовательный перебор всех столбцов массива
write(m[i,j]:3); //вывод элементов одной строки
writeln; //отделяем одну строку от другой
end;
end;

var a:mas; //объявили массив
c:integer; //переменная для значения, которое необходимо будет найти
nom:integer; //для хранения (не)найденного индекс элемента
n:integer; //кол-во элементов в массиве
i:integer; //для обхода массива
sum,prz:integer; //сумма и произведение элементов
begin
{$IFDEF DEBUG} //Для упрощения отладки используем условные директивы компилятора
n:=4;
{$ELSE} // если не отладка
Write('Vvedite kol-vo elementov');
Readln(n); //с каким кол-вом элементов программа будет работать
{$ENDIF}
if ((n>NMAX) or (n<=0)) then
begin
Writeln('Elementov ne mojet byt <1 i > NMAX');
exit; //Выход из программы
end;
FillArray(a,n); //заполнение массива случайными числами
PrintArray(a,n);
writeln('==========');
FillArrayRandom(a,-5,5,n); //генерируем случ. числа от -5 до 5
PrintArray(a,n);
это мой код, где исходный массив и произвольный. нужно только ещё дополнить, сколько в массиве совпадающих по величине чисел.

то есть я думаю, что
Цитата:
Если, допустим, в матрице есть два числа 9 и три числа 5, то что должна выдать программма?
то она должна вывести 2 числа: девять совпадает - раз число, 5 совпадает - два число...и так далее....
Driver_09 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
поиск определенного числа, в отсортированном массиве (с++) askerpro Общие вопросы C/C++ 7 29.04.2010 23:26
В массиве найти кол-во нечетных чисел расположенных после второго большего числа Desvi Помощь студентам 0 29.04.2010 17:12
ДАНЫ 4 ЧИСЛА X Y Z W составит программу найти произведение все положительные нечетные числа Woland-itn Паскаль, Turbo Pascal, PascalABC.NET 3 23.03.2008 21:49