Anonymní profil Gooo – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Gooo – Programujte.comAnonymní profil Gooo – Programujte.com

 

Příspěvky odeslané z IP adresy 212.47.18.–

Pascal › Pole v deklaraci procedury
5. 5. 2015   #201955

#16 JoDiK
Hmmm, jdu se trochu zastydět do rohu :o).

Ale takhle nějak jsem to chápal, že metody volám tečkovou notací a jen musím metodou GET a SET ošetřit proměnné, jež se předávají do metod ve třídě.

Tedy od uživatele jsem získal množství rozměrů a uložil jsem ji do proměnné X. nyní bych měl podle toho co jsem pochopil, udělat proceduru GETX:

procedure GetX;
   begin
      GetX := X;
   end;

nebo snad ještě by se ty názvy neměly shodovat?

Pascal › Pole v deklaraci procedury
5. 5. 2015   #201952

#13 JoDiK
Máme to napsáno v podpoře takto: 

K jednotlivým atributům objektu se můžeme v programu i mimo objekt dostat použitím tečkové notace, ale nebudeme tuto možnost používat. 

Pascal › Pole v deklaraci procedury
5. 5. 2015   #201949

#11 JoDiK
Zapouzdření pomocí GET a SET máme dáno v podpoře tohoto předmětu. Je výslovně napsáno, že lze řešit tečkovou notací, ale tu používat nesmíme.

S kvalitou zadání mám také problém. Mám zde ještě třetí příklad k řešení a jeho zadání jsem nepochopil vůbec. Zadání je: Pomocí objektů a dědičnosti rozliště typy klientů (id_konta, jmeno, suma) v bance na spořící a splácející úvěr. K nim definujte metody PocVklad (uložení id, jmeno, počáteční suma), Splatka (zaplacení jedné splátky), Sporeni (připsání jedné částky na spoření), getsuma, Vypis (jednoho klienta). Použijte v jednoduchém programu.

Pochopil jsem jen to, že mám udělat třídu Konto, k tomu udělám další dvě s dědičností na Spořící úvěr a Splácející úvěr a zbytek jsem nevěděl. Tak jsem psal dotaz jaká je představa a že naopak bude objektový typ Klient a k němu potomci Spořící a Úvěrový.  Takže chápu že to programátorské myšlení prostě nemám a nechápu jak detaily zjevné, tak třeba ty zadání.

No, živit se tím nebudu, tak potřebuji nějak dodělat ty programy a pak nějak písemku...

To řešení s přičítáním vektoru je dobrý nápad. Děkuji


Pascal › Nerozumím rozdílu mezi stand…
28. 4. 2015   #201792

Zdravím

Děkuji za podporu. První ze tří příkladů se mi povedlo udělat a hodiny tak nějak fungují ve verzi OOP. Možná to někomu v budoucnu pomůže, tak níže přikládám zdrojový kód.

Jako doplňující dotaz se chci zeptat na nějakou online diskuzi. Kdysi ještě za CZFRee jsme komunikovali na kanálu IRC. Vyřešilo se vše online a mnohem rychleji a to včetně maličkostí, jež není vhodné řešit na fóru. Nevíte zda existuje nějaká taková možnost online diskuze i dnes u tématu programování. Mám nyní třeba další dva příklady a u jednoho vůbec nechápu zadání. Je možné, že programátor má na tohle jiný pohled a jen by se koukl a věděl by, takže by mě trochu nakopl.

program Hodiny;
uses crt, graph, UHodiny;
var gd,gm: smallint;
    stredx, stredy, velikostx, Z, Y, R, P, C: integer;
    Hodiny: THodiny;
    Rucicka: TRucicka;
begin
   detectgraph (Gd,Gm);               // Detekce grafického režimu
   initgraph(Gd,Gm, '');              // Přepnutí do grafického režimu
   setcolor(0);                       // Barva pro kreslení čar nastavena

   Hodiny.Init (500,500,200);
   Hodiny.Ramecek ();                 // Vykreslení Rámečku
   Hodiny.Cifernik ();                // Vykreslení ciferníku
   Hodiny.Stred ();                   // Vykreslení středu hodin
   Hodiny.Dvanact ();                 // Vykreslení číslic
   Hodiny.Tri ();
   Hodiny.Sest ();
   Hodiny.Devet ();


   Rucicka.Init (500,500,200);        // Souřadnice linky
   Rucicka.Tikej;
