Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Задачи на векторы

Автор: vitox 27.12.2005 19:18

Помогите, пожалуйста, решить задачи на векторы:

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

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

Заранее спасибо!

Автор: volvo 27.12.2005 19:25

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

Вторая задача уже решалась - пользуйся поиском...

Автор: vitox 27.12.2005 20:03

Цитата(volvo @ 27.12.2005 15:25) *

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

как я понял, значение вводится пользователем

Автор: klem4 27.12.2005 20:57

Это хорошо .. что конкретно у тебя на получается какая часть задания ? Что уже готово ?

Автор: vitox 27.12.2005 21:27

klem4
в том то и дело, что ничего не занаю, как делать, ибо полсеместра проболел, вышел и тут мне лабораторку дают: "до завтра реши" а я векторов вообще в глаза никогда не видел...

Автор: klem4 27.12.2005 21:49

Проболел .. ну так преподу так бы и сказал ... :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 27.12.2005 23:09

спосибо тебе ОГРОМНОЕ!!! give_rose.gif smile.gif