Vytvoření kartotéky – Pascal – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Vytvoření kartotéky – Pascal – Fórum – Programujte.comVytvoření kartotéky – Pascal – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené.
Gooo0
Newbie
8. 11. 2014   #1
-
0
-

Zdravím

Tvořím domácí úkol, kde mám vytvořit jakousi kartotéku, kde budou uchovány data datového typu String a Integer a protože se úkol váže k výuce Recordu, používám právě ten. Zbytek se ale točím dokola a netuším jak na to.

Zadání zní: Vytvořte kartotéku o maximálním počtu 30 záznamů. Evidujte Jméno, Příjmení, Věk, Počet dětí a Plat.

Udělal jsem si proceduru na zadávání údajů a proceduru na vypisování. Dále jsem si udělal matici o šesti sloupcích a 30 řádcích. A teď se pokouším nějak zapsat z procedury zadání dat do jednotlivých polí matice.

Níže zasílám doposud udělaný kód, ať o nevypadá, že mám něco řešit a hned se ptám na pomoc. Bohužel, tohle je již asi třetí verze, jak se to pokouším dělat, pořád jen přepisuji a pravděpodobně je tam těch blbostí více. Berte to prosím s nadhledem, ale nikdy jsem k tomu neinklinoval a ve čtyřiceti jsem dostal na stůl skripta, 3 hodiny se vysvětlovalo jak se v pascalu programuje a zbytek je na mě, takže tohle třeba student SS dává levou zadní :o).

{Vytvořte  kartotéku  zaměstnanců  o  maximálním  počtu  30  záznamů.  O  každém 
zaměstnanci evidujte:
Příjmení
Jméno
Věk
Počet dětí
Měsíční plat}

Program Kartoteka_zamestnancu;
Uses Crt;

Type Zamestnanci = Record
     Jmeno, Prijmeni: String;
     Vek, Deti, Plat: Integer;
     End;

Var databaze : Array [1..6,1..30] Of Zamestnanci;
    pocitadlo, pocitadlo2 : Integer;

{== Procedura na zadani dat ===================================================}
   Procedure Data_Zadej;
   Begin
      Write ('Zadejte Jmeno zamestnance: ');
      Readln (databaze [1,pocitadlo] := Zamestnanci.Jmeno);
      Write ('Zadejte Prijmeni zamestnance: ');
      Readln (databaze [2,pocitadlo] := Zamestnanci.Prijmeni);
      Write ('Zadejte Vek zamestnance: ');
      Readln (databaze [3,pocitadlo] := Zamestnanci.Vek);
      Write ('Zadejte Pocet deti zamestnance: ');
      Readln (databaze [4,pocitadlo] := Zamestnanci.Deti);
      Write ('Zadejte Plat zamestnance: ');
      Readln (databaze [5,pocitadlo] := Zamestnanci.Plat);
   End;
{== Konec procedury ===========================================================}

{== Procedura na vypsani dat ==================================================}
{
   Procedure Data_Vypis;
   Begin
      WriteLn (Zamestnanci[pocitadlo2].Jmeno:20,' ',Zamestnanci[pocitadlo2].Prijmeni:20,' ',Zamestnanci[pocitadlo2].Vek:2,' ',Zamestnanci[pocitadlo2].Deti:1,' ',Zamestnanci[pocitadlo2].Plat:6);
   End;
}
{== Konec procedury ===========================================================}

   Begin
   pocitadlo := 1;
   Write ('Zadavate noveho zamestnance. Zadavani ukoncite stisknutim znaku *');
   Repeat
   If pocitadlo < 30 Then
   Begin
      Data_Zadej;
   End;
   Pocitadlo := Pocitadlo + 1;
   Until <> '*';

   For Pocitadlo2 := 1 To 30 Do
   Begin
      WriteLn ('V kartotece jsou tyto zaznamy: ');
      Data_vypis;
  End;
End.
Nahlásit jako SPAM
IP: 178.72.244.–
KIIV
~ Moderátor
+43
God of flame
8. 11. 2014   #2
-
0
-

Uz jen to nacti je nejaky divny... jako by ses kazdou nactenou polozku pokousel ulozit do uplne jinyho zaznamu...

krom toho to prirazeni uvnitr je nesmysl... spis by mohlo fungovat
Readln (databaze[1,pocitadlo].Jmeno);
 

a asi nechapu ty tvoje sloupce vubec... k cemu ti je mit 6x30 zamestnancu?

Nahlásit jako SPAM
IP: 93.91.152.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Gooo0
Newbie
8. 11. 2014   #3
-
0
-

#2 KIIV
Sloupce: Tak ja pochopil matici tak, ze mam 6 udaju (atributu), ktere chci evidovat. Jmeno, Prijmeni, Vek, Pocet deti a Mesicni plat (puvodne mel byt jeste sesty atribut, kde by se zapisovalo poradove cislo). Pak bych do kazdeho radku zadal udaj do spravneho policka. Blbe?

Prirazeni: Syntaxe, jak jsem ji pochopil, je u zapsani do matice:

 Nazev_matice [1,1] := udaj_ktery_chci_vlozit;

Takže do matice s názvem "Nazev_matice" se do pole v prvnim radku a prvnim sloupci zapise "udaj_ktery_chci_vlozit".

Ja to predtim zkousel podle nejakeho navodu na internetu a vypadalo to:

Readln (Zamestnanci[1,1].Jmeno);

Ale to mi taky neslo. Proste trouba, no :o)

Nahlásit jako SPAM
IP: 178.72.244.–
KIIV
~ Moderátor
+43
God of flame
8. 11. 2014   #4
-
0
-

#3 Gooo
Kouzlo recordu je v tom, ze to mas v jedny polozce naraz!

Syntaxe je blbe hlavne proto, ze to prirazeni delas UVNITR read/readln... tomu mas hodit jednu polozku, do ktery to ma nacist, a pak teprve prirazovat... nicmene neni problem predhodit tomu rovnou tu polozku z pole, tak jak sem psal..

Readln (Zamestnanci[1,1].Jmeno); mozna nejelo proto, ze se to pole nejmenuje Zamestnanci ale databaze

Nahlásit jako SPAM
IP: 93.91.152.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Gooo0
Newbie
8. 11. 2014   #5
-
0
-

#4 KIIV
Pravda :o)

Teď to sice nedělá zase něco jiného, ale jsem někde dál, takže jdu vymýšlet systém Ifů. Neumím nějak vymyslet, aby bylo možné zadávání přerušovat, ale jdu zkoušet. Děkuji za pomoc.

Nahlásit jako SPAM
IP: 178.72.244.–
Gooo0
Newbie
16. 11. 2014   #6
-
0
-

#4 KIIV
Ještě jednou, sice opožděně, děkuji. Situaci jsem vyřešil místo matice polem a oním recordem. Změna názvu pole také pomohla.

Děkuji

Nahlásit jako SPAM
IP: 178.72.244.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 6 hostů

Podobná vlákna

Vytvoření odkazu — založil minarth

Vytvoření knihovny — založil Snake

Vytvoření složky — založil Kalgys

Vytvoření knihovny — založil normy101

Vytvoření fora — založil Lister Ister

Moderátoři diskuze

 

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