Arama butonu
Bu konudaki kullanıcılar: 3 misafir
4171
Cevap
168576
Tıklama
3
Öne Çıkarma
Cevap: C/C++/C# Sorularınız Buraya. . .(GÜNCEL) (190. sayfa)
H
10 yıl
Yüzbaşı

kardeşim tevfik fikret kzıl örennin Her Yönüyle C kitabı var ben onu okuyorum gayette memnunum sana onu tavsiye ediyorum kitap 635 sayfa




Bu mesajda bahsedilenler: @tvhdmuaz
H
10 yıl
Yüzbaşı

kardeşim C yi Linux ortamında WindowsTan çok daha rahat öğrenirsin Winnws'ta consol uygulamarları türkçe karakter destekli değil fakat Linuxda destekli git Linux kur pc'ne programlama dili Linux'ta örğenilir


Bu mesaja 2 cevap geldi.

Bu mesajda bahsedilenler: @thenewbie
G
10 yıl
Yarbay

quote:

Orijinalden alıntı: Harun2525

kelimeyi tersten mi yazdırmaya çalışıyorsun eğer böyle birşey yapacaksan bunun için bir fonksiyonum var buyur

char *reverse (char dizi[]) 
{
unsigned long int i = 0,i2;
while(dizi[i] != '\0' )
i++;

char rDizi[i + 1];
i--;

for(i2 = 0;dizi[i2] != '\0'; i--,i2++)
rDizi[i2] = dizi[i];

rDizi[i2] = '\0';
return rDizi;
}


Çok kritik hata yapmışsın ama hatanın ne olduğunu söylemeyeyim.

C' de eksiklerini tamamlamadan başka bişeye geçmemeni tavsiye ederim.


Bu mesaja 2 cevap geldi.
T
10 yıl
Yüzbaşı

Sıfırdan başladım, tevfik kızılörenin C kitabı temel midir yani bir bilgi olmadan mı başlamak içindir yoksa bir altyapı olması gerekiyor mu?
Bir de bende windows üzerinden çalışıyorum.Dev-C++ kurdum onunla yapıyorum.Şimdiye kadar sıkıntı çıkmadı.Bu arada flash bellek üzerine linux kurmayı da düşünüyorum, flash bellek almam gerekiyor şu an.
C çalışmak için linux mu kullanmalıyım?




Bu mesajda bahsedilenler: @Harun2525
T
10 yıl
Yüzbaşı

#include<stdio.h> 
#include<conio.h>
int main()

{
int notlar,mevcut=0,toplam=0;
float ortalama;
printf("Notlarinizi Giriniz(Sonlandirmak icin -1 yaziniz):");
scanf("%d",¬lar);

while (notlar!=-1)
{toplam=toplam+notlar;

printf("Notlarinizi Giriniz(Sonlandirmak icin -1 yaziniz):");
scanf("%d",¬lar);
mevcut=mevcut+1;

}
ortalama=(float)toplam/mevcut;
printf("Sinifin ortalamasi %f'dir",ortalama);

getch();
return 0;
}


Merhaba.Ben birşey sormak istiyorum.Şu an kod doğru olarak çalışıyor.Girdiğimiz sayıların ortalamasını alıyor, "-1" yazınca bitiriyoruz sayı girmeyi.
Sorum ise, while'ın içinde ki "mevcut=mevcut+1" kodunu "scanf" ten sonrada yazsak doğru çalışıyor, "toplam=toplam+notlar" kodunun ardından da yazsak doğru çalışıyor.
Benim anlamadığım, ben ilk sayıyı girdikten sonra "while" komutuna geçiyor ve orada bir tane daha sayı giriyorum.Sonrasında ise "mevcut" komutuna geçiyor ve kişi sayısına 1 ekliyor.Yani kişi sayısı 1 oluyor ama ben 2 tane sayı girmiş oluyorum.Bu haldeyken bu kod nasıl doğru çalışıyor?

