Arama butonu
Bu konudaki kullanıcılar: 3 misafir, 2 mobil kullanıcı
4171
Cevap
168960
Tıklama
3
Öne Çıkarma
Cevap: C/C++/C# Sorularınız Buraya. . .(GÜNCEL) (136. sayfa)
L
11 yıl
Yarbay

quote:

Orijinalden alıntı: elektro_gadget

quote:

Orijinalden alıntı: GhilleintheMist

Bu std::swap fonksiyonu nasil calisiyor? Yani ben swap fonksiyonu yazsam parametre olarak 2 pointer alip degerleri takas ederdim. Boylece degiskenler direk degisirdi. Ama bunda parametreler integer ama yine de degiskenler direk degisiyor. Nasil olutor bu?

C++ ta bir nesneye referans vermenin 2 yolu var. Birincisi senin dediğin C usülü işaretçi-adres olayı. İkincisi çoğu dilde olmayan direkt referans olayı. Bu yöntemde & operatörü ile bir referans tanımlanır ve ona atanan nesne gibi davranır. Yani aynı nesnenin 2. ismi olur.

int a = 0;
int &b = a;
b = 1;

a 1 oldu.

Link vereyim.http://www.learncpp.com/cpp-tutorial/611-references/

haa anladım. referans ile yaparken de foo(&x) diye çağırıyoruz sanıyodum
void swap2(int &a, int &b)
{
int c = b;
b = a;
a = c;

}
çok iyi oldu çokda güzel oldu sanırım :Dteşekkürler hocam. sizi bu ara çok meşgul ediyorum artık cevap vermiceksiniz diye korkmuyo dğeilim





< Bu mesaj bu kişi tarafından değiştirildi Lord Nibbler -- 31 Ocak 2014; 13:26:31 >

G
11 yıl
Yarbay

Çok iyi oldu da o konuda bir tavsiye vereyim yine de. Şimdiden genel algoritmalara alışırsan ilerde çok rahat edersin. "Bir fonksiyon yazayım 2 tane int i değiş tokuş etsin" değil, "bir algoritma yazayım herhangi 2 nesneyi değiş tokuş etsin" diye düşün. Mesela std::swap için int, double, string ya da kullanıcı tanımlı tür farketmez. STL kütüphanesi bu şekilde çalışır, tip zorlaması yapmaz.


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @GhilleintheMist
L
11 yıl
Yarbay

quote:

Orijinalden alıntı: elektro_gadget

Çok iyi oldu da o konuda bir tavsiye vereyim yine de. Şimdiden genel algoritmalara alışırsan ilerde çok rahat edersin. "Bir fonksiyon yazayım 2 tane int i değiş tokuş etsin" değil, "bir algoritma yazayım herhangi 2 nesneyi değiş tokuş etsin" diye düşün. Mesela std::swap için int, double, string ya da kullanıcı tanımlı tür farketmez. STL kütüphanesi bu şekilde çalışır, tip zorlaması yapmaz.

Sanırım azcık salağım ben Hani düşündüm düşündüm pass by reference ile o dediğini nasıl yapabilirim bulamadım. Hani pass by address ile yapmayı o learncpp.com'da gördüm ama orda da 3. bi parametre ile değişken türünü belirtmek gerekiyordu. swap'ın source kodunu bulmaya çalıştım bişeyler buldum ama anlayabildiğim pek söylenemez



G
11 yıl
Yarbay

Zamanı gelince görürsün acele etme. Aklında olsun diye söyledim genel düşünmek her zaman iyidir. Normalde C'de de bu şekilde düşünmek lazım ama onun olanakları kısıtlı. Herkese void* ile yap diyemiyorsun. Fakat c++ ta böyle silahlar varken kullanmamak olmaz.


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @GhilleintheMist
L
11 yıl
Yarbay

quote:

Orijinalden alıntı: elektro_gadget

Zamanı gelince görürsün acele etme. Aklında olsun diye söyledim genel düşünmek her zaman iyidir. Normalde C'de de bu şekilde düşünmek lazım ama onun olanakları kısıtlı. Herkese void* ile yap diyemiyorsun. Fakat c++ ta böyle silahlar varken kullanmamak olmaz.

