// 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 С Ь К Щ
var m, n, i, j: integer; s: real; a: array[,] of real;
begin write('Введите S: '); read(s); write('Введите M, N: '); read(m, n); setlength(a, m + 1, n + 1); writeln('Введите элементы матрицы: '); for i := 1 to m do for j := 1 to n do read(a[i, j]); for i := 1 to m do begin for j := 1 to n do if a[i, j] <> s then begin writeln(a[i, j]); break; end; if a[i, j] = s then writeln('-'); end; end.
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 С Ь К Щ
m, n, i, j: integer;
s: real;
a: array[,] of real;
begin
write('Введите S: ');
read(s);
write('Введите M, N: ');
read(m, n);
setlength(a, m + 1, n + 1);
writeln('Введите элементы матрицы: ');
for i := 1 to m do
for j := 1 to n do
read(a[i, j]);
for i := 1 to m do
begin
for j := 1 to n do
if a[i, j] <> s then
begin
writeln(a[i, j]);
break;
end;
if a[i, j] = s then
writeln('-');
end;
end.
Пример:
Введите S: 7
Введите M, N: 3 4
Введите элементы матрицы:
7 4 3 7
3 5 1 4
7 7 7 7
4
3
-