![]()  | 
	
 
  | 
		
			
  | 	
	
	
		
		|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны | 
![]()  | 
	
	
| 
		 | 
	Опции темы | Поиск в этой теме | Опции просмотра | 
| 
	 | 
| 
		 
			 
			#1  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Здравствуйте, помогите пожалуйста решить задачу в паскале. Я даже не понял условия задачи самой, которая была дана для курсовой работы. Помогите хотя бы понять, что нужно делать в этих заданиях, если вы поняли. 
		
	
		
		
		
		
		
	
		
		
	
	
	Задачи: а) Сформировать из столбцов В, не содержащих равных элементов, матрицу С размером m х k, где k <= n - количество таких столбцов; б) в матрице С вычислить суммы элементов строк, номера которых определяются номерами нулевых элементов заданного вектора.  | 
| 
		 
			 
			#2  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Ну, если не ошибаюсь, то все довольно просто. 
		
	
		
		
		
		
		
	
		
		
	
	
	Задача А: Тебе задана матрица B (m x n). Надо найти в ней столбцы без одинаковых элементов и "собрать" из них матрицу C (m x k). k действительно будет меньше или равно n, а высота останется той же (m). Задача Б: Из полученной в задаче А матрицы и вектора (одномерный массив, еще одни входные данные для второй задачи) посчитать суммы элементов тех строк, номера которых совпадают с номерами элементамов вектора, равными 0. Более ясно объяснить не могу... Для написания кода надо понимать какой диалект языка можно использовать. Например, в классическом ПАСКАЛе нет динамических массивов, соотв. задачи придется решать либо используя статические массивы, т.е. фиксировать m и n, либо городить огород с указателями. В Дельфи динамические массивы есть, соотв. можно написать универсальный код под любые (с разумным ограничением) размеры входных данных, да и интерфейс для ввода данных можно нарисовать более удобный.  | 
| 
		 
			 
			#3  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Ой простите, я случайно перепутал задания. Вот мои задания, я до сих пор не понял как сделать это, и что именно нужно делать. 
		
	
		
		
		
		
		
		
			Сформировать из строк B с нулевым первым элементом матрицу C размером kxn, где k<=m-количество этих строк. Я так понял что, есть массив с типом string, и тутад надо ввести числа через пробел, и те строки в которых первое число равно 0, то его записать в массив с размером. А вот размер какой я непонял, не понял что такое k, n и m я так понял размер матрицы, n-строка,m-столбец. Последний раз редактировалось BlackMonsta, 21.03.2015 в 11:43.  | 
| 
		 
			 
			#4  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Кто нибудь знает? 
		
	
		
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#5  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Ну, знаем. И что? 
		
	
		
		
		
		
		
	
		
		
	
	
	m, n и k - это условные размеры массивов (кол-во строк или столбцов). И с чего ты решил, что это массив строк (в смысле String)? Код: 
	// Delphi var B : Array Of Array Of Integer; Код: 
	(* Pascal *) const m = 100; n = 100; var B : Array [1..m,1..n] Of Integer; Теперь о k. Т.к. ты формируешь новый массив C из строк исходного массива B, и туда войдут только строки, у которых первый элемено = 0, то общее кол-во строк (k) создаваемого массива будет меньше или равно (если все строки начинаются с 0), чем у исходного массива, т.е. k <= m, но заранее ты кол-во таких строк не знаешь, соответсвнно, они обозначаются буквой (k), а не конкретным числом. ЗЫ. В вышеприведенном тексте термин "строка" обозначает горизонтальный ряд (строку) прямоугольного массива, т.е., фактически, одномерный массив, а не тип данных String, как ты, видимо, подумал. Есть мнение, что в постановке задачи термин "строка" имеет тот же смысл. ЗЗЫ. Если такие проблемы с пониманием простейших стандартных задач, то может не связываться с программированием и поискать себе другую область деятельности?  | 
| 
		 
			 
			#6  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Получается код будет такой? 
		
	
		
		
		
		
		
	
		
		
	
	
	Код: 
	var
B,C:array[1..50,1..50] of integer;
a:array[1..50] of integer;
i,j,ib,jb,k:integer;
begin
 write('Введите кол-во строк: ');
 readln(ib);
 write('Введите количество элементов в строке:  ');
 readln(jb);
 k:=0;
 for i:=1 to ib do
 begin
  for j:=1 to jb do
  begin
   b[i,j]:= random(0,2);
   write(b[i,j]:3);
  end;
  if b[i,1]=0 then
  begin
   k:=k+1;
   a[k]:=i;
  end;
  writeln;
 end;
 for i:=1 to k do
 begin
  for j:=1 to jb do
  begin
   c[i,j]:= b[a[i],j];
  end;
 end;
 writeln('Матрица C:');
 for i:=1 to k do
 begin
  for j:=1 to jb do
  begin
   write(C[i,j]:3);
  end;
  writeln;
 end;
end. |