[PASCAL] Yol Bilgisayarı Uygulaması
-
Geçen seneki ödevlerden biriydi, belki birilerinin işine yarar diye paylaşayım dedim.
{ * @file Untitled1.pas * @description Yol bilgisayarı simulasyonu. * @course Programlama dilleri prensipleri * @assignment 1. Ödev * @date 19.02.2013 Salı * @author wasd } program yol_bilgisayari; uses crt; type yolBilgisayari = object public depoLimiti : integer; maxHiz : integer; alinacakBenzin : single; gidilecekYol : single; genelKm : single; yerelKm : single; depodaKalanYakit : single; hiz : single; toplamZaman : single; yanacakBenzin : single; harcanmisYakit : single; function ortHizDondur : single; function ortYakitDondur : single; procedure sabitleriAta; procedure aracSur; procedure benzinAl; procedure kmSifirla; procedure gKmGoster; procedure yKmGoster; procedure ortHiz; procedure ortYakit; procedure depodakiYakit; procedure menzil; end; var secim : char; bilg : yolBilgisayari; procedure islemMenusu;forward; procedure anaMenu;forward; procedure yolBilgisayariMenusu;forward; function yolBilgisayari.ortHizDondur : single; begin if ((yerelKm <> 0) and (toplamZaman <> 0)) then result := ((yerelKm * 60) / toplamZaman); if ((yerelKm = 0) or (toplamZaman = 0)) then result := 0; end; function yolBilgisayari.ortYakitDondur : single; begin if ((harcanmisYakit <> 0) and (yerelKm <> 0)) then result := ((harcanmisYakit*100)/yerelKm); if ((harcanmisYakit = 0) or (yerelKm = 0)) then result := 0; end; procedure yolBilgisayari.sabitleriAta; begin maxHiz := 220; depoLimiti := 60; end; procedure yolBilgisayari.aracSur; begin clrscr; if (depodaKalanYakit = 0) then begin writeln('Once benzin almalisiniz!'); readKey; islemMenusu; end; if (depodaKalanYakit > 0) then begin writeln('Kac km gidilsin: '); readln(gidilecekYol); writeln('Kac km hiz ile gidilsin: '); readln(hiz); if (hiz > maxHiz) then begin writeln('Aracin azami hizi saatte 220 kilometredir, daha hizli gidemezsiniz!'); readKey; islemMenusu; end; if (hiz <= maxHiz) then begin if (hiz<=50) and (hiz>0) then yanacakBenzin := 15; if (hiz<=75) and (hiz>50) then yanacakBenzin := 9; if (hiz<=110) and (hiz>75) then yanacakBenzin := 6; if (hiz<=maxHiz) and (hiz>110) then yanacakBenzin := 12; if (((gidilecekYol*yanacakBenzin)/100) <= depodaKalanYakit) then begin clrscr; genelKm += gidilecekYol; yerelKm += gidilecekYol; toplamZaman += ((gidilecekYol*60)/hiz); depodaKalanYakit -= ((gidilecekYol*yanacakBenzin)/100); harcanmisYakit += ((gidilecekYol*yanacakBenzin)/100); writeln(gidilecekYol:0:1,' km gidildi.'); writeln(((gidilecekYol*yanacakBenzin)/100):0:1,' lt benzin harcandi.'); writeln(((gidilecekYol / hiz)*60):0:1,' dk gecti.'); readKey; islemMenusu; end; end; end; end; procedure yolBilgisayari.benzinAl; begin clrscr; writeln('Kac litre benzin istiyorsunuz: '); readln(alinacakBenzin); if ((depodaKalanYakit+alinacakBenzin) <= depoLimiti) then begin depodaKalanYakit := depodaKalanYakit + alinacakBenzin; writeln('Su anda depoda ',depodaKalanYakit:0:1,' litre benzin bulunmaktadir'); readKey; islemMenusu; exit; end; if ((depodaKalanYakit+alinacakBenzin) > depoLimiti) then begin writeln('Depo limiti 60 litre, daha fazla benzin alamazsiniz!'); writeln('Su anda depoda ',depodaKalanYakit:0:1,' litre benzin bulunmaktadir.'); readKey; islemMenusu; exit; end; end; procedure yolBilgisayari.kmSifirla; begin clrscr; yerelKm := 0; toplamZaman := 0; harcanmisYakit := 0; writeln('Yerel kilometre bilgisi sifirlandi.'); readKey; islemMenusu; end; procedure yolBilgisayari.gKmGoster; begin clrscr; writeln('İlk gunden beri ',genelKm:0:1,' km yol gidildi.'); readKey; yolBilgisayariMenusu; end; procedure yolBilgisayari.yKmGoster; begin clrscr; writeln('Son sifirlamadan sonra ',yerelKm:0:1,' km yol gidildi.'); readKey; yolBilgisayariMenusu; end; procedure yolBilgisayari.ortHiz; begin clrscr; if(ortHizDondur <> 0) then begin writeln('Ortalama hiz ',ortHizDondur:0:1,' kilometredir.'); readKey; yolBilgisayariMenusu; end; if(ortHizDondur = 0) then begin writeln('Herhangi bir bilgi bulunamadi.'); readKey; yolBilgisayariMenusu; end; end; procedure yolBilgisayari.ortYakit; begin if (ortYakitDondur <> 0) then begin clrscr; writeln('Ortalama yakit tuketimi ',ortYakitDondur:0:1,' litredir.'); readKey; yolBilgisayariMenusu; end; if (ortYakitDondur = 0) then begin clrscr; writeln('Herhangi bir bilgi bulunamadi.'); readKey; yolBilgisayariMenusu; end; end; procedure yolBilgisayari.depodakiYakit; begin clrscr; writeln('Su anda depoda ',depodaKalanYakit:0:1,' litre benzin bulunmaktadir.'); readKey; yolBilgisayariMenusu; end; procedure yolBilgisayari.menzil; begin clrscr; if (ortHizDondur = 0) or (depodaKalanYakit = 0) or (yanacakBenzin = 0) then begin writeln('Herhangi bir bilgi bulunamadi.'); readKey; yolBilgisayariMenusu; end; if (ortHizDondur<=50) and (ortHizDondur>0) then yanacakBenzin := 15; if (ortHizDondur<=75) and (ortHizDondur>50) then yanacakBenzin := 9; if (ortHizDondur<=110) and (ortHizDondur>75) then yanacakBenzin := 6; if (ortHizDondur<=maxHiz) and (ortHizDondur>110) then yanacakBenzin := 12; writeln('Depodaki benzinle saatte ',ortHizDondur:0:1,' km hiz ile ',((depodaKalanYakit/yanacakBenzin)*100):0:1,' km yol gidilebilir.'); readKey; yolBilgisayariMenusu; end; procedure islemMenusu; begin clrscr; writeln('1 - Araci sur'); writeln('2 - Benzin al'); writeln('3 - Yerel kilometre bilgisini sifirla'); writeln('4 - Ana menuye don'); secim := readKey; case secim of '1' : bilg.aracSur; '2' : bilg.benzinAl; '3' : bilg.kmSifirla; '4' : anaMenu; else islemMenusu; end; end; procedure yolBilgisayariMenusu; begin clrscr; writeln('1 - Genel kilometre goster'); writeln('2 - Yerel kilometre goster'); writeln('3 - Ortalama hiz'); writeln('4 - Ortalama yakit tuketimi'); writeln('5 - Depodaki yakit'); writeln('6 - Menzil'); writeln('7 - Ana menuye don'); secim := readKey; case secim of '1' : bilg.gKmGoster; '2' : bilg.yKmGoster; '3' : bilg.ortHiz; '4' : bilg.ortYakit; '5' : bilg.depodakiYakit; '6' : bilg.menzil; '7' : anaMenu; else yolBilgisayariMenusu; end; end; procedure anaMenu; begin clrscr; writeln('1 - Islemler'); writeln('2 - Yol Bilgisayari'); writeln('3 - Cikis'); secim := readKey; case secim of '1' : islemMenusu; '2' : yolBilgisayariMenusu; '3' : halt; else anaMenu; end; end; begin bilg.sabitleriAta; anaMenu; end.
-
Eyvallah. Programlamaya ilk başladığım dil :)
-
Emegne saglik hocam guzel calisma
Toplam Hit: 1829 Toplam Mesaj: 3