Çünkü "mevcut" normalde 0, ve 2. sayıyı girdiğim zaman 1 olması gerekiyor.Bu yüzden önce "mevcut=1" dedim bu mantıkla giderek.Ama baktım ki hatalı çıkıyor.
Anlatabilir misiniz acaba?
Çünkü anlamadan geçmek istemiyorum.Eğer geçersem, ezbere biryerlerden bakarak yazıp geçmiş olacağım ve nedenini bilmeyeceğim.Sonrasında ise bir daha karşılazsam yapamayacağım.
Teşekkür ederim şimdiden

Edit:Tamam anladım.Biraz üzerine sakin kafayla düşününce ve sırayla gidince anlaşılıyormuş
Ama yine de kafa karıştırıcı biraz :)





< Bu mesaj bu kişi tarafından değiştirildi tvhdmuaz -- 7 Haziran 2015; 21:39:48 >


Bu mesajda bahsedilenler: @elektro_gadget
T
10 yıl
Yüzbaşı

2 side yok bende kullanmıyorum


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @Harun2525
H
10 yıl
Yüzbaşı

kardeşim bu fonksiyonu okdadar denedim hiçbir hata almadım ALLAH'ını seversen varsa söyle bende meraktan çıldırdım :D bu arada bu fonksiyonun yaptığı şey örneğin "char dizi[6] = "harun" " diye bir dizimiz var biz printf("%s",reverse(dizi)) yazarsak ekranda "nurah" yazısı çıkar.





< Bu mesaj bu kişi tarafından değiştirildi Harun2525 -- 7 Haziran 2015; 21:29:55 >


Bu mesajda bahsedilenler: @elektro_gadget
H
10 yıl
Yüzbaşı

neyse kardeşim sana şunu diyim pc'nde yeteri kadar yer varsa linux'u kur linux öyle Flash belleğe kurayım falan filan geç onları eğer linux'u kuramazsan sıkıntı çekersin çünki windows programlamaya okarda elverişli değil ama widows'tada olur ama consol uygulamaların çok çok büyük ihtimal türkçe karakterler bozuk gözüküt oysaki linuxDa böyle birşey yok bu arada sana şunu diyim code blocs:: mükemmel bir C idesidir bendede dev c++ vardı code Blocks'u örğenince sildim CodeBLocks kullandım eğer derleyiciyi kuramıyorsan o biraz karışık oysaki linux'da tek komutla derleyici kuruluyordu neyse sana sadece şunu diyim windows bir programcıya göre bebe işletim sistemi bilgisayarın mantığı linux'da öğrenilir çünki linux açık kaynaktır winows değil ve birçok şey daha neyse linux'u kesinlikle tavsiye ederim sana sadece onu söyleyeyim




Bu mesajda bahsedilenler: @tvhdmuaz
G
10 yıl
Yarbay

Derleyiciye -Wall parametresi eklersen bütün "warning" leri açar, yani hata olasılığı olan herşeyi sana bildirir. Ben kodu derlediğim zaman derleyici şöyle dedi: "function returns address of local variable". Yani fonksiyon yerel bir değişkenin adresini döndürüyormuş. Yerel değişkenler fonksiyon sonlandıktan sonra, ya da kapsam dışına çıktıktan sonra geçersiz olurlar. Fonksiyonda rDizi yerel değişkenine referans döndürdüğün için kodun geçersizdir. Nitekim bende program direkt çakıldı, hiç çalışmadı.

Bu online derleyicideki çıktısı.https://ideone.com/pN54x0
Gördüğün gibi en altta stdout yazan yerde çıktı boş, yani hiçbirşey yazdırmıyor.

Bu da düzeltilmiş hali, incele.https://ideone.com/WVJNWG





< Bu mesaj bu kişi tarafından değiştirildi Guest-BF8E9B238 -- 7 Haziran 2015; 22:40:18 >
Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @Harun2525
H
10 yıl
Yüzbaşı

