Pamoka 1

Pirma programa su CLion

~30 min · 2 žingsniai · 1 / 6 pamokų
Ką pastatysi
Kodėl C ir CLion?

C — viena seniausių ir aiškiausių programavimo kalbų. Joje nėra nieko nereikalingo, todėl ji puikiai tinka mokytis struktūrinio programavimo — kaip iš trijų blokų (eilės tvarkos, pasirinkimo ir kartojimo) sudėlioti bet kokią programą.

Rašysim su CLion — patogiu IDE iš JetBrains. CLion tvarko projektus per CMake, todėl iš karto susipažinsi su tikru profesionaliu įrankiu.


1. Įsidiek CLion ir kompiliatorių

Atsisiųsk CLion iš oficialaus puslapio: https://www.jetbrains.com/clion/ (studentams nemokama).

CLion'ui reikia toolchain — kompiliatoriaus rinkinio:

  • Linux: sudo apt install build-essential (įdiegia GCC).
  • macOS: xcode-select --install.
  • Windows: CLion gali įdiegti MinGW pati, arba naudok WSL.

Pirmą kartą paleidus, CLion automatiškai suras toolchain. Patikrinti gali per Settings → Build, Execution, Deployment → Toolchains — turi matyti žalią varnelę.


2. Sukurk projektą

CLion pradžios lange spausk New Project.

  • Kairėje pasirink C Executable.
  • Location: vieta, kur saugosi projektą (pvz., StructuredC).
  • Language standard: C11.

Spausk Create. CLion sukurs du failus: CMakeLists.txt ir main.c. Žingsniai žemiau parodo, koks turi būti jų turinys.


3. Kas yra CMakeLists.txt?

CMakeLists.txt — tai projekto receptas. Jis pasako CMake, kaip surinkti programą: koks projekto pavadinimas, kokį C standartą naudoti ir kurie failai sudaro programą.

Eilutė add_executable(StructuredC main.c) reiškia: „sukurk vykdomąją programą StructuredC iš failo main.c". Vėliau, kai pridėsim daugiau failų, juos išvardysim būtent čia.


4. Paleisk programą

Viršuje dešinėje, šalia žalio ▶ mygtuko, pasirink StructuredC konfigūraciją ir spausk ▶ (arba Shift+F10).

Apačioje atsidarys Run langas su tekstu:

Hello, World!

Sveikinu — tavo CLion projektas veikia.


Eilės tvarka — pirmas blokas

Atkreipk dėmesį: main funkcija vykdoma iš viršaus į apačią, eilutė po eilutės. Tai eilės tvarkos principas — pats paprasčiausias struktūrinio programavimo blokas. Kiti du (pasirinkimas ir kartojimas) lauks kitose pamokose.


Trikčių sprendimas

„No toolchains found" — CLion nerado kompiliatoriaus. Įsidiek jį (1 žingsnis) ir patikrink Settings → Toolchains.

Žalias ▶ mygtukas pilkas — palauk, kol CLion baigs „CMake project loading" (matosi apačioje). Po to mygtukas suaktyvės.

„CMake Error" — patikrink, ar CMakeLists.txt turinys tiksliai sutampa su žingsniu (ypač project() ir add_executable() eilutės).


Apibendrinimas

Įsidiegei CLion, sukūrei CMake projektą, supratai CMakeLists.txt paskirtį ir paleidai pirmą programą. Pamatei main funkciją ir eilės tvarkos principą.

Kitoje pamokoje išmoksi saugoti duomenis kintamuosiuose ir bendrauti su naudotoju.

CMakeLists.txt create

Sukurk CMakeLists.txt

cmake_minimum_required(VERSION 3.20)
project(StructuredC C)

set(CMAKE_C_STANDARD 11)

add_executable(StructuredC main.c)

Sukurk (arba atidaryk) CMakeLists.txt projekto šaknyje ir įsitikink, kad jo turinys toks. CLion šį failą sugeneruoja kuriant projektą — tau tereikia jį patikrinti.

Ką šis failas daro:

  • cmake_minimum_required(VERSION 3.20) — reikalauja bent CMake 3.20 versijos.
  • project(StructuredC C) — projekto pavadinimas ir kalba (C).
  • set(CMAKE_C_STANDARD 11) — naudojam C11 standartą.
  • add_executable(StructuredC main.c) — sukuria vykdomąją programą iš main.c.

Svarbu: kai pridėsi naujų .c failų, juos reikės įrašyti į add_executable eilutę — kitaip CLion jų nesurinks.

main.c create

Sukurk main.c

#include <stdio.h>

int main(void) {
    printf("Hello, World!\n");
    return 0;
}

Atidaryk main.c ir įsitikink, kad jo turinys toks. Tai pirmoji tavo programa.

Ką šis kodas daro:

  • #include <stdio.h> — įtraukia standartinę įvesties/išvesties biblioteką, kad galėtum naudoti printf.
  • int main(void) — pagrindinė funkcija. Nuo jos prasideda kiekviena C programa.
  • printf("Hello, World!\n") — išspausdina tekstą; \n reiškia naują eilutę.
  • return 0; — pasako sistemai, kad programa baigėsi sėkmingai.

Svarbu: kiekviena programa privalo turėti būtent vieną main funkciją — tai įėjimo taškas.