Çerçeve çizimi yardım lütfenn !!

sadyehsa
05-01-2010, 21:13   |  #1  
OP Taze Üye
Teşekkür Sayısı: 0
1 mesaj
Kayıt Tarihi:Kayıt: Oca 2010

yeni ögrenmeye başladğım için soruyu çözemedim bir türlü programı yazabilicek arkadaşlardan yardım istiyorum

Kendisine gönderilen 4 adet koordinat değerine göre (x1,y1,x2,y2) ekranın belirtilen bölgesine çerçeve çizen fonksiyonu main () fonksiyonu ile beraber yazınız (köşeler için 187,188,200,201 nolu ASCII karakterlerini yatay çizgi için 205 karakterini dikey çizgi içinde 186 karakterini kullanabilirsiniz)

muh34
18-10-2010, 12:08   |  #2  
Yıllanmış Üye
Teşekkür Sayısı: 0
215 mesaj
Kayıt Tarihi:Kayıt: Eki 2010

Yapmak istediginiz cizim aslında bir karedir,dolayısıyla bir karenin 4 tarafı dolu olmak uzere ici boş bir cerceve olarak dusunulebilir.O halde iki adet iç içe döngü(nested loop)'ye ihtiyaç vardır.Bu dongulerin sayaçlarını kullanarak bir karenin sadece dış tarafını kaplayarak içeriyi boş bırakabiliriz.Soruda ASCII kodları ile bunu yapmamız gerektiginden karakterleri buna gore kullanmalıyız.O halde beklenen kod aşagıdaki gibi olabilir.
 
#include <iostream>
using std::cout;
int main() {
      
       int i,j;
       const int boy=15;
      
       cout << (char)218; // cercevenin sol ust kosesi
      
       for(i=0;i<boy;i++) {
       for(j=0;j<boy;j++) {
       if(i>0 && j>0 && i<boy-1 && j<boy-1) // cercevenin icinin boş olma ozelligi
       cout << ' ';
       else if(i==0 && j==boy-1) // cercevenin sag ust kosesi
       cout << (char)191;
       else if(i==boy-1 && j==0) // cercevenin sol alt kosesi
       cout << (char)192;
       else if(i==boy-1 && j==boy-1) // cercevenin sag alt kosesi
       cout << (char)217;
       else if(j>0 && j<boy-1)  // cercevenin alt ve ust kenarlari
       cout << '-';
       else if(i>0 && i<boy-1) // cercevenin sol ve sag kenarlari
       cout << '|';
       }
       cout << '\n';
       }
     
       getchar();
       return 0;
       }
       Başarılar