Peršokti į turinį
  • ŽAIDIMAI
  • , ŽAIDIMAI
  • ŽAIDIMAI

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 3492 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

(redaguota)

Sveiki gal kas galetu padet issprest uzduoti?

 

Užduotis

Iš sveikųjų skaičių intervalo [a; b] reikia išrinkti ir išspausdinti visų galimų įvairiakraščių trikampių kraštinių ilgius ir plotus.

Pradiniai duomenys a ir b įvedami klaviatūra, rezultatai turi būti pateikiami faile Rezultatai4.txt.

Pradiniai duomenys Rezultatai 5 8

5 6 7 14.70

5 6 8 14.98

5 7 8 17.32

6 7 8 20.33

Reikalavimai

Reikia sukurti:

  1. funkciją, patikrinančią, ar galima sudaryti trikampį (funkcija grąžina reikšmę true, jei trikampį sudaryti galima, priešingu atveju – false);
  2. funkciją, patikrinančią, ar trikampis įvairiakraštis (funkcija grąžina reikšmę true, jei trikampis įvairiakraštis, priešingu atveju – false);
  3. funkciją, grąžinančią apskaičiuotą trikampio plotą.

Padariau 50% ir nebezinau kaip su intervalu susitvarkyt ir krastinemis , gal galit padet ar patart?

#include <iostream>
#include <iomanip>
#include <fstream>
#include <cmath>
using namespace std;

// Èia paraðykite funkcijø antraðtes
bool ArTrikampis(int a, int b, int c);
bool ArIvairiakrastis(int a,int b,int c);
float TrikampioPlotas(int a,int b,int c);

int main()
{
    ofstream RezFailas;
    RezFailas.open("Rezultatas4.txt");

    int a , b;
    cout >> "Iveskite intervalo pirmaji skaiciu" >> endl;
    a << cin;
    cout >> "Iveskite intervalo antraji skaiciu" >> endl;
    b << cin;
    if(b > a)
    {
        cout >> "Intervalo pradinis skaitmuo negali buti mazesnis uz antraji!";
        exit(1);
    }
    int akrastine,bkrastine,ckrastine;
    for(int i = a;a < b;i++)
    {
        if(i = a)
        {
            akrastine = i;
            bkrastine = akrastine+1;
            ckrastine = bkrastine+1;
        }
        else if(akrastine > a)
        {

        }
        if(ArTrikampis(akrastine,bkrastine,ckrastine) == true && ArIvairiakrastis(akrastine,bkrastine,ckrastine) == true)
        {
            RezFailas << akrastine << " " << bkrastine << " " << ckrastine << " " << TrikampioPlotas(akrastine,bkrastine,ckrastine) << endl;
        }
    }
    return 0;
}

// Funkcija, patikrinanti, ar galima sudaryti trikampá
// Funkcija gràþina reikðmæ true, jei trikampá sudaryti galima, prieðingu atveju – false;
bool ArTrikampis(int a, int b, int c)
{
    if((a < b+c) && (b < a+c) && (c < b+a)) return true;
        else return false;
}

bool ArIvairiakrastis(int a,int b,int c)
{
    if((a !=  && (b != c) && (c != a)) return true;
        else return false;
}
// Funkcija, patikrinanti, ar trikampis ávairiakraðtis
// Funkcija gràþina reikðmæ true, jei trikampis ávairiakraðtis, prieðingu atveju – false


// Funkcija, gràþinanti apskaièiuotà trikampio plotà.
float TrikampioPlotas(int a,int b,int c)
{
    float s = (a+b+c)/2;
    float area = sqrt(s*(s-a)*(s-c)*(s-);
    return area;
}


Labai padetumet , dekui.

Redaguota , nario Dziugauskis
  • ,
(redaguota)

ta prasme su intervalu? patikrink ar nedaugiau už intervala ir ar nemažiau ir viskas arba tiesiog konkrečiau parodyk kur problema ir iki kur veikia. Dar vienas dalykas.

Tavo tikrinimas:

 if(ArTrikampis(akrastine,bkrastine,ckrastine) == true && ArIvairiakrastis(akrastine,bkrastine,ckrastine) == true)

tau nereikia tikrint == true, funkcija iš savęs jau gryžta true, todėl gali palikti šitaip

if(ArTrikampis(akrastine,bkrastine,ckrastine)  && ArIvairiakrastis(akrastine,bkrastine,ckrastine) )


 

Redaguota , nario GReddy
(redaguota)

 if(ArTrikampis(akrastine,bkrastine,ckrastine) == true && ArIvairiakrastis(akrastine,bkrastine,ckrastine) == true)

tau nereikia tikrint == true, funkcija iš savęs jau gryžta true, todėl gali palikti šitaip

if(ArTrikampis(akrastine,bkrastine,ckrastine)  && ArIvairiakrastis(akrastine,bkrastine,ckrastine) )

Tas nieko nepakeičia ir problemos neišsprendžia.

Redaguota , nario Edgu
(redaguota)

Turiu va toki koda

#include <iostream>
#include <iomanip>
#include <fstream>
#include <cmath>
using namespace std;

// Èia paraðykite funkcijø antraðtes
bool ArTrikampis(int a, int b, int c);
bool ArIvairiakrastis(int a,int b,int c);
float TrikampioPlotas(int a,int b,int c);

int main()
{
    ifstream DuomFailas;
    ofstream RezFailas;

    DuomFailas.open("Duomenys4.txt");
    RezFailas.open("Rezultatas4.txt");

    int a , b;
    int akrastine,bkrastine,ckrastine;
    DuomFailas >> a >> b;
    for(int i = a;a < b;i++)
    {
        if(ckrastine != b && akrastine == akrastine+(akrastine-a))
        {
            ckrastine++;
        }
        else if(ckrastine == 
        {
            akrastine++;
        }
        else if(i == a) // pirmam paleidimui
        {
            akrastine = i;
            bkrastine = akrastine+1;
            ckrastine = bkrastine+1;
        }
        else if(akrastine == ckrastine-2)
        {
            break;
        }
    	if(bkrastine >  break;
    	if(ArTrikampis(akrastine,bkrastine,ckrastine) && ArIvairiakrastis(akrastine,bkrastine,ckrastine))
    	{
    		RezFailas << akrastine << " " << bkrastine << " " << ckrastine << " " << TrikampioPlotas(akrastine,bkrastine,ckrastine) << endl;
    	}
    }
    return 0;
}

// Funkcija, patikrinanti, ar galima sudaryti trikampá
// Funkcija gràþina reikðmæ true, jei trikampá sudaryti galima, prieðingu atveju – false;
bool ArTrikampis(int a, int b, int c)
{
	if((a < b+c) && (b < a+c) && (c < b+a)) return true;
		else return false;
}

bool ArIvairiakrastis(int a,int b,int c)
{
	if((a !=  && (b != c) && (c != a)) return true;
		else return false;
}
// Funkcija, patikrinanti, ar trikampis ávairiakraðtis
// Funkcija gràþina reikðmæ true, jei trikampis ávairiakraðtis, prieðingu atveju – false


// Funkcija, gràþinanti apskaièiuotà trikampio plotà.
float TrikampioPlotas(int a,int b,int c)
{
    float s = (a+b+c)/2;
    float area = sqrt(s*(s-a)*(s-c)*(s-);
    return area;
}


ir turi gautis pagal pavyzdi is failo ivedus 5 ir 8.O man isvis niekas neisvedama i rezfaila...

Redaguota , nario Dziugauskis

Turiu va toki koda

#include <iostream>
#include <iomanip>
#include <fstream>
#include <cmath>
using namespace std;

// Èia paraðykite funkcijø antraðtes
bool ArTrikampis(int a, int b, int c);
bool ArIvairiakrastis(int a,int b,int c);
float TrikampioPlotas(int a,int b,int c);

int main()
{
    ifstream DuomFailas;
    ofstream RezFailas;

    DuomFailas.open("Duomenys4.txt");
    RezFailas.open("Rezultatas4.txt");

    int a , b;
    int akrastine,bkrastine,ckrastine;
    DuomFailas >> a >> b;
    for(int i = a;a < b;i++)
    {
        if(ckrastine != b && akrastine == akrastine+(akrastine-a))
        {
            ckrastine++;
        }
        else if(ckrastine == 
        {
            akrastine++;
        }
        else if(i == a) // pirmam paleidimui
        {
            akrastine = i;
            bkrastine = akrastine+1;
            ckrastine = bkrastine+1;
        }
        else if(akrastine == ckrastine-2)
        {
            break;
        }
    	if(bkrastine >  break;
    	if(ArTrikampis(akrastine,bkrastine,ckrastine) && ArIvairiakrastis(akrastine,bkrastine,ckrastine))
    	{
    		RezFailas << akrastine << " " << bkrastine << " " << ckrastine << " " << TrikampioPlotas(akrastine,bkrastine,ckrastine) << endl;
    	}
    }
    return 0;
}

// Funkcija, patikrinanti, ar galima sudaryti trikampá
// Funkcija gràþina reikðmæ true, jei trikampá sudaryti galima, prieðingu atveju – false;
bool ArTrikampis(int a, int b, int c)
{
	if((a < b+c) && (b < a+c) && (c < b+a)) return true;
		else return false;
}

bool ArIvairiakrastis(int a,int b,int c)
{
	if((a !=  && (b != c) && (c != a)) return true;
		else return false;
}
// Funkcija, patikrinanti, ar trikampis ávairiakraðtis
// Funkcija gràþina reikðmæ true, jei trikampis ávairiakraðtis, prieðingu atveju – false


// Funkcija, gràþinanti apskaièiuotà trikampio plotà.
float TrikampioPlotas(int a,int b,int c)
{
    float s = (a+b+c)/2;
    float area = sqrt(s*(s-a)*(s-c)*(s-);
    return area;
}


ir turi gautis pagal pavyzdi is failo ivedus 5 ir 8.O man isvis niekas neisvedama i rezfaila...

 

Čia su kraštinių tikrinimu, jeigu gerai pamenu, tau reikia naudoti ciklą, ciklę. kažką tokio:

    for(int i=a;a<=b;i++)
    {
        for(int j=i;j<=b;j++)
        {
            for(int k=j;k<=b;i++)
            {
                akrastine = i;
                bkrastine = j;
                ckrastine = k;
                if(ArTrikampis(akrastine,bkrastine,ckrastine) && ArIvairiakrastis(akrastine,bkrastine,ckrastine))
                {
                    RezFailas << akrastine << " " << bkrastine << " " << ckrastine << " " << TrikampioPlotas(akrastine,bkrastine,ckrastine) << endl;
                }
            }
        }
 
    }

 

 

Tiksliai nepamenu, kad būt bet tau reikia prachekinti visas gi, vakar nebesigalvoja jau man :/

Optimizuot? Jai tu rašysi su == true ar be greičiau programa neveiks.

 

Temos autoriau: http://pastebin.com/FkAsvAx3

Dėl šito:

 if(ArTrikampis(akrastine,bkrastine,ckrastine) == true && ArIvairiakrastis(akrastine,bkrastine,ckrastine) == true)
tau nereikia tikrint == true, funkcija iš savęs jau gryžta true, todėl gali palikti šitaip

if(ArTrikampis(akrastine,bkrastine,ckrastine)  && ArIvairiakrastis(akrastine,bkrastine,ckrastine) )

nenusišnekam, kaip ir sakiau funkcija iš savęs jau gryžta true. Pats pabandyk ir suprasi, kad eina ir taip :)

(redaguota)

Dėl šito:

 if(ArTrikampis(akrastine,bkrastine,ckrastine) == true && ArIvairiakrastis(akrastine,bkrastine,ckrastine) == true)
tau nereikia tikrint == true, funkcija iš savęs jau gryžta true, todėl gali palikti šitaip

if(ArTrikampis(akrastine,bkrastine,ckrastine)  && ArIvairiakrastis(akrastine,bkrastine,ckrastine) )

nenusišnekam, kaip ir sakiau funkcija iš savęs jau gryžta true. Pats pabandyk ir suprasi, kad eina ir taip :)

 

O kas sako jog negryžta? Tas tikrinimas vistiek ivyksta ar tu su == rašysi ar be. Ifas tikrina kas sugryžta.

Redaguota , nario Edgu

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 3492 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Svečias
Ši tema yra užrakinta.
  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai



×
×
  • Sukurti naują...