JĘZYK C / C++ - przykłady programów


OBLICZENIE PÓL FIGUR

POLE PROSTOKATA

Język C

/* polpr1a.c  Pole prostokata */
/* Dyrektywy */
#include <stdio.h>
#include <conio.h>
#include <math.h>
/* Bliblioteka math.h - np. M_PI */
/* Makrodefinicja */
#define PI 3.141593

/* funkcja glowna main()*/
int main()
{
float a, b, p;    // deklaracje zmiennych
puts("Program polpr1a.c\n");
puts("Obliczenie pola prostokata: dane dlugosci a i b\n");
printf("PI=%lf (do innych obliczen, np. kola)",PI);
printf("\n\nPodaj a (0 - koniec)  => " );
scanf("%f",&a); /* wczytanie a */
while (a > 0)
 { // while
      printf("Podaj b lub 0 gdy b=a => " );
     scanf("%f",&b); /* wczytanie b */
     if (b==0)b=a;
      p=a*b;  /* pole */
      printf("Pole prostokata o bokach " );
       printf("%.3f i %.3f = %7.3f", a, b, p);
       printf("\n\nPodaj a (0 - koniec)  => " );
     scanf("%f",&a); /* wczytanie a */
  } // while

  // getch();
   return 0; /* powrot do systemu - main() zwraca 0 */
}


POLE PROSTOKATA
Język C++

// polpr1.cpp  Pole prostokata CPP Dev C++
#include <cstdlib>
#include <iostream>
#include <math.h>
using namespace std;

int main(int argc, char *argv[]) // funkcja glowna
{
float a, b, p;   
cout << "Program polpr1.cpp" << endl << endl;
cout << "Obliczenie pola prostokata: dane dlugosci a i b" << endl << endl;
cout << "Podaj a (0 - koniec) => " ;
cin >> a; // wczytanie a
while (a > 0)
 { // while
     cout << "Podaj b => "; // napis
    cin >> b;  // wczytanie b
     p=a*b; // pole
     cout << "Pole prostokat o bokach " << a << " i "  \
      << b << " = "<< p << endl << endl;
     cout << "Podaj a (0 - koniec) => " ;
     cin >> a;     // wczytanie a
  } // while

system("PAUSE");
return EXIT_SUCCESS;
}


POLE PROSTOKATA
Język C - zapis do pliku

/* polpr1a.c  Obliczenie pola prostokata, zapis do pliku */
#include <stdio.h>
#include <conio.h>
#include <math.h>
#define PI 3.141593
/* Plik wynikow */
#define WYN "pprost.txt"

int main()
{
float a, b, p;
int nr=0;
char nazwisko[20];    /* nazwisko obliczajacego */
FILE *fp; /* zmienna plikowa */

puts("Obliczenie pola prostokata: dane dlugosci a i b\n");
printf("Wyniki zapisywane w pliku ");
puts(WYN);
printf("PI=%lf (do innych obliczen)",PI);
printf("\n\nPodaj a (0 - koniec)  => " );
scanf("%f",&a); // wczytanie a
// otwarcie pliku z kontrola
 if ( (fp = fopen(WYN, "w"))==NULL   )
  {
    puts("Nie mozna otworzyc pliku do zapisu");
    exit(1);
  }
  fprintf(fp, "Obliczenie pola prostokata o bokach a i b\n");
  fprintf(fp, "Lp     a        b        pole  \n");

while (a > 0)
 { // while
     nr++;
     fprintf(fp,"%3d  %6.3f",nr, a); // wydruk do pliku
      printf("Podaj b lub 0 gdy b=a => " );
     scanf("%f",&b); // wczytanie b
     if (b==0)b=a;
     fprintf(fp,"%10.3f",b);
      p=a*b;  // pole
      printf("Pole prostokata o bokach " );
       printf("%.3f i %.3f = %7.3f", a, b, p);
       fprintf(fp,"%10.2f\n",p);
       printf("\n\nPodaj a (0 - koniec)  => " );
     scanf("%f",&a); // wczytanie a
  } // while


  printf("\nNazwisko obliczajacego: ");
  fflush(stdin);
  gets(nazwisko); // wczytanie nazwiska
  fprintf(fp,"\nObliczyl:   %s", nazwisko);
  fclose(fp); // zamkniecie pliku

  // getch();
   return 0;
}


POLA WIELU FIGUR - instrukcje w funkcji main()