closegraph;                           // Ukončení grafického režimu
end.
Unit UHodiny;
interface
uses crt, graph;
type
   THodiny = object                                                     // Vytvoření objektu
   stredx, stredy, velikostx: integer;                                  // Lokální proměnné pro potřeby objektu
      constructor Init (stred_x, stred_y, velikost_x: integer);         // Metoda pro naplnění proměnných hodnotami
      procedure Ramecek;                                                // Metoda pro vykreslení rámečku
      procedure Cifernik;                                               // ...
      procedure Stred;
      procedure Dvanact;
      procedure Tri;
      procedure Sest;
      procedure Devet;
   end;

   TRucicka = object (THodiny)                                          // Vytvoření objektu
      constructor Init (stred_X, stred_Y, velikost_X: integer);         // Metoda pro naplnění proměnných hodnotami
      procedure Rucicka_1 (stred_X, stred_Y, R, P: integer);            // Rucicka zobrazena
      procedure Rucicka_2 (stred_X, stred_Y, R, P: integer);            // Rucicka v barve ciferniku
      procedure Tikej;                                                  // Metoda pro posun ručičky
   end;

implementation
   constructor THodiny.Init (stred_x, stred_y, velikost_x: integer);
      begin stredx := stred_x; stredy := stred_y; velikostx := velikost_x; end;

   constructor TRucicka.Init (stred_X, stred_Y, velikost_X: integer);
      begin stredx := stred_x; stredy := stred_y; velikostx := velikost_x; end;

   procedure TRucicka.Rucicka_1 (stred_X, stred_Y, R, P: integer);
      begin SetLineStyle(0, 0, 3); Setcolor(4); Line(stred_x, stred_y, R, P); delay (100); end;

   procedure TRucicka.Rucicka_2 (stred_x, stred_y, R, P: integer);
      begin SetLineStyle(0, 0, 3); Setcolor(15); Line(stred_x, stred_y, R, P); end;

   procedure TRucicka.Tikej;
   var Z, Y, R, P, C: integer;
      begin C := 0;
         repeat
            Z := round(150 * sin(C * 3.14 / 180));                      // Vydělím a zaokrouhlím hodnotu první souřadnice, kde bude končit úsečka. Musí být kratší, aby nepřemazával číslice!
            Y := round(150 * cos(C * 3.14 / 180));                      // Vydělím a zaokrouhlím hodnotu druhé souřadnice, kde bude končit úsečka. Musí být kratší, aby nepřemazával číslice!
            R := stredx + Z;                                            // Souřadnice linky
            P := stredy - Y;                                            // Souřadnice linky
            Rucicka_1(stredx, stredy, R, P);
            Rucicka_2(stredx, stredy, R, P);
            C := C + 6;                                                 // Rozdělení na šedesát intervalů (sekund)
         until C > 360;                                                 // Po uplynutí šedesáti sekund (otočení ručičky), se program ukončí
      end;

   procedure THodiny.Ramecek;
   begin SetFillStyle (1,8); FillEllipse (stredx, stredy, velikostx + 25,velikostx + 25); end;

   procedure THodiny.Cifernik;
   begin SetFillStyle (1,15); FillEllipse (stredx, stredy, velikostx, velikostx); end;

   procedure THodiny.Stred;
   begin SetFillStyle (1,0); FillEllipse (stredx, stredy, velikostx -190, velikostx -190); end;

   procedure THodiny.Dvanact;
   begin SetTextStyle(0,0,3); OutTextXY(stredx -20, stredy -180,'12'); end;

   procedure THodiny.Tri;
   begin SetTextStyle(0,0,3); OutTextXY(stredx +160, stredy -10,'3'); end;

   procedure THodiny.Sest;
   begin SetTextStyle(0,0,3); OutTextXY(stredx -10, stredy +160,'6'); end;

   procedure THodiny.Devet;
   begin SetTextStyle(0,0,3); OutTextXY(stredx -180,stredy -10,'9'); end;
