Çözüldü Fonksiyon çağrıldıktan sonra hiçbir kod yazamadan bitiriyor

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

heisenrut

Decapat
Katılım
3 Mayıs 2021
Mesajlar
22
Makaleler
1
Önceden oluşturmuş olduğum fonksiyonu tekrardan çağırdığımda fonksiyon içeriğindeki kodları çalıştırıyor fakat fonksiyonu bitirdikten sonra hiçbir şeyi yazdırmıyor.
Buradaki sıkıntı ne ve fonksiyondan sonraki kodları nasıl yazdıracağım?

Kod:
void masa_o(siparis*siparis)
{
    int x,i,max;
    int dizi[10];
    cout<<"Musterinin oturmus oldugu masa numarasını girin";cin>>siparis->masa_n;
    cout<<"Musterinin istemis oldugu menununun kodunu girin m-";cin>>x;
    x=x%10;
    siparis->ist1=x;
    cout<<"Musteri toplamda kac menu istiyor";cin>>max;
    for(i=1;i<=max;i++)
    {
    cout<<"Musterinin istemis oldugu menununun kodunu girin m-";cin>>x;
    x=x%10;
        dizi[i]=x;
    }
    siparis->ist2=dizi[1];
    siparis->ist3=dizi[2];
    siparis->ist4=dizi[3];
    siparis->ist5=dizi[4];   
    siparis->ist6=dizi[5];
    siparis->ist7=dizi[6];
    siparis->ist8=dizi[7];
    siparis->ist9=dizi[8];
    siparis->ist10=dizi[9];
   
}
void masa_g(string otur[],int masa_s,int p)
{
    int i,a,b,j;
   
    b=1;
    for(j=1;j<=5;j++){
    cout<<"\t";   
        for(i=0;i<p;i++)
        {
            cout<<"|";
         if(b<10){
            if(otur[b]=="D"){
            cout<<b<<"-"<<otur[b] <<" |";b++;
            }
            else{
                otur[b]="B";
                cout<<b<<"-"<<otur[b] <<" |";b++;
            }
         }
         else if(10<=b){ 
             if(otur[b]=="D"){
                 cout<<b<<"-"<<otur[b]<<"|";b++;
             }
            else{
                otur[b]="B";
                cout<<b<<"-"<<otur[b]<<"|";b++;
            }
            
         }
        }
        cout<<"\n";
    }
}
int main()
{
int p;

int b = 1;
siparis*masa=new siparis[masa_s];
siparis masax;p=masa_s/3;int matrix[p][5];

string otur[masa_s];// bu masada dolumu bosmu onu
int c1;
c1=masa_s;


int J;
int ras1,rast2;
        srand(time(0));
        ras1=1+rand()%2;
        rast2=ras1;
            if(ras1==1)
            {     J=masa_s+1;
                ras1=1+rand()%J;
                otur[ras1]="D";
                cout<<ras1;
                masa_g(otur,masa_s,p);
            }
            else
            {
               
                cout<<"musteri gelmedi\n";
            }
   
   
    cout<<"Musteri geldimi evet(1)/hayir(2)";cin>>karar;
    if(karar==1)
    {
        masa_o(&masax);
        z=i+1;
   
        masa[z]=masax;
    }
return 0;
}
 
Çözüm
Tek satırda 30 kod yazmayın. Çok istiyorsanız tek satırda fonksiyon yazılabiliyor, öyle yapın.
Neden mod alıyorsunuz?
İlk kısım tamam ama gerisi için söylememe rağmen harfi harfine anlatmaman, tanımlanmamış değişkenler kullanman, kullandığın değişkenlerin harflerden ibaret olması, C++ diline uygun olmayan şeyler kullanman sebebiyle yapmıyorum. Çünkü yeterince vaktimi yedin. Sana hayatta başarılar.

Bu kodun masa sayısını göstermesi bile mucize. Bu haliyle bile bende 14 hata var.

Kod:
#include <iostream>
#include <array>
#include <random>

#define N        10

using namespace std;

namespace Vavien {
    int rand(int start, int end) {
        static random_device dev;
        static mt19937 gen(dev());
        uniform_int_distribution<int> dist(start, end);

        return dist(gen);
    }
}