function overloading ile yapmayı denedim ama typedef'lerde beceremedim. STL'deki kodunda böyle (T& x) falan var umarım büyüyünce anlarım


Bu mesaja 1 cevap geldi.
L
11 yıl
Yarbay

yine bir gereksiz C++ sorusu yine ben

bu başkaları tarafından oluşturulmuş libraryleri kullanmak için neden kullancağımız compilerde build etmemiz gerekiyor?

bir de SFML kütüphanesini kullanmaya çalışıyorum da. onla ilgili de genel sorularım var. Static ve dynamic library kullanma arasında ne fark var? (library'i build ettiğimde bi -s takılı static dosyalar bir de normal dosyalar çıktı) Dynamic yapınca yanında DLL falan olması gerekiyormuş öyle ki kendim bile DLL'siz çalıştıramadım zaten
Bir de Visual Studio'da SFML projesi yapmak çok uğraştırıcı yani her seferinde kullanılcak lib dosyalarını directoryleri göstermek sıkıcı. Her tutorialde yeni proje açmak da alışkanlığım oldu. Bunları direk ayar ypabilir miyim? Hani Windows Form Application gibi mesela. SFML application diyeyim o benim için herşeyi ayarlasın falan?


Bu mesaja 2 cevap geldi.
T
11 yıl
Binbaşı

c'ye yeni başladım takip ettiğim derslerde basit toplama ve çıkarma programı yaptılar ama ben yazınca çok saçma bir şey oluyor. sayılar ne olursa olsun sonuçlar 2milyonlu bir şey çıkıyor..

#include <stdio.h>
#include <conio.h>
int main ()
{
int sayi1, sayi2, toplama, cikartma;
printf("\nIlk Sayiyi Giriniz..\n");
scanf("%d",&sayi1);
printf("\nIkinci Sayiyi Giriniz..\n");
scanf("%d", & sayi2);
toplama= sayi1+sayi2;
cikartma= sayi1-sayi2;
printf("\nToplam Sonucu %d, toplama\n");
printf("\nCikartma Sonucu %d, cikartma\n");
getch ();
return 0;
}


< Resime gitmek için tıklayın >


Bu mesaja 1 cevap geldi.
Ö
11 yıl
Yüzbaşı

quote:

Orijinalden alıntı: Tom Hagen

c'ye yeni başladım takip ettiğim derslerde basit toplama ve çıkarma programı yaptılar ama ben yazınca çok saçma bir şey oluyor. sayılar ne olursa olsun sonuçlar 2milyonlu bir şey çıkıyor..

#include <stdio.h>
#include <conio.h>
int main ()
{
int sayi1, sayi2, toplama, cikartma;
printf("\nIlk Sayiyi Giriniz..\n");
scanf("%d",&sayi1);
printf("\nIkinci Sayiyi Giriniz..\n");
scanf("%d", & sayi2);
toplama= sayi1+sayi2;
cikartma= sayi1-sayi2;
printf("\nToplam Sonucu %d, toplama\n");
printf("\nCikartma Sonucu %d, cikartma\n");
getch ();
return 0;
}


Merhaba,

Hatanız şu satırlarda:
printf("\nToplam Sonucu %d, toplama\n");
printf("\nCikartma Sonucu %d, cikartma\n");

toplama ve cikartma değişkenlerini bu şekilde yazdıramazsınız. Şu şekilde olması gerek:
printf("\nToplam Sonucu %d\n", toplama);
printf("\nCikartma Sonucu %d\n", cikartma);

Kolay gelsin...





< Bu mesaj bu kişi tarafından değiştirildi özgür beyin -- 2 Şubat 2014; 17:19:02 >
Bu mesaja 1 cevap geldi.
T
11 yıl
Binbaşı

quote:

Orijinalden alıntı: özgür beyin

quote:

Orijinalden alıntı: Tom Hagen

c'ye yeni başladım takip ettiğim derslerde basit toplama ve çıkarma programı yaptılar ama ben yazınca çok saçma bir şey oluyor. sayılar ne olursa olsun sonuçlar 2milyonlu bir şey çıkıyor..

#include <stdio.h>
#include <conio.h>
int main ()
{
int sayi1, sayi2, toplama, cikartma;
printf("\nIlk Sayiyi Giriniz..\n");
scanf("%d",&sayi1);
printf("\nIkinci Sayiyi Giriniz..\n");
scanf("%d", & sayi2);
toplama= sayi1+sayi2;
cikartma= sayi1-sayi2;
printf("\nToplam Sonucu %d, toplama\n");
printf("\nCikartma Sonucu %d, cikartma\n");
getch ();
return 0;
}


Merhaba,

Hatanız şu satırlarda:
printf("\nToplam Sonucu %d, toplama\n");
printf("\nCikartma Sonucu %d, cikartma\n");

toplama ve cikartma değişkenlerini bu şekilde yazdıramazsınız. Şu şekilde olması gerek:
printf("\nToplam Sonucu %d\n", toplama);
printf("\nCikartma Sonucu %d\n", cikartma);

Kolay gelsin...

tamamdır hocam farkettim hatamı teşekkür ederim


Bu mesaja 1 cevap geldi.
Ö
11 yıl
Yüzbaşı

quote:

Orijinalden alıntı: Tom Hagen

quote:

Orijinalden alıntı: özgür beyin

quote:

Orijinalden alıntı: Tom Hagen

c'ye yeni başladım takip ettiğim derslerde basit toplama ve çıkarma programı yaptılar ama ben yazınca çok saçma bir şey oluyor. sayılar ne olursa olsun sonuçlar 2milyonlu bir şey çıkıyor..

#include <stdio.h>
#include <conio.h>
int main ()
{
int sayi1, sayi2, toplama, cikartma;
printf("\nIlk Sayiyi Giriniz..\n");
scanf("%d",&sayi1);
printf("\nIkinci Sayiyi Giriniz..\n");
scanf("%d", & sayi2);
toplama= sayi1+sayi2;
cikartma= sayi1-sayi2;
printf("\nToplam Sonucu %d, toplama\n");
printf("\nCikartma Sonucu %d, cikartma\n");
getch ();
return 0;
}


Merhaba,

Hatanız şu satırlarda:
printf("\nToplam Sonucu %d, toplama\n");
printf("\nCikartma Sonucu %d, cikartma\n");

toplama ve cikartma değişkenlerini bu şekilde yazdıramazsınız. Şu şekilde olması gerek:
printf("\nToplam Sonucu %d\n", toplama);
printf("\nCikartma Sonucu %d\n", cikartma);

Kolay gelsin...

tamamdır hocam farkettim hatamı teşekkür ederim

Rica ederim, yardımcı olabilmiş isem ne mutlu bana.



T
11 yıl
Yarbay

quote:

Orijinalden alıntı: ahmet//

c++
quote:

#include <iostream>
#include <conio.h>
using namespace std;

main(){


int i,j;
char a[][80]={"Pazar","Pazartesi","Sali"};

for(i=0;i<=a[ i ][ 0 ];i++){
cout << "\n";
for(j=0;j<=a[j];j++)
cout << a[j] << "\n";
}

getch();
return 0;

}



for(i=0;i<=a[ i ][ 0 ];i++){
cout << "\n";
for(j=0;j<=a[j];j++)

şu kısmı tam anlayamadım. i bir sayı, dizinin içindeki de harf. nasıl küçük eşit sağlayabiliyoruz? i<=a[0] hangi durumda sağlanıyor, a[0]ın tam sayı değeri mi var?

bir de j<=a[j] diyor. 2 boyutlu bir dizi değil mi, neden tek bölüm var? a[1] deseydi neyi belirtmiş olurdu

Ya bu soruya cevap veren olmamis yada ben kacirdim.

Bir tane karakteri integer ile karsilastirabilirsin. 1 char 1 byte dir, yani 256 tane deger alir.
Cogu programlama dilinde char in encoding i ASCII dir. Yani sayilarin karakter olarak gosterilmesi.

Bu yontem ornegin bir kelimedeki harflerin alfabetik siraya gore diziliminde cok kullanilir cunku ASCII encoding alfanumerik olarak siralanmistir.


Bu mesaja 1 cevap geldi.
A
11 yıl
Onbaşı

ARKADAŞLAR C GRAFİK İŞLEMLERİNDE 2 DAİRE VE BİR DİKTÖRTGENDEN OLUŞAN TOPLU ŞEKLİ YÖN TUŞLARI İLE NASIL HAREKET ETTİREBİLİRİM... ? GRAFİKTE ÇOK YENİ OLDUĞUM İÇİN SORUYORUM



F
11 yıl
Yarbay

Beyler C#'a başladım. C++ bildiğim için çok kolay geliyor şu anda Aritmetik operatörlerdeyim.

Şimdi C++ 'da kullanıcıdan bir veri girmek için "Cin " fonksiyonunu kullanmamız gerekiyordu. Fakat C# 'da böyle bir şey yok sanırım. Yani Console.Read fonksiyonunu değişkene eşitliyoruz sanırım.

Örneğin ;

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string ad,soyad;
Console.Write("Adınızı girin: ");
ad = Console.Read();
Console.Write("Soyadınızı girin : ");
soyad = Console.Read();
Console.WriteLine("Merhaba " +ad+soyad+ "Hosgeldin!");
Console.Readkey();








}
}





