Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
4171
Cevap
168520
Tıklama
3
Öne Çıkarma
Cevap: C/C++/C# Sorularınız Buraya. . .(GÜNCEL) (41. sayfa)
M
13 yıl
Onbaşı

ben c++ da dosyaya mesela numara isim[10] soyad[] tanımlanıyor ya mesela ismi emine esra bunu birleşik değil arada boşluk bırakarak nasıl yazar?


Bu mesaja 1 cevap geldi.
G
13 yıl
Yüzbaşı

quote:

Orijinalden alıntı: jervis

merhaba herkese iyi geceler 1 adet sorum var yardım edermisiniz...
***gibi bir asal sayı bulma kodu yazdım ama mesela koda 9 yazdığımda 9 u almıyor 9 u nasıl ekliyebilirm herkese teşekkürler..***


Bir: 9 asal sayı değildir.

İki: for(u=2; u<=k ; u++)

Üç: Asal sayı kontrolü için yarısından bir eksiğine kadar bölmen yeterli
for(c=2 ; c<(u/2); c++)
Dört: Kodu yapıştırırken code tagı içinde yapıştırırsan okunması daha kolay olur.

Beş : scanf olmayan hali.http://codepad.org/VuTlAkx4



J
13 yıl
Binbaşı

quote:

Orijinalden alıntı: TeaTone

Belki merak eden olmuştur. Düzelttim yazdığım kodu.
Buyrun inceleyin.
 

#include <stdio.h>
#include <conio.h>


int main()
{
int a=12,b=2,c;
char x='W';
char y='Q';

do
{
printf("Islemi seciniz..: ");
x=getch();
switch (x)
{
case '+':
c=a+b;
printf("%d\n",c);
break;
case '-':
c=a-b;
printf("%d\n",c);
break;
case '*':
c=a*b;
printf("%d\n",c);
break;
case '/':
c=a/b;
printf("%d\n",c);
break;
default:
printf("Yalnis deger girdiniz..\n");

}

printf("Devam etmek istiyor musunuz? E/H\n");
y=getch();
}
while (y!='h');

}


sizin kodlailgili bişey soracağım atıyorum + dedik iki sayıyı girdik sonuç verince aşağıda yine menü çıkmasını nasıl sağlarız?
cevap=4 yazıp aşağıda hemen tekrar menü çıksa?nasıl olur kod?şimdiden teşekkürler...


Bu mesaja 1 cevap geldi.
G
13 yıl
Yüzbaşı

quote:

Orijinalden alıntı: minanur

ben c++ da dosyaya mesela numara isim[10] soyad[] tanımlanıyor ya mesela ismi emine esra bunu birleşik değil arada boşluk bırakarak nasıl yazar?


Ne yapmaya çalıştığını kod ile gösterirsen daha iyi olur.

Anladığım bu :

char isim[11] = "Emine Esra";
char soyisim[6] = "Bulut";

std::cout << isim << " " << soyisim << std::endl;



G
13 yıl
Yüzbaşı

quote:

Orijinalden alıntı: OgzKC

Arkadaşlar aşağıda eşkenar dörtgen çizen for'lu bi kod var ben bunun kenar uzunlugu demeylimde ortadaki en uzun seri yıldız sayısını kullanıcadan almak istiyorum ne yapmalıyım birde bu kodu bana biraz acıklayacak olan varmı foru biliyorum ama karışık geldi kod?
#include<stdio.h> 
int main( void )
{
int i, j;

for(i = 1; i <= 5; i++) {
for(j = 1; j <= 9; j++)
if((j <= (9 - (2*i - 1))/2) || (j > (i + 4)))
printf(" ");
else
printf("*");

printf("\n");
}
for(i = 4; i >= 1; i--){
for(j = 1; j <= 9; j++)
if((j <= (9 - (2*i - 1))/2) || (j > (i + 4)))
printf(" ");
else
printf("*");

printf("\n");
}

return 0;
}


Bir sayfa önde piramid ve ters piramid için yazılmış daha basit yazılmış C++ kodu bulabilirsin.

Bunu değiştirmek için şöyle bir şey yapabilirsin.

#include<stdio.h> 
#include <math.h>

int main( void )
{

int i, j;
float MAX_L = 15.0f;
int HALF_PLUS_1 = (int) ceil(MAX_L/2);
int HALF_MINUS_1 = (int) floor(MAX_L/2);

printf("%d %d\n",HALF_PLUS_1,HALF_MINUS_1);
for(i = 1; i <= HALF_PLUS_1; i++) {
for(j = 1; j <= MAX_L; j++)
if((j <= (MAX_L - (2*i - 1))/2) || (j > (i + HALF_MINUS_1)))
printf(" ");
else
printf("*");

printf("\n");
}
for(i = HALF_MINUS_1; i >= 1; i--){
for(j = 1; j <= MAX_L; j++)
if((j <= (MAX_L - (2*i - 1))/2) || (j > (i + HALF_MINUS_1)))
printf(" ");
else
printf("*");

printf("\n");
}

return 0;
}


MAX_L değerini kullanıcıdan artık scanf vesaire ile alabilirsin.



T
13 yıl
Yüzbaşı

quote:

Orijinalden alıntı: jervis




Demek istediğin bu mu?
 
#include <stdio.h>
#include <conio.h>


int main()
{
int a=12,b=2,c;
char x='W';
char y='Q';

do
{
printf("Islemi seciniz..: ");
x=getch();
switch (x)
{
case '+':
c=a+b;
printf("%d\n",c);
break;
case '-':
c=a-b;
printf("%d\n",c);
break;
case '*':
c=a*b;
printf("%d\n",c);
break;
case '/':
c=a/b;
printf("%d\n",c);
break;
default:
printf("Yalnis deger girdiniz..\n");

}

}
while (true);

}





< Bu mesaj bu kişi tarafından değiştirildi TeaTone -- 24 Kasım 2012; 1:35:02 >
Bu mesaja 1 cevap geldi.
C
13 yıl
Binbaşı

şöle bir ödevim var fikir verirsniz başlamak için sevinirim

1 0 1 0 1
1 0 1 1 1
1 1 1 0 0
0 0 1 0 0
0 0 1 1 1

böyle bir matris girildiğiden a(1,1) den a(n,n) e giden yolu bulan bi algoritma yazmam gerek burda n=5. sağa sola haraket edebiliyoruz sadece(labirent gibi).Mesela bu örnekde cevap a11-a21-a31-a32-a33-a43-a53-a54-a55 olucak

c-c# farketmiyor





< Bu mesaj bu kişi tarafından değiştirildi companjera -- 24 Kasım 2012; 22:17:03 >
Bu mesaja 2 cevap geldi.
W
13 yıl
Çavuş

merhaba forum ahalisi.
bir ödevim var.otelde rezervasyon programı yazmam lazım.şu ana kadar fazla bir şey görmedik derste,basit şeyler aslında.ama bu konuda spesifik bir örnek olmadı.
3 çeşit oda tipi var.L(lake view) P(Pool day) G(garden view)
string bilmiyoruz bu arada.benim charla bu 3 ü input olarak girmem lazım.ama yapamıyorum.daha doğrusu char'ı öğrendim ama altta if'te yazarken nasıl yazacağım bilmiyorum. oda tipi L ise fiyat 100 olur şeklinde output olması gerekiyor.

char roomtype1='P'; 
char roomtype2='L';
char roomtype3='G';
System.out.println("What kind of room do you want?")
if(


if kısmına ne yazmam lazım ? şimdiden teşekkürler.



G
13 yıl
Yüzbaşı

quote:

Orijinalden alıntı: companjera

şöle bir ödevim var fikir verirsniz başlamak için sevinirim

1 0 1 0 1
1 0 1 1 1
1 1 1 0 0
0 0 1 0 0
0 0 1 1 1

böyle bir matris girildiğiden a(1,1) den a(n,n) e giden yolu bulan bi algoritma yazmam gerek burda n=5. sağa sola haraket edebiliyoruz sadece(labirent gibi).Mesela bu örnekde cevap a11-a21-a31-a32-a33-a43-a53-a54-a55 olucak

c-c# farketmiyor

http://www.oyungelistirici.org/wiki/index.php?title=Yeni_Ba%C5%9Flayanlar_%C4%B0%C3%A7in_A*_Yol_Bulma_Algoritmas%C4%B1(%C3%87eviri)

http://en.wikipedia.org/wiki/Pathfinding



O
13 yıl
Onbaşı

merhaba programcı arkadaşlarım lise 2 öğrencisiyim bilişim teknolojileri bölümünde okuyorum c# programlama dilini öğreniyoruz ve ben basit bir not hesaplama programı geliştirdim fakat bir sıkıntım var 3 yazılı 1 sözlü notunun ortalmaasını alıp geçti kaldı vs. textboxlara bilgi giriliyor.Ancak şöyle bi sorunum var şimdi 3 yazılı 1 sözlü girilecek şekilde ayarladım ama 4 textboxtan 1 tanesi boş bırakılınca prog. hata veriyor.Yeni olduğum için bu sorunu henüz aşamadım yardımcı olurmusunuz



{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
MessageBox.Show("Hoş Geldiniz :)");
MessageBox.Show("Bu basit bir not hesaplama programıdır.");
MessageBox.Show("Coding By Onur");

}

private void button1_Click(object sender, EventArgs e)
{
int yazili1 = Convert.ToInt32(textBox1.Text);
int yazili2 = Convert.ToInt32(textBox2.Text);
int yazili3 = Convert.ToInt32(textBox3.Text);
int sozlu = Convert.ToInt32(textBox4.Text);
int ort = (yazili1 + yazili2 + yazili3 + sozlu) / 4;
string durum = (textBox6.Text);
textBox5.Text = ("" + ort);

if (ort >= 0 && ort <= 24)
{
textBox6.Text = ("0 = Kaldı :(");
}
if (ort >= 25 && ort <= 44)
{
textBox6.Text = ("1 = Kaldı :(");
}
if (ort >= 45 && ort <= 54)
{
textBox6.Text = ("2 = Geçti");
}
if (ort >= 55 && ort <= 69)
{
textBox6.Text = ("3 = Orta");
}
if (ort >= 70 && ort <= 84)
{
textBox6.Text = ("4 = İyi");
}
if (ort >= 85 && ort <= 100)
{
textBox6.Text = ("5 = Pekiyi :)");
}

}


Bu mesaja 1 cevap geldi.
C
13 yıl
Binbaşı

quote:

Orijinalden alıntı: OnrAvc56

merhaba programcı arkadaşlarım lise 2 öğrencisiyim bilişim teknolojileri bölümünde okuyorum c# programlama dilini öğreniyoruz ve ben basit bir not hesaplama programı geliştirdim fakat bir sıkıntım var 3 yazılı 1 sözlü notunun ortalmaasını alıp geçti kaldı vs. textboxlara bilgi giriliyor.Ancak şöyle bi sorunum var şimdi 3 yazılı 1 sözlü girilecek şekilde ayarladım ama 4 textboxtan 1 tanesi boş bırakılınca prog. hata veriyor.Yeni olduğum için bu sorunu henüz aşamadım yardımcı olurmusunuz



{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
MessageBox.Show("Hoş Geldiniz :)");
MessageBox.Show("Bu basit bir not hesaplama programıdır.");
MessageBox.Show("Coding By Onur");

}

private void button1_Click(object sender, EventArgs e)
{
int yazili1 = Convert.ToInt32(textBox1.Text);
int yazili2 = Convert.ToInt32(textBox2.Text);
int yazili3 = Convert.ToInt32(textBox3.Text);
int sozlu = Convert.ToInt32(textBox4.Text);
int ort = (yazili1 + yazili2 + yazili3 + sozlu) / 4;
string durum = (textBox6.Text);
textBox5.Text = ("" + ort);

if (ort >= 0 && ort <= 24)
{
textBox6.Text = ("0 = Kaldı :(");
}
if (ort >= 25 && ort <= 44)
{
textBox6.Text = ("1 = Kaldı :(");
}
if (ort >= 45 && ort <= 54)
{
textBox6.Text = ("2 = Geçti");
}
if (ort >= 55 && ort <= 69)
{
textBox6.Text = ("3 = Orta");
}
if (ort >= 70 && ort <= 84)
{
textBox6.Text = ("4 = İyi");
}
if (ort >= 85 && ort <= 100)
{
textBox6.Text = ("5 = Pekiyi :)");
}

}

if(textbox1.Text==null){int yazili1==0;}

gibi bir koşul koyarsan textbox boşken sıfır alır o değeri ya da başka birşeyde yapabilirsin o değer girilmemişse


Bu mesaja 2 cevap geldi.
W
13 yıl
Yüzbaşı

quote:

Orijinalden alıntı: garui

quote:

Orijinalden alıntı: welowis

C de piramit yapmanin mantigi nedir for dongusuyle?
Mesela dik ucgen seklinde piramit. Tanimladigimiz i ve j jin satir sutun olup olmadigini nasil anlicam iyicene kafam karisti..

Nasıl kullandığına bağlı hangisi satır hangisi sütun ? Kodun nerede ?

Dik üçgen çizdirmek içinde her zaman i,j gerekmiyor. Hele iç-içe for döngüsü de gerekmiyebilir. Burada düşünce mantığın önemli "Nasıl ekrana dik üçgen bastırırım ?"
Aşağıda 4 dik üçgen var. Ne iç-içe for döngüsü ne j var. pyramid_floor değerini değiştirdikçe dik üçgenleri büyütüp küçültebilirsin. pyramid_floordan büyük olmamak kaydıyla, pyramid_top büyütürsen dik yamuk elde edersin.

Mantık senin mantığın ve düşünce tarzın. Ben bir şeyi sadece bir yolla yaparım diye bir şey çoğu zaman yok. Aşağıdaki kod i ve j ile yine tek for üzerinde de dönebilir ama daha kompleks olur.

Kodunu göster ona göre nere satır nere sütün söyliyelim. (Evet direk kullanma diye C++ )

/* DH GaRUi */ 
#include <iostream>
#include <iomanip>

#define pyramid_floor 10
#define pyramid_top 1

int main()
{

int i;

for (i=pyramid_top; i<=pyramid_floor ; ++i)
{
cout << setw(i) << setfill('*') << '*' << endl;
}

cout << endl;

for (i=pyramid_floor; i>=pyramid_top ; --i)
{
cout << setw(i) << setfill('*') << '*' << endl;
}

cout << endl;

for (i=pyramid_top; i<=pyramid_floor; ++i)
{
if(i<pyramid_floor) { cout << setw(pyramid_floor-i) << setfill(' ') << ' ';}
cout << setw(i)<< setfill('*') << '*' << endl;
}

cout << endl;

for (i=pyramid_floor; i>=pyramid_top ; --i)
{
if(i<pyramid_floor) { cout << setw(pyramid_floor-i)<< setfill(' ') << ' ';}
cout << setw(i) << setfill('*') << '*' << endl;
}


return 0;
}


 
*
**
***
****
*****
******
*******
********
*********
**********

**********
*********
********
*******
******
*****
****
***
**
*

*
**
***
****
*****
******
*******
********
*********
**********

**********
*********
********
*******
******
*****
****
***
**
*


Ekleme: Nasıl normal piramit yapmışlar diye baktığımda 3 for iç-içe görmüştüm. Kodun kompleks yapısı iyice artıyor. Aşağıda 3 for ve 3 normal piramit var. Birinde j bile yok.

 
/* DH GaRUi */
#include <iostream>
#include <iomanip>

#define pyramid_floor 11
#define pyramid_top 1
#define pyramid_increase 2

int main()
{

int i;

for (i=pyramid_top; i<=pyramid_floor ; i+=pyramid_increase)
{
cout << setw(pyramid_floor-i/pyramid_increase)<< setfill(' ') << ' ' << setw(i) << setfill('*') << '*' << endl;
}

cout << endl;

int j;

for (i=pyramid_top, j=pyramid_floor/pyramid_increase; i<=pyramid_floor ; i+=pyramid_increase, --j)
{
if(i<pyramid_floor ) { cout << setw(j)<< setfill(' ') << ' ';}
cout << setw(i) << setfill('*') << '*' << endl;
}

cout << endl;

for (i=pyramid_floor, j=pyramid_top/pyramid_increase; i>=pyramid_top ; i-=pyramid_increase, ++j)
{
if(i<pyramid_floor ) { cout << setw(j)<< setfill(' ') << ' ';}
cout << setw(i) << setfill('*') << '*' << endl;
}

return 0;
}


 
*
***
*****
*******
*********
***********

*
***
*****
*******
*********
***********

***********
*********
*******
*****
***
*



Geç yazdığım için özür dilerim sınavlardan dolayı.

Kodu biz kendimiz yazacakmışız ama kod verilse de şekli çıkartamam zaten. Resimler bize gösterilen kısım. Pyramid floor filan görmedik biz :(


quote:

Orijinalden alıntı: MrOwl

quote:

Orijinalden alıntı: welowis

C de piramit yapmanin mantigi nedir for dongusuyle?
Mesela dik ucgen seklinde piramit. Tanimladigimiz i ve j jin satir sutun olup olmadigini nasil anlicam iyicene kafam karisti..

Esasında çok basit. Arkadaşımız yardımcı olacak çok güzel bir örnek vermiş. Ben de pratik bir yöntem söyleyeyim.

Kareli bir defterin varsa, eğer yoksa kendin çizebilirsin, çizmek istediğin üçgeni çiz. Sonra köşe noktalarını(köşeden kastım üçgenin kenarlarının karelerin kesişim noktasından geçtiği yerler) belirle. Orijini sol üst olarak belirleyerek(çünkü çıktı bu noktadan başlıyor) noktaların koordinatlarını yaz fakat pozitif değerlerle yaz. Noktaları belirledikten sonra aralarında matematiksel bir bağlantı olduğunu göreceksin. Bu sana kullanmak gereken algoritmanın en basit şekilde mantığını verir.

Kolay gelsin.


dediklerinizi yaptıktan sonra bunu kodlamada nasıl dönüştüreceğim peki ?
1. snıftayım ama mantığını öğrenmek istiyorum ezberden gitmek yerine. Yani şu şekli çıkart denildiğinde takılmak yerine kodu ben çıkartayım istiyorum.


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

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

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

Önerebileceğiniz kitap var mı ? Ya da video eğitimi mi bakayım netten ? Ne yapacağımı şaşırdım hocada iş yok, kendim halletmeye çalışıcam.


Bu mesaja 2 cevap geldi.
G
13 yıl
Yüzbaşı

quote:

Orijinalden alıntı: welowis

Geç yazdığım için özür dilerim sınavlardan dolayı.

Kodu biz kendimiz yazacakmışız ama kod verilse de şekli çıkartamam zaten. Resimler bize gösterilen kısım. Pyramid floor filan görmedik biz :(


Önerebileceğiniz kitap var mı ? Ya da video eğitimi mi bakayım netten ? Ne yapacağımı şaşırdım hocada iş yok, kendim halletmeye çalışıcam.

#define pyramid_floor 11

satırını kastediyorsan. Bunu ileride görürsünüz belki de görmüşsüüzdür. preprocessor tanımllamas Burada yapılam, code compile olurken, compilerın pyramid_floor gördüğü yere 11 yazmasından ibaret. Anlaşılır olması için ismi ben koydum. buzdolabı yazsam da olurdu yani.

Burada önemli olan düşünce tarzın. Şu işi öğreniyimde ilerde ne karakter görürsem mantığın tamamen yanlış diyebilirim. Yukarıda gördüğün code'u ben ilk defa yazdım diyebilirim.Daha önce kimsede piramit dik ügen çiz demedi bana. Normalde ders dışında da böyle bir şey istenmesi zor. Amaç algoritma mantığını geliştirmek. Nasıl yaparımın diyip algoritma oturtuyorsun kafanda.

Bu tip iç-içe for döngülerinde maksadı kodu direk okuyarak anlamayabilirsin. Ben mesela koda bakınca diyebileceğim ekrana birsürü for içinde boşluk ve M veya W bastığı. (2. sorunun cevabı yanlış gibi geliyor. İlk bakışta hata var gibi. Test ettim çalışıyormuş. Ama parantezleri kullanmadan böyle üstüste j kullanımı kodun okunmasını zorlaştırabiliyor). İleride binlerce satır kodun içinde böyle okunması zor kod yazmak çok içacıcı olmayabilir. Zaten sanırsam 2N^2 yapısı olan bir kod.


Olay mantığını çözmek öncelikle. Genel yazılım mantığını kafana oturtup neler yapılabilir tahmin edip nasıl yapıldığını bulacaksın.


Ekleme : Kodda fark yok ama bence 2. soru aşağıaki şekilde daha okunur. Kodu anlamak için i nin bir iki değeri için hesap yapman gerek. i 13 için ve i 12 için kodu okursan gerisini çıkartırsın.

#include <stdio.h> 
int main()
{
int i,j;

for (i=13;i>=0;i--)
{
for(j=0;j<i;j++) { printf(" "); }
for(j=13;i<=j;j--) { printf("W"); }
printf("\n");
}
return 0;
}





< Bu mesaj bu kişi tarafından değiştirildi garui -- 25 Kasım 2012; 0:47:20 >

J
13 yıl
Binbaşı

herkese iyi pazarlar bir sorum var
 printf("Enter Your Number : "); 
scanf("%d",r);
double result=0.0;

for(r=1.0, t=1.0; r<=y; r+=2, t*=-1)
{ result +=(t*(1.0f/r));}
printf("pi/4 =~ %.16f\n",result);
printf("pi =~ %.16f\n",result*4.0f);


}
***tarzı bir kod yazıyorum kişiden bir sayı alacak ve bu sayıya göre pi sayısını hesaplayacak ama doğru gitmeyen bişeyler var bir bakarmısınız?





< Bu mesaj bu kişi tarafından değiştirildi jervis -- 25 Kasım 2012; 13:04:56 >
Bu mesaja 3 cevap geldi.
A
13 yıl
Er

arkadaslar yardımınıza ihtiyacım var.matrislerde toplama yapan bi program yazmam gerekio ve fonksiyon kullanmak zorundayım.

int addition(int matrix1[][10], int matrix2[][10]) 
{
int k=0, l=0, sum[10][10];
if(k<10 )
{
for(l=0;l<10;l++)
{
sum[k][l]=matrix1[k][l]+matrix2[k][l];
return sum[k][l];
}
}
}


fonksiyonu boyle yapınca sadece 1x1 degerlerini topluyor ve her yere o sonucu yazıo. benim ihtiyacım olan sey hepsini ayrı ayrı toplaması. yardımcı olursanız sevinirim.


Bu mesaja 1 cevap geldi.
M
13 yıl
Yüzbaşı

quote:

Orijinalden alıntı: acan46

arkadaslar yardımınıza ihtiyacım var.matrislerde toplama yapan bi program yazmam gerekio ve fonksiyon kullanmak zorundayım.

int addition(int matrix1[][10], int matrix2[][10]) 
{
int k=0, l=0, sum[10][10];
if(k<10 )
{
for(l=0;l<10;l++)
{
sum[k][l]=matrix1[k][l]+matrix2[k][l];
return sum[k][l];
}
}
}


fonksiyonu boyle yapınca sadece 1x1 degerlerini topluyor ve her yere o sonucu yazıo. benim ihtiyacım olan sey hepsini ayrı ayrı toplaması. yardımcı olursanız sevinirim.

Matrisleri i,j olarak düşünürsek şöyle bir kaç örnek yapılabilir.

Fonksiyon ne şekilde çağırılmalı bilmiyorum ama tüm işi fonksiyon yapacaksa(toplama) şöyle olabilir.

Matris[j] için

Girilen matrixin i değeri a'ya atansın.
Girilen matrixin j değeri b'ye atansın.

i a'ya eşit olana kadar 1 artırılsın. (ilk satırın tüm sütunları) ve toplama ekle,
i a'ya eşit olduğunda i'yi bir önceki değer(istersen değişkene bağla) +1 'e döndür (ikinci satır) ve i a'ya eşit olana kadar 1 ekle ve topla,(ikinci satırın tüm sütunları)

biraz karmaşık oldu biliyorum. Fakat tüm işlemleri en çok değişkenle belirlemeye çalış. Sistematiğin her noktasını görmende fayda olur. Sonradan kısaltabilirsin. İç içe döngüyle kolayca yapılabilir.

for(i=0;i<=a;i++)
for(j=0;j<=b;j++)
t+=matrix[j];

şeklinde bir yapının geniş anlatımı oluyor yukarıdaki.

Açacak olursan. a=2 b=2 olan 3'e 3 matris için.

0,0 + 0,1 + 0,2 (b=2 oldu içteki for bitti, baştaki for a döner)
1,0 + 1,1 + 1,2 (b=2 oldu içteki for yine bitti, baştaki for a döner)
2,0 + 2,1 + 2,2 (iki for da sonlandı, matristeki tüm değerler toplandı)



M
13 yıl
Yüzbaşı

quote:

Orijinalden alıntı: jervis

herkese iyi pazarlar bir sorum var
 printf("Enter Your Number : "); 
scanf("%d",r);
double result=0.0;

for(r=1.0, t=1.0; r<=y; r+=2, t*=-1)
{ result +=(t*(1.0f/r));}
printf("pi/4 =~ %.16f\n",result);
printf("pi =~ %.16f\n",result*4.0f);


}
***tarzı bir kod yazıyorum kişiden bir sayı alacak ve bu sayıya göre pi sayısını hesaplayacak ama doğru gitmeyen bişeyler var bir bakarmısınız?

Sizin yapmak istediğinizi tam olarak anlayamadım. Biraz daha açabilirseniz yardımcı olmayı isterim.


Bu mesaja 1 cevap geldi.
J
13 yıl
Binbaşı

quote:

Orijinalden alıntı: MrOwl

quote:

Orijinalden alıntı: jervis

herkese iyi pazarlar bir sorum var
 printf("Enter Your Number : "); 
scanf("%d",r);
double result=0.0;

for(r=1.0, t=1.0; r<=y; r+=2, t*=-1)
{ result +=(t*(1.0f/r));}
printf("pi/4 =~ %.16f\n",result);
printf("pi =~ %.16f\n",result*4.0f);


}
***tarzı bir kod yazıyorum kişiden bir sayı alacak ve bu sayıya göre pi sayısını hesaplayacak ama doğru gitmeyen bişeyler var bir bakarmısınız?

Sizin yapmak istediğinizi tam olarak anlayamadım. Biraz daha açabilirseniz yardımcı olmayı isterim.

karşıdan giren kişi enter yotu number bölümüne sayıyı girecek ,o sayıya göre de program pi sayısıı hesaplayacak taslağını verdim ama program çalışmıyor
not:printf,scanf kullandım


Bu mesaja 1 cevap geldi.
M
13 yıl
Yüzbaşı

quote:

Orijinalden alıntı: jervis

quote:

Orijinalden alıntı: MrOwl

quote:

Orijinalden alıntı: jervis

herkese iyi pazarlar bir sorum var
 printf("Enter Your Number : "); 
scanf("%d",r);
double result=0.0;

for(r=1.0, t=1.0; r<=y; r+=2, t*=-1)
{ result +=(t*(1.0f/r));}
printf("pi/4 =~ %.16f\n",result);
printf("pi =~ %.16f\n",result*4.0f);


}
***tarzı bir kod yazıyorum kişiden bir sayı alacak ve bu sayıya göre pi sayısını hesaplayacak ama doğru gitmeyen bişeyler var bir bakarmısınız?

Sizin yapmak istediğinizi tam olarak anlayamadım. Biraz daha açabilirseniz yardımcı olmayı isterim.

karşıdan giren kişi enter yotu number bölümüne sayıyı girecek ,o sayıya göre de program pi sayısıı hesaplayacak taslağını verdim ama program çalışmıyor
not:printf,scanf kullandım

Ne demek istediğinizi anladım, programda yaptırmaya çalıştığınızı anlamadım. Hangi yöntemle pi'yi bulacak? Ne gibi bir denklemi uygulamak istiyorsunuz? Algoritmasından bahsedebilir misiniz? r girdisi alıp r'ye değer atamışsınız.


Bu mesaja 1 cevap geldi.
M
13 yıl
Yüzbaşı

quote:

Orijinalden alıntı: welowis

quote:

Orijinalden alıntı: garui

quote:

Orijinalden alıntı: welowis

C de piramit yapmanin mantigi nedir for dongusuyle?
Mesela dik ucgen seklinde piramit. Tanimladigimiz i ve j jin satir sutun olup olmadigini nasil anlicam iyicene kafam karisti..

Nasıl kullandığına bağlı hangisi satır hangisi sütun ? Kodun nerede ?

Dik üçgen çizdirmek içinde her zaman i,j gerekmiyor. Hele iç-içe for döngüsü de gerekmiyebilir. Burada düşünce mantığın önemli "Nasıl ekrana dik üçgen bastırırım ?"
Aşağıda 4 dik üçgen var. Ne iç-içe for döngüsü ne j var. pyramid_floor değerini değiştirdikçe dik üçgenleri büyütüp küçültebilirsin. pyramid_floordan büyük olmamak kaydıyla, pyramid_top büyütürsen dik yamuk elde edersin.

Mantık senin mantığın ve düşünce tarzın. Ben bir şeyi sadece bir yolla yaparım diye bir şey çoğu zaman yok. Aşağıdaki kod i ve j ile yine tek for üzerinde de dönebilir ama daha kompleks olur.

Kodunu göster ona göre nere satır nere sütün söyliyelim. (Evet direk kullanma diye C++ )

/* DH GaRUi */ 
#include <iostream>
#include <iomanip>

#define pyramid_floor 10
#define pyramid_top 1

int main()
{

int i;

for (i=pyramid_top; i<=pyramid_floor ; ++i)
{
cout << setw(i) << setfill('*') << '*' << endl;
}

cout << endl;

for (i=pyramid_floor; i>=pyramid_top ; --i)
{
cout << setw(i) << setfill('*') << '*' << endl;
}

cout << endl;

for (i=pyramid_top; i<=pyramid_floor; ++i)
{
if(i<pyramid_floor) { cout << setw(pyramid_floor-i) << setfill(' ') << ' ';}
cout << setw(i)<< setfill('*') << '*' << endl;
}

cout << endl;

for (i=pyramid_floor; i>=pyramid_top ; --i)
{
if(i<pyramid_floor) { cout << setw(pyramid_floor-i)<< setfill(' ') << ' ';}
cout << setw(i) << setfill('*') << '*' << endl;
}


return 0;
}


 
*
**
***
****
*****
******
*******
********
*********
**********

**********
*********
********
*******
******
*****
****
***
**
*

*
**
***
****
*****
******
*******
********
*********
**********

**********
*********
********
*******
******
*****
****
***
**
*


Ekleme: Nasıl normal piramit yapmışlar diye baktığımda 3 for iç-içe görmüştüm. Kodun kompleks yapısı iyice artıyor. Aşağıda 3 for ve 3 normal piramit var. Birinde j bile yok.

 
/* DH GaRUi */
#include <iostream>
#include <iomanip>

#define pyramid_floor 11
#define pyramid_top 1
#define pyramid_increase 2

int main()
{

int i;

for (i=pyramid_top; i<=pyramid_floor ; i+=pyramid_increase)
{
cout << setw(pyramid_floor-i/pyramid_increase)<< setfill(' ') << ' ' << setw(i) << setfill('*') << '*' << endl;
}

cout << endl;

int j;

for (i=pyramid_top, j=pyramid_floor/pyramid_increase; i<=pyramid_floor ; i+=pyramid_increase, --j)
{
if(i<pyramid_floor ) { cout << setw(j)<< setfill(' ') << ' ';}
cout << setw(i) << setfill('*') << '*' << endl;
}

cout << endl;

for (i=pyramid_floor, j=pyramid_top/pyramid_increase; i>=pyramid_top ; i-=pyramid_increase, ++j)
{
if(i<pyramid_floor ) { cout << setw(j)<< setfill(' ') << ' ';}
cout << setw(i) << setfill('*') << '*' << endl;
}

return 0;
}


 
*
***
*****
*******
*********
***********

*
***
*****
*******
*********
***********

***********
*********
*******
*****
***
*



Geç yazdığım için özür dilerim sınavlardan dolayı.

Kodu biz kendimiz yazacakmışız ama kod verilse de şekli çıkartamam zaten. Resimler bize gösterilen kısım. Pyramid floor filan görmedik biz :(


quote:

Orijinalden alıntı: MrOwl

quote:

Orijinalden alıntı: welowis

C de piramit yapmanin mantigi nedir for dongusuyle?
Mesela dik ucgen seklinde piramit. Tanimladigimiz i ve j jin satir sutun olup olmadigini nasil anlicam iyicene kafam karisti..

Esasında çok basit. Arkadaşımız yardımcı olacak çok güzel bir örnek vermiş. Ben de pratik bir yöntem söyleyeyim.

Kareli bir defterin varsa, eğer yoksa kendin çizebilirsin, çizmek istediğin üçgeni çiz. Sonra köşe noktalarını(köşeden kastım üçgenin kenarlarının karelerin kesişim noktasından geçtiği yerler) belirle. Orijini sol üst olarak belirleyerek(çünkü çıktı bu noktadan başlıyor) noktaların koordinatlarını yaz fakat pozitif değerlerle yaz. Noktaları belirledikten sonra aralarında matematiksel bir bağlantı olduğunu göreceksin. Bu sana kullanmak gereken algoritmanın en basit şekilde mantığını verir.

Kolay gelsin.


dediklerinizi yaptıktan sonra bunu kodlamada nasıl dönüştüreceğim peki ?
1. snıftayım ama mantığını öğrenmek istiyorum ezberden gitmek yerine. Yani şu şekli çıkart denildiğinde takılmak yerine kodu ben çıkartayım istiyorum.


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

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

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

Önerebileceğiniz kitap var mı ? Ya da video eğitimi mi bakayım netten ? Ne yapacağımı şaşırdım hocada iş yok, kendim halletmeye çalışıcam.

Öncelikle mantığını anlamaya çalıştığın için seni tebrik ediyorum, her dalda ancak bu şekilde düşünenler başarılı olabilir. Senin de başarılı olacağına eminim. Benim ana dalım bu değil, zamanla beni geçeceksin :)

Garui'ye teşekkürler benden önce yazmış. Bu tarz yapılar algoritma mantığını öğretmek için varlar, kitapta çoğu noktada görmüştüm. Bazılarını dizi mantığı ile yapmak mümkün. Konudan çok uzaklaşmayalım.

Ben kitap olarak C için Deitel&Deitel'in C ve C++ kullanmıştım. Çevirisi biraz kötü, ama içeriği çok zengin. Bu tarz örnekler de bolca var, ama sırf bunun için gidip de alma derim. Nette örnekleri çok çünkü.

Genelde bu tarz sorularda iç içe for döngüleri çok önemli. Bunu anlamak, zihinde yer etmesini sağlamak için bolca çözmek lazım. Çok boyutlu(multidimensional arrays) dizilerde iç içe üç for yapısı da kullanıldığı oluyor. Esasında basit.

Kademe kademe düşün. Gördüğün kodu anlamayabilirsin, çok doğal. Derleyicide çalıştırmadan önce kağıtta çalıştır. Gördüğüm kadarıyla sen de bendensin, kağıda kod yazmaktan çekinmiyorsun :) O bölümde durum nedir bilmem, ama bana başta biraz tuhaf gelmişti :) Çok işe yarar. Programı önce sen çalıştır. En içteki yapıdan başla ve kademe kademe programı çöz. Basitinden örnek vereyim.

for(i=1;i<=3;i++)
for(k=1;k<=3;k++)
printf("%d,%d",i,k)
printf("\n");

bu program ne yazacak diye düşün. İlk for'a girdin. i=1 oldu ve içteki yapıya geçti ve k=1 dedi.

1,1 yazdırıldı.

Sıradaki işlem k++ ve printf ta ki k=3 oluncaya kadar.

1,1
1,2
1,3

Şimdi içteki for bitti, ama malum biz diğer for yapısının içindeydik. Diğer for'a döndük ve i=2 oldu, içe tekrar geçiyoruz.

2,1
2,2
2,3

Garui cevapladığı için ben sadece yöntem vermek istedim. Belki de bunları biliyorsun. Ama üstünden geçmek her zaman faydalıdır.

Bir de önemli nokta daha, yapılarda karakter ve boşluğu ayrı kullan. " M" veya " M " veya "M " yapma. İkisi ayrı karakterler unutma. " " ayrı olarak kullanmayı dene.


Bu mesaja 1 cevap geldi.