P_061 #include // Prototip funkcije int Procitaj_redak ( void ); main() { // Prijava varijabli int n; // Broj znakova u retku int Redak = 0; // Brojac procitanih redaka int Zbroj = 0; // Brojac procitanih znakova float Prosjek; // Prosjecan broj znakova // Uputa korisniku puts("Upisite nekoliko redaka teksta (kraj: prazan redak)"); // Citanje teksta while ( (n = Procitaj_redak()) > 0 ) { Zbroj = Zbroj + n; // Moze i: Zbroj += n; ++Redak; } // Prosjecni broj procitanih znakova Prosjek = (float)Zbroj/Redak; // Ispis rezultata printf ("Prosjecni broj procitanih znakova po retku =%5.2f", Prosjek); return 0; } // Funkcija Procitaj_redak int Procitaj_redak ( void ) { char Redak[80]; // Redak teksta - znakovni niz int Brojac = 0; // Brojac procitanih znakova // Citanje retka, znak po znak while ( (Redak[Brojac] = getchar()) != '\n' ) Brojac++; // Povrat rezultata return Brojac; } ------------------------------------------------------------------------------------------------------------ P_062 #include #include // Konstanta #define TOL 0.0001 // Prototipovi funkcija void Suzavanje_podrucja ( void ); double Funkcija ( double ); // Prijava (globalnih) varijabli double A, B, Xl, Xd, Yl, Yd; // Glavna funkcija main() { // Prijava varijabli double Xmax, Ymax; // Unos podataka printf ("Upisite donju granicu A = "); scanf ("%lf", &A); printf ("Upisite gornju granicu B = "); scanf ("%lf", &B); // Suzavanje podrucja do Suzavanje_podrucja(); while ( (Yl != Yd) && ((B - A) > 3*TOL) ); // Rezultati Xmax = 0.5*(Xl + Xd); Ymax = Funkcija ( Xmax ); printf ("\nXmax = %8.6lf Ymax = %8.6lf", Xmax, Ymax); return 0; } // Funkcija Suzavanje_podrucja void Suzavanje_podrucja ( void ) { // Pokusne tocke Xl = 0.5*(A + B) - 0.5*TOL; Xd = Xl + TOL; // Iznosi funkcija u pokusnim tockama Yl = Funkcija ( Xl ); Yd = Funkcija ( Xd ); // Maksimum u lijevom dijelu? if ( Yl > Yd ) { B = Xd; return; } // Maksimum u desnom dijelu? if ( Yl < Yd ) A = Xl; return; } // Funkcija Funkcija double Funkcija ( double x ) { return ( x*cos(x) ); } ------------------------------------------------------------------------------------------------------------ P_063 #include // Prototip funkcije int Procitaj_redak ( void ); // Prijava globalnih varijabli int Redak = 0; // Brojac procitanih redaka int Zbroj = 0; // Brojac procitanih znakova main() { // Prijava varijabli int n; // Broj znakova u retku float Prosjek; // Prosjecan broj znakova // Uputa korisniku puts("Upisite nekoliko redaka teksta (kraj: prazan redak)"); // Citanje teksta while ( (n = Procitaj_redak()) > 0 ) { Zbroj += n; ++Redak; } // Prosjecni broj procitanih znakova Prosjek = (float)Zbroj/Redak; // Ispis rezultata printf ("Prosjecni broj procitanih znakova po retku =%5.2f", Prosjek); return 0; } // Funkcija Procitaj_redak int Procitaj_redak ( void ) { char Redak[80]; // Redak teksta (ime moze biti izvor zabune!) int Brojac = 0; // Brojac procitanih znakova // Citanje retka, znak po znak while ( (Redak[Brojac] = getchar()) != '\n' ) Brojac++; // Povrat rezultata return Brojac; } ------------------------------------------------------------------------------------------------------------ P_064 #include // Prototip funkcije int Fibonacci ( int ); main() { // Prijava varijabli int n; // Broj clanova Fibonaccijeva niza int i; // Brojac // Unos podataka printf ("Upisite broj clanova Fibonaccijeva niza = "); scanf ("%d", &n); // Clanovi Fibonaccijeva niza for ( i = 1; i <= n; i++) printf ("\nF(%d) = %d", i, Fibonacci ( i )); return 0; } // Funkcija za izracunavanje Fibonaccijevih brojeva int Fibonacci ( int i ) { static int F1 = 1, F2 = 1; int F; // Fibonaccijev broj F = ( i < 3 ) ? 1 : F1 + F2; // Pamcenje prethodnih vrijednosti F2 = F1; // Predzadnji postaje zadnji, a zadnji se "gubi" F1 = F; // Trenutni postaje predzadnji // Povrat u pozivnu funkciju return F; } - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // Funkcija za izracunavanje Fibonaccijevih brojeva static int F1 = 1, F2 = 1; int Fibonacci ( int i ) { int F; // Fibonaccijev broj F = ( i < 3 ) ? 1 : F1 + F2; // Pamcenje prethodnih vrijednosti F2 = F1; // Predzadnji postaje zadnji, a zadnji se "gubi" F1 = F; // Trenutni postaje predzadnji // Povrat u pozivnu funkciju return F; } ------------------------------------------------------------------------------------------------------------ P_065 #include // Prototip funkcije extern int Fibonacci ( int ); main() { // Prijava varijabli int n; // Broj clanova Fibonaccijeva niza int i; // Brojac // Unos podataka printf ("Upisite broj clanova Fibonaccijeva niza = "); scanf ("%d", &n); // Clanovi Fibonaccijeva niza for ( i = 1; i <= n; i++) printf ("\nF(%d) = %d", i, Fibonacci ( i )); return 0; } ------------------------------------------------------------------------------------------------------------