Arama butonu
Bu konudaki kullanıcılar: 2 misafir, 1 mobil kullanıcı
4171
Cevap
169196
Tıklama
3
Öne Çıkarma
Cevap: C/C++/C# Sorularınız Buraya. . .(GÜNCEL) (124. sayfa)
G
12 yıl
Teğmen

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();
}
}
}



H
12 yıl
Çavuş

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.


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @mhk_mhk
W
12 yıl
Er

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;
}



H
12 yıl
Çavuş

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


Bu mesaja 1 cevap geldi.
4
12 yıl
Teğmen

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 >


Bu mesajda bahsedilenler: @harhu1
F
12 yıl
Onbaşı

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
< Resime gitmek için tıklayın >< Resime gitmek için tıklayın >< Resime gitmek için tıklayın >< Resime gitmek için tıklayın >



M
12 yıl
Er

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:)))


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @4kalan
4
12 yıl
Teğmen

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.


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @madiba072
M
12 yıl
Er

Çok teşekkür ederim))İyi akşamlar.




Bu mesajda bahsedilenler: @4kalan
P
12 yıl
Çavuş

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ı >

M
12 yıl
Teğmen

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?


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @harhu1
H
12 yıl
Çavuş

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.


Bu mesaja 2 cevap geldi.
E
12 yıl
Çavuş

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;
}


Bu mesaja 2 cevap geldi.
Z
12 yıl
Onbaşı

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 >
Bu mesaja 1 cevap geldi.
M
12 yıl
Teğmen

çok teşekkür ederim.
şu string'lere daha çok çalışayım en iyisi




Bu mesajda bahsedilenler: @harhu1
X
12 yıl
Teğmen

Mantığı konusunda yardımcı olur musunuz ?http://forum.donanimhaber.com/m_85196233/tm.htm



C
12 yıl
Teğmen

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


Bu mesaja 1 cevap geldi.
Z
12 yıl
Onbaşı

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


Bu mesaja 1 cevap geldi.
C
12 yıl
Teğmen

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


Bu mesaja 1 cevap geldi.
Z
12 yıl
Onbaşı

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


Bu mesaja 1 cevap geldi.