hmm peki ben bu fonksiyonu defalarca kullandım ve bu mesajdan sornada defalarca kullandım hiçbir sıkıntı yoktu sanırsam kullandığım işletim sitemiyle alakalı ben linux kubuntu kullanıyorum düzeltilmiş halinede baktım fakat ben terisin yeni bir diziye kopyalayan değl tersini döndüren bir fonksiyon istiyorum ve bunu normal şekilde malloc falan filan değil o şekildede yaparım fakat ben normal şekilde istiyorum bunub kodunu bana yollarsanız sevinirim yani demek istediğim şu bir fonksiyon bir dizi dönüdemezmi dizi döndüren bir fonksiyon nasıl yazılır öeneğin fonksiyon "merhaba" dizisini döndürecek örneğin fonksiyonun içinde char dizi[10] = ""merhaba" diye bir değişkenimiz var foknsiyoni şte bu diziyi döndüremezmi





< Bu mesaj bu kişi tarafından değiştirildi Harun2525 -- 8 Haziran 2015; 0:26:34 >


Bu mesajda bahsedilenler: @elektro_gadget
G
10 yıl
Yarbay

Fonksiyondan dizinin kopyasını döndürmek için diziyi bir nesne içinde depolamak gerekir. Aşağıda Cstr türünde bir nesnemiz var char türünde bir diziyi sarmalıyor. Bu nesneyi döndürdüğün zaman biti bitine kopyalanır. Ben sadece adresini döndüreyim de işlemci fazla uğraşmasın dersen yine aynı hatayı yapmış olursun.

 
#include <stdio.h>
#include <string.h>

#define MAX_UZUNLUK 40

typedef struct {
char kelime[MAX_UZUNLUK];
} Cstr;

Cstr tersle(const char *str)
{
Cstr ters;
char *ref = ters.kelime;

int i = 0, j = strlen(str) - 1;
for(; j >= 0; ++i, --j)
ref[i] = str[j];

ref[i] = 0;

return ters;
}

int main()
{
char isim[20];
scanf("%s", isim);

printf("%s\n", tersle(isim).kelime);

return 0;
}


Bu mesaja 3 cevap geldi.

Bu mesajda bahsedilenler: @Harun2525
F
10 yıl
Er

Merhaba arkadaşlar C de yeniyim #include <isim.h> uzantılı bir dosya acmak ve bunu C kodunda kullanmak istiyorum yardımcı olabilir misiniz.


Bu mesaja 1 cevap geldi.
H
10 yıl
Yüzbaşı

kardeşim gerçekten de mükemmelsin benim kafamı hep şu kemirmiştir C alt seviyeli bir programlama dili bilmiyorum biraz garip olacak ama olsun python programlama dilini duymuşsun biliyorsundur python üst seyiveli bir programlama dili C ise alt seviyeli bir programlama dili C programlama dili python'dan daha güçlü tmm güçlü güçlüsünede ben python'da yaptığım birşeyi C'de yapmaya çalışınca Aklım duruyor Acaba diyorum bunun C'de yapılmasına imkan yokmu fakat python'da yapılıyorsa C'dede yapılır diyorum ama yapamıyorum mesela en basitinden fonksiyon yapmak python'da yazdığım bir fonksiyonu C'de yazmaya çalıştğım zaman fonksiyona bir sürü paramatre eklemem gerekiyor birsürü demeyelimde bazen 1 bazen 2 ,3,4.... vs.. bazen parametreler bile yetersiz kalıyor şimdi sormak istediğim asıl soru şu Python'da yaptığımız herşeyi C'de de yapabilrimiyiz mesela python'un en büyük nimetlerinden biriside "len" fonksiyonu C'de böyle bir fonksiyon yok bazıları "sizeof" diyor ama dinamik dizilerde "sizeof" hiçbirşey yapamıyor umarım derdimi anlatabilmişimdir çünki python'da yaptığım birsürü şeyi C'de yapamayınca artık C'den soğumya başladım




Bu mesajda bahsedilenler: @elektro_gadget
T
10 yıl
Yüzbaşı

Hocam foruma bu soruyu sorduktan sonra 15 dk içinde yaptım çözdüm sorunu ama yine de sağolasınız codeblocks deneyeceğim




Bu mesajda bahsedilenler: @elektro_gadget
T
10 yıl
Yüzbaşı

hocam açık açık söyleyeyim linux hakkında hiç ama hiç bilgim yok onu kavramam vs çok uzun süre alır mı çünkü hocam programlamada aşırı amatörüm facia olmasın bir de


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @Harun2525
T
10 yıl
Yüzbaşı

