0% found this document useful (0 votes)
54 views16 pages

Spremanje Studenata Etf-A, Spr-A, Fit-A, Pmf-A, Udg-A Tel. Tel. 067 555 439, Web: WWW - Spremanje.info

The document contains a list of additional practice questions that may appear on an exam from previous years (2010/2011) in programming language C. It includes 10 multiple choice questions related to C programming concepts like data types, loops, conditional statements, functions etc. It also provides 8 problems/tasks with examples of code snippets to write functions to perform tasks like sorting arrays, counting occurrences in arrays, string length calculation etc. The document recommends visiting their website for more preparation materials and information for the exam.

Uploaded by

FullyAttractive
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
54 views16 pages

Spremanje Studenata Etf-A, Spr-A, Fit-A, Pmf-A, Udg-A Tel. Tel. 067 555 439, Web: WWW - Spremanje.info

The document contains a list of additional practice questions that may appear on an exam from previous years (2010/2011) in programming language C. It includes 10 multiple choice questions related to C programming concepts like data types, loops, conditional statements, functions etc. It also provides 8 problems/tasks with examples of code snippets to write functions to perform tasks like sorting arrays, counting occurrences in arrays, string length calculation etc. The document recommends visiting their website for more preparation materials and information for the exam.

Uploaded by

FullyAttractive
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 16

SPREMANJE STUDENATA ETF-a, SPR-a, FIT-a, PMF-a, UDG-a

tel. tel. 067 555 439, web: www.spremanje.info

PRIPREMA ZA ZAVRSNI 2011/2012 IZ C-a


(ovo su dodatna pitanja koja su prosle godine bila)

Pitanja I modifikacije na pitanja sa roka 2010/2011 godine

1. Koja od sledećih deklaracija main funkcije nije validna?


 
a) int main()
b) int main(int argc, char *argv[])
c) Obje su validne

2. Koja od navedenih nije korektan tip promjenljive?


a) float
b) real
c) int
d) double

3.Koja od sledećih if naredbi je tačna?


a) if izraz
b) if { izraz }
c) if ( izraz)
d) izraz if

4. Šta je od ponuđenih odgovora tačno?


a) 1
b) 66
c) 1
d) -1
e) Sve od ponuđenih

5. Šta će biti ispisano sledećim naredbama?


for (brojac = 1; brojac < 5; ++brojac);
printf("brojac = %d\n", brojac);

a) bice ispisano od brojac = 1 do brojac = 4


b) brojac = 5

6. Šta će biti ispisano sledećim naredbama?


for (brojac = 1; brojac < 5; ++brojac)
printf("brojac = %d\n", brojac) ;

a) bice ispisano od brojac = 1 do brojac = 4


b) brojac = 5

Na website-u se možete naći sve potrebne informacije/materijale za polaganje ispita 1


 
SPREMANJE STUDENATA ETF-a, SPR-a, FIT-a, PMF-a, UDG-a
tel. tel. 067 555 439, web: www.spremanje.info
7. Šta će biti ispisano sledećim naredbama?
for (brojac = 1; brojac < 5; ++brojac){}
printf("brojac = %d\n", brojac);

a) bice ispisano od brojac = 1 do brojac = 4


b) brojac = 5
8. Šta će biti ispisano sledećim naredbama?
for (brojac = 1; brojac < 5; ++brojac){;
printf("brojac = %d\n", brojac); }

a) bice ispisano od brojac = 1 do brojac = 4


b) brojac = 5

c) Greska

d) Nista od ponudjenih

9. Izračinati da li je ovaj iskaz tačan !(1 &&0 || !1)


a) Tačan
b) Netačan

10. Šta se od sledećeg prvo izračunava?

a) && b) || c) !

Na website-u se možete naći sve potrebne informacije/materijale za polaganje ispita 2


 
SPREMANJE STUDENATA ETF-a, SPR-a, FIT-a, PMF-a, UDG-a
tel. tel. 067 555 439, web: www.spremanje.info
Zadaci-Problemi iz 2011/2012:

1. Napisati program za sortiranje niza od N èlanova u opadajucem redosledu. Koristiti bilo koji
algoritam sortiranja implementiran u okviru odgovarajuæe funkcije.

#include <stdio.h>
#include <stdlib.h>

void fun(int *, int);//prototip funkcije

int main(int argc, char *argv[])


{
int x[10],i,j,n,pom;
printf("Unesi duzinu niza:\n");
scanf("%d",&n);
printf("Unesi niz\n");
//----------Unos niza-----------
for(i=0;i<n;i++){
scanf("%d",&x[i]);
}
//------------------------------

// -----poziv funkcije
fun(&x[0],n);
//---stampanje niza-----------------
for(i=0;i<n;i++){
printf("%d ",x[i]);
}
system("PAUSE");
return 0;
}
void fun(int *x, int n){
int i,j,pom;
//----------SORTIRANJE----------
for(i=0;i<n-1;i++){
for(j=i+1;j<n;j++){
if (x[i]<x[j]){
// da je trazila rastuci samo nijenjate znak ">"
pom=x[i];
x[i]=x[j];
x[j]=pom;
}

}
}
//------------------------------
}

Na website-u se možete naći sve potrebne informacije/materijale za polaganje ispita 3


 
SPREMANJE STUDENATA ETF-a, SPR-a, FIT-a, PMF-a, UDG-a
tel. tel. 067 555 439, web: www.spremanje.info
 
 
2. Napisati funkciju kojom se odredjuje broj pojavljivanja odredjenog cijelog broja u nizu od N
elemenata. Funkciju pozvati iz glavnog programa. Provjeriti njen rad.
 
#include <stdio.h>
#include <stdlib.h>

int fun(int *, int, int);//prototip funkcije

int main(int argc, char *argv[])


{
int x[10],i,j,n,pom;
printf("Unesi duzinu niza:\n");
scanf("%d",&n);
printf("Unesi niz\n");
//----------Unos niza-----------
for(i=0;i<n;i++){
scanf("%d",&x[i]);
}
//------------------------------

// -----poziv funkcije
printf("Ima %d ponavljanja\n",fun(&x[0],n,5));

system("PAUSE");
return 0;
}
int fun(int *x, int n, int pon){
int i,br=0;
//----------prolazak kroz niz----------
for(i=0;i<n;i++){
if (x[i]==pon){
br++;//isto kao br=br+1;
}
}
//------------------------------
return br;
}
 
 
4. Napisati sopstvenu funkciju za odredjivanje dužine niza karaktera (stringa). Funkciju pozvati iz
glavnog programa. Provjeriti njen rad.
 
 
#include <stdio.h>
#include <stdlib.h>

int fun(char *);//prototip funkcije

Na website-u se možete naći sve potrebne informacije/materijale za polaganje ispita 4


 
SPREMANJE STUDENATA ETF-a, SPR-a, FIT-a, PMF-a, UDG-a
tel. tel. 067 555 439, web: www.spremanje.info
int main(int argc, char *argv[])
{
char s[50];
printf("Unesi string\n");
gets(s);//unosenje stringa

// -----poziv funkcije
printf("Ima %d karaktera\n",fun(s));// poziv fun za char samo
fun(s)

system("PAUSE");
return 0;
}
int fun(char *s){
int i,br=0;
//----------prolazak kroz niz----------
i=0;// od pocetka
while(s[i]!='\0'){// do kraja
br++;
i++;
}
//------------------------------
return br;
}

 

5. Napisati funkciju kojom se odredjuje broj pojavljivanja negativnih cijelih brojeva u nizu od N e
elemenata. Funkciju pozvati iz glavnog programa. Provjeriti njen rad.
 
#include <stdio.h>
#include <stdlib.h>

int fun(int *, int);//prototip funkcije

int main(int argc, char *argv[])


