Pereiti prie turinio

C++ Herono formulė


Rekomenduojami pranešimai

Sveiki, reikia pagalbos su c++ uždaviniu. Uždavinys:

 

#include <iostream>
#include <iomanip>

using namespace std;

int main()
{
int a, b, c; // triju lazdu ilgiai
int   	n, // lazdu rinkiniu skaicius
         i; // cinklo kintamasis
   cout <<"Iveskite, kiek lazdu rinkiniu bus: "; cin >> n;
   for (i = 1; i <= n; i = i + 1){
       cout << "Iveskite triju lazdu " << i << "-aji rinkini: ";
       cin >> a >> b >> c ;
       cout << "Lazdos: " << setw(2) << fixed << a << " "
           << setw(2) << fixed << b << " " << setw(2) << fixed << c;
       if ((a + b > c) && (a + c > b) && (b + c > a))   // ar trikampis ?
           if ((a == b) && (b == c))                        // ar lygiakrastis ?
               cout << " - Galima sudaryti lygiakrasti trikampi " << endl;
           else if ((a == b) || (b == c) || (a == c))      // ar lygiasonis ?
               cout << " - Galima sudaryti lygiasoni trikampi" << endl;
               else cout << " - galima sudaryti ivairiakrasti trikampi" << endl;
       else cout << " - Trikampio sudaryti negalima " << endl;
       }
   return 0;
}

 

(Uždavinį viskas veikia)

Ir man dabar reikia padaryti, kad programa parašytų ar galima sudaryti trikampius ir reikia, kad pagal herono formulę apskaičiuotų trikampio plotą. Kiek ieškojau internete radau formulę http://upload.wikimedia.org/wikipedia/lt/math/f/c/5/fc5a485aaed7799da196ac7686ad6da9.png ir nežinau kaip ją aprašyti, kad ji tiktų C++

 

 

Gal kas padėsit ir pataisysit programą nemokamai?

Redagavo Edviux
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Nemokamai? Ne per gerai tau čia :D? Pala pabandysiu, gal kas išeis.

Edit:

Štai herono formulė.

Raidė p yra pusperimetris. Susižinai pusperimetri ir apskaičiuoji plotą. Labai paprasta. Pabandyk, jei neišeis, pabandysiu kodą parašyt.

Redagavo L1v1
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Su L1v1 pagalba gavom tokį kodą:

 

 

#include <iostream>
#include <iomanip>
#include <math.h> // saknies funkcijai

using namespace std;

int main()
{
float p; // pusperimetris
int log; // true, false
float s; // trikampio plotas
int a, b, c; // triju lazdu ilgiai
int     n, // lazdu rinkiniu skaicius
       i; // cinklo kintamasis
       cout <<"Iveskite, kiek lazdu rinkiniu bus: "; cin >> n;
       for (i = 1; i <= n; i = i + 1){
       cout << "Iveskite triju lazdu " << i << "-aji rinkini: ";
       cin >> a >> b >> c ;
       cout << "Lazdos: " << setw(2) << fixed << a << " "
               << setw(2) << fixed << b << " " << setw(2) << fixed << c;
       if ((a + b > c) && (a + c > b) && (b + c > a))   // ar trikampis ?
               if ((a == b) && (b == c))                       // ar lygiakrastis ?
                               log = 1;
               cout << " - Galima sudaryti lygiakrasti trikampi " << endl;
               else if ((a == b) || (b == c) || (a == c))      // ar lygiasonis ?
                               log = 2;
               cout << " - Galima sudaryti lygiasoni trikampi" << endl;
               else cout << " - galima sudaryti ivairiakrasti trikampi" << endl;
       else cout << " - Trikampio sudaryti negalima " << endl;
       }

               if (log=1){ // jei trikampis yra lygiakraštis
               s = (a*a*sqrt(3))/4;
               s = s*n;
               cout << " - Trikampio plotas" << s ;
               }
               else{ // jei trikampys yra lygiašonis
               p = (a+b+c)/2 ;
               s = sqrt(p(p-a)(p-b)(p-c)) ;
               s = s*n;
               cout << " - Trikampio plotas" << s ;
               }


       return 0;

}

 

 

Gal kas padėsit ištaisyti?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Su kodu pas tave beveik viskas gerai, tik reikia reikia apskliausti kai kuriuos if'us, ir pakeisti if (log=1)į if (log==1)

 

int main()
{
 float p; // pusperimetris
 int log; // true, false
 float s; // trikampio plotas
 int a, b, c; // triju lazdu ilgiai
 int     n, // lazdu rinkiniu skaicius
 i; // cinklo kintamasis
 cout <<"Iveskite, kiek lazdu rinkiniu bus: ";
 cin >> n;
 for (i = 1; i <= n; i = i + 1)
   {
     cout << "Iveskite triju lazdu " << i << "-aji rinkini: ";
     cin >> a >> b >> c ;
     cout << "Lazdos: " << setw(2) << fixed << a << " "
          << setw(2) << fixed << b << " " << setw(2) << fixed << c;
     if ((a + b > c) && (a + c > b) && (b + c > a))   // ar trikampis ?
       {
         if ((a == b) && (b == c))                       // ar lygiakrastis ?
           {
             log = 1;
             cout << " - Galima sudaryti lygiakrasti trikampi " << endl;
           }

         else if ((a == b) || (b == c) || (a == c))      // ar lygiasonis ?
           {
             log = 2;
             cout << " - Galima sudaryti lygiasoni trikampi" << endl;
           }
         else cout << " - galima sudaryti ivairiakrasti trikampi" << endl;
       }
     else cout << " - Trikampio sudaryti negalima " << endl;
   }

 if (log==1)  // jei trikampis yra lygiakraštis
   {
     s = (a*a*sqrt(3))/4;
     s = s*n;
     cout << " - Trikampio plotas" << s ;
   }
 else  // jei trikampys yra lygiašonis
   {
     p = (a+b+c)/2 ;
     s = sqrt(p*(p-a)*(p-b)*(p-c)) ;
     s = s*n;
     cout << " - Trikampio plotas" << s ;
   }


 return 0;
}

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Lyg ir veikia per php. Žiūrim čia .

 

Kodas:

<?php

if($_POST){

$n = $_POST['n']; 
$a = $_POST['a']; 
$b = $_POST['b']; 
$c = $_POST['c']; 

     if(empty($n) || empty($a) || empty($b) || empty($c)){
     echo "Nei viena is ivestu reiksmiu negali buti lygi nuliui.";
     }

     else{

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

						if (($a + $b > $c) && ($a + $c > $b) && ($b + $c > $a)) { // trikampis

								if (($a == $b) && ($b == $c)){ // lygiakrastis
								echo " Galima sudaryti lygiakrasti trikampi.";
								break;
								}
								else if (($a == $b) || ($b == $c) || ($a == $c)){ // lygiasonis
								echo " Galima sudaryti lygiasoni trikampi.";
								break;
								}
								else{
								echo "Galima sudaryti ivairiakrasti trikampi.";	//ivairiakrastis
								break;
								}
						$log = 1;	
						return($log);
						}

						else{
						echo "Trikampio sudaryti negalima.";
						$log = 0;
						return($log);
						break;
						}

					}


					if($log=1){
					$p = ($a+$b+$c)/2;

					$q = $p-$a;
					$w = $p-$b;
					$e = $p-$c;

					$s = sqrt($p*$q*$w*$e);
					$s = $s*$n;
					echo "<br />";
					echo "Trikampio plotas yra :" . " " . $s;
					}



				}
}


?>




Redagavo L1v1
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...