You are on page 1of 8

URI_LV_Sedmica_14

Zadatak 1

*Kakav izlaz ce dati sljedeci program*/

#include<stdio.h>

main(){

int x=5,z=6;

int *y=&z;

/*deklaracija pokazivaca sa imenom y kojem je dodjeljena adresa varijable z

sto znaci da je to pokazivac na varijablu z*/

printf("Prije operacija \n %d\t%d\n",x,*y);

/*ispis vrijednosti varijable x i z s time sto se vrijednost varijabe z ispisuje

koristenjem pokazivaca na varijablu z tj. pokazivaca y ali u notaciji *y jer sa *

pristupamo vrijednosti varijable na koju y pokazuje tj. vrijednosti var. z*/

y=&x;

/* nakon prethodne linije pokazivac y sada pokazuje na varijablu x*/

printf("Poslije operacija \n %d\t%d\n",x,*y);

system("PAUSE");

/*Napisati program za sabiranje i oduzimanje dva cijela broja korištenjem pokazivaca*/

Zadatak 2

#include<stdio.h>

main(){

float x,y,zbir,razlika;
float *po,*pp; /* deklaracija 2 pokazivaca tipa float*/

void sabiranje_oduzimanje (float,float,float*,float*); /* deklaracija funkcije*/

po=&zbir; /* pokazivac po pokazuje na varijablu zbir*/

pp=&razlika; /* pokazivac pp pokazuje na varijablu razlika*/

printf("Unesite 2 broja:");

scanf("%f%f",&x,&y);

sabiranje_oduzimanje(x,y,po,pp);/*poziv funkcije sa konkretnim parametrima*/

printf("Zbir %f i %f je %.3f\n",x,y,*po); /* ispis brojeva i njihovog zbira*/

printf("Razlika %f i %f je %.3f\n",x,y,razlika);/* ispis brojeva i njihove razlike*/

system("PAUSE");

void sabiranje_oduzimanje(float x,float y,float *po, float *pp){

*po=x+y; /* preko pokazivaca po ali u notaciji *po direktno mjenjamo vrijednost

varijabe na koju pokazuje tj. vrijable zbir kojoj dodjeljuje vrijednost izraza x+y*/

*pp=x-y;/* preko pokazivaca pp u notaciji *pp direktno mjenjamo vrijednost

varijabe na koju pokazuje tj. vrijable razlika kojoj dodjeljuje vrijednost izraza x-y*/

/* funkcija ne vraca vrijednost jer je preko pokazivaca koji su joj prosljedjeni

a koji su pokazivali na varijable od interesa promjenila vrijednost tih varijabi*/

Zadatak 3

#include<stdio.h>

main(){

int a[5]; /*dekaracija niza sa imenom a koji ima 5 elemenata*/

int zbir,razlika;

a[1]=2;

/* drugom eemntu niza a je dodjeljena vrijednost 2, u pitanju je drugi


element jer notacija indeksa niza krece od 0*/

a[0]=3; /* prvom elementu niza je dodjeljena vrijednost 3*/

a[3]=4;

zbir=a[0]+a[1];

/*elmente niza jednostavno mozemo sabirati i oduzimati kao i sve druge

brojeve ali do vrijednosti pojedinih elemenata niza dolazimo preko

indeksa elemenata niza*/

razlika=a[3]-a[0];

printf("%d+%d=%d\n%d-%d=%d",a[0],a[1],zbir,a[3],a[0],razlika);

system("PAUSE");

Zadatak 4

/*Napisati program koji ucitava 8 cijelih brojeva u niz i štampa ucitane brojeve

obrnuto*/

#include<stdio.h>

main(){

int niz[8]; /*dekaracija niza sa imenom niz koji ima 8 el.*/

int i; /* deklaracija int varijable koju cemo korisiti kao brojac prilikom

pristupa svakom elementu niza */

printf("Unesite elemente niza!\n");

/* preko for petje ciji brojac krece od 0 pa do 7 (sto je ukupno 8 koraka

a koliko imamo i elemenata u nizu) vrsimo upis unesenih brojeva u niz

tako da nam brojac predstavlja indeks svakog elementa niza*/

for(i=0; i<8; i++){

printf("Unesite %d. elemenat niza:",i+1);

/* ispis poruke koji element niza unosimo,ali tako da bi dobili


redni broj el. uvecavamo broj indeksa tj.brojaca za 1*/

scanf("%d",&niz[i]);

printf("Niz u obrnutom redosljedu\n");

/* drugom for petljom krecemo se od kraja niza jer smo sada brojac i postavili

na 7 sto je indeks zadnjeg elementa niza, i sve dok nam indeks umajnjem za 1

ne postane >= 0 vrsimo ispis elemenata niza*/

for(i=7; i>=0; i--)

printf("%d\n ",niz[i]);

system("PAUSE");

Zadatak 5

/*Napisati program koji racuna sume elemenata niza cijelih brojeva sa parnim

i neparnim indeksima.Niz ucitati sa tastature.*/

#include<stdio.h>

#define MAX 50 /* uvodimo konstantu*/

main(){

int niz[MAX];

int i,n,suman=0,sumap=0;

printf("Unesite broj elemenata niza:\n");

scanf("%d",&n);

printf("Unesite elemente niza:\n ");


/* sljedece dvije linije (for i scanf) vrse unos elemenata u niz, uvijek

cemo na ovaj nacim vrsiti unos elemenata samo je razlika u broju el. koji

ce niz imati te je u uslovu for petlje potrebno postaviti duzinu za svaki

konkretan niz,ostalo je nepromjenjeno za svaki slucaj*/

for(i=0; i<n; i++)

scanf("%d",&niz[i]);

/* sljedecom for petljom ispitujemo indeks svakog niza i ukoliko je paran

vrijednost elementa sa tim indeksom dodajemo vrijednosti var. sumap u suprotnom

vrijednost dodajemo na vrijednost var. suman*/

for(i=0; i<n; i++){

if(i%2==0)

sumap+=niz[i];

else

suman+=niz[i];

printf("Suma elementa sa parnim indeksima je %d,a sa neparnim indeksima je


%d\n",sumap,suman);

system("PAUSE");

}
Zadatak 6

/* Napisati program koji ucitava u tekstualnu datoteku jednocifrene prirodne brojeve

potom procitati ucitane brojeve iz datoteke te ih ispisati na monitoru.*/

#include<stdio.h>

main(){

int broj;

FILE *dat; /*deklaracija pokazivaca na datoteku,uvijek ga uvodimo ukoliko radimo sa


datotekama*/

/* otvaranje datoteke u modu za zapisivaanje*/

if((dat=fopen("Datoteka.txt","w"))==NULL){

printf("Datoteka nije uspjesno otvorena");

return;}

/* sa if izrazom smo ispitali da li je datoteka uspjesno otvorena u

trazenom modu ukoliko nije potrebno je da se ispise poruka korisniku*/

broj=0;

/*zapisivanje u datoteku*/

while(broj<10){

fprintf(dat,"%5d", broj);

broj++;

/*buduci da je je potrebno upisati jednoscifrene brojeve while ima uslov

da var. broj koja je na pocetku incijalizirana sa 0 bude manja od 10 i sve

do je ispunjen taj uslov vrsiti ce se upisivanje u datotetku preko funkcije

fprintf koja u ovom slucaju ima jos jedan dodatni parametar a to je pokazivac

na datoteku u koju vrsimo unos*/


fclose(dat);/* zatvaramo dadtoteku */

/*otvaranje datoteke u modu za citanje*/

if((dat=fopen("Datoteka.txt","r"))==NULL){

printf("Datoteku nije moguce otvoriti za citanje.");

return;

/* sa if izrazom smo ispitali da li je datoteka uspjesno otvorena u

trazenom modu ukoliko nije potrebno je da se ispise poruka korisniku*/

/*citanje sadrzaja datoteka*/

while(fscanf(dat,"%d",&broj)!=EOF)

printf("%d\n",broj);

/* sve dok je ispunjen while uslov a to je da nismo došli do kraja datoteke

(EOF-end of file) ispisivat cemo njen sadrzaj n standardnom izlazu,monitoru*/

system("PAUSE");

Zadatak 7

/*Napisati program koji u tekstualnu datoteku upisuje tablicu prvih k potencija svih

cijelih brojeva od 1 do n(k i n zadaje korisnik) */

#include<stdio.h>

#define DATOTEKA "rezultat.txt"

/* U ovom zadatku jednostavno opet rješavamo jedan od problema koje smo ranije

slicne radili samo sto sada rjesnje problema ne ispisujemo na ekran vec unosimo

u datoteku i za to koristimo naredbe za rad sa datotekama. Za rjesnje ovog problema


koristimo 2 for petlje (vanjsaka i unutrasnja-vec smo nesto slicno radili kada smo

ispisivali odredjeni znak za definisani broj redova i kolona). Za 1 iteraciju

vanjske petlje izvrse se sve iteracije unutrasnje petlje. Usov za vanjsku petlju

je granicni broj jer za svaki broj od 1 pa do granicnog moramo izracunati potencije(stepen)

a broj stepencije nam je uslov za unutrasnju petju.*/

main(){

FILE *f;

int i,j,k,n,rezultat;

printf("Unesite k(broj potencija):");

scanf("%d",&k);

printf("Unesite n(granicni cijeli broj):");

scanf("%d",&n);

if((f=fopen(DATOTEKA,"w"))==NULL){

printf("Datoteka nije uspjesno otvorena\n");

return;}

for(i=1; i<=n; i++){

rezultat=1;

for(j=1; j<=k; j++){

rezultat*=i;

fprintf(f,"%6d", rezultat);

fprintf(f,"\n");

fclose(f);

system("PAUSE");

You might also like