PROGRAMMING SOURCES page 2



There are many sources in Slovenian, forgive me please, because I am left them such.



You can copy and paste sources into Notepad or direct into compiler. You can also download them from page PROGRAMS where are in zip format, together with programmes. The programs are in exe format.

If you found any bugs in sources or in programs, let me know please, by e-mail:  my e-mail

List of codes on this page:

Dve_stevili.cpp - Two numbers (addition, subtraction, multiplying and division)
Kvader1.cpp - Cuboid
Sestevanje_EN.cpp - Addition
Vsota_vrste.cpp - Sum of numbers row
1_16062003_Znakovni_niz_.cpp - Character array
2_1_16062003_Ocene.cpp - Grades (switch)
2_2_16062003_Ocene.cpp - Grades (if, else if)
3_16062003_Stop_v_gone.cpp - Degrees into gons
1_19092003_Prepis_datotek.cpp - Copying of files, Datoteka_za_prepis.txt - File for copy
2_19092003_Razdalje_med_tockama.cpp - Distances between two points, Datoteka_koordinate_tock.txt - File with points coordinates
3_19092003_Vsota_vrste.cpp - Sum of numbers row
1_26082003_Ploscina_elipse.cpp - Area of ellipse
2_26082003_Potenca_realnega_stevila.cpp - Power of real number
3_26082003_Razd_visKot_Hrazl_tock.cpp - Distances, vertical angle between two points, Datoteka_koordinate_tock.txt - File with points coordinates


Dve_stevili.cpp - Two numbers (addition, subtraction, multiplying and division):


#include <iostream> // omogocimo uporabo V/I tokov


int Sestej(int SteviloA, int SteviloB)
{
     return(SteviloA + SteviloB);
}

int Odstej(int SteviloA, int SteviloB)
{
     return(SteviloA - SteviloB);
}

int Mnozi(int SteviloA, int SteviloB)
{
     return(SteviloA * SteviloB);
}

float Deli(int SteviloA, int SteviloB)
{
     return((float)SteviloA / SteviloB);
}


int main() // funkcija main
{
     using namespace std; // uporabljamo imenski prostor "std"
     
     int SteviloA, SteviloB, Rezultat; // potrebujemo tri spremenljivke      
     float RezultatD;

     cout << "Program za sestevanje in odstevanje stevil!" << endl; // pozdrav
     
     cout << "Vnesite stevilo A, ter pritisnite ENTER:"; // vpisujemo prvo stevilo
     cin  >> SteviloA;
     
     cout << "Vnesite stevilo B, ter pritisnite ENTER:"; // vpisujemo drugo stevilo
     cin  >> SteviloB;
     
     Rezultat = Sestej(SteviloA, SteviloB); // sestejemo
     cout << "Vsota= " << Rezultat << endl;
     
     Rezultat = Odstej(SteviloA, SteviloB); // odstevamo
     cout << "Razlika= " << Rezultat << endl;

     Rezultat = Mnozi(SteviloA, SteviloB); // mnozimo
     cout << "Produkt= " << Rezultat << endl;

     RezultatD =  Deli(SteviloA, SteviloB); // mnozimo
     cout << "Kvocient= " << RezultatD << endl;

     cout << "Pritisnite ENTER za izhod... " ;
     cin.ignore(); //ignore() poskrbi, da se trenutni vhodni tok pocisti (ignorira)
     cin.get(); //get() caka uporabnikov vnos znaka
     
     return(0); // vrnemo nic
}

    

topBack to top


Kvader1.cpp - Cuboid:


/* Program za izracun kvadra - povrsine in prostornine kvadra */

#include <iostream.h>
#include <stdio.h>

