View Full Version : aturcaraC
riena78
27-04-03, 03:21 AM
hai guys & ....
1) kalau mcm I budak beginner C..mcmana nak faham struct+ fungsi dan pointer(penuding)??
2) kalau disuruh cari char="pening-pening _lalat" mcmana nak dpy outputnya cth..ppp__sss..maknanya nak umpukkan pening-pening lalat tukar ke huruf demi huruf
3)
if((markah1>=26.3)&&(markah1<=17.5))
}
statement
{
if((markah1>30.5)&&(markah1<15.5))
kenapa bila I buat 27.3 utk >=26.3 dan 16.5 takdapat sbb u tengok baris bwh sekali >30.5 dan15.5? bila I taip 26.3 dan 17.5 baru dpt sedangkan simbol <=,>=dah diberikan?
4) for(i=0; i<25; +=2) apa maksud +=2?? jelaskan??
5)apa tu modulus..bila I tanya friend I kalau integer kiri lebih kecil dari kanan (6%9) kita ambikjawapan sama sblh kiri??betul ke tunjuklah formula I tak fahamlah
6) !(a!=c)&&( (b==c) || (a<1) ) mcmana nak faham perbezaannya?
blh I guna tips u utk soalan lain mcm ni kalau u jelaskan
Edited by Obi-Wan for readability.
1) baca tutorial pasal struct, fungsi dan pointer...carik dlm google pasal tutorial C
2) tak paham soalan...tp kalau nak carik perkataan "pening-pening lalat" guna strcmp
3) kalau anda nak carik dlm julat yg melibatkan float atau double cuma gunakan julat dlm bentuk integer... maknanya 26.3 ganti 26, 17.5 ganti 17..lagi senang.. :)
4) for (i=0; i<25; i+=2)
- integer i akan diumpukkan dulu dengan kosong, kemudian ia akan dicomparekan sama ada i kurang daripada 25..jika benar, program akan execute arahan yg ada dlm loop for, kemudian, i akan ditambah dengan 2, dan dicompare lagi...begitulah seterusnya sehingga syarat tidak lagi dipenuhi..
- i yg anda akan dpt... 0, 2, 4, 6, 8, 10, ...., 26
5) modulus adalah satu operasi utk mendapatkan hasil baki bagi sesuatu operasi...contoh kalau anda melakukan operasi 6%9 maka jawapan yg anda akan dpt adalah 6..kalau anda melakukan operasi 15%3 maka jawapan yg terhasil adalah 0...
harap dpt membantu..
Zephyrous
27-04-03, 02:22 PM
4) for(i=0; i<25; +=2) apa maksud +=2?? jelaskan??
bukan +=2 tapi syntax sebenarnya ialah i+=2
dan bermaksud i = i + 2; atau pun dua kali i++
5)apa tu modulus..bila I tanya friend I kalau integer kiri lebih kecil dari kanan (6%9) kita ambikjawapan sama sblh kiri??betul ke tunjuklah formula I tak fahamlah
modulus ialah baki dari pada pembahagian (division) antara 2 nombor
contoh 6%9 = 6 sebab 6 / 9 = 0 dan bakinya ialah 6.
kalau 12%9 = 3
2) kalau disuruh cari char="pening-pening _lalat" mcmana nak dpy outputnya cth..ppp__sss..maknanya nak umpukkan pening-pening lalat tukar ke huruf demi huruf
char perkataan[100] = "pening-pening _lalat";
perkataan[0] = 'p'
perkataan[1] = 'e'
perkataan[5] = 'g' dan begitulah seterusnya
kalau output nya pula...
for (int = 0; i < 100; i++)
printf ("%c", perkataan[i]);
1) kalau mcm I budak beginner C..mcmana nak faham struct+ fungsi dan pointer(penuding)??
belajar assembly lang kalau nak faham pointer ;-)
ok.. pointer lebih merujuk kepada penggunaan ruang memory (RAM) oleh sesuatu program untuk menyimpan nilai variable, constant, strings , ect
Kiriman asal oleh Zephyrous
belajar assembly lang kalau nak faham pointer ;-)
really? tp kan, aku rasa tak perlu belajar assembly language pun ko paham pasal pointer..tp aku tak tau ler..aku tak pernah belajar assembly...so, tak reti ler nak komen... :D
Itu lah C... RAM is your playground :) But it can be dangerous too if you're not too careful about how you use memory.
Aku amik assembly, dan mmg lagi mudah bagi org yg ada basic assembly utk faham C. Tapi asm tak menjadi keperluan. Just ingat memory ni sebagai jujukan kotak-kotak kecil yg bersaiz satu byte each. Setiap kotak ada alamat. Pointer menyimpan alamat tersebut utk kita manipulate ingatan.
Sebenarnya apabila org tak faham pointer, mereka sebenarnya tak faham konsep ingatan. Sebab saya rase silabus bagi subjek CS dan programming kena ada strong emphasis on architecture and computer organization jugak.
-= Obi-Wan =-
riena78
27-04-03, 03:59 PM
Kiriman asal oleh Zephyrous
bukan +=2 tapi syntax sebenarnya ialah i+=2
dan bermaksud i = i + 2; atau pun dua kali i++
...tapikan cth soalan ni (kiriman riena 27/4/03)
jumlah=0;
for(i=1; i?<=9; i+=2)
jumlah +=i;
printf("Jumlah =%d\n", jumlah);
output jawpnya ialah 1
mcmana jawp 1 blh dpt..inilah yg I perkatakan bila I buat latihan revision dlm buku aturcara C...cuba fahamkan>>>!!
modulus ialah baki dari pada pembahagian (division) antara 2 nombor
contoh 6%9 = 6 sebab 6 / 9 = 0 dan bakinya ialah 6.
kalau 12%9 = 3
char perkataan[100] = "pening-pening _lalat";
perkataan[0] = 'p'
perkataan[1] = 'e'
perkataan[5] = 'g' dan begitulah seterusnya
kalau output nya pula...
for (int = 0; i < 100; i++)
printf ("%c", perkataan[i]);
cth soalan ni pula (kiriman riena 27/4/03)
int i;
char teks[]="Pengaturcaraan_C_adalah_sangat_menarik");
i=0;
while (teks[i] !='\0') {
if( (i%2)==0 )
printf("%c%c", teks[i], teks[i] );
i++;
}
jawp outputnya :- Ppnnaauuccrraa____ddllhhssnnaa__eeaaii
mcmana blh dpt ni!!!
belajar assembly lang kalau nak faham pointer ;-)
ok.. pointer lebih merujuk kepada penggunaan ruang memory (RAM) oleh sesuatu program untuk menyimpan nilai variable, constant, strings , ect
cth soalan struct+fungsi (kiriman riena 27/04/03)
#include <stdio.h>
#define BIL_PEKERJA 10
main(){
struct pekerja {
char nama[100];
int umur;
int i, jumlah,purata;
};
struct kategori{
int muda;
int pertengahan_umur;
int tua;
int i;
};
struct pekerja Pekerja;
for(i=0; i<BIL_PEKERJA; i++)
i=Pekerja.nama=Pekerja.umur;
scanf("%s\n %d\n", &Pekerja.nama, &Pekerja.umur);
printf("Nama = %s\n", Pelanggan.nama);
printf("Umur=%d\n", Pelanggan.umur);
i= Pekerja.umur;
jumlah += pekerja.umur[i];
i++;
printf("Jumlah :%d", jumlah);
purata = jumlah/BIL_PEKERJA;
printf ("Purata : %d\n", purata);
}
struct kategori Kategori;
for(i=0; i<BIL_PEKERJA; i++)
i= kategori.muda=kategori.pertengahan.umur=Kategori.tua;
if( kategori.muda<=32)
{
printf("Muda\n");
}
else if(kategori.pertengahan_umur>32)
{
printf("Pertengahan_umur\n");
}
else if(kategori.tua>70)
{
printf("Tua\n");
}
printf("***************************\n");
printf("NAMA\t\t, UMUR\t\t, KATEGORI\t\t");
printf("***************************\n");
}
}
betul ke I buat struct ni supaya jawapannya dpt dlm btk jadual..ini struct beserta fungsi ke atau struct tiada fungsi???1 cth soalan ni pula (kiriman riena 27/4/03)
Edited for readibility by Obi-Wan
Riena, pls use the "PHP" vbcode utk menandakan sections of code. Lebih senang utk dibaca.
-= Obi-Wan =-
struct tak ada fungsi..struct cuma ada pemboleh ubah utk menyimpan data ajer..class dlm object-oriented baru ada fungsi dan data...struct cuma ada pembolehubah ajer..
dlm program anda tak menggunakan fungsi (fungsi yg built-in adalah..tp fungsi anda sendiri tak ada)...fungsi built-in adalah seperti printf, scanf dan lain-lain yg ada dlm library..
beberapa kritikan dari saya...
1. terdapat beberapa kesalahan sintaks di dlm aturcara anda itu..
2. program anda akan print seperti berikut :
Nama = nama
Umur = umur
Jumlah = n_jumlah
Purata = n_purata
Muda (atau pertengahan atau tua bergantung pada umur pelanggan)
*****************************
NAMA PELANGGAN KATEGORI
****************************
3. program anda cuma simpan satu set data sahaja..
apa yg anda perlu buat,
a. declare struct anda di luar main supaya menjadik pemboleh ubah global...
b. kemudian declare struct anda sbg array dlm main (jgn guna pointer lagi kalau anda tak faham)
c. pecahkan aturcara anda kepada 3 fungsi...fungsi input, fungsi cetak, dan fungsi cari_kategori..
d. jgn letakkan i, jumlah dan purata dlm struct pekerja..letakkan dlm struct kategori atau jadikkan ia sbg pembolehubah yg diisytiharkan di dalam main..
e. ubah pembolehubah i kepada menda lain..selalunya kita gunakan i dan j utk kiraan loop...dan satu lagi utk mengelakkan org confius..
f. check jika ada kesalahan sintaks pada program anda..
if you are confius, tgk balik dlm buku..refer dlm buku..tgk dan fahamkan cara penggunaan loop, cara pengisytiharan pembolehubah, fahamkan pembolehubah global dan pembolehubah local, cara penggunaan fungsi...dan tekadkan azam utk berusaha..tanpa usaha tiadalah pemahaman dlm diri..
semoga berjaya
Zephyrous
27-04-03, 05:52 PM
int i;
char teks[]="Pengaturcaraan_C_adalah_sangat_menarik");
i=0;
while (teks[i] !='\0') {
if( (i%2)==0 ) // if i == 0, 2, 4 , 6, ....
printf("%c", teks[i] ); // print char
i++;
}
program awak ni akan print teks[0], teks[2], ect
sebab ada if( (i%2)==0 ) untuk mendapat array yang berangka genap
for(i=1; i<=9; i+=2)
jumlah += i;
printf("Jumlah =%d\n", jumlah);
apsal saya dapat jumlah = 25 ?
kenapa awak dapat 1?
maybe something wrong with ur codes
Kiriman asal oleh riena78
hai guys & ....
3)
if((markah1>=26.3)&&(markah1<=17.5))
}
statement
{
if((markah1>30.5)&&(markah1<15.5))
kenapa bila I buat 27.3 utk >=26.3 dan 16.5 takdapat sbb u tengok baris bwh sekali >30.5 dan15.5? bila I taip 26.3 dan 17.5 baru dpt sedangkan simbol <=,>=dah diberikan?
Adakah anda faham "condition" dan bagaimana ianya bekerja?
Untuk
if((markah1>=26.3)&&(markah1<=17.5))
Ini bermakna markah1 kena lebih dan sama degan 26.3 DAN kena kurang dan sama dengan 17.5... Sekarang mari kita senaraikan nilai yang boleh memenuhi syarat ini ... Rasa-rasa nya tiada nombor yang boleh memenuhi nilai ini... Sekiranya anda ingin mencari nilai antara 17.5 dan 26.3 macam fungsi math ini..
17.5 <= markah1 <= 26.3
Ianya boleh dilakukan dalam C
if (( 17.5 <= markah1) && (markah1 <= 26.3))
Sekarang barulah memenuhi macam formula math diatas... Jadi
Untuk perbandingan yang lain, cuba kaitkan dengan matematik untuk mendapatkan fungsi yang tepat... Yang lain tu anda cuba fikirkan sendiri... :)
vBulletin® v3.7.1, Copyright ©2000-2009, Jelsoft Enterprises Ltd.