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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 02.10.2009, 14:45   #1
Rikki-Tikki
Пользователь
 
Аватар для Rikki-Tikki
 
Регистрация: 02.10.2009
Сообщений: 15
Восклицание Работа с матрицами

Здравствуйте! помогите, пожалуйста!
нужно вставить в матрицу столбец после столбца k со сдвигом столбцов влево.
вот я написала процедуру:

Код:
procedure vstav(ma:a;k:integer);
var
i,j:integer;
Begin
for j:=n-1 downto k do ma[i,j+1]:= ma[i,j];
for i:=1 to n do ma[i,k+1]:=55;

for i:=1 to n do
 begin
 for j:=1 to n do write(mas[i,j]:3);
 writeln;
 end;
end;
на что мне паскальчик пишет :"выход за границы диапозона 1..5". (у меня n=5).
только что сделала задачу с одномерным массивом (вставка - сдвиг влево, и ничего, не ругался насчет границ диапазона :

Код:
procedure vstav(ma:a;k:integer);
var
i:integer;
Begin
for i:= n-1 downto k do ma[i+1]:= ma[i];
ma[k+1]:= 55;
for i:=1 to n do write(ma[i],' ');
end;
почему? ну почему???

Последний раз редактировалось Stilet; 02.10.2009 в 15:34.
Rikki-Tikki вне форума
Старый 02.10.2009, 15:41   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
со сдвигом столбцов влево.
Если последний столбец выбрасывается то предлагаю такой вариант вставок:
Код:
var a:array[1..5,1..5] of byte;
    e:array[1..5] of byte;
  q,w,k:integer;
begin
 for q:=1 to 5 do e[q]:=0;
 for q:=1 to 5 do begin
  for w:=1 to 5 do begin
   a[q,w]:=w;
   write(a[q,w]:3);
  end;
  writeln;
 end;
 
 k:=2;
 {Сдвиг столбцов}
 for q:=1 to 5 do begin
  move(a[q,k],a[q,k+1],5-k);
 end;

 {Вставка столбца}
 for w:=1 to 5 do begin
  a[w,k]:=e[w];
 end;
 writeln;
 for q:=1 to 5 do begin
  for w:=1 to 5 do begin
   write(a[q,w]:3);
  end;
  writeln;
 end;

 readln;
  { TODO -oUser -cConsole Main : Insert code here }
end.
Смысл ясен?
I'm learning to live...
Stilet вне форума
Старый 02.10.2009, 18:27   #3
Rikki-Tikki
Пользователь
 
Аватар для Rikki-Tikki
 
Регистрация: 02.10.2009
Сообщений: 15
По умолчанию

спасибо за отклик !
Цитата:
begin
for q:=1 to 5 do e[q]:=0;
for q:=1 to 5 do begin
for w:=1 to 5 do begin
a[q,w]:=w;
write(a[q,w]:3);
end;
writeln;
end;
- заполение и вывод матрицы 5х5. Так.
а вот дальше...
Цитата:
k:=2;
{Сдвиг столбцов}
for q:=1 to 5 do begin
move(a[q,k],a[q,k+1],5-k);
end;
впревые в жизни вижу процедуру move.вы так ее написали, будто он азаранее в паскале есть. нам же по заданию ее самим нужно написать. "написать процедуру или функцию, позволяющую вставить столбец...". вот какое задание.
Rikki-Tikki вне форума
Старый 02.10.2009, 23:09   #4
Скарам
Дружите с Linq ;)
Форумчанин
 
Аватар для Скарам
 
Регистрация: 15.10.2008
Сообщений: 822
По умолчанию

Цитата:
procedure vstav(ma:a;k:integer);
var
i,j:integer;
Begin
for j:=n-1 downto k do ma[i,j+1]:= ma[i,j];
for i:=1 to n do ma[i,k+1]:=55;

for i:=1 to n do
begin
for j:=1 to n do write(mas[i,j]:3);
writeln;
end;
end;
Я вообще Делфи изучал в инсте 1 семестр 4 года назад,но думаю должно быть примерно так,извините не проверял,не на чем ).
Код:
procedure vstav(ma:a;k:integer);
var
i,j:integer;
Begin
for j:=1 to k do 
begin
for i:=1 to n
ma[i,j]:= ma[i,j+1];
end;
for i:=1 to n do ma[i,k+1]:=55;