Bir de arkadaşlar Visual Studio 2013 Ultimate kullanıyorum ve Ctrl+s ile kaydettikten sonra F5 ile derledikten sonra bu programı yazmadan önce ki program çalışıyor. Anlamadım bu işi





< Bu mesaj bu kişi tarafından değiştirildi Fear of the Dark -- 9 Şubat 2014; 20:44:17 >

C
11 yıl
Yarbay

Integer için Console.Read, string için Console.Readline.

Vs için projene gelip sağ tıkladıktan sonra Set As Startup Project demen yeterli.


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @The Rolling Stones
F
11 yıl
Yarbay

quote:

Orijinalden alıntı: cllyldrm

Integer için Console.Read, string için Console.Readline.

Vs için projene gelip sağ tıkladıktan sonra Set As Startup Project demen yeterli.

Buradaki ReadLine bir satır aşağıya geçmiyor muydu? integer da da kullanamaz mıyız?

Teşekkürler.


Bu mesaja 2 cevap geldi.
L
11 yıl
Yarbay

quote:

Orijinalden alıntı: The Rolling Stones

quote:

Orijinalden alıntı: cllyldrm

Integer için Console.Read, string için Console.Readline.

Vs için projene gelip sağ tıkladıktan sonra Set As Startup Project demen yeterli.

