Arsip: tanya matriks to array

 
user image
more 10 years ago

diandewi

teman teman saya mau ubah matrik jadi array 1 kolom pke code dibawah, tapi masi ada error kayak gini: [DCC Error] UserForm.pas(283): E2029 '(' expected but '[' found [DCC Error] UserForm.pas(284): E2016 Array type required [DCC Fatal Error] Project1.dpr(9): F2063 Could not compile used unit 'UserForm.pas' kira-kira yang salah dimana ya. saya mau ubah ubah picture hitam putih yang ada di image3 implementation Uses math ; var B : array of real; {$R *.dfm} var i, j, baris, kolom : integer; c : integer; kolom1 : array of real; begin memo2.Clear; B:= Image3.Canvas.Pixels [x,y]; baris := length(B); kolom := length(B[0]); arridx := 0; for i:= 0 to baris - 1 do begin for j := 0 to kolom - 1 do begin memo2.Lines.Add(floattostr(kolom1[c])); inc(c); end; end; memo2.Lines.SaveToFile('Picture:MatriksToArray.txt'); end;
user image
more 10 years ago

mas_kofa

var b : array salah yg bener b : array(....) yg b := image..... juga salah.... pelajari dulu ttg array di delphi...
user image
more 10 years ago

theodorusap

Bisa diperjelas maksudnya ? Trus pake Delphi versi apa? 1. saya mau ubah ubah picture hitam putih yang ada di image3 ubah bagaimana maksudnya ? dalam source anda tidak ada rutin merubah gambar yang berhubungan dengan gambar hanya membaca pixel [x,y] yang juga masih kabur apa variabel x dan y itu. 2. Penggunaan Memo2 dalam source untuk apa ? 3.kalau sekedar menyimpan struktur pixel pada image3 ke file text, looping saja per baris dan per kolom image, ambil pixelnya kemudian simpan ke file text. Tidak perlu menggunakan array 5. Kenapa menggunakan tipe data real sementara pixel tipenya Integer Positif (cardinal)? 4. var B : array of real; <-- array 2 Dimensi, max baris=2, max col=2 5. B:= Image3.Canvas.Pixels [x,y] x,y variabel yang mana ? (tidak ada deklarasinya) 6. arridx := 0; arridx variabel yang mana? (tidak ada deklarasinya) 7. memo2.Lines.Add(floattostr(kolom1[c])); - c nya tidak punya nilai awal - kolom1 : dynamic array yang belum ada nilainya (masih kosong), panjangnya masih 0.
user image
more 10 years ago

diandewi

gini, saya maunya ngubah matrik jadi array kolom. saya udah dapet codenya kyk gini, tp ini ngubah jadi baris. gimana sourcecodenya supaya dia mau jadi kolom? dan gmn caranya saya ngubah matriks yang ada di memo satu, jadi saya ngambil matriks yang sudah ada di memo 1. tolong bantu source codenya.. implementation Uses math ; var c : array of real=((1,2),(2,3)) ; {$R .dfm} procedure TUser.Button3Click(Sender: TObject); var i, j, baris, kolom : integer; indeks : integer; s : string; baris1 : array of real; begin setlength(baris1, length(c) length(c[0])); memo2.Clear; baris := length(c); kolom := length(c[0]); indeks := 0; for i:= 0 to baris - 1 do begin for j := 0 to kolom - 1 do begin baris1[indeks] := c[i][j]; s := s+' '+ floattostr(baris1[indeks]); inc(indeks); memo2.Lines.Text := s; end; end; memo2.Lines.SaveToFile('picture:MAtriksToBaris.txt'); end;
user image
more 10 years ago

theodorusap

Maap neh, ane masih kurang paham maksudnya array kolom sama array baris. kalo seandainya matriknya seperti ini : 1 2 1 2 1 3 3 2 2 seandainya seluruh isi matrik mau dijadikan array 1 dimensi maka isinya jadi : (A) = 1 2 1 2 1 3 3 2 2 Array (A) ini bisa direpresentasikan sebagai baris saja, atau kolom saja. tergantung kebutuhan. Kalau mau dijadikan baris, ya seperti (A), kalau mau dijadikan kolom, seperti ini (B): 1 2 1 2 1 3 3 4 Intinya kalo mau dijadikan array 1 dimensi, menurut ane, code kamu dah benar. Kalo maksudnya array kolom itu dalam file "picture:MAtriksToBaris.txt" kelihatan seperti pada (B) di atas, maka bagian ini : s := s+' '+ floattostr(baris1[indeks]); inc(indeks); memo2.Lines.Text := s; diubah menjadi : //s := s+' '+ floattostr(baris1[indeks]); {dihilangkan/tidak dipakai} memo2.Lines.add(floattostr(baris1[indeks])); inc(indeks); //memo2.Lines.Text := s; {dihilangkan/tidak dipakai}
user image
more 10 years ago

diandewi

iya gan..gitu maksd saya...dan codenya udah mau.. nah misalnya di form ada memo1 yang sudah berisi matriks, nah saya ingin memproses matriks itu dijadikan array, kalo yang sebelumnya kan arraynya sudah ditentuin. ngerti maksd saya gan? kira2 gimana codenya?
user image
more 10 years ago

theodorusap

