21
Carlame OR SSJ Elid Garazlic Sexy Instruktor

Or Carla Me Ultimate 20142015

Embed Size (px)

DESCRIPTION

Or Carla Me Ultimate 20142015

Citation preview

  • Carlame OR

    SSJ Elid Garazlic

    Sexy Instruktor

  • Funkcije

    Funkcije su UDO, recimo npr da je funkcija neki vas prijatelj...

    Prvo se pitate sta inace radi vas prijatelj, i kakva vam je korist od njega...i te neke prijatelje koji

    rade lose lahko vam ih je izmjeniti.

    Sad malo programerski.

    Ako imamo neki postupak neku racunicu koji se ponavlja na razlicitim mjestima u kodu ali sve

    isto radi, samo eto ima neke male promjene...i kad pisete koristite Copy Paste metodu....i npr

    koristite taj postupak 50 puta .zonfa je u tome ako fulite u tom postupku nesto niste kako

    treba napravili valja to 50 puta ispraviti i pronaci svih tih 50, e sad za to su dobre ove funkcije....

    Ako napravite funkciju koja radi taj dio koraka,tj definisete sta je njen posao...i 50 puta koristite

    tu funkciju u kodu....i fulite....kazete odoh ja samo promjeniti opis njenog posla i bit ce to sve

    kako treba.

    Funckije imaju cetiri dijela, jedan nam je bitan drugi nam je nebitan i treci nam je bitan i cetvrti

    jako bitan.

    NESTO1 NESTO2 NESTO3 NESTO4

    Ovakva 3 dijela razmisljanja.

    Prvo postavljamo pitanje sta radi ta funkcija.

    Drugo pitanje za sta nam ona sluzi

    Trece Pitanje sta je njoj potrebno.

    Ono sto je potrebno funkciji, se naziva parametrima, tj sta funkciji treba od informacija da odradi

    svoj posao, ako nekome kazete da kopa neku zemlju morate mu dati lopatu.

    U NESTO3 kazu se parametri

    Kad zavrsi sa kopanjem te zemlje hocete da vam kaze koliko je kopao. To se zove povratana

    informacija i ide u NESTO1

    Morate i nauciti nekoga kako to on kopa i to ide u NESTO4

    I morate reci kako vi to njemu govorite da ide kopati (IDI KOPAJ)

    Pa prebacivanje ovog NESTO1 NESTO2 NESTO3 NESTO4 izgleda ovako

    PovratniTip Naziv(Paretri) {

    Objasnjenje Kopanja

    }

  • Ako hocemo da napravimo Funkciju za sabiranje dva broja, moramo dobro razmislit

    Sta Treba, Kako to Radi Sta je rezultat i kako zovemo

    -Treba 2 Broja

    -Radi prvi + drugi

    -Rezultat opet broj

    -Zovemo Sabiranje

    int Sabiranje(int a,int b)

    {

    return a+b;

    }

    E nesto sto morate shvatiti

    sad imamo onaj MEJN main()

    Kako iskoristiti funkciju moramo joj nekako narediti da radi i da nam kaze sta je uradila tj

    rezultat.

    U mejnu pravimo varijable a i b (namjerno ista imena) sada ova funkcija sabiranje prima brojeve

    a i b tj 5 i 6....kad pogledate tjelo prvi parametar u funkciji je a drugi b, a postaje 5, b postaje 6

    odradi sabiranje a+b ovo je operacija 5+6 i ovo se pretvara u 11....i onda ide return 11......poslije

    toga ide dole u main i pise int d=rezultat funkcije....int d=11; tj d dobija vrijednost 11....i ispisuje

    se 11.

    int main()

    {

    int a=5;

    int b=6;

    int d=Sabiranje(a,b);

    printf(%d,d);

    return 0;

    }

    VAZNO ZA ZAPAMTITI FUNKCIJE PRIMAJU VRIJEDNOSTI I VRACAJU VRIJEDNOSTI

    FUNKCIJE NE PRIMAJU VARIJABLE NITI VRACAJU VARIJABLE.

    FUNKCIJA NIKADA I SAMO NIKADA I JOS NIKADA NE MOGU DA VRATE VISE VARIJABLI.

    FUNKCIJE MOGU DA VRATE SAMO JEDNU VRIJEDNOST.

    AKO IKAD CUJETE DA FUNKCIJA VRACA VISE VRIJEDNOSTI TO NIJE URADJENO KAO

    return a,b,c,d;

    POSTOJI NESTO STO SE ZOVE PRIVIDNO VRACANJE.

    Primjer koji necete skontati ali ce biti potrebno da razumijete kasnije.

    IMATE MUZA I ZENU.

    Muz i zena nekad ce imati dijete.

    Muz je funkcija koja zeni pravi dijete.

    Funkcija muz nece imati u sebi return dijete, nego ce morati da napumpa zenu da bi imali dijete.

  • Funkcije JESTE I NIJE.

    Funckije zvane jeste ili nije, to su funkcije koje nam vrse ispitivanje necega i daju odgovor

    potvrdan ili (obrnuto od potvrdan).

    Funkcije jeste nije su one hajmo reci boolove funkcije, slicno kao operatori poredjenja, u OR-u

    necete koristi nesto sto se zove true i false.

    Nego morate koristit 1 i 0.

    1 vam znaci da je vratila tacno a 0 netacno.

    Te funkcije ce vracati int jer metodom combe se dokaze logicno da je 0 i 1 cijela vrijednost.

    int JelPozitivan(int n)

    {

    if(n>0) return 1;

    else return 0;

    }

    Prva verzija kaze da primi broj cijeli i ukoliko je veci od nule da vrati 1 kao rezultat u suprotnom

    da vrati nulu.

    int JelPozitivan(int n)

    {

    if(n>0) return 1;

    return 0;

    }

    Razlika izmedju prve i druge verzije je ovo sto nema else u drugoj verziji.

    Kad se radi o povratnim informacijama kad moze biti crno ili bijelo. Ako je nesto vrati bijelo, a

    ako nije nema potrebe pisati jer ako nije bijelo sto posto ce vratiti crno.

    Najcesca pitanja u ispitivanju, jesu li svi ili postoji li bar jedan.

    Ako se postavlja pitanje jesu li svi onda je lakse dokazati postoji li bar jedan da nije.

    Lakse je naci jednog nego prebrojati sve.

    Pretpostavite da je ispitivanje tacno tj. da svi zadovoljavaju ukoliko pronadjete jednog da nije

    takav onda kazete ok nisu svi.

    Jel broj prost(dal psuje).

    Broj je prost ukoliko je djeljiv SAMO sa 1 i sa samim sobom.

    Funkcija za prost

    int Prost(int n)

    {int i;

    for(i=0;i

  • Rad Sa (Cijelim Brojevima)

    Nesto naj interesantnije je rad sa cijelim brojevima.

    -Ispisi Naopako

    -Brojanje Cifri

    -Sabiranje Cifri

    -Obrtanje Broja

    -Modifikovanje Broja

    Ispisi Naopako

    void ispisinaopako(int n)

    {

    while(n>0)

    {

    printf("%d",n%10);

    n/=10;

    }

    }

    Vako nako izgleda funkcija koja ispisuje naopako broj. Povratna informacija je jumpa kjampa

    zjapi nista...samo ispisuje na ekran....pa je zato void, za ispisivanje broja unazad radi se

    sljedece broj tipa int je u dekadnom brojnom sistemu tj. zapisan je na nas nacin....

    Kod svakog ispitivnaja cifri cifre se uzimaju otpozada.

    Posto je dekadni brojni sistem koristi se %10 ostatak pri djeljenju sa 10 i cjelobrojno djeljenje.

    Ovo kome nije jasno usmeno objasnim.

    npr 15432

    15432%10 =2 (zadnja cifra)

    15432/10=1543 (Obrisi onu dvicu sto je bila zadnja)

    1543%10=3 (predzadnja)

    1543/10=154 (obrisi tricu)

    154%10=4 (treca odpozada)

    154/10=15 (ukini ovu cvrku)

    15%10=5 (ova druga s lijeva)

    15/10=1 (ukini predzadnju)

    1%10=1 (prva s lijeva)

    1/10=0 OVA NULA JE BITNA.....

    NEBITNO KOJI SMO BROJ IMALI MI GA KRATIMO SVE DOK POSTOJE CIFRE KAD

    POSTANE NULA TO JE ZNAK DA SMO ZAVRSILI!!!

    -Brojanje cifri

    Isti djavo kao i ovo ispisivanje, samo sto ovdje brojimo koliko to cifri ima (koliko puta mozemo

    skratiti broj)

  • int brojcifri(int n)

    {

    int brojac=0;

    while(n>0)

    {

    n/=10;

    brojac++;

    }

    return brojac;

    }

    -Suma Cifri

    Pri uzimanju cifri dodajemo je na neku sumu.

    int sumacifri(int n)

    {

    int suma=0;

    while(n>0)

    {

    suma=suma+n%10;

    n/=10;

    }

    return suma;

    }

    -Naopaka Vrijednost (citanje s lijeva)

    125 (Sto Dvadeset Pet) ...naopako Petsto Dvadeset Jedan.

    Uzima se otpozada i svaki put kad se dodaje nova cifra tj sljedeca s lijeva prethodna suma

    se mnozi sa 10 jer ce prdstavljati 10x veci broj nego sto je bio prethodno.

    int napokao(int n)

    {

    int b=0;

    while(n>0)

    {

    b=b*10+n%10;

    n/=10;

    }

    return b;

    }

    Pravimo isti......neko pita sto bi isti pravili ali...kasnije o tome

    int isti(int n)

    {

    int b=0;

    int k=1;

  • while(n>0)

    {

    b=b+(n%10)*k;

    k*=10;

    n/=10;

    }

    return b;

    }

    Ovdje imamo nesto obrnuto od obrnutog...isti broj bi se mogao napraviti sa dva puta obrnutim..tj

    obrni obrnut broj...

    E u kodu imamo ovo neko k,....ovo k je identifikator koji tip cifre je ta cifra sto se uzima....

    Znamo da uzimamo sa desna cifre......osnovna skola

    Jedinice desetice stotice tisucice itd....

    Tako i ovo k=1,k=10,k=100,k=1000 raste pri uzimanju cifara....e sad objasnjenjem sta je k

    mozemo preci na modifikovani broj....

    int modifikovan(int n)

    {

    int b=0;

    int k=1;

    while(n>0)

    {

    if((n%10)%2==0) b=b+((n%10)-1)*k;

    else b=b+(n%10)*k;

    k*=10;

    n/=10;

    }

    return b;

    }

    Ukoliko je cifra paran broj....uvecavamo za jedan (neki primjer modifikacije)

    1245 =Tisucu Dvijesto CeTereSS Pet....treba da dobijemo 1355 Hiljadu Tristo Pedeset Pet

  • ZADACA

    1.Napisati funkciju koja prima kao parametar cijeli broj i ispisuje ga

    2.Napisati funkciju koja prima dva cijela broja kao parametar i vraca kao rezultat zbir ta dva

    broja.

    3.Napisati funkciju koja prima cijeli broj i ispisuje ga unazad

    4.Napisati funkciju koja prma kao parametar cijeli broj i vraca njegovu obrnutu vrijednost citanu

    sa desna.

    5.Napisati funkciju koja prima kao parametar cijeli broj i vraca 1 ukoliko je broj palindrom a 0

    ukoliko nije.

    6.Napisati funkciju koja prima kao parametar cijeli broj n i jednocifren broj a, i koja vraca

    broj tako da mu se svaka druga cifra sa desna zamjeni sa vrijenosti a. Ukoliko vrijednost a nije

    jednocifrena vrijednost funkcija vraca nulu.

    npr. funkcija(123456,9) vraca 929496.

    7.Napisatu funkciju koja prima parametar cijeli broj n, i koja vraca broj tako da mu se svaka

    parna cifra uveca za jedan a neparna umanji za jedan

    Npr ( 123456) rezultat 32547

    8.Napisati funkciju koja prima realni broj n i vraca kao rezultat da se zamjeni decimalni i

    cijeli dio. Prvobitni decimalni dio zaokruziti na 3 decimale.

    123.1567 =>Zaokruziti 123.156 =>Zamjeniti 156.123=>vratiti.

    123.15 =>Zaokruziti 123.150 =>Zamjeniti 150.123=>vratiti.

    9.Napisatu funkciju koja prima realni broj n i vraca kao rezultat da se uradi obrtanje broja.

    cijelog i obrtanje decimalnog npr(123.456) rezultat 321.654

    Takodje prvobitni decimalni dio zaokruziti na 3 decimale.

  • POKAZIVACI.

    Prije nego pocnemo zelim da vas upoznam suneim, vemao koristeno ali neki nisu upoznati.

    SVETI GRAL

    OD SAD PA NA DALJE I UBUDUCE MORATE VODITI RACUNA O OVOME.

    RAM inace dobio naziv kao RAdna Memorija(salim se nije)

    E sad kad god se spomene programiranje hocu da zamisliti jednu veliku tabelu.

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

    a

    b

    c

    d

    e

    f

    g

    h

    i

  • Radi olaksice svaka ova kockica predstavlja jednu varijablu. (int,float,char) necemo raditi

    kompleksnije (iako float i int nije isto ovdje predpostavimo da jeste samo radi olaksice pri radu)

    Izvinite na trosku printanja.

    RAM memorija radi na principu dok koristis ima kad prestanes nema.

    Mozda ste i primjetili (pokrenete vas program unesete neke vrijednosti..ponovo pokrenete jebo

    ga otac morate ponovo unositi )

    E sad to postojanje je u onom MEJNU.

    sljedece sta se desava.

    int main() { int a,b; char c; a=5;b=4;c=K }

    //Pamcenje Main random odabere mjesto u memoriji (zavisi gdje ima slobodno) i napravi sebi 3 mjesta 2 za int jedno za char. Napravio je na kockicama B5,B6,B7.

    (a (B5), b(B6), c(B7) (radi urednosti ovako cu zapisati gdje se nalazi varijabla koja a mozete i na

    kockicama ako imate prostora)

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

    a

    b 5 4 K

    c

    d

    e

    f

    g

    h

    i

    E sad kockice su nama jesu nije sporno, ali racunaru su to adrese gdje se sta pamti.

    Svi ste culi za kurceve palceve pokazivace (ma oni su niko i nista mi smo ludji)

    Bitno naglastit kod pokazivaca pokazivac nije *

    Pravljenje pokazivaca.

    Pokazivac se pravi kao

    int* pok;

    Ovo int* jeste samo obicni tip i to pokazivacki tip na cijele brojeve, zvijezda znaci da je to

  • pokazivacki tip, a int znaci na sta je pokazivacki tip, dok je pok pokazivacka varijabla.

    Sposobnost pokazivaca jeste da pamti adresu neke varijable gdje se nalazi. tj pamti samo koja

    je kockica u pitanju.4

    int main() { int a,b; char c; a=5;b=4;c=K int *pok1=&a, *pok2=&b; char *pok3=&c; }

    Promjena sto smo napravili jeste da smo stavili neke zvjezdice, i neke osmice sa cunom. Napravili smom 3 pokazivaca, 2 na tipa integer jedan na tipa char i dodjelili im &nesto. & je adresni operator koji saznaje adresu varijable.

    pok1( C9), pok2(C10) pok3(C11)

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

    a

    b 5 4 K

    c B5 B6 B7

    d

    e

    f

    g

    h

    i

    E sad kako napraviti i dodjielti pokazivac.

    OVO INT * POK, ZVJEZDICU MOZETE KORISTITI A DA KAZETE DA JE POKAZIVAC SAMO

    AKO ISPRED STOJI TIP, SVAKI PUT KAD HOCETE DA KORISTITE POKAZIVAC

    KORISTITE VARIJABLU A NE *POK, JER TO NIJE POkAZIVAC.

    SAMO PRI DEKLARACIJI SE KORISTI ZVJEZDA:

    int *pok;......pa u nstavku samo pok.

    pok=a; //kazete da vrijednost koju pamti pokazivac je vrijednost varijable a tj 5, tj da ce on

    zapamtiti 5 a ne B5 kao u tabeli

    pok=&a; //kazete da vrijednost koju pamti pokazivac je adresa varijable a, tj B5 ovo je tacno.

    pok=5; //kazete da vrijednost koju pamti pokazivac je vrijednost 5, tj da ce on zapamtiti 5 a ne

    B5 kao u tabeli

  • pok=*a; //Zvijezdica je vrijednost sa adrese tj uzima vrijednost sa neke adrese pokzsavate

    uzeti vrijednost sa neke adrese koja je zapisana u varijabli a. A to je sa adrese 5.

    A u adresi 5 je sacuvan ZEINA. Njih se dobro cuvajte.

    sad pokusamo da uradimo da neki drugi pokazivac pokazuje na varijablu a bez koristenja

    varijable. (imamo spaseno nesto u pok1.

    pok1( C9), pok2(C10) pok3(C11)

    //Radi primjene imat cemo 3 pok2a, pok2b,pok2c

    a. pok2a=&pok1;

    b. pok2b=*pok1;

    c. pok2c=pok1;

    I sta se desava.

    a. pok2a dobija kao vrijednost adrese pok1 (adresa pok1 je C9)

    b. pok2b dobija vrijednost sa adrese koju pamti pok1(pok1 pamti B5 a vrijednost sa B5 je

    5)

    c. pok2c dobija vrijednost koju pamti pok1 a to je (B5)

    Jedino pravilno je ovo pod C je u a i b nema logike. pod a pok2a pokazuje na pokazivac (moze

    ali sad nemere to tek na TP-u druga sedmica).

    Pod b opet imamo pristup ZEINI:

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

    a

    b 5 4 K C9 5 B5

    c B5 B6 B7

    d

    e

    f

    g

    h

    i

    KADA RADITE SE POKAZIVACIMA CUVAJTE SE ZENICA I GLEDAJTE DAL JE ONO STO

    JE LIJEVO ISTOG TIPA KAO STO JE DESNO (JEL RAVNO OVOO)

    VODITE RACUNA DA KAD RADITE SA ZVJEZDICOM DA RADITE SA VRIJEDNOSCU SA

    ADRESE A NE SA ADRESOM, KAD RADITE SA ADRESOM TAD KORISTITE SAMO

    VARIJABLU.

  • Nizovi

    Nizovi jos jedno cudo.

    Nizovi predstavljaju nesto sto se nanize....tako i niz necega jeste broj necega sto se nanizalo....

    Nizovi su predstavljeni kao KOLONA AUTA DJECE U REDU U SKOLI

    Beskonacni nizovi su nizovi kad bonjo stoji u redu za pasos u vrijeme sezone...nema kraja e

    u programiranju ima kraja :P

    pravljenje niza nesto slicno varijablama samo moramo reci koliko ima necega u nizu

    int niz[10]....pravimo niz cijelih brojeva koji ce imati u sebi 10 brojeva....

    pristupanje brojevima se pristupa po tome koji su po redu tj po nekom indexu......

    BITNO NAGLASITI POSTOJI POZICIJA i VRIJEDNOST NA TOJ POZICIJI

    vrijednost sa neke pozicije kad se pristupa moze se pristupati da se koristi kao informacija i kao

    da nesto tu upisemo (zavisnosti jel se koristi lijevo ili desno od znaka jednakosti (dodjele) )

    ako imamo niz

    int niz[10] (ima neke vrijednosti)

    niz[4]=5;

    kaze na 4 pozicije od pocetka niza upisi 5...(tj na peto mjesto jer je prva pozicija (nula mjesta od

    pocetka))

    zadnja pozicija tj 10 element bi bio niz[9] jer je deseti element 9 mjesta od pocetka.

    U nizovima preporucujemo koristenje for petlje....jer znamo koliko niz ima elemenata.

    prolaz kroz niz kaze pristupi svakom clanu

    for(i=0;i

  • Imamo sad sljedece.

    int niz[10];

    int *pok=&niz[0];

    int *pok2=niz;

    Ovdje vidimo naka cuda adresa prvog clana i pokusali dodjileiti niz,

    ovdje uspjeva dodjela niza, jer samo naziv niza predstavlja adresu prvog clana niza pa su oba

    pokazivaca na adresi B4. i sa pok i pok2 mozemo se kretati kroz niz

    pok++ (uvecava adresu koja je zapamcena u pok) pa bi preslo na B5 a to je ujedno adresa

    drugog clana u nizu (niz[1])

    (pok2+3) pristupa adresi za 3 mjesta od pok2 s time da ne mjenja sadrzaj u pok2.

    Primjene operatora kao na prvoj parcijali postfiksni i sufiksni operatori.

    U SLJEDECIM CASOVIMA JOS OKO POKAZIVACA I NIZOVA.

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

    a

    b

    c

    d

    e B4 B4

    f

    g

    h

    i

  • Funkcije sa nizovima

    Mala promjena u odnosu na obicne funkcije...

    Kad se niz salje u funkciju....tj. ako imamo niz auta...i nekome kazemo idi ocisti niz od auta....

    Prvo pitanje....Koliko ih ima.....Drugo pitanje A DE TO?

    Eno ih tamo ...moramo mu reci gdje se nalazi taj niz auta...i moramo mu reci koliko ih ima...

    kad govorimo gdje se nalazi saljemo adresu......e ovo sa adresama sad za sad zapamtite kao

    ovako je i tako je....funkcija prima neki pokazivac na adresu...da pamti gdje se nalazi i saljemo

    velicinu niza....

    Povratni tip Naziv(int *niz,int vel)

    u ovisnosti cega je niz tako i saljemo pokazivac.

    U primerima cemo vise vidjeti.

    Ispisivanje niza pomoci funckije.

    void ispisiniz(int *niz,int vel)

    {

    int i;

    for(i=0;i

  • int ispisiniz(int *niz,int vel)

    {

    int i;

    int max=niz[0];

    for(i=0;i

  • int izbacniparne(int *niz,int vel)

    {

    int i,j;

    for(i=0;i

  • Struktrure

    Strukture....svi smo nasi samo jasi.

    Strukture su nesto sto mi pravima nema prethodno definisano (nisu funckije)

    Strukture su NAKI tipovi sto su ne definisani racunaru a nama jesu.

    kako se definisu strukture

    NAJGORNJE IH PRAVITE (Na vrhu prije maina prije funkcija)

    Primjer Kompleksni

    struct Kompleksni

    {

    double Re,Im;

    };

    Definicija Kompleksnog preko realnog i imaginarnog.

    Svaki Kompleksni ima realni i imaginarni dio

    int main()

    {

    struct Kompleksni z;

    z.Re=5;

    z.Im=4;

    return 0;

    }

    Ovo za nas ne radi nista, ne vidimo, ali pravi varijablu z (tip kompleksni koji smo definisali sta je)

    i sad ta varijabla u sebi ima i realni i imaginarni dio tj Re i Im, tako i svaka varijabla sljedeca ce

    imati. Kad bi pravili neku strukturu sa vise definicija imali bi vise unutrasnjih vrijednosti.

    Ovo je dobro kad imamo npr definiciju sa 5 vrijednosti da ne definisimo strukturu morali bi za

    svaku varijablu definisati 5 razlictih

    npr kompleksni bez definicije

    z1re,z1im,z2re,z2im itd.... ovo je slucaj sa 2 unutarnje...a da imamo 5 unutarnjih onda bi trebalo

    brojvarijabli * 5 unutarnjih...toliko bi trebalo naziva

    ZADACA

    (Sto manje koda vise bodova)

    1. Napisati Funkciju koja prima niz realnih brojeva i vraca srednju vrijednost decimalnog ostatka.

    2. Napisati Funkciju koja daje broj koji je najdalji od srednje vrijednosti niza.

    3. Naci index elementa koji ima najvecu zadnju cifru.

  • 4.Naci treci najveci element u nizu.(Niz je strogo zabranjeno sortirati)

    5. Naci Broj Razlicitih elemenata u nizu.

    6.Soritrati niz da prvo doju prosti brojevi pa onda ostali.

    7.Napisati funkciju koja prima niz i broj n, naci srednju vrijednost n cifrenih brojeva.(Ako je n=5

    onda PETOCIFRENIH BROJEVA)

    8.Izbaciti iz niza sve eleemente cija je druga cifra sa lijeva jednaka 5

    9. Naci razliku minimalnog i maximalnog elementa u nizu.

    10. Napisati funkciju koja sortira niz brojeva da dodju prvo parni brojevi sortirani od najveceg ka

    najmanjem pa onda neparni od najmanjeg ka najvecem,

    11. Napisati funkciju koja prima niz brojeva i koja mjenja sve elemente niza na taj nacin da mu

    se uvecaju parne cifre, neparne zamjene sa nulom, pa zatim taj broj obrnu.

    Stringovi

    Stringovi se citaju kao prstom po papiru i redom slovo po slovo. Salju se i primaju kao niz znakova...tj isto kao i niz...samo sto nije niz brojeva nego charova....i razlika sto nema velicinu...nego na kraju ima \0 znak....pa samim time koristi se while petlja.

    #include void ispisirijec(char *s) { char *p=s; while(*p!='\0') { printf("%c",*p); p++; } } int brojslova(char *s) { char *p=s; int brojac=0; while(*p!='\0') { if((*p>='A' && *p='a' && *p='a' && tolower(*p)

  • return brojac; } int brojcifri(char *s) { char *p=s; int brojac=0; while(*p!='\0') { if(*p>='0' && *p='a' && tolower(*p)='a' && tolower(*p)='a' && tolower(*p)='a' && tolower(*p)max){max =kt-pt; pm=pt;km=kt;} } }else p++; } ci=pm; while (ci!=km){printf("%c",*ci); ci++;}

  • } void ispisimaximalnibroj (char *s) { char *p=s; char *pt,*kt,*pm,*km; char *ci; int max=0; int broj; while(*p!='\0') { if((tolower(*p)>='a' && tolower(*p)='a' && tolower(*p)max){max =broj; pm=pt;km=kt;} } }else p++; } ci=pm; while (ci!=km){printf("%c",*ci); ci++;} } void izbacivanje(char *okle,char *dokle) { char *pi=okle,*ci=dokle; while(*ci!='\0'){*pi=*ci pi++;ci++;} *pi='\0'; } FILE *Ulaz=fopen("FAJL.txt","r"); if(Ulaz==NULL){printf("greska prilikom otvoaranja datoteke"); exit(1);} File *Izlaz=fopen("Fajl.txt","w"); if(Ulaz==NULL){printf("greska prilikom otvoaranja datoteke"); fclose(Ulaz);exit(1);} while(fscanf(Ulaz,"FormatReda ili jedan element",E STAVLJA)!=EOF && ogranicenjeunosa) fprintf(Izlaz,"FORMATZAISPIS",OKLE CITA);