class Order {
public:
    array<int, N> orders;
    int tableNumber;
    int totalPrice;
};

void tableOrder(Order& o) {
    auto numberOfMenus{ 0 };

    cout << "Musterinin oturmus oldugu masa numarasını girin: ";
    cin >> o.tableNumber;

    cout << "Musteri toplamda kac menu istiyor";
    cin >> numberOfMenus;

    for (auto i{ 0 }; i < numberOfMenus; ++i) {
        cout << "Musterinin istemis oldugu menununun kodunu girin: ";
        cin >> o.orders[i];
    }
}

void showTable(Order& o) {

}

int main() {

    return 0;
}





void masa_g(string masadurumu[], int masa_s, int p) {
    int i, b, j;

    b = 1;
    for (j = 1; j <= 5; j++) {
        cout << "\t";
        for (i = 0; i < p; i++) {
            cout << "|";
            if (b < 10) {
                if (otur[b] == "D") {
                    cout << b << "-" << masadurumu[b] << " |"; b++;
                }
                else {
                    otur[b] = "B";
                    cout << b << "-" << masadurumu[b] << " |"; b++;
                }
            }
            else {
                if (otur[b] == "D") {
                    cout << b << "-" << masadurumu[b] << "|"; b++;
                }
                else {
                    otur[b] = "B";
                    cout << b << "-" << masadurumu[b] << "|"; b++;
                }

            }
        }
        cout << "\n";
    }
}

int main() {
    int p;
    int b = 1;
    siparis* masa = new siparis[masa_s];
    siparis masax; p = masa_s / 3; int matrix[p][5];
    string masadurumu[masa_s];// bu masada dolumu bosmu onu
    int c1;
    int J;
    int ras1, rast2;
    srand(time(0));
    ras1 = 1 + rand() % 2;
    rast2 = ras1;
    if (ras1 == 1) {
        J = masa_s + 1;
        ras1 = 1 + rand() % J;
        otur[ras1] = "D";
        cout << ras1;
        masa_g(otur, masa_s, p);
    }
    else {
        cout << "musteri gelmedi\n";
    }
    cout << "Musteri geldimi evet(1)/hayir(2)"; cin >> karar;
    if (karar == 1) {
        masa_o(&masax);
        z = i + 1;
        masa[z] = masax;
    }
    else {

    }
    return 0;
}
Programın ne yaptığı hala belli değil. Tanımlanmamış ve adı sanı belli olmayan değişkenler kullanmışsın.

Programın ne yapmasını gerektiğini harfi harfine sözlü olarak anlatırsanız ona uygun bir program yazabilirim.
Bu haliyle gram bir şey anlamıyorum. Gözüm karman çorman C kod parçalarından başka bir şey göremiyor.
 
Son düzenleme:
Programın ne yaptığı hala belli değil. Tanımlanmamış ve adı sanı belli olmayan değişkenler kullanmışsın.

Programın ne yapmasını gerektiğini harfi harfine sözlü olarak anlatırsanız ona uygun bir program yazabilirim.
Bu haliyle gram bir şey anlamıyorum. Gözüm karman çorman C kod parçalarından başka bir şey göremiyor.

