c programski jezik. C programski jezik

praktični kurs

Šta je to?

Svojevremeno (1991-1992) birajući jezik Xi kao osnovnog programskog jezika za nastavu matematike, autor se suočio sa problemom nedostatka normalnih udžbenika koji bi se mogli preporučiti školarcima. To ga je natjeralo da napiše svoje bilješke s predavanja, koje bi se mogle nazvati „Praktični kurs programiranja na Xi» - sadrži informacije koje su autoru zaista bile potrebne u praksi. Dugogodišnje iskustvo u nastavi pokazalo je da je sažetak zaista tražen i da ga naširoko koriste i školarci i maturanti.

Besplatni i otvoreni kod Dev-C++ omotač, koji uključuje GCC kompajler, koristi se kao razvojno okruženje.

Autor će biti zahvalan na povratnim informacijama i konstruktivnoj kritici u vezi sa sadržajem i dizajnom ovih materijala. Ukoliko primijetite grešku ili imate prijedloge, komentare, pritužbe, zahtjeve i izjave, pišite na .

Ugovor o licenci

  1. 1) objavljivanje materijala u bilo kom obliku, uključujući objavljivanje materijala na drugim internet stranicama;
  2. 2) distribucija nekompletnih ili izmenjenih materijala;
  3. 3) uključivanje materijala u zbirke na bilo kom mediju;
  4. 4) sticanje komercijalne koristi od prodaje ili drugog korišćenja materijala.

Preuzimanje materijala znači da ste prihvatili uslove ovog ugovora o licenci.

Skinuti

Sažetak se distribuira slobodno u formatu PDF. Za gledanje je potreban besplatni Acrobat Reader. Plan kursa je podijeljen u 4 dijela:

  1. Uvod u C programiranje (860 Kb) 29.03.2014
    Učenje osnovnih konstrukcija jezika i tehnika pisanja programa.
  2. Pohrana i obrada podataka (792 Kb) 21.11.2013
    C jezik: nizovi, matrice, strukture, znakovni nizovi, strukture, rekurzija.
  3. Razvoj programa na jeziku C (937 Kb) 01.03.2014
    Tehnike dizajniranja programa, strukturirano programiranje, cjelobrojni algoritmi, numeričke metode, modeliranje.
  4. Dinamičke strukture podataka u C (666 Kb) 11.06.2009
    Liste, gomile, stabla, grafovi.

Prezentacije

Nastavnici i učenici mogu imati koristi od prezentacija zasnovanih na ovom pregledu. Mogu se preuzeti sa stranice Prezentacije.

Metodologija

Osnovni zadatak je upoznavanje učenika sa osnovnim konstrukcijama jezika Xi: petlje, uvjetni iskazi, procedure. Proučavanje sekcija vezanih za grafiku i animaciju je vrlo uspješno.

8. razred

Program uključuje sljedeće dijelove (dio sažetka je naveden u zagradama): Nizovi (II), Rad sa fajlovima (II), Nizovi znakova (II), Rotirajući objekti (III), Modeliranje (III). Posebna pažnja posvećen je proučavanju algoritama za rad sa nizovima, uključujući pretraživanje, sortiranje itd. Dat je koncept efikasnosti računskih metoda.

9. razred

Fokus je na studiranju metode programiranja na jeziku Xi. Studenti rade individualni zadatak, tokom kojeg uče da grade grafove na ekranu, upoznaju se sa transformacijama koordinatnih sistema, proučavaju metode rešavanja jednačina, upoznaju se sa numeričkim metodama, uče pravilno formatiranje programa (odeljci 1-2. dio III). Jedan od zadataka je posvećen upotrebi Monte Carlo metoda za izračunavanje površine kompleksne figure. Iz novih sekcija se također proučavaju Matrice (II), Nizovi znakovnih nizova (II). Koncept je predstavljen pokazivači i proučavati najjednostavnije operacije sa njima.

10. razred

učenje jezika Xi ide na ozbiljniji nivo. Glavne teme - Upravljanje memorijom (II), Rekurzija (II), Strukture (II). Planirano je proučavanje Pascal jezika kao drugog programskog jezika. Od ovog trenutka algoritmi u teorijskoj nastavi se pišu naizmjenično na dva jezika.

11. razred

Ne proučavaju se toliko karakteristike jezika koliko algoritmi. Glavni odjeljci − Numeričke metode (III), Modeliranje (III), Dinamičke strukture podataka (IV).