for i:=1 to n do
 begin
 for j:=1 to n do write(mas[i,j]:3);
 writeln;
 end;
end;
Не давай организму поблажки, каждый день тренируй его в шашки..
Скарам вне форума
Старый 07.10.2009, 13:38   #5
Rikki-Tikki
Пользователь
 
Аватар для Rikki-Tikki
 
Регистрация: 02.10.2009
Сообщений: 15
По умолчанию

Цитата:
Сообщение от Скарам Посмотреть сообщение
Я вообще Делфи изучал в инсте 1 семестр 4 года назад,но думаю должно быть примерно так,извините не проверял,не на чем ).
Код:
procedure vstav(ma:a;k:integer);
var
i,j:integer;
Begin
for j:=1 to k do 
begin
for i:=1 to n
ma[i,j]:= ma[i,j+1];
end;
for i:=1 to n do ma[i,k+1]:=55;

for i:=1 to n do
 begin
 for j:=1 to n do write(mas[i,j]:3);
 writeln;
 end;
end;
спасибо за участие!
если написать такую процедуру, то просто добавляется слева строка и снузу столбец со значениями 0.
итак, задача остается нерешенной... помогите, люди добрые
Rikki-Tikki вне форума
Старый 07.10.2009, 13:53   #6
Consol
Пользователь
 
Регистрация: 19.08.2009
Сообщений: 89
По умолчанию

Код:
procedure vstav(ma:a;k:integer);
var i,j,temp:integer;
begin
i:=1;
while i<=k-1 do
 begin
  for j:=1 to n do{n-число строк}
     ma[j,i]:=ma[j,i+1];
  i:=i+1;
  end;
  for j:=1 to n do
    ma[j,k]:=55;
    
end;
Consol вне форума
Старый 07.10.2009, 13:59   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
будто он азаранее в паскале есть.
Не поверишь, но как раз она там есть.
I'm learning to live...
Stilet вне форума
Старый 07.10.2009, 14:52   #8
Rikki-Tikki
Пользователь
 
Аватар для Rikki-Tikki
 
Регистрация: 02.10.2009
Сообщений: 15
Печаль

Цитата:
Сообщение от Consol Посмотреть сообщение
Код:
procedure vstav(ma:a;k:integer);
var i,j,temp:integer;
begin
i:=1;
while i<=k-1 do 
 begin
  for j:=1 to n do{n-число строк}
     ma[j,i]:=ma[j,i+1];
  i:=i+1;
  end;
  for j:=1 to n do
    ma[j,k]:=55;
    
end;
Спасибо за участие но, к сожалению, у меня эта процедура так же просто добавляет столбец и строку с нулями

Stilet, я верю и не возражаю! Но просто если я подойду с таким решением к преподавателю, он оценит такое решение, как наглость (ну, как-то так -), потому что в условии сказано:"Написать процедуру", а не "использовать".

Rikki-Tikki вне форума
Старый 19.12.2010, 12:41   #9
Alenchik
 
Регистрация: 19.12.2010
Сообщений: 6
По умолчанию

Помогите пожалуйста в решении задачи:
В целочисленной последовательности есть нулевые элементы. Определить количество этих элеменотов.
Alenchik вне форума
Старый 19.12.2010, 12:52   #10
andrewpalkin
Форумчанин
 
Аватар для andrewpalkin
 
Регистрация: 23.11.2010
Сообщений: 458
По умолчанию

Цитата:
Сообщение от Alenchik Посмотреть сообщение
Помогите пожалуйста в решении задачи:
В целочисленной последовательности есть нулевые элементы. Определить количество этих элеменотов.
Запусти цикл и просто считай все нули , которые будут встречаться в последовательности
--- Если я вам помог , то помогите и вы мне . Не просто просите решить задачу , а пробуйте ее сами решить ! Я не пишу программы с нуля , я помогаю поправить код ! ---
andrewpalkin вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с матрицами на Си artem7213 Общие вопросы C/C++ 5 21.04.2009 14:37
Работа с матрицами (С++ Builder) Катюшенька Помощь студентам 2 15.03.2009 15:53
help!!! работа с матрицами Zagran Паскаль, Turbo Pascal, PascalABC.NET 4 08.01.2007 15:54