Nuo PHP prie C++, pirmoji programa

Šiame straipsnyje apžvelgsiu C++ bei PHP panašumus, „keistenybes“ su kuriomis galima susidurti pereinant nuo vienos programavimo kalbos prie kitos, šiuo atveju konkrečiai, – nuo PHP prie C++. Taip pat pasistengsiu įtikinti tuos(-as) kuriems(-ioms) dar ne vėlu pradėti dėti pirmuosius programuotojo(s) žingsnelius tai jog juos reikėtų žengti ne su lengviausia programavimo kalba, o su rimčiausia.

Pirmoji programa

Kadangi niekam turbūt nėra paslaptis ir visi tai puikiai žinome jog PHP ypač turi panašią savo sintaksę į C++, tad jeigu turite bent truputuką šių žinių drąsiai galite bandyti žengti prie pirmos programos rašymo.

Pirmiausia išsikelkime sau tikslą, šiuo atveju jis bus toks:

Parašyti programą kuri pagal vartotojo nurodymą sudarytų n, bet ne daugiau, kaip 10-ies elementų masyvą kurio reikšmės būtų skaičiai, o reikšmes turėtų įvesti pats vartotojas. Suformuoti antrą masyvą į kurį bus talpinamos visos reikšmės iš pirmojo masyvo mažesnės už pirmojo masyvo dešimtadalį sumos.

C++ darbo aplinka

Šiai kalbai yra įvairių programavimo aplinkų, kitaip tariant builder`ių, nuo Borland C++ WIN OS iki g++ Linux OS, kadangi mano PC sukasi ant WIN OS aš pasirinkau nemokamą ir gan neblogą CodeBlocks aplinką, kurią jūs taip pat galite parsisiųsti iš officialaus saito: CodeBlocks. Tiesa renkantis WIN, kaip darbinę OS „kažkur girdėjau“ jog reikia rinktis tą instaliacinį paketą kurio pavadinime yra mingw. Ar tai tiesa ar ne negaliu plačiau papasakoti, nes abiejų instaliacijų nebandžiau ir plačiau apie tai nesidomėjau, tačiau akivaizdu jog vienas paketas yra daug storesnis mb atžvilgiu už kitą.

Darbas CodeBlocks aplinkoje

Šiame žingsyje viskas labai paprasta. Įsidiegę minėtą aplinką ir ją įsijungus turime susikurti naują projektą, o tai galime padaryti nesunkiais keliais žingsniukais:

  • Susirandami įrankių juostoje „File„.
  • Pasirenkame „New„.
  • Toliau pasirenkame „Custom„.
  • Spaudžiame ant „Projects„.
  • Pasirenkame „Console Application„.

Iššokusioje lentelėje spauskite „Next„, kaip programavimo terpę pasirinkite „C++“ ir vėlgi „Next„. Nustatykite būsimo projekto vietą diske, užpildykite kitus laukelius ir keliaukite toliau. Jeigu viską padarėte teisingai galiausiai jau sukurtame „projekte“ paspaudus F9 klavišą turėtumėte gauti sukompiliuotą užrašą naujame lange: „Hello World„.

Rašome Programą

Pirmiausiai išvalykime seną kodą kuris atlikdavo išvedimą į ekraną: „Hello Word„, mums jo nebeprireiks ir pradėkime viską nuo pradžių.

#include
using namespace std;
int main() {
//Čia rašysime musų programos kodą.
}

Plačiau į pačios programos struktūrą šį kartą nesigilinsime, nes mums šį kartą jos keisti ir nereikės. Dabar savo užduotį „susiskaldykime“ į smulkesnius žingsnelius pagal kuriais vadovaudamiesi rašysime mūsų programą:

/*
 
Užduotys:
1) Nustatyti iš kelių elementų bus sudarytas masyvas
2) Masyvo elementams priskirti reikšmes
3) Suskaičiuoti visų elementų sumą
4) Suformuoti masyvą kurio elementai < už dešimtadalį sumos visų elementų
 
*/
 
#include 
using namespace std;
int main() {
//Čia rašysime musų programos kodą.
}

Jeigu paspaustumėte F9 pamatytumėte jog niekas nepasikeitė, vis dar juodas ir tuščias langas su užkrovimo laiku bei pranešimu jog norint uždaryti šį reikia paspausti bet kokį klavišą. Taigi mes čia aprašėme tik savo žingsnelius komentaruose kurie jeigu jau atkreipėt dėmesį yra identiški PHP komentarams, t.y. „/*Komentaras*/„.

Žingsnis: 1) Elementai masyve

/*
 
Užduotys:
 
1) Nustatyti iš kelių elementų bus sudarytas masyvas
2) Masyvo elementams priskirti reikšmes
3) Suskaičiuoti visų elementų sumą
4) Suformuoti masyvą kurio elementai < už dešimtadalį sumos visų elementų
 
*/
 
#include 
using namespace std;
int main() {
//////////////////////////////////////////////////////////////////////////////////////
//// 1 ////
///////////
 
int i, user_input = 0; //Kintamasis i, – ciklui, user_input, – masyvo elementų skaičius
cout << "Masyvo elementu skaicius nuo 1 iki 10: " << flush; cin >> user_input;
if (user_input > 10 || user_input < 1) { //Tikriname user_input, jeigu nėra 10 > arba < 1, - klaida
cout << "Vedamas skaicius privalo buti nuo 1 iki 10!" << endl;
return 1;
}
double user_array[user_input]; //Sudarome masyva, kur user_input, - vartotojo įvestas skaičius
cout << "Viso elementu masyve: " << user_input << endl;
}

Dabar paspaudę F9 išvystumėte užrašą: „Masyvo elementu skaicius nuo 1 iki 10:bei savo įvestą skaičių žinutėje: „Viso elementu masyve: (skaičius)„Apžvelkime viską atidžiau. Pirmiausia apsirašome kintamuosius, reiktų atkreipti dėmesį į jog priešingai nei PHP čia jau būtina nurodyti kintamojo tipą, kitu atveju algoritmas nebus vykdomas ir bus pranešama apie klaidą. Vertėtų paminėti jog tokį patį aprašymą jau esate naudoję ir anksčiau, 9-toje klasėje programuodami FPS (Pascal`iu) bei tai jog norint aprašyti kintamajį jam nereikia „$„, – dolerio ženklo, kas yra būtina PHP. Išvedimui į ekraną naudojama f-ja: „cout << „Žinutė į ekraną“ << flush„. Su f-ja „cin“ nuskaitome vedamas reikšmes ir jas priskiriame kintamajam. Tiesa užbėgant įvykiams už akių, kitur prie f-jos „cout“ nebematysite „flush“ eilutės pabaigoje, ši f-ja neperkelia pointer`io į naują eilutę ir viskas tęsiama toje pačioje, – priešingai nei ateityje bus naudojama „endl“ f-ja. Toliau seka sąlyginis sakinys, kuriame tikriname ar vartotojo įvestas skaičius nėra daugiau už dešimt ar mažiau už vienetą. Natūraliai kiltų klausimas ar nevertėtų pirmiausia patikrinti ar iš vis vedamas skaičius, – (int) tipas bei ar iš vis tai skaitmuo, tačiau čia susiduriame su problema, – C++ neturi tokios f-jos, kaip tikrinti ar tai tipas (int), double ir t.t todėl reiktų ieškoti kitų alternatyvų ir apsirašinėti savaip.

Žingsnis: 2) Masyvo elementų reikšmės

/*
 
Užduotys:
 
1) Nustatyti iš kelių elementų bus sudarytas masyvas
 
2) Masyvo elementams priskirti reikšmes
 
3) Suskaičiuoti visų elementų sumą
 
4) Suformuoti masyvą kurio elementai &lt; už dešimtadalį sumos visų elementų
 
*/
 
#include
using namespace std;
int main() {
//////////////////////////////////////////////////////////////////////////////////////
//// 1 ////
///////////
 
int i, user_input = 0; //Kintamasis i, – ciklui, user_input, – masyvo elementų skaičius
cout &lt;&lt; "Masyvo elementu skaicius nuo 1 iki 10: " &lt;&lt; flush; cin &gt;&gt; user_input;
if (user_input &gt; 10 || user_input &lt; 1) { //Tikriname user_input, jeigu nėra 10 &gt; arba &lt; 1, - klaida
cout &lt;&lt; "Vedamas skaicius privalo buti nuo 1 iki 10!" &lt;&lt; endl;
return 1;
}
 
double user_array[user_input]; //Sudarome masyva, kur user_input, - vartotojo įvestas skaičius
cout &lt;&lt; "Viso elementu masyve: " &lt;&lt; user_input &lt;&lt; endl;
//////////////////////////////////////////////////////////////////////////////////////
//// 2 ////
///////////
for(i=0; i cout &lt;&lt; "Iveskite " &lt;&lt; i+1 &lt;&lt; " -aji elementa: "; cin &gt;&gt; user_array[i]; //Priskiriame masyvo elementams reikšmes
}
cout &lt;&lt; endl;
/*****************************************Debug**************************************/
cout &lt;&lt; endl;
cout &lt;&lt; "DEBUG 2 START" &lt;&lt; endl;
for(i=0; i cout &lt;&lt; "Masyvo Elementas[" &lt;&lt; i &lt;&lt; "], kurio reiksme yra: " &lt;&lt; user_array[i] &lt;&lt; endl;
}
cout &lt;&lt; "DEBUG 2 END" &lt;&lt; endl;
cout &lt;&lt; endl;
/************************************DebugEND****************************************/
}

Prirašę prie esamo kodo dar kelias eilutes galime vėl spausti F9. Šiame žingnyje naudojame for ciklą, kurį pasitelkus užpildome masyvą vartotojo įvedamomis reikšmėmis. Norėdami patikrinti ar teisinga linkme viską darome apsirašome dar keletą eilučių tarp komentarų „debug“ kuriose nurodome algoritmui išvesti į ekraną mūsų sudaryto masyvo user_array reikšmes.

Žingsnis: 3) Masyvo reikšmių suma

/*
 
Užduotys:
 
1) Nustatyti iš kelių elementų bus sudarytas masyvas
2) Masyvo elementams priskirti reikšmes
3) Suskaičiuoti visų elementų sumą
4) Suformuoti masyvą kurio elementai &lt; už dešimtadalį sumos visų elementų
 
*/
 
#include
using namespace std;
int main() {
//////////////////////////////////////////////////////////////////////////////////////
//// 1 ////
///////////
int i, user_input = 0; //Kintamasis i, – ciklui, user_input, – masyvo elementų skaičius
cout &lt;&lt; "Masyvo elementu skaicius nuo 1 iki 10: " &lt;&lt; flush; cin &gt;&gt; user_input;
if (user_input &gt; 10 || user_input &lt; 1) { //Tikriname user_input, jeigu nėra 10 &gt; arba &lt; 1, - klaida
cout &lt;&lt; "Vedamas skaicius privalo buti nuo 1 iki 10!" &lt;&lt; endl;
return 1;
}
double user_array[user_input]; //Sudarome masyva, kur user_input, - vartotojo įvestas skaičius
cout &lt;&lt; "Viso elementu masyve: " &lt;&lt; user_input &lt;&lt; endl;
//////////////////////////////////////////////////////////////////////////////////////
//// 2 ////
///////////
for(i=0; i cout &lt;&lt; "Iveskite " &lt;&lt; i+1 &lt;&lt; " -aji elementa: "; cin &gt;&gt; user_array[i]; //Priskiriame masyvo elementams reikšmes
}
cout &lt;&lt; endl;
/*****************************************Debug**************************************/
cout &lt;&lt; endl;
cout &lt;&lt; "DEBUG 2 START" &lt;&lt; endl;
for(i=0; i cout &lt;&lt; "Masyvo Elementas[" &lt;&lt; i &lt;&lt; "], kurio reiksme yra: " &lt;&lt; user_array[i] &lt;&lt; endl;}
cout &lt;&lt; "DEBUG 2 END" &lt;&lt; endl;
cout &lt;&lt; endl;
/*****************************************DebugEND***********************************/
//////////////////////////////////////////////////////////////////////////////////////
//// 3 ////
///////////
double sum = 0; //Elementų suma
for(i=0; i sum += user_array[i]; //Sumuojame visas reikšmes
}
cout &lt;&lt; "Visu elementu suma yra: " &lt;&lt; sum &lt;&lt; endl;
}

Šiame žingsnyje vėlgi naudojamės ciklu, – suskaičuojame masyvo reikšmių sumą bei išvedame šią į ekraną. Taip pat atkreipkime dėmesį, kad priešingai nei kuriant patį masyvą bei nurodant jo elementų skaičių kur buvo naudojamas int tipas čia jau tipas keičiasi į double kadangi pačios reikšmės galimos, kaip double, taigi suma turi išlikti irgi double tipo.

Žingnis: 4) Elementai kurie yra

mažesni už dešimtadalį sumos

/*
 
Užduotys:
1) Nustatyti iš kelių elementų bus sudarytas masyvas
2) Masyvo elementams priskirti reikšmes
3) Suskaičiuoti visų elementų sumą
4) Suformuoti masyvą kurio elementai &lt; už dešimtadalį sumos visų elementų
 
*/
#include
using namespace std;
int main() {
//////////////////////////////////////////////////////////////////////////////////////
////   1     ////
////////////////
    int i, user_input = 0;    //Kintamasis i, – ciklui, user_input, – masyvo elementų  skaičius
    cout &lt;&lt; "Masyvo elementu skaicius nuo 1 iki 10: " &lt;&lt; flush;
    cin &gt;&gt; user_input;
    if (user_input &gt; 10 || user_input &lt; 1) { //Tikriname user_input, jeigu nėra 10 &gt; arba &lt; 1, - klaida
    cout &lt;&lt; "Vedamas skaicius privalo buti nuo 1 iki 10!" &lt;&lt; endl;
    return 1;
    }
    double user_array[user_input];  //Sudarome masyva, kur user_input, - vartotojo įvestas skaičius
    cout &lt;&lt; "Viso elementu masyve: " &lt;&lt; user_input &lt;&lt; endl;
//////////////////////////////////////////////////////////////////////////////////////
////   2     ////
////////////////
    for(i=0; i&gt; user_array[i]; //Priskiriame masyvo elementams reikšmes
    }
    cout &lt;&lt; endl;
/*****************************************Debug**************************************/
    cout &lt;&lt; endl;
    cout &lt;&lt; "DEBUG 2 START" &lt;&lt; endl;
    for(i=0; i

Šiuo, paskutiniu žingsneliu pabaigėme rašyti algoritmą ir pasiekėme savo užsibrėžto tikslo. Plačiau komentuoti nebėra ką, nes čia naudojame įgytas žinias ansktesniuose žingsneliuose. Kaip matome PHP iš ties panaši savo sintakse į C++, tačiau turi begalę ir skirtumų iš kurių su keleta jau susidūrėte skaitydami ir šį straipsnį, kaip f-jų trūkumas, kas gali būti keblu ne vienam programuotojui kuris, kaip pradinę kalbą rinkosi PHP, griežtas kintamūjų aprašymas. Taip pat rekomenduoju: straipsnis.

Ačiū skaičiusiems, laukiu protingos kritikos atsižvelgiant į tai, kad tik šiandien susidomėjau C++ ir parašiau pirmą algoritmą paskelbtą šitame straipsnyje, šia kalba. 😉

Visą C++ kodą galite parsisiųsti iš čia: Nuoroda

Žymos: , ,

4 komentarai

Komentuoti: qutwala Atšaukti atsakymą

El. pašto adresas nebus skelbiamas.