Je unataka kujua namna ya kufanya mahesabu katika programu?
Programu yetu ya sasa itaonyesha namna ya kujumlisha namba mbili ambazo mtumiaji atakuwa ameingiza kwa kuandika na keyboard yake. Kama tulivyojifunza hapo awali kuwa stdio.h ni “Standard Input/Output header”, ambalo ni file lenye functions zinazohusiana na input(kuingiza) au output kama vile printf, kwenye somo hili tutajifunza function mpya ya scanf. Kazi ya scanf ni kuchukua/kusoma alichoandika mtumiaji kwa keyboard na kukihifadhi katika kompyuta kwa matumizi ya baadae kwenye programu.
Programu ifuatayo inaonyesha kujumlisha tarakimu mbili
Kama tulivyojadili kabla, stdio.h ni file lenye function za input na output. Katika programu hii tumetumia printf na scanf ambazo zote zipo kwenye hili file, hivyo ni lazima tuliinclude kwenye programu yetu.
/* function main - Hapa ndipo programu inapoanzia kufanya kazi */
Hizi ni comments, kama tulivyosema awali, hazina athari yoyote katika ufanyaji kazi wa programu.
int main(void)
Hapa ndipo programu inaanzia kufanya kazi yake. Kuanza kuandika programu yetu tunafungua mabano kwa alama { na kuyafunga kwa } .
int namba1; /* namba ya kwanza itakayoingizwa */
Hii inaitwa definition, na namba1 inaitwa variable. variable ni sehemu katika memory ya kompyuta ambapo tunaweza kuhifadhi data. Kabla hatujatumia variable flani ni lazima tuitaje(declare) kabla, ili kompyuta ituandalie. Wakati tunaitaja inabidi tuseme kwenye hiyo sehemu ya memory ni aina gani ya data itahifadhiwa, kwa mfano hapa int inamaanisha aina ya data itakayohifadhiwa ni tarakimu(integer). Integer ni namba kamili isiyo na sehemu wala desimali kwa mfano 1, 100 , 123. 1.5 sio integer.
namba1, namba2 na jumla zote ni variable ambazo zinahifadhi data aina ya tarakimu. Kuna aina nyingine za data katika C, kwa mfano kuhifadhi desimali tunatumia float, tutakuja kuziona kwa mapana zaidi.
vile vile hizi definitions tatu, tungeweza kuziandika hivi
int namba1, namba2, namba3;
Jina la variable kwenye C linaundwa na muunganiko wa herufi, namba na _(mstari chini - underscore), lakini halitakiwi kuanza na namba. Hivyo namba1 ni jina sahihi la variable lakini 1namba sio sahihi. Pia C ipo case-sensitive kwa hiyo namba1 na Namba1 ni variable mbili tofauti.
printf(“Andika namba ya kwanza\n”); /* julisha kuwa namba inatakiwa kuingizwa */
Hii inaiambia printf iandike “Andika namba ya kwanza”, kisha cursor ipelekwe kwenye mstari unaofuata.
scanf("%d", &namba1); /* soma integer(tarakimu) */
Hii inasoma data inayoingizwa na mtumiaji. scanf inasoma data inayoingizwa kupitia standard input ambayo kwa kawaida ni keyboard ya kompyuta. scanf inahitaji kujua aina ya data mtumiaji ataingiza na hiyo data ipo kwenye variable ipi. “%d” inatumika kuiambia scanf kwamba, mtumiaji ataingiza data ya aina ya tarakimu. Herufi d inamaanisha decimal integer, kwa maana ni integer iliyo katika base 10. Tusije tukachanganya na desimali. Alama ya % hutumika kama alama maalumu inayoiambia scanf (pia printf) ifanye mbadilisho flani wa data.
Input ya pili kwenye scanf, yaani &namba1 inaiambia scanf ihifadhi hichi kilichobadilishwa kuwa tarakimu kwenye variable namba1. Alama ya & inaitwa address operator kwenye C, kwa maana tukitaka kujua address(sehemu ya memory) ya variable yoyote kwenye programu yetu tutaitumia hii alama. kwa hiyo hizi “%d” na &namba1 zinaiambia scanf isome tarakimu kutoka kwenye keyboard kisha hiyo tarakimu ihifadhiwe kwenye sehemu ya memory ambapo variable namba1 inahifadhiwa.
Programu ikifika kwenye huu mstari wa scanf, programu itasubiri mtumiaji aingize data. Mtumiaji akisha ingiza data anabonyeza ENTER kwenye keyboard ili kuituma kwa kompyuta. Baada ya hapo data aliyoingiza itawekwa kwenye variable namba1. Katika hii programu sehemu yoyote ambayo tutaitumia variable namba1, itatupatia thamani iliyoingizwa na mtumiaji.
printf(“Andika namba ya pili\n”); /* julisha kuwa namba inatakiwa kuingizwa */
Hii inaiambia printf iandike “Andika namba ya pili”, kisha cursor ipelekwe kwenye mstari unaofuata.
scanf("%d", &namba2); /* soma integer(tarakimu) */
Hii inasoma tarakimu kutoka kwa mtumiaji na kuiweka katika variable namba2.
jumla = namba1 + namba2; /* hifadhi jibu kwenye jumla */
Hapa tunaiambia kompyuta ijumlishe kilichopo kwenye variable namba1 na kile cha namba2, kisha jibu lake iliweke(assign) kwenye variable jibu. Hii ni assignment statement. Alama ya sawa sawa (=) kwenye C ni alama ya kuassign(assignment operator). Na sio alama ya kusema vitu viwili vipo sawa kama tulivyozoea katika hesabu. Kwenye C kuna alama ya (==) ambayo ndio ya kulinganisha usawa wa vitu. Kwa kawaida ukokotoaji mwingi kwenye programu unafanyika kwa assingment.
printf(“Jumla ni %d\n”, jumla); /* onesha jibu kwenye screen */
Hii inaiambia printf iandike "Jumla ni " ikifuatwa na tarakimu(integer) ambayo ipo kwenye variable jumla. Alama ya “%d” kwenye printf inamaana kuwa printf itapachika tarakimu kutoka kwenye variable jumla. Kama tunavyoona alama hii imetumika kwenye scanf pia.
Tungeweza kukokotoa ndani ya printf pia bila kuhifadhi jibu kwenye variable jumla, kwa mfano
printf(“Jumla ni %d\n”, namba1 + namba2);
return 0; /* Programu imemalizika bila tatizo */
Hii inarudisha sifuri kwa operating system. Sifuri inaiambia operating system kuwa programu imamalizika bila tatizo lolote.
Programu yetu ya sasa itaonyesha namna ya kujumlisha namba mbili ambazo mtumiaji atakuwa ameingiza kwa kuandika na keyboard yake. Kama tulivyojifunza hapo awali kuwa stdio.h ni “Standard Input/Output header”, ambalo ni file lenye functions zinazohusiana na input(kuingiza) au output kama vile printf, kwenye somo hili tutajifunza function mpya ya scanf. Kazi ya scanf ni kuchukua/kusoma alichoandika mtumiaji kwa keyboard na kukihifadhi katika kompyuta kwa matumizi ya baadae kwenye programu.
Programu ifuatayo inaonyesha kujumlisha tarakimu mbili
#include <stdio.h>
/* function main - Hapa ndipo programu inapoanzia kufanya kazi */
int main(void)
{
int namba1; /* namba ya kwanza itakayoingizwa */
int namba2; /* namba ya pili itakayoingizwa */
int jumla; /* variable itakayohifadhi jumla */
printf("Andika namba ya kwanza\n"); /* julisha kuwa namba inatakiwa kuingizwa */
scanf("%d", &namba1); /* soma integer(tarakimu) */
printf("Andika namba ya pili\n"); /* julisha kuwa namba inatakiwa kuingizwa */
scanf("%d", &namba2); /* soma integer(tarakimu) */
jumla = namba1 + namba2; /* hifadhi jibu kwenye jumla */
printf("Jumla ni %d\n", jumla); /* onesha jibu kwenye screen */
return 0; /* Programu imemalizika bila tatizo */
} /* Mwisho wa main */
OutputAndika namba ya kwanza
25
Andika namba ya pili
39
Jumla ni 64
#include <stdio.h>Kama tulivyojadili kabla, stdio.h ni file lenye function za input na output. Katika programu hii tumetumia printf na scanf ambazo zote zipo kwenye hili file, hivyo ni lazima tuliinclude kwenye programu yetu.
/* function main - Hapa ndipo programu inapoanzia kufanya kazi */
Hizi ni comments, kama tulivyosema awali, hazina athari yoyote katika ufanyaji kazi wa programu.
int main(void)
Hapa ndipo programu inaanzia kufanya kazi yake. Kuanza kuandika programu yetu tunafungua mabano kwa alama { na kuyafunga kwa } .
int namba1; /* namba ya kwanza itakayoingizwa */
Hii inaitwa definition, na namba1 inaitwa variable. variable ni sehemu katika memory ya kompyuta ambapo tunaweza kuhifadhi data. Kabla hatujatumia variable flani ni lazima tuitaje(declare) kabla, ili kompyuta ituandalie. Wakati tunaitaja inabidi tuseme kwenye hiyo sehemu ya memory ni aina gani ya data itahifadhiwa, kwa mfano hapa int inamaanisha aina ya data itakayohifadhiwa ni tarakimu(integer). Integer ni namba kamili isiyo na sehemu wala desimali kwa mfano 1, 100 , 123. 1.5 sio integer.
namba1, namba2 na jumla zote ni variable ambazo zinahifadhi data aina ya tarakimu. Kuna aina nyingine za data katika C, kwa mfano kuhifadhi desimali tunatumia float, tutakuja kuziona kwa mapana zaidi.
vile vile hizi definitions tatu, tungeweza kuziandika hivi
int namba1, namba2, namba3;
Jina la variable kwenye C linaundwa na muunganiko wa herufi, namba na _(mstari chini - underscore), lakini halitakiwi kuanza na namba. Hivyo namba1 ni jina sahihi la variable lakini 1namba sio sahihi. Pia C ipo case-sensitive kwa hiyo namba1 na Namba1 ni variable mbili tofauti.
printf(“Andika namba ya kwanza\n”); /* julisha kuwa namba inatakiwa kuingizwa */
Hii inaiambia printf iandike “Andika namba ya kwanza”, kisha cursor ipelekwe kwenye mstari unaofuata.
scanf("%d", &namba1); /* soma integer(tarakimu) */
Hii inasoma data inayoingizwa na mtumiaji. scanf inasoma data inayoingizwa kupitia standard input ambayo kwa kawaida ni keyboard ya kompyuta. scanf inahitaji kujua aina ya data mtumiaji ataingiza na hiyo data ipo kwenye variable ipi. “%d” inatumika kuiambia scanf kwamba, mtumiaji ataingiza data ya aina ya tarakimu. Herufi d inamaanisha decimal integer, kwa maana ni integer iliyo katika base 10. Tusije tukachanganya na desimali. Alama ya % hutumika kama alama maalumu inayoiambia scanf (pia printf) ifanye mbadilisho flani wa data.
Input ya pili kwenye scanf, yaani &namba1 inaiambia scanf ihifadhi hichi kilichobadilishwa kuwa tarakimu kwenye variable namba1. Alama ya & inaitwa address operator kwenye C, kwa maana tukitaka kujua address(sehemu ya memory) ya variable yoyote kwenye programu yetu tutaitumia hii alama. kwa hiyo hizi “%d” na &namba1 zinaiambia scanf isome tarakimu kutoka kwenye keyboard kisha hiyo tarakimu ihifadhiwe kwenye sehemu ya memory ambapo variable namba1 inahifadhiwa.
Programu ikifika kwenye huu mstari wa scanf, programu itasubiri mtumiaji aingize data. Mtumiaji akisha ingiza data anabonyeza ENTER kwenye keyboard ili kuituma kwa kompyuta. Baada ya hapo data aliyoingiza itawekwa kwenye variable namba1. Katika hii programu sehemu yoyote ambayo tutaitumia variable namba1, itatupatia thamani iliyoingizwa na mtumiaji.
printf(“Andika namba ya pili\n”); /* julisha kuwa namba inatakiwa kuingizwa */
Hii inaiambia printf iandike “Andika namba ya pili”, kisha cursor ipelekwe kwenye mstari unaofuata.
scanf("%d", &namba2); /* soma integer(tarakimu) */
Hii inasoma tarakimu kutoka kwa mtumiaji na kuiweka katika variable namba2.
jumla = namba1 + namba2; /* hifadhi jibu kwenye jumla */
Hapa tunaiambia kompyuta ijumlishe kilichopo kwenye variable namba1 na kile cha namba2, kisha jibu lake iliweke(assign) kwenye variable jibu. Hii ni assignment statement. Alama ya sawa sawa (=) kwenye C ni alama ya kuassign(assignment operator). Na sio alama ya kusema vitu viwili vipo sawa kama tulivyozoea katika hesabu. Kwenye C kuna alama ya (==) ambayo ndio ya kulinganisha usawa wa vitu. Kwa kawaida ukokotoaji mwingi kwenye programu unafanyika kwa assingment.
printf(“Jumla ni %d\n”, jumla); /* onesha jibu kwenye screen */
Hii inaiambia printf iandike "Jumla ni " ikifuatwa na tarakimu(integer) ambayo ipo kwenye variable jumla. Alama ya “%d” kwenye printf inamaana kuwa printf itapachika tarakimu kutoka kwenye variable jumla. Kama tunavyoona alama hii imetumika kwenye scanf pia.
Tungeweza kukokotoa ndani ya printf pia bila kuhifadhi jibu kwenye variable jumla, kwa mfano
printf(“Jumla ni %d\n”, namba1 + namba2);
return 0; /* Programu imemalizika bila tatizo */
Hii inarudisha sifuri kwa operating system. Sifuri inaiambia operating system kuwa programu imamalizika bila tatizo lolote.
Comments
Post a Comment