String şeklinde input okuyan Hesap makinesi hakkında

BadLuck

Öğrenci
Katılım
2 Kasım 2013
Mesajlar
3
Reaksiyon puanı
0
Puanları
0
Merhaba arkadaşlar ben henüz yeni sayılacak seviyede C dersleri alıyorum.. Bir ödevim var input formatı örneğin: ?4 +3 ? 5 - 1?4/ 2? ... gibi gidecek.. şimdi aklıma takılan şu soru işaretleri arasındaki işlemleri seçmesini nasıl sağlayacağız + yı algılamasını nasıl sağlayacağız.. daha değişik işlemlerde olacak içerisinde ama sanırım bunları anlayabilrisem onları kendim hallederim

Bu arada dizileri falan görmedik konu olarak en son fonksiyonlarda kaldık yani ödevi çözerkenden diziler falan kullanılmayacak.
Sizden çözüm istemiyorum tabiki sadece bi fikir vermeniz yeterli. Boşlukları atlamasını nasıl sağlayacağız (belki continue komutuyla olabilir diye düşündüm ama bilmiyorum ) + yı nasıl tanımlayacak soru işaretleri arasını nasıl okuyacak.. bunlar hakkında ufak bi ip ucu fikir bekliyorum

Teşekkür ederim şimdiden
 

VincentVega

Profesör
Katılım
29 Ağustos 2007
Mesajlar
2,663
Reaksiyon puanı
3
Puanları
218
İşlem operatörlerini kullanıcıdan almak yerine programına 4 menü ekle. Örnek veriyorum 1 e basınca toplama,2 ye basınca çıkarma vs. işlemi yapsın. 1 e bastıktan sonra toplama işlemi için gerekli sayıları teker teker iste kullanıcıdan. Sonrasında sonucu gösterirsin.
 

Deleted-Name

Profesör
Cezalı
Katılım
24 Mayıs 2013
Mesajlar
2,602
Reaksiyon puanı
18
Puanları
218
Tam çözümü hatırlamıyorum ama bu soruların cevapları vardı bende şöyleydi galiba: operatörü bir char ile alacaksın klavyeden artık + - * / neyse case '+': printf("%d + %d = %d",num1,num2,num1+num2); en sona birde default eklemeyi unutma
 

BadLuck

Öğrenci
Katılım
2 Kasım 2013
Mesajlar
3
Reaksiyon puanı
0
Puanları
0
arkadaşlar yanlış anlamışsınız sanırım.. benim problemim de tam olarak bu toplama için 1 e basınız falan gibi bi menü olmayacak. sadace input da ?5+3? 4 -3? gibi şeyler ardı ardına yazacak soru işaretleri arasında. outpotda da 5+3=8 4-3=1 gibi sıralanacak. toplama çıkartma diye ayrı ayrı belirtmeyecek kullanıcı
 

Deleted-Name

Profesör
Cezalı
Katılım
24 Mayıs 2013
Mesajlar
2,602
Reaksiyon puanı
18
Puanları
218
arkadaşlar yanlış anlamışsınız sanırım.. benim problemim de tam olarak bu toplama için 1 e basınız falan gibi bi menü olmayacak. sadace input da ?5+3? 4 -3? gibi şeyler ardı ardına yazacak soru işaretleri arasında. outpotda da 5+3=8 4-3=1 gibi sıralanacak. toplama çıkartma diye ayrı ayrı belirtmeyecek kullanıcı
e tamam işte bende sana onu söyledim önceki mesajıma bak bi
 

BadLuck

Öğrenci
Katılım
2 Kasım 2013
Mesajlar
3
Reaksiyon puanı
0
Puanları
0
Hocam şimdi sizin yazdığınızı da düşündüm.. Klavyeden oparatör tek scanf ile yapılmayacak yani oparatörü program input içerisindeki uzun stringden kendisi seçip yorumlayacak. umarım önerinizi yanlış anlamamışımdır ama sanırım siz Lütfen yapmak istediğiniz işlemi giriniz: gibi yazıp scanf ile + - / basmasını beklememizi önerdiniz. ama durum öyle değil. tek scanf olacak ondada 5+2? 7 / 2? gibi bişey olacak. program içerisinden kendi seçecek oporatörleri ve yorumlayacak
 

Deleted-Name

Profesör
Cezalı
Katılım
24 Mayıs 2013
Mesajlar
2,602
Reaksiyon puanı
18
Puanları
218
Hocam şimdi sizin yazdığınızı da düşündüm.. Klavyeden oparatör tek scanf ile yapılmayacak yani oparatörü program input içerisindeki uzun stringden kendisi seçip yorumlayacak. umarım önerinizi yanlış anlamamışımdır ama sanırım siz Lütfen yapmak istediğiniz işlemi giriniz: gibi yazıp scanf ile + - / basmasını beklememizi önerdiniz. ama durum öyle değil. tek scanf olacak ondada 5+2? 7 / 2? gibi bişey olacak. program içerisinden kendi seçecek oporatörleri ve yorumlayacak
scanf("%d %c %d",&num1, &op, &num2); yaparsın olur biter
 

Deleted-Name

Profesör
Cezalı
Katılım
24 Mayıs 2013
Mesajlar
2,602
Reaksiyon puanı
18
Puanları
218
[MENTION=375008]BadLuck[/MENTION] şimdi anladım ben seni C'de string.h biliyor musun google'da C String Manipulation diye araştır bir de linear search ile operatörü bulup işlem yapmalısın
 

LeaveNhA

Doçent
Katılım
4 Aralık 2011
Mesajlar
597
Reaksiyon puanı
5
Puanları
18
Merhaba arkadaşlar ben henüz yeni sayılacak seviyede C dersleri alıyorum.. Bir ödevim var input formatı örneğin: ?4 +3 ? 5 - 1?4/ 2? ... gibi gidecek.. şimdi aklıma takılan şu soru işaretleri arasındaki işlemleri seçmesini nasıl sağlayacağız + yı algılamasını nasıl sağlayacağız.. daha değişik işlemlerde olacak içerisinde ama sanırım bunları anlayabilrisem onları kendim hallederim

Bu arada dizileri falan görmedik konu olarak en son fonksiyonlarda kaldık yani ödevi çözerkenden diziler falan kullanılmayacak.
Sizden çözüm istemiyorum tabiki sadece bi fikir vermeniz yeterli. Boşlukları atlamasını nasıl sağlayacağız (belki continue komutuyla olabilir diye düşündüm ama bilmiyorum ) + yı nasıl tanımlayacak soru işaretleri arasını nasıl okuyacak.. bunlar hakkında ufak bi ip ucu fikir bekliyorum

Teşekkür ederim şimdiden

Bu işleme "parsing" deniyordu yanlış hatırlamıyorsam, ve bir matematik yordam deyimi yazman gerek, karakterleri sıradan okuyup rakamsa depolaman, operatörse işlem yapman ve sonucu tekrar yerine yerleştirmen ve tekrar okuyup tekrar işlemlerden geçirmen gerek.
algoritmasını ararsan bulabilirsin nette, bunun C++ kodunu yazıp eline verirsem sana çok büyük bi kötülük yapmış olurum bir bu programın sadece bir dille yazılması lazım yoksa çok karmaşık görünür gözün korkar öğreniceğin dilden soğursun, ikincisi bunu kendin yazmazsan çok şey kaybedersin, en az bir kere bu yoldan geçmen gerek.

Sonuçtan bizide haberdar et.
 
Üst