Bu C++ Algoritması Nasıl Yazılır ?

8 Kas 2021
200
57
Arkadaşlar merhaba Udemy'den C++ öğreniyorum orada bir alıştırma gördüm fakat kod anlamadığım bir şekilde hata veriyor bilgisi olan yardımcı olabilir mi ?

NOT : Algoritma ilk 4 yorum satırında yazıyor.


Kod:
// eleman sayısını ve elemanları kullanıcının belirlediği bir int dizisi oluştur.
// bu dizinin ilk elemanını tutan bir pointer kullanarak(tüm elemanlara erişim bu pointerla yapılacak birden fazla pointer yasak.) bubble sort ile sırala
// bubble sort parametreli fonksiyon kullanılarak yazılmalı.
// parametreler dizinin ilk elemanını tutan bir pointer eleman sayısını tutan bir pointer olacaktır.

#include <iostream>
using namespace std;

int main()
{
    int size = 1;
    int* dizi = new int[size];

    cout << "Dizi eleman sayısını belirleyin :" << endl;
    cin >> size;

    for (int i = 0;i < size; i++) {
        cout << "Dizi elemanlarını belirleyin : " << endl;
        cin >> dizi[i];
    }
    for (int i = 0; i < size; i++) {
        cout << "Dizi elemanı : " << dizi[i] << endl;
    }
}
 
Çözüm
*Baştan belirtmek isterim bende bir cpp öğrenen biriyim*

// parametreler dizinin ilk elemanını tutan bir pointer eleman sayısını tutan bir pointer olacaktır.
Bu açıklamada yazılan cümleden hiçbir şey anlamadım.
Dizi ve pointer hemen hemen aynı işlevle kullanıldığı kadar adından da anlaşılacağı üzere bellekteki bir adresi simgeliyor(gösteriyor/işaretliyor).


C++:
#include <iostream>

using namespace std;
void bubbleSort(int buyukluk) {
    int swap_; // bubble sort algoritması için gerekli olan başlangıç değeri olmayan dizimizin içerisindeki değerler integer olduğundan bunuda integer olarak tanımladığım değişken. Bu değişken bizim dizideki her elemanın sağındaki eleman ile karşılaştırılırken önce buna...

Helmsys

Ar-Ge Ekibi Kıdemli
16 Mar 2022
1,492
1,652
*Baştan belirtmek isterim bende bir cpp öğrenen biriyim*

// parametreler dizinin ilk elemanını tutan bir pointer eleman sayısını tutan bir pointer olacaktır.
Bu açıklamada yazılan cümleden hiçbir şey anlamadım.
Dizi ve pointer hemen hemen aynı işlevle kullanıldığı kadar adından da anlaşılacağı üzere bellekteki bir adresi simgeliyor(gösteriyor/işaretliyor).


C++:
#include <iostream>

using namespace std;
void bubbleSort(int buyukluk) {
    int swap_; // bubble sort algoritması için gerekli olan başlangıç değeri olmayan dizimizin içerisindeki değerler integer olduğundan bunuda integer olarak tanımladığım değişken. Bu değişken bizim dizideki her elemanın sağındaki eleman ile karşılaştırılırken önce buna eşitlenip ardından yer değiştirilmesini sağlaması adına oluşturudğumuz değişken.
    int eleman;
    int* dizi = new int[buyukluk]; // heap alanda bir dizi tanımlanır. Tanımlanan alana pointer ile erişilir bundan dolayı "*" ile belirtilir.
    for(int i = 0; i < buyukluk; i++) {
        cout << i << ". Eleman = ";
        cin >> eleman;
        dizi[i] = eleman;
    }

    cout << "\nbubble Sort uygulanmamis hali"<<endl;
    for (int _ = 0; _ < buyukluk; _++) {
        cout << dizi[_] << ' ';
    }

    for (int j = 0; j < buyukluk; j++){ // bubble sort başlıyor... Her eleman sağındaki eleman ile karşılaştırılır
        for (int k = j; k < buyukluk; k++){
            if(dizi[j]>dizi[k]){
                swap_ = dizi[j];
                dizi[j] = dizi[k];
                dizi[k] = swap_;
            }
        }
    }
    cout << "\n\nbubble Sort uygulanmis hali" << endl;
    for(int __ = 0; __ < buyukluk; __++) {
        cout << dizi[__] << ' ';
    }
    delete[] dizi; // işlemler sonunda heap alandaki dizi silinir. Böylece hafızayı tasarruflu kullanmış oluruz.
}

int main(){
    int buyukluk;
    cout << "Dizi boyutu: ";
    cin >> buyukluk;
    bubbleSort(buyukluk);
}


Çıktı>>>
 
Çözüm

BLacXiz

Katılımcı Üye
16 Eki 2011
581
1
ElectronicsW
Programınızı derledim çalışıyor bir problem yok isterseniz derleyicinizi değiştirin ya da C/C++ derleyebilmek için farklı bir yol deneyin, iyi çalışmalar...
Not: Türkçe karakter kullanmaktan kaçının :)