Hocam kafamdakileri ve kodları ellimden geldiğince açıklamaya çalıştım.
A)
Kod:
class siparis
{
		public:
		int masa_n;
		int t_fiyat;
		int ist1;
		int ist2;
		int ist3;
		int ist4;
		int ist5;
		int ist6;
		int ist7;
		int ist8;
		int ist9;
		int ist10;
};
A)
Bu kısımda bir sınıf oluşturdum masa_n(masa numarası), t_fiyat (toplam fiyat),ist1(müşterinin istemiş olduğu menünün numarası) sipariş sınıfından müşterinin isteklerine göre nesne oluşturmasını istedim.
B)
Kod:
void masa_o(siparis*siparis)
{
 int x,i,max;
 int dizi[10];
 cout<<"Musterinin oturmus oldugu masa numarasını girin";cin>>siparis->masa_n;
 cout<<"Musterinin istemis oldugu menununun kodunu girin m-";cin>>x;
 x=x%10;
 siparis->ist1=x;
 cout<<"Musteri toplamda kac menu istiyor";cin>>max;
 for(i=1;i<=max;i++)
 {
 cout<<"Musterinin istemis oldugu menununun kodunu girin m-";cin>>x;
 x=x%10;
 dizi[i]=x;
 }
 siparis->ist2=dizi[1];
 siparis->ist3=dizi[2];
 siparis->ist4=dizi[3];
 siparis->ist5=dizi[4]; 
 siparis->ist6=dizi[5];
 siparis->ist7=dizi[6];
 siparis->ist8=dizi[7];
 siparis->ist9=dizi[8];
 siparis->ist10=dizi[9];

}
B)
Burada da sipariş sınıfından müşterinin isteklerine göre isteklerine göre dolduracak.
(İstek dediğim belirli yemek çeşitleri var bunlar mesela 1-yemek, 2-yemek, 3-yemek, 4-yemek, 5-yemek diyelim)
(Masa_n ise müşterinin oturduğu masa.)
C)

Kod:
 void masa_g(string masadurumu[],int masa_s, int p)
{
 int i,,b,j;

 b=1;
 for(j=1;j<=5;j++){
 cout<<"\t"; 
 for(i=0;i<p;i++)
 {
 cout<<"|";
 if(b<10){
 if(otur[b]=="D"){
 cout<<b<<"-"<<masadurumu[b] <<" |";b++;
 }
 else{
 otur[b]="B";
 cout<<b<<"-"<<masadurumu[b] <<" |";b++;
 }
 }
 else { 
 if(otur[b]=="D"){
 cout<<b<<"-"<<masadurumu[b]<<"|";b++;
 }
 else{
 otur[b]="B";
 cout<<b<<"-"<<masadurumu[b]<<"|";b++;
 }

 }
 }
 cout<<"\n";
 }
}
C)
-Masa göster fonksiyonu burada ekranda tablo şeklinde masa numarasını ve durumlarını göstermek için kullanmak istediğim fonksiyon.
- Masadurumu değişkeni masanın dolu olup olmadığını belirler doluysa D harfi boş ise B harfi yazdırıyor
- B değişkeni masanın numarasını yazdırmak için kullandığım değişken her masa numarası yazıldıktan sonra b değişkenini bir bir artırıyorum( )
-İlk for döngüsü satır oluşturmak için ikici for döngüsü ise satırda masa numaralarını yazmak için kullandığım döngü
-İkinci for döngü içinde bulunan
*İf b sayısı yani masa numarası 10'dan küçük ise;
Tekrar bir if var bu if mesela 1.masanın dolu olup olmadığını ekrana yazdırmak amaçlı
Eğer masa dolu değilse masadurumu değişkenine boş (B) olduğunu belirtiyor
(1-D)
*Else
Else b sayısı on ve ondan küçük ise;
Tekrar aynı şekilde if var bu if mesela 1.masanın dolu olup olmadığını ekrana yazdırmak amaçlı eğer masa dolu değilse masadurumu değişkenine boş (B) olduğunu belirtiyor.
D)
Kod:
int main()
{
int p;
int b = 1;
siparis*masa=new siparis[masa_s];
siparis masax;p=masa_s/3;int matrix[p][5];
string masadurumu[masa_s];// bu masada dolumu bosmu onu
int c1;
;
int J;
int ras1,rast2;
 srand(time(0));
 ras1=1+rand()%2;
 rast2=ras1;
 if(ras1==1)
 { 
 J=masa_s+1;
 ras1=1+rand()%J;
 otur[ras1]="D";
 cout<<ras1;
 masa_g(otur,masa_s,p);
 }
 else {
 cout<<"musteri gelmedi\n";
 }
 cout<<"Musteri geldimi evet(1)/hayir(2)";cin>>karar;
 if(karar==1)
 {
 masa_o(&masax);
 z=i+1;
 masa[z]=masax;
 }
else
{

}
return 0;
}
D)
İnt main kısmı;
1) İlk sipariş sınıfından masa adlıyla hafızada masa sayısı kadar yer ayırıyorum.
2)Sipariş sınıfından masax diye bir nesne oluşturuyorum ileride bu nesne üzerinden nesne üreteceğim bunda ürettiğim nesneyi hafızada yer ayırttığım hafızadaki masa değerine atıyacağım.
3)Masaları sütun ve satır şeklinde göstereceğim için bunu çok boyutlu dizi ile yapmaya karar verdim bunun p değişkeni sayesinde 3 masaların ekranda 3'er satırda gösterilmesini sağlıyorum
4)Masanın dolumu boş mu olduğunu göstermek için kullanmış olduğum değişken.
5)J değişkenini ileride rastgele bir masanın dolu olarak göstermek için kullanılacak. Rastgele sayı üretmek için kullandığım yapı ve ardından
İf ve else geliyor bu karar yapası işletmeye rastgele müşteri gelmesini veya gelmemesine sebep oluyor.
6) Masa durumunu gösteren tabloda D harfi yani masa dolu gözüküyorsa müşteri gelmiş oluyor if içinde masa_o fonksiyonunu kullanarak masax nesnesinin özelliklerini girip bu özellikleri de hafızada yer ayırdığımım masa[] ya atıyorum.


