278 lines
6.6 KiB
C++

#include <iostream>
#include <cmath>
using namespace std;
// izpis iz polja
void izpis(const int polje[], const int x){
for(int i = 0; i < x; i++){
cout << polje[i] << " ";
}
cout << endl << endl;
}
//vpis v polje
void vpis(int polje[], const int x){
for(int i = 0; i < x; i++){
cin >> polje[i];
}
cout << "Vpisali ste: ";
izpis(polje,x);
}
//vrne minimalno vrednost in pozicijo stevila v polju (preko reference)
void minimalna(int polje[],int &x, int &poz, int &minvred){
cout << "Vpisi velikost polja: ";
cin >> x;
cout << "Vpisi v polje: ";
vpis(polje,x);
int vred;
minvred = polje[0];
for(int i = 0; i < x; i++){
vred = polje[i];
if(vred<minvred){
poz = i;
minvred = vred;
}
}
}
// vrne pozicijo stevila ki ga iscemo
int index(const int polje[], const int x){
cout << "Vpisi stevilo ki ga iscete: ";
int iskano; //iskano stevilo
cin >> iskano;
cout << "Iscete: " << iskano << endl;
for(int i = 0; i < x; i++){
if(iskano == polje[i]){
return i;
}
}
return -1;
}
//sesteje in odsteje vektorjer (vnesi polje1 in polje2 in x = velikost polja; vsota je polje3 razlika je polje4)
void vsotarazlika (int &x, int polje1[], int polje2[], int polje3[], int polje4[]){
cout << "Vpisi velikost vektorja: ";
cin >> x;
cout << "Vpisi vektor 1: ";
vpis(polje1, x);
cout << "Vpisi vektor 2: ";
vpis(polje2, x);
for(int i = 0; i < x; i++){
polje3[i] = polje1[i] + polje2[i];
}
for(int i = 0; i < x; i ++){
polje4[i] = polje1[i] - polje2[i];
}
}
// zmnozi vektor1 s skalarjem (vnesi polje1, polje3 je rezultat, x = velikost polij, j = skalar)
void mnozenjesskalarjem(const int polje1[], int polje3[],const int x,const int j){
for(int i = 0; i < x; i++){
polje3[i] = polje1[i] * j;
}
}
// vrne skalarni produkt j (vnesi polje1 in polje2, x = velikost polij)
int skalarniprodukt(const int polje1[], const int polje2[], const int x){
int polje3[300];
for(int i = 0; i < x; i++){
polje3[i] = polje1[i] * polje2[i];
}
int j = 0;
for(int i = 0; i < x; i++){
j += polje3[i];
}
return j;
}
//izracuna vektorski produkt polja1 in polja2 v polju3
void vektorskiprodukt(int polje1[], int polje2[], int polje3[], const int x){
cout << "Vektorsi produkt" << endl;
cout << "Vpisi vektor 1: ";
vpis(polje1, x);
cout << "Vpisi vektor 2: ";
vpis(polje2, x);
polje3[0] = polje1[1]*polje2[2] - polje1[2]*polje2[1];
polje3[1] = polje1[2]*polje2[0] - polje1[0]*polje2[2];
polje3[2] = polje1[0]*polje2[1] - polje1[1]*polje2[0];
}
// najdi naslednje prastevilo
int stevilo(int x){
int del;
x++;
for(x; x>0; x++){
del = 0;
for(int i=2; i<x; i++){
if(x%i==0){del=i;}
}
if(del==0){return x;}
}
return 0;
}
// najdi prastevila v območju
void prastevila(int polje1[], int &x){
int j, k;
cout << "Izpis prastevil" << endl << "Vpisi spodnjo mejo: ";
cin >> j;
cout << "Vpisi zgorno mejo: ";
cin >> k;
cout << endl;
x = 0;
while (k > j) {
j = stevilo(j);
if(j < k){
polje1[x] = j;
x++;
}
}
}
//bubble sort
void sort(int polje[], const int x){
for (int j = 0; j < x; j++){
for (int i = 0; i < x-j-1;i++){
if(polje[i]>polje[i+1]){
int tem = polje[i];
polje[i] = polje[i+1];
polje[i+1] = tem;
}
}
}
}
// najdi mediano
double mediana(int polje1[], int &x){
double j;
int d;
cout << "Vpisi velikost polja: ";
cin >> x;
cout << "Vpisi v polje: ";
vpis(polje1, x);
sort(polje1, x);
if(x % 2 == 0){
d = x / 2;
j = polje1[d] + polje1[d - 1];
j /= 2;
return j;
}else{
d = x / 2;
j = polje1[d];
return j;
}
}
double povprecje(const int polje1[], const int x){
double j = 0;
for (int i = 0; i < x; i++){
j = j + polje1[i];
}
j /= x;
return j;
}
// standardna deviacia
double STD(const int polje1[], const int x, const double j){
double k = 0; // E(x- povp(x))^2
for(int i = 0; i < x; i ++){
k = k + pow(polje1[i]-j,2);
}
k = k/(x-1);
k = sqrt(k);
return k;
}
int sekvenca(int polje1[], int x){
vpis(polje1,x);
for(int i = 0;i<x;i++){
if(polje1[i]==0){
polje1[i] = -1;
}
}
int sum1 = 0;
for(int k = 1;k<=x-1;k++){
int sum2 = 0;
for(int i = 1;i<=x-k;i++){
sum2 += polje1[i-1] * polje1[i-1+k];
}
sum1 += sum2*sum2;
}
return sum1;
}
int main()
{
int polje1[400];
int polje2[400];
int polje3[400];
int polje4[400];
int x; // velikost polja
double j; // zacasna spremenljivka
//1 najdi pozicijo in vrednost minimalnega stevila
int poz = 0; //pozicija (prenos preko reference
int minvred; // minimalna vrednost (prenos preko reference)
minimalna(polje1, x, poz, minvred);
cout << "Minimalna vrednost: " << minvred << endl;
cout << "Pozicija minimalne vrednosti: " << poz << endl << endl;
//2 najdi iskano stevilo
j = index (polje1, x);
cout << "Pozicija iskanega stevila: " << j << endl << endl;
//3 Vrne vsoto in razliko vektorjev
cout << "Vektorji" << endl << endl;
vsotarazlika(x, polje1, polje2, polje3, polje4);
cout << "Vsota vektorjev: ";
izpis(polje3, x);
cout << "Razlika vektorjev: ";
izpis(polje4, x);
//4 zmnozi vektor1 s skalarjem
cout << "Vpisi skalar: ";
cin >> j;
mnozenjesskalarjem(polje1, polje3, x, j);
cout << "Skalarni produkt vektorja 1: ";
izpis(polje3, x);
//5 skalarni produkt
j = skalarniprodukt(polje1, polje2, x);
cout << "Skalarni produkt vektorja 1 in 2 je: " << j << endl << endl;
//6 vektorski produkt
x = 3;
vektorskiprodukt(polje1, polje2, polje3, x);
cout << "Vektorski produkt je: ";
izpis(polje3,x);
//7 izpis prastevil
prastevila(polje1, x);
izpis(polje1, x);
//8 izracunaj mediano
cout << "Izracun mediane, povprecja, Std, sortiranje" << endl << endl;
x = 0;
j = mediana(polje1,x);
cout << "Mediana polja je: " << j << endl;
//9 povprecna vrednost in standardna deviacija
j = povprecje(polje1,x);
cout << "Povprecje polja je: " << j << endl;
j = STD(polje1, x, j);
cout << "Standardna deviacia je: " << j << endl;
//10 bubble sort
cout << "Sortirano polje1: ";
izpis(polje1, x);
//11 Sekvenca
x = 305;
j = sekvenca(polje1, x);
cout << j;
return 0;
}