C++ yardım edecek ...

KingLion_m
19-12-2010, 05:44   |  #1  
OP Taze Üye
Teşekkür Sayısı: 0
9 mesaj
Kayıt Tarihi:Kayıt: Ara 2010

Arkadaşlar bu programı Microsoft Visual Studio 2008 de nasıl yazabilirim?

Soru: Kendisine gönderilen 4 adet koordinat değerine göre (x1,x2,y1,y2) ekranın belirtilen bölgesine çerçeve çizen fonksiyon, main() fonksiyonu ile beraber çiziniz.

(Köşeler için 187,188,200,201 nolu ASCII karakterlerini, yatay çizgi için 205 karakterini, dikey çizgi içinde 166 karakterini kullanabilirsiniz).

Kolay gelsin.

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

Ascii karakterleri ile bir cerceve cizmek istedigimizde,kurgulamak istedigimiz sekil bir dikdortgen olacaktır.Eger tüm kenarları eşit bir dikdörtgen tasarlar isek buna kare cerceve de diyebiliriz.Her halükarda çizmek istedigimiz seklin ortası boş olacaktır.Yani cercevenin sadece koseleri ekranda 'monte' edilmelidir.Sorunun standart C++ dili ile yazılmıs algoritmasını asagıda yayımlıyorum,siz cout çıktı akışlarının yerine visual C++ output metotlarından bir tanesi uzerinde yazabilirsiniz.

#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';
       }

Başarılar

KingLion_m
20-12-2010, 18:45   |  #3  
OP Taze Üye
Teşekkür Sayısı: 0
9 mesaj
Kayıt Tarihi:Kayıt: Ara 2010

arkdaşım yaptım ama program çaLışmadı ? bunun nedeni ne acaba ?

muh34
20-12-2010, 19:06   |  #4  
Yıllanmış Üye
Teşekkür Sayısı: 0
215 mesaj
Kayıt Tarihi:Kayıt: Eki 2010

Yazılan program Standart C++ dili ile yazılmıstır.Sormus oldugunuz sorunun algoritması dogru yazılmıstır ve calısmaktadır.Siz visual C++ dili icin sadece cout cıktı akışları yerine visual C++ form cıktı metotlarını uygulamalısınız.Dilerseniz ASCII kodlarını da istediginiz formatta yazabilirsiniz.Ornegin 191,192 formatında yazılan satırları,istediginiz gibi 187,188 kod formatına donusturebilirsiniz.
Başarılar

KingLion_m
21-12-2010, 23:26   |  #5  
OP Taze Üye
Teşekkür Sayısı: 0
9 mesaj
Kayıt Tarihi:Kayıt: Ara 2010

çok sağoL emeğin için ama ben ASCII karakterLerini pek kuLLanmayı biLmiyorum. Bize sadece Microsoft Visual Studio 2008 de project win32s console application u gösterdiLer. Yinede emeğin için çok teşekkür ederim.

muh34
22-12-2010, 12:31   |  #6  
Yıllanmış Üye
Teşekkür Sayısı: 0
215 mesaj
Kayıt Tarihi:Kayıt: Eki 2010

#include <iostream>
using std::cout;



int main() {

int i,j;
       const int boy=15;
       cout << (char)201; // 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)187;
       else if(i==boy-1 && j==0) // cercevenin sol alt kosesi
       cout << (char)200;
       else if(i==boy-1 && j==boy-1) // cercevenin sag alt kosesi
       cout << (char)188;
       else if(j>0 && j<boy-1)  // cercevenin yatay cizgileri
       cout << (char)205;
       else if(i>0 && i<boy-1) // cercevenin dikey cizgileri
       cout << (char)166;
       }
       cout << '\n';
       }
ASCII kodlarını sorudaki istenen özellikte değiştirdim.Bu kodun visual studio 2008'de de calısması gerekir.Eğer çalışmaz ise,daha onceden de bahsettigim gibi,sadece ' cout << ' komut satırlarını baska bir form cıktı fonksiyonu veya akşını kullanarak deneyebilirsiniz.
Başarılar

