Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.01.2007, 18:51   #1
DRAG
 
Регистрация: 25.12.2006
Сообщений: 6
По умолчанию Задача на исключение строк в матрице

Написать подпрограмму в Паскале
Входные параметры
1)Матрица "A" размром (m) х (n)
2) Матрица "B" размером (m-1) x (n-1)
3)Целые числа(integer?) номер строки и столбца матрицы "A"

Задание: Заполнить матрицу "В" элементами "А" исключив строки и столбец номера которых даны.

-----------------------------------------
Люди пожалуста помогите как можно скорее... Заранее крайне благодарен

Последний раз редактировалось DRAG; 18.01.2007 в 19:28.
DRAG вне форума Ответить с цитированием
Старый 19.01.2007, 22:33   #2
DRAG
 
Регистрация: 25.12.2006
Сообщений: 6
По умолчанию

Млиин лююди неужели она сложная такая... этож первый курс всего-то... это я нимагу решить туплю неполучается.. а тут же вроде мега прогеры сидят... или млин... че делать то...
DRAG вне форума Ответить с цитированием
Старый 19.01.2007, 23:19   #3
Flash_
Пользователь
 
Аватар для Flash_
 
Регистрация: 19.12.2006
Сообщений: 91
По умолчанию

Код:
program z1;
 
const n=10; m=10;
 
var A: array[1..n,1..m] of integer;
     B: array[1..n-1,1..m-1] of integer;
     t, t2, i, k, ni, mi: integer;
 
begin
 
write('Введите элементы 1-ой матрицы: ');
for i:=1 to n do
for k:=1 to m do
readln ('a[' ,i, ',' ,k,']');
 
write('Введите номера удаляемой строки и столбца: ');
readln (ni,mi);
 
for i:=1 to ni do
for k:=1 to m-1 do
b[i,k] := a[i,k];
 
t:=i+1;
t2:=k;
 
for i:=t to n do
for k:=t2 to m-1 do
b[i-1,k]:=a[i,k];
 
if mi<>n then
begin
for k:=1 to mi do
for i:=1 to n-1 do
b[i,k] := a[i,k];
 
t:=i;
k:=k+1;
 
for i:=t to n do
for k:=t2 to m-1 do
b[i-1,k]:=a[i,k];
end;
writeln ('Матрица заполнена!');
end.

Последний раз редактировалось Flash_; 19.01.2007 в 23:21.
Flash_ вне форума Ответить с цитированием
Старый 23.01.2007, 03:44   #4
DRAG
 
Регистрация: 25.12.2006
Сообщений: 6
По умолчанию

Спасибо друг))
DRAG вне форума Ответить с цитированием
Старый 16.10.2009, 20:53   #5
Doll-killer
Новичок
Джуниор
 
Регистрация: 16.10.2009
Сообщений: 4
По умолчанию Задача на исключение строк

Дана матрица [A], размером N x M. Исключить из матрицы К-ую строку. Вывести на печать исходную и полученную матрицы

Задача решена, но мне срочно нужен подробный комментарий к листингу, ребят помогите пожалуйста
Doll-killer вне форума Ответить с цитированием
Старый 16.10.2009, 20:55   #6
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

Листинг давайте.
profi вне форума Ответить с цитированием
Старый 16.10.2009, 20:58   #7
Doll-killer
Новичок
Джуниор
 
Регистрация: 16.10.2009
Сообщений: 4
По умолчанию