main()  
{
   float a, b, c;
   double P, V;
   
   cout << "\n\t*******************************************************";
   cout << "\n\t*                   K  V  A  D  E  R                  *";
   cout << "\n\t*  PROGRAM ZA IZRACUN POVRSINE IN PROSTORNINE KVADRA  *";
   cout << "\n\t*             Verzija 1.0, december 2001              *";
   cout << "\n\t* Avtor: Bojan Dreu, Leskovec 12, 2331 Pragersko, SLO *";
   cout << "\n\t*******************************************************";
   
   cout << "\n\n\n\n\t\t    ______________________________";
   cout << "\n\t\t   |\\                             \\";
   cout << "\n\t\t   | \\                             \\";
   cout << "\n\t\t   |  \\ ____________________________\\";
   cout << "\n\t\t   |   |                             |";
   cout << "\n\t\t   |   |                             |";
   cout << "\n\t\t   |   |                             |";
   cout << "\n\t\t    \\  |                             | c";
   cout << "\n\t\t    a\\ |                             |";
   cout << "\n\t\t      \\|_____________________________|";
   cout << "\n\t\t                       b";

   cout << "\n\n\n\t\t  Vtipkaj dolzino stranice a [m] >>> ";
   cin >> a;    
  
   if(a <= 0)
   {
   		cout << "\a\t\t  NAPACEN VNOS podatkov za stranico a !"<<endl;
   }
 
   cout << "\n\t\t  Vtipkaj dolzino stranice b [m] >>> ";
   cin >> b;
   
   if(b <= 0)
   {
   		cout << "\a\t\t  NAPACEN VNOS podatkov za stranico b !"<<endl;
   }
   
   cout << "\n\t\t  Vtipkaj dolzino stranice c [m] >>> ";
   cin >> c;
   
   if(c <= 0)
   {
   cout << "\a\t\t  NAPACEN VNOS podatkov za stranico c !"<<endl;
   }
   
   P = 2. * ( a * b + a * c + b * c);
   V = a * b * c;
   
   
   if(P <= 0 || V <= 0)
   {
   		cout << "\a\a\a\n\n\t   POVRSINO IN PROSTORNINO KVADRA NI MOZNO IZRACUNATI !!!";
   }
   else	
   {
   		cout <<"\n\n\t\t       POVRSINA kvadra    =   "<< P << " m2 !" ;
   		cout <<"\n\t\t       PROSTORNINA kvadra =  " << V << " m3 ! ";
   }
   
   cout << "\n\n\n\t\t   *************** KONEC *************** Pritisni tipko Enter !";
   cout << endl;
   
   getchar();
   
   return 0;																					  
}

    

topBack to top


Sestevanje_EN.cpp - Addition:


//PROGRAM FOR CALCULATING SUM AND AVERAGE OF TWO NUMBERS

#include <iostream>
#include <stdio.h>

int main ()
{
 float num_1, num_2;
 double sum, average;

 cout << "\n\t\t******************************************* ";
 cout << "\n\t\t* PROGRAM FOR CALCULATING SUM AND AVERAGE * ";
 cout << "\n\t\t*              OF TWO NUMBERS             * ";
 cout << "\n\t\t*       Version 1.0, February, 2004       * ";
 cout << "\n\t\t******************************************* ";

 cout << "\n\n\n\n\n Enter first number:  ";
 cin >> num_1;
 cout << "\n Enter second number: ";
 cin >> num_2;

 sum = num_1 + num_2;
 average = sum / 2.0;

 cout << "\n\n Calculated sum is: " << sum << endl;
 cout << "\n Calculated average is: " << average << endl;

 cout << "\n\n\n\n\n For exit from program press [Enter] >>>>> ";

 getchar();
 return (0);
}

    

topBack to top


Vsota_vrste.cpp - Sum of numbers row:


/* vsota.c: Izracuna vsoto celostevilske vrste. */


#include <stdio.h>

/* Program pogovorno prebere dolzino vrste, prebere njene elemente
  in izracuna vsoto, ki jo na koncu izpise na zaslon
*/

main() {
   int i,n, stevilo, vsota=0;

   printf( "Podaj dolzino vrste: " );          
   scanf( "%d", &n );

   for( i=1; i<=n; i++ ) {
      printf( "\nPodaj %d. element: ", i );
      scanf( "%d", &stevilo );

      vsota = vsota + stevilo;
   }

   printf( "\nVsota = %d", vsota );
getchar();//dodal
getchar();//dodal
   return 0;
}

    

topBack to top


1_16062003_Znakovni_niz_.cpp - Character array:


/*
Sestavi vse potrebne programske stavke v jeziku C++ za naslednji problem. Preberi
z zaslona vrstico besedila v ustrezno veliko znakovno polje. Izpisi na zaslon celotno
prebrano besedilo. Nato izpisi besedilo na zaslon se znak po znak, pri cemer med
izpisom zamenjaj vse presledke v besedilu z vezlajem (znak'_').

Nato sestavi ustrezno lastno funkcijo, ki doloci dejansko dolzino znakovnega niza.
Izgled prototipa funkcije je denimo naslednji:

int dolzina(char niz[]);

Prikazi primer uporabe razvite funkcije v glavni funkciji main() in nato se izpisi
rezultat taksne funkcije.
*/

#include<stdio.h>
#include<ctype.h>

int dolzina(char niz[]);