{
int x[10],i,j,n,pom;
printf("Unesi duzinu niza:\n");
scanf("%d",&n);// n -> duzina niza
printf("Unesi niz\n");
//----------Unos niza-----------
for(i=0;i<n;i++){
scanf("%d",&x[i]);
}
//------------------------------

// -----poziv funkcije
printf("Ima %d negativna elementa\n",fun(&x[0],n));

Na website-u se možete naći sve potrebne informacije/materijale za polaganje ispita 5


 
SPREMANJE STUDENATA ETF-a, SPR-a, FIT-a, PMF-a, UDG-a
tel. tel. 067 555 439, web: www.spremanje.info
system("PAUSE");
return 0;
}
int fun(int *x, int n){
int i,br=0;
//----------prolazak kroz niz----------
for(i=0;i<n;i++){
if (x[i]<0){
br++;//isto kao br=br+1;
}
}
//------------------------------
return br;
}
 

6. Napisati funkciju kojom se od ulaznog niza cijelih brojeva dužine N kreira novi niz koji sadrži
samo pozitivne elementa toga niza. Funkciju pozvati iz glavnog programa. Provjeriti njen rad.

#include <stdio.h>
#include <stdlib.h>

void fun(int *, int, int *, int *);//prototip funkcije

int main(int argc, char *argv[])


{
int x[10],y[10],i,j,nx,ny,pom;
printf("Unesi duzinu niza:\n");
scanf("%d",&nx);// n -> duzina niza
printf("Unesi niz\n");
//----------Unos niza-----------
for(i=0;i<nx;i++){
scanf("%d",&x[i]);
}
//------------------------------

// -----poziv funkcije
fun(&x[0],nx,&y[0],&ny);// proslijedjivanje preko pokazivaca drugog
niza
//funkciji kako bi mogla da promjeni duzinu i formira novi niz Y
printf("Novi niz je\n");
for(i=0;i<ny;i++){
printf("%d ",y[i]);
}
system("PAUSE");
return 0;
}
void fun(int *x, int n,int *y, int *ny){
int i,br=0;

Na website-u se možete naći sve potrebne informacije/materijale za polaganje ispita 6


 
SPREMANJE STUDENATA ETF-a, SPR-a, FIT-a, PMF-a, UDG-a
tel. tel. 067 555 439, web: www.spremanje.info
(*ny)=0;// u startu drugi niz nema ni jednog elementa

//----------prolazak kroz niz----------


for(i=0;i<n;i++){
if (x[i]>0){
y[(*ny)++]=x[i];//prepisujem pozitivne elemente u drugi
niz
}
}
//------------------------------

}
 

7. Napisati funkciju kojom se izračunava indeks telesne mase BMI po formuli


BMI=tezina_u_kilogramima/(visina_u_metrima)2. Tezina i visina se zadaju. Funkciju pozvati iz
glavnog programa. Provjeriti njen rad.
 
#include <stdio.h>
#include <stdlib.h>

float BMI(float,float);//prototip funkcije

int main(int argc, char *argv[])


{
float tez, vis;
printf("Unesi tezinu:\n");
scanf("%f",&tez);// unos
printf("Unesi visinu\n");
scanf("%f",&vis);
printf("BMI je %f\n",BMI(tez,vis));

system("PAUSE");
return 0;
}
float BMI(float tez,float vis){
return tez/(vis*vis);

}
 

8. Napisati funkciju za izračunavanje snage disipacije na otporniku vrijednosti R kroz koji protiče
jednosmjerna struja jačine I. Disipacija se izračunava po formuli P=R*I2. Funkciju pozvati iz glavnog
programa. Provjeriti njen rad.
 
#include <stdio.h>
#include <stdlib.h>

Na website-u se možete naći sve potrebne informacije/materijale za polaganje ispita 7


 
SPREMANJE STUDENATA ETF-a, SPR-a, FIT-a, PMF-a, UDG-a
tel. tel. 067 555 439, web: www.spremanje.info
float disipacija(float,float);//prototip funkcije

int main(int argc, char *argv[])


{
float R, I;
printf("Unesi tezinu:\n");
scanf("%f",&R);// unos
printf("Unesi visinu\n");
scanf("%f",&I);
printf("Disipacija je je %f\n", disipacija(R,I));

system("PAUSE");
return 0;
}
float disipacija(float R,float I){
return R*I*I;

}
 

