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

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

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

> Преобразование прямоугольной матрицы, и работа с массивами
-Анна-
сообщение 20.04.2005 11:38
Сообщение #1


Гость






Надо написать программу. вот задание.
Цитата
Выполнить над прямоугольной матрицей В размером m*n последовательность действий:
а) В матрице В заменить заданным вектором строки, которые содержат хотя бы один нулевой элемент;
б) В полученной матрице найти сумму элементов столбцов с нечетными номерами.
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 25.04.2005 16:21
Сообщение #2


Гость






Вот:
const
size_row = 10; { число строк }
size_col = 10; { число столбцов }

type
tvector = array[1 .. size_col] of integer;
tmatrix = array[1 .. size_row] of tvector;

{ напечатать вектор }
procedure print_v(var v: tvector);
var j: integer;
begin
for j := 1 to size_col do
write(v[j]:4);
writeln
end;

{ напечатать матрицу }
procedure print_m(var mx: tmatrix);
var i: integer;
begin
for i := 1 to size_row do
print_v(mx[i]);
writeln('"enter" to continue...');
readln
end;

var
b: tmatrix;
vec: tvector;
i, j, s: integer;
has_zero: boolean;

begin
{ Заполнение матрицы }
for i := 1 to size_row do
for j := 1 to size_col do
b[i][j] := random(20);

{ Заполнение вектора }
for i := 1 to size_col do
vec[i] := random(15) + 1;
writeln('vector:'); print_v(vec); { напечатать вектор }

writeln('before:'); print_m( B ); { напечатать матрицу ДО }

for i := 1 to size_row do begin
{ изначально предполагаем что нулевых элементов нет }
has_zero := false;
for j := 1 to size_col do
has_zero := has_zero or (b[i][j] = 0);
{ если есть хоть один нулевой элемент - заменить строку на вектор }
if has_zero then b[i] := vec
end;

writeln('after:'); print_m( B ); { напечатать матрицу ПОСЛЕ }

{ подсчет суммы элементов }
s := 0;
for j := 1 to size_col do
if odd(j) then { только в нечетных столбцах !!! }
for i := 1 to size_row do
inc(s, b[i][j]);
writeln('s = ', s);
end.

smile.gif
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 



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