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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.09.2009, 14:58   #1
hills
 
Регистрация: 14.04.2009
Сообщений: 3
По умолчанию Задачи на многомерные массивы и разработка программ с подпрограммами (Pascal)

Добрый день!
Помогите пожалуйста решить следующие задачи:

1. Дана целочисленная матрица из N строк и M столбцов (1<N<=100, 1<M<=50). Выполнить операцию поиск, параметр операции: количества различных элементов матрицы.

2.Сформировать матрицу С(5,5), элементы которой являются значениями определенного интеграла (рисунок 1). Метод интегрирования: метод трапеций.

Метод трапеций:
hills вне форума Ответить с цитированием
Старый 14.09.2009, 15:57   #2
NeshSoft
Максим Николаев
Форумчанин
 
Аватар для NeshSoft
 
Регистрация: 15.02.2009
Сообщений: 170
По умолчанию

По поводу первой задачи предложу два варианта:
1. если нет большого разбега среди элементов матрицы, т.е. больше повторяющихся целых чисел чем отсутсвующих чисел в матрицы:
пробегаем массив - ищем наибольший и наименьший элементы, затем в цикле от наименьшего до наибольшего пробегаем всю матрицу (преобразовав к вектору), если встречаем данный элемент в матрице - тогда увеличиваем счетчик различных элементов матрицы, и переходим на следующую итерацию.

2. если разбег большой, т.е. числа в матрице встречаются не подряд, а через промежутки (напр. 3,7,21... а не 3,2,3,7,2...). - тогда лучше сразу преобразовать матрицу к вектору, упорядочить его, и затем уже сравнить сколько различных элементов, т.е. пробежать вектор, если текущий элемент не равен предыдущему - то разных чисел +1, и т.д.

Применение того или иного способа зависит от способа получения матрицы. Ну а если производительность не слишком беспокоит - то первый метод проще к реализации.

PS назвал самые простые и очевидные, на мой взгляд, методы, не претендующие на оптимальные.
NeshSoft. Программирование на заказ для студентов. Delphi/Pascal. Подробнее на сайте neshsoft.narod.ru
NeshSoft вне форума Ответить с цитированием
Старый 15.09.2009, 10:58   #3
hills
 
Регистрация: 14.04.2009
Сообщений: 3
По умолчанию

Числа будут проставляться посредством randomize
hills вне форума Ответить с цитированием
Старый 15.09.2009, 11:09   #4
Consol
Пользователь
 
Регистрация: 19.08.2009
Сообщений: 89
По умолчанию

1
Код:
uses crt;
var a:array[1..100,1..50] of integer;
    n,m,i,j,sum,k,p:integer;
    l:boolean;
begin
clrscr;
randomize;
repeat
write('Количество строк, не более 100 n=');
readln(n);
until (n<=100)and(n>=1);
repeat
write('Количество столбцов, не более 50 m=');
readln(m);
until (m<=50)and(m>=1);
writeln('Матрица:');
for i:=1 to n do
 begin
  for j:=1 to m do
   begin
 
    a[i,j]:=random(20);
    write(a[i,j]:4);
   end;
  writeln;
 end;
 
 
 
sum:=0;
for i:=1 to n do{смотрим элементы матрицы}
for j:=1 to m do
begin
 l:=false;
 for k:=1 to i do
  begin
  if (k<>i)and(l=false)then
   for p:=1 to m do
   if (a[i,j]=a[k,p])then
    l:=true;
  if (k=i)and(l=false) then
   for p:=1 to j do
     if (a[i,j]=a[k,p])and(p<>j)then
    l:=true;
  end;
if l=false then sum:=sum+1;
end;
write('sum=',sum);
readln
end.
Consol вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задачи по Turbo Pascal (Массивы) pav19 Помощь студентам 1 10.12.2010 17:44
Задача на двумерные массивы( с подпрограммами) DimoniusX Помощь студентам 4 28.04.2009 19:21
[Pascal]: задачи на массивы, прошу помочь решить Knife Помощь студентам 7 19.04.2009 12:30
Строки и Массивы. Pascal. 4 задачи Naper214 Помощь студентам 11 28.12.2008 13:51
Pascal задачи на массивы SweetOpium Помощь студентам 9 08.05.2008 20:40