Elektronika.lt
 2025 m. liepos 5 d. Projektas | Reklama | Žinokite | Klausimai | Prisidėkite | Atsiliepimai | Kontaktai
Paieška portale
EN Facebook RSS

 Kas naujo  Katalogas  Parduotuvės  Forumas  Tinklaraščiai
 Pirmas puslapisSąrašas
 Forumas / + pokalbiai
 - Paieška forume
 - D.U.K. / Forumo taisyklės
 - Narių sąrašas
 - Registruotis
 - Prisijungti

Elektronika.lt portalo forumas

Jūs esate neprisijungęs lankytojas. Norint dalyvauti diskusijose, būtina užsiregistruoti ir prisijungti prie forumo. Prisijungę galėsite kurti naujas temas, atsakyti į kitų užduotus klausimus, balsuoti forumo apklausose.

Administracija pasilieka teisę pašalinti pasisakymus bei dalyvius, kurie nesilaiko forumo taisyklių. Pastebėjus nusižengimus, prašome pranešti.

Dabar yra 2025 07 05, 16:46. Visos datos yra GMT + 2 valandos.
 Forumas » Programavimas » c programa
Jūs negalite rašyti naujų pranešimų į šį forumą
Jūs negalite atsakinėti į pranešimus šiame forume
Jūs negalite redaguoti savo pranešimų šiame forume
Jūs negalite ištrinti savo pranešimų šiame forume
Jūs negalite dalyvauti apklausose šiame forume
 
  
Puslapis 11
Pradėti naują temą  Atsakyti į pranešimą Rodyti ankstesnį pranešimą :: Rodyti kitą pranešimą 
 c programa
PranešimasParašytas: 2012 10 11, 00:00 Pranešti apie taisyklių pažeidimą Atsakyti su citata
monarch
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Duotos atkarpų galų taškų koordinatės plokštumoje (x1, y1) ir (x2, y2). Kiek atkarpų kertasi su
pirmąja?
Paaiškinimai:
• Atkarpų galų koordinates x1, y1, x2 ir y2 (atkarpų gali būti daug) įveskite klaviatūra ir
išsaugokite masyvuose.
• Dviejų atkarpų kirtimuisi nustatyti sudarykite funkciją.

Štai tokią programą reik parašyt, atrodo gan nesunkiai, bet man kosmosas Very Happy Gal galėtumėt kas užvest ant kelio Smile ?
 c programa
PranešimasParašytas: 2012 10 11, 08:30 Pranešti apie taisyklių pažeidimą Atsakyti su citata
AlgisL
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
imi pirmaja atkarpa ir atzvilgiu jos tikrini visas likusias, jai atkarou galai skirtingose pusese - kertasi, kitaip - nesikerta arba tik lieciasi.
kad nebutu viskas uz tave sukramtyta, pasikartok kazkur 6-7 klasiu geometrijos pamokas.
 c programa
PranešimasParašytas: 2012 10 11, 16:10 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Digix
VIP narys
VIP narys
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
na siaip tai jam reikia tik dvieju atkarpu susikirtimo patikrinimo funkcija sukurti.
AlgisL, tavo metodas kazkoks baisiai nekonkretus ir abejoju ar bent jau teisingas.

manau cia bus 99% matematikos ir 1% programavimo: is esmes reikia skurti matematini metoda nautatyti ar atkarpos susikerta.

manau kad cia reikies pagal turimus duomenis sukurti abieju atkarpu matematines lygtis, tada ispresti ta lygciu sistema ir patikrinti ar susikirtimo taskas itelpa i abieju atkarpu intervalus (x1;x2) ir (y1;y2)
 Re: c programa
PranešimasParašytas: 2012 10 11, 16:40 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Nasas
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
monarch rašo:
Duotos atkarpų galų taškų koordinatės plokštumoje (x1, y1) ir (x2, y2). Kiek atkarpų kertasi su
pirmąja?
Paaiškinimai:
• Atkarpų galų koordinates x1, y1, x2 ir y2 (atkarpų gali būti daug) įveskite klaviatūra ir
išsaugokite masyvuose.
• Dviejų atkarpų kirtimuisi nustatyti sudarykite funkciją.

Štai tokią programą reik parašyt, atrodo gan nesunkiai, bet man kosmosas Very Happy Gal galėtumėt kas užvest ant kelio Smile ?


Nesikerta tik lygegrecios tieses (kalbant apie plostuma), taigi issiaiskinti ar dvi tieses yra lygegrecios galima tikrinant ar vienodos x1 ir x2 arba y1 ir y2, jei taip td jos lygegrecios. Tikiuosi uzvedziau ant kelio bent matematiskai

_________________
Have a nice day!
 c programa
PranešimasParašytas: 2012 10 11, 16:50 Pranešti apie taisyklių pažeidimą Atsakyti su citata
AlgisL
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
nasas, nemulkink zmogaus, jam reikia ne tieses, o atkarpas patikrinti.
galiu imest gatava sprendima, bet ar jus noretumet, kad pirkes diploma paskui jums statytu nama, jungtu laidus ar auto taisytu?
net zmonos nenoreciau, kad dulkintu mulkis.
 c programa
PranešimasParašytas: 2012 10 11, 16:54 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Nasas
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
nu jo sumaisiau terminijoje, dekui uz pastaba

_________________
Have a nice day!
 Re: c programa
PranešimasParašytas: 2012 10 11, 17:03 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Digix
VIP narys
VIP narys
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Nasas rašo:
issiaiskinti ar dvi tieses yra lygegrecios galima tikrinant ar vienodos x1 ir x2 arba y1 ir y2, jei taip td jos lygegrecios. Tikiuosi uzvedziau ant kelio bent matematiskai


nors tai ir ne itema betlabai idomu kaip tu tokiu budu patikrinsi ar tieses lygeriecios?
jug net jei tos koordinates ir nera vienodos tieses vistiek gali buti lygerecios
 c programa
PranešimasParašytas: 2012 10 11, 17:11 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Nasas
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
jo teisingai, as cia pagalvojau apie tieses istikruju Very Happy

_________________
Have a nice day!
 c programa
PranešimasParašytas: 2012 10 11, 17:27 Pranešti apie taisyklių pažeidimą Atsakyti su citata
AlgisL
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
nasharnas sufflis:
konvertuoji atkarpas i vektorius (tieses), randi ju susikirtimo taska, jei tas taskas priklauso nors vienai is atkarpu - jos susikerta ar bent lieciasi. jei salyga 100% tenkiname - tikriname ar taskas nera atkarpu galuose, t.y. jei jis priklauso atkarpoms, bet nera ju galai, tai atkarpos tikrai kertasi.

o su matematika, vaikeli, padirbek nors biski, jei suklysi - padesim.
 c programa
PranešimasParašytas: 2012 10 11, 19:49 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Digix
VIP narys
VIP narys
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
pakartojai ta pati ka as rasiau.
manau kad ar lieciasi ar ketasi nera jokio skirtumo jei lieciasi viename taske tai kertasi.
 c programa
PranešimasParašytas: 2012 10 11, 20:05 Pranešti apie taisyklių pažeidimą Atsakyti su citata
AlgisL
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Digix rašo:
pakartojai ta pati ka as rasiau.
manau kad ar lieciasi ar ketasi nera jokio skirtumo jei lieciasi viename taske tai kertasi.

kertasi ar lieciasi yra didelis skirtumas, jei netiki, insuk i suola is apacios keleta medvarsciu, vienus tik kad neiskristu, kitus kiaurai lenta, kad islystu ir paciuozinek, suprasi apie ka as.
 c programa
PranešimasParašytas: 2012 10 17, 19:51 Pranešti apie taisyklių pažeidimą Atsakyti su citata
monarch
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Nu kažką parašiau, tik kažkur klaida yra, nes tarkim vienos atkarpos galu koordinates (3;3) ir (0;0), o kitos atkarpos (-1;-1) (1;1)
tai jos turi susikirsti nes guli vienoj tiesej
o rodo kad nesikerta
----------------------------------------

#include <cstdlib>
#include <iostream>

using namespace std;

/** Gavus dviejų atkarpų koordinates, randa, ar jos kertasi */
bool arKertasi(double x1, double y1, double x2, double y2,
double x3, double y3, double x4, double y4)
{

// Determinantai koordinatei apskaičiuoti
// Paremta: http://mathworld.wolfram.com/Line-LineIntersection.html
double d1 = (x1 * y2) - (y1 * x2);
double d2 = (x3 * y4) - (y3 * x4);
double d3 = ((x1 - x2) * (y3 - y4)) - ((y1 - y2) * (x3 - x4));

// Jeigu determinantas-daliklis yra lygus 0, tai turime dvi linijas, kurios
// yra paralelios, todėl naudojame skirtingas funkcijas
if (d3 == 0) {

// Surandame pirmos atkarpos funciją
// (x,y) = (x1,y1) + t(xSkirtumas, ySkirtumas)
double xSkirtumas = x2 - x1;
double ySkirtumas = y2 - y1;

// Randame t, taip kad x3 ir pirma atkarpa būtų toje pačioje X koordinatėje
double t = (x3 - x1) / xSkirtumas;

// Jeigu su šiuo t, Y koordinatė taip pat atitinką x3 tašką, tada abi
// šios atkarpos priklauso vienai tiesei
if (y1 + t*ySkirtumas == y3) {
// Surušiuojame x koordinates didėjimo tvarka, kad būtų lengviau skaičiuoti
if (x1 > x2) {
double s = x1;
x1 = x2;
x2 = s;
}
if (x3 > x4) {
double s = x3;
x3 = x4;
x4 = s;
}
// Variantas 1: --x3--x1--x4--x2-- arba --x3--x1--x2--x4--
if (x3 <= x1 && x4 >= x1)
return true;
// Variantas 2: --x1--x3--x4--x2-- arba --x1--x3--x2--x4
else if (x3 > x1 && x3 <= x2)
return true;
// Variantas 3: --x1--x2--x3--x4
else
return false;
} else
return false;
}

// Jeigu linijos ne paralelios, randame susikirtimo taško x koordinatę
double x = (d1 * (x3 - x4) - d2 * (x1 - x2)) / d3;

// Ar taškas priklauso pirmai atkarpai
bool arPriklauso1 = false;
if (x1 > x2) {
if (x >= x2 && x <= x1)
arPriklauso1 = true;
} else {
if (x >= x1 && x <= x2)
arPriklauso1 = true;
}

// Ar taškas priklauso antrai atkarpai
bool arPriklauso2 = false;
if (x3 > x4) {
if (x >= x4 && x <= x3)
arPriklauso2 = true;
} else {
if (x >= x3 && x <= x4)
arPriklauso2 = true;
}

// Kertasi, tik jeigu taskas priklauso abiejoms atkarpoms
return arPriklauso1 && arPriklauso2;
}

/** Programos iniciatorius */
int main(int argc, char *argv[])
{
int n;
double x1[1000], x2[1000], y1[1000],y2[1000];
cout << "Kiek bus atkarpu?\n";
cin >> n;
for (int j = 0; j < n; j++) {
cout << "Iveskite " << j + 1 << " atkarpos koordinates\n";
cout << "x1: ";
cin >> x1[j];
cout << "y1: ";
cin >> y1[j];
cout << "x2: ";
cin >> x2[j];
cout << "y2: ";
cin >> y2[j];
}

// lyginame su pirmaja atkarpa
if (n > 1) {
int suma = 0;
for (int i = 1; i < n; i++)
if (arKertasi(x1[0], y1[0], x2[0], y2[0], x1[i], y1[i], x2[i], y2[i]))
suma++;
cout << "Su pirmaja kertasi " << suma << " atkarpos";
}

system("PAUSE");
return 0;
}

-----------------------------
 c programa
PranešimasParašytas: 2012 10 17, 20:13 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Digix
VIP narys
VIP narys
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
jokiu determinatu tau nereikejo skaiciuoti nes pakanka suzinoti susikirtimo taska jei tokio tasko nera gausi begalybe ar dalyba is nulio. o tiesiu finkciju vistiek reikes tai neapsimoka dviem metodais daryti to paties

kazkokios keistos tavo atkarpu funkcijos gavosi:
"(x,y) = (x1,y1) + t(xSkirtumas, ySkirtumas) "

normali tieses funkcija yra Y=y0+kX.

tau reikia suskaiciuoti y0 ir k

k bus susakiciuojamas kaip dy/dx
y0 bus randamas kaip skirtumas tarp y1 - k*x1
 c programa
PranešimasParašytas: 2012 10 17, 20:35 Pranešti apie taisyklių pažeidimą Atsakyti su citata
AlgisL
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Citata:
Nu kažką parašiau, tik kažkur klaida yra, nes tarkim vienos atkarpos galu koordinates (3;3) ir (0;0), o kitos atkarpos (-1;-1) (1;1)
tai jos turi susikirsti nes guli vienoj tiesej
o rodo kad nesikerta
----------------------------------------

jos ir nesikerta, tik turi bendra atkarpa arba kitaip - turi bendru tasku.
Pradėti naują temą  Atsakyti į pranešimą
 
Forumo sistema: phpBB
 „Google“ paieška forume
 Kas naujesnio?
 Naujos temos forume

Global electronic components distributor – Allicdata Electronics

Electronic component supply – „Eurodis Electronics“

LOKMITA – įvairi matavimo, testavimo, analizės ir litavimo produkcija

Full feature custom PCB prototype service

Sveiki ir ekologiški maisto produktai

Mokslo festivalis „Erdvėlaivis Žemė

LTV.LT - lietuviškų tinklalapių vitrina

„Konstanta 42“

„Mokslo sriuba“

www.matuok.lt - Interneto spartos matavimo sistema

www.esaugumas.lt – apsaugok savo kompiuterį!

PriedaiMobiliems.lt – telefonų priedai ir aksesuarai

Draugiškas internetas

FS25 Tractors
Farming Simulator 25 Mods, FS25 Maps, FS25 Trucks
ETS2 Mods
ETS2 Trucks, ETS2 Bus, Euro Truck Simulator 2 Mods
FS22 Tractors
Farming Simulator 22 Mods, FS22 Maps, FS25 Mods
VAT calculator
VAT number check, What is VAT, How much is VAT
FS25 Mods
FS25 Harvesters, FS25 Tractors Mods, FS25 Maps Mods
Dantų protezavimas
All on 4 implantai,
Endodontija mikroskopu,
Dantų implantacija
FS25 Mods
FS25 Maps, FS25 Cheats, FS25 Install Mods
FS25 Mods
Farming Simulator 25 Mods,
FS25 Maps
ATS Trailers
American Truck Simulator Mods, ATS Trucks, ATS Maps
Football Training Kit
Football Training Equipment, Football Skills, Football Training
Reklama
‡ 1999– © Elektronika.lt | Autoriaus teisės | Privatumo politika | Atsakomybės ribojimas | Turinys | Reklama | Kontaktai LTV.LT - lietuviškų tinklalapių vitrina
Ets2 mods, Ats mods, Beamng drive mods
allmods.net
„MokslasPlius“ – mokslui skirtų svetainių portalas
www.mokslasplius.lt
Optical filters, UV optics, electro optical crystals
www.eksmaoptics.com
LTV.LT – lietuviškų tinklalapių vitrina
www.ltv.lt/technologijos/
Elektroninių parduotuvių optimizavimas „Google“ paieškos sistemai
www.seospiders.lt
FS22 mods, Farming simulator 22 mods,
FS22 maps

fs22.com
Reklama


Reklama