9. Napisati funkciju za permutovanje cifara cijelog broja. Uzeti trocifren broj. Funkciju pozvati iz
glavnog programa. Provjeriti njen rad.
 
#include <stdio.h>
#include <stdlib.h>

int fun(int);//prototip funkcije

int main(int argc, char *argv[])


{
int R;
printf("Unesi cijeli broj:\n");
scanf("%d",&R);// unos

printf("Permutovani broj %d\n",fun(R));

system("PAUSE");
return 0;
}
int fun(int R){
int x;
x=R%10;
R=R/10;
while(R!=0){
x=x*10+R%10;
R=R/10;
}
return x;
}
 

Na website-u se možete naći sve potrebne informacije/materijale za polaganje ispita 8


 
SPREMANJE STUDENATA ETF-a, SPR-a, FIT-a, PMF-a, UDG-a
tel. tel. 067 555 439, web: www.spremanje.info

10. Napisati funkciju kojom se od ulaznog niza realnih brojeva kreira novi niz koji sadrži elemente iz
ulaznog niza koji su veći od njegove srednje vrijednosti. Dužina ulaznog niza je N. Funkciju pozvati iz
glavnog programa. Provjeriti njen rad.
 

#include <stdio.h>
#include <stdlib.h>

void fun(float *, int, float *, int *);//prototip funkcije

int main(int argc, char *argv[])


{ float x[10],y[10];
int i,j,nx,ny,pom;
printf("Unesi duzinu niza:\n");
scanf("%d",&nx);// n -> duzina niza
printf("Unesi niz\n");
//----------Unos niza-----------
for(i=0;i<nx;i++){
scanf("%f",&x[i]);
}
//------------------------------

// -----poziv funkcije
fun(&x[0],nx,&y[0],&ny);// proslijedjivanje preko pokazivaca drugog
niza
//funkciji kako bi mogla da promjeni duzinu i formira novi niz Y
printf("Novi niz je\n");
for(i=0;i<ny;i++){
printf("%f ",y[i]);
}
system("PAUSE");
return 0;
}
void fun(float *x, int n,float *y, int *ny){
int i,br=0;
float ar=0;
(*ny)=0;// u startu drugi niz nema ni jednog elementa

//----------prolazak kroz niz i odredjivanje aritmeticke sredine----


------
for(i=0;i<n;i++){
ar=ar+x[i];
}
ar=ar/n;

for(i=0;i<n;i++){
if (x[i]>ar){
y[(*ny)++]=x[i];//prepisujem pozitivne elemente u drugi

Na website-u se možete naći sve potrebne informacije/materijale za polaganje ispita 9


 
SPREMANJE STUDENATA ETF-a, SPR-a, FIT-a, PMF-a, UDG-a
tel. tel. 067 555 439, web: www.spremanje.info
niz
}
}
//------------------------------

}
 
II Problem:
1. Napisati program koji učitava niz od N cijelih brojeva i odredjuje broj parnih i broj neparnih.
 
#include <stdio.h>
#include <stdlib.h>

void fun(int *, int);//prototip funkcije

int main(int argc, char *argv[])


{
int x[10],i,n,brp=0,brn=0;
printf("Unesi duzinu niza:\n");
scanf("%d",&n);
printf("Unesi niz\n");
//----------Unos niza-----------
for(i=0;i<n;i++){
scanf("%d",&x[i]);
}
//------------------------------

//---odredjivanje broja parnih i broja neparnih-----------------


for(i=0;i<n;i++){
if (x[i]%2==0){//uslov za parne
brp++; }
if (x[i]%2!=0){//uslov za neparne
brn++; }
}
printf("Broj parnih je %d\n",brp);
printf("Broj neparnih je %d\n",brn);

system("PAUSE");
return 0;
}
 

2. Napisati program koji učitava niz od N cijelih brojeva i odredjuje broj pozitivnih i broj
negativnih elemenata.
 
#include <stdio.h>
#include <stdlib.h>

void fun(int *, int);//prototip funkcije