Buradaki ReadLine bir satır aşağıya geçmiyor muydu? integer da da kullanamaz mıyız?

Teşekkürler.

integer'da şöyle kullanabilirsiniz.
int c = int.Parse(Console.ReadLine());


Ayrıca "6 75" şeklinde tek satırda girilen sayıları almak için de
string[] tokens = Console.ReadLine().Split();
int a = int.Parse(tokens[0]);
int b = int.Parse(tokens[1]);

gibi kullanabilirsiniz. Ayrıca "6,75" olursa tam emin dğeilim ama
string[] tokens = Console.ReadLine().Split(","); derseniz olcaktır. Bilyiosunuzdur belki ama bilmeyenler vardır diye yzdım :P


Bu mesaja 1 cevap geldi.
F
11 yıl
Yarbay

quote:

Orijinalden alıntı: GhilleintheMist

quote:

Orijinalden alıntı: The Rolling Stones

quote:

Orijinalden alıntı: cllyldrm

Integer için Console.Read, string için Console.Readline.

Vs için projene gelip sağ tıkladıktan sonra Set As Startup Project demen yeterli.

Buradaki ReadLine bir satır aşağıya geçmiyor muydu? integer da da kullanamaz mıyız?

Teşekkürler.

integer'da şöyle kullanabilirsiniz.
int c = int.Parse(Console.ReadLine());