Hocam ben Netbeans kullanıyorum şimdiye kadar çok basit bir program yazdım. Netbeans'te çalıştırmayı denediğimde BUİLD FAILED (exit value 2, total time: 2s) hatası alıyorum nasıl çözebilirim? İnternette bir çözüm buldum ama o sanırım başka bir derleyiciydi bende olmayan bir dosya vardı o da işe yaramadı sonuç olarak





< Bu mesaj bu kişi tarafından değiştirildi thenewbie -- 8 Haziran 2015; 9:41:50 >


Bu mesajda bahsedilenler: @elektro_gadget , @Harun2525
F
10 yıl
Er

quote:

Orijinalden alıntı: fatikaraca

Merhaba arkadaşlar C de yeniyim #include <isim.h> uzantılı bir dosya acmak ve bunu C kodunda kullanmak istiyorum yardımcı olabilir misiniz.

Konu hakkında fikrin olan varmı ?


Bu mesaja 1 cevap geldi.
G
10 yıl
Yarbay

C' nin amacını anlayamamışsın sen o yüzden sorun yaşıyorsun. C son kullanıcı yazılımları geliştirmek için uygun bir dil değildir. Düşük seviyeli ve yüksek performans gerektiren program parçalarının yazımında kullanılır.

Programlama dilinin kendisi hangi seviyede ise onunla o seviyede uygulama yazmak daha kolaydır. Mesela C ile düşük seviye uygulamaları yazmak kolaydır, çünkü buna göre dizayn edilmiştir. Python gibi script dilleri çok yüksek seviyede yani insana yakın makinadan uzak işlemler için uygundur.

Mesela pencereli butonlu telefon defteri türü bir uygulama lazımsa bunu C ile yazmak hamallıktır, python gayet uygundur. Fakat benim gibi cpu emulatörü falan yazmaya kalkarsan C' nin ne olduğunu o zaman görürsün. Bu seviyedeki uygulamalarda bırak pythonu, java bile çaresiz kalır.

Ayrıca bir uygulamanın tamamını aynı dille yazacaksın diye bişey yok. Hız sorunu olmayan ön plandaki bileşenleri pythonla, arka plandaki kompleks yapıları da C ile kodlamak mümkün Yazdığın python scriptini çalıştıran da yine C ile yazılmış bir yorumlayıcıdır bunu unutma. Sabredip C' de kendini geliştirdikten sonra c++ a geçersen bu sorunların çoğunun aşıldığı göreceksin zaten. C++ yüksek seviyeli bileşenler için de uygundur. Buyur yazdığımız c kodunun c++ versiyonu.

 
#include <iostream>
#include <string>

using namespace std;

string tersle(const string &str)
{
int i = str.length() - 1;
string ters;

for(; i >= 0; --i)
ters += str[i];

return ters;
}

int main()
{
string isim;
cin >> isim;

cout << tersle(isim) << endl;

return 0;
}


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @Harun2525
H
10 yıl
Yüzbaşı

yoo almaz tabikide en fazla 1 ay sen linuxun görünümüden korkuyorsan kde görünümü var onlardan yüklersein sana tavsisyelerim kubuntu,linux mint,vs.. araştır biraz hem linux tarz bir işletim sistemidir kendine göre şekillendirebilrisim güzeldir yani örğenmen hiç zor olmaz eğer gerçekten linux kuramıyrosan windows'tada olur fakat linux'taki gibi rahat değil neyse ide sorunuda çekiyorsan netbeans C için berbat bir idedir başından söyleyeyim hemde ağırdır code blocks:: yükle işini görür fazlasıyla hem c++ içinde en uygun


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @thenewbie
H
10 yıl
Yüzbaşı

hmm peki c++ c ile aynı güçte ve daha fazla şey yapma imkanı sunuyorsa sen neden c++ ile cpu emülatörü yapmaya çalışmıyorsun





< Bu mesaj bu kişi tarafından değiştirildi Harun2525 -- 8 Haziran 2015; 15:58:21 >


Bu mesajda bahsedilenler: @elektro_gadget