• 23-12-2019, 21:25:15
    #1
    function sonuc = faktoryel1(x)
    sonuc=1;
    for i=1:x
    sonuc=sonuc*1
    end
    
    end
    Arkadaşımın gelişmiş hesap makinesi yapma ödevi varmış tüm kod aşağıdaki gibi fakat üsteki kod hata veriyormuş bilgisi olan ulaşırsa sevinirim.

    ilksayi=input('Lütfen Bir Sayı Giriniz: ');
    sembol=input('Sembol Giriniz +,-,,/,:,mod,Ü','s');
    if sembol=='F'
    sonuc=faktoryel1(ilksayi)
    elseif sembol=='L'
    sonuc=log(ilksayi)
    elseif sembol=='K'
    sonuc=sqrt(ilksayi)
    elseif sembol=='T'
    sonuc=tan(ilksayi)
    elseif sembol=='C'
    sonuc=cot(ilksayi)
    elseif sembol=='S'
    sonuc=sin(ilksayi)
    elseif sembol=='Q'
    sonuc=cos(ilksayi)
    disp(sonuc)
    return;
    end
    ikinciSayi=input('Lütfen İkinci Sayı Giriniz: ');
    switch sembol
    case '+'
    sonuc=ilksayi+ikinciSayi;
    disp(sonuc)
    case '-'
    sonuc=ilksayi-ikinciSayi;
    disp(sonuc)
    case ''
    sonuc=ilksayi*ikinciSayi;
    disp(sonuc)
    case '/'
    sonuc=ilksayi/ikinciSayi;
    disp(sonuc)
    case ':'
    sonuc=ilksayi/ikinciSayi;
    disp(sonuc)
    case 'mod'
    sonuc=mod(ilksayi,ikinciSayi);
    disp(sonuc)
    case 'Ü'
    sonuc=(ilksayi)^(ikinciSayi);
    disp(sonuc)
    otherwise
    disp('Geçersiz Sembol')
    
    end
    function sonuc = faktoryel1(x)
    sonuc=1;
    for i=1:x
    sonuc=sonuc*1
    end
    
    end
  • 23-12-2019, 21:41:23
    #2
    matlab versiyonunu öğrenebilir misin?
  • 23-12-2019, 21:43:29
    #3
    smtktc adlı üyeden alıntı: mesajı görüntüle
    matlab versiyonunu öğrenebilir misin?
    Matlabr2018a
  • 23-12-2019, 21:50:27
    #4
    şu anda bilgisayarımda kurulu değil matlab. ama yanlış hatırlamıyosam fonksiyonları ayrı dosyaya kaydetmesi gerekiyordu.
    yani main scriptle aynı klasörde faktoryel1.m diye bi dosya oluşturup fonksiyonu ona yazarak denesin.

    bi de sonuc=sonuc*1 bunun sonuc=sonuc*i olması lazım
  • 23-12-2019, 22:02:48
    #5
    smtktc adlı üyeden alıntı: mesajı görüntüle
    şu anda bilgisayarımda kurulu değil matlab. ama yanlış hatırlamıyosam fonksiyonları ayrı dosyaya kaydetmesi gerekiyordu.
    yani main scriptle aynı klasörde faktoryel1.m diye bi dosya oluşturup fonksiyonu ona yazarak denesin.

    bi de sonuc=sonuc*1 bunun sonuc=sonuc*i olması lazım
    öyle bir sorun kaldı
     if sembol=='F'
    sonuc=faktoryel1(ilksayi)
    elseif sembol=='L'
    sonuc=log(ilksayi)
    elseif sembol=='K'
    sonuc=sqrt(ilksayi)
    elseif sembol=='T'
    bu işlemler yapıldıktan sonra sonucu buluyor fakat ikinci rakamı tekrar istiyor. Bunu istememesini nasıl engelleyeceğiz?
  • 23-12-2019, 23:32:23
    #6
    ilksayi=input('Lütfen Bir Sayı Giriniz: ');
    sembol=input('Sembol Giriniz +,-,,/,:,mod,Ü','s');
    
    A = ['F','L','K','T','C','S','O'];
    B = ['+','-','*','/',':','mod'];
    
    if any(A(:)==sembol)
       switch sembol
          case 'F'
             sonuc=faktoryel1(ilksayi)
          case 'L'
    ...
    ...
       end
       disp(sonuc)
    
    elseif any(B(:)==sembol)
       ikinciSayi=input('Lütfen İkinci Sayı Giriniz: ');
       switch sembol
          case '+'
             sonuc=ilksayi*ikincisayi
          case '-'
    ...
    ...
       end
       disp(sonuc)
    else
       disp('Geçersiz sembol')
    end
    kodu böyle değiştirirseniz düzelir sanırım.