main()
{
 char niz[333];
 int i, n;

 printf("\n\n PODAJ BESEDILO:\n\n ");
 gets(niz);

 printf("\n\n PODANO BESEDILO JE:\n\n ");
 puts(niz);

 printf("\n\n PODANO BESEDILO Z VEZLJAJI _ NAMESTO PRESLEDKOV   JE:\n\n ");

 n = dolzina(niz);

 for(i = 0; i < n; i++)
 {
       if(niz[i] == ' ')
	   {
	    niz[i] = toascii('_');
	   }
  printf("%c", niz[i]);
 }
 printf("\n\n\n DOLZINA BESEDILA JE %d ZNAKOV.\n ", n);

 getchar();
 return (0);
}


int dolzina(char niz[])
{
 int i = 0, n = 0;

 do
 {
  i = i+1;
 }
  while(niz[i]);
  n = i;
}

    

topBack to top


2_1_16062003_Ocene.cpp - Grades (switch):


/*
Sestavi vse potrebne programske stavke v jeziku C++ za naslednji problem. Napisi
ustrezni switch stavek, ki bo glede na vrednost cele spremenljivke ocena, izpisal
na zaslon naslednja sporocila:
"Ocena je nezadostno." v primeru vrednosti 1,2,3,4 in 5,
"Ocena je zadostno." v primeru vrednosti 6,
"Ocena je dobro." v primeru vrednosti 7,
"Ocena je prav dobro." v primeru vrednosti 8 in 9,
"Ocena je odlino." v primeru vrednosti 10,
"Ocena je nedefinirana." v primeru vrednosti 0 in za vse ostale vrednosti.

Nato posebej dodaj tudi enakovredno resitev s pomocjo if else bloka.
*/

/*
SWITCH stavek
*/

#include<stdio.h>

main()
{
	int ocena;

	printf("\n Vnesi stevilko ocene (od 1 do 10): ");
	scanf("%d", &ocena);

	printf("\n\n Vtipkal si steviko ocene %d.", ocena);

	switch (ocena)
    {
	case 1:
	case 2:
	case 3:
	case 4:
	case 5:
      printf("\n\n\n Ocena je nezadostno.\n ");
      break;

	case 6:
      printf("\n\n\n Ocena je zadostno.\n ");
      break;

	case 7:
      printf("\n\n\n Ocena je dobro.\n ");
      break;

	case 8:
	case 9:
      printf("\n\n\n Ocena je pravdobro.\n ");
      break;

	case 10:
      printf("\n\n\n Ocena je odlicno.\n ");
      break;

	case 0:
      printf("\a\n\n\n\n Ocena je nedefinirana.\n ");
      break;

	default:
         printf("\a\n\n\n\n Ocena je nedefinirana.\n ");
	}

 getchar();
 getchar();
 return (0);
}

    

topBack to top


2_2_16062003_Ocene.cpp - Grades (if, else if):


/*
Sestavi vse potrebne programske stavke v jeziku C++ za naslednji problem. Napisi
ustrezni switch stavek, ki bo glede na vrednost cele spremenljivke ocena, izpisal
na zaslon naslednja sporocila:
"Ocena je nezadostno." v primeru vrednosti 1,2,3,4 in 5,
"Ocena je zadostno." v primeru vrednosti 6,
"Ocena je dobro." v primeru vrednosti 7,
"Ocena je prav dobro." v primeru vrednosti 8 in 9,
"Ocena je odlino." v primeru vrednosti 10,
"Ocena je nedefinirana." v primeru vrednosti 0 in za vse ostale vrednosti.

Nato posebej dodaj tudi enakovredno resitev s pomocjo if else bloka.
*/

/*
IF-ELSE stavek
*/

#include <stdio.h>

main()
{
	int ocena;

	printf("\n Vnesi stevilko ocene (od 1 do 10): ");
	scanf("%d", &ocena);

	printf("\n\n Vtipkal si steviko ocene %d. ", ocena);


	if (ocena == 1 || ocena == 2 || ocena == 3 || ocena == 4 || ocena == 5)
    {
	 printf("\n\n\n Ocena je nezadostno.\n ");
    }

 	else if (ocena == 6)
    {
     printf("\n\n\n Ocena je zadostno.\n ");
    }

	else if (ocena == 7)
    {
	 printf("\n\n\n Ocena je dobro.\n ");
    }

	else if (ocena == 8 || ocena == 9)
    {
	 printf("\n\n\n Ocena je prav dobro.\n ");
    }

	else if (ocena == 10)
    {
	 printf("\n\n\n Ocena je odlicno.\n ");
    }

	else if (ocena == 0)
    {
	 printf("\a\n\n\n\n Ocena je nedefinirana.\n ");
    }

	else
    {
	 printf("\a\n\n\n\n Ocena je nedefinirana.\n ");
    }

getchar();
getchar();
return (0);
}

    

topBack to top


3_16062003_Stop_v_gone.cpp - Degrees into gons:


/*
Sestavi funkcijo v C++, ki pretvori v sestdesetiskih stopinjah, minutah in sekundah
podani kot v gone. Prikazi primer klica oziroma uporabo taksne funkcije iz neke
druge funkcije, na primer iz glavne funkcije main(). Preberi ustrezne vrednosti
podanega kota preko tipkovnice. Pazi na negativne kote! Prototip funkcije je denimo
naslednji:
double gradi(short int stop, short min, float sek);
*/

#include <stdio.h>

double gradi(int, int, float);

main()
{
	int stop, min;
	float sek;
    double rezultat;

	printf("\n Podaj kot (stop min sek): ");
	scanf("%d %d %f", &stop, &min, &sek);

    if((stop < 0 || min < 00 || sek < 00) || (stop == 0 && min == 00 && sek == 00) || (stop > 360))
    {
    printf("\n\n\n\a Nepravilni podatki !");
    printf("\n\n\n IZRACUN NI MOZEN !!!");
    exit (0);
    }

    printf("\n\n Podani kot v stopinjah  = %3d%02d'%04.1f\". \n", stop, min, sek);

    rezultat = gradi(stop, min, sek);

	printf("\n\n Izracunani kot v gonih  = %12.8f gonov.\n\n", rezultat);

getchar();
getchar();
return(0);
}

double gradi(int stop, int min, float sek)
{
    double rezultat;

    rezultat = (stop + min / 60 + sek / 3600) * 10.0 / 9.0;

	return(rezultat);
}

    

topBack to top


1_19092003_Prepis_datotek.cpp - Copying of files:


/*
V C++ sestavi ustrezen program za kopiranje datotek. Program naj odpre
dve izbrani datoteki in sicer eno za citanje ter eno za pisanje. Testiraj uspesnost
odpiranja obeh datotek.

Podatki oziroma znaki se naj berejo iz izbrane vhodne datoteke in se prepisujejo
na izbrano odprto izhodno datoteko. Na koncu programa se zapri obe uporabljeni
datoteki.
*/

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

void napaka(char*);

main()
{
FILE *f_kaz_1, *f_kaz_2;
char vhodna[80], izhodna[80];

char tekst;

printf("\n\n\n\n Podaj ime vhodne datoteke:");
printf("\n >>> ");
gets(vhodna);
if((f_kaz_1 = fopen(vhodna, "r")) == NULL)
napaka(vhodna);

printf("\n\n Podaj ime izhodne datoteke: ");
printf("\n >>> ");
gets(izhodna);
if((f_kaz_2 = fopen(izhodna, "w")) == NULL)
napaka(izhodna);

while((tekst = fgetc(f_kaz_1)) != EOF)

fputc(tekst, f_kaz_2);

fclose(f_kaz_1);
fclose(f_kaz_2);
return 0;
}
void napaka(char *dat)
{
printf("\n\n\n\n\n Ne morem odpreti datoteke >>> %s   !!!", dat);
exit(0);
}

    

Datoteka_za_prepis.txt - File for copy:


TO bi moral PREPISATI
od 0 do 123456789
od zaetka do konca,
od . , : ; - _ ? = "
# $ % & / () \||@ in !

    

topBack to top


2_19092003_Razdalje_med_tockama.cpp - Distances between two points:


/*
Sestavi C++ program, ki iz datoteke prebere kartezicne koordinate (x, y, z) po dveh tock
hkrati in izracuna dolzini vektorjev med izhodiscem koordinatnega sistema in
podanima tockama, ter tudi posevno in horizontalno razdaljo med obema tockama.

Citanje podatkov in izpis rezultatov naj bo izvedeno preko ustreznih vhodnih in
izhodnih datotek. Kontroliraj uspesnost odpiranja datotek! Program mora omogocati
izracun poljubnega stevila nalog.
*/

#include<stdio.h>
#include<stdlib.h>
#include <iostream.h>
#include<conio.h>
#include <math.h>

main()
{
 float X1, Y1, Z1, X2, Y2, Z2;
 float delta_x, delta_y, delta_z;
 double hor_dolzina, pos_dolzina;
 double vektor_0T1, vektor_0T2;

 int stevec_nalog=1;
 FILE *f_vhod, *f_izhod;
 char vhodna[80], izhodna[80];

 cout << "\n Podaj vhodno datoteko: ";
 cout << "\n\n vnos >>> ";

 cin >> vhodna;
 f_vhod = fopen(vhodna, "r");

 if(f_vhod == NULL)
 {
  cout << "\a\n\n\n\n\n\n Vtipkal si ime datoteke s podatki: ";
  cout << "\n\n >>>>>  " << vhodna << " !!! \n";
  cout << "\n\n\n\n NE MOREM ODPRETI TE VHODNE DATOTEKE, KER NE OBSTAJA !!! ";
  exit(0);
 }

 cout << "\n\n\n\n Podaj izhodno datoteko: ";
 cout << "\n\n vnos >>> ";

 cin >> izhodna;
 f_izhod = fopen(izhodna, "w");

 if(f_izhod == NULL)
 {
  system("cls");
  cout << "\a\n\n\n\n\n\n Vtipkal si ime datoteke za zapis rezultatov: ";
  cout << "\n\n >>>>>  " << izhodna << " !!! \n";
  cout << "\n\n\n\n PODANE IZHODNE DATOTEKE NE MOREM USTVARITI !!! ";
  exit(0);
 }

 while ((fscanf(f_vhod, "%f %f %f %f %f %f", &X1,&Y1,&Z1,&X2,&Y2,&Z2)) != EOF)
 {
  system("cls");
  printf("\n\n PODATKI %d. para tock:", stevec_nalog);
  printf("\n\n Koordinate 1. Tocke:");
  printf("\n\n X1 = %6.3f   Y1 = %6.3f   Z1 = %6.3f", X1, Y1, Z1);
  printf("\n\n Koordinate 2. Tocke:");
  printf("\n\n X2 = %6.3f   Y2 = %6.3f   Z2 = %6.3f", X2, Y2, Z2);

  fprintf(f_izhod, "\n\n\n PODATKI %d. para tock:", stevec_nalog);
  fprintf(f_izhod, "\n\n Koordinate 1. Tocke:");
  fprintf(f_izhod, "\n\n X1 = %6.3f   Y1 = %6.3f   Z1 = %6.3f", X1, Y1, Z1);
  fprintf(f_izhod, "\n\n Koordinate 2. Tocke:");
  fprintf(f_izhod, "\n\n X2 = %6.3f   Y2 = %6.3f   Z2 = %6.3f", X2, Y2, Z2);

  delta_x = (X2 - X1);
  delta_y = (Y2 - Y1);
  delta_z = (Z2 - Z1);

  hor_dolzina = sqrt( (delta_x * delta_x) + (delta_y * delta_y) );
  pos_dolzina = sqrt( (hor_dolzina * hor_dolzina) + (delta_z * delta_z) );

  vektor_0T1 = sqrt( (X1 * X1) + (Y1 * Y1) + (Z1 * Z1) );
  vektor_0T2 = sqrt( (X2 * X2) + (Y2 * Y2) + (Z2 * Z2) );

  printf("\n\n\n REZULTATI %d. para tock:", stevec_nalog);
  fprintf(f_izhod, "\n\n\n REZULTATI %d. para tock:", stevec_nalog);

  if (X1 == X2 &&  Y1 == Y2 && Z1 == Z2)
  {
   cout << "\a\n\n\n N A P A K A   V   P O D A T K I H   T O C K   ! ";
   cout << "\n\n\n IZRACUN RAZDALJ MED TEMA TOCKAMA NI MOZEN, KER STA IDENTICNI !!! ";
   fprintf(f_izhod, "\n\n N A P A K A   V   P O D A T K I H   T O C K   ! ");
   fprintf(f_izhod, "\n\n IZRACUN RAZDALJ MED TEMA TOCKAMA NI MOZEN, KER STA IDENTICNI !!! ");
   printf("\n\n DOLZINI VEKTORJEV STA IDENTICNI 0T1 = 0T2  =  %.3f", vektor_0T1, vektor_0T2);
   fprintf(f_izhod, "\n\n DOLZINI VEKTORJEV STA IDENTICNI 0T1 = 0T2  =  %.3f", vektor_0T1, vektor_0T2);
  }

  else
  {
  printf("\n\n Horizontalna razdalja med tockama = %.3f", hor_dolzina);
  fprintf(f_izhod, "\n\n Horizontalna razdalja med tockama = %.3f", hor_dolzina);
  printf("\n\n Posevna razdalja med tockama = %.3f", pos_dolzina);
  fprintf(f_izhod, "\n\n Posevna razdalja med tockama = %.3f", pos_dolzina);
  printf("\n\n Dolzina vektorja 0T1 = %.3f", vektor_0T1);
  fprintf(f_izhod, "\n\n Dolzina vektorja 0T1 = %.3f", vektor_0T1);
  printf("\n\n Dolzina vektorja 0T2 = %.3f\n\n", vektor_0T2);
  fprintf(f_izhod, "\n\n Dolzina vektorja 0T2 = %.3f", vektor_0T2);
  }

  stevec_nalog++;
  }

  fclose (f_vhod);
  fclose (f_izhod);

getchar();
return(0);
}

    