Son Düzenleme: muh34 ~ 22 Aralık 2010 12:33
KingLion_m
26-12-2010, 18:38   |  #7  
OP Taze Üye
Teşekkür Sayısı: 0
9 mesaj
Kayıt Tarihi:Kayıt: Ara 2010

http://urlal.com/dqqf][img src=http://i1012.hizliresim.com/2010/12/26/5209.png

böyLe bir hata aLıyorum ama cout hata aLıyorum normaLmidr?

KingLion_m
26-12-2010, 18:45   |  #8  
OP Taze Üye
Teşekkür Sayısı: 0
9 mesaj
Kayıt Tarihi:Kayıt: Ara 2010

sanırsam cout vs2008 printf komutu onu denedim yine aynı hata iLe karşıLaştım.

KingLion_m
26-12-2010, 18:53   |  #9  
OP Taze Üye
Teşekkür Sayısı: 0
9 mesaj
Kayıt Tarihi:Kayıt: Ara 2010

ustam  tamam haLLettim probLemide tek sorun kendisi direk çiziyor biz kendisine gönderiLen dedik hiç bi değer girmiyoruz  onu nasL çözebLrizz ?

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

Visual Studio editoru icerisinde ekrana bastırmak icin kullandıgınız bir metot olmalıdır(ekrandaki metni belirtilen koordinat noktalarına gore gosteren).Ornegin draw("Mesaj",x1,x2); Metotun adını hatırlamıyorum ama muhakkak ki vardır,ilgili bu ozellikteki bir metotu veya fonksiyonu kullanarak işleminizi rahatlıkla gercekleştirebilirsiniz.Yapmanız gereken tek şey form ekranını belirtilen noktalar arasında sıkıştırmaktır.
Başarılar

KingLion_m
26-12-2010, 21:52   |  #11  
OP Taze Üye
Teşekkür Sayısı: 0
9 mesaj
Kayıt Tarihi:Kayıt: Ara 2010

sanırsam printf komutunu diyosunz? printf("x1 icin deger giriniz");

scanf("%d", &x1);

bunun gibi doyursunuz gaLiba ?

muh34
26-12-2010, 22:03   |  #12  
Yıllanmış Üye
Teşekkür Sayısı: 0
215 mesaj
Kayıt Tarihi:Kayıt: Eki 2010

Hayır hayır printf() degil,soyle soruyum visual studio editoru icerisinde,konsol ekranında mı ? yoksa bir pencere ekranında mı bu programı yazmaya calısıyorsunuz ?

KingLion_m
28-12-2010, 09:42   |  #13  
OP Taze Üye
Teşekkür Sayısı: 0
9 mesaj
Kayıt Tarihi:Kayıt: Ara 2010

editörü içinde yazmaya çaLışıyorz.

muh34
28-12-2010, 17:51   |  #14  
Yıllanmış Üye
Teşekkür Sayısı: 0
215 mesaj
Kayıt Tarihi:Kayıt: Eki 2010

Editorün icerisinde yazmıs oldugunuz uygulama bir konsol ekranı uygulaması mıdır yoksa bir windows penceresi uygulaması mıdır ?

KingLion_m
29-12-2010, 02:45   |  #15  
OP Taze Üye
Teşekkür Sayısı: 0
9 mesaj
Kayıt Tarihi:Kayıt: Ara 2010

evet konsol ekran uyguLaması...

muh34
02-01-2011, 15:29   |  #16  
Yıllanmış Üye
Teşekkür Sayısı: 0
215 mesaj
Kayıt Tarihi:Kayıt: Eki 2010

Anladım o halde window() fonksiyonunu kullanabilirsiniz.bu fonksiyon 4 parametre alır ve programda bulunan parametler uygundur.

window(x1,x2,y1,y2); 

Başarılar