Şimdi Ara

C/C++/C# Sorularınız Buraya. . .(GÜNCEL) (124. sayfa)

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir (1 Mobil) - 1 Masaüstü1 Mobil
5 sn
4.172
Cevap
118
Favori
170.065
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
3 oy
Öne Çıkar
Sayfa: önceki 122123124125126
Sayfaya Git
Git
sonraki
Giriş
Mesaj
  • basit matematiksel işlemlerle ilgili bir sorum var
    mesala (a!+b!) / (c! * (d!+e!)) faktoryel alma işlemini c# yapmak istiyorum
    rakamları kullanıcıdan alacağım ancak ordaki rakamlar sabit olmayacak
    yani her defasında başka rakamlar yazıp sonucu görebileceğim
    bir de o işlemin olması gerekmiyor
    mesala (a! * b!) + (c! - d!) / e! sürekli soruyuda değiştirdiğimde neticeyi alabileceğim
    ben 2 farklı rakamın faktoryelini alıp bunları kendi arasında dört işleme sokabiliyorum
    (a! * b!) bunun gibi ama bundan çıkacak sonuca nasıl (c! - d!) bu sonucu da alıp
    arasında işlem yapabilirim
    yeni başladım mantığı anlamaya çalışıyorum bana yardımcı olursanız sevinirim
    kolay gelsin :)


    using System;
    using System.Collections.Generic;
    using System.Text;

    namespace fakHesap
    {
    class Program
    {
    private static float fakHesap1(float s1)
    {
    float sonuc1 = 1;
    for (int i = 1; i <= s1; i++)
    {
    sonuc1 *= i;
    }
    return sonuc1;
    }

    private static float fakHesap2(float s2)
    {
    float sonuc2 = 1;
    for (int i = 1; i <= s2; i++)
    {
    sonuc2 *= i;
    }
    return sonuc2;
    }

    static void Main(string[] args)
    {
    Console.Write("Faktoryeli alınacak ilk sayıyı giriniz: ");
    float s1 = Convert.ToSingle(Console.ReadLine());

    Console.Write("Faktoryeli alınacak ikinci sayıyı giriniz: ");
    float s2 = Convert.ToSingle(Console.ReadLine());

    Console.WriteLine("Lütfen yapmak istediğiniz işlemi seçin: ");
    Console.Write("Toplama için (1) Bir'e basınız: \n");
    Console.Write("Çıkarma için (2) İki'ye basınız: \n");
    Console.Write("Çarpma için (3) Üç'e basınız: \n");
    Console.Write("Bölme için (4) Dört'e basınız: \n");
    byte islem = Convert.ToByte(Console.ReadLine());

    float sonuc1 = fakHesap1(s1);
    float sonuc2 = fakHesap2(s2);

    if (islem == 1)
    {
    Console.WriteLine("Birinci fak: {0} ikinci fak {1} \n {0} + {1} = {2}", sonuc1, sonuc2, sonuc1 + sonuc2);
    }
    else if (islem == 2)
    {
    Console.WriteLine("Birinci fak: {0} ikinci fak {1} \n {0} - {1} = {2}", sonuc1, sonuc2, sonuc1 - sonuc2);
    }
    else if (islem == 3)
    {
    Console.WriteLine("Birinci fak: {0} ikinci fak {1} \n {0} * {1} = {2}", sonuc1, sonuc2, sonuc1 * sonuc2);
    }
    else if (islem == 4)
    {
    Console.WriteLine("Birinci fak: {0} ikinci fak {1} \n {0} / {1} = {2}", sonuc1, sonuc2, sonuc1 / sonuc2);
    }
    else
    {
    Console.WriteLine("Yanlış giriş yaptınız.");
    }
    Console.ReadLine();
    }
    }
    }




  • mhk_mhk kullanıcısına yanıt
    Sanırım işlem için girdiyi +++ yazınca program göçüyor diyosun. Buradaki sıkıntı char y tanımlayıp +++ girince ilk karakterden sonrasını double z için girdi olarak alıyor. ++ yı da double a cast edemediğinden saçma bir değer alıyor ve program patlıyor. burada char y yerine string y tanımlayıp girdiyi bu şekilde alabilirsin. daha sonra y nin uzunluğunu kontrol edersin. if(str.size()==1) daha sonra strcmp ile girdiyi kontrol edersin strcmp(y,"+")==0 tarzı switch case kullancam illaki diyorsan kontrolden sonra if(strcmp(y,"+"){ islem='+'} else if ... tarzı bir atamadan sonra switch(islem) diyebilirsin. bu arada double beklerken karakter girersen yinede kod göçücektir. sayıyı girdikten sonrada bir kontrol ekleyebilirsin. hatta bütün hepsini string alıp sayımı diye kontrol edip atamada yapabilirsin. neyse biraz uzun oldu kafana takılan olursa sor.
  • Ben öğrenci değilim liseye gidiyorum ama üniversitede işime yaraması rahat geçirmesi için C++ öğrenmeye çalışıyorum. Şöyle bir kod yazdım (True ve False ifadeleri ile) fakat "y" değerini ekranda göstermiyor. Yardımcı olur musunuz?

    #include <iostream>
    using std::cout;
    using std::cin;
    using std::endl;
    main (){
    bool x, y;
    x=(7>6);
    y=(4!=5)
    cout << x << endl << y;
    cin>>x;
    }
  • quote:

    Orijinalden alıntı: 4kalan

    Yazdıklarınız doğru ama zaten bildiğiniz gibi birşey in programlama da tek yöntemi yok, birden fazla seçenekle yapılabilir, benim de demek istediğim özel bir neden (mesela bazı code stillerinde yasak demişsiniz, burda kullanmazsınız) yoksa goto okunabilirliği bozar ama "kodumda hiç goto kullanmayacağım" diye düşünmekte biraz yanlış geliyor bana. Belirli yerlerde kullanılır.

    Bende aynen böyle düşünüyordum. Öğrendiğim gibide kullanmaya başlamıştım. Sonra ilk ödevden düşük bir puan alınca itiraza gitmiştim. Go to kullanmıycaksın demişti bir süre hocayla tartıştım madem yapmışlar neden kullanmıyoruz diye. Djikstra abi açıklamış demişti. Burdaki muhabbeti görünce ne demiş diye okuyayım istedim. Sanırım konuya noktayı koyan bu yazı olmuş. Yazı çokta açık değil ama sende bir oku istersen.http://www.cs.utexas.edu/users/EWD/ewd02xx/EWD215.PDF




  • harhu1 H kullanıcısına yanıt
    Okuyacağım, dediğim gibi herkesin kendi görüşüdür. Standartlar komitesi de buna katılsaydı daha yeni standartlar yayınlandı, kaldırılmasını beklemek yanlış olur ama deprecated ilan edilebilirdi.



    < Bu mesaj bu kişi tarafından değiştirildi 4kalan -- 12 Aralık 2013; 16:53:10 >
  • merhaba hocam...
    c# da yapmış olduğum otomasyon programımda üye kayıt ve üye girişi mevcut aynı şekilde admin girişi fakat üyelerimin girişini admin onay verdiğinde girmesini istiyorum aşşağıdaki resimlerle daha rahat anlayacaksınız ne demek istediğimi yardımlarınızı bekliyorum...

    sql sorgusu phpmyadminde çalışıyor ama vb de hata veriyor aldığım hatanında resmini çekip atıyorum
     C/C++/C# Sorularınız Buraya. . .(GÜNCEL) C/C++/C# Sorularınız Buraya. . .(GÜNCEL) C/C++/C# Sorularınız Buraya. . .(GÜNCEL) C/C++/C# Sorularınız Buraya. . .(GÜNCEL)




  • 4kalan kullanıcısına yanıt
    Hocam,verilen ödevde doçent goto komutu ile yapmamızı söyledi,işin içine sayaç falan da giriyor. Ki zaten daha for komutunu ögrenmedik:)))
  • madiba072 M kullanıcısına yanıt
    i = -1;

    BACK:
    if (i > 50)
    goto END;
    else
    printf("%d ", i += 2);
    goto BACK;

    END:

    //Diğerini yazmıyorum bilmiyorsanız buna bakıp anlayıp diğerini yaparsınız.
  • 4kalan kullanıcısına yanıt
    Çok teşekkür ederim))İyi akşamlar.
  • Arkadaslar programlama kisminda heniz yeniyim . C de sayfa tarayan ve sayfa icindeki harfleri ayri dosyaya sayilari ayri dosyaya atacak bir programa ihtiyackm var. Nasil yapacagimi nerden baslayacagimi bilmiyorum yardimci olurmusunuz?

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • harhu1 H kullanıcısına yanıt
    yardımcı olduğun için teşekkürler.

    dediklerini yapmaya çalıştım ancak başaramadım.
    #include<iostream> 
    #include<string>
    using namespace std;
    main(){
    cout << "isleminizi yaziniz:\n";
    for(;;)//ana döngü
    {
    double x,z;
    string y;
    cout<<endl;
    cin >> x;//1. sayı
    cin >> y;//işlem
    cin >> z;//2. sayı
    if(str.size(y)==1){
    if(strcmp(y,"+")==0) cout << "=" << x+z;
    else if(strcmp(y,"-")==0) cout << "=" << x-z;
    else if(strcmp(y,"*")==0 || strcmp(y,"x")==0) cout << "=" << x*z;
    else if(strcmp(y,"/")==0) cout << "=" << x/z;}//end if
    else {
    cout<<"hata.";


    }//end else
    }//end for
    }//end main


    bu şekilde yapmaya çalıştım ancak derlemede hata verdi. nasıl çözebilirim aradım ancak bulamadım?




  • quote:

    Orijinalden alıntı: mhk_mhk

    yardımcı olduğun için teşekkürler.

    dediklerini yapmaya çalıştım ancak başaramadım.
    #include<iostream> 
    #include<iostream>
    #include<string>
    using namespace std;
    int main(){
    cout << "isleminizi yaziniz:\n";
    for(;;)//ana döngü
    {
    double x,z;
    string y;
    cout<<endl;
    cin >> x;//1. sayı
    cin >> y;//işlem
    cin >> z;//2. sayı
    if(y.size()==1){
    if(y.compare("+")==0) cout << "=" << x+z;
    else if(y.compare("-")==0) cout << "=" << x-z;
    else if(y.compare("*")==0 || y.compare("x")==0) cout << "=" << x*z;
    else if(y.compare("/")==0) cout << "=" << x/z;}//end if
    else {
    cout<<"hata.";


    }//end else
    }//end for
    }//end main


    bu şekilde yapmaya çalıştım ancak derlemede hata verdi. nasıl çözebilirim aradım ancak bulamadım?

    strcmp c koduydu benim hatam olmuş. bu şekilde çalışıcaktır. senin yazın üzerinde değiştirdim. yalnız girdiyi 5+5 şeklinde tek seferde girdiğinde çalışmayacaktır. 5 (enter) + (enter) 5 (enter) şeklinde girmen gerekli. eğer ben böyle istemiyorum tek seferde giricem diyorsan bu sefer string i bölüp sayıları ve işareti bulman gerekir.




  • Merhaba. Ben aşağıdaki kodlarda isaretcinin içerik alanını ekrana yazdırmak istiyorum ama program o satıra geldiğinde çalışma zamanı hatası veriyor. acaba hata nereden kaynaklanıyor? yardımcı olur musunuz?
    not: dosyadan okumada hata yok. aynı dizindeki bir dosyadan okuma yapıp ekrana yazdırılabiliyor.
    kodlar:
     
    #include <string>
    #include <string.h>
    #include <fstream>
    #include <iostream>

    using namespace std;

    class karakterler{
    public:
    char icerik;
    int frekans;
    karakterler *onceki;
    karakterler *sonraki;
    karakterler(){
    frekans=0;
    }
    friend class liste;
    };
    class liste{
    public:
    karakterler bas,son;
    karakterler *bas_ptr,*son_ptr;
    liste(){
    bas_ptr=&bas;
    son_ptr=&son;
    bas_ptr->sonraki=&son;
    son_ptr->onceki=&bas;
    }
    void ekleme(karakterler *isaretci, char ch){
    karakterler *temp;

    temp=new karakterler();

    temp->icerik=ch;
    temp->sonraki=isaretci->sonraki;
    temp->onceki=isaretci;
    isaretci->sonraki=temp;
    (temp->sonraki)->onceki=temp;
    }
    void silme(karakterler *isaretci){
    (isaretci->onceki)->sonraki=isaretci->sonraki;
    (isaretci->sonraki)->onceki=isaretci->onceki;
    }
    };

    int main()
    {
    int k,i=0,z=0,sayi=1;
    cout << "Okunmasini istediginiz text dosyasinin adini giriniz(ornek.txt seklinde)." << endl;
    cout << "Not: Dosyanin programla ayni dizin uzerinde olmasi gerekiyor" << endl;
    cout << "Dosya adi: ";
    char buffer[50];
    char *ptr=buffer;
    //gets(ptr);
    cin >> ptr;
    FILE *dosya;
    dosya=fopen(ptr, "r");
    char x[5];
    char *harfler=x;
    while(!feof(dosya)){
    fscanf(dosya,"%c" , &harfler[i]);
    i++;
    }
    fclose(dosya);
    for(z=0;z<i-1;z++){
    cout << harfler[z];
    }
    liste liste1;
    karakterler *isaretci;
    isaretci=liste1.bas_ptr->sonraki;
    z=0;
    for(z=0;z<i-1;z++){
    switch(harfler[z]){
    case 'a':
    liste1.ekleme(isaretci,'a');
    break;
    }
    cout << endl << endl << isaretci->icerik;

    }

    cin >> k;
    }




  • arkadaşlar olay kısaca C dilinde harf tahmin etme ama tıkandım kaldım derleyip calıstırıyorum sürekli çalışmayı durdursu hatası veriyor daha önce rakamlı versiyonunu yaptım o çalışıyor fakat harf denediğimde işler değişti, yardımlarınızı bekliyorum
     
    #include <stdio.h>
    #include <conio.h>
    #include <stdlib.h>
    #include <ctype.h>>
    #include <string.h>
    main()
    {
    int i;
    char tahmin[1],*harf;
    *harf=char(rand()%26+65);
    for(i=1;i<=10;i++)
    {
    printf("tahmininiz: ");
    gets(tahmin);
    printf("\n");
    if(strcmp(tahmin,harf)==0);
    {
    printf("%u tahminde bildiniz...",i);
    goto al;
    }
    }
    printf("10 hakkiniz bitti...");
    al:getch();
    return 0;
    }
    }



    < Bu mesaj bu kişi tarafından değiştirildi Zag0r -- 14 Aralık 2013; 12:02:00 >
  • harhu1 H kullanıcısına yanıt
    çok teşekkür ederim.
    şu string'lere daha çok çalışayım en iyisi
  • Mantığı konusunda yardımcı olur musunuz ?http://forum.donanimhaber.com/m_85196233/tm.htm
  • quote:

    Orijinalden alıntı: Zag0r

    arkadaşlar olay kısaca C dilinde harf tahmin etme ama tıkandım kaldım derleyip calıstırıyorum sürekli çalışmayı durdursu hatası veriyor daha önce rakamlı versiyonunu yaptım o çalışıyor fakat harf denediğimde işler değişti, yardımlarınızı bekliyorum
     
    #include <stdio.h>
    #include <conio.h>
    #include <stdlib.h>
    #include <ctype.h>>
    #include <string.h>
    main()
    {
    int i;
    char tahmin[1],*harf;
    *harf=char(rand()%26+65);
    for(i=1;i<=10;i++)
    {
    printf("tahmininiz: ");
    gets(tahmin);
    printf("\n");
    if(strcmp(tahmin,harf)==0);
    {
    printf("%u tahminde bildiniz...",i);
    goto al;
    }
    }
    printf("10 hakkiniz bitti...");
    al:getch();
    return 0;
    }
    }



    int asciival=rand()%26+97;
    char harf =asciival;
    cout<<harf;
    rand harf uretmek için bunu kullan
    goto yerine de break kullanabilirsin




  • quote:

    Orijinalden alıntı: Condemned61

    quote:

    Orijinalden alıntı: Zag0r

    arkadaşlar olay kısaca C dilinde harf tahmin etme ama tıkandım kaldım derleyip calıstırıyorum sürekli çalışmayı durdursu hatası veriyor daha önce rakamlı versiyonunu yaptım o çalışıyor fakat harf denediğimde işler değişti, yardımlarınızı bekliyorum
     
    #include <stdio.h>
    #include <conio.h>
    #include <stdlib.h>
    #include <ctype.h>>
    #include <string.h>
    main()
    {
    int i;
    char tahmin[1],*harf;
    *harf=char(rand()%26+65);
    for(i=1;i<=10;i++)
    {
    printf("tahmininiz: ");
    gets(tahmin);
    printf("\n");
    if(strcmp(tahmin,harf)==0);
    {
    printf("%u tahminde bildiniz...",i);
    goto al;
    }
    }
    printf("10 hakkiniz bitti...");
    al:getch();
    return 0;
    }
    }



    int asciival=rand()%26+97;
    char harf =asciival;
    cout<<harf;
    rand harf uretmek için bunu kullan
    goto yerine de break kullanabilirsin

    çok teşekkür ederim fakat C++ değil C kullanıyorum




  • sorunun rand harf uretmekte
    int asciival=rand()%26+97;
    char harf =asciival;bunu kullan
  • quote:

    Orijinalden alıntı: Condemned61

    sorunun rand harf uretmekte
    int asciival=rand()%26+97;
    char harf =asciival;bunu kullan

    bu şekilde tanımladığımda hiç çalışmıyor
    if(strcmp(tahmin,harf)==0); alanında hata veriyor
  • 
Sayfa: önceki 122123124125126
Sayfaya Git
Git
sonraki
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.