Seminární práce - prosím pomožte: – Pascal – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Seminární práce - prosím pomožte: – Pascal – Fórum – Programujte.comSeminární práce - prosím pomožte: – Pascal – Fórum – Programujte.com

 

bunjee
~ Anonymní uživatel
4 příspěvky
19. 3. 2011   #1
-
0
-

Dostal jsem za úkol v rámci seminární práce vytvořit program v Pascalu a nevím si s tím moc rady- použití příkazů..
Úkol:
Program pro účetní,která si vede statistiku zaměstnanců. Program má umět vypočítat průměrný plat zaměstnance v daném období, najít měsíc,kdy si zaměstnanec vydělal maximum a minimum, spočítat průměrný plat zaměstnanců za určitý počet měsíců/celé období.

probíhat by to mělo asi takhle:
Uživatel si vybere, kolik zaměstnanců chce zadat, a na jak dlouhé období(v měsících).
Zadá data z klávesnice a celá struktura se přehledně vypíše.
Poté bude uživatel dotázán, co chce spočítat (průměr,maximum,minimum..) a program to vypíše..

Děkuji moc,pokud se najde někdo schopen pomoci. :)

Nahlásit jako SPAM
IP: 90.179.60.–
JoDiK
~ Anonymní uživatel
987 příspěvků
19. 3. 2011   #2
-
0
-

S použitím kterých příkazů si nevíš rady?

Nahlásit jako SPAM
IP: 88.103.233.–
bunjee
~ Anonymní uživatel
4 příspěvky
20. 3. 2011   #3
-
0
-

Nevím si rady právě s výběrem příkazů. Zkoušel jsem asi nejjednodušší možnost přes Record a opak. cykly,ale skončil jsem v ..pasti

Nahlásit jako SPAM
IP: 90.179.60.–
Grungy0
Super člen
20. 3. 2011   #4
-
0
-

S tým recordom si na to šiel dobre, proste si musíš navrhnúť nejakú štruktúru ktorá bude zastupovať konkrétneho zamestnanca takže asi bude obsahovať meno, priezvisko, plat ... Potom si podľa toho koľko tých zamestnancov chceš vytvoríš pole zamestnancov a budeš pracovať potom iba s tým to poľom.

Nahlásit jako SPAM
IP: 188.123.100.–
Prvý náznak hlúposti, je pocit geniality.
JoDiK
~ Anonymní uživatel
987 příspěvků
20. 3. 2011   #5
-
0
-

Tak tady ukaž tu past, hodime ti lano...

Nahlásit jako SPAM
IP: 88.100.43.–
bunjee
~ Anonymní uživatel
4 příspěvky
20. 3. 2011   #6
-
0
-

program UCETNI_PROGRAM;

Type mzdytab = Record
jmeno: string[15];
mesic: integer;
mzda: integer;
end;
Type Mzdytab2= array [1..50] of Mzdytab;
var Pracmax, obdobi, i,j :integer;
prehled: mzdytab;
prehled2:mzdytab2;
begin

writeln('Zadejte delku obdobi v mesicich:');
Readln(obdobi);
Writeln('Zadejte pocet pracovniku');
Readln(Pracmax);
for i:= 1 to Pracmax do
begin
writeln('Zadejte jmeno pracovnika:');
readln(prehled.jmeno);
for j:=1 to obdobi do
begin
writeln ('Zadejte mesic pro pracovnika ' ,prehled.jmeno);
readln(prehled.mesic);
writeln ('Zadejte mzdu pro pracovnika ',prehled.jmeno, ' pro mesic ' ,prehled.mesic);
readln(prehled.mzda);
end;
end;

writeln('Celkovy prehled pracovniku a mezd pracovniku dle mesicu');
{for i:=1 to Pracmax do}
begin
writeln('Poradove cislo Pracovnik Mesic Mzda ');
writeln( i, prehled.jmeno, prehled.mesic, prehled.mzda);
end;


readln;
end.

Nahlásit jako SPAM
IP: 90.179.60.–
Grungy0
Super člen
20. 3. 2011   #7
-
0
-

Ty to síce ukladáš do premennej prehled ale stále znova a znova, takže v konečnom dôsledku v tej premennej na konci budeš mať posledného zadaného pracovníka. Moja rada ukladaj ho do poľa a potom vypisuj to pole.

Nahlásit jako SPAM
IP: 188.123.100.–
Prvý náznak hlúposti, je pocit geniality.
bunjee
~ Anonymní uživatel
4 příspěvky
20. 3. 2011   #8
-
0
-

Tak jsem se to pokusil předělat na to pole, nicméně teď nevim, jak zajistit jakýsi přehledný výpis všeho a všech- přehled..