Na website-u se možete naći sve potrebne informacije/materijale za polaganje ispita 10


 
SPREMANJE STUDENATA ETF-a, SPR-a, FIT-a, PMF-a, UDG-a
tel. tel. 067 555 439, web: www.spremanje.info
int main(int argc, char *argv[])
{
int x[10],i,n,brp=0,brn=0;
printf("Unesi duzinu niza:\n");
scanf("%d",&n);
printf("Unesi niz\n");
//----------Unos niza-----------
for(i=0;i<n;i++){
scanf("%d",&x[i]);
}
//------------------------------

//---odredjivanje broja pozitivnih i negativnih-----------------


for(i=0;i<n;i++){
if (x[i]>0){//uslov za parne
brp++; }
if (x[i]<0){//uslov za neparne
brn++; }
}
printf("Broj pozitivnih je %d\n",brp);
printf("Broj negativnih je %d\n",brn);

system("PAUSE");
return 0;
}
 

3. Napisati program koji učitava niz od N cijelih brojeva i pokazuje koliko je elemeneta djeljivo
sa 3.
 
#include <stdio.h>
#include <stdlib.h>

void fun(int *, int);//prototip funkcije

int main(int argc, char *argv[])


{
int x[10],i,n,brd=0;
printf("Unesi duzinu niza:\n");
scanf("%d",&n);
printf("Unesi niz\n");
//----------Unos niza-----------
for(i=0;i<n;i++){
scanf("%d",&x[i]);
}
//------------------------------

//---odredjivanje broja pozitivnih i negativnih-----------------


for(i=0;i<n;i++){
if (x[i]%3==0){//uslov za parne

Na website-u se možete naći sve potrebne informacije/materijale za polaganje ispita 11


 
SPREMANJE STUDENATA ETF-a, SPR-a, FIT-a, PMF-a, UDG-a
tel. tel. 067 555 439, web: www.spremanje.info
brd++; }

}
printf("Broj dijeljivih je %d\n",brd);

system("PAUSE");
return 0;
}
 

4. Napisati program koji učitava niz od N cijelih brojeva i računa sumu parnih i sumu neparnih
elemenata.
 
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int x[10],i,n,sp=0,sn=0;
printf("Unesi duzinu niza:\n");
scanf("%d",&n);
printf("Unesi niz\n");
//----------Unos niza-----------
for(i=0;i<n;i++){
scanf("%d",&x[i]);
}
//------------------------------

//---odredjivanje broja parnih i broja neparnih-----------------


for(i=0;i<n;i++){
if (x[i]%2==0){//uslov za parne
sp=sp+x[i]; }
if (x[i]%2!=0){//uslov za neparne
sn=sn+x[i]; }
}
printf("Suma parnih je %d\n",sp);
printf("Suma neparnih je %d\n",sn);

system("PAUSE");
return 0;
}
 

5. Napisati program koji učitava niz od N cijelih brojeva i sortira ih u opadajućem redosledu.
 
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int x[10],i,j,n,pom;

Na website-u se možete naći sve potrebne informacije/materijale za polaganje ispita 12


 
SPREMANJE STUDENATA ETF-a, SPR-a, FIT-a, PMF-a, UDG-a
tel. tel. 067 555 439, web: www.spremanje.info
printf("Unesi duzinu niza:\n");
scanf("%d",&n);
printf("Unesi niz\n");
//----------Unos niza-----------
for(i=0;i<n;i++){
scanf("%d",&x[i]);
}
//------------------------------

// -----sortiranje
for(i=0;i<n-1;i++){
for(j=i+1;j<n;j++){
if (x[i]<x[j]){
// da je trazila rastuci samo nijenjate znak ">"
pom=x[i];
x[i]=x[j];
x[j]=pom;
}

}
}
//---stampanje niza-----------------
for(i=0;i<n;i++){
printf("%d ",x[i]);
}
system("PAUSE");
return 0;
}

6. Napisati program koji od ulaznog niza cijelih brojeva kreira novi niz koji sadrži samo
negativne elemente. Dužina niza N se zadaje.
 
#include <stdio.h>
#include <stdlib.h>

void fun(int *, int, int *, int *);//prototip funkcije