/* Polaf1.c - pola figur w funkcji main() - instrukcje do...while, switch...case */
/* wariant pierwszy I */
#include <stdio.h>
#include <math.h>  /* M_PI */
int main()
{
   float a,b,c;
   int wybor;
  
    do
      {
      printf("\nPola figur\n");
      printf("1 - Prostokat\n2 - Trojkat\n3 - Trapez\n4 - Kolo\n0 - koniec\n");
      scanf("%c",&wybor);    printf("\n");
      switch (wybor)
      {
            case '1': /*Prostokat*/
                   {     puts("Podaj boki prostokata: a i b");
                         printf("Podaj a: ");  scanf("%f",&a);
                         printf("Podaj b: ");  scanf("%f",&b);
                         printf("Bok a :\t%.2f    ",a);
                         printf("Bok b:\t%.2f\n",b);
                         printf("Pole prostokata:\t%.2f\n",a*b);
                         break;
                   }
            case '2': /*Trojkat*/
                   {
                         puts("Podaj podstawe a i wysokosc h");
                         printf("Podaj a: "); scanf("%f",&a);
                         printf("Podaj h: "); scanf("%f",&b);
                         printf("Bok a :\t%.2f    ",a);
                         printf("Wysokosc h:\t%.2f\n",b);
                         printf("Pole trojkata:\t%.2f\n",0.5*a*b);
                         break;
                   }
            case '3': /*Trapez*/
                   {
                         puts("Podaj podstawy a, b i  wysokosc h");
                         printf("Podaj a: ");  scanf("%f",&a);
                         printf("Podaj b: ");  scanf("%f",&b);
                         printf("Podaj h: ");  scanf("%f",&c);
                         printf("Podstawa a :\t%.2f    ",a);
                         printf("Podstawa b :\t%.2f    ",a);
                         printf("Wysokosc h:\t%.2f\n",b);
                         printf("Pole trapezu:\t%.2f\n",0.5*(a+b)*c);
                         break;
                   }
            case '4': /*Kolo*/
                   {
                         puts("Obliczenie pola kola o promieniu r ");
                         printf("Podaj r: ");  scanf("%f",&a);
                        printf("r = :\t%.2f    ",a);
                         printf("Pole kola: \t%.2f\n",M_PI*a*a);
                         break;
                   }
            default:      break;

      }
      if (wybor!='1' && wybor!='2' && wybor!='3' && wybor!='4')   break;
      printf("\nCzy chcesz powtorzyc?\n0 - konczy\n");
      scanf("%c",&wybor);
      }
     while(wybor!='0');
 
    system("PAUSE");
    return 0;
}


POLA WIELU FIGUR - instrukcje w funkcji main()

/* polaf1a.c - pola figur - w funkcji main() - instrukcje do...while, switch...case */
/* wariant bardziej optymalny */
#include <stdio.h>
#include <math.h>  /* M_PI */
#include <conio.h>
int main()
{
   float a,b,c;
   int wybor;
  
    do
      {
      printf("\nPola figur\n");
      printf("1 - Prostokat\n2 - Trojkat\n3 - Trapez\n4 - Kolo\n0 - koniec\n");
      scanf("%c",&wybor);    printf("\n");
      switch (wybor)
      {
            case '1': /*Prostokat*/
                   {     puts("Podaj boki prostokata: a i b");
                         printf("Podaj a: ");  scanf("%f",&a);
                         printf("Podaj b: ");  scanf("%f",&b);
                         printf("Bok a :\t%.2f    ",a);
                         printf("Bok b:\t%.2f\n",b);
                         printf("Pole prostokata:\t%.2f\n",a*b);
                         break;
                   }
            case '2': /*Trojkat*/
                   {
                         puts("Podaj podstawe a i wysokosc h");
                         printf("Podaj a: "); scanf("%f",&a);
                         printf("Podaj h: "); scanf("%f",&b);
                         printf("Bok a :\t%.2f    ",a);
                         printf("Wysokosc h:\t%.2f\n",b);
                         printf("Pole trojkata:\t%.2f\n",0.5*a*b);
                         break;
                   }
            case '3': /*Trapez*/
                   {
                         puts("Podaj podstawy a, b i  wysokosc h");
                         printf("Podaj a: ");  scanf("%f",&a);
                         printf("Podaj b: ");  scanf("%f",&b);
                         printf("Podaj h: ");  scanf("%f",&c);
                         printf("Podstawa a :\t%.2f    ",a);
                         printf("Podstawa b :\t%.2f    ",a);
                         printf("Wysokosc h:\t%.2f\n",b);
                         printf("Pole trapezu:\t%.2f\n",0.5*(a+b)*c);
                         break;
                   }
            case '4': /*Kolo*/
                   {
                         puts("Obliczenie pola kola o promieniu r ");
                         printf("Podaj r: ");  scanf("%f",&a);
                        printf("r = :\t%.2f    ",a);
                         printf("Pole kola: \t%.2f\n",M_PI*a*a);
                         break;
                   }
            default:      break;

      }
      fflush(stdin);
     
      }
     while(wybor!='0');
   
    // puts("Nacisnij Enter" );  
    // getch();
    return 0;
}






