Bazen telefonumun yere düştüğünde kırılmamasının tek sebebi yerin parke olması oluyor.

BeğenFavori PaylaşYorum yap

C++ ile arası iyi olan bakabilir mi? Bir tanıdığım sordu ama ben yapamadım.

a) Bu C ++ programı hatasız derlenebilir, ancak B sınıfı çalışma zamanı hatalarına neden olabilir. Buna sebep olan durumları açıklayın. Bu hataları düzeltmek için B sınıfını yeniden yazın. Yalnızca hataya neden olabilecek fonksiyonları değiştirin. Diğer fonksiyonları değiştirmeyin.

#include

class A{
int ai;
public:
A();
A(A&);
~A();
void operator=(A);
int fA() const {return ai;}
};

class B{
A a;
A *p;
public:
B(int);
B(B&);
~B();
A &f5(B);
};

A::A(){
cout<<"Message 1" <<endl;
ai=1;
}

A::A(A& a){
cout<<"Message 2" <<endl;
ai=a.ai;
}

A::~A(){
cout<<"Message 3" <<endl;
}

void A::operator=(A a){
cout<<"Message 4" <<endl;
ai=a.ai;
}

b) Verilen program derlendiğinde ve çalıştırıldığında ekranda ne yazılır? (Not: Olası çalışma zamanı hatalarını dikkate almayınız)

c) A ve B sınıflarındaki bazı fonksiyonlar düzgün yazılmamıştır. Herhangi bir hataya neden olmazlar ancak verimli değiller. Bu fonksiyonları düzgün bir şekilde yeniden yazınız.

d) A sınfını, bu sınıftaki nesneleri sayacak şekilde değiştiriniz. A sınıfına ait bir nesne oluşturulduğunda, mevcut nesnelerin sayısı ekrana yazdırılmalıdır.( Not: static sayaç olusturmalısınız)

BeğenFavori PaylaşYorum yap

c++ ile ilgili bir soru soracağım.
kodda fillerin olduğu yere dikkat edelim. ilk fonksiyonda & yok ve sayıları doğrusuyla ekrana veriyor. İkinci filli fonksiyonda & var ve sayları 1 arttırıp ekrana yazdırıyor.
Bu kodun çıktısı aşağıdaki gibi:
100
36
9
5

100
36
10
6

Şimdi, bu & işareti neden 1 arttıyor verilen sayıları? Fonksiyon içindeki +1 yazılanı mı katıyor, neden?

#include

class Test
{
private:
int sayi;
public:
Test(int n) { sayi = n; } //const
int Deger() { return sayi; }
};

int Kare(Test 🐘t1)
{
t1 = Test(t1.Deger() + 1);
return t1.Deger() * t1.Deger();
}

int Kare2(Test 🐘&t1)
{
t1 = Test(t1.Deger() + 1);
return t1.Deger() * t1.Deger();
}

int main(int argc, char const *argv[])
{
Test t1(9), t2(5);

std::cout << Kare(t1) << "\n";
std::cout << Kare(t2) << "\n";
std::cout << t1.Deger() << "\n";
std::cout << t2.Deger() << "\n";

std::cout << Kare2(t1) << "\n";
std::cout << Kare2(t2) << "\n";
std::cout << t1.Deger() << "\n";
std::cout << t2.Deger() << "\n";

return 0;
}

BeğenFavori PaylaşYorum yap

Belki biri işe yarar diye bulduğum bütün kütüphaneleri doldurdum. Yaramadı.

BeğenFavori PaylaşYorum yap

Yazdığım kod tek seferde çalışınca ben:

BeğenFavori PaylaşYorum yap

ImageMagick Türkçe Dil Sorunu ve Geçici Çözümü

Merhabalar,
Daha önce buradan duyurusunu da yaptığım ve üzerinde çalıştığım bir betikte indirilen JPEG görüntülerini animasyonlu bir GIF haline getirmek için ImageMagick paketi içerisindeki convert aracını kullanıyordum. Betiği bitirip Pardus 17.4 üzerinde denediğimde GIF dosyasının animasyonlu bir şekilde oluşmadığını fark ettim. Bunun üzerine sorunun kaynağını araştırmaya başladım ve sürecin sonunda problemin ImageMagick paketinin Türkçe lokalizasyonunda olduğunu keşfettim. Şöyle ki:

Sorun

Terminal üzerinde şöyle bir komut çalıştırdığınızda,

convert resim-1.jpg resim-2.jpg resim-3.jpg -delay 20 -loop 0 deneme.gif