end.
Gooo
Pascal › Nerozumím rozdílu mezi stand…
20. 4. 2015   #201587

Dekuji za reakci. Ja moc zadani psat nechtel, protoze to potrebuji vysvetlit nejak obecne. Ten priklad jsem pouzil proto, abych nevypadal ze se kouknu na zadani, reknu si ze nevim a bouchnu to na forum, kde mi to nekdo vyresi, ale ze jsem na tom delal.

Priklady, ktere mame v podpore, jsou ale charakteru ze se OOP primo nabizi ( vyuziva se dedicnost a tak), ale v tomto pripade si ty informace nejak neumim promitnout do toho.

Zasláno z mobilního telefonu.

Pascal › objectove programování
14. 4. 2015   #201376

OOP na OSU? :o)

Pascal › Rozdíl v deklaraci type a var
24. 3. 2015   #200677

Zdravím

Omlouvám se za nepřesnosti ve vyjadřování, jsem v podstatě začátečník.

Jaký je rozdíl mezi tím, zda nadeklaruji například pole pomoci type, nebo pomoci var? Naučil jsem se:

var nazev:array [1..10] of integer;

a nyní jsem dostal nové podklady a tam je pole nadeklarováno v type. Je mezi tímto nějaký rozdíl?

Gooo
MySQL › Návrh databáze
18. 12. 2014   #197373

#2 mjseven
Děkuji za tipy. Nebudu tvrdit, že jsem pochopil vše :o), ale některé věci jsem si srovnal. Mimo jiné: Zruším tu tabulku dodavatel/odběratel a na to konto mě napadlo zauvažovat a došlo mi, že jedna tabulka tam je také zbytečná (budu spíš pak řešit vhodnými dotazy na databázi).

Jinak, nezmínil jsem to v dotazu, ale jedná se jen o školní projekt, kde se učíme databáze, takže jsme si měli vymyslet nějaké téma každý a na tom to děláme (ať nevypadám, že o tom prd vím a hned jsem se pustil do tohohle :o)

Gooo
MySQL › Návrh databáze
17. 12. 2014   #197352

Zdravím

Trochu bojuji s návrhem databáze, který dělám jako korespondenční úkol. Vybral jsem si téma, kdy bych rád vedl pomocí databáze účetnictví.

Mám tedy tabulky:

  • Zakazka (CisloZakazky, Specifikace, MistoRealizace, Investor, Dodavatel, Material, DatumZadani, DatumTerminu, NabidkovaCena, FakturovanaCena, Poznamka)
  • Investor (ID, Nazev, ICO, DIC, PlatceDPH, Zastupce, ZastupceTel, ZastupceMail, Poznamka)
  • Dodavatel (ID, Nazev, ICO, DIC, PlatceDPH, Zastupce, ZastupceTel, ZastupceMail, Poznamka)
  • Material (ID, Nazev, Specifikace, MJ, Poznamka)
  • Prehled (ID, DatumVystaveni, DatumSplatnosti, DatumSplaceni, Material, Specifikace, Dodavatel, Odberatel, Zakazka, CenaBezDPH, CenaVcetneDPH, VyseDPH, Poznamka)

A popravdě, v tuto chvíli mám už třetí verzi ER Diagramu a netuším, jak to logicky spojit.Jako hlavní zakázku jsem si nejdříve zvolil tabulku Zakazka, do které se spojují všechny ostatní tabulky a dvě z nich mají kardinalitu M:N, takže jsem musel vytvořit další dvě propojovací tabulky. Pak jsem zjistil, že v dalším kroku mám roblém s cizím klíčem, tak jsem ještě lehce upravoval, ale ten základ tam je.

Dá se takhle na fóru poradit, jak bude ER diagram vypadat? Protože uvažuji, jestli ta hlavní tabulka nemá být spíše tabulka Prehled, ale jak říkám, už se do toho zamotávám a nevím.

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032020 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý