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

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

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

 
 Ответить  Открыть новую тему 
> Процедура+Массив\удаление к-й строки, задача
сообщение
Сообщение #1


Новичок
*

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

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


Условие задачи:
\Из данного двумерного массива удалить к-й столбец.\
Примечание:
1)"Из данного"-массив задаётся по желанию.
2)Программа дожна быть составлена с использованием процедуры или функции. (что-то типо: procedure del_line).
mega_chok.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

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


http://forum.pascal.net.ru/index.php?showt...indpost&p=38100
поменяй k с k+1, k+1 с k+2 и так далее... в итоге k станет последним и протсо уменьши размерность матрицы на 1 по столбцам. blum.gif


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

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

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


Недавно одногруппник попросил написать такую же программу. Вот исходник:
Код
uses
 crt;
var
 m,n,i,j:integer;
 a: array[1..10,1..10] of integer;
 ch:char;
{процедура вывода матрицы}
procedure MatrixOut(x,y:integer);
begin
 writeln;
 for i:=1 to x do
   begin
     for j:=1 to y do
       write(a[i,j]:8);
     writeln;
   end;
 writeln;
end;
{процедура переназначения эл-в массива}
procedure MatrixPer(temp:integer);
begin
 for i:=temp to m-1 do
 begin
   for j:=1 to n do
   begin
     a[i,j]:=a[i+1,j];
    end;
  end;
end;
{основная программа}
begin
repeat
 clrscr;
 write('Введите размер матрицы (MxN): ');
 readln(m,n);
 writeln('Введите элементы матрицы: ');
 {Вводим матрицу}
 for i:=1 to m do
   for j:= 1 to n do
     begin
       write('A[',i,' ',j,']:=');
       readln(a[i,j]);
     end;
 {проверяем равен ли какой-либо эл-т 0}
 MatrixOut(m,n);
 for i:=1 to m do
 for j:=1 to n do
   if a[i,j] = 0 then
     MatrixPer(i); {шаг 1. (см. алгоритм}

   writeln('Результат: ');
   MatrixOut(m-1,n); {шаг 2. (см. алгоритм)}
   writeln('Для выхода нажми ESC...');
 ch:=readkey;
until ch=#27;
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






To: Fang
Вполне возможно, что эта программа даже будет работать... НО !!! Ты внимательно читал условие?
Цитата
\Из данного двумерного массива удалить к-й столбец.\
Все. Никаких проверок на 0 и т.п. Извини, но если ты уж даешь исходник ПОЛНОСТЬЮ, то он должен удовлетворять условию, иначе ты просто запутываешь автора вопроса...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

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

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


Sorry, забыл написать что программа удаляет столбец в котором имеется 0.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Новичок
*

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

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


За то что пытался запутать автора smile.gif - переписал исходник. Теперь он полностью удовлетворяет условию. И описание добавил.

Код
{--------------------------------------------------
Удаление стобцов в матрице.
---------------------------------------------------
>> Описание процедур
---------------------------------------------------
1) MatrixOut(x,y:integer) - выводит матрицу на экран.
  x - количество строк, y - количество столбцов.
2) MatrixPer(temp:integer) - Эта процедура делает
переназначение элементам массива.
  temp - номер строки/стобца.
---------------------------------------------------
>> Пример
---------------------------------------------------
Дана матрица:
      1  0 -3
 A =  4  6  2
     -1  4  7
, необходимо удалить вторую столбей. Алгоритм такой:
1) Необходимо присовить элементам второго стобца элементы
  третьего столбца (A[1,2] = A[1,3], A[2,2] = A[2,3] и т.д.)
  После преобразований получится матрица:
      1  -3 -3
 A =  4   2  2
     -1   7  7
2) Теперь осталось скрыть третий столбец и вывести на экран только
  первые два
}
uses
 crt;
var
 m,n,i,j,k:integer;
 a: array[1..10,1..10] of integer;
{процедура вывода матрицы}
procedure MatrixOut(x,y:integer);
begin
 writeln;
 for i:=1 to x do
   begin
     for j:=1 to y do
       write(a[i,j]:8);
     writeln;
   end;
 writeln;
end;
{процедура переназначения эл-в массива}
procedure MatrixPer(temp:integer);
begin
 for i:=1 to m do
 begin
   for j:=temp to n-1 do
   begin
     a[i,j]:=a[i,j+1];
   end;
  end;
end;
{основная программа}
begin
 clrscr;
 write('Введите размер матрицы (MxN): ');
 readln(m,n);
 writeln('Введите элементы матрицы: ');
 {Вводим матрицу}
 for i:=1 to m do
   for j:= 1 to n do
     begin
       write('A[',i,' ',j,']:=');
       readln(a[i,j]);
     end;

 MatrixOut(m,n); {вывод матрицы}

 write('Введите номер стобца который необходимо удалить: ');
 readln(k);
 MatrixPer(k); {шаг 1. (см. алгоритм}

 writeln('Результат: ');
 MatrixOut(m,n-1); {шаг 2. (см. алгоритм)}

 readln;
end.


Сообщение отредактировано: Fang -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Новичок
*

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

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


good.gif good.gif good.gif
Задание Выполнено !
прошу закрыть тему.

М
сами разберемся ;)
klem4

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





- Текстовая версия 25.04.2024 6:46
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name