Ayrıca "6 75" şeklinde tek satırda girilen sayıları almak için de
string[] tokens = Console.ReadLine().Split();
int a = int.Parse(tokens[0]);
int b = int.Parse(tokens[1]);

gibi kullanabilirsiniz. Ayrıca "6,75" olursa tam emin dğeilim ama
string[] tokens = Console.ReadLine().Split(","); derseniz olcaktır. Bilyiosunuzdur belki ama bilmeyenler vardır diye yzdım :P


Hocam yeni başladım daha Parse metodlarını, Split, tokens falan onlara daha gelmedim.


Bu mesaja 1 cevap geldi.
L
11 yıl
Yarbay

quote:

Orijinalden alıntı: The Rolling Stones

quote:

Orijinalden alıntı: GhilleintheMist

quote:

Orijinalden alıntı: The Rolling Stones

quote:

Orijinalden alıntı: cllyldrm

Integer için Console.Read, string için Console.Readline.

Vs için projene gelip sağ tıkladıktan sonra Set As Startup Project demen yeterli.

Buradaki ReadLine bir satır aşağıya geçmiyor muydu? integer da da kullanamaz mıyız?

Teşekkürler.

integer'da şöyle kullanabilirsiniz.
int c = int.Parse(Console.ReadLine());


Ayrıca "6 75" şeklinde tek satırda girilen sayıları almak için de
string[] tokens = Console.ReadLine().Split();
int a = int.Parse(tokens[0]);
int b = int.Parse(tokens[1]);

gibi kullanabilirsiniz. Ayrıca "6,75" olursa tam emin dğeilim ama
string[] tokens = Console.ReadLine().Split(","); derseniz olcaktır. Bilyiosunuzdur belki ama bilmeyenler vardır diye yzdım :P


Hocam yeni başladım daha Parse metodlarını, Split, tokens falan onlara daha gelmedim.

hocam tokens sadece değişken adı özel bişey yok onda :)
Parse ise değişken türü değiştirmede kullanılıyor.
Split ise string'i parametre olarak aldığı karakterleri gördükçe ayırıyor. Varsayılan oalrak " " karakterini gördükçe ayırır. Yani kısaca satırı okuyup boşlukları gördükçe onu string tipinde bir array'a ekledik. Daha sonra da bu stringleri tam sayıya çevirdik. Yazdıklarım da eksiklikler olabilir tam C# bilmiyorum ben de. Yanlışı varsa düzeltir başka biri :)



T
11 yıl
Yarbay

quote:

Orijinalden alıntı: The Rolling Stones

quote:

Orijinalden alıntı: cllyldrm

Integer için Console.Read, string için Console.Readline.

Vs için projene gelip sağ tıkladıktan sonra Set As Startup Project demen yeterli.

Buradaki ReadLine bir satır aşağıya geçmiyor muydu? integer da da kullanamaz mıyız?

Teşekkürler.

C++ sanirim sadece cin ile satir okuyorsunuz.

cin ile satir okursan bosluklarda okumasi biter
getline ile okursan yeni satira gecene kadar(\n gorene kadar) okur.

C# daki ReadLine de C++ daki getline in esitligi.


Bu mesaja 1 cevap geldi.
C
11 yıl
Yüzbaşı

int i,s1,s2,toplam=0; 
printf("iki adet sayi giriniz:"); scanf("%d%d",&s1,&s2);
if(s1<s2)
{
for(i=s1;i<=s2;i++)
{
toplam=toplam+i;
}

}
else if(s1>s2)
{
for(i=s1;s2<=i;i--);
{
toplam=toplam+i;
}
}
else
{
printf("Aynı sayiyi girdiniz.");
}

printf("İki sayi arasindaki sayilarin toplami %d'dir",toplam);




else if bloğu istediğimi yapmıyor. 10 ile 5 arasındaki sayının toplamını 4 buluyor, sorun nerede acaba?


Bu mesaja 1 cevap geldi.