POLA WIELU FIGUR - instrukcje w funkcji main()

/* polaf1b.c  Pola figur - instrukcje for, while, do...while , switch...case */
/* wielokrotne obliczenia tej samej figury - for, while, do */

#include <stdio.h>
#include <math.h>  /* M_PI */
#include <conio.h>
int main()
{
   float a,b,c;
   int wybor, i, n=0;
   int kont=0;
  
    do
      {
      printf("\nPola figur\n");
      printf("1 - Prostokat\n2 - Trojkat\n3 - Trapez\n4 - Kolo\n0 - koniec\n");
      scanf("%d",&wybor);    printf("\n");
      switch (wybor)
      {
            case 1: /*Prostokat*/
                   {    
                         printf("Podaj ilosc obliczen: "); scanf("%d",&n);
                         for (i=1; i<=n; i++)
                         {
                            printf("Podaj boki prostokata: a i b => "); scanf("%f %f",&a,&b);
                            printf("Pole prostokata: o bokach %.3f i %.3f = %.2f\n",a, b, a*b);
                          }
                         break;
                   }
            case 2: /*Trojkat*/
                   {
                         puts("Obliczenie pola trojkata: dane a i h");
                         printf("Podaj a (0 - koniec) : "); scanf("%f",&a);
                         while (a !=0 )
                         {
                           printf("Podaj h: "); scanf("%f",&b);
                           printf("Bok a :\t%.3f    ",a);
                           printf("Wysokosc h:\t%.3f\n",b);
                           printf("Pole trojkata:\t%.3f\n",0.5*a*b);
                           printf("Podaj a (0 - koniec) : "); scanf("%f",&a);
                        }
                         break;
                   }
            case 3: /*Trapez*/
                   {
                    do {
                         puts("Podaj podstawy a, b i  wysokosc h");
                         printf("Podaj a: ");  scanf("%f",&a);
                         printf("Podaj b: ");  scanf("%f",&b);
                         printf("Podaj h: ");  scanf("%f",&c);
                         printf("Podstawa a :\t%.2f    ",a);
                         printf("Podstawa b :\t%.2f    ",a);
                         printf("Wysokosc h:\t%.2f\n",b);
                         printf("Pole trapezu:\t%.2f\n",0.5*(a+b)*c);
                         printf("Kontynuacja: 1, koniec: 0 => "); scanf("%d",&kont);
                    } while (kont==1);
                         break;
                   }
            case 4: /*Kolo*/
                   {
                         puts("Obliczenie pola kola o promieniu r ");
                         printf("Podaj r (0 - koniec) => ");  scanf("%f",&a);
                        while (a >0 )
                         {
                          printf("r = :\t%.2f    ",a);
                          printf("Pole kola: \t%.2f\n",M_PI*a*a);
                          printf("Podaj r (0 - koniec) => ");  scanf("%f",&a);
                         }
                         break;
                   }
            default:      break;

      }
      fflush(stdin);
     
      }
     while(wybor!=0);
   
    // puts("Nacisnij Enter" );  
    // getch();
    return 0;
}


Pola wielu figur - funkcje

/*  pola2a.c  Obliczenie pol figurm do, switch, for, funkcje */
#include <stdio.h>
#include <conio.h>
// include <cstdlib>
// #include <iostream>
#include <math.h>
/* makrodefinicje */
#define WYS2 puts("\n\n")
#define WYS1 putchar('\n')
// using namespace std;

// Deklaracje funkcji
void poleprost1();
void poleprost2();
void poletrojk();
float poletr1();
float poletr2();
void poletrapez();
double polekola();
void polerombu();
void polerownol();
void polewyckola();
void polewyckola();
void pole6kataforemn();
void poleprostopadl();
void poleszescianu();
void polewalca();

