Programiranje - C++ zadaci (pokazivači)

int *pokazivac=new int[n];

1. Napišite program koji u funkciji stvara dinamički niz A s n rezultata skijašica slaloma. U funkciji sortiraj sortirajte padajući niz A. U funkciji razlika upišite u dinamički niz R razliku vremena svake skijašice u odnosu na vrijeme najbolje skijašice. Ispišite nizove A i R.

#include "stdafx.h"
#include <iostream>

using namespace std;

void ucitaj(float *niz, int n)
{
	for(int i=0;i<n;i++)
	{
		cout<<"Vrijeme "<<i+1<<". skijasice:"<<endl;
		cin>>*(niz+i);
	}
}

void sortiraj(float *niz,int n)
{
	for(int i=0;i<n-1;i++)
		for(int j=0;j<n-1;j++)
			if(*(niz+j)<*(niz+j+1))
			{
				float temp=*(niz+j);
				*(niz+j)=*(niz+j+1);
				*(niz+j+1)=temp;
			}
}

void razlika(float *A,float *R,int n)
{
	float best=*(A+n-1);

	for(int i=0;i<n;i++)
		*(R+i)=*(A+i)-best;

}

void ispisi(float *niz,int n)
{
	for(int i=0;i<n;i++)
		cout<<*(niz+i)<<" ";
}

void main()
{
	int n;
	cout<<"Broj skijasica:";
	cin>>n;

	float *nizA=new float[n];
	float *nizR=new float[n];

	cout<<endl;
	ucitaj(nizA,n);
	sortiraj(nizA,n);
	razlika(nizA,nizR,n);

	cout<<endl;
	ispisi(nizA,n);

	cout<<endl<<endl<<"Razlika:"<<endl;
	ispisi(nizR,n);
	cout<<endl<<endl;
}

Preuzmite projekt: zad_1.cpp.

2. Napišite program koji u funkciji stvara dinamički niz A s n rezultata skijašica slaloma u prvoj vožnji i dinamički niz B s n rezultata druge vožnje. U funkciji zbroji stvorite dinamički niz C koji će sadržavati zbrojeve rezutata prve i druge vožnje i te u funkciji sortiraj sortirajte uzlazno niz C. Ispišite nizove A, B i C.

#include "stdafx.h"
#include <iostream>

using namespace std;

void ucitaj(float *X,int n)
{
	for(int i=0;i<n;i++)
	{
		cout<<"Rezultat "<<i+1<<". skijasice: ";
		cin>>*(X+i);
	}
}

void zbroj(float *A,float *B,float *C,int n)
{
	for(int i=0;i<n;i++)
		*(C+i)=*(A+i)+*(B+i);
}

void sortiraj(float *C,int n)
{
	float temp;
	for(int i=0;i<n;i++)
		for(int j=i;j<n;j++)
			if(*(C+i)>*(C+j))
			{
				temp=*(C+i);
				*(C+i)=*(C+j);
				*(C+j)=temp;
			}

}
void ispisi(float *X,int n)
{
	for(int i=0;i<n;i++)
		cout<<*(X+i)<<" ";
	cout<<endl;
}

void main()
{
	int n;

	cout<<"Broj skijasica: ";
	cin>>n;

	float *A=new float[n];
	float *B=new float[n];
	float *C=new float[n];

	cout<<endl<<"Prva voznja:"<<endl;
	ucitaj(A,n);
	
    cout<<endl<<"Druga voznja:"<<endl;
	ucitaj(B,n);
	
    zbroj(A,B,C,n);
	sortiraj(C,n);
	
    cout<<endl<<"Vremena prve voznje:"<<endl;
	ispisi(A,n);
	cout<<"Vremena druge voznje:"<<endl;
	ispisi(B,n);
	cout<<endl<<"Sveukupni sortirani poredak:"<<endl;
	ispisi(C,n);
	
    delete []A;
	delete []B;
	delete []C;
}

Preuzmite projekt: zad_2.cpp.

3. Napišite program koji u funkciji stvara dinamički niz A u koji se za n studenata unose brojevi bodova na ispitu iz Programiranja. U funkciji sortiraj sortirajte padajući niz A. U funkciji pozitivni upišite u dinamički niz P sve brojeve bodove iz niza A koji su veći od prosječnog broja bodova. Ispišite nizove A i P.

#include "stdafx.h"
#include <iostream>

using namespace std;

void unos(int *A,int n)
{
	for(int i=0;i<n;i++)
	{
		cout<<"Bodovi "<<i+1<<". studenta: ";
		cin>>*(A+i);
	}
}

void sortiraj(int *A,int n)
{
	for(int i=0;i<n;i++)
		for(int j=i;j<n;j++)
			if(*(A+i)<*(A+j))
			{
				int temp=*(A+i);
				*(A+i)=*(A+j);
				*(A+j)=temp;
			}
}

float prosijek(int *A,int n)
{
	int sum=0;
	for(int i=0;i<n;i++)
		sum+=*(A+i);
	return sum/n;
}

int pozitivni(int *A,int n)
{
	int p=0;
	float ar_s=prosijek(A,n);
	for(int i=0;i<n;i++)
		if(ar_s<*(A+i))p++;
	return p;
}

void prijepis(int *A,int *P,int n)
{
	float ar_s=prosijek(A,n);
	int x=0;
	for(int i=0;i<n;i++)
		if(*(A+i)>ar_s)
		{
			*(P+x)=*(A+i);
			x++;
		}
}

void ispis(int *X,int x)
{
	for(int i=0;i<x;i++)
		cout<<*(X+i)<<" ";
	cout<<endl;
}

void main()
{
	int n;
	cout<<"Broj studenata: ";
	cin>>n;
	int *A=new int[n];

	unos(A,n);
	sortiraj(A,n);
	
	int p=pozitivni(A,n);
	int *P=new int[p];
	prijepis(A,P,n);
	
	cout<<"Niz A:"<<endl;
	ispis(A,n);
	cout<<"Niz P:"<<endl;
	ispis(P,p);
}

Preuzmite projekt: zad_3.cpp.

<<Home