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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.05.2013, 17:54   #1
sanchoys
 
Регистрация: 27.05.2013
Сообщений: 7
По умолчанию из одномерного в двумерный массив в паскале

Помогите, мне нужна процедура для того чтобы из первых четырех строк массива сформировать четыре новых вектора(одномерные массивы) и для каждого из чисел, входящих в вектор, указать сколько раз оно входит в каждый вектор. Работа через модуль GRAPH.

Последний раз редактировалось sanchoys; 27.05.2013 в 17:57.
sanchoys вне форума Ответить с цитированием
Старый 27.05.2013, 17:58   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Работа через модуль GRAPH.
Этот модуль такие операции не выполняет.
Цитата:
сформировать четыре новых вектора
Какой паскаль?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.05.2013, 18:00   #3
sanchoys
 
Регистрация: 27.05.2013
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Этот модуль такие операции не выполняет.

Какой паскаль?
я имел ввиду, что работа в графическом режиме.
Турбо паскаль 7.0

помогите пожалуйста, очень надо

Последний раз редактировалось Stilet; 27.05.2013 в 18:09.
sanchoys вне форума Ответить с цитированием
Старый 27.05.2013, 18:10   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Турбо паскаль 7.0
Плёхо...
Ну хотя бы покажи как у тебя эта матрица описана.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.05.2013, 18:16   #5
sanchoys
 
Регистрация: 27.05.2013
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Плёхо...
Ну хотя бы покажи как у тебя эта матрица описана.
мне саму программу скинуть в pas расширении?
Или программный код?
Код:
Program Kurs6;
uses crt,graph;
type
Point=record{¤«п жҐ*ва* Єгаб®а*}
end;
Tmatrix = array [1..10,1..10] of real;
type
mass = array [1..10] of real;
var
Im_faila : string;
Xp : real;
Matr,b,a : Tmatrix;
x,y,x1,y1,m,n,k:integer;
nach, con,i,j,kol,i1,j1 : integer;
b1,b2,b3,b4 : mass;

procedure razmer;
var
 allright : boolean;
begin
clearDevice;
Bar(0,100,640,480);
 allright := False;
 repeat
  SetFillStyle(SolidFill,0);
  Bar(0,100,640,480);
  setcolor(red);
  OutTextXY(100, 100, 'ўўҐ¤ЁвҐ Є®«ЁзҐбвў® бва®Є 4=<M<=10 ');
  GotoXY(47, 7);
  readln (M);
  OutTextXY(100, 130, 'ўўҐ¤ЁвҐ Є®«ЁзҐбвў® бв®«Ўж®ў N<=10 ');
  GotoXY(49, 9);
  readln (N);
  {Їа®ўҐаЄ* ЇҐаҐЇ®«*Ґ*Ёп ¬*ббЁў*}
  allright := ((M >= 2) and (M <= 10) and (N <= 10));
  if not allright then begin
   OutTextXY(100, 150, 'ЋиЁЎ®з*л© а*§¬Ґа ¬*ббЁў*');
   OutTextXY(100, 160, '„«п Ї®ўв®а* **¦¬ЁвҐ Enter');
   readln;
  end;
 until allright;
end;

{ўлў®¤ ¬*ваЁжл}
procedure vuvod;
Var
 i, j, x, y,y1 : Integer;
 sx : string;
begin
 OutTextXY(10,40,'Џ®«гзҐ***п ¬*ваЁж*: ');
 x := 10;
 y := 60;
 For i:=1 To M Do begin
  For j:=1 To N Do begin
   str(matr[i,j]:2:2, sx);
   OutTextXY(x, y, sx);
   x := x + 50;
  end;
  x := 10;
  y := y + 20;
 end;
end;
{Џа®жҐ¤га* ¤«п *ўв®¬*вЁзҐбЄ®Ј® §*Ї®«*Ґ*Ёп ¬*ваЁжл}
procedure sluch;
Var
 i, j : Integer;
begin
razmer;
setcolor(red);
bar(0,0,640,480);
Randomize;
 For i:=1 To M Do
  For j:=1 To N Do
   Matr[i,j]:=Random(200)/10-10.00;
   vuvod;
   end;

{Џа®жҐ¤га* ¤«п агз*®Ј® ўў®¤* ¬*ваЁжл}
procedure ruch;
Var
 i, j, x, y, yInp : Integer;
 sxall, sx1, sx2 : string;
 newEl : Real;
begin
razmer;
SetFillStyle(SolidFill,0);
Bar(0,0,640,480);
 x := 25;
 y := 70;
 For i:=1 To M Do begin
  For j:=1 To N Do begin
   str(i, sx1);
   str(j, sx2);
   sxall := '['+sx1+','+sx2+']=';
   outtextxy(300,35,'‚ўҐ¤ЁвҐ н«Ґ¬Ґ*в ');
   outtextxy(420,35,sxall);
   gotoxy(60,3);
   readln(newEl);
   Bar(300,30,640,45);
   if (newEl < 100) and (newEl > -100) then matr[i,j] := newEl
   else if newEl >= 100 then matr[i,j] := 99.99
   else if newEl <= -100 then matr[i,j] := -99.99;
   str(matr[i,j]:2:2, sx1);
   OutTextXY(x, y, sx1);
   x := x + 60;
  end;
  x := 25;
  y := y + 20;
 end;
 Bar(200,30,640,45);
 setcolor(red);
 OutTextXY(25,40,'Џ®«гзҐ***п ¬*ваЁж*: ');
 end;
