12.09. (čas 1) Uvod u razlike između C i C#
Teorija
Kada učenici prvi put čuju da se C# dosta oslanja na jezik C, često pomisle da su to skoro isti jezici. Međutim, razlika je velika i pre svega se odnosi na način razmišljanja.
Jezik C se zasniva na proceduralnom programiranju. To znači da se program piše kao niz naredbi i funkcija koje se izvršavaju redom, jedna za drugom. Na primer, napišemo funkciju, damo joj podatke i ona nešto uradi. Program je, slikovito rečeno, kao recept za kolač: ide korak po korak, i svaki korak mora biti precizno ispisan.
Kada, na primer, u C-u napišemo nekoliko funkcija, program počinje od main() i dalje poziva druge funkcije.
Problem nastaje kada program postane veliki – mnogo funkcija i promenljivih otežava snalaženje.
Sa druge strane, C# je objektno orijentisan jezik. To znači da se program posmatra kao skup objekata koji imaju svoja svojstva i ponašanja. Objekti se prave na osnovu klasa (nacrta).
Slikovito prikazano: „Umesto da sve gledamo kao niz koraka, hajde da zamislimo da u programu postoje objekti — stvari koje imaju svoje osobine i umeju da rade neke radnje.“ Tako svaka stvar u programu može da ima svoje podatke (osobine) i svoje funkcije (metode).
Primer:
-
u C jeziku pišemo
printf("Zdravo");i to je samo funkcija koja ispisuje tekst. -
u C# pišemo
Console.WriteLine("Zdravo");, što znači „pozovi objekatConsolei njegovu metoduWriteLine“.
Dakle, u C# jeziku ništa nije „samo od sebe“ – sve je deo neke klase ili objekta.
Kažemo da je C# moderniji i pogodniji za velike projekte, dok je C i dalje dobar kada nam treba brz i mali program.
Vežba (za diskusiju)
Navesti bar jedan primer iz svakodnevnog života koji može da se posmatra proceduralno (kao skup koraka) i jedan primer objektno (kao objekat sa osobinama i radnjama).
Praktični primer
using System;
class Program
{
static void Main()
{
Console.WriteLine("Ovo je moj prvi program u C# jeziku!");
}
}
Objašnjenje:
-
Klasa
Programje obavezna jer C# sve stavlja u klase. -
Main()metoda je ulazna tačka programa. -
Console.WriteLineje metoda klaseConsolekoja ispisuje tekst.
Vežba za učenike
Zadatak 1: Napisati program u C# koji će ispisati vaše ime i omiljeni predmet u školi.
Rešenje:
using System;
class Program
{
static void Main()
{
Console.WriteLine("Moje ime je Ana.");
Console.WriteLine("Moj omiljeni predmet je Matematika.");
}
}
Pitanja za proveru znanja
-
Koja je osnovna razlika između proceduralnog i objektno-orijentisanog programiranja?
-
Gde se u C# jeziku mora nalaziti kod?
-
Kako se u C# jeziku ispisuje tekst na ekranu?