C/C++ Öğreniyorum { Gün 3 }

Hocam yani C++ "başlangıç için" C++++'tan daha mı uygun?
"Daha uygun" bir dil yok. Genel programlama dillerinin neredeyse hepsi başlangıç için uygun. Başlangıç dediğimiz şey dilden ibaret değil. Temel konseptleri, kavramları bilmeyen adama Python'da zor, C++'ta. Syntax kolaylığı bir dili kolay yapmıyor. Mantık kuramıyorsan, ne anlamı kalmış kolay syntax'ın?
 
"Daha uygun" bir dil yok. Genel programlama dillerinin neredeyse hepsi başlangıç için uygun. Başlangıç dediğimiz şey dilden ibaret değil. Temel konseptleri, kavramları bilmeyen adama Python'da zor, C++'ta. Syntax kolaylığı bir dili kolay yapmıyor. Mantık kuramıyorsan, ne anlamı kalmış kolay syntax'ın?
Mantık olarak hepsi aynı ama C# ve Phyton için ingilizce bilmen bile yeterli dili kavraman için. Ama C++ ta sadece ingilizce bilmekle çok birşey yapamazsın.
 
Mantık olarak hepsi aynı ama C# ve Phyton için ingilizce bilmen bile yeterli dili kavraman için. Ama C++ ta sadece ingilizce bilmekle çok birşey yapamazsın.
C#'ta da, Python'da da sadece İngilizceyle bir şey yapamazsın. C++'ın C#'tan derleme sistemi ve pointerların varsayılan olarak kullanılmasına izin vermesi dışında syntax anlamında bir farkı yok.

Aşağıda bana yedi farkı bul syntax olarak;

C#'ta sınıf tanımı;
C#:
class A {
    private int a, b;
    public A(int a, int b) {
        this.a = a;
        this.b = b;
    }
}
C++'ta sınıf tanımı;
C++:
class A {
    private:
    int a, b;
    public:
    A(int a, int b) {
        this->a = a;
        this->b = b;
    }
};

C#'ta sınıf içi methodlar;
C#:
public int sum(int a, int b) {
    return a + b;
}

C++'ta;
C++:
public:
int sum(int a, int b) {
    return a + b;
}

C#'ta değişken tanımı;
C#:
A a = new A();
// yada
var a = new A();

C++'ta değişken tanımı;
C++:
A a = A();
// yada
A a();
// yada
auto a = *new A;
auto a = *new A();
 
C# ve Phyton için ingilizce bilmen bile yeterli dili kavraman için
Hıhım öyle. Hatta ben programlama öğrenmek isteyenler için amme hizmeti yapıyorum şu anda.

Single Responsibility Principle -> Tek Sorumluluk Prensibi
Open-Closed Principle -> Açık-Kapalı Prensibi (Sınıflar geliştirmeye açık, değişime kapalı)
Liskovs-Substituation Principle -> Liskov'un Yerine Geçebilirlik Prensibi
Interface Segregation Principle -> Interface Ayrımı Prensibi
Dependency Inversion -> Tersine Bağımlılık

Artık bırakın orta seviye İngilizce'yi sadece Türkçe bilenler bile SOLID uyumlu programlayabilir benim sayemde. Bir dile kolay diyip ona yönelen kimsenin ne öğrendiği dilden, ne yazdığı programdan hayır gelmez. İyi forumlar.
 
Selamlar, bu şekilde bir seri yapmayı düşünüyorum, C++ öğrenmem ile alakalı, önemli olan sizlerin yorumlamasıdır, yorumlarınız benim için çok önemli!

Gün 3 ve gelişmiş bir crackme dosyası yapabilecek bir hale geldim sanırım.

Kod:

C++:
#include <iostream>
#include <windows.h>

#include <string>
using namespace std;
int main() {
 system("Color 9");
 string correct;
 string pass;
 string cor;
 string rect;
 correct = "Not this.";
 string got;
 string name;
 cout << (" ____ _ _ __ _\n| __ ) _ _ _ __ __ _ | | __ | |/ / (_)_ __ __ _\n| _ \ | | | | | '__| / _` | | |/ / | ' / | | | '_ \ / _` |\n| |_) | | |_| | | | | (_| | | < | . \ | | | | | | | (_| |\n|____ / \__, _| |_ | \__, _| |_ | \_\ | _ | \_\ | _| |_| |_ | \__, |\n|___ /");
 cout << "\n\n\nHello, please select one of the languages below!\n TR\n EN\n\n ";
 cin >> got;

 if ( got == "TR" ) {
 system("Color 2");
 cout << "\n USER INPUT >> " << got << "\n";
 cor = "bu degil";
 rect = "bu da degil";
 cout << "\n Isminiz nedir? \n";
 cin >> name;
 cor = "yar2ak";
 cout << "\n USER INPUT >> " << name << "\n";
 cor = got + name;
 system("Color 6");
 cout << " Sifre nedir? \n";
 cout << "\n Sifre, basta sectiginiz dillerden birini ve isminizi icermektedir !! \n";
 rect = "3169haha";
 cout << "\n\n sifreyi giriniz : ";
 cin >> pass;

 if (pass == cor + rect) {
 system("Color 2");
 cout << " \n Tebrikler!! Bu uygulamayi kirmayi basardiniz, eger yeni biriyseniz bu muthis birsey!! \n";
 system("pause");

 }
 else {
 system("Color 4");
 cout << " \n Yanlis sifre )= Maybe next time! \n ";
 system("pause");
 }

 } else if ( got == "EN" ) {

 cout << "\n USER INPUT >> " << got << "\n";
 system("Color 2");
 cout << "\n What is your name? \n";
 cin >> name;
 cout << "\n USER INPUT >> " << name << "\n";
 cor = got + name;
 system("Color 6");
 cout << " What is the password? \n";
 cout << "\n Password includes the language you select and the name that you enter !!! \n";
 cout << "\n\n Please enter the password : ";
 cin >> pass;
 rect = "3169haha";

 if (pass == cor + rect) {
 system("Color 2");
 cout << " \n YES, U DID IT! IF YOU ARE BEGINNER THATS AWESOME! \n";
 system("pause");

 }
 else {
 system("Color 4");
 cout << "\n Wrong Password )= Maybe next time!\n ";
 system("pause");
 }

 }
 else {

 cout << "\n Please select one of the languages ( \"TR\" or \"EN\"\n";
 }

 system("pause");
}
Sürekli crackme deneyimi kazanıyordum, bu sefer de siz kazanın bari :D
Isteyen derleyip cracklemeye çalışabilir.
( Şifrenin yazısının data türü string olduğu için kolay bir şekilde cracklenebilir )

Hocam 4. gün gelmedi.
 

Bu konuyu görüntüleyen kullanıcılar

Technopat Haberler

Yeni konular

Geri
Yukarı