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

 



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