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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.03.2015, 20:54   #1
Meek
Новичок
Джуниор
 
Регистрация: 11.03.2015
Сообщений: 2
По умолчанию Задача в Турбо Паскале

Учусь в мед.вузе,не понимаю зачем нам программирование,но все же оно есть..Задали задачу:
С двумерного массива сделать вектор в среде Турбо Паскаля.

Мне объяснили задание так:
Есть двумерный массив размерность MxN
С него нужно сделать вектор Х.
Х это одномерный массив размером равный размеру матрицы, если она квадратная. Каждый элемент массива x[i] это
или самый большой элемент i-го столбика если в столбце есть хотя бы один отрицательный элемент,
или сумму элементов, находящихся на нечетных позициях i-й строки и превышают заданное число L.
если матрица не квадратная, то в первом случае размер массива=количеству столбцов, во втором случае количеству строк.

Но я далек от решения как Нью-Йорк от Москвы..
Кто может помочь?Буду очень-очень-очень признателен..
Meek вне форума Ответить с цитированием
Старый 11.03.2015, 22:22   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Трындец задача...
Код:
const n=5,m=5,L=20;
var i,j:integer;
 a:array[1..n+1,1..m+1] of integer;
 x:array[1..m] of integer;
begin
 for i:=1 to n do begin
  for j:=1 to m do begin
   a[i,j]:=random(100)-50; write(a[i,j]:5);
   if odd(j) and (a[i,j]<L) then a[i,m+1]:=a[i,m+1]+a[i,j];
   if a[n+1,j]<a[i,j] then a[n+1,j]:=a[i,j];
   if a[i,j]<0 then x[j]:=-1;
  end;writeln;
 end;writeln;

 for j:=1 to m do begin
   if x[i]=-1 then x[i]:=a[n+1,j] else x[i]:=a[j,m+1]
   write(x[j]:5);
  end;writeln;

 readln;
end.
Это с потолка.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.03.2015, 22:46   #3
Meek
Новичок
Джуниор
 
Регистрация: 11.03.2015
Сообщений: 2
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Трындец задача...
Код:
const n=5,m=5,L=20;
var i,j:integer;
 a:array[1..n+1,1..m+1] of integer;
 x:array[1..m] of integer;
begin
 for i:=1 to n do begin
  for j:=1 to m do begin
   a[i,j]:=random(100)-50; write(a[i,j]:5);
   if odd(j) and (a[i,j]<L) then a[i,m+1]:=a[i,m+1]+a[i,j];
   if a[n+1,j]<a[i,j] then a[n+1,j]:=a[i,j];
   if a[i,j]<0 then x[j]:=-1;
  end;writeln;
 end;writeln;

 for j:=1 to m do begin
   if x[i]=-1 then x[i]:=a[n+1,j] else x[i]:=a[j,m+1]
   write(x[j]:5);
  end;writeln;

 readln;
end.
Это с потолка.

а можно как-то проще?Бо мой тупой мозг не понимает большей половины вашей работы(
Если не сложно,можно сделать для ручного ввода m,n и L?
Meek вне форума Ответить с цитированием
Старый 12.03.2015, 03:42   #4
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Учусь в мед.вузе,не понимаю зачем нам программирование,но все же оно есть.
а как выкручиваются твои одногруппники?
и чо за вуз такой, в каком городе?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 12.03.2015, 07:49   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
как-то проще?
Функциями проще будет:
Код:
const n=5,m=5;
var i,j,l:integer;
 a:array[1..n,1..m] of integer;
 x:array[1..m] of integer;

 function max(i:integer):Integer;
 var j:integer;
 begin max:=0;
  for j:=1 to n do if (a[j,i]>max) then max:=a[i,j];
 end;

 function sum(i:integer):Integer;
 var j:integer;
 begin sum:=0;
  for j:=1 to m do if not odd(j) and (a[i,j]<L) then sum:=sum+a[i,j];
 end;

begin
 readln(l);

 for i:=1 to n do begin
  for j:=1 to m do begin
   a[i,j]:=random(100)-50; write(a[i,j]:5);
   if a[i,j]<0 then x[j]:=-1;
  end;writeln;
 end;writeln;

 for i:=1 to m do begin
   if x[i]=-1 then x[i]:=max(i) else x[i]:=sum(i);
   write(x[j]:5);
  end;writeln;

 readln;
end.
Иначе за денюжу у фрилансера купи с комментариями.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача в турбо паскале. Артём00000 Паскаль, Turbo Pascal, PascalABC.NET 0 17.03.2013 19:29
задача в турбо паскале senora Помощь студентам 1 27.01.2011 21:02
Задача на турбо Паскале microSD Помощь студентам 2 10.04.2008 12:01