Programski jezik C# so razvili pri podjetju Microsoft in ga označujejo kot “preprost, moderen, objektno orientiran programski jezik, ki je nastal na podlagi jezikov C, C++ in JAVA.”
Sintaktično gledano je C# zelo podoben omenjenim jezikom. Veliko rezerviranih besed je enakih, prav tako se bloki kode omejujejo z zavitimi oklepaji in stavki jezika se zaključujejo s podpičjem. Tudi na prvi pogled se vidi podobnost z jezikom C++ in JAVA, vendar se je jezika C# veliko lažje naučiti kot jezika C++. Nekaj glavnih zančilnosti jezika C#:
- Čisti objektni jezik s podporo vmesnikom (interface), virtualnim funkcijam in prekrivanjem operatorjev.
- Ima dobro definirane osnovne tipe.
- Automatično brisanje dinamično rezerviranega pomnilnika (garbage collection).
- Podpora kazalcem, če se potrebujejo, vendar je jezik zasnovan tako, da se skoraj v vseh primerih da delati brez njih.
- Izvorne datoteke več niso razdeljene na datoteko z deklaracijami (v c++ je to datoteka s končnico .h) in definicijami (datoteka s končnico .cpp), temveč je običajno vsa koda znotraj datoteke s končnico .cs!
Programski jezik C# ima eno veliko prednost pred knjižnico MFC za C++ in sicer je to gradnja grafičnih vmesnikov. Jezik C# je zelo prijazen do uporabnika kar se tiče hitrosti in učinkovitosti gradnje grafičnega vmesnika za aplikacijo.
Grafične aplikacije boste spet gradili v programskem okolju MS Visual Studio 2003/2005/2008. Primer gradnje preprostega vmesnika prikazuje https://gemma3.uni-mb.si/vaje/file.php/9/demo1.html, nekaj praktičnih napotkov glede samega okolja z razlago programskega jezika pa prikazuje https://gemma3.uni-mb.si/vaje/file.php/9/demo2.html.
Tokrat morate za vajo napraviti enako aplikacijo kot pri prvi vaji, le da v tem primeru programirate v jeziku C#. Pri izdelavi boste potrebovali:
- ogled demonstracijskih videov
- razred TreeView
- razred ListView
- razred Button
- razred Graphics
- razred SolidBrush
- razred Pen
- razred Rectangle
- razred ComboBox
- razred DateTime
- metodo Invalidate()
Za opise razredov in pripadajočih metod uporabite pomoč iz MSDN!
Pregledovalnik (scanner) predstavlja vmesnik med izvornim programom in razpoznavalnikom. Njegova naloga je, da vrne razpoznavalniku terminalne simbole. Njegova naloga je tudi, da izloči prazna mesta, preskoke v novo vrstico ter komentarje.
Pregledovalnik obravnava vhodno datoteko kot niz znakov, ki jih nato sestavlja v terminalne simbole. Za opis terminalnih simbolov uporabljamo končne avtomate, te pa najlažje implementiramo s tabelo (lahko tudi s programsko kodo).
Osnovni leksikalni simboli:
float [0-9]+ ( .[0-9]+)?
operator \+|\*|\-|/
separator\(|\)
Dodatni leksikalni simboli (za višjo oceno):
cos, sin, abs
Leksikalni analizator implementirajte v jeziku C#!
Na vašem domačem računalniku avtomatizirajte oddaljeno prijavo preko protokola ssh. Uporabite mehanizem javnih in zasebnih ključev. V pomoč vam naj bo dokumentacija programov ssh in ssh-keygen (man strani).
Za nalogo morate napisati igrico ‘4 v vrsto’. Igra mora biti napisana v programskem jeziku C++ z MFC! Zahteve za igro so:
- namenjena dvema človeškima igralcema.
- igralca igrata s krogci: vsak igralec ima svojo barvo krogca!
- na začetku naj bo možno izbrati igralca in poljubno barvo za krogec!
- igralno polje mora biti v velikosti 6 vrstic in 7 stolpcev.
- igralno polje naj bo fiksne velikosti.
- celotno polje IN krogci morajo biti izrisani!! (polje, realizirano z gumbi ali slikami ali kako drugače NE šteje!).
- na polju se morajo loviti miškini kliki (tako kot pri igri Križci-Krožci)
- omogočen naj bo izpis obvestil ob zmagi ali porazu ali neodločenem izidu.
- možnost resetiranja med igro (Reset Game).
- grafični vmesnik naj bo preprost in intuitiven za uporabo!
Pravila igre:
- z miško igralca izmenično polnita polje s krogci.
- krogci v stolpcu ‘padajo’.
- igralec zmaga, ko zbere 4 svoje krogce vodoravno ali navpično ali po diagonali.
Napišite skriptno datoteko bash s parametrom trenutna mapa, ki poišče vse datoteke s pravicami branja (angl. Read-only) in jih izpiše. Preverite tudi, da omenjena datoteka ni mapa in da trenutna mapa res obstaja.
Datoteka ocene.txt vsebuje rezultate šestih vmesnih izpitov študentov drugega letnika računalništva. Vsebina omenjene datoteke je naslednja:
$ cat ocene.txt
mona 70 77 85 83 70 89
john 85 92 78 94 88 91
andrea 89 90 85 94 90 95
jasper 84 88 80 92 84 82
dunce 64 80 60 60 61 62
ellis 90 98 89 96 96 92
Izpišite povprečne ocene študentov in doseženo oceno. Pri ocenjevanju študentov upoštevajte ocenjevalno lestvico prikazano v tabeli 1. Izpišite tudi povprečno oceno vseh študentov letnika in ugotovite, koliko študentov je nad povprečjem in koliko pod njim. Nalogo poskušajte rešiti v enem samem zagonu skripta awk. (Namig: uporabite podatkovno strukturo polje ter pravili BEGIN in END).
Tabela 1: Ocenjevalna lestvica
| Točke | Ocena |
| 90-100 | 10 |
| 80-89 | 9 |
| 70-79 | 8 |
| 60-69 | 7 |
| 50-59 | 6 |
| < 50 | 5 |
Napišite skriptno datoteko bash s parametrom trenutna mapa, ki poišče vse izvajalne datoteke in jih izpiše. Preverite tudi, da omenjena datoteka ni mapa.
Datoteka ocene.txt vsebuje rezultate šestih vmesnih izpitov študentov drugega letnika računalništva. Vsebina omenjene datoteke je naslednja:
$ cat ocene.txt
mona 70 77 85 83 70 89
john 85 92 78 94 88 91
andrea 89 90 85 94 90 95
jasper 84 88 80 92 84 82
dunce 64 80 60 60 61 62
ellis 90 98 89 96 96 92
Izpišite povprečne ocene študentov in doseženo oceno. Pri ocenjevanju študentov upoštevajte ocenjevalno lestvico prikazano v tabeli 1. Izpišite tudi povprečno oceno vseh študentov letnika.
Tabela 1: Ocenjevalna lestvica
| Točke | Ocena |
| 90-100 | 10 |
| 80-89 | 9 |
| 70-79 | 8 |
| 60-69 | 7 |
| 50-59 | 6 |
| < 50 | 5 |