Gönderen Konu: C problemleri  (Okunma sayısı 87838 defa)

Çevrimdışı kelebek

  • Admin
  • Üye
  • İleti: 772
    • Profili Görüntüle
    • it's me
Ynt: C problemleri
« Yanıtla #30 : 30 Ara 2009, 00:40:52 Çrş »
Bende getch den dolayı hata verdi.
Derleme sırasında hata alıyorsan, hata çıktısından hatanın nerede olduğunu anlayabilirsin.
internet canavarı:
P3 700Mhz, 128MB Sd Ram, Trio 3D, 200GB hdd, Debian GNU/Linux lenny/sid 7x24x365:)
http://blog.yollu.com

Çevrimdışı hitsumo

  • Üye
  • İleti: 12
    • Profili Görüntüle
    • sıcak çikolata
Ynt: C problemleri
« Yanıtla #31 : 30 Ara 2009, 02:53:50 Çrş »
evet derleme sırasında hata alıyorum.
biraz araştırmadan sonra http://en.wikipedia.org/wiki/Getch şöyle birşey buldum
burada <conio.h> kütüphanesi gerekli diyor kütüphaneyi ekledim ama bu sefer conio.h bulunamadı falan dedi bu sefer http://tr.wikipedia.org/wiki/C_(programlama_dili) şöyle birşey buldum
burada <conio.h> kütüphanesinin sadece windows için olduğu yazıyor.  linux için <curses.h> veya <ncurses.h> kütüphaneleri varmış. onları ekleyerek derlemeyi denedim.
bu sefer