Datoteka_koordinate_tock.txt - File with points coordinates:


10 10 10   20 15 20
10 10 10   10 10 10
18.5 19.5 17.5   12.235 15.122 13.001

    

topBack to top


3_19092003_Vsota_vrste.cpp - Sum of numbers row:


/*
Sestavi C++ program, ki izracuna vsoto naslednje vrste:
y = 1 + 1/2 + 1/4 + 1/9 + 1/16 + 1/25 + ...
                                         -8
Natancnost izracuna vsote vrste naj bo 10  . Izpisi tudi koliko clenov vrste je
potrebno upostevati, da se doseze taksna natancnost (stej ponavljanja). Rezultati
naj se ustrezno opremljeni izpisejo na zaslon!
*/

#include <stdio.h>
#include <iostream.h>

int main ()
{
    int i;
	int n;
	double vsota=0;

	cout <<"\n\n Koliko ponavljanj zelis ? >>> ";
	cin >>n;

//Verjetno napaka v besedilu naloge : y = 1 + 1/2 + 1/4 + 1/9 + 1/ 16 + 1/25 ...
// 1/1*1 = 1   1/2*2 = 1/4  1/3*3 = 1/9  1/4*4 = 1/16  1/5*5 = 1/25....
//	i=1;                      //   1/2 NE SPADA V TO VRSTO (1 + 1/n*n)  !!!
//  vsota = vsota + 1./2.;    //   1/2 NE SPADA V TO VRSTO (1 + 1/n*n)  !!!
// Lahko pa za izracun odstrani znake za komentar.

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

    vsota += 1. /((float)i*(float)i);    // 1/1/1=1   1/2/2=1/4  1/3/3=1/9  1/4/4=1/16 1/5/5=1/25

	printf("\n\n\n\n VSOTA VRSTE  =  %.8f\n\n", vsota);

    double x;
    x = 1./((float)i*(float)i);
    printf("\n\n\n Trenutna natancnost = %.8f in je manjsa od zahtevane.", x);
    if(x <= 0.00000001)
    {
    printf("\n\n\n Dosezena je potrebna natancnost 0.00000001,");
    printf("\n\n zagotavlja jo %d. ponavljanje !\n\n", n);
    }

    cout << "\n\n\n\n\n\n\n Pritisni tipko [Enter] za izhod >>> ";

 getchar();
 return 0;
}

    

topBack to top


1_26082003_Ploscina_elipse.cpp - Area of ellipse:


/*
Sestavi c++ program, ki izracuna ploscino elipse, enacba je pl = Pi*a*b
Pol osi naj bere iz zaslona in rezultate izpise na zaslon.
Program naj resi poljubno stevilo nalog, ki so tudi ostevilcene.
Uvedi stevec nalog.
*/

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

main()
{
 int stevec_nalog = 1;
 double PI = 3.14159265359;
 float a, b;
 double pl;
 char odgovor;

 do
 {
  system("cls");
  printf("\n\n Vnesi podatke za %d. elipso: ", stevec_nalog);
  printf("\n\n Polos a: ");
  scanf("%f",&a);
  printf("\n Polos b: ");
  scanf("%f",&b);

  printf("\n\n\n REZULTATI %d. elipse: ", stevec_nalog);
  printf("\n\n\n Polos a = %f ", a);
  printf("\n\n Polos b = %f ", b);

  pl = a * b * PI;

  printf("\n\n\n Ploscina = %f\n ", pl);

  stevec_nalog++;

	do
	{
      printf("\n\n\n Zelis izracunat se eno nalogo ( d ali D / n ali N ) ? >>> ");
      scanf("%s", &odgovor);
    }
   	while(odgovor != 'n' && odgovor !='N' && odgovor != 'd' && odgovor != 'D');
 }
 while (odgovor == 'd' || odgovor == 'D');

 return(0);
}

    