Yanlış anlamışım pardon zaten arkadaş cevaplamış sorunu...
 
8 Kas 2021
200
57
*Baştan belirtmek isterim bende bir cpp öğrenen biriyim*


Bu açıklamada yazılan cümleden hiçbir şey anlamadım.
Dizi ve pointer hemen hemen aynı işlevle kullanıldığı kadar adından da anlaşılacağı üzere bellekteki bir adresi simgeliyor(gösteriyor/işaretliyor).


C++:
#include <iostream>

using namespace std;
void bubbleSort(int buyukluk) {
    int swap_; // bubble sort algoritması için gerekli olan başlangıç değeri olmayan dizimizin içerisindeki değerler integer olduğundan bunuda integer olarak tanımladığım değişken. Bu değişken bizim dizideki her elemanın sağındaki eleman ile karşılaştırılırken önce buna eşitlenip ardından yer değiştirilmesini sağlaması adına oluşturudğumuz değişken.
    int eleman;
    int* dizi = new int[buyukluk]; // heap alanda bir dizi tanımlanır. Tanımlanan alana pointer ile erişilir bundan dolayı "*" ile belirtilir.
    for(int i = 0; i < buyukluk; i++) {
        cout << i << ". Eleman = ";
        cin >> eleman;
        dizi[i] = eleman;
    }

    cout << "\nbubble Sort uygulanmamis hali"<<endl;
    for (int _ = 0; _ < buyukluk; _++) {
        cout << dizi[_] << ' ';
    }

    for (int j = 0; j < buyukluk; j++){ // bubble sort başlıyor... Her eleman sağındaki eleman ile karşılaştırılır
        for (int k = j; k < buyukluk; k++){
            if(dizi[j]>dizi[k]){
                swap_ = dizi[j];
                dizi[j] = dizi[k];
                dizi[k] = swap_;
            }
        }
    }
    cout << "\n\nbubble Sort uygulanmis hali" << endl;
    for(int __ = 0; __ < buyukluk; __++) {
        cout << dizi[__] << ' ';
    }
    delete[] dizi; // işlemler sonunda heap alandaki dizi silinir. Böylece hafızayı tasarruflu kullanmış oluruz.
}

int main(){
    int buyukluk;
    cout << "Dizi boyutu: ";
    cin >> buyukluk;
    bubbleSort(buyukluk);
}


Çıktı>>>
Hocam derslerden dolayı cevabınızı geç gördüm ilginiz için çok teşekkür ederim.
 

BeoWulf007

Kıdemli Üye
19 Haz 2013
2,762
507
24
Praise The Fool
Dostum kurstan bağımsız olarak sana şu playlistin ilk birkaç dersini öneririm. Bağlı listelere kadar 13-14 videoyu izlersen veri yapıları ve işaretçiler konusunda kafa karışıklığının kalmayacağını düşünüyorum. Bu listeyi dilden bağımsız olarak düşünüyorum ben ancak şansına hocamız da C++'da anlatıyor zaten. Zaten kendisi Üniversite öğretim görevlisi olduğu için anlatma becerisi de çok iyi daha iyisi yok diyebilirim.

 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.