Kalo sekedar pindahin matrik di Memo 1 menjadi matrik baris di memo 2 codenya cokup 1 baris aja. Misalkan Memo 1 : 1 2 3 2 dan hasilnya di Memo 2: 1 2 3 4 Codenya cukup : memo2.Text:=stringreplace(memo1.Text,' ',slinebreak,[rfReplaceAll]); Berapapun besarnya dimensi matrik di memo 1 code ini tetap jalan.
user image
more 10 years ago

theodorusap

Kalau mau bermain-main dengan matrik dan array, mungkin ini bisa jadi tambahan permainan :D Siapkan 1 buah Form, Isi dengan 3 Buah Memo (memo1, memo2, memo3) dan dan 2 Tombol (Button1 dan Button 2) - Memo1 untuk menampilkan matrik sumber - Memo2 untuk menampilkan matrik output berorientasi baris - Memo3 untuk menampilkan matrik output berorientasi baris - Button1 untuk ubah isi Memo1 ke bentuk baris atau kolom tanpa penggunaan Matrik (menggunakan rutin manipulasi string) - Button2 untuk mengolah matrik, memo hanya sebagai display - Button1 dan Button 2 Fungsinya sama, bedanya Button 1 murni manipulasi string, button2 dengan matrik2D an array - Button1 click hanya berfungsi kalau Memo1 diinput manual - Property WordWrap di semua memo diset = false berikut snippetsnya :
implementation
{$R *.dfm}
Type
  TMatrik2D = Array of Array of real;
  TArray    = Array of real;
//Tambahan Fungsi untuk membuat Matrik2D Random dengan Jumlah
//baris dan Jumlah kolom diinput.
//catatan : Tidak dibuat error checking terhadap parameter
function createRandomMatrik(JmlBaris,JmlCol:Integer):TMatrik2D;
var
  I,J:Integer;
begin
  randomize;
  setLength(result,JmlBaris);    //set Jumlah baris
  for I:=low(result) to high(result) do
  begin
    setLength(result[i],JmlCol); //set Jumlah Kolom per masing-masing baris
    For J:=low(result[i]) to high(result[i]) do
      result[I,J]:=Random(10);   //isi matrik dengan nilai random
  end;
end;
//Fungsi untuk mengkonversi isi Matrik 2D ke Array 1 Dimensi
Function MatrikToOneColumn(Matrik:TMatrik2D):TArray;
var
  I,J:Integer;
begin
  setLength(result,0);  //Panjang array di set 0 pada awal rutin
  For I:=low(Matrik) to high(Matrik) do
    For J:=low(Matrik[i]) to high(Matrik[i]) do
    begin
      setLength(result,Length(result)+1); //Panjang array ditambah satu setiap membaca cell matrik
      result[high(result)]:=Matrik[I,J];  //pindakan cell matrik ke urutan terakhir array
    end;
end;
//Rutin untuk menampilkan matrik di TStrings
//Parameter separator adalah pemisah kolom
Procedure DisplayMatrik(Matrik:TMatrik2D; L:Tstrings; Separator:String=' ');
var
  I,J:Integer;
  S:String;
begin
  L.Clear;
  For I:=low(Matrik) to high(Matrik) do begin
    S:='';
    For J:=low(Matrik[i]) to high(Matrik[i]) do
    begin
      if S<>'' then S:=S+Separator;
      S:=S+FloatToStr(Matrik[I,J]);
    end;
    L.Add(s);
  end;
end;
//Rutin untuk menampilkan array 1 Dimensi pada TStrings
//Parameter separator adalah pemisah antara index array
Procedure DisplayArray(Arr:TArray; L:Tstrings; Separator:String=slineBreak);
var
  I:Integer;
begin
  L.Clear;
  For I:=low(arr) to high(arr) do begin
    if (I=low(arr)) then
      L.Text:=Floattostr(Arr[i])
    else
      L.Text:=L.Text+Separator+Floattostr(Arr[i]);
  end;
end;
//Manipulasi Isi String di Memo 1 dan ditampilkan di
//Memo 2 dengan orientasi baris
//dan memo3 dengan orientasi kolom
procedure TForm1.Button1Click(Sender: TObject);
begin
  //Matrik baris
  memo2.Text:=stringreplace(memo1.Text,' ',slinebreak,[rfReplaceAll]);
  //Matrik Kolom
  memo3.Text:=stringreplace(memo1.Text,sLineBreak,' ',[rfReplaceAll]);
end;
//Manipulasi Matrik dan Array
//Matrik ditampilkan di Memo 1
//Array ditampilkan di Memo 2 dengan orientasi baris
//Array ditampilkan di memo3 dengan orientasi kolom
procedure TForm1.Button2Click(Sender: TObject);
var
  InputMatrik:TMatrik2D;
  OutputMatrik:TArray;
begin
  InputMatrik:=createRandomMatrik(4,4);
  DisplayMatrik(InputMatrik,Memo1.Lines);
  OutputMatrik:=MatrikToOneColumn(InputMatrik);
  //Matrik baris
  DisplayArray(OutputMatrik,Memo2.Lines);
  //Matrik kolom
  DisplayArray(OutputMatrik,Memo3.Lines,' ');
end;
Semoga bermanfaat. Tq.
user image
more 10 years ago

diandewi

makasi bnyak masukannya gan...coding saya sudah mau jalan
user image
more 10 years ago

theodorusap

Your welcome. Keep Coding...
more ...
  • Pages:
  • 1
Share to
Local Business Directory, Search Engine Submission & SEO Tools FreeWebSubmission.com SonicRun.com