C Projem İcin Acil Yardıııım.İlgilenin Lütfen.
-
abiler hoja bi proje verdi.ben ugrastım beceremedim.bide siz bakın lütfen.proje su:Linked list şeklinde ard arda girilmiş iki sayıdan oluşan elemanları olan (x,y) bir linked list verildiğinde, bunlar kartezyen koordinatlarda muhtelif sayıda (x,y) noktalarına karşılık gelsin. Bu noktaları işaretlediğimizde bir şekil ortaya çıkar. Bu şekli çerçeveleyen en küçük çokgene “convex-hull” denir. Convex hull, şeklin en kenarlarındaki noktaları birleştirerek elde edilir. Verilen nokta listesinden convex hull’u bulan programı yazın (bu, en çıkıntı noktaları bulmak demektir). Not. convex bir şekilde, şekil içinde kalan her iki noktayı birleştiren doğru parçası, convex şeklin içinde kalır.
olay bu yardım edermisiniz. -
istediin kadar koedinat verebliyonmu?
-
istedediğin kadar kordinant verebileceksin.
-
Abü hadi alt fonksionlardan birini sorsan neyse de komple prorami yazip wermez kimse sayfalar tutar bu :)
-
abi yapın bi güzellik şu kardaşinize yaw.
-
#include <stdio.h>
const int nokta_sayisi = 8;
float p_x,p_y;
float map[nokta_sayisi][2] = {0.5,0.5,
1.5,0.9,
2.5,0.7,
2,0,
2,2,
1,0,
1.5,2,
3,1};
int nokta_bulundu[nokta_sayisi];
int i,j;
int side1=0,side2=0;
void main()
{
/* convex"in olusturulmasi icin
uygun bir nokta bul */
for(i=0;i<nokta_sayisi;i++)
{
/* en yukaridaki nokta(lar)in en solda olani bulunur */
if (map[1] > p_y) /* daha yukarida ise */
{
p_y = map[1];
p_x = map[0];
}
if (map[1] == p_y && map[0] < p_x) /* ayni y"de ise ve x"i daha kucukse */
{
p_y = map[1];
p_x = map[0];
}
}
printf("bulunan en yuksek nokta (solda olan):%1.1f,%1.1f\n",p_x,p_y);
/* ilk nokta bulundu sira digerlerinde */
i=-1;
while(i<nokta_sayisi)
{
i++;
if (i >= nokta_sayisi) break;
/* iki noktasi bilinen dogru denklemi:
y2*(x-x1) + x2*(y1-y) - x*y1 + y*x1 = 0 */
/*
y2 = map[1]
x2 = map[0]
y1 = p_y
x1 = p_x
y = map[j][1]
x = map[j][0]
*/
if (nokta_bulundu == 0)
{
/* printf("deniyor:%1.1f,%1.1f\n",map[0],map[1]); */
for(j=0;j<nokta_sayisi;j++)
{
/* dogru denklemine gore kontrol et,
dogrunun her iki tarafindan en az birinde
hic nokta yok ise konveks"in bir parcasi
olabilecegini gosterir */
if (map[1]*(map[j][0]-p_x) + map[0]*(p_y-map[j][1]) - map[j][0]*p_y + map[j][1]*p_x < 0)
{ side1++; }
if (map[1]*(map[j][0]-p_x) + map[0]*(p_y-map[j][1]) - map[j][0]*p_y + map[j][1]*p_x > 0)
{ side2++; }
if (side1 > 0 && side2 > 0) { side1 = 0; side2 = 0; /*printf("breaking.\n");*/ break; }
if (j == nokta_sayisi-1)
{
side1 = 0; side2 = 0;
printf("birlesebilir :%1.1f,%1.1f\n",map[0],map[1]);
nokta_bulundu = 1;
p_x = map[0];
p_y = map[1];
i=-1;
}
}
} /* else { printf("atlandi:%1.1f,%1.1f [%d]=%d\n",map[0],map[1],i,nokta_bulundu); } */
}
printf("--bitti.\n");
}
guzel soruymu$
-
yukaridaki kod"da italik olayindan bazi kisimlar cikmamis , dogrusu budur:
#include <stdio.h>
const int nokta_sayisi = 8;
float p_x,p_y;
float map[nokta_sayisi][2] = {0.5,0.5,
1.5,0.9,
2.5,0.7,
2,0,
2,2,
1,0,
1.5,2,
3,1};
int nokta_bulundu[nokta_sayisi];
int k,j;
int side1=0,side2=0;
void main()
{
/* convex"in olusturulmasi icin
uygun bir nokta bul */
for(k=0;k<nokta_sayisi;k++)
{
/* en yukaridaki nokta(lar)in en solda olani bulunur */
if (map[k][1] > p_y) /* daha yukarida ise */
{
p_y = map[k][1];
p_x = map[k][0];
}
if (map[k][1] == p_y && map[k][0] < p_x) /* ayni y"de ise ve x"i daha kucukse */
{
p_y = map[k][1];
p_x = map[k][0];
}
}
printf("bulunan en yuksek nokta (solda olan):%1.1f,%1.1f\n",p_x,p_y);
/* ilk nokta bulundu sira digerlerinde */
k=-1;
while(k<nokta_sayisi)
{
k++;
if (k >= nokta_sayisi) break;
/* iki noktasi bilinen dogru denklemi:
y2*(x-x1) + x2*(y1-y) - x*y1 + y*x1 = 0 */
/*
y2 = map[k][1]
x2 = map[k][0]
y1 = p_y
x1 = p_x
y = map[j][1]
x = map[j][0]
*/
if (nokta_bulundu[k] == 0)
{
/* printf("deniyor:%1.1f,%1.1f\n",map[k][0],map[k][1]); */
for(j=0;j<nokta_sayisi;j++)
{
/* dogru denklemine gore kontrol et,
dogrunun her iki tarafindan en az birinde
hic nokta yok ise konveks"in bir parcasi
olabilecegini gosterir */
if (map[k][1]*(map[j][0]-p_x) + map[k][0]*(p_y-map[j][1]) - map[j][0]*p_y + map[j][1]*p_x < 0)
{ side1++; }
if (map[k][1]*(map[j][0]-p_x) + map[k][0]*(p_y-map[j][1]) - map[j][0]*p_y + map[j][1]*p_x > 0)
{ side2++; }
if (side1 > 0 && side2 > 0) { side1 = 0; side2 = 0; /*printf("breaking.\n");*/ break; }
if (j == nokta_sayisi-1)
{
side1 = 0; side2 = 0;
printf("birlesebilir :%1.1f,%1.1f\n",map[k][0],map[k][1]);
nokta_bulundu[k] = 1;
p_x = map[k][0];
p_y = map[k][1];
k=-1;
}
}
} /* else { printf("atlandi:%1.1f,%1.1f [%d]=%d\n",map[k][0],map[k][1],i,nokta_bulundu[k]); } */
}
printf("--bitti.\n");
}
-
http://cmpe.emu.edu.tr/cmpe102/ bu adreste assignmentte takıldım yani şu girince göreceksiniz
point.txt dosyasından kordinatları alıyor ama ben nasıl bi fonkisyonla x leri toplicam sonra y leri toplicam yani biraz kmoplike daha yeni yim daha derste göstermeden soruyolar ya
fuck emu -
6E6F70656E ,abi derlediğimde hata verdi program.
-
Mteee nasılsın abi yaw yi bi yerde arastırıyosun bu programı bu arada ben de onun bu projesındekı grup arkadasıyım yaw abiler cok saolunda dedıgı gıbı derledıgın zaman bı hata verıyo mumkunse su projeye bı yardım edın yaw valla bız yapacaz dıye kaydık resmen
yardımlarınız ıcın tesekkurler -
ne hatasi verdi yazar misin?
ben lcc kullaniyorum compiler olarak.
en son yolladigim kod dogru olanidir
Toplam Hit: 4464 Toplam Mesaj: 13