Вопрос задан 08.05.2019 в 14:57. Предмет Информатика. Спрашивает Согомонян Георгий.

Даны действительная матрица размера 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. помогите исправить ошибки или сделайте пожалуйста уже готовую программу(паскаль).Заранее спасибо
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Тажетдинов Динислам.
// 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 С Ь К Щ
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Based on the provided code, it seems like you are trying to create a new matrix by inserting a new row after the row with index `p` and a new column after the column with index `q`. The elements of the new row are given by the array `a`, and the elements of the new column are given by the array `b`.

However, there are some errors in the code that need to be fixed. Here is the corrected code:

```pascal 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);

// Generate random values for matrix c for i := 1 to n do for j := 1 to n+1 do c[i, j] := random(28) + 1;

// Generate random values for array a for i := 1 to n+1 do a[i] := random(28) + 1;

// Generate random values for array b for j := 1 to n+1 do b[j] := random(28) + 1;

// Insert the new row after the row with index p 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[j];

// Insert the new column after the column with index q 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];

// Print the resulting matrix for i := 1 to n do begin for j := 1 to n+2 do write(c[i, j]:2); writeln; end; end. ```

This code should generate a new matrix of size `(n+1)x(n+2)` by inserting a new row and a new column as specified. The elements of the new row are given by the array `a`, and the elements of the new column are given by the array `b`.

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос