Napišite naslednji program:
1. Napišite funkcijo, ki v polje dolgo 16 elementov zapiše naključno generirana števila (od 1 do 10; uporabite funkcijo rand(http://www.cplusplus.com/reference/clibrary/cstdlib/rand/)). GLEJ ZGLED 1(https://lpm.uni-mb.si/vaje0910/file.php/5/zgledi/vaja01/naloga_01_03_zgled1.cpp.htm)
2. Preuči zgled oz. napišite funkcijo, ki polje ocen iz 1. uredi z mehurčnim sortiranjem (GLEJ ZGLED 2(https://lpm.uni-mb.si/vaje0910/file.php/5/zgledi/vaja01/naloga_01_03_zgled2.cpp.htm)). Polje uredite od najmanjšega do največjega elementa!
3. Dopolnite nalogo s funkcijo, ki na vhodu dobi polje ocen in dolžino polja (10), vrne pa polje v katerem je zapisano koliko je posameznih ocen.
Npr. za vhod: {1,6,6,7,8,10,10,10} vrne {1,0,0,0,0,2,1,1,0,3} (ena enka, dve šestki, ena sedmica…)
4. Dopolnite nalogo s funkcijo, ki dobi na vhodu polje ocen in dolžino polja, vrne pa povprečno vrednost polja.
5. Dopolnite glavni programček (MENI), kjer demonstrirate uporabo klicev funkcij.
Primer programa:
Menu
=========
1 … VNOS 16ih NAKLJUCNO GENERIRANIH STEVIL
2 … SORTIRANJE GENERIRANIH OCEN
3 … POVPRECNA OCENA
4 … IZPIS STEVILA POSAMEZNIH OCEN
0 … IZHOD IZ PROGRAMA
=========
Izberi: 1
Generirano polje stevil: 1 6 7 6 5 9 5 8 6 1
Zapišite program z naslednjimi funkcijami:
1. vsota, ki sprejme dve realni števili in vrne njuno vsoto.
2. produkt, ki sprejme dve realni števili in vrne njun produkt.
3. myIf, ki sprejme tri realna števila in v primeru če je prvo >0 vrne drugo število drugače tretje. Npr.: myIf(1,2,3) vrne 2; myIf(-1,2,3) vrne 3
V glavnem programu s pomočjo zgornjih metod izračunaj naslednje izraze (brez branja iz tipkovnice)
a) 23+2*5+3*2
b) 3 + 4 * (dan v mesecu v katerem ste se rodili)
c) izmislite si svoj primer, ki vsebuje myIf funkcijo
*Primer klica funkcij za izračun (2+3+4) je: vsota(2, vsota(3,4))
Dodajte in demonstrirajte še naslednje funkcije:
4. Napiši funkcijo katera dobi na vhodu znesek v EUR. Funkcija vrne informativno ceno v USD (1,387$ za 1 €)
5. Napišite funkcijo, ki na vhodu dobi tri cela števila in izpiše kvadrat najmanjšega, koren največjega števila in vrednost drugega največjega. (V primeru negativne vrednosti vrnite vrednost korena 0.). Števili vrnite preko reference.
Pomoč:
- koren: uporabite funkcijo sqrt, npr. sqrt(stevilo)
- kvadrat: uporabite funkcijo pow, npr. pow(stevilo,2) – kvadrira število.
V glavi programa zapišite vključite knjižnico math.h (#include )
Primer izpisa programa:
23/3/1 + 3*2 = 13.6667
3 + 4/10 = 3.4
4*2 + 1 + 12/6 – 3 = 8
23 EUR = 31.901 USD
minMax(25,6,16) => koren(max) =5, kvadrat(min) = 36, srednji=16
Napišite program, ki izpiše Fibonačijevo zaporedje za določen interval. Uporabnik vnese n – zadnji element zaporedja in z-prvi element, ki ga bo izpisal. Nalogo reši na dva načina (uporaba for zanke in while zanke).
Primer programa za z=3 in n=5
Vpisi z: 3
Vpisi n Fibonacci-jevega zaporedja: 5
f ( 3 ) = 3
f ( 4 ) = 5
f ( 5 ) = 8
//ne izpiše f ( 0 ) = 1, f ( 1 ) = 1 in f ( 2 ) = 2
Na povezavi (https://gemma3.uni-mb.si/vaje/file.php/9/guitest_V2.exe) najdete primer grafične aplikacije, ki jo morate narediti tudi sami! Pri izdelavi boste potrebovali:
- ogled demonstracijskih videov
- MFC razred CTreeCtrl
- MFC razred CListCtrl
- MFC strukturo HTREEITEM
- MFC razred CButton
- MFC razred CBrush
- MFC razred CPen
- MFC razred CRect
- MFC razred CComboBox / CListBox
- MFC razred CTime
- MFC metodo Invalidate()
Za opise razredov in pripadajočih metod uporabite pomoč iz MSDN!
Napišite program, ki s pomočjo zvezdic izriše okvir pravokotnika. Program prebere velikosti stranic pravokotnika.
Program naj prebere štiri realna števila tipa double in jih izpiše na zaslon v obratnem vrstnem redu, kot so bila vpisana.
Napišite program, ki na zaslonu izpiše vaš priimek, ime, vpisno številko in naslov! Vsak podatek naj bo izpisan v novi vrstici.
Obnašanje linearnega sistema poznamo v popolnosti, v kolikor poznamo njegov impulzni odziv. Tako lahko s konvolucijo izračunate izhod sistema, v kolikor poznate vhod ter impulzni odziv.
Napišite funkcijo odziv=dobi_odziv (5 t), ki bo dobila impulzni odziv sistema implementiranega v funkciji y=sistem(x),kjer je x vhodni vektor v sistem, y pa rezultat (datoteka sistem.p je kodirana, v matlabu pa jo uporabite na popolnoma isti način kot vsako funkcijo v datoteki .m).
Potem ko dobite odziv, v funkciji y=moj_sistem(x) (3 t) implementirajte lasten sistem (v njem ne smete klicati funkcije sistem), ki bo imel tak impulzni odziv kot funkcija sistem. Uporabite funkcijo conv.
Vstavite v vaš sistem nek poljuben signal (npr. glasbo). V tekstovno datoteko opazanja.txt (2 t) zapišite, kaj po vašem sistem naredi.
Pozor! Tokrat sistem ne bo sporočil, kaj je bil vhod in kaj pričakovan izhod, saj bi s tem bil razkrit impulzni odziv. Neposredno se bodo na sistemu testirale samo izhodne vrednosti funkcije moj_sistem, saj so odvisne od vrednosti izhoda funkcije dobi_odziv. Pri ocenjevanju naloge se bo eksplicitno preverjala vsebina vseh datotek!
Preprost linearni sistem je zvočni efekt odmeva (echo). Opišemo ga lahko z enačbo y[n]=x[n]+kx[n-d], kjer je nštevilka vzorca, k koeficient dušenja in d zakasnitev. Snamete si lahko originalen signal in signal, ki ga je ustvaril sistem z enačbo y[n]=x[n]+(1/2)*x[n-22050].
Vaša naloga je, da napišete funkcijo y=odmev(x,k,d) (10 t), ki bo vhodnemu signalu x dodala odmev z zakasnitvijo d in jakostjo k (k je torej predmnožilen faktor dodanega odmeva). Bodite pozorni na to, da je izhodni signal daljši, kakor vhodni, saj se mora slišati ves odmev! Nalogo implementirajte s pomočjo funkcije conv(), drugače do naloga vredna največ 5 t.
Na vajah bomo spoznali osnove šifrirnih algoritmov.
Napišite okensko aplikacijo, ki omogoča ugotavljanje zašifriranega gesla. Aplikacija naj omogoča vnos gesla, ki ga s pomočjo algoritma MD5 zašifrirate.
Ugotavljanje gesel rešite na dva načina:
Program naj na koncu izpiše osnovno statistiko: