->C<- Soru Çözümü

Başlatan Sh4oTT, 22 Ağustos 2015 - 03:48:39

« önceki - sonraki »

0 Üyeler ve 3 Ziyaretçi konuyu incelemekte.

Sh4oTT

Arkadaşlar bir kitab okuyorum ve çözemediğim soruları bu baslik altinda paylasip sizlerden yardim almak istiyorum. Baska arkadaslarin da sormak istedikleri sorular olursa paylasabilirler.

NOT: Kodlari yorum satirlari kullanarak aciklarsaniz sevinirim.


[eklenti yönetici tarafından silindi]

-DıLgEş-


#include <stdio.h>
#include <conio.h>
int main () {
int a[20][20];
int i=0;
int s=0;
int j=0;
printf ("satir sayisini giriniz=");
scanf ("%d",&s);
for (i=0;i<=s;i++) {
for (j=0;j<=i;j++) {
if ((i==j)||(j==0))a[j]=1;
else
a[j]=(a[i-1][j-1])+(a[i-1][j]);
printf ("%d",a[j]);
}
printf ("\n");
}
getch ();
return (0);
}


Kod Alıntıdır...
Her ne kadar üçgen yapmıyor olsa da sen düzeltirsin.
Aşkın; gözü kör, kulağı sağır, dili tutuk, aklı kıttır..! Hayır yani bu halde nasıl herkesi madara ediyor onu çözemedim..

Reverser


//Kaynak: http://www.programmingsimplified.com/c-program-print-pascal-triangle
#include <stdio.h>

long factorial(int);

int main()
{
   int i, n, c;

   printf("Pascal Üçgeni için satır sayısı girin:\n");
   scanf("%d",&n);

   for (i = 0; i < n; i++)
   {
      for (c = 0; c <= (n - i - 2); c++)
         printf(" ");

      for (c = 0 ; c <= i; c++)
         printf("%ld ",factorial(i)/(factorial(c)*factorial(i-c)));

      printf("\n");
   }

   return 0;
}

long factorial(int n)
{
   int c;
   long result = 1;

   for (c = 1; c <= n; c++)
         result = result*c;

   return result;
}


çıktı:


XFCE ROCKS !
Powered by Thunar & XFWM4



Sh4oTT

@Reserver, Hocam tesekkur ederim biraz karısıktı sonunda cozebıldım.
@nurullahisrgan, Hocam tesekkur ederım yalnız (14-15). satirlarda a[ i ] [j] eksik yazılmıs onu soyliyeyim dedim belki baska arkadaslar denerlerse hata almasınlar tekrar tesekkurler.

Bir kaç sorum daha var sizlere yardımlarınız icin tesekkurler :)

1-) "ankara" kelimesini asagıdakı sekılde ekrana yazdıran bır program yazını:
a
an
ank
anka
ankar
ankara
ankar
anka
ank
an
a
İPUCU:"ankara" kelimesindeki harfleri char veri tipi olarak kullanabilirsiniz.


2-) Klavyeden bir harf girdiginizde bu harfi asagıdakı sekılde ekrana yazdıran bır program yazınız:

     Bir harf giriniz: z

z
  z
    z
      z
    z
  z
z


oasln

Alıntı yapılan: ShaoTT - 23 Ağustos 2015 - 17:45:39
1-) "ankara" kelimesini asagıdakı sekılde ekrana yazdıran bır program yazını:
a
an
ank
anka
ankar
ankara
ankar
anka
ank
an
a

#include <stdio.h>
int main (int argc, char *argv[]) {
    const char *ankara = "ankara";
    int i = 1, j = 0;
    while (i) {
        printf("%.*s\n", (j ? i-- : i++), ankara);
        j = (!ankara[i] ? 1 : j);
    }
    return 0;
}
--

Sh4oTT

Hocam int main parantez icine yazdiklarinizi ve const ne oldugunu bilmiyorum :(

bytan

Bahsettiğin kısımları kitabı ilerledikçe göreceksin. Uygulamalar her zaman sadece kendi adını vererek çalıştırılmazlar, bazen uygulamaya parametre girmen de gerekebilir (ki forumdaki bir çok komut buna örnek olarak verilebilir); bu gibi durumlarda kullanacağın terimler oluyorlar.
Const'u ise, programlama veya çalıştırılma sırasında yanlışlıkla değerin değişmesini istemediğin fonksiyon ve değişkenleri sabitlemek için kullanırsın.
Umut en büyük kötülüktür; işkenceyi uzatır. - F.N.


Bir şey ne ise odur, bu kadar. Öyleyse, iki şey arasında bağdaşıklık varsa, bu aralarında iletişim kuruyorlar demek değildir.
"... kavrayışını bilgi ile derinleştir ..."
PF @ ST

lnxdev

konuyla çok alakası yok ama resimdeki tema mı ? Yoksa kde masaüstümü ?

Alıntı yapılan: Reverser - 22 Ağustos 2015 - 13:27:36

Reverser

Xfce ile birlikte adwaita teması.

XFCE ROCKS !
Powered by Thunar & XFWM4



Sh4oTT

Alıntı yapılan: bytan - 24 Ağustos 2015 - 09:50:06
Bahsettiğin kısımları kitabı ilerledikçe göreceksin. Uygulamalar her zaman sadece kendi adını vererek çalıştırılmazlar, bazen uygulamaya parametre girmen de gerekebilir (ki forumdaki bir çok komut buna örnek olarak verilebilir); bu gibi durumlarda kullanacağın terimler oluyorlar.
Const'u ise, programlama veya çalıştırılma sırasında yanlışlıkla değerin değişmesini istemediğin fonksiyon ve değişkenleri sabitlemek için kullanırsın.
Bilgilendirme icin tesekkur ederim :) 2. Soru cozebilen varmi peki?

-DıLgEş-


/*
    Soru 2: Girilen bir harfi aşağıdaki şekilde gösteren C programını yazınız...

    Örnek:
    Bir harf giriniz: z
    z
     z
      z
     z
    z
*/
#include "stdio.h"

int main()
{
    char harf;
    int i, j;

    printf("Bir harf giriniz: ");
    harf=getchar();

    printf("%c\n", harf);

    for(i=0; i<2; i++)
    {
        for(j=0; j<i+1; j++)
        {
            printf(" ");
        }

        printf("%c\n", harf);
    }

    for(i=3; i>0; i--)
    {
        for(j=i; j>=0; j--)
        {
            printf(" ");
        }

        printf("%c\n", harf);
    }

    printf("%c\n", harf);

    return 0;
}


Buyur İkinci soru... Anlamadığın yerler olursa sorabilirsin.
Aşkın; gözü kör, kulağı sağır, dili tutuk, aklı kıttır..! Hayır yani bu halde nasıl herkesi madara ediyor onu çözemedim..

oasln

#11
Biraz daha kısası:

#include <stdio.h>
int main()
{
    char c, i, j, b[] = "   ";
    printf("Bir harf giriniz: "); scanf("%c", &c);
    for (i = 0, j = 1; i >= 0; (j ? i++ : i--), j = (i >= 3 ? 0 : j))
        printf("%.*s%c\n", i, b, c);
    return 0;
}
--

Sh4oTT

#12
Teşekkür ederim arkadaslar. :)

@oasln, hocam

for (i = 0, j = 1; i >= 0; (j ? i++ : i--), j = (i >= 3 ? 0 : j)

koyu renk ıle belırttıgım kısımları acıklayabılırmısınız rıca etsem anlamadıgım kısım j ? i++ : i-- bu kısımda j ne olursa i artırılacak yada azaltılacak orasını anlamadım.

travego0403

Tam incelemedim ama j nin 0 veya farklı olması durumunu kontrol ediyor. 0 false, 0 dan farklı değerler de true ya karşılık geliyor olması lazım.
"Matematik bir dildir ve bu dilde şairlere fizikçi denir." Richard Feynman

avasl

Alıntı yapılan: ShaoTT - 22 Ağustos 2015 - 03:48:39
Arkadaşlar bir kitab okuyorum ve çözemediğim soruları bu baslik altinda paylasip sizlerden yardim almak istiyorum. Baska arkadaslarin da sormak istedikleri sorular olursa paylasabilirler.

NOT: Kodlari yorum satirlari kullanarak aciklarsaniz sevinirim.

Hocam hangi kitap bu?

Sh4oTT

@avasl, Hocam kitabın ismi => G. Murat TAŞBAŞI - İleri C Programlama

avasl

Alıntı yapılan: ShaoTT - 01 Eylül 2015 - 16:29:11
@avasl, Hocam kitabın ismi => G. Murat TAŞBAŞI - İleri C Programlama

Teşekkürler hocam

Sh4oTT

Arkadaslar yeni konu acmak istemedim burdan sorayım dedim en basitinden kullanıcıdan toplama islemini yaptırmak icin 2 sayi alacagımı farzedelim ama kullanıcı yanlıslıkla rakam yerine harf girince program kafayı yiyiyor bunu nasıl engelleyebilirim mesela harflere bastıgı zaman calısmasın yada uyarı verdırsın bunları nasıl yapabılırım veya ben sadece rakam ıstıyorum ama kullanıcı sayı gırıyorsa bunları nasıl engelleyebılırım?

Reverser


XFCE ROCKS !
Powered by Thunar & XFWM4



oasln

scanf'in dönen değerine bakabilirsin. Örneğin bu kod kişi sayı girine kadar devam eder:

#include <stdio.h>
int main (int argc, char *argv[]) {
    char c = 0;
    int sayi;
    printf("Bir sayi giriniz: ");
    while (!scanf("%d", &sayi)) {
        printf("Sayi gir dedim sana: ");
        /* scanf icin girilen bufferi temizle */
        while((c = getchar()) != '\n' && c != EOF);
    }
    return 0;
}
--

Sh4oTT

Mantıgını anladım eyvallah :)

Sh4oTT

Arkadaslar dısarından girilecek n sayısı  0<n<=50 kosulunu saglıyor ıse soyle bır cıktı veren programı yazmamız isteniyor yardım edermısınız
1
2 3
4 5 6
7 8 9 10
.  .   .    .    n  gibi

Ör/
n=6 ise:

1
2 3
4 5 6

-DıLgEş-

Kolaymış, kafamda birşeyler canlandırdım koda dönüştürdükten sonra yazarım..
Aşkın; gözü kör, kulağı sağır, dili tutuk, aklı kıttır..! Hayır yani bu halde nasıl herkesi madara ediyor onu çözemedim..

lnxdev

#23
Alıntı yapılan: ShaoTT - 06 Aralık 2015 - 15:00:54
Arkadaslar dısarından girilecek n sayısı  0<n<=50 kosulunu saglıyor ıse soyle bır *çıktı veren programı yazmamız isteniyor yardım edermısınız
1
2 3
4 5 6
7 8 9 10
.  .   .    .    n  gibi

Ör/
n=6 ise:

1
2 3
4 5 6


#include <stdio.h>

int main(){

int sayi=1, n, sayac = 1, sayi2 = 1;

printf("N'ninci sayiyi giriniz:");
scanf("%d", &n);

while(sayi <= n){

while(sayi <= sayi2){
printf("%d ", sayi++);
if(sayi > n)
break;
}

sayi2 = sayi + sayac;
sayac++;
printf("\n");
}

}


Eğer sayının tamamlanmasını isitiyorsan 2. while döngüsündeki if li kısmı kaldırman yeterli


Sh4oTT