Даны действительная матрица размера nx(n+1),действительные числа a1....an+1,b1....bn+1,натуральные числа p,q(p меньше =n,q меньше =n+1)Образовать новую матрицу размера (n+1)x(n+2) вставкой после строки сномером p данной амтрицы...

Даны действительная матрица размера nx(n+1),действительные числа a1....an+1,b1....bn+1,натуральные числа p,q(p<=n,q<=n+1)Образовать новую матрицу размера (n+1)x(n+2) вставкой после строки сномером p данной амтрицы новой строки с элементами a1...an+1 и последующейй вставкой после столбца с номером q нового столбца с элементами b1...bn+1 const n=30; var i,j,p,q:integer; c:array[1..n,1..n+1] of integer; a:array[1..n+1] of integer; b:array[1..n+1] of integer; begin readln(q,p); For i:=1 to n do For j:=1 to n+1 do c[i,j]:=random(28)+1; begin for i:=1 to n+1 do p:=random(28)+1; end; for j:=1 to n+1 do begin// q:=random(28)+1; end; for i:=n downto p do// for j:=1 to n+1 do c[i+1,j]:=c[i,j]; for j:=1 to n+1 do c[p,j]:=a[i]; for j:=n+1 downto q do for i:=1 to N+1 do c[i,j+1]:=c[i,j]; for i:=1 to n+1 do c[i,q]:=b[i]; for i:=1 to n do begin for j:=1 to n+1 do write(c[i,j]:2); writeln; end; end. помогите исправить ошибки или сделайте пожалуйста уже готовую программу(паскаль).Заранее спасибо
Гость
Ответ(ы) на вопрос:
Гость
// PascalABC.NET 3.0, сборка 1110 const   nn=30; var   i,j,n,p,q:integer;   c:array[1..nn+1,1..nn+2] of char;   a,b:array[1..nn+1] of char;   t:char; begin   Write('Введите n (1-30): '); Read(n);   if n=1 then p:=1   else begin Write('Введите p (1-',n,'): '); Read(p) end;   Write('Введите q (1-',n+1,'): '); Read(q);   // инициализация и вывод   Randomize;   for i:=1 to n do     for j:=1 to n+1 do       c[i,j]:=Chr(Ord('А')+Random(32)); // [А..Я]   Writeln('*** Исходная матрица C ***');   for i:=1 to n+1 do begin     for j:=1 to n+2 do begin       if (j=n+2) or (i=n+1) then c[i,j]:='*';       Write(c[i,j]:2)       end;     Writeln   end;   Writeln('*** Вектор А ***');   for i:=1 to n+1 do begin     a[i]:=Chr(Ord('A')+Random(26)); // [A..Z]     Write(a[i]:2)     end;   Writeln(#13#10,'*** Вектор B ***');   for i:=1 to n+1 do begin     b[i]:=Chr(Ord('a')+Random(26)); // [a..z]     Write(b[i]:2)     end;   Writeln;   // вставка строки ниже p на основе вектора А   for i:=n+1 downto p+1 do     for j:=1 to n+1 do       c[i,j]:=c[i-1,j];   for j:=1 to n+1 do c[p+1,j]:=a[j];   Writeln('*** Матрица C после вставки строки ***');   for i:=1 to n+1 do begin     for j:=1 to n+2 do Write(c[i,j]:2);     Writeln   end;   // вставка столбца правее q на основе вектора А   for j:=n+2 downto q+1 do     for i:=1 to n+1 do       c[i,j]:=c[i,j-1];   for i:=1 to n+1 do c[i,q+1]:=b[i];   Writeln('*** Результирующая матрица C ***');   for i:=1 to n+1 do begin     for j:=1 to n+2 do Write(c[i,j]:2);     Writeln   end; end. Тестовое решение: Введите n (1-30): 6 Введите p (1-6): 2 Введите q (1-7): 3 *** Исходная матрица C ***  Ю М В Щ Я П Э *  Р Х К Л Х Т Ч *  Б Б Ф Я С О Ъ *  Е К Д Ж О Ю Ъ *  Ь З З Б А К Х *  У Т Ъ С Ь К Щ *  * * * * * * * * *** Вектор А ***  H A H D U G T *** Вектор B ***  r y c e s u u *** Матрица C после вставки строки ***  Ю М В Щ Я П Э *  Р Х К Л Х Т Ч *  H A H D U G T *  Б Б Ф Я С О Ъ *  Е К Д Ж О Ю Ъ *  Ь З З Б А К Х *  У Т Ъ С Ь К Щ * *** Результирующая матрица C ***  Ю М В r Щ Я П Э  Р Х К y Л Х Т Ч  H A H c D U G T  Б Б Ф e Я С О Ъ  Е К Д s Ж О Ю Ъ  Ь З З u Б А К Х  У Т Ъ u С Ь К Щ
Не нашли ответ?
Ответить на вопрос
Похожие вопросы