int main(int argc, char *argv[])
{
  int wybor;
  float p;

 do
 {
    WYS2;
    puts("Program do obliczenia pol figur i bryl");
    puts("0 Koniec programu");
    puts("1 Pole prostokata - pojedyncze obliczenie");
    puts("2 Pole prostokata - wielokrotne obliczenie");
    puts("3 Pole trojkata");
    puts("4 Pole trapezu");
    puts("5 Pole kola");
    puts("6 Pole rombu");
    puts("7 Pole rownolegloboku");
    puts("8 Pole wycinka kola");
    puts("9 Pole szesciokata foramnego");
    puts("a Pole prostopadloscianu");
    puts("b Pole szescianu");
    puts("c Pole walca - podana ilosc obliczen");
    puts("z Zakoncz program");
    fflush(stdin);
    wybor=getchar();
   
    switch (wybor)
    {
        case '1': WYS1; poleprost1(); fflush(stdin);  break;
        case '2': WYS1; poleprost2(); fflush(stdin);  break;
        case '3': WYS1; poletrojk();  fflush(stdin);  break;
        case '4': WYS1; poletrapez(); fflush(stdin); break;
        case '5': WYS1; p=polekola(); WYS1;
        printf("Pole kola = %lf", p);  fflush(stdin); break;
        case '6': WYS1; polerombu(); WYS1;   fflush(stdin);  break;
        case '7': WYS1; polerownol(); WYS1;   fflush(stdin);  break;
        case '8': WYS1; polewyckola(); WYS1; fflush(stdin);  break; 
        case '9': WYS1; pole6kataforemn(); WYS1; fflush(stdin);  break; 
        case 'a': case 'A': WYS1; poleprostopadl(); WYS1; fflush(stdin);  break; 
        case 'b': case 'B': WYS1; poleszescianu(); WYS1; fflush(stdin);  break; 
        case 'c': case 'C': WYS1; polewalca(); WYS1; fflush(stdin);  break; 
        case '0': case 'z': case 'Z':  break;
        default: puts("Niepoprawny wybor, powtorz\n");
       }
      
 } while ( (wybor != 'z') && (wybor != 'Z')   && (wybor != '0'));
 
  // getch();
   return 0;
}

// Definicje funkcji
void poleprost1()
{
 float a, b, p;
 puts("Obliczenie pola prostokata");
 printf("Podaj dlugosci bokow: a i b => "); scanf("%f %f", &a, &b);
 p=a*b;
 printf("Pole prostokata o bokach %f i %f = %f",a,b,p);
}

void poleprost2()
{
float a, b, p;    // deklaracje zmiennych
puts("Program polpr1a.c\n");
puts("Obliczenie pola prostokata: dane dlugosci a i b\n");
printf("\n\nPodaj a (0 - koniec)  => " );
scanf("%f",&a); /* wczytanie a */
while (a > 0)
 { // while
      printf("Podaj b lub 0 gdy b=a => " );
     scanf("%f",&b); /* wczytanie b */
     if (b==0)b=a;
      p=a*b;  /* pole */
      printf("Pole prostokata o bokach " );
       printf("%.3f i %.3f = %7.3f", a, b, p);
       printf("\n\nPodaj a (0 - koniec)  => " );
     scanf("%f",&a); /* wczytanie a */
  } // while

}


void poletrojk()
{
 int wybor1;
 float p=0;
 do
 {
  putchar('\n'); putchar('\n');
  puts("====Obliczenie pola trojkata=======");
  WYS1;
  puts("1. Dane bok a i wysokosc h");
  puts("2. Dane boki a, b, c");
  puts("3. Zakoncz obliczenia trojkata");
  fflush(stdin);
  wybor1=getchar();
    switch (wybor1)
    {
        case '1': WYS2; p=poletr1(); fflush(stdin);   break;
        case '2': WYS2; p=poletr2(); fflush(stdin);  break;
        case '3': case '0':  break;
        default: puts("Niepoprawny wybor, powtorz\n");
          }
    printf("\nole trojkata = %f \n\n",p);     
   } while ( (wybor1 != '3') && (wybor1 != '0'));
 }

 
void poletrapez()
{
 float a, b, h, p;
 puts("Obliczenie pola trapezu");
 printf("Podaj dlugosci: a i b oraz h => "); scanf("%f %f %f", &a, &b, &h);
 p=0.5*(a+b)*h;
 printf("Pole trapezu o boku %.3f i  wysokosci %.3f = %5.3f",a,h,p);
 }

