encik pot pet 0 Report post Posted August 26, 2004 kali ni korang kena fikir and implement sendiri.. kalau surf/cari kat internet dulu.. rugi la sebab ini adalah latihan utk kebaikan korang sendiri...1. Tentukan tahun yang dimasukkan oleh pengguna sama tahun tersebut ialah tahun lompat(leap year) atau tidak.. korang kena code utk dari tahun 1900 hingga 3000.contoh:Input: 2004output: tahun lompat...2. Setelah berjaya dgn code di atas.. ada satu lagi tugas utk korang.. kali ni user akan masukkan tarikh, and program awak tu kena tentukan hari bagi tarikh yang dimasukkan.contoh:input:26 8 2004out: Khamissekian....semoga berjaya Quote Share this post Link to post Share on other sites
akuBest 0 Report post Posted August 27, 2004 (edited) A'kum. ni aku try wat aturcara. tapi bodo2 jer la, aku tak reti sgt nih. aku pon tgh blajor lagik nih.... kalo ada komen ok gak. #include<stdio.h> #include<conio.h> #include<stdlib.h> main() { int Tmasuk; int Tmula = 1900; int Takhir = 3000; clrscr(); printf("Masukkan tahun : "); scanf("%d", &Tmasuk); for(int x=Tmula; x<=Takhir; x=x+4) { if(Tmasuk == Tmula){ printf("\n %d adalah tahun lompat", Tmasuk); exit(1); } Tmula += 4; } } ni lak aku guna modulus. #include<stdio.h> #include<conio.h> #include<stdlib.h> main() { int Tmasuk; int Tmula = 1900; int Takhir = 3000; clrscr(); printf("Masukkan tahun : "); scanf("%d", &Tmasuk); for(int x=Tmula; x<=Takhir; x=x+4) { if(Tmasuk % 4 == 0){ printf("\n %d adalah tahun lompat", Tmasuk); exit(1); } } } Edited August 27, 2004 by akuBest Quote Share this post Link to post Share on other sites
akuBest 0 Report post Posted August 27, 2004 A'kum. errr baru aku perasan, tak yah wat gelung pon sebenarnya kan? hehehehe... utk soklan no 2 tu, bukannya dah ada ker function utk tentukan hari tu. mktime kan? Quote Share this post Link to post Share on other sites
encik pot pet 0 Report post Posted August 27, 2004 aktiviti ini utk menguji diri sendiri dalam mengimplementasi sesuatu...kalau nak menggunakan function orang yang dah buat.. memang banyak Quote Share this post Link to post Share on other sites
akuBest 0 Report post Posted August 27, 2004 (edited) ermmm Edited August 27, 2004 by akuBest Quote Share this post Link to post Share on other sites
1kHz 0 Report post Posted August 28, 2004 aktiviti ini utk menguji diri sendiri dalam mengimplementasi sesuatu...kalau nak menggunakan function orang yang dah buat.. memang banyak no 2 tu kalau nak buat pakai algoritma sendiri susah tu zeph.. kalau pakai formula carik kat net boleh kan?Utk soalan 1#include <cstdlib> #include <cstdio> using namespace std; int main() { int tahun; printf("\n Masukkan tahun: "); scanf("%d", &tahun); printf("\n Tahun %d ialah", tahun); if (tahun%4) printf(" tahun tidak lompat."); else printf(" tahun lompat."); printf("\n"); system("pause"); return 0; }sori, ni kod C++ tapi function aku pakai C punya je.. Quote Share this post Link to post Share on other sites
raihan 0 Report post Posted August 28, 2004 (edited) #define MOD4(x) (x%4)#define msg "tahun "int y;scanf("%d",&y);if(MOD4(y)) fprintf(stdout,msg"biasa",11);else fprintf(stdout,msg"lompat",12); Edited August 28, 2004 by raihan Quote Share this post Link to post Share on other sites
mykk 0 Report post Posted August 28, 2004 bukan tahun lompat 1900, 2100, 2200, 2300, 2500, 2600, 2700, 2900, 3000tahun lompat 2000, 2400, 2800untuk tahun berakhir dengan 00 tahun lompat hanya jika boleh dibahagi dengan 400 Quote Share this post Link to post Share on other sites
encik pot pet 0 Report post Posted August 28, 2004 no 2 tu kalau nak buat pakai algoritma sendiri susah tu zeph.. kalau pakai formula carik kat net boleh kan? tak kisah la nak design sendiri ke atau ambik dari tenet..tapi kalau korang buleh design sendiri.. hasilnya (knowledge and experiance) korang jugak yg dapat.. bukan orang lain.. betul tak? Quote Share this post Link to post Share on other sites
hotfloppy 19 Report post Posted August 28, 2004 bukan tahun lompat 1900, 2100, 2200, 2300, 2500, 2600, 2700, 2900, 3000tahun lompat 2000, 2400, 2800untuk tahun berakhir dengan 00 tahun lompat hanya jika boleh dibahagi dengan 400 uiks ? tahun lompat 4 tahun skali la, bukan 400 tahun skali. Quote Share this post Link to post Share on other sites
raihan 0 Report post Posted August 28, 2004 (edited) erk~ camner ek~tahun biasa == 365tahun lompat == 366so, ikut lengkap 4 tahun termasuk tahun lompat == 1461jadi 1461%7 != 0, takde alignment pun, so as,365%7 != 0 && 366%7 != 0so, camner nak dapatkan algo yg terdekat ni??? adeh~ke~ kena wat satu initial point... pastu wat rekursif/iteration for utkdapatkan hari user input...ha ha~ share sesamer camner teknik u all... Edited August 29, 2004 by raihan Quote Share this post Link to post Share on other sites
mykk 0 Report post Posted August 28, 2004 uiks ? tahun lompat 4 tahun skali la, bukan 400 tahun skalisila baca my reply dengan teliti sebelum buat komen#include <stdio.h> int main(void) { int Hari; int Bulan; int Tahun; static char *HariSeminggu[] = {"Ahad", "Isnin", "Selasa", "Rabu", "Khamis", "Jumaat", "Sabtu"}; long BilHari; int i; printf("Masukkan haribulan dalam bentuk dd mm yyyy\n"); scanf("%d %d %d", &Hari, &Bulan, &Tahun); BilHari = (long) (30.42*(Bulan - 1)) + Hari; if(Bulan == 2) BilHari++; if((Bulan > 2) && (Bulan < 8)) BilHari--; if(Bulan > 2) { if(Tahun % 100 == 0) { if(Tahun % 400 == 0) BilHari++; } else if(Tahun % 4 == 0) BilHari++; } for(i = 1900; i < Tahun; i++) { BilHari = BilHari + 365; if(i % 100 == 0) { if(i % 400 == 0) BilHari++; } else if(i % 4 == 0) BilHari++; } printf("%s\n",HariSeminggu[BilHari % 7]); } takada error checking Quote Share this post Link to post Share on other sites
raihan 0 Report post Posted August 29, 2004 (edited) leh saya ubah sikit // declaration const unsigned char HariSebulan[] = {31,28,31,30,31,30,31,31,30,31,30,31}; const char *HariSeminggu[] = {"Ahad", "Isnin", "Selasa", "Rabu", "Khamis", "Jumaat", "Sabtu"}; // code //BilHari = (30.42*(Bulan - 1)) + Hari; //if(Bulan == 2) // BilHari++; //if((Bulan > 2) && (Bulan < 8)) // BilHari--; //if(Bulan > 2) //{ // if(Tahun % 100 == 0) // { // if(Tahun % 400 == 0) // BilHari++; // } // else if(Tahun % 4 == 0) // BilHari++; //} BilHari += Hari; for(i=0,--Bulan;i<Bulan;i++) { if(i==1) BilHari += Tahun%4?28:29; else BilHari += HariSebulan[i]; } yg mvkk ni cara guna initial pointbermula 1/1/1900 pada hari isnin,mmm, mungkin ada terkeliru sikit dgnkonsep tahun lompat kut,ada sesaper nak cuba bagi cara lain blok bawah dia ni gurlz yg lain lak, camner teknik u all. Edited August 29, 2004 by raihan Quote Share this post Link to post Share on other sites
didi7eleven 0 Report post Posted August 30, 2004 Sorry kalau saya mencelah....... program ni saya pernah buat dulu pakai java Saya tak nak cerita pasal koding dia , tapi cuma pasal pattern yang saya jumpa waktu nak buat program ni. Mari kita tengok sini :hari bagi 1 hb Januari tiap-tiap tahun.......95 A96 I97 R98 K99 J00 Sb01 I02 S03 R04 K05 SbApa yang korang nampak ?Dari situ saya dapat lihat yang hari pada tahun berikut sebenarnya menaik.Katakan tahun 2003, 1 Jan dia hari Rabu , 2004 1 Jan hari Khamis.Sebab 2004 tahun lompat , 1 Jan bagi tahun 2005 ialah hari Sabtu bukan hari Jumaat sebab tambah satu hari. Itu pattern atau corak yang saya nampak.dari situ saya dapat buat koding untuk menentukan 1 hb Jan bagi tahun yang diinputkan tu hari apa. Yang nak paparkan Calender tahun tu dan Cari hari bagi tarikh yang dimasukkan tu senang jer kalau dah tahu 1 hb Jan hari apa Quote Share this post Link to post Share on other sites
raihan 0 Report post Posted August 30, 2004 takpe ar~ kalau nak mencelah pun takpe,kalau taknak baru kasi sontot je, haha~kat rumah tu jangan malas malas koding lagibangun je, koding, bangun je koding atau dihalau~ hahaha~ acah je Quote Share this post Link to post Share on other sites