Osnovi programiranja

  • View
    43

  • Download
    0

Embed Size (px)

DESCRIPTION

osnovi programiranja fakultet elektrotehnike prva godina drugi semestar

Transcript

  • Fakultet Elektrotehnike | sudo_s@live.com

    O

    snov

    i ra

    unar

    stva

    II

    1

    UZORCI

  • Fakultet Elektrotehnike | sudo_s@live.com

    O

    snov

    i ra

    unar

    stva

    II

    2

    5

    5 4 5

    5 4 3 4 5

    5 4 3 2 3 4 5

    5 4 3 2 1 2 3 4 5

    1. Zadatak

    Napisati program koji na ekran raunara ispisuje dati uzorak proizvoljnog broja redova uz pomo petlji. Broj redova zadaje korisnik.( Dat je primjer za 5 redova ).

    #includevoid main(){ int i,j; int red; printf("Unesite broj redova: "); scanf("%d",&red); for(i=0;i

  • Fakultet Elektrotehnike | sudo_s@live.com

    O

    snov

    i ra

    unar

    stva

    II

    3

    5. Zadatak

    Neka program od korisnika uita veliko slovo i na izlazu (ekranu) odtampa trougao po datom pravilu. Primjer trougla za uitano slovo 'E'.

    #includevoid main(){ char znak; int i,j; printf("Unesite veliko slovo: "); scanf("%c",&znak); for(i='A';ii;j--) putchar(' '); for(j='A';j='A';j--) putchar(j); putchar('\n'); }}

    6. Zadatak

    Napisati program koji na ekran raunara ispisuje dati uzorak proizvoljnog broja redova uz pomo petlji. Broj redova zadaje korisnik.( Dat je primjer za 5 redova ).

    #include #include int main() { int i,j,n; printf("Unesite broj redova\n"); scanf("%d",&n); for(i=0;i

  • Fakultet Elektrotehnike | sudo_s@live.com

    O

    snov

    i ra

    unar

    stva

    II

    4

    9. Zadatak

    Napisati program koji na ekran raunara ispisuje dati uzorak proizvoljnog broja redova uz pomo petlji. Nije dozvoljeno koristiti naredbe tipa printf() i sl. (Dat je primjer uzorka za 5 redova.)

    #includevoid main(){ char znak; int i,j; printf("Unesite veliko slovo: "); scanf("%c",&znak); for(i='A';i

  • Fakultet Elektrotehnike | sudo_s@live.com

    O

    snov

    i ra

    unar

    stva

    II

    5

    13. Zadatak

    Napisati program koji na ekran raunara ispisuje dati uzorak proizvoljnog broja redova uz pomo petlji. Broj redova zadaje korisnik.

    #include void main(){

    int i;int k;int br_red;printf("Unesite broj redova: ");scanf("%d",&br_red);for(i=1;i

  • Fakultet Elektrotehnike | sudo_s@live.com

    O

    snov

    i ra

    unar

    stva

    II

    6

    16. Zadatak

    Napisati program koji na ekran ispisuje slijedei uzorak proizvoljne irine, tj. znak do koga se ispisuje uzorak unosi korisnik sa tastature. Primjer za slovo 'E'.

    #include#includevoid main(){ char ZNAK; int i,j; printf("Unesite veliko slovo: "); scanf("%c",&ZNAK); if(ZNAK>='a'&& ZNAK

  • Fakultet Elektrotehnike | sudo_s@live.com

    O

    snov

    i ra

    unar

    stva

    II

    7

    19. Zadatak

    Napisati program koji na ekran raunara ispisuje dati uzorak proizvoljnog broja redova uz pomo petlji. Broj redova zadaje korisnik.

    #includeint main(void){ int i,j,n; printf("Unesi broj redova:\n"); scanf("%d",&n); for(i=1;i

  • Fakultet Elektrotehnike | sudo_s@live.com

    O

    snov

    i ra

    unar

    stva

    II

    8

    FUNKCIJE, POKAZIVAII

    NIZOVI

  • Fakultet Elektrotehnike | sudo_s@live.com

    O

    snov

    i ra

    unar

    stva

    II

    9

    20. Zadatak

    Napisati rekurzivnu funkciju prototipa int aniz(int a0, int d, int n);koja rauna n-ti lan aritmetikog niza. N-ti lan aritmetikog niza se rauna prema formuli:

    #include int aniz(int a0, int d, int n) { if (n == 0) return a0; else return d + aniz(a0, d, n-1);}int main () { int a0, d, n, nclan; while (1) { printf ("\nUpisite nulti clan, diferenciju i indeks"

    "zadanog clana :");scanf ("%d %d %d", &a0, &d, &n);if (n < 0) break;nclan = aniz (a0, d, n);printf ("\n %d. clan aritmetickog niza, s nultim "

    "clanom %d i diferencijom %d: %d \n", n, a0,d, nclan);

    }printf ("\nNegativni indeks clana %d\n", n);return 0;

    }

    21. Zadatak

    Napisati funkviju koja ima prototip void naopako(char *); a vri inverziju redoslijeda slova u zadatoj rijei.

    #include #define MAX 20void naopako(char *);void main() {

    char unos[MAX];printf("Unesite rijec:");gets(&unos);

    naopako(&unos);printf("Rijec naopako: %s\n",unos);

    }

    void naopako(char *niz){char tmp[MAX];int n,k,i=0;while ((tmp[i]=niz[i])) {

    i++;}n=0;for(k=i-1; k>=0;k--) {

    niz[n]=tmp[k];n++;

    }}

    22. Zadatak

    Napisati i testirati fnkciju prototipa unsigned long bit_count (unsigned long value); koja vraa broj binarnih jedinica u binarnoj reprezentaciji broja value.

    #includeunsigned long bit_count(unsigned long value);void main(){ int num_bit; num_bit=bit_count(79); printf("%d\n",num_bit); }unsigned long bit_count(unsigned long value) { int count=0; while(value=0) { if(value&1) count++; value>>1; } return count; }

  • Fakultet Elektrotehnike | sudo_s@live.com

    O

    snov

    i ra

    unar

    stva

    II

    10

    23. Zadatak

    Napisati funkciju koja ima prototip void zamijeni(double *,double *); a vri zamjenu varijabli tipa double.

    #includevoid zamijeni(double *,double *);void main(void) { double x=9,y=7; printf("prije pozivanja funkcije\nx=%lf\ty=%if\n",x,y); zamijeni(&x,&y); printf("poslije pozivanja funkcije\nx=%lf\ty=%if\n",x,y); }void zamijeni(double *a,double *b) { double pom; pom=*a; *a=*b; *b=pom; }

    24. Zadatak

    Napisati funkciju iji je prototip dat sa float suma_niza ( float *,int n);Koja nalazi sumu elemenata niza realnih brojeva.

    #includefloat suma_niza ( float *,int n);void main (void){ int i=0,n; float niz[20]; printf("Unesite zeljeni broj elemenata niza (max"

    "20):\n"); scanf("%d",&n); printf("Unesite elemente niza: \n"); for(i;i

  • Fakultet Elektrotehnike | sudo_s@live.com

    O

    snov

    i ra

    unar

    stva

    II

    11

    prvi=niz+rbr1-1; zadnji=niz+rbr2-1; suma=psuma(prvi,zadnji); printf("Parcijalna suma niza je: %d\n",suma); }int psuma(int*start, int*kraj) { int rezultat=0; while(start

  • Fakultet Elektrotehnike | sudo_s@live.com

    O

    snov

    i ra

    unar

    stva

    II

    12

    }double *najveci(double f_niz[],int N){

    int i;double *pnajveci;pnajveci = f_niz;for(i=1;i *pnajveci)*pnajveci = *(f_niz+i);

    }return pnajveci;

    }

    30. Zadatak

    Napisati funkciju koja vraa pokaziva na najvei lan cjelobrojnog niz. U glavnom programu unijeti niz te pozvati funkciju i ispisati najvei lan.

    #include#define MAX 100int *najveci(int *, int);void main() { int A[MAX]; int i,n,*pmax; do{ printf("Unesite dimenziju niza: "); scanf("%d", &n); } while(nMAX); printf("Unesite elemente cjelobrojnog niza: \n"); for(i=0;i

  • Fakultet Elektrotehnike | sudo_s@live.com

    O

    snov

    i ra

    unar

    stva

    II

    13

    32. Zadatak

    Napisati funkciju iji je prototip dat sa int EX_ILI(int x,int y); koja prihvata dva argumenta x i y ije vrijednosti mogu biti 1 ili 0. Data funkcija treba simulirati rad ekskluzivnog ILI kola. Rad funkcije testirati u glavnom programu.

    #include int EX_ILI(int x, int y);void main(){

    int x,y;do{

    printf("Unesite X: ");scanf("%d",&x);

    }while (x1);do{

    printf("Unesite Y: ");scanf("%d",&y);

    }while (y1 );printf("Ekskluzivno ili: %d\n",EX_ILI(x,y));

    }int EX_ILI(int x, int y){

    int rez;rez = !x & y | x & !y;return rez;

    }

    33. Zadatak

    Napisati funkciju iji je prototip dat sa double skal_pro (double a[], double b[], int n);koja izraunava skalarni proizvod dva vektora a i bdimenzija 1xn. U glavnom programu testirati napisanu funkciju.

    #include double skal_pro(double a[],double b[],int n);void main(){

    double a[20],b[20];int dim;int i;printf("Unesite dimenziju vektora: ");scanf("%d",&dim);printf("Unesite clanove vektora a:\n");for (i=0;i

  • Fakultet Elektrotehnike | sudo_s@live.com

    O

    snov

    i ra

    unar

    stva

    II

    14

    35. Zadatak

    Napisati funkciju iji je prototip dat sa: char *spoji(char* s, char *t); koja spaja stringove s i t tako da na kraj stringa s nadovee string t. Vraena vrijednost iz funkcije je pokaziva na rezultujui string. (Napomena: Nije dozvoljeno koritenje funkcija iz .)

    #includechar *spoji(char *s,char *t);void main(){ char string1[50]; char string2[50]; printf("Unesite prvi string:"); gets(string1); printf("Unesite drugi string:"); gets(string2); printf("Rezultujuci string je: %s\n", spoji(string1,string2));}char *spoji(char *s,char *t) { int i=0,j=0; while(s[i]) i++; while((s[i]=t[j])) { i++; j++; } s[i]='\0'; return s;}

    36. Zadatak

    Uitati dvije rijei. U glavnom programu ispisati zbroj njihovih duljina. Duljinu rijei izraunati u funkciji.

    #includeint zbroj (char *p1, char *p2){

    int i, br = 0;for (i=0;i

  • Fakultet Elektrotehnike | sudo_s@live.com

    O

    snov

    i ra

    unar

    stva

    II

    15

    38. Zadatak

    Napisati funkciju iji je prototip dat sa: int str_cmp(char* s,char *t); koja provjerava da li su stringovi s i t leksikografski jednaki. Ukoliko su stringovi jednak