double polekola() // zwraca watosc
{
 double r, p, p1;
 double PI=4.0*atan(1.0),  pi = 4.0 * atan(1.0);
 puts("Obliczenie pola kola\n");
 printf("M_PI %lf  PI= %lf  pi = %lf",M_PI, PI, pi);
 printf("\nPodaj promien r  => ");
 scanf("%lf", &r);
 p=M_PI*r*r;
 p1=PI*r*r;
 printf("\nPole kola o promieniu %lf = M_PI*r*r= %lf",p);
 printf("\nPole kola o promieniu %lf = PI*r*r  = %lf",p1);
 printf("\n");
 return(p);
}


float poletr1()
{
 float a, h, p;
 puts("Obliczenie pola trojkata - dana podstawa i wysokosc");
 printf("Podaj dlugosci: a i h => "); scanf("%f %f", &a, &h);
 p=a*h/2.0;
 printf("Pole trojkata o boku %.3f i  wysokosci %.3f = %.3f\n",a,h,p);
 return p;
 }

float poletr2()
{
 float a, b, c, p, pole;
 puts("\nObliczenie pola trojkata ze wzoru Herona - dane boki");
 printf("\nPodaj dlugosc: a => ");
 scanf("%f",&a);
 printf("Podaj dlugosc: b => ");
 scanf("%f",&b);
 printf("Podaj dlugosc: c => ");
 scanf("%f",&c);
 fflush(stdin);
 p=0.5*(a+b+c);
 pole=sqrt(p*(p-a)*(p-b)*(p-c));
 printf("\nPole trojkata o bokach %.3f %.3f %.3f = %.3f\n",a,b,c,pole);
 return pole;
 }

void polerombu()
{
 float a, h, p, q, pole;
  int w=0;
  puts("Obliczenie pola rombu - 2 dane oddzielone spacja");
  puts("Wariant: 1 - bok a i wysokosc h   ");
  puts("Wariant: 2 - przekatne p i q      ");   
 // scanf("%d",&w);
 
  do
  scanf("%d",&w);
  while ((w !=1) && (w !=2));
 
  if (w==1)
   {
    printf("Podaj a i h => ");
    scanf("%f %f",&a,&h);
    pole=0.5*a*h;   
   }
   else
   if (w==2)   
   {
    printf("Podaj przekatne p i q => ");
    scanf("%f %f",&p,&q);
    pole=0.5*p*q;       
    }
    printf("Pole rombu = %f\n", pole);
    getch();
 }
   
void polerownol()
{
float a, h, p;
 puts("Obliczenie pola rownolegloboku - dana podstawa a i wysokosc h");
 printf("Podaj dlugosci: a i h => "); scanf("%f %f", &a, &h);
 p=a*h;
 printf("Pole rownolegloboku o boku %.3f i  wysokosci %.3f = %.3f\n",a,h,p);
}   


void polewyckola()
{
float r=0, alfa=0, p=0;
 puts("Obliczenie pola wycinka kola - dana podstawa r i kat [grad] \nh");
 printf("Podaj r  => "); scanf("%f", &r);
 printf("\nPodaj kat Alfa[grad]  => "); scanf("%f", &alfa);
 p=alfa/400.0*M_PI*r*r;
 printf("Pole wycinka kola o promieniu %.3f i  kacie %.4f[grad] = %.3f\n",r,alfa,p);

}

void pole6kataforemn()
{
 float a,  p;
 puts("Obliczenie pola szesciokata foremnego h");
 printf("Podaj dlugosca: a => "); scanf("%f",&a);
 p=1.5*a*a*sqrt(3);
 printf("Pole szesciokata o boku %.3f = %.3f\n",a,p);   
}

void poleprostopadl()
{
    float a, b, h, p;
 puts("Obliczenie pola prostopadloscianu - dane krawedzie podstawy a, b i wysokosc h");
 printf("Podaj dlugosci podstawy: a i b => "); scanf("%f %f", &a, &b);
 printf("Podaj wysokosc: h => "); scanf("%f",&h);
 p=2.0*(a*b+a*h+b*h);
 printf("Pole prostopadloscianu o krawedziach podstawy %.3f %.3f\n i wysokosci %.3f = %.3f\n",a,b,h,p);
}
 
void poleszescianu()
{
 float a,  p;
 puts("Obliczenie pola szescianu h");
 printf("Podaj dlugosc krawedzi: a => "); scanf("%f",&a);
 p=6.0*a*a;
 printf("Pole szescianu o boku %.3f = %.3f\n",a,p);   
}

