» »

Na kratka naloga...

Na kratka naloga...

Mitja 34 ::

Na čist lahka naloga :

Napiši program,ki prebere spremenljivke datum_rojstva in današnji_datum tipa zapis,in izračuna koliko mesecev je razlike.


Tak to je ta naloga,zaj me pa zanima kdo izmed vas 'brihtnih' buč zna to naret.(z recordi)

Thomas ::

Jest recimo znam. :D
Man muss immer generalisieren - Carl Jacobi

Kekec ::

jst tudi >:D

jeti ::

ja to pa res ne bi bilo težko, no...0:)
Bolje vrabec v roki kot (p)tič v riti!
Včasih je bil http://come.to/jeti

ciki57 ::

mitja, a ti to resno?

kdor tega ne zna sploh nima kej počet v tem boardu...

darh ::

sploh ne vem kje je problem...


kaj če bi ti podal še kako oporno točko, npr:
- programski jezik
- vhodni in izhodni format datuma

pa tko naprej...

Excuses are useless! Results are priceless!

speed ::

najlazje bi bilo z unix timestamp, ne?
ali pa se motim :D

Lunik ::

simpl kot pasulj :D
čeprav, kok kolk dolgih mescov (30 dni, al 31)??

Mitja 34 ::

Dodatek :

Mesec : 30 dni.
Leta : 1800-2001
Program : Pascal al pa Delphi.


A program bi rad videl napisan(e-mail al pa kr na forumu),ne pa samo : 'Recimo da znam.' ;)
Se ne da vam nebi zaupal,sam vam ne zaupam. :D
A,ta program je res ta najlažje ka je možno.

mitja34 :)

iBojan ::

Ej mislim, da ti je kaj takega brezveze sploh v forum vpisovat, edino če ne veš programirat v pascalu pa upaš, da ti bo nekdo to naredil ;) Naloga je za začetnike tako, da mislim če bi vsaj malo poznal pascal bi ga napisal v desetih minutah ;)) Če pa ga že želiš imeti pojdi na kako stran z pascalovimi programčki pa jo najdeš ali pa na kakšen yahoo pa tam poišči. Tega je veliko tako, da boš siher našel ;)

lp, _GeS_

Če pa slučajno ne boš našel mi pošlji mail pa ti pošljem ;))

Tjulenj ::

ok jest ne znam :D vsaj v pascalua al pa delphiju ne. nisem nikol delu. dolgo nazaj je bil commodor in basic, pol en cas nic (dokler drzava preko stipendije ni dala dinarckov za PC) pol smo sli pa samo se na C... a morm zdej dol s foruma k ne znam rest naloge? :D

iBojan ::

tjulen pa ni ti treba dol z foruma saj je verjetno za te namene narejen ali ne ;))

lp, _GeS_

Mitja 34 ::

_GeS_ : Če pa slučajno ne boš našel mi pošlji mail pa ti pošljem ;))

iBojan ::

EMail mam kot (verjetno) vsak, ki ima opravka z internetom ;) Prg bom pa postal zjutraj tako, da bo vsem na voljo.

lp, _GeS_

iBojan ::

Program Datum;
Uses Crt, Dos;
Var dan, mesec, leto, x, z: Integer;
y, m, d, dow: Word;
Begin
ClrScr;
WriteLn('Program izraźuna razliko med dvema datumoma');
WriteLn; WriteLn('By _GeS_');
WriteLn;
Repeat
GotoXY(1, 5);
Write('Vpiçi dan : ');
Read(dan);
Until (dan > 0) And (dan < 32);
Repeat
GotoXY(5, 6);
Write('mesec : ');
Read(mesec);
Until (mesec > 0) And (mesec < 13);
Repeat
GotoXY(6, 7);
Write('leto : ');
Read(leto);
Until (leto > 1900) And (leto < 2100);
GetDate(y, m, d, dow);
GotoXY(1, 9);
Write('Danaçnji datum : ', d:0, '.', m:0, '.', y:0);
GotoXY(1,11);
x := (y - 1) - (leto + 1);
x := x * 12;
z := 12 - mesec;
x := x + z;
z := 12 - m;
x := x + z;
WriteLn('Razlika v mesecih je : ',x:0,' mesecev');
Repeat Until KeyPressed;
End.

Evo to ti je ta prg ;)) Program je napisan v Borland Pascal 7 in deluje ok, z malo popravki pa lahko še izračunaš dneve, .....

lp, _GeS_

iBojan ::

Pa še nekaj. Teh prgjev je po netu zelo veliko. Zelo veliko najdeš tu ! Downloadaš si SWAG in ga potem unzipaš in imaš zelo veliko procedure ter funkcij za pascal. Za začetnika je to zelo dobro, res da je že nekaj časa nespremenjen a se tudi pascal ni spremenil tako da je ;))
Res je tega veliko (vsaj za dial-up) a se splača malo potrpet, da si zadevo snet ;)

lp, _GeS_

jeti ::

Tu imaš pa zadevo napisano v Oberon-F, LOL:D

MODULE Datumi;

IMPORT In, Out;

TYPE Datum = RECORD
dan:INTEGER;
mesec:INTEGER;
leto:INTEGER
END;

VAR datum, datumRoj: Datum;
dnevi, meseci, leta, razlika:INTEGER;


PROCEDURE Pozeni*;
BEGIN
In.Open;
In.Int(datumRoj.dan);
In.Int(datumRoj.mesec);
In.Int(datumRoj.leto);
In.Int(datum.dan);
In.Int(datum.mesec);
In.Int(datum.leto);

leta:= datum.leto - datumRoj.leto;
meseci:= datum.mesec - datumRoj.mesec;
dnevi:= datum.dan - datumRoj.dan;

IF (dnevi<0) THEN
dnevi:= dnevi+30;
meseci:= meseci-1
END;
IF (meseci<0) THEN
meseci:=meseci+12;
leta:= leta-1
END;

razlika:= leta*12 + meseci;

Out.String("Razlika je ");
Out.Int(razlika,3);
Out.String(" mesecev.");
Out.Ln
END Pozeni;


END Datumi.




Zadevo poženeš z ukazom Datumi.Pozeni + navedba ustreznih parametrov.

Aja, zadeva pove le število celih mesecev, morebiten ostanek dni pa zanemari (29 dni recimo še ni en mesec, 30 pa bo že štelo kot en mesec).

LP!:)
Bolje vrabec v roki kot (p)tič v riti!
Včasih je bil http://come.to/jeti

Mitja 34 ::

Lepo,lepo sam _GeS_ nisi glih prebral...
morš namreč uporabit recorde...


Tu je pa naret(samo da izračuna v dneh):


Program starost;

Uses Crt,Dos;
Type Datum = record
dan: Word;
mes: Word;
let: Word;
end;
Var age,i : Integer;
DatumRojstva : Datum;
TrenutniDatum: Datum;
temp : Word;


Begin
ClrScr;
Write('Vpisi dan rojstva:: ');
ReadLn(DatumRojstva.dan);
Write('Vpisi mesec rojstva:: ');
ReadLn(DatumRojstva.mes);
Write('Vpisi leto rojstva:: ');
ReadLN(DatumRojstva.let);

ClrScr;

GetDate(TrenutniDatum.let,TrenutniDatum.mes,TrenutniDatum.dan,temp);


For i:=DatumRojstva.let to TrenutniDatum.let-1 Do
Begin
if i mod 4 = 0 Then age:=age+366
Else age:=age+365;
End;



For i:=1 to TrenutniDatum.mes -1 Do
Begin
Case i of
1: age:=age+31;
2: if TrenutniDatum.let mod 4 = 0 Then age:=age+28
Else age:=age+29;
3: age:=age+31;
4: age:=age+30;
5: age:=age+31;
6: age:=age+30;
7: age:=age+31;
8: age:=age+31;
9: age:=age+30;
10:age:=age+31;
11:age:=age+30;
End;
End;

Age:=Age+TrenutniDatum.dan;

For i:=1 to DatumRojstva.mes -1 Do
Begin
Case i of
1: age:=age-31;
2: if DatumRojstva.let mod 4 = 0 Then age:=age+28
Else age:=age+29;
3: age:=age-31;
4: age:=age-30;
5: age:=age-31;
6: age:=age-30;
7: age:=age-31;
8: age:=age-31;
9: age:=age-30;
10:age:=age-31;
11:age:=age-30;
End;
End;

Age:=Age-DatumRojstva.dan;

WriteLN('Star si natanko::',Age,' dni ... recimo');
ReadLn;

End.





mitja34 :)

iBojan ::

res sem malo površno prebral. Se opravičujem ;) Saj pa maš program pa ga malo preurediš pa ti izračuna mesece ali pa leta pa z malo truda ti lahko zračuna tudi sekunde ;))

lp, _GeS_


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[C] Seznam s poljem

Oddelek: Programiranje
232454 (1934) aceton
»

delphi5 & xp

Oddelek: Programiranje
8844 (758) iBojan
»

program za stetje prenosa podatkov

Oddelek: Programska oprema
61038 (939) iBojan
»

skrivanje programa

Oddelek: Programiranje
121545 (1196) poweroff
»

In kdaj ADSL v Murski Soboti ter okolici ?

Oddelek: Omrežja in internet
171138 (1031) PaJo

Več podobnih tem