All pastes #27586 Raw Edit

Untitled

public text v1 · immutable
#27586 ·published 2005-11-04 11:04 UTC
rendered paste body
/*Staciakampio padetis plokstumoje nusakoma jo priesingu kampu koordinatemis (x1,y1) ir (x2, y2).
Turime daug staciakampiu, kuris is ju yra arciausiai koordinaciu pradzios tasko, jeigu krastines
yra lygiagrecios su asimis?
Sudarykite procedura staciakampio atstumui iki koordinaciu pradzios tasko
apskaiciuoti*/

#include <iostream>
#include <stdlib.h>


#include <stdio.h>
#include <math.h> //Itraukia biblioteka su matemtinemis funkcijomis as naudosiu sqrt funkcija

int z, s/*staciak. kiekis*/, i/*masyvo nario nr*/, artstac/*artimiausio staciakampio eiles nr*/, xp/*stac. pirmojo kampo x koord.*/, xa/*stc antro kampo x koord*/, xt, xk, yp, ya, yt, yk/*staciakampio kampu y koordinates*/;
float atstumas ()/*preprocesoriaus komanda nurodanti kad bus tokia funkcija*/, ap, aa, at, ak/*kiekvieno staciakampio tasko atstumas iki koordinaciu pradzios tasko*/, m/*artimiausio staciakampio kampo atstumas*/, trilg[100]/*masyvas, talpinantis staciakampiu atstumus iki koordinaciu pradzios tasko*/, minatstumas/*arciausiai koordinaciu pradzios tasko esancio staciakiampio atstumas*/;



using namespace std;

int main(int argc, char *argv[])
{abc:
z==5;
    
    
    printf ("Kiek staciakampiu nagrinesime?\n");//Uzkliausia staciakampiu kieki, kuri naudosime suvedant duomenis i masyva
    scanf ("%d", &s);
    
    
        
            for (i=0; i<s; i++)//masyvas surenkantis kiekvieno staciakampio atstuma iki koordinaciu pradzios tasko
                {   printf ("Iveskite %d staciakampio vieno kampo x koordinate\n", i+1);//Suvedamos staciakampio priesingu kampu koordinates
                    scanf ("%d", &xp);
                    
                    printf ("Iveskite %d staciakampio vieno kampo y koordinate\n", i+1);
                    scanf ("%d", &yp);
                    
                    printf ("Iveskite %d staciakampio priesingo kampo x koordinate\n", i+1);
                    scanf ("%d", &xa);
                    
                    printf ("Iveskite %d staciakampio priesingo kampo y koordinate\n", i+1);
                    scanf ("%d", &ya);     
        
                    trilg[i]=atstumas();//prikiriamos masyvui reiksmes
                 }
        
        minatstumas=trilg[0];

                for (i=0; i<s; i++)
                        if (trilg[i]<minatstumas)
                                        minatstumas==trilg[i] && artstac==i;//is masyve esanciu staciakampiu isrenkamas maziausiai nutoles
        
        
printf ("Arciausiai koordinaciu pradzios tasko yra %d staciakampis, nutoles %3.1f atstumu\n\n\n\n", artstac+1, minatstumas);
//atspausdinamas atsakymas

    
     
    printf ("jeigu norite testi spauskite 0, jeigu ne 1\n");
    scanf ("%d", &z);
    if (z==0)
    goto abc;           
    system("PAUSE");        
    return 0;
}



float atstumas()// Funkcija, kuri isrenka artimiausia staciakampio tasko atstuma iki koordinaciu pradzios
    {   xt=xp;//surandamos kitu dvieju staciakampio kampu koordinates
        xk=xa;
        yt=ya;
        yk=yp;
        
        ap=sqrtf(xp*xp+yp*yp);// apskaiciuojami atstumai iki koordinaciu pradzios tasko
        aa=sqrtf(xa*xa+ya*ya);
        at=sqrtf(xt*xt+yt*yt);
        ak=sqrtf(xk*xk+yk*yk);
        
        m=ap;
        if (aa<m)
        m=aa;
        
        if (at<m)// isrenkamas amaziausiai nutoles staciakampio kampas ir atstumas
        m=at;
        
        if (ak<m)
        m=ak;
        
        return m;//grazinama reiksme i pagrindine funkcija
    }