var
n, m, k: byte;
a: array of array of integer;
b: array of array of integer;
i,j: byte;
begin
repeat
//writeln('Введите количество строк (количество строк должно быть больше 1): ');
writeln('Input rows count (row count must be more than 1): ');
readln(n);
until n>1;
//writeln('Введите количество столбцов: ');
writeln('Input columns count: ');
readln(m);
SetLength(a,n);
for i:=0 to n-1 do
SetLength(a[i],m);
//writeln('Введите построчно элементы матрицы: ');
writeln('Input elements of matrix (by rows): ');
for i:=0 to n-1 do
for j:=0 to m-1 do
read(a[i,j]);
repeat
//writeln('Введите номер строки, которую следует исключить (номер строки должен быть в диапазоне от 1 до ' + IntToStr(n) + '): ');
writeln('Input row number for exclude (row number must be between 1 and ' + IntToStr(n) + '): ');
readln(k);
until ((k>0) and (k<=n));
SetLength(b,n-1);
for i:=0 to n-2 do
SetLength(b[i],m);
for i:=0 to n-1 do begin
if i<(k-1) then
for j:=0 to m-1 do
b[i,j]:=a[i,j]
else if i>(k-1) then
for j:=0 to m-1 do
b[i-1,j]:=a[i,j];
end;
writeln('Source matrix:');
for i:=0 to n-1 do begin
for j:=0 to m-1 do
write(IntToStr(a[i,j]) + ' ');
writeln('');
end;
writeln('Result matrix (' + IntToStr(k) + ' row was excluded');
for i:=0 to n-2 do begin
for j:=0 to m-1 do
write(IntToStr(b[i,j]) + ' ');
writeln('');
end;
readln;
end.
Doll-killer вне форума Ответить с цитированием
Старый 16.10.2009, 21:19   #8
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

Цитата:
repeat
//writeln('Введите количество строк (количество строк должно быть больше 1): ');
writeln('Input rows count (row count must be more than 1): ');
readln(n);
until n>1;
Вводим кол-во строк до тех пор пока оно не будет больше 1.
Цитата:
SetLength(a,n);
for i:=0 to n-1 do
SetLength(a[i],m);
Устанавливаем длину массива массивов.

Цитата:
repeat
//writeln('Введите номер строки, которую следует исключить (номер строки должен быть в диапазоне от 1 до ' + IntToStr(n) + '): ');
writeln('Input row number for exclude (row number must be between 1 and ' + IntToStr(n) + '): ');
readln(k);
until ((k>0) and (k<=n));
Вводим номер строки пока оно не удовлетворит этому условию ((k>0) and (k<=n))
Цитата:
SetLength(b,n-1);
for i:=0 to n-2 do
SetLength(b[i],m);
for i:=0 to n-1 do begin
if i<(k-1) then
for j:=0 to m-1 do
b[i,j]:=a[i,j]
else if i>(k-1) then
for j:=0 to m-1 do
b[i-1,j]:=a[i,j];
end;
Устанавливаем размеры новой матрицы и записуем туда уже матрицу с исключеной k-ой строкой

Цитата:
writeln('Source matrix:');
for i:=0 to n-1 do begin
for j:=0 to m-1 do
write(IntToStr(a[i,j]) + ' ');
writeln('');
end;
writeln('Result matrix (' + IntToStr(k) + ' row was excluded');
for i:=0 to n-2 do begin
for j:=0 to m-1 do
write(IntToStr(b[i,j]) + ' ');
writeln('');
end;
Выводим обе матрицы.
profi вне форума Ответить с цитированием
Старый 16.10.2009, 21:31   #9
Doll-killer
Новичок
Джуниор
 
Регистрация: 16.10.2009
Сообщений: 4
По умолчанию

Спасибки)))А еще подробней можно??? просто задание в контрольной такое - "Листинги программы и результаты решения должны иметь подробные комментарии и пояснения." у меня завтра зачет я незнаю куда деться ни че не успеваю...
Doll-killer вне форума Ответить с цитированием
Старый 16.10.2009, 21:36   #10
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

Так что ли?

Код:
Код:
if i<(k-1) then
for j:=0 to m-1 do
b[i,j]:=a[i,j]
Пояснение к коду:
Код:
ЕСЛИ i<(k-1) ТОГДА
С j:=0 ПО m-1 ДЕЛАТЬ
b[i,j]:=a[i,j] // присвоение элементу b[i,j] элемента a[i,j]
Тогда открывайте книгу и читайте.
profi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как обработать исключение? XPAiN БД в Delphi 9 16.05.2008 15:09
Excel max 256 строк VS user надо 300 строк Exo Microsoft Office Excel 3 10.01.2008 17:14
HELP!Си - программа для работы со строками + сумма строк в матрице! DUPLET Помощь студентам 1 20.12.2007 21:16
задача на массив строк hijack Помощь студентам 0 26.11.2007 23:10
Исключение EIdReadTimeout Pedro Работа с сетью в Delphi 1 22.09.2007 22:51