IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> 2_мерный и одномерный массивы, присвоив его k-тому элементу значение true, если все элементы k-того с
Insomnia
сообщение 27.12.2010 13:23
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 49
Пол: Мужской

Репутация: -  0  +


const n=15; m=20;
var A: array[1..m,1..n] of integer; b: array[1..m] of boolean;
По массиву А получить массив b, присвоив его k-тому элементу значение true, если все элементы k-того столбца массива А нулевые, и значение false иначе.


var		 
	A: array[1..m,1..n] of integer;		
	b: array[1..m] of boolean;		 
	l,i,j:integer;		 
	k:boolean;  
begin	 
   writeln('vvedite k');	 
   readln(k);	 
   writeln('vvedite massiv');	 
 for i:=1 to m do	
   for j:=1 to n do	   
	  readln(A[i,j]);	
  for i:=1 to m do	
	for j:=1 to n do	 
   begin		 
	m:=m+1;		
	b[m]:=A[i,j];	  
   end;	 
 for i:=1 to m do   
  for j:=1 to n do	 
	if   
end.


мне непонятны операции с k . как посчитать к-столбец?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 27.12.2010 13:58
Сообщение #2


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Вот так:
const
  m=20;
  n=15;
var
  A: array[1..m,1..n] of integer;
  b: array[1..m] of boolean;		
  i,j:integer;
begin	
  writeln('vvedite massiv');
  for i:=1 to m do
    for j:=1 to n do
      //readln(A[i,j]);
      a[i,j]:= Random(Random(Random(2)+1)+1)*Random(10);
  for i:=1 to m do begin
    for j:=1 to n do Write(a[i,j]:3);
    WriteLn
  end;
  for i:=1 to m do begin
    b[i]:=true;
    for j:=1 to n do b[i]:=b[i] and (a[i,j]=0)
  end;
  for i:=1 to m do Write(b[i]:6);
  ReadLn
end.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Insomnia
сообщение 27.12.2010 16:12
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 49
Пол: Мужской

Репутация: -  0  +


a[i,j]:= Random(Random(Random(2)+1)+1)*Random(10); - поясните пожалуйста, каким образом получается генерация массива таким выражением?

for j:=1 to n do b[i]:=b[i] and (a[i,j]=0) - вот эти действия в цикле мне непонятны..

Сообщение отредактировано: Insomnia - 27.12.2010 16:12
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 28.12.2010 5:42
Сообщение #4


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Insomnia @ 27.12.2010 16:12) *

a[i,j]:= Random(Random(Random(2)+1)+1)*Random(10); - поясните пожалуйста, каким образом получается генерация массива таким выражением?
Если заполнять просто случайными числами (даже если Random(2)), то слишком мала вероятность, что хотя бы один столбец будет полностью нулевым. Поэтому я и сделал Random(Random(Random(2)+1)+1). А множитель сзади приделал для красоты - чтоб не только едининицы были кроме нулей smile.gif. Попробуй раскрутить эту конструкцию назад и наблюдай за изменениями.

Цитата
for j:=1 to n do b[i]:=b[i] and (a[i,j]=0) - вот эти действия в цикле мне непонятны..
Это и есть главная часть. Тут происходит проверка на то, что все числа в столбце равны 0. Полагаю b[i] равным TRUE (предыдущий оператор - кстати, не надо было его опускать при цитировании), и потом прохожу по всем элементам столбца. Если хоть один ненулевой - b[i] сбрасывается в FALSE.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия 19.07.2025 3:55
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"