• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о проекте и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Матрица. Сформировать вектор по условию

  • Автор темы Автор темы furt123
  • Дата начала Дата начала

furt123

Новые
Регистрация
6 Дек 2013
Сообщения
25
Реакции
0
Баллы
0
Матрица. Сформировать вектор по условию

Задана матрица A (m*n). сформировать вектор В, элементами которого являются эл-ты матр А, удовлетворяющие условию с≤|aij|≤d.
вот сделал формирование самой матрицы. а как отсюда вектор этот вытащить не догоняю..:tehnari_ru_837:

const
n1 = 20; m1 = 20;

type
index1 = 1..n1;
index2 = 1..m1;
matrix = array[index1, index2]of real;

var
n, i: index1;
m, j: index2;
A: matrix;

begin
write('введите кол-во строк n= ');readln(m);
write('введите кол-во столбцов m= ');readln(n);
writeln('_____________________________________');
writeln('исходная матрица А');
for i:=1 to m do
begin
for j:=1 to n do
begin
a[i,j]:=-30+random(50);
write(a[i,j]:4);
end;
writeln;
end;
writeln('_____________________________________');
end.
 
в среде Pascal ABC net. соответственно.
 
а как отсюда вектор этот вытащить не догоняю..
Да легко. Вот только понять бы, в чем великий замысел перепутывания параметров n и m (запрашивается одно, вводится другое и т.п.)? Чтобы коварный враг ничего не понял? Ну я, уж извините, эту дурость убрал. И еще. Ввод данных и формат вывода у Вас сделаны для матрицы с элементами типа Integer, а в то же время матрица объявляется, как Real. Ни к чему это. Исправил.
Код:
const
 n1 = 20;
 m1 = 20;

type
 index1 = 1..n1;
 index2 = 1..m1;
 index3 = 1..n1*m1;
 matrix = array[index1, index2] of Integer;
 vector = array[index3] of Integer;

var
 n, i: index1;
 m, j: index2;
 k : index3;
 A: matrix;
 B: vector;
 c, d : real;
 N_B : byte;

begin
 write('n= ');
 readln(n);
 write('m= ');
 readln(m);
 writeln('_____________________________________');
 writeln('Matrix:');
 for i:=1 to n do
  begin
   for j:=1 to m do
    begin
     A[i,j]:=-30+random(50);
     write(A[i,j]:4);
    end;
   writeln;
  end;
 writeln('_____________________________________');
 write('c= ');
 readln(c);
 write('d= ');
 readln(d);
 writeln('_____________________________________');
 N_B:=0;
 for i:=1 to n do
  for j:=1 to m do
   if (A[i,j]>=c) and (A[i,j]<=d) then
    begin
     Inc(N_B);
     B[N_B]:=A[i,j];
    end;
 writeln('Array:');
 for k:=1 to N_B do write(B[k]:4);
 writeln
end.
 
спасибо большое!) за замечания в том числе) учту на будущее.
всё работает только A[i,j] "по модулю" добавлю)
 
Назад
Сверху