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

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.





< Bu mesaj bu kişi tarafından değiştirildi 4kalan -- 11 Aralık 2013; 17:36:35 >
Bu mesaja 3 cevap geldi.

Bu mesajda bahsedilenler: @ThisisaNightmare
A
12 yıl
Teğmen

Arkadaşlar aşağıdaki ufak eurodan tlye tlden euroya dönüştüren program çalışıyor tek bir sorunla oda işlemleri yaptıktan sonra en son siyah ekranda değerler çıkar çıkarmaz kapanıyor direk kapanmaması için kullanılan kod cin.get(); değilmiydi teşekkürler şimdiden

#include <iostream>
#include <iomanip>
#include "locale.h"

using namespace std;

int main()
{
double a=0,b=0;
setlocale(LC_ALL,"turkish");
cout<<"liradan Euroya dönüştürülecek sayıyı girin";
cin>>a;
double c=a/2.79;
cout<<a<<' '<<"lira"<<' '<<c<<' '<<"Euro eder"<<endl<<endl;
cout<<"Eurodan Liraya dönüştürülecek sayıyı girin : ";
cin>>b;
double d=b*2.79;
cout<<b<<' '<<"Euro"<<' '<<d<<' '<<"Lira eder";
cin.get();
return 0;
}


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

programlama konusunda acemiyim. yaptığım bazı programlarda switch döngüsünün seçim değişkenine, kullanıcı birden fazla kez aynı karakteri girse dahi çalışsın istiyorum. bu bir hata mesajı da olabilir. fakat beceremedim bir türlü.
yani aslında 5+5 yazınca =10 yazan program 5+++5 yazınca sonsuz döngüye girmesin, hatalı girdin arkadaşım desin ve olayı tekrar başa alsın istiyorum. Bu şekilde bir taşma durumunda ne yapabilirim? veya bir reset komutu verebilir miyim? birçok şey denedim çözemedim.
//örnek kod: 
#include<iostream>
using namespace std;
int main(){
cout << "isleminizi yaziniz:\n";
for(;;)//ana döngü
{
double x,z;
char y;
cout<<endl;
cin >> x;//1. sayı
cin >> y;//işlem
cin >> z;//2. sayı

switch(y){
case'+': cout << "=" << x+z; break;
case'-': cout << "=" << x-z; break;
case'x':
case'*': cout << "=" << x*z; break;
case'/': cout << "=" << x/z; break;
default: cout<<"hata."; break;
}//end switch
}//end for
}//end main


program üzerinden açıklarsanız daha iyi anlarım. teşekküreler


Bu mesaja 2 cevap geldi.
M
12 yıl
Er

İyi günler. Goto komutu ile ilgili ödevim var ama pek bilgim yok. Goto işlevini gören farklı yöntemler oldugu için pek kaynakta edinemedim. Acaba kullanımı hakkında bilgi verir misiniz?
Ödevim şu:
1- Klavyeden girilen 10 sayının toplamını ve ortalamasını bulan program + akış diyagramı…
2- 1-50 arasındaki tek sayıları ekrana listeleyen ve toplamını bulan program + akış diyagramı…
Ödevin çözümünü istemiyorum. Sadece çözümünde katkısı olacak goto komutu hakkında bilgi. Goto komutunu kullnarak belirli sayıda sayı girmeyi beceremiyorum. Hep sonsuz oluyor. Yardımcı olursanız çok iyi olur. Şimdiden teşekkürler.


Bu mesaja 1 cevap geldi.

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

Yanlış anlaşılma volume 1

goto kullanmayacaksınız döngülerden yararlanacaksınız.
1 - 50 arasındaki tek sayılar.

for (i = 1; i < 50; i += 2)
printf("%d ", i);

gibi


Bu mesaja 1 cevap geldi.

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

switch i döngü içine alırsınız. Gerekli koşullara bakarsınız ona göre çıkmak istediğinizde break; dersiniz.


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @mhk_mhk
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.