int main(int argc, char *argv[])


{
int x[10],y[10],i,j,nx,ny,pom;
printf("Unesi duzinu niza:\n");
scanf("%d",&nx);// n -> duzina niza
printf("Unesi niz\n");
//----------Unos niza-----------
for(i=0;i<nx;i++){
scanf("%d",&x[i]);
}
//------------------------------

Na website-u se možete naći sve potrebne informacije/materijale za polaganje ispita 13


 
SPREMANJE STUDENATA ETF-a, SPR-a, FIT-a, PMF-a, UDG-a
tel. tel. 067 555 439, web: www.spremanje.info
//----------formiranje novog niza Y----------
ny=0;// u startu drugi niz nema ni jednog elementa
for(i=0;i<nx;i++){
if (x[i]<0){
y[ny++]=x[i];//prepisujem pozitivne elemente u drugi niz
}
}
printf("Novi niz je\n");
for(i=0;i<ny;i++){
printf("%d ",y[i]);
}
system("PAUSE");
return 0;
}

7. Napisati program koji učitava rečenicu od najviše 80 znakova i ispisuje koliko se puta pojavljuje
slovo “A” ili “a”.
 
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
char s[81]; // 80 karaktera + 1 terminacija
int i,br;
printf("Unesi string\n");
gets(s);//unosenje stringa

i=0;// od pocetka
while(s[i]!='\0'){// do kraja
if ((s[i]=='a')||(s[i]=='A')){
br++; }
i++;
}

// -----poziv funkcije
printf("Ima %d karaktera\n",br);// poziv fun za char samo fun(s)

system("PAUSE");
return 0;
}

8. Napisati program koji unosi matricu (NxN) i sabira elemente na sporednoj dijagonali
 
 

Na website-u se možete naći sve potrebne informacije/materijale za polaganje ispita 14


 
SPREMANJE STUDENATA ETF-a, SPR-a, FIT-a, PMF-a, UDG-a
tel. tel. 067 555 439, web: www.spremanje.info
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])


{ int x[50][50],i,j,n,sum=0;
printf("Unesi matricu\n");
scanf("%d",&n);
printf("Unesi matricu\n");
for(i=0;i<n;i++){
for(j=0;j<n;j++){
scanf("%d",&x[i][j]);
}

}
sum=0;
for(i=0;i<n;i++){
for(j=0;j<n;j++){
if((i+j)==(n+1)){// sporedna dijagonala
sum=sum+x[i][j];
//da je bila glavna dijagonala (i==j)

}
}

}
printf("Suma je %d\n",sum);

system("PAUSE");
return 0;
}
 
9. Napisati program koji unosi matricu (NxN) i stampa transponovanu matricu.
 
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])


{ int x[50][50],i,j,n;
printf("Unesi matricu\n");
scanf("%d",&n);
printf("Unesi matricu\n");
for(i=0;i<n;i++){
for(j=0;j<n;j++){
scanf("%d",&x[i][j]);
}

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

Na website-u se možete naći sve potrebne informacije/materijale za polaganje ispita 15


 
SPREMANJE STUDENATA ETF-a, SPR-a, FIT-a, PMF-a, UDG-a
tel. tel. 067 555 439, web: www.spremanje.info
printf("%d",x[j][i]); // transponovana matrica
}

printf("\n");

system("PAUSE");
return 0;
}
 
10. Napisati program koji unosi matricu (NxM) i računa sumu pozitivnih elemenata.
 
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])


{ int x[50][50],i,j,n,m,sum=0;
printf("Unesi dimenziju matrice N\n");
scanf("%d",&n);
printf("Unesi dimenziju matrice M\n");
scanf("%d",&m);

printf("Unesi matricu\n");
for(i=0;i<n;i++){
for(j=0;j<m;j++){
scanf("%d",&x[i][j]);
if (x[i][j]>0){
sum=sum+x[i][j];
}

printf("Suma je:%d\n",sum);

system("PAUSE");
return 0;
}
 

Na website-u se možete naći sve potrebne informacije/materijale za polaganje ispita 16


 

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy