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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.01.2009, 12:14   #1
radikal
 
Регистрация: 14.01.2009
Сообщений: 2
По умолчанию удаление сроки из матрицы с заданным номером К

задана матрица А размером 4 на 5. ТРебуется удалить строку с заданным номером К. Все первоначальные элементы массива вводятся с клавиатуры. Заранее спасибо!
radikal вне форума Ответить с цитированием
Старый 14.01.2009, 12:20   #2
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Код:
uses crt;
const m=4;
      n=5;
      
var i,j,k:integer;
    a:array[1..m,1..n] of integer;
    
begin
for i:=1 to m do
 for j:=1 to n do
  read(a[i,j]);
repeat
writeln('Input number');
readln(k);
until k<=m;
clrscr;
for i:=1 to m do
 begin
  for j:=1 to n do
   write(a[i,j]:4);
   writeln;
 end;
 
for i:=k to m-1 do
 for j:=1 to n do
  a[i,j]:=a[i+1,j];
  writeln('=============================');
for i:=1 to m-1 do
 begin
  for j:=1 to n do
   write(a[i,j]:4);
   writeln;
 end;
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 14.01.2009, 16:41   #3
capta1n
Форумчанин
 
Аватар для capta1n
 
Регистрация: 06.12.2008
Сообщений: 613
По умолчанию Вывожу оставшийся массив, освобождаю память, занимаемую удаляемой строкой:

Мой вариант (даже с символами, чтобы поинтереснее xD):

Код:
program masss;
const
 m = 4;
 n = 5;
type
 DataItem = array [1..m,1..n] of ^char;
var
 A : DataItem;
 i,j : byte;
 k : byte;
 c : char;
begin

  randomize;
  writeln ('Input char: ');
  for i:=1 to m do
  begin
    for j:=1 to n do
    begin
      c:=chr(ord('A')+random(20));
      new (A[i,j]);
      A[i,j]^:=c;
      write(c,'|')
    end;
    writeln
  end;


  writeln ('Input k: ');
  readln (k);

  if k<=m then
  begin
    if k<m then
    begin
      for i:=k to m-1 do
       for j:=1 to n do A[i,j]^:=A[i+1,j]^
    end
    else for j:=1 to n do dispose (A[m,j]);

    for i:=1 to m-1 do
    begin
      for j:=1 to n do write (A[i,j]^,'|');
      writeln
    end
  end
  else writeln ('''k'' is much more ''m''!');

  readln;

end.
capta1n вне форума Ответить с цитированием
Старый 14.01.2009, 22:46   #4
radikal
 
Регистрация: 14.01.2009
Сообщений: 2
По умолчанию

большое спасибо!!!!
radikal вне форума Ответить с цитированием
Старый 14.01.2009, 23:24   #5
capta1n
Форумчанин
 
Аватар для capta1n
 
Регистрация: 06.12.2008
Сообщений: 613
По умолчанию

а отзыв?
capta1n вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Матрицы.переставить строку с максимальным элементом на главной диагонали со строкой с заданным номмером м microlab Помощь студентам 3 07.11.2008 09:49
Найти символы сроки) Nika_D Помощь студентам 4 20.01.2008 10:58
Суммирование ячеек с заданным шагом valerij Microsoft Office Excel 10 10.10.2007 00:22
Как перехватить/узнать содержимое адресной сроки? s-force Работа с сетью в Delphi 5 27.08.2007 10:39