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

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

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

 
 Ответить  Открыть новую тему 
> найти минимальные значения в каждой строке матрицы
Юлька-1
сообщение 6.12.2011 15:34
Сообщение #1





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

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


Матрицу В(5,8) заполнить целыми случайными числами в диапазоне от 10 до 150. Матрицу-маску М(5,8) заполнить нулями и единицами случайным образом. Найти минимальные значения положительных элементов в каждой строке по единицам М. Матрицы В, М и результаты счета вывести на экран. Если в каких либо строках не окажется положительных элементов, соответствующих единицам М, то выдать соответствующее сообщение.

помогите пожалуйста... )
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
potter-by
сообщение 9.12.2011 7:48
Сообщение #2





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

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


Решал быстро, так что извиняйте за длинный код ;-)
Надеюсь, задание понял правильно!
PascalABC.NET 1.8


var b,m:array [1..5,1..8] of integer;
st:array [1..5] of integer;
i,j,k,n,min,p,nul:integer;
ll:boolean;
begin
randomize;
{Матрица исходная, случайно заполненная - создаём}
for i:=1 to 5 do
for j:=1 to 8 do
b[i,j]:=random(141)+10;
{Матрица-маска - создаём}
for i:=1 to 5 do
for j:=1 to 8 do
//if (i=2) or (i=4) then m[i,j]:=random(1) else {Если раскомментировать (удалить //), создаёт гарантированные строки №2 и №4 со всеми нулями}
m[i,j]:=random(2);
{Выводим матрицу исходную}
for i:=1 to 5 do
begin
for j:=1 to 8 do
write(b[i,j]:5);
writeln;
end;
writeln;
{Выводим матрицу-маску}
for i:=1 to 5 do
begin
for j:=1 to 8 do
write(m[i,j]:5);
writeln;
end;
{Количество нулей в каждой строке матрицы-маски - подсчёт
необходимо для того, чтобы посчитать количество нулей
в каждой строке. Если вся строка заполнена нулями, позже мы её
исключим из рассмотрения на наличие минимального элемента}
for i:=1 to 5 do
begin
k:=0;
for j:=1 to 8 do
if m[i,j]=0 then k:=k+1;
st[i]:=k;
end;
{Две следующие строки просто для проверки вывода, правильно ли
подсчитаны нули, их можно удалить}
//for i:=1 to 5 do
//writeln('В ',i,'-ой строке ',st[i],' нулей');

writeln;
{Собственно поиск минимального по матрице-маске}
for i:=1 to 5 do
if st[i]<>8 then
begin
k:=1;
while (m[i,k]<>1) and (k<=8) do k:=k+1;
p:=k;
//writeln(p:5);
min:=b[i,p];
for j:=p+1 to 8 do
if (b[i,j]<min) and (m[i,j]=1) then
min:=b[i,j];
writeln('Минимальный элемент ',i,' строки, соответствующий единице матрицы-маски, равен ',min);
end
else writeln('В ',i,'-ой строке нет положительных элементов, соответствующих единицам матрицы-маски');
end.



Прикрепленные файлы
Прикрепленный файл  1.pas ( 1.78 килобайт ) Кол-во скачиваний: 173
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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