topBack to top


2_26082003_Potenca_realnega_stevila.cpp - Power of real number:


/*
Sestavi ustrezno C++ funkcijo, ki izracuna produkt za realno stevilo (double)
                          t
na izbrano celo potenco (i ).
Funkcija naj vrne produkt potenciranja kot realno stevilo (double).
                                                                      n
Prototip funkcije: double potenca(double x, int);  // fukcija za y = x.
                                    n
Za potenciranje uporabi enacbo y = x  in ustrezno zanko.
Doloci razpon moznih vrednosti za x in zlasti za n ter v funkciji uvedi test za
njihove spremenljive vrednosti.
Sestavi program za test funkcije potenca. Branje naj bo preko tipkovnice, izpis
na zaslon.
*/

#include <stdio.h>
#include <iostream.h>
double potenca(double, int);

int main()
{
  int eksponent;
  double osnova, produkt;

  cout << "\n\n Podaj osnovo a za potenciranje: ";
  cin >> osnova;
  cout << "\n Podaj eksponent n: ";
  cin >> eksponent;

  produkt = potenca(osnova, eksponent);

  printf("\n\n\n %f na %d potenco = %f", osnova, eksponent, produkt);

  cout << "\n\n\n\n\n\n\n\n\n Konec izracuna. Pritisni tipko [Enter] za izhod >>> ";

getchar();//dodal
return (0); //dodal
}

double potenca(double x, int n)
{
 if ( n == 0 )
 {
  return 1.0;
 }

 else if ( n < 0 )
 {
  return ((1./(x*potenca(x, -(++n)))));
 }

 else

 return x * potenca(x, --n);
}

    

topBack to top


3_26082003_Razd_visKot_Hrazl_tock.cpp - Distances, vertical angle between two points:


/*
Sestavi C++ program, ki iz odprte datoteke prebere za po dve tocki 3D koordinate
y, x in h in izracuna posevno in horizontalno razdaljo med njima, visinski kot
med 1. in 2. tocko ter nato se visinsko razliko med tockama.
Branje podatkov in izpis rezultatov naj bo izvedeno preko ustreznih vhodnih in
izhodnih datotek. Kontroliraj uspesnost odpiranja datotek!
Program mora omogocati izracun poljubnega stevila nalog.
*/

#include<stdio.h>
#include<stdlib.h>
#include <iostream.h>
#include<conio.h>
#include <math.h>

#define PI 3.14159265359

void pretv(double, int *, int *, float *);
void visinski_kot(float, double, double *);

