Taulukko jossa suorakaiteita

aloitteleva.koodari

Minkälainen tietorakenne olisi paras. Voidaan käyttää vaihtoehtoisesti yhtä xy-koordinaattia, pituutta ja levyttä, tai sitten kahta xy-koordinaattia. Siis neljä lukuarvoa per suorakaiden.

alkio[x][y][leveys][korkeus] tai alkio[x1][y1][x2][y2].

Mutta miten noista sitten tehdään taulukko, jossa on em. alkioita?

22

173

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Lazz00

      Tyyppi TRect on tehty tuota varten!

      Valitse Lazaruksessa sovelluksen teko. Lisää komponenttimuokkaimessa
      lomakkeelle tapahtumat onCreate (aliohjelma FormCreate) , onPaint (aliohjelma FormPaint) ja täydennä koodi esim. seuraavanlaiseksi

      --------------8<----

      unit Unit1;

      {$mode objfpc}{$H }

      interface

      uses
      Classes, SysUtils, Forms, Controls, Graphics, Dialogs;

      type

      { TForm1 }

      TForm1 = class(TForm)
      procedure FormCreate(Sender: TObject);
      procedure FormPaint(Sender: TObject);
      private
      tau: array of TRect;
      public

      end;

      var
      Form1: TForm1;

      implementation

      {$R *.lfm}




      { TForm1 }

      procedure TForm1.FormCreate(Sender: TObject);
      var
      i,alkioita :integer;
      begin
      alkioita := 10;
      setLength(tau, alkioita);
      for i := 0 to alkioita-1 do
      begin
      tau[i]:= Rect(10*i, 10*i, 60 10*i, 80 10*i );
      end;
      end;

      procedure TForm1.FormPaint(Sender: TObject);
      var
      i,alkioita :integer;
      begin
      alkioita := length(tau);
      for i := 0 to alkioita-1 do
      begin
      if i > 5
      then Canvas.Pen.Color := clBlue
      else Canvas.Pen.Width := i 1;
      Canvas.Rectangle(tau[i]);
      end;
      end;


      end.

      --------------8<----

      Lisätietoa löytyy:
      http://wiki.freepascal.org/Lazarus_Tutorial/fi
      http://wiki.freepascal.org/Form_Tutorial/fi
      http://wiki.freepascal.org/Dynamic_array/fi
      http://wiki.freepascal.org/Peg_Solitaire_tutorial/fi

      • Vmpkieli

        Tunge Paska-Lasarettisi sinne minne aurinko ei paista!


    • simppelisti

      Yksinkertaisin on tehdä neljä yksiuloitteista taulukkoa:

      x[]
      y[]
      w[]
      h[]

      Indeksi osoittaa jokaisessa taulukossa samaan suorakaiteeseen.

    • ihmettelijäkans

      Käyttämällä TRect-tyyppiä (koska se on tehty siihen).

      Miksi muuten ylläpito poisti tuon ensimmäisen vastausviestin (Se oli asiallinen ja siinä oli oikea vastauskin)?

      • DatabaseAdmin

        Se poistettiin lukuisten sääntörikkomusten takia.

        a) TRect ei ole yleinen vastaus, vaan on kieliriippuvainen ja tällä palstalla tulee vastata niin, ettei suosita mitään yksittäistä kieltä, vaan esitetään vastaus mielellään pseudokoodilla. Tai jos käytetään kieltä, niin ei TODELLAKAAN mitään vihonviimeistä Pascalia, vaan C:tä, joka on universaali ja yleisesti hyväksytty.

        b) Pitkien koodirimpsujen pastaaminen on ehdottomasti kielletty. Tämä foorumi ei tue koodin asettelua ja koodista tippuu erikoismerkit pois, minkä johdosta niistä tulee vaarallisia, jos joku innostuu niitä kokeilemaan omalla koneellaan. Tai jos on ihan pakko esitellä koodia, niin linkki GitHubiin ja aina disclaimeri perään, että koodia kokeillaan omalla vastuullaan. Ja jokikinen rivi kommentoitava!

        c) Poistojen perustelujen uteleminen on ehdottomasti kiellettyä. Jos viesti poistetaan, niin siitä ei saa tulla tänne itkemään jälkeenpäin. Siitä on otettava opiksi ja pyrittävä vastaamaan seuraavan kerran asiallisemmin.


      • etovaa-oksennusta
        DatabaseAdmin kirjoitti:

        Se poistettiin lukuisten sääntörikkomusten takia.

        a) TRect ei ole yleinen vastaus, vaan on kieliriippuvainen ja tällä palstalla tulee vastata niin, ettei suosita mitään yksittäistä kieltä, vaan esitetään vastaus mielellään pseudokoodilla. Tai jos käytetään kieltä, niin ei TODELLAKAAN mitään vihonviimeistä Pascalia, vaan C:tä, joka on universaali ja yleisesti hyväksytty.

        b) Pitkien koodirimpsujen pastaaminen on ehdottomasti kielletty. Tämä foorumi ei tue koodin asettelua ja koodista tippuu erikoismerkit pois, minkä johdosta niistä tulee vaarallisia, jos joku innostuu niitä kokeilemaan omalla koneellaan. Tai jos on ihan pakko esitellä koodia, niin linkki GitHubiin ja aina disclaimeri perään, että koodia kokeillaan omalla vastuullaan. Ja jokikinen rivi kommentoitava!

        c) Poistojen perustelujen uteleminen on ehdottomasti kiellettyä. Jos viesti poistetaan, niin siitä ei saa tulla tänne itkemään jälkeenpäin. Siitä on otettava opiksi ja pyrittävä vastaamaan seuraavan kerran asiallisemmin.

        Tämä "DatabaseAdmin" nimimerkillä esiintyvän kirjoitus on taas M-Karin tyylistä perseen nuolentaa, josta selvästi voi havaita ettei kaverilla ole mitään käsitystä ohjelmakoodista, tosin Kollimaattori on yhtä lailla pihalla vastaavista asioista, mutta ei ole yhtä aktiivi perseen-nuolija, joten oletan tämän vittuilun olevan M-Karin käsialaa.


      • etovaa-on-voi-hyssykät
        etovaa-oksennusta kirjoitti:

        Tämä "DatabaseAdmin" nimimerkillä esiintyvän kirjoitus on taas M-Karin tyylistä perseen nuolentaa, josta selvästi voi havaita ettei kaverilla ole mitään käsitystä ohjelmakoodista, tosin Kollimaattori on yhtä lailla pihalla vastaavista asioista, mutta ei ole yhtä aktiivi perseen-nuolija, joten oletan tämän vittuilun olevan M-Karin käsialaa.

        Oli muuten myös okaro kirjoittelemassa samaan aikaan, tälläkin kaverilla on taipumusta vastaavaan oksenteluun.


      • banan
        etovaa-on-voi-hyssykät kirjoitti:

        Oli muuten myös okaro kirjoittelemassa samaan aikaan, tälläkin kaverilla on taipumusta vastaavaan oksenteluun.

        Samaa mieltä. Ylläpidon pitäisi bannata nimimerkit kollimaatori, mkar ja okaro. Niiden takaa kirjoitellaan liian minäminä-tyylistä tekstiä. Keskustelusta ei tule silloin mitään.


      • ihmettelijäkans
        DatabaseAdmin kirjoitti:

        Se poistettiin lukuisten sääntörikkomusten takia.

        a) TRect ei ole yleinen vastaus, vaan on kieliriippuvainen ja tällä palstalla tulee vastata niin, ettei suosita mitään yksittäistä kieltä, vaan esitetään vastaus mielellään pseudokoodilla. Tai jos käytetään kieltä, niin ei TODELLAKAAN mitään vihonviimeistä Pascalia, vaan C:tä, joka on universaali ja yleisesti hyväksytty.

        b) Pitkien koodirimpsujen pastaaminen on ehdottomasti kielletty. Tämä foorumi ei tue koodin asettelua ja koodista tippuu erikoismerkit pois, minkä johdosta niistä tulee vaarallisia, jos joku innostuu niitä kokeilemaan omalla koneellaan. Tai jos on ihan pakko esitellä koodia, niin linkki GitHubiin ja aina disclaimeri perään, että koodia kokeillaan omalla vastuullaan. Ja jokikinen rivi kommentoitava!

        c) Poistojen perustelujen uteleminen on ehdottomasti kiellettyä. Jos viesti poistetaan, niin siitä ei saa tulla tänne itkemään jälkeenpäin. Siitä on otettava opiksi ja pyrittävä vastaamaan seuraavan kerran asiallisemmin.

        Mihin tämä väitteesi perustuu "Tai jos käytetään kieltä, niin ei TODELLAKAAN mitään vihonviimeistä Pascalia, "?


      • ohjelmointia
        ihmettelijäkans kirjoitti:

        Mihin tämä väitteesi perustuu "Tai jos käytetään kieltä, niin ei TODELLAKAAN mitään vihonviimeistä Pascalia, "?

        Pascal on hyvä kieli (missä jotkut muutkin)!


    • ihmettelen-minäkin

      Vaikuttaa siltä että puhe on jonkin kielen tietotyypistä, ja ilmeisesti saman kielen taulukoista, mutta mistä ohjelmointikielestä tässä on kyse ?

      Vai saako ihan itse valita, minkä kielen syntaksiin vastaus perustuu ?

    • peruskauraa

      Tee siitä oma struktuuri https://en.wikipedia.org/wiki/Struct_(C_programming_language)

      Kelaa tota linkkiä kohtaan "Struct initialization", jossa on esitelty pisteen rakenne. Siihen sitten vaan lisäät pari muuta muuttujaa, jonka jälkeen on neliskanttisen kulmion tiedot sisältävä struktuuri. Kyhäämäsi palikkaa käytät sitten taulukkosi alkiona.

      Älä sitten stackkia (pinomuistia) tuhlaa taulukoihin, vaan varaa muisti dynaamisesti.

      • aloittelevan-pullistelua

        "peruskauraa"
        Äläpäs pullistele, jokaisesta lausestaa paistaa läpi ettet tiedä mistä puhut.


      • pullisteluako
        aloittelevan-pullistelua kirjoitti:

        "peruskauraa"
        Äläpäs pullistele, jokaisesta lausestaa paistaa läpi ettet tiedä mistä puhut.

        Mikä tuossa oli sinusta väärin? Tuohan oli yksi harvoista asiallisista vastauksista tässä ketjussa. Onko se pullistelua, että osaa vastata asiaakin eikä pelkkää turhaa länkytystä?


      • se-siitä-pullistelusta
        pullisteluako kirjoitti:

        Mikä tuossa oli sinusta väärin? Tuohan oli yksi harvoista asiallisista vastauksista tässä ketjussa. Onko se pullistelua, että osaa vastata asiaakin eikä pelkkää turhaa länkytystä?

        On helpompi kertoa mikä oli oikein, koska vain linkki vei asiaan liittyvään. Kaikki loppu pullistelu, paljasti linkin antajan asiantutemuksen puutetta.


      • vinkking

    • listaus

      Riippuu tietysti hieman ohjelmointikielestäkin. Esimerkiksi Pythonilla voi naputella näin:

      >>> lista=[]
      >>> lista.append([100,200,10,20])
      >>> lista.append([400,300,200,100])
      >>> lista
      [[100, 200, 10, 20], [400, 300, 200, 100]]
      >>> lista[0]
      [100, 200, 10, 20]
      >>> lista[0][0]
      100
      >>>

      Pythonilla kannattaa huomioida muuttujien nimissä, että "list" on varattu sana.

    • ammattiohjelmoija

      Helppoa kuin heinänteko

      Dim X As Integer = 0
      Dim Y As Integer = 0
      Dim X2 As Integer = 100
      Dim Y2 As Integer = 100

      tekee (0,0),(100,100) suorakaiteen. Testattu VB 6:lla ja TOIMII!

      • Se-vaan-on-näin

        Ei varmasti toimi, etkä varmasti ole testannut.


      • kuole
        Se-vaan-on-näin kirjoitti:

        Ei varmasti toimi, etkä varmasti ole testannut.

        Kuole.


      • Varmaa-tietoa-pukkaa
        kuole kirjoitti:

        Kuole.

        Kyllä kuoletus on tämän päivän trendi termistöä. Minäkin olen hyvin niukkasanainen välillä ainakin.


    • räpärällää

      Alan oppilaitoksissa oli muinoin tietorakenteet -tyyppisiä oppiaineita. Oli eteen- ja taakse linkitettyjä ketjuja, puumaisia tietorakenteita, hierarkkioita, relaatiotietokantoja, taulukoita...

      Periaatteessa taulukko voi olla kaksiulotteinen, helppo, selkeä kuin tekstitiedosto, jota voi lukea sarakkeittain tai riveittäin. Jossakin sarakkeessa voi olla pienempi taulukko.

      Matematiikan alalla, esim. ohjelmoitavaan laskimeen voi taulukkomainen tietorakenne onnistua käsitellä matriisina.

      Jos dataa käsitellään koneen muistissa, voi olla hyvä huomata ja muistaa, että periaatteessa data on yhtenä jonona muistissa. Sinne voidaan osoitella erilaisilla pointtereilla tai indekseillä. Jotka voivat olla taulukoituja nekin. Esim. varsinaisen datan järjestelemisen asemesta voidaan järjestellä indeksitaulukko, joka osoittaa varsinaiseen dataan.

    Ketjusta on poistettu 2 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Purra hyökkää nyt suomalaisen duunarin kimppuun teettämällä mamuilla palkatonta työtä

      Niinpä niin. Persut duunaripuolue, HAH. Joko alkaa kovapäisinkin persu älyämään, että persut ovat Suomen kansan vastain
      Maailman menoa
      298
      11808
    2. Mitä hyvää rikkaiden hyysääminen Suomelle tuonut?

      Minäpä vastaan: ei yhtikäs mitään, vaan pelkkää vahinkoa. Demareiden ansiosta Suomen valtio oli käytännössä vielä 1980-
      Maailman menoa
      141
      11013
    3. Tytti Tuppurainen häpäisi Suomen epäisänmaallisella lausunnollaan USA:n ulkoministerille Rubiolle.

      https://www.is.fi/politiikka/art-2000011816267.html Miksi Tytti Tuppurainen päästetään antamaan typeriä lausuntoja noin
      Maailman menoa
      240
      6323
    4. Purra ehdottaa vaan Tanskan mallia, joka on erittäin hyvä malli

      Purra ehdotti helmikuussa Suomeen Tanskan mallia, jossa maahanmuuttajilta vaaditaan työntekoa sosiaalitukien saamiseksi.
      Maailman menoa
      218
      5162
    5. Kokoomusnuoret: Sosiaalitukien työvelvoitteen tulisi koskea kaikkia

      Riikka Purra on esittänyt, että maahanmuuttajilta tulisi edellyttää palkatonta työtä sosiaalitukien vastineeksi. Kokoom
      Maailman menoa
      162
      3637
    6. Pystyisitkö olla

      Kanssani kaiken sotkun jälkeen? Ainakaan tunteet ei ole loppuneet
      Ikävä
      174
      3538
    7. L/OVER ikuisesti minun

      Aivan järkyttävä sarja. Ei voi olla katsomatta, mutta tuo omat muistot mieleen. Näyttelijät näyttelevät turhankin hyvin
      Ikävä
      50
      2463
    8. Mitä voisit miehenä tehdä?

      Suojellaksesi kaikkia naisia ja että heillä olisi juuri sinun käytöksen takia edes vähän turvallisempaa. Mitä miehenä
      Ikävä
      329
      1980
    9. Jyrki Linnankivi, Jyrki 69 - Goottirokkarista kirkonmieheksi Lappiin!

      Jyrki Linnankivi eli Jyrki 69 on The 69 Eyes -rockyhtyeen vokalisti. Lauluhommien lisäksi hän sanoittaa, säveltää ja sov
      Työ ja opiskelu
      11
      1807
    10. Onnea Maria ja Vilma Amazing Race -voitosta!

      Maria Guzenina ja Vilma Vähämaa voittivat Amazing Race Suomi -kisan. Voiton hetkellä Guzenina paljasti, miksi valitsi Vi
      Tv-sarjat
      17
      1695
    Aihe