C++ Struct ve fonksiyonun bir arada kullanımı nasıl olmalı?

Hsn69

Decapat
Katılım
4 Ağustos 2021
Mesajlar
30
Daha fazla  
Cinsiyet
Erkek
Merhabalar, okulda bir proje yazdık fakat anlamadığım noktalar var, rica etsem açıklar mısınız?

İlk aşamada yapılan deklerasyon işleminde 3 fonksiyonu klasik şekilde void fonkAdı vb. şeklinde tanımlarken, neden oku fonksiyonunu struct elemanıymış gibi tanımladık? Fonksiyonların deklerasyon kısmında parantez içine girilen değerler oku fonksiyonunda girilenlerle nasıl ilişkili? Alt kısımda oku fonksiyonunu yazarken neden structtan bir eleman aldık ve sonraki fonksiyonları yazarken aynı işlemi yapmadık?

Kod:
#include <iostream>
#include<cmath>
using namespace std;
struct Nokta
{
    int x, y;
};
Nokta Oku();
void Yazdir(Nokta n1);
void Ortanokta(Nokta n1, Nokta n2);
void Uzunluk(Nokta n1, Nokta n2);
int main()
{
    char kr;
    do
    {
        system("CLS");
        Nokta n1 = Oku();
        Nokta n2 = Oku();
        Yazdir(n1);
        Yazdir(n2);
        Ortanokta(n1, n2);
        Uzunluk(n1, n2);
        cout << "Devam mı ? (e/h"; cin >> kr; cout << endl;
    }while(kr != 'h');
}
Nokta Oku()
{
    Nokta n1;
    cout << "---------------Noktanın degerleri giriliyor----------------" << endl;
    cout<<"x ? "; cin >> n1.x;
    cout << "y ?"; cin >> n1.y;
    return n1;
}
void Yazdir(Nokta n1)
{
    cout << "\n --------Noktanın degerleri yazdiriliyor-----------" << endl;
    cout << " x " << n1.x << endl;
    cout << " y " << n1.y << endl;
    cout << " nokta (" << n1.x << " , " << n1.y << ")" << endl;
}
void Ortanokta(Nokta n1, Nokta n2)
{
    float xt = (float)(n1.x + n2.x) / 2;
    float yt = (float)(n1.y + n2.y) / 2;
    cout << "\n\n orta noktasi : (" << xt << "," << yt << ")" << endl;
}
void Uzunluk(Nokta n1, Nokta n2)
{
    float xt = fabs((float)(n1.x - n2.x));
    float yt = fabs((float)(n1.y - n2.y));
    float uzun = sqrt(pow(xt, 2) + pow(yt, 2));
    cout << "\n\n dogrunun uzunlugu : " << uzun << endl;
}
 
Son düzenleyen: Moderatör:
Geri döndürdüğünüz değer Nokta tipinde olduğu için. Geri değer döndürülmeyeceği zaman void, tam sayı döndürüleceği zaman int kullanıyoruz gibi.

Fonksiyonun return edeceği değerin tipiyle alakalı.
 
Struct'ın ne olduğunu anlamamışsınız gibi görünüyor. Struct ile kendiniz bir veri tipi (int, char, float, bool Void vb.) Oluşturmuş oluyorsunuz. Bahsettiğiniz kullanımların hepsi veri tipi. 2 int kullanılabilirdi. Nokta döndürürken structured binding kullanılabilirdi.
Yardımınız için teşekkür ederim şimdi jeton düştü :)



Kendi yaptığım bir örneği gösterebilirim mesela yani structların görevi ve nasıl olduğuyla alakalı bir soru yok aklımda fonksiyonla birleşimi biraz ağır geldi. Yapabileceğim birkaç proje öneriniz varsa memnun olurum. Eklediğim koddaki tüm değerleri bilerek yazdırmadım çalıştığını anlayınca orada bıraktım onu belirteyim.


C++:
#include <iostream>
using namespace std;

struct address
{
    int house_no;
    string street_name;
};

struct student
{
    string name;
    int number;
    string gender;
    address addr;
};


int main()
{
    student hasan;//////////

    hasan.name = "hasan";
    cin >> hasan.number;
    hasan.gender = "male";
    hasan.addr.house_no = 3;
    hasan.addr.street_name = "inonu";


    cout << hasan.number;



    return 0;
}
 
Son düzenleme:
Bence bir örnek yeterli. Hatta örneği görmek bile yeterli. Class'ları öğrenip öğrenmediğinizi bilmiyorum. Şahsen ben ayda yılda bir struct kullanırım. Class'ları biliyorsanız veya öğrendikten sonra şu videolara bakmanızı tavsiye ederim. Daha da pekiştirecektir.
Bu içeriği görüntülemek için üçüncü taraf çerezlerini yerleştirmek için izninize ihtiyacımız olacak.
Daha detaylı bilgi için, çerezler sayfamıza bakınız.
Bu içeriği görüntülemek için üçüncü taraf çerezlerini yerleştirmek için izninize ihtiyacımız olacak.
Daha detaylı bilgi için, çerezler sayfamıza bakınız.
Bu içeriği görüntülemek için üçüncü taraf çerezlerini yerleştirmek için izninize ihtiyacımız olacak.
Daha detaylı bilgi için, çerezler sayfamıza bakınız.
 
Bence bir örnek yeterli. Hatta örneği görmek bile yeterli. Class'ları öğrenip öğrenmediğinizi bilmiyorum. Şahsen ben ayda yılda bir struct kullanırım. Class'ları biliyorsanız veya öğrendikten sonra şu videolara bakmanızı tavsiye ederim. Daha da pekiştirecektir.
Bu içeriği görüntülemek için üçüncü taraf çerezlerini yerleştirmek için izninize ihtiyacımız olacak.
Daha detaylı bilgi için, çerezler sayfamıza bakınız.
Bu içeriği görüntülemek için üçüncü taraf çerezlerini yerleştirmek için izninize ihtiyacımız olacak.
Daha detaylı bilgi için, çerezler sayfamıza bakınız.
Bu içeriği görüntülemek için üçüncü taraf çerezlerini yerleştirmek için izninize ihtiyacımız olacak.
Daha detaylı bilgi için, çerezler sayfamıza bakınız.

Teşekkür ederim yardımınız için.
 

Yeni konular

Geri
Yukarı