Shvatite kako funkcioniraju ciklusi. Petlje su jedan od najvažnijih aspekata programiranja, jer vam omogućavaju da više puta izvodite pojedinačne blokove koda dok se ne ispuni određeni uvjet. Ovo olakšava programsko pisanje radnji koje se ponavljaju i štedi vas od potrebe da pišete nove uslove svaki put kada želite da program nešto uradi.

  • Postoje tri glavne vrste petlji: FOR, WHILE i DO...WHILE.
  • Koristite FOR petlju. Ovo je najpopularniji i najkorisniji ciklus. Nastavlja izvršavati navedenu funkciju sve dok se ne ispune uvjeti postavljeni u FOR. FOR petlje zahtijevaju da se navedu tri uvjeta: varijabla koja se inicijalizira, uvjet koji treba ispuniti i kako se vrijednost varijable ažurira. Ako vam nisu potrebna sva tri ova uslova, potrebno je da ostavite razmak sa tačkom i zarezom na njihovom mestu, u kom slučaju će petlja biti večna.

    #include int main() (int y; for (y = 0; y< 15 ; y ++ ){ printf ( "%d \n " , y ); } getchar (); }

    • U gornjem programu, početna vrijednost varijable y je nula, a petlja se nastavlja sve dok vrijednost varijable ostane manja od 15. Svaki put kada se prikaže nova vrijednost y, ona se povećava za jedan i petlja ponavlja. Čim varijabla y bude jednaka 15, petlja će se završiti.
  • Koristite WHILE petlju. WHILE petlje lakše nego FOR petlje. Oni specificiraju samo jedan uslov i petlja se izvodi sve dok je ovaj uslov ispunjen. Ovdje ne morate inicijalizirati ili ažurirati varijablu, ali to možete učiniti u tijelu same petlje.

    #include int glavni () ( int y ; dok ( y<= 15 ){ printf ( "%d \n " , y ); y ++ ; } getchar (); }

    • Naredba y++ dodaje jedan vrijednosti varijable y svaki put kada se petlja izvršava. Čim varijabla y postane jednaka 16 (imajte na umu da se petlja mora izvršiti sve dok varijabla manje ili jednako 15), ciklus se zaustavlja.
  • Ciklus primjene DO...WHILE. Ova petlja je vrlo korisna u slučajevima kada operacije petlje moraju biti izvedene barem jednom. U petljama FOR i WHILE uvjet se provjerava na samom početku, odnosno ako se dobije lažan rezultat, operacija određena uvjetom se preskače i ne izvodi. DO...WHILE petlja provjerava uslove na samom kraju, što vam omogućava da izvršite radnje petlje barem jednom.

    #include int main () ( int y ; y = 5 ; do ( printf ("Petlja je pokrenuta! \n " ); ) while ( y != 5 ); getchar (); )

    • Ova petlja će prikazati željenu poruku, iako je test uvjeta lažan. Varijabla y je postavljena na pet, a petlja bi se trebala ponoviti u slučaju kada varijabla nije jednaka pet, pa petlja izlazi. Poruka se prikazuje na ekranu jednom, pošto se stanje provjerava tek na samom kraju.
    • WHILE klauzula u DO...WHILE petlji mora završiti tačkom i zarezom. Ovo je jedina petlja koja zahtijeva tačku i zarez na kraju.
  • C je prilično "drevni" programski jezik, formiran je ranih 70-ih. Uprkos tome, C je živ jezik u smislu da se danas aktivno koristi. Zamišljen je, korišten i koristi se za pisanje bitnih dijelova programskog koda operativnih sistema sličnih Unixu. Na njemu su također napisani uslužni programi, kompajleri i rjeđe aplikativni programi. Stoga se C naziva sistemskim programskim jezikom.

    Njegova opstojnost može se objasniti činjenicom da su principi rada operativnih sistema relativno univerzalni, nisu podložni napretku i raznolikosti koji se može uočiti u okruženju desktop i mobilnih softvera, web aplikacija. C nije jezik dovoljno visokog nivoa, bliži je računarskoj arhitekturi. Kao rezultat toga, C programi su kompaktni i brzi.

    C ne podržava objektno orijentirano programiranje. OOP podrška je implementirana u C++. Iako je potonji evoluirao iz jezika C, on nije njegov "nastavak", već poseban jezik koji se može naučiti bez poznavanja C. Međutim, učenje C je korisno prije upoznavanja njegovog "naprednog malog brata", jer sintaksa jezika je slična, C ne preopterećuje mozak programera početnika supermoćima i uči ih da razumiju suštinu onoga što se događa.

    Da li je C dobar za prvi uvod u programiranje? Ako ne studirate na fakultetu u specijalnosti vezanoj za IT, onda ne. C podrazumijeva razumijevanje organizacije i principa rada hardvera, posebno memorije. Mnogo toga se radi sa pokazivačima, oni igraju ključnu ulogu; ova tema je prilično teška za razumjeti i obično se ne izučava u školi.

    Naravno, sa C-om možete naučiti osnove programiranja bez učenja o pokazivačima. Međutim, osoba će misliti da zna C, znajući malo o njemu per se. Jezik C kreirali su profesionalni programeri koji su upoznati sa hardverom za pisanje UNIX operativnog sistema. Nije zamišljen kao jezik za podučavanje početnika.

    Okruženje i kompajleri za C programiranje

    Ako koristite neku od GNU/Linux distribucija, bilo koji uređivač teksta sa isticanjem sintakse će vam pomoći, a takođe će vam trebati GCC i terminal.

    Postoje uređivači za programere koji uključuju razne dodatke, uključujući terminal, pretraživanje direktorija i dr. Na primjer, Geany ili Atom.

    C je kompajlirani programski jezik. GNU/Linux koristi GCC da dobije izvršne datoteke, skup kompajlera, uključujući kompajler za C. Da biste dobili izvršnu datoteku iz izvorne datoteke (obično takve datoteke imaju ekstenziju *.c), morate pokrenuti naredbu u terminal koji izgleda otprilike ovako:

    gcc -o zdravo hello.c

    Gdje je gcc naredba koja pokreće program koji izvodi kompilaciju i druge radnje; -o je ključ koji označava da ručno navodimo ime izvršne datoteke; hello je naziv rezultirajuće izvršne datoteke; hello.c je naziv datoteke izvornog koda. Ime izvršne datoteke može se izostaviti:

    gcc hello.c

    U ovom slučaju, izvršni fajl će imati podrazumevano ime a.out.

    Windows ima svoj skup kompajlera - MinGW. Može se koristiti samostalno, ali dolazi sa jednostavnim razvojnim okruženjem Dev-C++, koje može biti dobar izbor za učenje programiranja u C i C++.

    Prilikom spremanja odaberite tip datoteke "C izvorni fajlovi (*.c)". Prevođenje i pokretanje programa vrši se pritiskom na tipku F9. Nakon izvršenja, program se odmah zatvara i rezultat se ne vidi. Da se to ne dogodi, pišu se dva dodatna reda: #include i getch(). (Možda ovo nije relevantno za noviju verziju Dev-C++.)

    "Hello World" u GNU/Linuxu:

    #include \n") ; }

    "Hello World" na Windows-u:

    #include #include int main() ( printf("Halo World \n") ; getch(); )

    S druge strane, postoji veliki broj krosplatformskih razvojnih okruženja. Na primjer, Eclipse + CDT modul, KDevelop, CLion. Potonji se plaća, proizvodi JetBrains, lider u razvoju IDE-a, ali ima probni period od 30 dana, što može biti dovoljno za učenje. CLion je praktičniji od drugih IDE-ova.

    "Halo World" u C

    Koristeći najjednostavniji program kao primjer, odmah primjećujemo neke karakteristike programskog jezika C.

    U jeziku C, funkcija main() preuzima ulogu glavne grane programa. Ova funkcija mora uvijek biti prisutna u kompletnom C programu i od nje počinje izvršavanje programa. Međutim, varijable deklarirane unutar njega nisu globalne, njihov opseg se proteže samo na main(). Međutim, u programskom jeziku C, skoro sav programski kod je sadržan u funkciji, a funkcija main() je glavna i obavezna funkcija.

    Podrazumevano, funkcija main() vraća int tip podataka, tako da ne morate specificirati tip podataka koji se vraća. Međutim, u ovom slučaju kompajler izdaje upozorenje.

    Funkcija printf() služi za izlaz podataka. Njegova svrha je slična proceduri write() u Pascalu i funkciji print() u Pythonu. Funkcija printf() ne prelazi na novi red nakon izlaza. Stoga se za skok koristi poseban znak, koji je označen kombinacijom \n. Potpuni C izrazi su odvojeni tačkom i zarezom.

    U C, I/O funkcije nisu dio jezika. Na primjer, u Pythonu ne moramo uvoziti nijedan modul da bismo koristili funkcije print() i input(). U C-u ne možemo samo pozvati funkciju printf(), jer jednostavno ne postoji u samom C-u. Ova funkcija, kao i niz drugih, može se uključiti pomoću zaglavlja stdio.h. U tu svrhu, na početku programa, red #include . Include se sa engleskog prevodi kao "uključiti", a stdio je skraćenica za "standardni ulaz-izlaz (ulaz-izlaz)".

    Datoteke zaglavlja (završavaju sa *.h) obično sadrže deklaracije određenih funkcija. Deklaracija je jednostavno opis funkcije: koje parametre uzima i šta vraća. Sam kod funkcije (definicija) nije u zaglavlju, već u bibliotekama (drugim datotekama) koje su možda već kompajlirane i smještene u sistemskim direktorijima. Prije kompajliranja programa pokreće se predprocesor C. Između ostalog, uključuje sadržaj zaglavlja navedenih u programskoj datoteci na početku programske datoteke.

    Praktičan rad

    Komentirajte prvi red HelloWorld programskog koda. Pokušajte kompajlirati program. Jeste li uspjeli nabaviti izvršni fajl? Koje je upozorenje izdao kompajler?

    1 // - komentar u jednom redu u jeziku C; /* … */ - višelinijski komentar u C jeziku.

    Osnove programiranja
    Osnove programiranja, osnovni pojmovi i pojmovi

    Video kurs će polaznike upoznati sa osnovama programiranja, osnovnim pojmovima i konceptima. Naučit će vas kako razviti algoritme i dati pravo iskustvo u kreiranju web proizvoda. Lekcije uključuju pregled aktuelnih programskih jezika i područja, pomažu učenicima da odaberu najzanimljivije za sebe, te pružaju materijale i upute za daljnji profesionalni razvoj.

    Lekcija 3

    Izbor programskog jezika. Priprema pretraživača. Program "Zdravo, svet!".

    Lekcija 4

    Instaliranje prikladnog uređivača koda. Uvod u varijable. Jednostavan kalkulator.

    Lekcija 5

    Tipovi podataka. Operacije s različitim vrstama podataka. Konverzija tipa podataka.

    Lekcija 6

    Algoritamsko razmišljanje. Vizuelni dijagrami toka.

    Lekcija 7

    Izbor opcija u programu. Operator podružnice if. Igra zagonetki.

    Lekcija 8

    Složeni uslovi selekcije. Logički AND, OR. Igra Angry Birds.

    Lekcija 9

    do i while petlje. Igranje ruskog ruleta.

    Lekcija 10

    za petlju. Finansijski kalkulator.

    Lekcija 11

    Veliki skupovi podataka i nizovi. Rulet igra.

    Lekcija 12

    Funkcije. Priprema za pisanje igre "Black Jack (21)".

    Lekcija 13 Dio 1

    Pisanje kompletne igre. Osnova je podjela karata i bodovanje.

    Lekcija 14 Dio 2

    Završetak pisanja igre. Određivanje rezultata i pobjednika.

    Lekcija 15

    Pregled glavnih pravaca u programiranju. Kako odabrati programski jezik? Šta dalje studirati?

    Uvod u Git
    Git Basics

    Tokom 13 videa, upoznaćemo se sa osnovama Git sistema kontrole verzija. Hajde da saznamo zašto je to važno u modernom razvoju i kolaborativnom programiranju. Hajde da se upoznamo sa osnovnim konceptima Gita: spremišta, urezivanja, grane i oznake. Naučit ćemo osnovne operacije: kreiranje i kloniranje spremišta, spajanje grana, ispitivanje historije promjena i još mnogo toga. Hajde da vidimo kako predati domaći zadatak koristeći Git. Ovo je osnovni kurs, nakon kojeg možete početi učiti bilo koji programski jezik. Osim toga, bićete spremni za intervju, gdje je obično nekoliko pitanja o sistemu kontrole verzija.

    Lekcija 1: Uvod u sisteme kontrole verzija

    Šta je sistem kontrole verzija?
    Vrste sistema kontrole verzija
    Git i njegove prednosti
    Dokumentacija

    Lekcija 2

    Šta je komandna linija?
    Zašto je komandna linija važna?
    Kako otvoriti komandnu liniju?
    Korisne komande

    Lekcija 3

    Uvod u klijent konzole
    git setup
    Inicijalizacija spremišta
    Kloniranje spremišta
    Grafički git klijenti

    Lekcija 4

    Indeksiranje
    Publishing Changes
    Obvezuje
    Otkaži indeksiranje
    Trenutni status

    Lekcija 5

    Istorija promjena
    Vraćanje kroz istoriju projekta
    Autori izmjena: git blame
    Ignorisanje .gitignore fajlova
    Stranica gitignore.io
    Čuvajte foldere.čuvajte

    Lekcija 6

    Upravljanje podružnicama
    Kreiranje i brisanje grana
    Prebacivanje između grana
    Metode sukoba i njihovo rješavanje
    git merge

    Lekcija 7

    Git hosting (GitHub, GitLab, Bitbacket)
    Kreiranje vlastitog bare-git repozitorija
    Registracija na GitHub-u
    Objavljivanje promjena u udaljenom spremištu

    Lekcija 8

    Imena spremišta
    Više spremišta u jednom projektu
    .git/config
    Upravljanje granama na udaljenom spremištu

    Lekcija 9

    Metode verzioniranja
    Oznake i njihov odnos sa urezivanja
    Dodavanje oznake
    Brisanje oznake
    Upravljanje oznakom na udaljenom spremištu

    Lekcija 10

    Spajamo promjene. git merge
    Premeštamo grane. git rebase
    Prenosimo obaveze. git cherry pick
    Spojite urezivanje u jedno. git squash
    Kuke
    Aliasi

    Lekcija 11

    Kako se koristi i zašto?
    Testni ciklusi
    Moguće plavo/zeleno
    Oslobodite grane
    Hitne ispravke

    Lekcija 12

    SSH protokol
    Zašto se koristi?
    Kreiranje ključeva
    Prosljeđivanje
    SSH agent
    Kopiranje datoteka preko SSH-a
    Windows: Git za Windows
    Korištenje SSH-a sa Gitom

    Lekcija 13

    Osnove baze podataka. 20 lekcija.
    Dizajn baze podataka i SQL upiti

    Baze podataka (DB) su sistemi za skladištenje i obradu podataka kojima se pristupa pomoću SQL-a (Structured Query Language). Svaka moderna web stranica, igra ili desktop aplikacija treba pohranu podataka. Trenutno postoji mnogo različitih sistema za upravljanje bazama podataka (DBMS), a najpopularniji je MySQL. “Osnove baze podataka” je 20 intenzivnih video lekcija (svaka po 10 minuta), na kojima ćemo zajedno proći kroz sve faze dizajna baze podataka na primjeru online trgovine koja koristi SQL upitni jezik. Nakon ovog kursa moći ćete da koristite različite baze podataka kao što su MS SQL i Postgre Sql, jer je sintaksa SQL jezika za njih skoro ista.

    Lekcija 1

    Koja je razlika između baze podataka i DBMS-a? koje se baze podataka nazivaju relacionim; pregled modernih DBMS.

    Lekcija 2

    Instaliranje MySql DBMS i Mysql Workbench grafičke aplikacije.

    Lekcija 3

    Dizajn podataka u Excelu; normalni oblici; primarni ključ.

    Lekcija 4

    Kreiranje tabela u MySql Workbench GUI; CREATE command; tipovi podataka; rad u konzoli.

    Lekcija 5

    Popunjavanje tablica podacima pomoću grafičkog sučelja; INSERT command; AUTO INCREMENT.

    Lekcija 7

    Dohvaćanje i filtriranje podataka korištenjem DISTINCT i LIMIT SQL naredbi; sortiranje naredbom ORDER BY.

    Lekcija 9

    Koncept konzistentnosti ili konzistentnosti podataka.

    Lekcija 10

    Koncept stranog ključa i ograničenja na vrijednosti stupaca; STRANA KLJUČNA OGRANIČENJA.

    Lekcija 11

    Dodavanje korpe za kupovinu u bazu podataka online prodavnice.

    Lekcija 12

    Korištenje složenog primarnog ključa pri dizajniranju tablice „više prema mnogo“.

    Lekcija 13

    Dobivanje podataka iz nekoliko međusobno povezanih tabela; nedosljednost pristupa koji koristi višestruki SELECT.

    Lekcija 14

    Spajanje podataka iz više tablica korištenjem izraza INNER JOIN.

    Lekcija 15

    Spajanje podataka iz više tablica korištenjem naredbi LEFT JOIN i RIGHT JOIN.

    Lekcija 16

    Kombiniranje rezultata višestrukih SQL upita korištenjem UNION operatora.

    Lekcija 17

    Funkcije agregiranja COUNT, SUM, MIN, MAX.

    Lekcija 18

    Grupiranje odabranog skupa redova pomoću GROUP BY klauzule.

    Lekcija 19

    Filtriranje u GROUP BY koristeći HAVING; povećanje brzine izvršenja upita pomoću indeksa.

    Lekcija 20

    Koncept transakcije; TRANSACTION izjava; ACID zahtjevi za transakcijski sistem.

    linux. Radna stanica. 1 mjesec.
    Praksa administriranja Linux OS-a na računaru

    GNU/Linux je popularan operativni sistem koji vodi na tržištu serverskog hardvera, a koristi se i kao ugrađeni operativni sistem u industrijskoj i potrošačkoj opremi, pa čak i kao desktop softver. GNU komponente se takođe koriste u MAC OS X, a GNU/Linux je uticao i na Windows. Poznavanje Linuxa je neophodno za sistem administratora, testera, web programera, stručnjaka za sigurnost informacija, bilo kojeg programera koji tvrdi da je srednji i viši. Ovaj kurs pokriva osnove rada u Linuxu: osnove rada u Linux ljusci, upravljanje korisnicima i dozvolama za fajlove, regularne izraze i skriptovanje u bash-u, rad sa procesima i upravljanje pokretanjem i uslugama u Linuxu. Razumijevanje osnova programiranja, brojevnih sistema (binarni, oktalni, heksadecimalni) i Booleove logike

    Lekcija 1: Početak rada i instaliranje

    Uvod u GNU/Linux. Šta je GNU, Linux i UNIX. Virtuelizacija. Instaliranje Ubuntua u virtuelnu mašinu. Osnovne Linux karakteristike

    Lekcija 2. Rad u grafičkom i konzolnom modu

    Konzola i grafički način rada u Linuxu; komande konzole; kreiranje i uređivanje fajlova.

    Lekcija 3

    Korisnici i prava u Linuxu; rad sa fajlovima; obavljati operacije u ime superkorisnika.

    Lekcija 4

    Regularni izrazi. Traži. sed.

    Lekcija 5

    Sintaksa. Timovi. Varijable. kontrolne strukture. Nekoliko jednostavnih skripti. Planirajte zadatke pomoću cron

    Lekcija 6

    Mrežne mogućnosti Linuxa. Web usluge. nginx, apache2. Hajde da šifrujemo. netfilter mrežni filter i iptables uslužni program.

    Lekcija 7: Uvod u Git

    Uvod u Git.

    Lekcija 8: SOA i uvod u Docker

    Monolitna i SOA arhitektura aplikacije. Uvod u Docker

    Lekcija 1

    Upoznavanje sa jezikom, kratka istorija. Pregled softvera. Osnovni pojmovi jezika. Varijable i tipovi podataka

    Lekcija 2

    Uslovi. Bulova algebra i binarno računanje. ciklusa. Kontrola petlje i izjava switch

    Lekcija 3

    Funkcije. Pointers. Nizovi. Višedimenzionalni nizovi

    Lekcija 4

    Strings. Strukture podataka. Sistem podataka. Dinamička alokacija memorije

    Kurs je namenjen kako početnicima tako i onima koji već poznaju druge programske jezike ili jezik C++, ali na nedovoljnom nivou, kao i onima kojima nedostaje jasno razumevanje organizacije skladištenja i obrade podataka u kompajlirani kompjuterski programi. C++ je jezik opšte namene i, kombinujući svojstva jezika visokog i niskog nivoa, omogućava vam da rešite najširi spektar problema koji se javljaju u programiranju. Kurs u potpunosti upoznaje slušaoca sa mogućnostima jezika C++ koje su u njemu ugrađene za realizaciju ovih ciljeva.

    Lekcija 1. Prevedeni jezik. Faze prevođenja i montaže programa

    1. Zašto je C++ neophodan?
    2. Razvojni alati u C++.
    3. Kako radi kompajlirani jezik.
    4. Faze emitovanja programa.
    5. Kako radi skripta za izgradnju.
    6. Analiza domaćeg zadatka.

    Lekcija 2. Imena u programu. Podaci, tipovi, funkcije i varijable

    1. Imena, tipovi i varijable.
    2. Reprezentacija varijabli i brojeva.
    3. Izračunljivost.
    4. Funkcija. Koncept i značenje.
    5. Funkcije i njihovi argumenti.
    6. Jednostavni nizovi.
    7. Analiza domaćeg zadatka.

    Lekcija 3

    1. Blokovi. Koncept algoritma Namespace.
    2. Uslovne operacije.
    3. Konstantan višestruki izbor.
    4. Ciklični uvjetni rad dok.
    5. Kontrola iteracije (ponovljivost ciklusa).
    6. ciklus brojanja.
    7. Izuzetne situacije.
    8. Analiza domaćeg zadatka.

    Lekcija 4

    1. Izrada skeleta projekta za Qt Creator.
    2. Dobijamo pristup fajlu sa podacima.
    3. Format hack: dešifriranje načina na koji se podaci pohranjuju.
    4. Dekodiranje PNM/PGM formata.
    5. Bočne transformacije podataka: čitanje dimenzija slike.
    6. Konstrukcija izlaznog histograma i izlaza podataka.
    7. Analiza dizajna programa, sastavljena u proceduralnom stilu.

    Kurs za programere početnike koji su upoznati sa osnovama C ili C++ jezika. Pomoći će razumjeti osnovne strukture podataka i osnovne algoritme. Daje opšte razumevanje procesa unutar programa i osnovne veštine u izgradnji algoritama. Kurs nije vezan za određeni programski jezik, i, uprkos činjenici da je sve objašnjeno u C-u, znanje se može primijeniti u bilo kojem imperativnom programskom jeziku.

    Lekcija 1

    Lekcija 2

    Lekcija 4

    Lekcija 5

    Lekcija 6

    Lekcija 7

    Lekcija 8

    Lekcija 9

    Lekcija 10

    Lekcija 11

    Objektno orijentirano programiranje. 1 mjesec.
    Uranjanje u OOP

    Kurs upoznaje studente sa najboljim C++ tehnikama programiranja. Biće pokrivene glavne odredbe efektivne upotrebe objektno orijentisanog programiranja za pisanje programa, kao i tipični aspekti rada stream I/O biblioteke. Tokom obuke polaznici će napisati punopravnu igru ​​koristeći stečeno znanje. Kurs je namenjen C++ programerima početnicima koji su prošli nivo 1 – proceduralno programiranje.

    Lekcija 1

    Izvoz imena. Preopterećenje imena funkcije (globalno).
    Pohranjivanje funkcija u stanju. Dostupnost imenskog prostora stanja. Ključne riječi javno i privatno. Uvodimo pojam objekta. Uvodimo koncept klase. Početno pohranjeno stanje.

    Lekcija 2

    Kontrola pristupa osnovne klase. Konstruktori i nasljeđivanje. Kreiranje hijerarhije klasa na više nivoa. Pokazivači na izvedene klase. Jednostavno i višestruko nasljeđivanje.

    Lekcija 3

    Osnove virtualnih funkcija. Čiste virtualne funkcije i apstraktne klase. Rano i kasno uvezivanje. Funkcije i metode preopterećenja. Parametarski polimorfizam

    Lekcija 4

    Sastav, agregacija, asocijacija, zavisnost. kontejnerske klase. Operatori za lijevanje tipa. Primjeri programa u C++

    Lekcija 5

    Preopterećenje operatera. Predlošci funkcija i klasa. Eksplicitna i djelomična specijalizacija šablona. Primjeri jednostavnih programa

    Lekcija 6

    Hijerarhija klasa toka. I/O operacije za standardne tipove. Organizacija ulaza-izlaza za korisnički definirane tipove. Rad sa datotekama i baferima u memoriji. Izlazni formateri, manipulatori

    Lekcija 7. Podrška za modularnost. Pisanje igre Blackjack

    kompilacijske jedinice. Razdvajanje na zaglavlje i datoteke implementacije. Direktive preprocesora, makroi i uslovna kompilacija. Pisanje igre Blackjack

    Lekcija 8

    Pobuđivanje i obrada situacija. Savijanje steka, izvođenje konstruktora i destruktora. Podrška za hijerarhiju klasa.
    Standardne klase izuzetaka. Primjeri programa koji koriste izuzetke

    Kurs za kontinuiranu edukaciju u C++ programiranju, posvećen upravljanju memorijom i radu sa podacima na niskom nivou. Daje ideju o principima upravljanja memorijom u C++ programu, organizaciji skladištenja podataka, adresiranju funkcija. Poseban dio kursa govori o sistemu tipa C++ i konverzijama između reprezentacija podataka. Pored toga, ukratko su prikazane mogućnosti preprocesiranja C++-a, sa mogućnošću generisanja izvornog koda tokom prevođenja.

    Lekcija 1

    Lekcija 2 Tip sistem

    Lekcija 3. Prethodna obrada. Uslovna kompilacija

    Razvoj programa sa grafičkim interfejsom u C++. 1 mjesec.
    Qt Framework

    Lekcija 1. Qt Creator: Osnove

    Šta je Qt? Kratak pregled funkcija (pomoć, qtdemo, lingvist, uic, itd.). Instaliranje QT biblioteke i razvojnog okruženja. Podešavanje Qt Creator-a za rad (odabir kompajlera, debagera, direktorijuma, itd.). Kreiranje i pokretanje prve aplikacije (Hello world!). Widgeti. Različiti tipovi polja za izlaz teksta. Dugmad i indikatori.
    Rukovanje signalima iz widgeta.

    Lekcija 2. Modularnost u Qt

    Osnovni moduli Qt. Hijerarhija klasa. Princip modularnosti. Razdvajanje motora i interfejsa. Koncept "model - pogled". Lista, stablo, tabela i metode za njihov izlaz. Zaštita izlaznih polja. Dokumentacija za Qt module i klase. QMake i sistemi za izgradnju projekta. Sistem za kompajliranje i povezivanje modules.pro fajla

    Lekcija 3. Rad sa podacima u Qt.

    kontejnerske klase. Iteratori. Sekvencijalni kontejneri. Asocijativni kontejneri. Rad sa žicama. Čitanje, prikazivanje i čuvanje slika. Rad sa fajlovima i direktorijumima. I/O tokovi. Osnovne metode za otvaranje datoteke QFile, QFileDialog. Programski resursi.

    Lekcija 4. Interakcija objekata u Qt

    Qt objektni model. Upravljanje memorijom. Hijerarhija objekata. Signali i slotovi. Povezivanje i odvajanje objekata. MOC je kompajler meta-objekata. Princip petlje događaja. Upravljanje događajima. Događaji miša i tastature. Filteri događaja. Podrška za različite jezike. Lokalizacija programa. Dinamička promjena jezika (QLinguist). Pozivanje komandne linije iz programa

    Lekcija 5

    QWidget klasa. Vrste vidžeta. Hijerarhija widgeta. Povezivanje OpenGl i drugih izlaznih biblioteka trećih strana. Dizajniranje formi u Qt Designeru. Korištenje obrazaca u projektima. Izgled widgeta. Politika promjene veličine. Povezivanje signala na utore. ulazni fokus. Stilski listovi. Paleta boja. Kreirajte vlastite widgete.

    Lekcija 6

    Interfejs za jedan i više dokumenata. Ekrani za djecu i roditelje. Podklase (QDialog i ets). Glavni prozor. Trake sa alatkama. Status bar. Kreiranje menija. Padajući meni. Kontekstni meni. dijaloški okviri. Otvaranje, čuvanje i štampanje dokumenata.

    Lekcija 7

    Kontekst crtanja QPainter-a. Koordinatni sistemi. Tačka, linija, pravougaonik, poligon. Perje, četke. modeli u boji. gradijenti. Graphics View Framework. Scena i performans. Tekst sa elementima oblikovanja. Fontovi. Rad sa html markupom Iznesite i sačuvajte. webengine. Implementacija jednostavnog web pretraživača.

    Lekcija 8

    Datum i vrijeme. događaji tajmera. Procesi. Pokreni, trči i zaustavi. Threads. Multithreading. Razmjena signala, događaja. Sinhronizacija. Muteksi

    Lekcija 9

    QML jezik. Elementi korisničkog interfejsa. Kontrola postavljanja elemenata. Grafički elementi. Rad sa slikama i fontovima. Rad sa mišem, tastaturom i touchpadom. Implementacija animacije. Korištenje QML-a u projektu

    Lekcija 10

    Testiranje programa. Vrste grešaka. Qdebug. Korak po korak otklanjanje grešaka. Kontrolne tačke. Promjenjivi prozori i pozivni lanci. Jedinično testiranje. GUI testiranje. Vrste izrade projekta (debagovanje, izlaz, profilisanje). Qt Creator i sistemi kontrole verzija. Git. Potražite srodne biblioteke. Kako poslati aplikaciju kupcu (bez izvornog koda) kako bi mu se sigurno pokrenula

    Lekcija 11

    Kratke informacije o SQLite DBMS-u. Osnovne operacije pri radu sa bazom podataka. Qt alati za rad sa SQLite-om. Realizacija rada sa DB kroz koncept "model - reprezentacija". Izgradnja i povezivanje drugih biblioteka baza podataka (Postgresql/mysql/ets)

    Lekcija 12

    Mrežni protokoli visokog i niskog nivoa. Povezivanje preko utičnica. Model klijent-server. Kontrola pristupa mreži. Povezivanje sa bazama podataka na serveru

    Tokom prakse ćete razviti OpenSource uređivač teksta kao što je Emacs u C++ sa dodacima. Steći ćete vještine timskog rada, raditi sa git-om i tasktrackerom, kao i upoznati se sa Agile razvojnim metodologijama, SCRUM-om, KANBAN-om.

    Lekcija 2: Uvod u agilne metodologije. Trakeri zadataka

    Scrum i Kanban metodologije. Kako preuzeti zadatke. Prednosti inicijative i odgovornosti. Trakeri zadataka u Kanban stilu. Postavljanje SMART ciljeva. Tehnički zadaci. Korisničke priče. Scenariji upotrebe.

    Lekcija 3 Scrum i Kanban

    Vrijednosti agilne metodologije. Scrum (detaljno). Kanban. Greške u implementaciji. Cargo kult. Mikroupravljanje. Zašto je potrebna transparentnost i kako je osigurati. Scrum chat.

    Lekcija 4

    Planiranje i upravljanje rizicima. Rokovi i njihova vrijednost. Vremenski menadžment.

    Lekcija 5

    Maslowova piramida. Tri nivoa motivacije. Kako se motivisati? Motivacija prema Lebedevu. Parabola o psu. Disciplina.

    Lekcija 6

    Greške u planiranju i prikupljanju zahtjeva. Greške u upravljanju: mikromenadžment, imitacija. Posljedice: promet, prerada, rad noću. Pokušaji uvođenja novih zahtjeva i promjena. Kršenje rokova. Beznadežni projekti. Odgovornost. Projekt spašavanja. Kada treba da prestanete? Pivot.

    Lekcija 7

    Upravljanje timom. Zašto je mentorstvo važno. Koliko često programer mora da bude mentor. Vještine vođenja. Delegacija. PAMETNI ciljevi. Sposobnost učenja.

    Lekcija 8

    Sirovi proizvod. Kvalitetan proizvod. Prototip koji brzo radi. Kod kvaliteta. Balans. Odbijanje dijela funkcionalnosti. Funkcionalno testiranje. Crno-bijela kutija. Jedite hranu svog psa.

    Lekcija 9

    soft skills. teške vještine. Radite na životopisu.

    Lekcija 10

    Intervju sa HR-menadžerom i budućim liderom.

    Lekcija 11 izgledi

    Za koje kompanije se treba prijaviti. Specijalistički razvoj. Junior, Middle, Senior, Team Lead, CTO. Menadžment.

    Lekcija 12

    Pregled postignutog. Rastanke.

    Kako postati programer. 13 lekcija.
    Vodič za traženje posla korak po korak

    Karijera programiranja je uzbudljivo putovanje u svijet moderne tehnologije. Svaki programer ima svoju priču i iskustvo. Međutim, postoji osnovni algoritam koji će vam pomoći da pravilno napravite prve korake i dovedete do cilja. Pripremili smo 13 video tutorijala u kojima smo odgovorili na najhitnija pitanja o karijeri programera u kompanijama i na freelance tržištu. Da li često razmišljate o zaposlenju i osjećate li da ste spremni da počnete zarađivati? Onda je ovaj video kurs za vas.

    Lekcija 1

    Karakteristike profesije; FAQ; potražnje na tržištu rada.

    Lekcija 2

    Hoću li postati uspješan programer? faktori uspeha.

    Lekcija 3

    Najvažniji je prvi utisak; kako nazvati posao.

    Lekcija 4

    Pregled jezika za izradu web stranica: HTML, CSS, JavaScript, PHP, Python, Ruby, C#, Java; pravi izbor.

    Lekcija 5 Univerzalni programski jezici

    Pregled jezika: Java, Objective-C, Swift; C#, C++, Python: pravi izbor.

    Lekcija 6

    Lista tehnologija; portfolio diplome i sertifikati; lični kvaliteti. Pogled tehničkog stručnjaka i HR-a.

    Lekcija 7

    Posao iz snova, psihološki aspekti; tehnika upita.

    Lekcija 8

    Intervjui za programere: kako se ponašati, šta reći, šta slušati; probni rad i pravila za njegovo polaganje.

    Lekcija 9

    Pregled slobodnih stranica; karakteristike registracije; registracija računa; kako se izdvojiti među većinom izvođača.

    Lekcija 10

    Strategija pretraživanja naloga; prioritet redoslijeda: šta uzeti u posao; Negotiation; zadaci i zamke TK; metode kontaktiranja klijenta; pisanje odgovora i privlačenje pažnje kupaca; prava pitanja.

    Lekcija 11

    Načini plaćanja: bezgotovinski ili gotovinski; prepaid ili postpaid; pregled situacija u kojima će svaka od metoda bolje funkcionirati; priprema za rad i obavezujući ugovori sa klijentom; karakteristike procesa rada; završne faze saradnje; razmjena povratnih informacija; "konsultovati" tehniku.

    Lekcija 12

    Kako napreduje razvoj u velikim kompanijama? Ko su analitičari, dizajneri, testeri, arhitekti, projektni menadžeri, voditelji timova itd.

    Lekcija 13

    Kako izgleda IT karijerna ljestvica? U kojim specijalnostima je lakše započeti svoje putovanje? Kakvi su razvojni izgledi?

    Kurs, koji je razvijen zajedno sa školom EnglishDom, pomoći će vam da savladate ključne teme engleskog jezika koje su relevantne za početnike IT stručnjake. Maksimalna praksa i fokus na IT vokabular. U 10 lekcija analizira se priprema životopisa, tehničkih zadataka i poslovnih pisama, intervjui i pregovori, međunarodna komunikacija prilikom promocije vašeg projekta. U živim dijalozima na engleskom jeziku učenici će konsolidirati fraze koje će biti korisne u radu programera i testera, marketinških stručnjaka i dizajnera.

    Lekcija 10

    Razgovaramo o našem projektu i predstavljamo tim na engleskom.

    Učenje osnova i suptilnosti programskog jezika C++. Udžbenik sa praktičnim zadacima i testovima. Želite li naučiti programirati? Onda ste na pravom mjestu - ovdje je besplatna obuka programiranja. Bilo da imate iskustva ili ne, ove lekcije programiranja će vam pomoći da započnete kreiranje, kompajliranje i otklanjanje grešaka u C++ programima u različitim razvojnim okruženjima: Visual Studio, Code::Blocks, Xcode ili Eclipse.

    Puno primjera i detaljnih objašnjenja. Savršeno i za početnike (luke) i za naprednije. Sve je objašnjeno od nule do najsitnijih detalja. Ove lekcije (200+) će vam dati dobru osnovu/osnovu u razumijevanju programiranja ne samo u C++, već iu drugim programskim jezicima. I to potpuno besplatno!

    Takođe pokriva korak po korak kreiranje igre na C++, SFML grafičku biblioteku i više od 50 zadataka za testiranje vaših veština i znanja u C++. Dodatni bonus je .

    Za repost +20 do karme i moja zahvalnost!

    Poglavlje broj 0. Uvod. Početak rada

    Poglavlje broj 1. Osnove C++

    Poglavlje broj 2. Varijable i osnovni tipovi podataka u C++

    Poglavlje broj 3. Operatori u C++

    Poglavlje broj 4. Opseg i druge vrste varijabli u C++

    Poglavlje broj 5. Redosled kojim se kod izvršava u programu. Petlje, grane u C++



    Učitavanje...
    Top