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

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

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

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


Гость






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


Гость






Код
Составить программу нахождение произведение элеменнтов массива
 К началу страницы 
+ Ответить 
Leka
сообщение 20.04.2005 11:48
Сообщение #3


Гость






Код
Вставить число после каждого элемента массива, кратного 3.
 К началу страницы 
+ Ответить 
volvo
сообщение 20.04.2005 11:53
Сообщение #4


Гость






Цитата
Выполнить над прямоугольной матрицей В размером m*n последовательность действий:

Что-то очень на приказ похоже <_< ...
Кстати, прежде чем запостить вопрос, неплохо было бы и вот это прочесть:
FAQ: Как описать матрицу, чтобы ....

С использованием такой структуры замена строки в матрице на вектор сводится к одному оператору...

Ну а как определить, есть ли нулевой элемент в строке, и как найти сумму столбца - это точно было в ФАКе...

Остальные задания решались на форуме неоднократно. (см. мою подпись)
 К началу страницы 
+ Ответить 
-анна-
сообщение 20.04.2005 12:34
Сообщение #5


Гость






прочитала все что вы сказали, но так и не поняла как написать эту программу! Ничего у меня не получается! sad.gif
 К началу страницы 
+ Ответить 
volvo
сообщение 20.04.2005 12:36
Сообщение #6


Гость






Что именно не получается? Слово всё не принимается. Матрица как описана? Как пытаешься искать, есть ли нулевые элементы в строке?
 К началу страницы 
+ Ответить 
klem4
сообщение 21.04.2005 7:23
Сообщение #7


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


Цитата(-Анна- @ 20.04.05 11:38)
Надо написать программу. вот задание.


чувствуется тут надолго ;)

const n=3;
m=4;
y:array[1..m] of integer = (10,20,30,40);
var
x:array[1..n,1..m] of integer;
i,j,s:integer;
flag:boolean;


i:=1;
flag:=false;
while (i<=n) do
begin
j:=1;
while (j<=m)and(not(flag)) do
begin
if x[i,j]=0 then
flag:=true;
inc(j);
end;
if flag then
begin
for j:=1 to m do
x[i,j]:=y[j];
end;
inc(i);
flag:=false;
end;


j:=1;
while j<=m do
begin
for i:=1 to n do
s:=s+x[i,j];
inc(j,2);
end;


произв
извиняюсь, исправлено
p:=1;
for i:=1 to n do
p:=p*x[i];


а по поводу "вставить число" это тебе в динамические массивы наверно huh.gif

Сообщение отредактировано: klem4 - 21.04.2005 8:43


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 21.04.2005 8:09
Сообщение #8


Гость






klem4, я уже в который раз (а для leka специально повторяю, эти задачи уже решались, пользуйтесь поиском) повторяю - массив и матрица - совершенно разные вещи, и ты опять наступаешь на те же грабли... Что автор просил?

Цитата(leka @ 20.04.05 11:46)
Составить программу нахождение произведение элеменнтов массива

А что ты сделал?

Цитата(klem4 @ 21.04.05 7:23)
произв

p:=1;
for i:=1 to n do
for j:=1 to m do
  p:=p*x[i,j];


И где тут массив?
 К началу страницы 
+ Ответить 
-анна-
сообщение 25.04.2005 15:56
Сообщение #9


Гость






[QUOTE]я без понятия как описана эта матрица и как искать нулевые элементы! мы эту тему про массивы и матрици вообще не проходили, у нас перподаватель болеет! Говорят сами изучайте по книгам, тока вот времени совсем не осталось!! unsure.gif помогите, чем сможете!
 К началу страницы 
+ Ответить 
Guest
сообщение 25.04.2005 16:06
Сообщение #10


Гость






[quote=klem4,21.04.05 7:23]
чувствуется тут надолго ;)

const n=3;
m=4;
y:array[1..m] of integer = (10,20,30,40);
var
x:array[1..n,1..m] of integer;
i,j,s:integer;
flag:boolean;


i:=1; [QUOTE]ТУТ ОШИБКА КАКАЯ ТО, не пойму как исправить! huh.gif 


flag:=false;
while (i<=n) do
begin
j:=1;
while (j<=m)and(not(flag)) do
begin
if x[i,j]=0 then
flag:=true;
inc(j);
end;
if flag then
begin
for j:=1 to m do
x[i,j]:=y[j];
end;
inc(i);
flag:=false;
end;


j:=1;
while j<=m do
begin
for i:=1 to n do
s:=s+x[i,j];
inc(j,2);
end;


произв
извиняюсь, исправлено
p:=1;
for i:=1 to n do
p:=p*x[i];


а по поводу "вставить число" это тебе в динамические массивы наверно huh.gif
[/quote]
 К началу страницы 
+ Ответить 
volvo
сообщение 25.04.2005 16:21
Сообщение #11


Гость






Вот:
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
 К началу страницы 
+ Ответить 
-анна-
сообщение 25.04.2005 17:41
Сообщение #12


Гость






ВСЕ РАБОТАЕТ!!!!! СПАСИБО ВАМ ОГРОМНОЕ ЗА ПОМОЩЬ!!!!!
ТЕПЕРЬ Я КАЖЕТСЯ САМЫЙ СЧАСТЛИВЫЙ ЧЕЛОВЕК НА СВЕТЕ!!!
Осталось тока блоксхему сделать, но это я уже сама знаю! Еще раз СПАСИБО!!!! :thanks:
 К началу страницы 
+ Ответить 

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

 



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