Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.05.2009, 22:44   #1
hoangvu2005
 
Регистрация: 14.02.2009
Сообщений: 8
По умолчанию Задача с ПП

Задача такая:
Для массивов А(3,3) и В(4,4) создать одномерный массив Н, в который входят элементы массива В, но не входят те элементы В, которые содержатся в А.

Я не понимаю как сделать чтобы элементы B в массиве А не входили в мас. Н
Помогите пожалуйста!!!
hoangvu2005 вне форума Ответить с цитированием
Старый 02.05.2009, 22:48   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Я не понимаю как сделать чтобы элементы B в массиве А не входили в мас. Н
Для каждого элемента массива B проходите по массиву A и сравнивайте. Если текущий элемент B равен хотя бы одному элементу массива A, то переходите к следующему элементу массива B. Если же не нашлось таких элементов, то копируете его в H.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 03.05.2009, 12:34   #3
hoangvu2005
 
Регистрация: 14.02.2009
Сообщений: 8
По умолчанию

Спасибо, я попробую сделать!
hoangvu2005 вне форума Ответить с цитированием
Старый 08.05.2009, 23:21   #4
hoangvu2005
 
Регистрация: 14.02.2009
Сообщений: 8
По умолчанию

Задача такая:
Ввести двумерные массивы X1(N1,N1) ,X2(N2,N2) ,X3(N3,N3) . В каждом массиве найти среднее арифметическое положительных элементов. Преобразовать каждый из массивов по правилу: деление элементов 1-го столбца на сумму положительных элементов 1-ой строки, элементы, 2-го столбца на сумму положительных элементов 2-ой строки и т.д. (При решении реализовать процедуры ввода и вывода массивов: Vvod2m(A,N,Name), Vivod2m(A,N,Name); а также процедуру Modification(A,N) – деление столбцов на суммы строк; и функцию SrAPol(A,N):real – поиск среднего арифметического положительных элементов (равно нулю, если положительных нет))

проблема в том, как разделить элементы первого столбца на первый элемент массива B[ko], второго столбца на второй элемент массива B[ko] и тд. У меня ни как не получается, помогите исправить!!

Код:
Program omg;
uses crt;
type mtx=array [1..100,1..100] of real;
var A:mtx; Su,Sar,ka:real; N,i,j:integer;


procedure vvod(var A:mtx;var Na:integer; d:char);
begin
write ('введи количество строк Na='); readln(N);
for i:=1 to Na do
for j:=1 to Na do
begin
write (d,'[',i,',',j,']=');
readln(A[i,j]);
end;
end;


function Srapol(A:mtx;Na:integer):real;
var Sa,S:real; k:integer;
begin
S:=0;
k:=0;
for i:=1 to Na do
for j:=1 to Na do
If A[i,j]>0 then
begin
S:=S+A[i,j];
k:=k+1;

end;
if k>0 then
Sa:=S/k;
Srapol:=Sa
end;


procedure Modifikation(var A:mtx;var Na:integer);
var S:real; p,ko:integer;B:array [1..100] of real;
begin
   ko:=0;
   p:=1;
   repeat
   for i:=p to p do
   for j:=1 to Na do
begin
   if A[i,j]>0 then
   begin
   S:=S+A[i,j];
   ko:=ko+1;
   B[ko]:=S;
   end
   else ko:=ko+1;
   B[ko]:=1;
end;
p:=p+1;
until p>Na;
   p:=1;
   repeat
   for j:=p to p do
   for i:=1 to Na do
   begin

   for i:=p to p do

   A[i,j]:=A[i,j]/B[ko];

   end;

   until p>Na;



end;


procedure vivod(var A:mtx;var Na:integer;d:char);
begin
for i:=1 to Na do
begin
for j:=1 to Na do
write (A[i,j]:5);
writeln;
end;
end;





begin
clrscr;
vvod(A,N,'A');
Sar:=Srapol (A,N);
Write ('средн арифмет пол элем SAR=',Sar);
readln;
Modifikation (A,N);
vivod (A,N,'A');
end.
hoangvu2005 вне форума Ответить с цитированием
Старый 09.05.2009, 01:38   #5
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Код:
procedure Modifikation(var A:mtx; Na:integer);
var S:real;
i,j:integer;
B:array [1..100] of real;
begin
{ заполняем массив сумм положительных элементов сток }
for i:=1 to Na do
 begin
 B[i] := 0;
 for j:=1 to Na do
  if A[i,j]>0 then B[i] := B[i] + A[i,j];
 end;

{ преобразуем }
for j:=1 to Na do
 begin
 for i:=1 to Na do
  A[i,j] := A[i,j]/B[j];
 end;

end;
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 09.05.2009, 17:42   #6
ANiMEcooL
 
Регистрация: 08.05.2009
Сообщений: 4
По умолчанию

вобщем это моя задачка, я Ву попросил её выложить, меня регистрация непускала... так вот... я изменил процедуру модификэйшн как тут написано, ввожу тестовый пример массив 2х2 все элементы равны 2 и выдаёт чёто нето... среднее арифметическое вроде прально считает =2, а массив преобразованный выдаёт
5.0Е-0.01 5.0Е-0.01
5.0Е-0.01 5.0Е-0.01
это чё вообще?
ANiMEcooL вне форума Ответить с цитированием
Старый 09.05.2009, 17:47   #7
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
это чё вообще?
Это числа.
Измените в процедуре вывода:
Код:
write (A[i,j]:5:2);
Первая цифра (5) - ширина поля вывода, вторая (2) - количество знаков после запятой.
И будет "более понятно".
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 09.05.2009, 19:57   #8
ANiMEcooL
 
Регистрация: 08.05.2009
Сообщений: 4
По умолчанию

спс биг! прям выручил реально! а то бы накрылся автомат по информатике...)))
ANiMEcooL вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц