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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.09.2014, 23:55   #1
dimka123
Пользователь
 
Регистрация: 25.12.2011
Сообщений: 96
Восклицание Дано число k и матрица. Вставить строку перед и после строки с номером k

задание такое-Дано число k Вставить строку перед и после строки с номером k (строки нумеруются от 0). Если строки с таким номером нет, то оставить файл без изменений.
но пока ,что делаю без файла.. застрял в добавлении условия,чтобы та же строка вставлялась и перед заданной строкой.(
Код:
uses crt;
const nmax=15;
var a:array[1..nmax,1..nmax] of integer;
    m,n,i,j,s:byte;
begin
randomize;
repeat
write('Количество строк до ',nmax,' m=');
read(m);
until m in [1..nmax];
repeat
write('Количество столбцов до ',nmax,' n=');
read(n);
until n in [1..nmax];
writeln('Исходная матрица:');
for i:=1 to m do
 begin
  for j:=1 to n do
   begin
    a[i,j]:=random(20);
    write(a[i,j]:4);
   end;
  writeln;
 end;
writeln;
repeat
write('После какой строки вставить от 1 до ',m,' s=');
read(s);
until s in [1..m];
m:=m+1;
if s=m-1 then
 begin
  for j:=1 to n do
  a[m,j]:=100
 end
else
 begin
  for i:=m downto s+2 do
  for j:=1 to n do
  a[i,j]:=a[i-1,j];
  for j:=1 to n do
  a[s+1,j]:=100;
 end;
for i:=1 to m do
 begin
  for j:=1 to n do
  write(a[i,j]:4);
  writeln
 end;
end.

Последний раз редактировалось dimka123; 25.09.2014 в 00:30.
dimka123 вне форума Ответить с цитированием
Старый 25.09.2014, 09:24   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
оставить файл без изменений.
А задание полностью привести не судьба?
Где в задании сказано про файл?
Куда надо вставить строку, о каком файле идёт речь?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 25.09.2014, 09:52   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Что-то типа:
Код:
var q:text; s,s2:string; i,k:integer;
begin
 readln(s2); readln(k);
 assign(q,'file.txt'); reset(q);
 assign(output,'file2.txt');
 i:=1;
 while not eof(q) do begin
  readln(q,s);
  if i=k then begin writeln(s2); writeln(s); writeln(s2); end
  else writeln(s);
  inc(k);
 end;
 close(q);
 // Тут какой-то функцией не помню точно какой переименовать file2.txt в file.txt
end.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.09.2014, 15:40   #4
dimka123
Пользователь
 
Регистрация: 25.12.2011
Сообщений: 96
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
А задание полностью привести не судьба?
Где в задании сказано про файл?
Куда надо вставить строку, о каком файле идёт речь?
дан файл и число К.где К это номер строки после и перед которой нужно вставить пустую строку.
в файле как я понял записан двумерный массив
dimka123 вне форума Ответить с цитированием
Старый 25.09.2014, 16:16   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
в файле как я понял записан двумерный массив
дьявол, как известно, в деталях!!
Что за тип файла и каким образом записан массив в файле?!

если речь идёт о текстовых файлах, то рекомендую ознакомиться с решением (c) Stilet из пост #3
Serge_Bliznykov вне форума Ответить с цитированием
Старый 25.09.2014, 16:33   #6
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
в файле как я понял записан двумерный массив
Покажь сам файл, а то какое-то "чтогдекогда" получается.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 25.09.2014, 18:52   #7
dimka123
Пользователь
 
Регистрация: 25.12.2011
Сообщений: 96
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
Покажь сам файл, а то какое-то "чтогдекогда" получается.
в файле должен быть двумерный массив.(как я понял)
и думаю такой будет файлик name.txt
dimka123 вне форума Ответить с цитированием
Старый 25.09.2014, 19:07   #8
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Классами delphi пользоваться низзя? Только процедурный паскаль, только хардкор? Зачем в файле массив чисел? Содержимое массива не анализируется жэж!
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 26.09.2014, 09:43   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
и думаю такой будет файлик name.txt
ещё раз повторяю вопрос - как полностью звучит задание?!
если вставить строку до и после, то чем не устраивает код, выложенный Stilet ?

и с этим
Цитата:
в файле массив чисел? Содержимое массива не анализируется жэж!
я полностью согласен.
если в файле будет
Код:
tra ta  ta bu ga ga
1 b  cc dd e ffd
2 3 1 
   2 3 4 5 6 7
ra ra ra ra ra
программа должна сработать? Если нет - то почему?

Последний раз редактировалось Serge_Bliznykov; 26.09.2014 в 09:46.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вставить заданное слово в строку перед заданным словом Blind Guard Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 5 07.04.2014 19:56
Дана матрица размера MxN и целое число К(1<K<M). Удалить строку матрицы с номером К bolshe_ne_RUS Паскаль, Turbo Pascal, PascalABC.NET 6 14.06.2011 16:26
дана матрица порядка m на n. Вставить в данную матрицу столбец с номером K Aktor1992 Паскаль, Turbo Pascal, PascalABC.NET 1 13.04.2011 12:24
Дано натуральное число n. Определить наименьшую цифру с чётным номером - Задача по Си Lexeres Помощь студентам 6 16.11.2009 19:24
Вставить первую строку после строки, в которой находится первый встреченный максимальный элемент. JiLiYa Паскаль, Turbo Pascal, PascalABC.NET 4 03.12.2008 12:13