main()
{
 float Y1, X1, H1, Y2, X2, H2;
 float delta_y, delta_x, delta_h;
 double hor_dolzina, pos_dolzina;
 double alfa;

 float sek;
 int stop, min;

 int stevec_nalog = 1;

 FILE *f_vhod, *f_izhod;
 char vhodna[80], izhodna[80];

 cout << "\n Podaj vhodno datoteko: ";
 cout << "\n\n vnos >>> ";

 cin >> vhodna;
 f_vhod = fopen(vhodna, "r");

 if(f_vhod == NULL)
 {
  system("cls");
  cout << "\a\n\n\n\n\n\n Vtipkal si ime datoteke s podatki: ";
  cout << "\n\n >>>>>  " << vhodna << " !!! \n";
  cout << "\n\n\n\n NE MOREM ODPRETI TE VHODNE DATOTEKE, KER NE OBSTAJA !!! ";
  exit(0);
 }

 cout << "\n\n\n\n Podaj izhodno datoteko: ";
 cout << "\n\n vnos >>> ";

 cin >> izhodna;
 f_izhod = fopen(izhodna, "w");

 if(f_izhod == NULL)
 {
  system("cls");
  cout << "\a\n\n\n\n\n\n Vtipkal si ime datoteke za zapis rezultatov: ";
  cout << "\n\n >>>>>  " << izhodna << " !!! \n";
  cout << "\n\n\n\n PODANE IZHODNE DATOTEKE NE MOREM USTVARITI !!! ";
  exit(0);
 }

 while ((fscanf(f_vhod, "%f %f %f %f %f %f", &Y1,&X1,&H1,&Y2,&X2,&H2)) != EOF)
 {
  system("cls");
  printf("\n\n PODATKI %d. para tock:", stevec_nalog);
  printf("\n\n Koordinate tocke 1:");
  printf("\n\n Y1 = %6.3f   X1 = %6.3f   H1 = %6.3f", Y1, X1, H1);
  printf("\n\n Koordinate tocke 2:");
  printf("\n\n Y2 = %6.3f   X2 = %6.3f   H2 = %6.3f", Y2, X2, H2);

  fprintf(f_izhod, "\n\n\n PODATKI %d. para tock:", stevec_nalog);
  fprintf(f_izhod, "\n\n Koordinate tocke 1:");
  fprintf(f_izhod, "\n\n Y1 = %6.3f   X1 = %6.3f   H1 = %6.3f", Y1, X1, H1);
  fprintf(f_izhod, "\n\n Koordinate tocke 2:");
  fprintf(f_izhod, "\n\n Y2 = %6.3f   X2 = %6.3f   H2 = %6.3f", Y2, X2, H2);

  delta_y = (Y2 - Y1);
  delta_x = (X2 - X1);
  delta_h = (H2 - H1);

  hor_dolzina = sqrt((delta_x * delta_x) + (delta_y * delta_y));
  pos_dolzina = sqrt((hor_dolzina * hor_dolzina) + (delta_h * delta_h));

  printf("\n\n\n REZULTATI %d. para tock:", stevec_nalog);
  fprintf(f_izhod, "\n\n\n REZULTATI %d. para tock:", stevec_nalog);

  if (Y1 == Y2 &&  X1 == X2 && H1 == H2)
  {
   cout << "\a\n\n\n N A P A K A   V   P O D A T K I H   T O C K   ! ";
   cout << "\n\n\n IZRACUNI NISO MOZNI, KER STA TOCKI IDENTICNI !!!\n\n ";
   fprintf(f_izhod, "\n\n\n N A P A K A   V   P O D A T K I H   T O C K   ! ");
   fprintf(f_izhod, "\n\n\n IZRACUNI NISO MOZNI, KER STA TOCKI IDENTICNI !!!\n\n ");
  }

  else
  {
  visinski_kot(delta_h, hor_dolzina, &alfa);
  pretv(alfa, &stop, &min, &sek);

  printf("\n\n Horizontalna razdalja med tockama d = %.3f m.", hor_dolzina);
  fprintf(f_izhod, "\n\n Horizontalna razdalja med tockama d = %.3f m.", hor_dolzina);
  printf("\n\n Posevna razdalja med tockama d' = %.3f m.", pos_dolzina);
  fprintf(f_izhod, "\n\n Posevna razdalja med tockama d' = %.3f m.", pos_dolzina);
  printf("\n\n Visinski kot med tockama alfa = %3d%02d'%04.1f\" ", stop, min, sek);
  fprintf(f_izhod, "\n\n Visinski kot med tockama alfa = %3d%02d'%04.1f\" ", stop, min, sek);

  if(delta_h < 0)
  delta_h *= (-1.);

  printf("\n\n Visinska razlika med tockama delta_h = %.3f m.\n\n ", delta_h);
  fprintf(f_izhod, "\n\n Visinska razlika med tockama delta_h = %.3f m.\n\n ", delta_h);
  }

  stevec_nalog++;
  }

  fclose (f_vhod);
  fclose (f_izhod);

 getchar();
 return(0);
}


void pretv(double alfa, int *stop, int *min, float *sek)
{
 *stop = int(alfa);
 *sek = alfa - *stop;
 *sek *= 60.0;

 *min = int(*sek);

 *sek = (*sek - *min) * 60.0;
 *sek = floor(*sek * 10.0 + 0.5) / 10.0;

 if(*sek >= 60.0)
 {
  *sek = *sek - 60.0;
  *min = *min + 1;
 }

 if(*min >= 60)
 {
  *min -= 60;
  *stop += 1;
 }

 if(*stop >= 180)
 {
  *stop -= 180;
 }
}


void visinski_kot(float delta_h, double hor_dolzina, double *vk_alfa)
{
 if((floor(delta_h * 100000.0 )) == 0.0)
 {
  *vk_alfa = 0.0;
 }

 else
 {
  if(delta_h < 0)
  delta_h *= (-1.);

  *vk_alfa = asin(delta_h / hor_dolzina);
 }

 *vk_alfa = *vk_alfa * (180.0 / PI);
}

    

Datoteka_koordinate_tock.txt - File with points coordinates:


10 10 10   20 15 20
10 10 10   10 10 10
18.5 19.5 17.5   12.235 15.122 13.001

    



HomeHOME « Previous  1   2   3   4   5   Next »


You are   .  visitor of this page.

topBack to top


Last updated: 19.03.2008       Copyright © 2006-2012 dr.eu       All rights reserved.       Valid HTML 4.01 Transitional