Yaşadığım sorun ise masa tablosunu gösterdikten sonra herhangi bir kod çalışmıyor işlem bitiyor problemlerimden biri bu.
 
Tek satırda 30 kod yazmayın. Çok istiyorsanız tek satırda fonksiyon yazılabiliyor, öyle yapın.
Neden mod alıyorsunuz?
İlk kısım tamam ama gerisi için söylememe rağmen harfi harfine anlatmaman, tanımlanmamış değişkenler kullanman, kullandığın değişkenlerin harflerden ibaret olması, C++ diline uygun olmayan şeyler kullanman sebebiyle yapmıyorum. Çünkü yeterince vaktimi yedin. Sana hayatta başarılar.

Bu kodun masa sayısını göstermesi bile mucize. Bu haliyle bile bende 14 hata var.

Kod:
#include <iostream>
#include <array>
#include <random>

#define N        10

using namespace std;

namespace Vavien {
    int rand(int start, int end) {
        static random_device dev;
        static mt19937 gen(dev());
        uniform_int_distribution<int> dist(start, end);

        return dist(gen);
    }
}

class Order {
public:
    array<int, N> orders;
    int tableNumber;
    int totalPrice;
};

void tableOrder(Order& o) {
    auto numberOfMenus{ 0 };

    cout << "Musterinin oturmus oldugu masa numarasını girin: ";
    cin >> o.tableNumber;

    cout << "Musteri toplamda kac menu istiyor";
    cin >> numberOfMenus;

    for (auto i{ 0 }; i < numberOfMenus; ++i) {
        cout << "Musterinin istemis oldugu menununun kodunu girin: ";
        cin >> o.orders[i];
    }
}

void showTable(Order& o) {

}

int main() {

    return 0;
}





void masa_g(string masadurumu[], int masa_s, int p) {
    int i, b, j;

    b = 1;
    for (j = 1; j <= 5; j++) {
        cout << "\t";
        for (i = 0; i < p; i++) {
            cout << "|";
            if (b < 10) {
                if (otur[b] == "D") {
                    cout << b << "-" << masadurumu[b] << " |"; b++;
                }
                else {
                    otur[b] = "B";
                    cout << b << "-" << masadurumu[b] << " |"; b++;
                }
            }
            else {
                if (otur[b] == "D") {
                    cout << b << "-" << masadurumu[b] << "|"; b++;
                }
                else {
                    otur[b] = "B";
                    cout << b << "-" << masadurumu[b] << "|"; b++;
                }

            }
        }
        cout << "\n";
    }
}

int main() {
    int p;
    int b = 1;
    siparis* masa = new siparis[masa_s];
    siparis masax; p = masa_s / 3; int matrix[p][5];
    string masadurumu[masa_s];// bu masada dolumu bosmu onu
    int c1;
    int J;
    int ras1, rast2;
    srand(time(0));
    ras1 = 1 + rand() % 2;
    rast2 = ras1;
    if (ras1 == 1) {
        J = masa_s + 1;
        ras1 = 1 + rand() % J;
        otur[ras1] = "D";
        cout << ras1;
        masa_g(otur, masa_s, p);
    }
    else {
        cout << "musteri gelmedi\n";
    }
    cout << "Musteri geldimi evet(1)/hayir(2)"; cin >> karar;
    if (karar == 1) {
        masa_o(&masax);
        z = i + 1;
        masa[z] = masax;
    }
    else {

    }
    return 0;
}
 
Çözüm
Tek satırda 30 kod yazmayın. Çok istiyorsanız tek satırda fonksiyon yazılabiliyor, öyle yapın.
Neden mod alıyorsunuz?
İlk kısım tamam ama gerisi için söylememe rağmen harfi harfine anlatmaman, tanımlanmamış değişkenler kullanman, kullandığın değişkenlerin harflerden ibaret olması, C++ diline uygun olmayan şeyler kullanman sebebiyle yapmıyorum. Çünkü yeterince vaktimi yedin. Sana hayatta başarılar.

Bu kodun masa sayısını göstermesi bile mucize. Bu haliyle bile bende 14 hata var.

Kod:
#include <iostream>
#include <array>
#include <random>

#define N        10

using namespace std;

namespace Vavien {
    int rand(int start, int end) {
        static random_device dev;
        static mt19937 gen(dev());
        uniform_int_distribution<int> dist(start, end);

        return dist(gen);
    }
}

class Order {
public:
    array<int, N> orders;
    int tableNumber;
    int totalPrice;
};

void tableOrder(Order& o) {
    auto numberOfMenus{ 0 };

    cout << "Musterinin oturmus oldugu masa numarasını girin: ";
    cin >> o.tableNumber;

    cout << "Musteri toplamda kac menu istiyor";
    cin >> numberOfMenus;

    for (auto i{ 0 }; i < numberOfMenus; ++i) {
        cout << "Musterinin istemis oldugu menununun kodunu girin: ";
        cin >> o.orders[i];
    }
}

void showTable(Order& o) {

}

int main() {

    return 0;
}





void masa_g(string masadurumu[], int masa_s, int p) {
    int i, b, j;

    b = 1;
    for (j = 1; j <= 5; j++) {
        cout << "\t";
        for (i = 0; i < p; i++) {
            cout << "|";
            if (b < 10) {
                if (otur[b] == "D") {
                    cout << b << "-" << masadurumu[b] << " |"; b++;
                }
                else {
                    otur[b] = "B";
                    cout << b << "-" << masadurumu[b] << " |"; b++;
                }
            }
            else {
                if (otur[b] == "D") {
                    cout << b << "-" << masadurumu[b] << "|"; b++;
                }
                else {
                    otur[b] = "B";
                    cout << b << "-" << masadurumu[b] << "|"; b++;
                }

            }
        }
        cout << "\n";
    }
}

int main() {
    int p;
    int b = 1;
    siparis* masa = new siparis[masa_s];
    siparis masax; p = masa_s / 3; int matrix[p][5];
    string masadurumu[masa_s];// bu masada dolumu bosmu onu
    int c1;
    int J;
    int ras1, rast2;
    srand(time(0));
    ras1 = 1 + rand() % 2;
    rast2 = ras1;
    if (ras1 == 1) {
        J = masa_s + 1;
        ras1 = 1 + rand() % J;
        otur[ras1] = "D";
        cout << ras1;
        masa_g(otur, masa_s, p);
    }
    else {
        cout << "musteri gelmedi\n";
    }
    cout << "Musteri geldimi evet(1)/hayir(2)"; cin >> karar;
    if (karar == 1) {
        masa_o(&masax);
        z = i + 1;
        masa[z] = masax;
    }
    else {

    }
    return 0;
}
Vaktinizi aldığım için kusura bakmayın teşekkürler.
 
Arkadaşın dediği gibi tanımlanmamış değişkenler var, ayrıca arkadaşın tek satırda 30 kod yazma demesi çok saçma buna ek olarak tanımlanmamış değişkenleri parametre olarak gönderirsen çalışmaz örnek sadece String nokta gönderemezsin
 
Uyarı! Bu konu 5 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Technopat Haberler

Geri
Yukarı