procedure fail;
var
 t:text;
 i,j : integer;
begin {звҐ*ЁҐ Ё§ д*©«*}
SetFillStyle(SolidFill,0);
Bar(0,0,640,480);
setcolor(red);
 OutTextXY(100,53, '‚ўҐ¤ЁвҐ €¬п д*©«*: ');
 GotoXY(33,4);
 Readln(Im_faila);
 Assign(t, Im_Faila+'.txt');
 Reset(t);
 ReadLn(t, M, N);
 for i := 1 to M do begin
  for j := 1 to N do
   Read(t, matr[i,j]);
     ReadLn(t);
     OutTextXY(100,90, '”*©« c®еа**Ё«бп');
     OutTextXY(100,110,'„«п Їа®¤®«¦Ґ*Ёп **¦¬ЁвҐ ESC');
    end;
 Close(t);
end;

{”г*ЄжЁп ¤«п **宦¤Ґ*Ёп Їа®Ё§ўҐ¤Ґ*Ёп ®ваЁж*⥫м*ле н«Ґ¬Ґ*в®ў ¬*ваЁжл}
Function MulPos(matr: tmatrix; M, N: integer): real;
var
 z: real;
 i, j: integer;
begin
 z := 0;
 for i := 1 to M do
  for j := 1 to N do
   if matr[i, j] < 0 then begin
    if z = 0 then
     z := matr[i, j]
    else
     z := z * matr[i, j];
   end;
 MulPos := z;
end;
{¤«п **宦¤Ґ*Ёп Їа®Ё§ўҐ¤Ґ*Ёп ®ваЁж*⥫м*ле н«Ґ¬Ґ*в®ў}
procedure proiz;
Var
 y : Integer;
 s : string;
begin
 XP := MulPos(matr, M, N);
 y:=50+(30*m);
 OutTextXY(10, y,'Џа®Ё§ўҐ¤Ґ*ЁҐ ®ваЁж*⥫м*ле н«Ґ¬Ґ*в®ў ¬*ваЁжл: ');
 str(XP:2:2, s);
 OutTextXY(400, y, s);
 end;

procedure poisk;
begin
end;
Procedure Rezul;
Var
 i, j, y : integer;
begin
Bar(0,100,640,480);
cleardevice;
setcolor(red);
vuvod;
proiz;
poisk;
y:=50+(50*m);
OuttextXY(10,y,'„«п ў®§ўа*в* ў ¬Ґ*о **¦¬ЁвҐ ESC.');
end;
procedure Soxran;
var
 t:text;
 i,j:integer;
begin
 Bar(0,15,640,480);
 OutTextXY(5,70, '‚ўҐ¤ЁвҐ €¬п д*©«*: ');
 GotoXY(20,5);
 Readln(im_faila);
 Assign(t, Im_faila+'.txt');
 Rewrite(t);
 WriteLn(t);
 WriteLn(t,'Proizvedenie otricatelnux elementov matricu:');
 WriteLn(t,XP:7:2,' ');
 Writeln(t,'Poluchennay matrica:');
 for i:= 1 to m do
  begin
   for j:= 1 to n do
   write(t,matr[i,j]:7:2,'  ');
  writeln(t);
 end;
  writeln(t);
 writeln(t,'Vectora: ');
 for i:= 1 to 4 do begin
  for j:= 1 to n do
   write(t,B[i,j]:7:2,'  ');
  writeln(t);
 end;
 writeln(t);
 close(t);
 OutTextXY(5,90, '‚*и д*Ё« г¤*з*® б®еа**Ґ* ў C:\Љгаб®ў*п\tp7.scp.1.3.1\prg');
end;

тут надо мне написать процедуру поиск, для преобразования массива

Последний раз редактировалось Stilet; 27.05.2013 в 21:01.
sanchoys вне форума Ответить с цитированием
Старый 27.05.2013, 21:05   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Так. Ясно.
Цитата:
сформировать четыре новых вектора
Код:
procedure Vec(var a:Tmatrix; m:mass; Row:integer);
var i:integer;
begin
 for i:=1 to Length(m) do m[i]:=a[Row,m];
end;
Использование:
Код:
Vec(Matr,b1,1);
Vec(Matr,b2,2);
Vec(Matr,b3,3);
Vec(Matr,b4,4);
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.05.2013, 00:19   #7
sanchoys
 
Регистрация: 27.05.2013
Сообщений: 7
По умолчанию

спасибо, но в строке for i:=1 to length (m) пишет ошибку: предполагается строковое выражение
sanchoys вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В паскале !!! Двумерный массив )) Alexxxxxx Помощь студентам 4 24.10.2011 13:39
двумерный массив в Паскале. mary92 Помощь студентам 0 06.12.2010 21:03
Двумерный массив в паскале swedalena Помощь студентам 18 20.05.2010 00:39
Двумерный массив на паскале Metal593 Помощь студентам 2 16.04.2010 23:35
Двумерный массив в паскале makc101 Помощь студентам 3 30.11.2009 08:49