faruk-pitanja i odgovori 1 parcijala rip
TRANSCRIPT
Računari i programiranje
Pitanja i odgovori
1. Definicija i sastavni dijelovi računarskog sistema
INFORMATIKA (information technology) – nauka koja izučava strukturu, obradu i prenos informacija. RAČUNARSTVO (computer science) nauka koja se bavi računarskim hardverom i softverom te teorijom računanja. RAČUNAR (računarski sistem) je elektronski sistem koji obrađuje ulazne podatke ili informacije (INPUT) i proizvodi iz njih nove ili izlazne podatke (OUTPUT) prema prethodno definisanoj proceduri - programu.PROGRAM: Skup naredbi (instrukcija) računaru napisan u nekom od programskih jezika za rješavanje određenog problema. Program definiše koje se operacije, kojim redoslijedom i nad kojim podacima obavljaju. Za vrijeme izvršavanja mora biti unesen u radnu (RAM) memoriju računara. Instrukcije mogu biti unesene u hardveru ili softveru.OS - Kolekcija programa koji omogućavaju rad, komunikaciju i upravljanje hardverskim komponentama, fajlovima i korisničkim aplikacijama. Operativni sistem osigurava sredstva za pravilno korištenje komponenti računarskog sistema (hardver i softver).Obezbjeđuje „user interface“ za korisničke programe. Najpoznatiji operativni sistemi su Microsoft Windows, Linux i Mac OS.
2. Hijerarhija računarskog sistema, nivoi Organizacija računarskog sistema: hijerarhijski niz podsistema koji imaju svoju strukturu i komponente.
- Nivoski koncept (računar - struktura sa više nivoa)
- Funkcionalni koncept (računar – sistem sa tri podsistema prema funkcijama)
- Kombinovani koncept
NIVOSKI koncept =računar (današnji, V generacija) je organizacija koja ima 6 nivoa hijerarhije
6- Aplikacioni nivo (korisnička aplikacija = program za konkretan problem, crtanje, obrada teksta...)
5- Nivo viših programskih jezika (programiranje, razvoj aplikacija, Fortran,C, Java,C#, C++, prevode (kompajliraju) programske instrukcije za nivo 3 i 4)4- Nivo asemblerskog jezika (prevođenje programskih instrukcija korisnika sa višeg na niži nivo, 1,2,3)3- Operativno-sistemski mašinski nivo (sistemski pozivi i instrukcije nižem nivou, upravljački prekidi)2- Konvencionalno-mašinski nivo (arhitektura CPU, organizacija i skup instrukcija za CPU i druge komponente)1- Nivo mikroarhitekture (složenija logička kola (ALU), dijelovi procesora, magistrala…)0 - Digitalno-logički nivo (hardver,pojedinačne elektroničke komponente, osnovna logička kola i/ili,ne, multiplekseri, polu-sabirači, sabirači, izvršava naredbe u mašinskom jeziku njemu nadređenog nivoa 1)
Prvi računari imali su samo dva nivoa (mašinski i digitalno-logički nivo).
3. Funkcionalna dekompozicija računarskog sistema, podsistemi
Računarski sistem se predstavlja kao sistem komponenti (modula) koje obavljaju specifične funkcije i svaka ima svoju strukturu tj. hijerarhiju. Tri glavna podsistema savremenog računarskog sistema su:
• Centralna procesorska jedinica (CPU – Central Processor Unit). Sastoji se od upravljačke jedinice, koja upravlja radom cjelokupnog računara (CU), magistrale podataka koja sadrži registre, aritmetičko-logičke jedinice (ALU) i druge funkcijske jedinice specijalizovane za pojedine tipove obrade podataka. CPU ima dvije osnovne f-je: vrši elementarne aritmetičke i logičke operacije na podacima i koordinira rad ostalih komponenti sistema. I pored velike složenosti, CPU obavlja samo ELEMENTARNE OPERACIJE (sabiranje ili premiještanje podataka sa jedne na drugu lokaciju). Snaga CPU potiče iz ogromne brzine tj. kratkog vremena obavljanja instrukcija. • Memorijski podsistem. Sačinjen je od specijalizovanih kola sa mogućnošću memorisanja informacije. U memoriji računara čuvaju se
program i podaci. Memorija je u stvari skup elementarnih memorijskih lokacija od kojih svaka sadrži 8/16/32/64 bita. Svakoj memorijskoj lokaciji pridružena je jedinstvena adresa.
HIJERARHIJA MEMORIJSKOG SISTEMA:1. Interni registri procesora2. Cash –memorija3. Radna (RAM) memorija4. Magnetna memorija5. Eksterna (optički disk ili magnetna traka, danas postoje eksterni hard diskovi i do 2TB)
• Ulazno-izlazni podsistem. Skup specijalizovanih kola koja služe za spregu CPU sa U/I uređajima, kao što su tastatura, miš, mrežna karta ili displej. Ovo su integrisana kola koja imaju svoju upravljačku jedinicu i magistralu podataka.CPU vidi U/I uređaj kao skup od nekoliko memorijskih lokacija (tzv. registara ili portova). Upisom/čitanjem u/iz ovih lokacija moguće je upravljati radom U/I uređaja.
4. Podjela računarskih sistema prema paralelnosti obrade
Podjela računarskih sistema prema paralelnosti u obradi podataka
(Flynn), prema toku instrukcija i prema toku podataka
SISD – Single Instruction- Single Data (klasični vN računari), 1:1 SIMD – Single Instruction stream-Multiple Data stream (vektorski ili
matrični procesori, specijalizovani za grafiku i numeričke proračune) 1:više MISD- Multiple Instruction Single Data, više:1 MIMD – Multiple Instruction Multiple Data(standardne multiprocesorske
mašine), više:višeZa korištenje multiprocesorskog okruženja potrebno je da je problem rješiv paralelnom procedurom te da softver (aplikacija i OS) podržavaju paralelni rad
5. Brojni sistemi, definicija, osnovne vrste, transformacije iz jednog u drugi
Brojni sistemi predstavljaju način prikazivanja brojeva pomoću niza simbola koji se nazivaju cifre brojnog sistema.
Njime su definisana i pravila za osnovne operacije (aritmetika) nad brojevima.
Osnovne vrste brojnih sistema:
Nepozicioni brojni sistem : Jedna cifra ima uvijek istu vrijednost bez obzira na poziciju u zapisu.(Npr. Rimski brojni sistem: I, V, X, L, C, D, M)
Pozicioni brojni sistem: Vrijednost cifre zavisi od njene pozicije u broju.
U računarstvu se široko primjenjuju slijedeća 4 brojna sistema:
DECIMALNI (DEC) BINARNI (BIN) OKTALNI (OCT) HEKSADECIMALNI (HEX)
Prvi računar je razvijen na bazi decimalne aritmetike.
Binarni brojni sistem:
Jednostavni za elektroničku implementaciju U širokoj primjeni od 1949, von Neumann
Pravila binarne aritmetike su ista kao i kod decimalnog sistema.
6. Postupak rješavanja problema primjenom računara
Formulacija problema, Analiza problema, Izbor metoda za rešavanje, algoritam Razvoj programa – pisanje izvornog koda, Kompajliranje izvornog koda Ispitivanje korektnosti programa-testiranje, Izrada dokumentacije, Održavanje i nadogradnja programa
7. Programski jezici, osnovna podjela
PROGRAMSKI JEZICI:
Program: Skup naredbi (instrukcija) računaru napisan u nekom od programskih jezika za rješavanje određenog problema. Program definiše koje se operacije, kojim redoslijedom i nad kojim podacima obavljaju.
Svaki programski jezik se sastoji od:
Skupa dozvoljenih znakova (simbola), Ključnih riječi (key words) Sintakse (pravila gramatike), Semantike (značenja naredbe).
Osnovna podjela (prema nivou):
1. Mašinski jezik (binarni) – direktno razumljiv hardverskim komponentama, niz 0/1, najniži nivo
2. Asemblerski jezik – simbolički jezik zavisan od arhitekture sistema, skraceni (simbolički) zapis
3. Viši programski jezik: lako razumljiv programeru, nerazumljiv mašini
8. Algoritam, definicija, načini prikaza
Algoritam: konačni redoslijed operatora, elementarnih obrada i pravila o njihovoj primjeni u cilju dobijanja rješenja nekog problema. Izvođenje svakog operatora predstavlja jedan algoritamski korak.(Uputstvo za rješavanje problema koje se sastoji samo od elementarnih koraka). Uslovi koje algoritam mora zadovoljiti:- definisanost (jednoznačnost, nedvosmislenost),- konačnost i - rezultat.Definisanost: Svaka operacija ili pravilo mora imati definisano i samo jedno značenje, tj. rezultat svake operacije mora biti jednoznačan, nedvosmislen.Konačnost: Svaki korak mora biti takav da bi ga mogao izvesti čovjek, koristeći elementarne postupke, za konačno vrijeme. Algoritmi se moraju zaustaviti poslije izvršenog konačnog broja koraka i u konačnom vremenu.Rezultat: Po završetku algoritma mora postojati mogućnost da se ustanovi
rezultat njegovog rada, odnosno da li je algoritam postigao cilj ili nije.
Postoje različite mogućnosti za predstavljanje algoritma, ali najčešće se predstavlja grafički pod imenom dijagram toka programa (flowchart).
Pojedine elementarne akcije prikazane su određenim grafičkim simbolima čime se osigurava jednostavnost, preglednost i jednoznačnost zapisa algoritma. Nacin grafickog prikaza je sljedeci:
9. Algoritam, osnovne strukture, skice
Struktura algoritma: redoslijed izvršavanja pojedinih algoritamskih koraka u algoritmu. tri osnovne algoritamske strukture:
linijska, razgranata i ciklička.
Linijska struktura:Algoritamski koraci se izvršavaju jedan za drugim redoslijedom kojim su napisani.Primjer: Algoritam za zamjenu točka na automobilu
POČETAK Izvadi rezervni točak Olabavi vijke na točku Uzmi dizalicu Podigni auto Odvrni vijke Skini točak Stavi rezervni točak Zavrni vijke Spusti auto
Zategni vijke Spremi dizalicu Spremi skinuti točak KRAJ
Razgranata strukturaStruktura algoritma u kojoj tok operacija zavisi od ispunjenosti nekih logičkih uslova
Ciklička struktura - petljeAlgoritamski koraci se ponavljaju više puta. Ako je broj ponavljanja dijela algoritma poznat unaprijed, struktura je konstantna - brojački ciklus, (do petlja)Ako broj ponavljanja nije poznat unaprijed, nego zavisi od ispunjenosti nekog logičkog uslova struktura je promjenljiva (uslovni ciklus). ( do while petlja)
Složene algoritamske strukture:
sastoje se od proizvoljnog broja proizvoljnih kombinacija osnovnih algoritamskih struktura.
10. Šta je i šta sadrži IDE ?
Svi programi zajedno čine IDE. Visual Studio u principu izvorni kod moze pisati u bilo kom programu za uređivanje teksta. Te programske cjeline poznatije su pod nazivom integralno razvojno okruženje(engl. IDE).
IDE sadrzi sljedece:*Editor teksta*Kontrola (provjera) sintakse (pravopisa)*Editor resursa (grafika)– upravlja resursima vezanim za program *Biblioteke funkcija*Compiler- čita program napisan u izvornom kodu, te ga prevodi u ciljani ( najčešće u mašinski ) jezik. *Testiranje i optimizacija- fortran IDE omugućava testiranje i optimiziranje koje kreira programer. *Debugger *Pakovanje i instalacija*Izrada HELP-a
11. Koji su koraci u stvaranju programa u Visual Fortran IDE ?
(pitanje moŽe glasit i koraci u stvaranju konzolnog programa u IDE)
Izbor tipa projekta Imenovanje projekta Dodavanje file-a za izvorni code (source code) Pisanje programa Kompilacija Otklanjanje grešaka Izvršenje (execution) Optimizacija Dokumentacija
12. Koje tipove projekata možemo razvijati u Visual Fortran IDE ?
Osnovni tipovi programskih projekata:
Konzolna aplikacija Statička biblioteka Dinamička biblioteka COM server-klijent Windows 32-64 aplikacija
13. Šta je deklaracija varijabli, implicitna, eksplicitna ?
DEKLARACIJA: davanje imena (identifikator) i određivanje tipa
INICIJALIZACIJA varijabli – dodjela početnih vrijednosti
REAL:: a=0.0, b=5.0, c=0.45 - deklarišemo varijable a, b i c kao realne i inicijaliziramo njihove vrijednosti
REAL , PARAMETER :: pi=3.141592653589793 , g=9,80665- dodjela parametra, ove vrijednosti se ne mijenjaju, ukoliko bi dodjelili neku drugu vrjednost istoimenoj varijabli kojoj smo dodjelili parametar kompajler bi nam javio grešku.
Implicitno deklarisanje (računar samostalno deklariše varijable): a-h, o-z: su implicitno REAL, i-n: su implicitno INTEGER
Eksplicitno deklarisanje - implicit none (programer deklarise svaku varijablu).
14. Čemu služi komentar ?
Komentar se obilježava znakom ''!'', ranije se koristio znak ''c'' i občno je tekst komentara zelene boje.
Unutar progrma u programskom jeziku FORTRAN dozvoljeni su komentari. Oni ne pretstavljaju naredbe, niti se prevode u mašinski kod a služe za opis programa, varijabli ili naradbi.Komentari programeru olakšavaju orjentaciju u programu, korisno je na samom početku programa napisati komenar koji govori šta radi taj program, jer prilikom otvaranja izvornog koda (od drugih lica, ili nas samih nakon dužeg vremena) imamo napomenu čemu služi taj program.
15. Osnovni tipovi podataka u fortranu, primjeri deklaracije !
U Fortranu postoji 6 suštinskih tipova podataka. Oni se mogu podijeliti u dvije kategorije: numeričke I nenumeričke. Numerički tipovi podataka su: Integer-cijeli brojevi (1,4,7,9…)Real-to su cijeli brojevi koji su u racunaru sastavljeni od dvije komponente npr. (0,1 – 1,0)Double precision-realne vrijednosti koje je sa dvostrukom preciznoscu izostavljeno, mnogo vise mjesta za decimalne nego u Real okruzenju
Complex-kompleksniNenumerički podaci su: Character(karakteri)-mogu biti slova, brojevi od 0-9, specijalni znakovi, prazno mjesto Logical (logičke) konstante- (T-true (tacno), F-false (netacno))
16. Šta je konverzija tipa ?
KONVERZIJA TIPA: cjelobrojna varijabla=cjelobrojni izraz ili
realna varijabla = realan izraz
17. Navedi primjer deklaracije i grafički prikaži „select case“ konstrukciju u fortranu.
Jednostavniji oblik rješanjavanja problema viseštruke alternative je metoda odabira slučaja (select case). Otvoreno je nekoliko alternativa ali se samo jedna moze izvršiti. Nakon ovog niza izvršenih instrukcija ide se na kraj strukture.
18. Osnovne prednosti Fortrana u odnosu na druge jezike višeg nivoa.
– jednostavnost, efikasnost, ugrađene funkcije, prilagodljiv format, rasprostranjenost, programske biblioteke, povezanost sa Matlab-om, ansys-om, paralelno programiranje, dokumentacija.
Osnovni nedostatci Fortrana. OO osobine, grafička podrška za windows OS
19. Objasni algoritam sortiranja „bubble sort“.
Select Case (x)
Case (1) Case (2) Case (3) Case (4)
End Select Case
Sortiranje pomoću mjehurića temelji se na ideji poređenja svakog elementa polja sa sledećim elementom. Ako elementi nisu u odgovarajućem poretku onda oni zamjene mjesta. Nakon završetka svih usporedbi vrijednosti dva nova polja prvo pronalaze član polja koji ima najveću vrijednost i on ide na posljednju poziciju polja tj postaje posljednji član polja. Proces se nastavlja sve dok svi elementi polja ne budu u odgovarajućem redoslijedu.
20. Objasni algoritam sortiranja umetanjem (insertation).
Sortiranje umetanjem- element niza upoređuje se sa svim ostalim elementima dok se ne pronađe sljedeći manji element. Na taj način element niza se smješta na svoju poziciju u sortiranom dijelu niza.
21. Objasni algoritam sortiranja „QUICK SORT“
Izabere se jedan proizvoljan element, i poređenjem sa ostalim elementima sortira ih tako da svi manji elementi niza budu ispred njega, a veći iza. I ponovljamo korak u manjim podskupovima sve dok nebudu elementi sortirani od najmanjeg do najvećeg elementa. Quick sort je najbrzi algoritam.Primjer:9,5,7,3,6,8,4 - 6 je vodeci clan, a ostali clanovi se razvrstavaju na vece i manje (izabrani clan time dobija svoju konacnu poziciju u nizu)...pa se dobije sljedeci izraz5,3,4, 6 9,7,8 niz se dalje sortira od manjeg ka vecem i dobije se 3,4,5,6,7,8,9.
22. Kompajler, asembler, mašinski jezik – definicije .
U procesu kompajliranja programa (predstavljenog kao proces prevođenja), izvorni program visokog nivoa je transformisan u assembly jezik i onda se assembly jezik prevodi u mašinski kod za ciljanu mašinu od strane asemblera. Ovi prevodi se odvijaju u compile vremenu i assembly vremenu. Rezultirajući objektni program može biti povezan sa drugim objektnim programima u link vremenu. Povezani program, obično pohranjen na disku, je unešen u glavnu memoriju u load vremenu, i izvršen od strane CPU-a u run vremenu.
25. Šta je iterativna programska struktura, navedi primjer?
Razlikujemo dvije vrste itereativnih struktura: obična DO petlja i Do WHILE petlja. (opiši i jednu i drugu)
26. Osnovni programski jezici višeg nivoa.
Fortran, Cobol, Algol, Pascal, Basic, SQL, Java, C++, Visual Basic, C#.
27. Osnovne harvedrske komponente ?
Matična ploča, procesor, chipset,radna memorija (RAM), hard disk, video – karta.
33. Objasni kada se koristi i kako se deklarise „do while“ struktura, prikazi skicu i fortranski kod
Fortran 90 ima „DO WHILE“ petlju sljedećeg oblika:DO WHILE (logički izraz) blok naredbiEND DO
DO WHILE petlja se izvodi sve dok je zadovoljen logički izraz u zagradi.Npr. DO WHILE (uslov); Naredba N ..... ; End DO.
34. Objasni i graficki prikazi „IF BLOCK“ konstrukciju, navedi prost primjer primjene
IF BLOK konstrukcija se sastoji od nekoliko blokova. Opšti oblik za konstrukciju je:
IF(test_uslov_1)THENBlok naredbi_1ELSEIF(test_uslov_2)THENBlok naredbi_2End IFEnd IF
Ili
IF(test_uslov_1)THENBlok naredbi_1ELSE IF(test_uslov_2)THENBlok naredbi_2End IF
Broj otvorenih blokova mora biti u saglasnosti sa zatvaranjem bloka, odnosno broj IF naredbi mora biti jednak broju End IF naredbi.
35. Kada se koriste petlje , koje vrste imamo u fortranu i pokaži primjer primjene istih
Petlje predstavljaju treći tip struktura programa. Ako se niz naredbi može izvršiti više puta tada se može reći da ove naredbe obrazuju petlju ili cikličnu strukturu. Takođe mora postojati bar jedna naredba koja omogučava izlaz iz ciklusa. Uslov pod kojim se
izlazi iz petlje naziva se izlazni kriterij petlje. Na osnovu izlaznog kriterija petlje se dijele na: 1.petlje s brojačem(DO petlje) 2.uslovne petlje (DO WHILE)DO petelju koristimo kada znamo broj ponavljanja nekih isntrukcija. DO WHILE petlja se izvodi sve dok je zadovoljen logički izraz u zagradi.Npr. DO WHILE (uslov); Naredba N ..... ; End DO.
36. Objasni najednostavniji algoritam za pronalaženje najvećeg člana datog brojčanog niza
Algoritam za pronalaženje največeg člana: ova metoda odnosi se na sortiranje niza podataka x sa n brojem elemenata u nerastući poredak. Prvo se nalazi največi element niza i 'dovodi' na prvo mjesto. Zatim se nalazi največi clan od preostalih i prvog i 'dovodi' na drugo mjesto zatim treći itd...
38. Objasni sta je potrebno (koji programski alati) za razvoj programske aplikacije
Program napisan u Fortranu se sastoji od jedne ili više programskih jedinica. Programske jedinice su: glavni program (main program) i programske procedure (function and subroutine), modul i block data.Glavni program (main)[PROGRAM ime][specifikacioni dijelovi][izvršni dijelovi][contains-dijelovi internog potprograma]END[PROGRAM ime]