program UCETNI_PROGRAM;

Type mzdytab = Record
jmeno: string[15];
mesic: integer;
mzda: integer;
end;
Type Mzdytab2= array [1..12] of Mzdytab;
Type Mzdytab3= array [1..20] of Mzdytab2;

var Pracmax, obdobi, i,j :integer;
{prehledpom: Mzdytab2}
prehled: Mzdytab3;
begin

writeln('Zadejte delku obdobi v mesicich:');
Readln(obdobi);
Writeln('Zadejte pocet pracovniku');
Readln(Pracmax);
for i:= 1 to Pracmax do
begin
writeln('Zadejte jmeno pracovnika:');
readln(prehled[i,1].jmeno);
for j:=1 to obdobi do
begin
writeln ('Zadejte mesic pro pracovnika ' ,prehled[i,j].jmeno);
readln(prehled[i,j].mesic);
writeln ('Zadejte mzdu pro pracovnika ',prehled[i,j].jmeno, ' pro mesic ' ,prehled[i,j].mesic);
readln(prehled[i,j].mzda);
end;
end;

writeln('Celkovy prehled pracovniku a mezd pracovniku dle mesicu');
{for i:=1 to Pracmax do}
begin
writeln('Poradove cislo Pracovnik Mesic Mzda ');
writeln( i, prehled[1,1].jmeno, prehled[1,1].mesic, prehled[1,1].mzda);
end;


readln;
end.

Nahlásit jako SPAM
IP: 90.179.60.–
JoDiK
~ Anonymní uživatel
987 příspěvků
20. 3. 2011   #9
-
0
-

To bunjee :
Nejdřív si prosímtě udělej jasno co chceš ukládat a do jaké struktury. Když tak si to nějak namaluj a pak teprve piš program.
Protože momentálně máš nadeklarováno pole dvaceti polí s dvanácti položkami ve kterých je jméno, měsíc a mzda. Jestli dobře počítám, je to celkem 240 jmen, 240 měsíců a 240 mezd.
Nemělo to být spíš 20 (či původně 50) jmen a u každého z nich 12 měsíčních mezd?
Takže tvoje stuktura vypadá nějak takto:



mzdytab2[1](jmeno,mesic,mzda)
mzdytab2[2](jmeno,mesic,mzda)
...
mzdytab2[12](jmeno,mesic,mzda)

a to celé ještě 20x

Doporučení: názvy si vol tak, aby se v tom dobře orientovalo (takhle to je samá mzdytab a kdo má poznat, co to má být), typy já pojmenovávám třeba Tosoba, Tmzdy apod... Proměnné pak bez T - takže osoba, mzdy a pod...
Takže podle zadání si nadeklaruj základní typ pro jednu osobu (Tosoba), která bude mít položku jméno a položku mzdy.
Položka mzdy (Tmzdy) by mohla být pole dvanásti hodnot. Pro který měsíc je konkrétní mzda bude dáno indexem pro mzdy a nemusíš to zvlášť ukládat. No a pro všechny osoby to bude typ Tosoby, který bude obsahovat 20 (nebo 50) osob typu Tosoba.
Výsledek by vypadal nějak takto:


osoby[1](jmeno,mzdy[1],mzdy[2]...mzdy[12])
osoby[2](jmeno,mzdy[1],mzdy[2]...mzdy[12])
...
osoby[20](jmeno,mzdy[1],mzdy[2]...mzdy[12])

Nahlásit jako SPAM
IP: 88.103.233.–
JoDiK
~ Anonymní uživatel
987 příspěvků
20. 3. 2011   #10
-
0
-

No a přehledný výpis všeho?
takže pokud načteš "pocet" osob a u každé z nich "obdobi" měsíčních mezd, tak třeba takto:



write('Jméno':15,' '); for m:=1 to obdobi do write(i:5); writeln;
for i=1 to pocet do
begin
write(osoba[i].jmeno:15,' ');
for m:=1 to obdobi do write(osoba[i].mzdy[m]:5);
writeln;
end;


PS: pro ladění programu ti doporučuju nastudovat typové konstanty, nebudeš pak muset při každým spouštění furt dokola zadávat nějaká jména a mzdy, ale budeš je mít už nachystané.
V takovém případě nedeklaruj pole pro 20 osob, ale třeba jen pro pět, protože v typové konstantě musí být uvedeny všechny položky pole. Až to odladíš, můžeš přidat...

Nahlásit jako SPAM
IP: 88.103.233.–
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, 19 hostů

Podobná vlákna

Seminární práce — založil marwe.k

PROSÍM, POMOZTE — založil Jakub Chábek

Pomozte mi prosim... — založil Robo

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ý