Помощь - Поиск - Пользователи - Календарь
Полная версия: Задачи на векторы
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
vitox
Помогите, пожалуйста, решить задачи на векторы:

1) Вводится длина вектора и значения его элементов. Составить и вывести новый вектор со значениями элементов исходного вектора, не равных заданному значению.

2) Ввести размерность матрицы и значения ее элементов. Построить вектор В, где В(i) - среднее арифметическое отрицательных элементов в i-ой строке.

Заранее спасибо!
volvo
Цитата
1) Вводится длина вектора и значения его элементов. Составить и вывести новый вектор со значениями элементов исходного вектора, не равных заданному значению.
Уточни задание, ты ничего не сказал про "задание значения" (по первому предложению, вводится только длина вектора и он сам, больше ничего...)... Приведи пример ввода и вывода...

Вторая задача уже решалась - пользуйся поиском...
vitox
Цитата(volvo @ 27.12.2005 15:25) *

Уточни задание, ты ничего не сказал про "задание значения"

как я понял, значение вводится пользователем
klem4
Это хорошо .. что конкретно у тебя на получается какая часть задания ? Что уже готово ?
vitox
klem4
в том то и дело, что ничего не занаю, как делать, ибо полсеместра проболел, вышел и тут мне лабораторку дают: "до завтра реши" а я векторов вообще в глаза никогда не видел...
klem4
Проболел .. ну так преподу так бы и сказал ... :dry:

держи, подарок тебе к новому году ;)

1)
uses crt;
var
   a,b : array[1..10] of integer;
   i,j,n : byte;
   k : integer;
begin

   clrscr;

   write('n='); readln(n);
   write('k='); readln(k);

   j := 0;

   for i := 1 to n do begin
      write('a[',i,']=');
      readln(a[i]);
      if a[i] <> k then begin
         inc(j);
         b[j] := a[i];
      end;
   end;

   writeln;

   for i := 1 to j do writeln(b[i]);

   readln
end.



2)
uses crt;
const
   n = 3;
type
   Tarray = array[1..n] of single;
   TMatrix = array[1..n] of TArray;

function Sr(mx : TMatrix; i : byte) : single;
var
   s : single;
   j ,count: byte;
begin
   s := 0;
   count := 0;
   for j := 1 to n do
    if mx[i,j] < 0 then begin
        s := s + mx[i,j];
        inc(count);
       end;
   if count = 0 then Sr := 0
    else Sr := s/count;
end;

procedure Input(var mx : TMatrix);
var
  i,j : byte;
begin
   for i := 1 to n do
    for j := 1 to n do begin
       write('mx[',i,',',j,']=');
       readln(mx[i,j]);
    end;
    writeln;
end;

procedure Print(mx : TMatrix);
var
   i,j : byte;
begin
   for i := 1 to n do begin
      writeln;
      for j := 1 to n do write(mx[i,j]:3:2,'  ');
   end;
   writeln;
end;

procedure GetArray(mx : TMatrix; var arr : TArray);
var
   i: byte;
begin
   writeln;
   for i := 1 to n do begin
      arr[i] := Sr(mx,i);
      writeln('a[',i,']=',arr[i]:2:2);
   end;
end;

var
   a : TArray;
   m : TMatrix;
begin
   clrscr;
   Input(m);
   Print(m);
   GetArray(m,a);
   readln
end.
vitox
спосибо тебе ОГРОМНОЕ!!! give_rose.gif smile.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.