Kod: [Seç]
/tmp/ccs31mVi.o: In function `main':
dowhile2.c:(.text+0x6b): undefined reference to `stdscr'
dowhile2.c:(.text+0x73): undefined reference to `wgetch'
collect2: ld returned 1 exit status
hatasını aldım.
Ardından gcc ye -lncurses ekleyerek denedim derledi ama sayıları girip entere basınca işlemleri yapıp kapanıyor program devam edip etmeme sorusunu yok sayıyor.
« Son Düzenleme: 04 Oca 2010, 01:52:43 Pzt Gönderen: hitsumo »

Çevrimdışı bahadirhtp

  • Üye
  • İleti: 262
    • Profili Görüntüle
Ynt: C problemleri
« Yanıtla #32 : 30 Ara 2009, 12:02:35 Çrş »
Hangi terim fonsiyonlar ıcın hangı kutuphanelerı kullanmam gerektıgını yazan bı kaynak var mı?

Çevrimdışı kelebek

  • Admin
  • Üye
  • İleti: 772
    • Profili Görüntüle
    • it's me
Ynt: C problemleri
« Yanıtla #33 : 30 Ara 2009, 13:20:45 Çrş »
internet canavarı:
P3 700Mhz, 128MB Sd Ram, Trio 3D, 200GB hdd, Debian GNU/Linux lenny/sid 7x24x365:)
http://blog.yollu.com

Çevrimdışı gurkantuzun

  • Üye
  • İleti: 1
    • Profili Görüntüle
Ynt: C problemleri
« Yanıtla #34 : 03 Oca 2010, 17:34:09 Paz »
herkese merhaba,benim çarşamba günü sınavım var da C de yazılmış kodların işlem basamaklarını anlamak da zorluk çekiyorum yardımcı olursanız sevinirim. örneğin ;buradaki mantığı çözemedim anlatırsanız çok müteşekkil olurum.Şimdiden teşekkürler.
/* Fibonacci sayilarini ekrana yazar */

#include<stdio.h>
#include<conio.h>
int main( void )
{
   int a = 0; /* a[n]   */
   int b = 1; /* a[n+1] */
   int c;     /* a[n+2] */
   int n;
   int i;
   
   printf("Fibonacci serisi kacinci elemana kadar yazilsin> ");
   scanf("%d", &n);
   
   for( i = 1; i <= n ; i++ ) {
      printf( "%4d. Eleman: %d\n", i, a );
      c = a + b;
      a = b;
      b = c;
   }
   
   getch();
    return 0;
}

Çevrimdışı bahadirhtp

  • Üye
  • İleti: 262
    • Profili Görüntüle
Ynt: C problemleri
« Yanıtla #35 : 09 Oca 2010, 20:30:00 Cts »
bu programın ne işe yaradığını çözemedim???

Kod: [Seç]
#include <stdio.h>
int main (void( {
if ((c= getchchar() ) !=EOF) {
main)
printf("%c \n",c);
}
return 0;
}

Çevrimdışı kelebek

  • Admin
  • Üye
  • İleti: 772
    • Profili Görüntüle
    • it's me
Ynt: C problemleri
« Yanıtla #36 : 10 Oca 2010, 02:34:43 Paz »
kodu doğru kopyalayamadın sanırım :)

EOF dosya sonu anlamına geliyor. dosya işlemleriyle uğraşırken işine yarar.
internet canavarı:
P3 700Mhz, 128MB Sd Ram, Trio 3D, 200GB hdd, Debian GNU/Linux lenny/sid 7x24x365:)
http://blog.yollu.com

Çevrimdışı Ases

  • Admin
  • Üye
  • İleti: 594
    • Profili Görüntüle
    • Kişisel Sitem
Ynt: C problemleri
« Yanıtla #37 : 10 Oca 2010, 02:40:59 Paz »
Yanlış bilmiyorsam EOF sadece dosya sonu olarak kullanılmıyor. "\0" gibi bir karşılığı vardı ASCII de. Evet kodlar biraz çapraşık duruyor. Bu EOF olayı da stdin arabelleğinden okuma yaparken de kullanılıyor sanırım. Emin değilim ama C deki ayrıntıları günden günde unutuyorum.
http://www.canbu.info - Benim blogum, benim fikirlerim, benim dünyam...
----------------------------------------------------------------------------
There is a crack in everything, that's where the light gets in.

Çevrimdışı kelebek

  • Admin
  • Üye
  • İleti: 772
    • Profili Görüntüle
    • it's me
Ynt: C problemleri
« Yanıtla #38 : 10 Oca 2010, 04:47:12 Paz »
"/0" string sonlandırma karakteri. Bi sitringin bittiğini bu karakteri görünce anlıyoruz. Sayısal değeri 0.
stdin zaten bir dosya olarak işlem gördüğü için EOF kullanılabiliyor. Tam olarak neye karşılık geldiğini bilmiyorum, biraz kurcaladım fakat bulamadım. Ama "/0" eşit değil.

Kod: [Seç]
#include <stdio.h>

int main ( void ) {
  if(EOF == '\0') {
    printf("True");
  } else {
    printf("False");
  }

  return 0;
}

Kod: [Seç]
kelebek@PIS-ii:~$ gcc eof.c
kelebek@PIS-ii:~$ ./a.out
False
internet canavarı:
P3 700Mhz, 128MB Sd Ram, Trio 3D, 200GB hdd, Debian GNU/Linux lenny/sid 7x24x365:)
http://blog.yollu.com

Çevrimdışı bahadirhtp

  • Üye
  • İleti: 262
    • Profili Görüntüle
Ynt: C problemleri
« Yanıtla #39 : 11 Oca 2010, 13:40:31 Pzt »
yok yanlıs yazım cunku defterden gectım ama bızım hocanın cınslıklerınden bırı sanırım (:

Çevrimdışı Ases

  • Admin
  • Üye
  • İleti: 594
    • Profili Görüntüle
    • Kişisel Sitem
Ynt: C problemleri
« Yanıtla #40 : 11 Oca 2010, 14:53:09 Pzt »
Yanlış yazım elbette var. Bu şekilde parantez açıp kapama sadece C de ya da programcılıkta değil hiç bir işlemde yapılmaz. Bir küme parantezinin içinde normal parantez açıp sonra küme parantezini kapatıp ardından normal parantezi kapatmak kaba tabirle bile bile lades olmaktır. Yine de hocadır belki farklı bir bildiği vardır diye compilerda da denedim syntax hatası veriyor.

Sen deftere yanlış geçirmiş olabilirsin tahtadan. Aksi takdirde (biraz saygısızlık olacak ama) hocana yazdığı kodlarda dikkat etmesi gerektiğini söyle. Özellikle derste yazdıklarının çalışmıyor olması, öğrencilerin de bunları çözmeye çalışması çok hoş değil.
http://www.canbu.info - Benim blogum, benim fikirlerim, benim dünyam...
----------------------------------------------------------------------------
There is a crack in everything, that's where the light gets in.

Çevrimdışı bahadirhtp

  • Üye
  • İleti: 262
    • Profili Görüntüle
Ynt: C problemleri
« Yanıtla #41 : 11 Oca 2010, 17:50:41 Pzt »
hocaya bunu soylersem dersten gecmem ne derece mumkun our bılmıyorum açıksası (:
bu arada yeni bir sorum var

Kod: [Seç]
#!/bin/sh
 declare -a baha
baha=(1 2 3 4 5 baha)
echo "${baha[3]}"
echo "${baha[*]}"                 
echo "${#baha[*]}"
((num=$#))
for (i=0;(i<=num);i++); do
echo $i

  /* echo'ların gorunmesını ıstedım belkı bırının işene yarar */


her hangi bi array actım ve istedigim sey array'in icindekılerı dongu sayesınde kullanabılmek
ornegın karakter harıc hepsının sırayla farkını almak ıstıyorum yada toplam.
aslında toplam ıcın soyle bısey yazdım calısıyor
Kod: [Seç]
#!/bin/sh
 for e in $*; do
((total = total + $e))
done
echo $total
fakat bunu array ile nasıl bırlestırecegımı cozemedım (:

Çevrimdışı bahadirhtp

  • Üye
  • İleti: 262
    • Profili Görüntüle
Ynt: C problemleri
« Yanıtla #42 : 11 Oca 2010, 18:44:40 Pzt »
Kod: [Seç]
#include <stdio.h>
int main()
{
int a[5]={1,2,3,4,5};
int *pa=&a[3];
pa++;
pa-=3;
pa+=4;
printf ("%d \n",*pa);
return 0;
}

format ‘%d’ expects type ‘int’, but argument 2 has type ‘int *’
bu hatanın sebebi nedir?


Kod: [Seç]
#include <stdio.h>
int main( void )
{
   int a;        /* a is an integer */
   int *aPtr;    /* aPtr is a pointer to an integer */
   a = 7;
   aPtr = &a;    /* aPtr set to address of a */
   printf( "The address of a is %p"
           "\nThe value of aPtr is %p", &a, aPtr );
   printf( "\n\nThe value of a is %d"   
           "\nThe value of *aPtr is %d", a, *aPtr );
   printf( "\n\nShowing that * and & are complements of "
           "each other\n&*aPtr = %p"   
           "\n*&aPtr = %p\n", &*aPtr, *&aPtr );
   return 0; /* indicates successful termination */
} /* end main */

boyle bi orneğe dayanarak yaptım bunu ve nedense bende hata verdi?

daha net bi gosterım ıcın
Kod: [Seç]
printf( "\n\nThe value of a is %d"   
           "\nThe value of *aPtr is %d", a, *aPtr );
« Son Düzenleme: 11 Oca 2010, 18:50:48 Pzt Gönderen: bahadirhtp »

Çevrimdışı Ases

  • Admin
  • Üye
  • İleti: 594
    • Profili Görüntüle
    • Kişisel Sitem
Ynt: C problemleri
« Yanıtla #43 : 11 Oca 2010, 18:49:47 Pzt »
printf in içini *pa ya da &pa olarak değiştirmen lazım. Emin olamadım. Sonuç olarak da 5 alacaksın sanırım.
http://www.canbu.info - Benim blogum, benim fikirlerim, benim dünyam...
----------------------------------------------------------------------------
There is a crack in everything, that's where the light gets in.

Çevrimdışı kelebek

  • Admin
  • Üye
  • İleti: 772
    • Profili Görüntüle
    • it's me
Ynt: C problemleri
« Yanıtla #44 : 12 Oca 2010, 02:43:05 Sal »
hocaya bunu soylersem dersten gecmem ne derece mumkun our bılmıyorum açıksası (:
bu arada yeni bir sorum var

Kod: [Seç]
#!/bin/sh
 declare -a baha
baha=(1 2 3 4 5 baha)
echo "${baha[3]}"
echo "${baha[*]}"                
echo "${#baha[*]}"
((num=$#))
for (i=0;(i<=num);i++); do
echo $i

  /* echo'ların gorunmesını ıstedım belkı bırının işene yarar */


her hangi bi array actım ve istedigim sey array'in icindekılerı dongu sayesınde kullanabılmek
ornegın karakter harıc hepsının sırayla farkını almak ıstıyorum yada toplam.
aslında toplam ıcın soyle bısey yazdım calısıyor
Kod: [Seç]
#!/bin/sh
 for e in $*; do
((total = total + $e))
done
echo $total
fakat bunu array ile nasıl bırlestırecegımı cozemedım (:

Shell script sorularını başka bir başlık altında sorarsan daha iyi olur.
Bu başlığın çorba olmaması için cevabı vermiyorum :P

Soruyu başka başlığa taşırsan, orada cevabını verip bu mesajı silerim:) en azından bu başlık biraz daha temiz olur.

Kod: [Seç]
#include <stdio.h>
int main()
{
int a[5]={1,2,3,4,5};
int *pa=&a[3];
pa++;
pa-=3;
pa+=4;
printf ("%d \n",*pa);
return 0;
}

Bu kod bende hata vermedi, umduğum gibi çalıştı. 5. indexe gitti için saçma bir değer döndürdü.
Kod: [Seç]
pa+=2 olarak değitirince 4 verdi.


ikinci kodda hata vermedi.
çıktısı:
Kod: [Seç]
The address of a is 0xbfebebe0
The value of aPtr is 0xbfebebe0

The value of a is 7
The value of *aPtr is 7

Showing that * and & are complements of each other
&*aPtr = 0xbfebebe0
*&aPtr = 0xbfebebe0
internet canavarı:
P3 700Mhz, 128MB Sd Ram, Trio 3D, 200GB hdd, Debian GNU/Linux lenny/sid 7x24x365:)
http://blog.yollu.com