void polewalca()
{
    float r, h, p;
    int i, n;
    puts("Obliczenie pola walca");
    printf("Ile obliczen?  "); scanf("%d",&n);
    for (i=1; i<=n; i++)
    {
       printf("Podaj promien r i wysokosc h => "); scanf("%f %f",&r, &h);
       p=2.0*M_PI*r*(r+h);
       printf("Lp = %i  Pole walca o promieniu %.3f i wysokosci %.3f = = %.3f\n",i, r,h,p);   
     }   
}




Pola kilku figur - funkcje

// Polafig1a.cpp  - pola figur - funkcje,  Dev C++
#include <cstdlib>   
#include <iostream>   
#include <conio.h>   
#include <math.h>
using namespace std;
// Deklaracje funkcji
float poleprostokata();    float poletrojkata();    float polekola();
// Funkcja glowna
int main(int argc, char *argv[])
{  float x, y, pole;   int decyzja;
  cout << "Obliczenie pole figur - funkcje " << endl;
  cout << "\nPodaj numer figury lub 0 - koniec obliczen: " << endl;
  cout << "0 - wyjście z programu" << endl;
  cout << "1 - prostokat: a b " << endl;
  cout << "2 - trojkat: a h" << endl;
  cout << "3 - kolo: r " << endl;
  do  cin >> decyzja;  while (!((decyzja >=0)&&(decyzja<=3)));
    switch (decyzja)
    {      case 1: pole = poleprostokata();  break;
           case 2:  pole=poletrojkata();     break;
           case 3: pole=polekola();          break;
           default:  cout << "Koniec programu" << endl;  pole = 0;
    }
    cout << endl;     getch();     return 0;
}
// Definicje funkcji
float poleprostokata()
{ float a, b, p;
 cout << "Pole prostokata:  ";  cout << "podaj boki a b => ";  cin >> a >> b;
 p=a*b;  cout << "Pole prostokata wynosi: " << p << endl;
 return(p);
}

float poletrojkata()
{  float a, h, p;
 cout << "Pole trojkata: ";  cout << "podaj bok a  i wysokosc h => ";
 cin >> a >> h;  p=0.5*a*h;  cout << "Pole trojkata wynosi: " << p << endl;
 return(p);
}

float polekola()
{  float r, p;
 cout << "Pole kola:    ";  cout << "podaj promien => ";  cin >> r;
 p=M_PI*r*r;  cout << "M_PI=" << M_PI << "  ";
 cout << "Pole kola wynosi: " << p << endl;
 return(p);
}





// polafig1.cpp - funkcje - wersja C++  Dev C++
#include <cstdlib>
#include <iostream>
using namespace std;

void oblicz_pole(char figura);
float pobierz_wartosc();
float pole_prostokata(float x, float y);
float pole_kola(float x);
float pole_trojkata(float x, float y);

int main(int argc, char *argv[])
{
    char decyzja='1';  
    while(decyzja!='0')
    {
        cout << "Wybierz figure: " << endl;
        cout << "p - prostokat, k - kolo, t - trojkat, 0 - koniec " << endl;
        cin >> decyzja;
       
        if ((decyzja=='p')||(decyzja=='k')||(decyzja=='t')) oblicz_pole(decyzja);
        else if (decyzja=='0') break;
        else cout << "Zly wybor" << endl;
   }        
      
    cout << endl << endl;  
    system("PAUSE");
    return EXIT_SUCCESS;
}

void oblicz_pole(char figura)
{
     float a,b;
     cout << "Podaj dlugosc";
     switch (figura){
     case 'p': cout << "i bokow prostokata: "; a=pobierz_wartosc(); b=pobierz_wartosc();
               cout << "Pole prostokata wynosi: " << pole_prostokata (a, b) << endl; break;
     case 'k': cout << " promienia kola: "; a=pobierz_wartosc();
               cout << "Pole kola wynosi: " << pole_kola (a) << endl; break;
     case 't': cout << " podstawy i wysokosci trojkata: "; a=pobierz_wartosc(); b=pobierz_wartosc();
               cout << "Pole trojkata wynosi: " << pole_trojkata (a, b) << endl; break;
     }
}

float pobierz_wartosc()
{
      while (1)
      {
            float a;
            cin >> a;
            if (a > 0) return a;
      }
}

float pole_prostokata(float x, float y)
{
      return x*y;
}

float pole_kola(float x)
{
      return 3.1415*x*x;
}

float pole_trojkata(float x, float y)
{
      return x*y/2;
}