ImageMagick çıktı dosyasının uzantısını anlamak için büyük harfe dönüştürüp, kontrol ediyor büyük ihtimal. Fakat sisteminizde LC_ALL değişkeninin değeri tr_TR.UTF8 ise -ki Pardus’da bu varsayılan olarak böyle geliyor doğal olarak-, o zaman şöyle bir sorun oluşuyor: Bildiğiniz gibi İngilizce’de İ(büyük i) harfi yok fakat Türkçe’de var. Fakat ‘gif’ uzantısı büyük harfe dönüştürülmek istendiğinde, İngilizce’de gif != GİF olduğundan dolayı işlemin sonunda uzantı GiF olarak kalıyor ve ImageMagick bu uzantıyı tanımlamıyor ve gif dosyasını düzgün bir şekilde oluşturamıyor. Eğer yukarıdaki komuta -debug All kısmını eklerseniz kayıtlar arasında şöyle bir hata mesajını göreceksiniz:

2019-01-17T22:57:40+03:00 0:00.160 0.160u 6.9.7 Exception convert-im6.q16[8244]: module.c/OpenModule/1320/Exception
unable to register image format `GiF‘: /usr/lib/x86_64-linux-gnu/ImageMagick-6.9.7/modules-Q16/coders/gif.so: undefined symbol: RegisterGiFImage

Keşfettiğim bu hata ImageMagick tarafından olduğu için kendilerine GitHub üzerinden raporladım. Hatanın olduğunu doğruladılar ve bir sonraki versiyon güncellemesinde düzelteceklerini belirttiler. GitHub issue sayfasına buradan ulaşabilirsiniz.

Geçici Çözüm

ImageMagick geliştiricileri sorunu sağlam bir şekilde çözene kadar, geçici bir çözüm olarak yukarıdaki komutu şu şekilde kullanarak hatadan kurtulabilirsiniz:

LC_ALL=en_US.UTF8 convert resim-1.jpg resim-2.jpg resim-3.jpg -delay 20 -loop 0 deneme.gif

convert komutundan önce yazdığımız kısım sayesinde komple sistemimizin dil ayarlarını değiştirmek yerine sadece o komuta mahsus olacak şekilde bir istisna yapabiliyorsunuz. Bu komuttan sisteminizin dil ayarları etkilenmez.

Güncelleme - 29 Ocak 2019

Bugün itibariyle sorunun çözüldüğü 7.0.8-25 sürümü yayınlandı.

Bu sorunu yaşıyorsanız sisteminizde kurulu olan ImageMagick versiyonunu güncellemeniz sorunu çözecektir. Fakat bir program ya da betik içerisinde kullanıyorsanız, her kullanıcınızda son sürüm olmayacağı için yukarıda önerdiğim çözümü uygulamanız daha iyi olacaktır.

Deney

Hatayı keşfetmek için aşağıdaki C kodlarını deney amacıyla kodladım ve denedim.

#include <stdio.h>
#include <ctype.h>
#include <locale.h>

int main() {
    setlocale(LC_ALL, "tr_TR.utf8");
    // setlocale(LC_ALL, "en_US.utf8");

    char ext = 'i';

    printf("%c\n", toupper(ext));
}

Sonuç:

i harfi büyük olmadı.

BeğenFavori PaylaşYorum yap

goto mekanizması çalışmıyor. Programın çıktısı direkt devam?program bitti. oluyor. e ye basmamı vs beklemiyor. Sorun nerede?

#include
int main()
{
float a,b,toplam=0;
char i;
tekrarla:
printf("a ve b gir:");
scanf("%f %f", &a, &b);
toplam = a+b;
printf("toplam:%f", toplam);
printf("devam?");
scanf("%c", &i);

if (i == 0x065)
{
goto tekrarla;

}
else
printf("program bitti");

}

BeğenFavori PaylaşYorum yap

Kütüphanede tanımlanan CS pininin 10 olarak değiştirilmemesi Arduino'nun ethernet modülü ile bağlantı kuramamasına neden olacaktır. "EtherCard.h" dosyasındaki "csPin" değişkenini 10 olarak ayarlamayı unutmayınız. Bu değişikliği nasıl yapabilirim yardımcı olurmusunuz #Arduino

BeğenFavori PaylaşYorum yap
  • Türker Sezer @dirigeant

    EtherCard.h dosyasini bir metin editoriyle acin, csPin degerinin tanimlandigi satiri bulup karsisindaki degeri 10 olarak degistirin. Kutuphaneyi belgelerindeki komutlari kullanarak tekrar derleyin.

    • Selami61 @selami61

      onuda değiştirdim olmadı müsaitseniz teamviewer den yardımcı olurmusunuz

    • Selami61 @selami61

      // Twitter client sketch for ENC28J60 based Ethernet Shield. Uses
      // arduino-tweet.appspot.com as a OAuth gateway.
      // Step by step instructions:
      //
      // 1. Get a oauth token:
      // http://arduino-tweet.appspot.com/oauth/twitter/login
      // 2. Put the token value in the TOKEN define below
      // 3. Run the sketch!
      //
      // WARNING: Don't send more than 1 tweet per minute!
      // WARNING: This example uses insecure HTTP and not HTTPS.
      // The API key will be sent over the wire in plain text.
      // NOTE: Twitter rejects tweets with identical content as dupes (returns 403)
      //
      // License: GPLv2

      #include

      // OAUTH key from http://arduino-tweet.appspot.com/
      #define TOKEN "Insert-your-token-here"

      // ethernet interface mac address, must be unique on the LAN
      byte mymac[] = { 0x00,0xFF,0xDC,0x7A,0x55,0x9C };

      const char website[] PROGMEM = "2346581264-H0qQ7jHFpZodFmudJzzPUPEftd2oHWmi9OqnZcp";

      static byte session;

      byte Ethernet::buffer[700];
      Stash stash;

      static void sendToTwitter () {
      Serial.println("Sending tweet...");
      byte sd = stash.create();

      const char tweet[] = "trdgvjbhjkj";
      stash.print("token=");
      stash.print(TOKEN);
      stash.print("&status=");
      stash.println(tweet);
      stash.save();
      int stash_size = stash.size();

      // Compose the http POST request, taking the headers below and appending
      // previously created stash in the sd holder.
      Stash::prepare(PSTR("POST http://$F/update HTTP/1.0" "\r\n"
      "Host: $F" "\r\n"
      "Content-Length: $D" "\r\n"
      "\r\n"
      "$H"),
      website, website, stash_size, sd);

      // send the packet - this also releases all stash buffers once done
      // Save the session ID so we can watch for it in the main loop.
      session = ether.tcpSend();
      }

      void setup () {
      Serial.begin(57600);
      Serial.println("\n[Twitter Client]");

      // Change 'SS' to your Slave Select pin, if you arn't using the default pin
      if (ether.begin(sizeof Ethernet::buffer, mymac, SS) == 0)
      Serial.println(F("Failed to access Ethernet controller"));
      if (!ether.dhcpSetup())
      Serial.println(F("DHCP failed"));

      ether.printIp("IP: ", ether.myip);
      ether.printIp("GW: ", ether.gwip);
      ether.printIp("DNS: ", ether.dnsip);

      if (!ether.dnsLookup(website))
      Serial.println(F("DNS failed"));

      ether.printIp("SRV: ", ether.hisip);

      sendToTwitter();
      }

      void loop () {
      ether.packetLoop(ether.packetReceive());

      const char* reply = ether.tcpReply(session);
      if (reply != 0) {
      Serial.println("Got a response!");
      Serial.println(reply);
      }
      }

değişik bir yaklaşım for döngüsüne 😀
#include "stdio.h"
int Gnu();
int Ozmo();
void Tux();

int main()
{
for(int i = Gnu(); Ozmo(i++); Tux())
{
printf("Ozmo", i);
}
}
void Tux()
{
printf(" Döngünün 3. elemanı çalıştı.\n");
}
int Gnu()
{
return 0;
}
int Ozmo(int lkm)
{
switch(lkm)
{
case 0:
{
return 1;

}
case 1:
{
return 1;
}
case 2:
{
return 1;

}
case 3:
{
return 1;

}
case 4:
{
return 1;

}
default:
{
return 0;

}
}
}

BeğenFavori PaylaşYorum yap

Selamlar, bir kitaptan kod kopyalayıp devc++'ya yapıştırırken başındaki satır numaraları da beraberinde geliyor. Bunları otomatik temizliyebileceğim bir yol var mı?
#programlama #c #Devcpp
örn:
1 /* Şekil 2.1:fig02_01.c
2 C ile ilk program */
3 #include
4
5 int main ( )
6 {
7 printf ( "C'ye hoş geldiniz!\n" ) ;
8
9 return 0;
10 }

BeğenFavori PaylaşYorum yap