Arama butonu
Bu konudaki kullanıcılar: 3 misafir, 2 mobil kullanıcı
4171
Cevap
168196
Tıklama
3
Öne Çıkarma
Cevap: C/C++/C# Sorularınız Buraya. . .(GÜNCEL) (66. sayfa)
A
12 yıl
Yüzbaşı

quote:

Orijinalden alıntı: -Source-

quote:

Orijinalden alıntı: uykusu gelen adam

merhaba,
Visual studio c# ta bir program yazdığımda konsolda çıktı olarak istediğim çıkıyor ancak değişiklik yaptığımda yine bir önceki program çıktısı çıkıyor.
örneğin ekranda ahmet yazısını çıkartıyorum sonra kapatıp kodları ahmet mehmet yazacak şekilde düzenliyorum çalıştırıyorum yine ahmet çıkıyor.
yeni proje açtığımda düzeliyor ancak yine değişiklik yaptığımda aynı çıktıyı veriyor. yardımcı olur musunuz?

Kodu tekrar derlemen lazım.

Kodda hata olduğunda derleyici, en son hatasız halini gösteriyor. Hata olmadığı durumlarda da yeniden derlemen gerekir. Çalıştırırken Start with debugging yap..


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

quote:

Orijinalden alıntı: ebubekir.s

@garui
Lütfen yardım.
 
#include<stdio.h>
#include<conio.h>
void ortalama(int dizi[][notArr], int SATIR, int notArr)
{
int toplam, x, y;
float ort;
for(x=0; x<SATIR; x++)
for(y=0; y<notArr; y++){
toplam=toplam+dizi[x][y];

}
ort=(float)toplam/(x*y);
printf("Dizi elemanlarinin ortalamasi:%.2f", ort);
}
void buyuk(int dizi[][notArr], int SATIR, int notArr)
{
int buyuk, boyut, x, y, secim2;
boyut=SATIR;
int dizi2[boyut];
for(x=0; x<SATIR; x++)
for(y=0; y<notArr; y++){
dizi2[x]=dizi[x][y];
if(dizi[x][y+1]>dizi[x][y]) dizi2[x]=dizi[x][y+1];
}
printf("Satir elemanlarinin buyuklerinden olusturulan tek boyutlu dizi elemanlari:\n");
for(x=0; x<SATIR; x++)
printf("dizi2[x]=%d", dizi[x]);

printf("3.secenegide yapmak istermisiniz(1-Evet, 2-Hayir):");
scanf("%d", &secim2);
if(secim2==1) ortalama2(dizi2, SATIR);
}
void ortalama2( int dizi2[], int SATIR)
{
int x, toplam;
float ort;
for(x=0; x<SATIR; x++)
toplam=toplam+dizi2[x];

ort=(float)toplam/x;
printf("2.dizinin ortalamasi:%.2f", ort);
}
main(void)
{
int SATIR, notArr, i, j, secim;
printf("Satir degerini giriniz:");
scanf("%d", &SATIR);
printf("Sutun degerini giriniz:");
scanf("%d", ¬Arr);
int dizi[SATIR][notArr];
for(i=0; i<SATIR; i++)
for(j=0; j<notArr; j++){
printf("dizi[i][j]=");
scanf("%d", &dizi[i][j]);
}
printf("Lutfen seceneklerden biriniz seciniz(1,2):");
scanf("%d", &secim);
if(secim==1) ortalama(dizi, SATIR, notArr);
else if(secim==2){
buyuk(dizi, SATIR, notArr);
}

getch();
return 0;
}


Sorun nedir ??


Bu mesaja 3 cevap geldi.
R
12 yıl
Yarbay

türkçe karakteri halletmenin çok kolay bi yolu vardı nasıldı ?



E
12 yıl
Çavuş

@garui

3 26 C:\Users\ebubekir414\Desktop\odev.cpp [Error] 'notArr' was not declared in this scope
3 33 C:\Users\ebubekir414\Desktop\odev.cpp [Error] expected ')' before ',' token
3 35 C:\Users\ebubekir414\Desktop\odev.cpp [Error] expected unqualified-id before 'int'


bu hataları veriyor.





< Bu mesaj bu kişi tarafından değiştirildi ebubekir.s -- 11 Mart 2013; 22:47:55 >
Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @garui
G
12 yıl
Yüzbaşı

quote:

Orijinalden alıntı: ebubekir.s

@garui

3 26 C:\Users\ebubekir414\Desktop\odev.cpp [Error] 'notArr' was not declared in this scope
3 33 C:\Users\ebubekir414\Desktop\odev.cpp [Error] expected ')' before ',' token
3 35 C:\Users\ebubekir414\Desktop\odev.cpp [Error] expected unqualified-id before 'int'


bu hataları veriyor.

void ortalama(int dizi[][notArr], int SATIR, int notArr)

Bu sekilde fonksiyonu tanimlayamazsin.

void ortalama(int dizi[][10], int SATIR, int notArr)

seklinde olsa olabilirdi. Fonksiyonlara dizi copyalamak veya dizinin olagan yerini gostermek icin bir kac yontem mevcut. Bunlardan biri 2 boyutlu diziler icin double pointer kullanmak.

Ornek:

#include<stdio.h> 
#include<conio.h>
void ortalama(int**, int, int);
void buyuk(int**, int, int);
void ortalama2(int*, int);

void ortalama(int** dizi, int SATIR, int notArr)
{
int toplam=0, x, y;
float ort;
for(x=0; x<SATIR; x++)
for(y=0; y<notArr; y++){
toplam+=dizi[x][y];

}
ort=((float)toplam/(float)(SATIR*notArr));
printf("Dizi elemanlarinin ortalamasi:%.2f", ort);
}

int main(void)
{
int SATIR, notArr, i, j;
printf("Satir degerini giriniz:");
scanf("%d", &SATIR);
printf("Sutun degerini giriniz:");
scanf("%d", &notArr);
int** dizi;
dizi = new int*[SATIR];
for(i=0; i<SATIR; i++){
dizi[i] = new int[notArr];
}

for(i=0; i<SATIR; i++){
for(j=0; j<notArr; j++){
printf("dizi[%d][%d]=",i,j);
scanf("%d", &dizi[i][j]);
}
}

ortalama(dizi, SATIR, notArr);

for (i=0; i<SATIR;i++)
{
delete [] dizi[i];
}
delete [] dizi;
getch();
return 0;
}


Kodda degisiklik yaparak baska yontemlerde kullanabilirsin.





< Bu mesaj bu kişi tarafından değiştirildi garui -- 12 Mart 2013; 14:38:06 >
Bu mesaja 1 cevap geldi.
N
12 yıl
Yüzbaşı

Bilgisayar Mühendisliği 1.sınıf öğrencisiyim daha c'yi yeni yeni görmeye başladık hoca if fonksiyonunu filan daha yeni yeni anlatıyor ama ben biraz ilerledim.Daha da ilerlemek istiyorum bu tür işlere ilgim var.Yaklaşık 2 aydır kod yazıyorum .Şu soruda ise takıldım yardımcı olabilir misiniz acaba ?

Kendisine parametre olarak gönderilen boyuta  uygun kare sıfır matrisi oluşturup bu matrisi döndüren bir fonksiyon 
ve bu fonksiyonu kullanan bir program yazınız.Bu matrisi calloc fonksiyonu ile oluşturunuz.

alttada şunu yazmış.

int** sifirMatrisiOlustur(int boyut);





Benim yapmaya çalıştığım kodsa şu şekilde ve açıkçası yukarda örnek olarak verdiği fonksiyonu çift boyutlu işaretçi olarak atadığını anlamadım.
Matris çift boyutlu, ondan yer alacak işaretçilerde çift boyutlu ama fonksiyonun çift boyutlu olmasına gerek var mı ?


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

int sifirMatrisi(int **);

int boyut; //global değişken olarak atadım.Parametre olarak tek tek
int i,j; //gönderdiğimde çok fazla argüman diye hata veriyor.

int main(){

int** matris;

printf("Kare matrisin boyutunu giriniz :\t");
scanf("%d",&boyut);

sifirMatrisi(** matris);

getche();
return 0;
}

int sifirMatrisi(int **matris){

matris=(int**) calloc(boyut,sizeof(int)); //çift boyutlu işaretçinin içine matrisin satırbaşların için yer ayırdım ve calloc ile bunlara sıfır atadım.

for(i=0;i<boyut;i++){
matris[i]=(int*)calloc(boyut,sizeof(int)); //her satır için yine yer ayırdım ve calloc ile bunlara sıfır atadım.
}

for(i=0;i<boyut;i++){ //matrisin her satır ve sütun elemanlarını yazdırdım
for(j=0;j<boyut;j++){
printf("matris[%d][%d]=%d\t",i,j,matris[i][j]);
}

printf("\n");

}

for(i=0;i<boyut;i++) free(matris); //Matriste her satır için ayrılan belleği boşalttım.

free(matris); //Matrisin satır başlarını tutan belleği boşalttım.


return **matris; //büyük ihtimal yaptığım hatalardan biri burda.

}






< Bu mesaj bu kişi tarafından değiştirildi namsar29 -- 12 Mart 2013; 13:04:14 >
Bu mesaja 1 cevap geldi.
E
12 yıl
Çavuş

tamam çok teşekkür ederim.
@garui


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @garui
G
12 yıl
Yüzbaşı

quote:

Orijinalden alıntı: sarman29

Bilgisayar Mühendisliği 1.sınıf öğrencisiyim daha c'yi yeni yeni görmeye başladık hoca if fonksiyonunu filan daha yeni yeni anlatıyor ama ben biraz ilerledim.Daha da ilerlemek istiyorum bu tür işlere ilgim var.Yaklaşık 2 aydır kod yazıyorum .Şu soruda ise takıldım yardımcı olabilir misiniz acaba ?


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

int** sifirMatrisi(int);

int main(){

int boyut,i;

int** matris;

printf("Kare matrisin boyutunu giriniz :\t");
scanf("%d",&boyut);

matris = sifirMatrisi(boyut);

printf("%s(%d) : Matris adresi alindi. Adress : %p\n", __func__, __LINE__, (void*)matris);

for(i=0;i<boyut;i++) free(matris[i]); //Matriste her satir için ayrilan bellegi bosalttim.
free(matris); //Matrisin satir baslarini tutan bellegi bosalttim.

matris = 0;

return 0;
}

int** sifirMatrisi(int boyut){

int i,j;

int** sifirM = (int**) calloc(boyut,sizeof(int)); //çift boyutlu isaretçinin içine matrisin satirbaslarin için yer ayirdim ve calloc ile bunlara sifi

if (sifirM == NULL) {
printf("%s(%d) : Memory blogu tahsis edilemedi !\n",__func__, __LINE__);
exit (1);
}
else {
printf("%s(%d) : Memory blogu tahsis edildi. Adress : %p\n",__func__, __LINE__, (void*)sifirM);
}


for(i=0;i<boyut;i++){
sifirM[i]=(int*) calloc(boyut,sizeof(int)); //her satir için yine yer ayirdim ve calloc ile bunlara sifir atadim.
if (sifirM[i] == NULL) {
printf("%s(%d) : Memory blogu tahsis edilemedi !\n",__func__, __LINE__);
for(i--;i>=0;i--) { free(sifirM[i]); }
free(sifirM);
printf("%s(%d) : Memory bloklari temizlendi ! (Yani umudumuz bu yonde)\n",__func__, __LINE__);
exit (1);
}
else {
printf("%s(%d) : Memory blogu tahsis edildi. Adress : %p\n", __func__, __LINE__, (void*)sifirM[i]);
}

}

for(i=0;i<boyut;i++){ //matrisin her satir ve sütun elemanlarini yazdirdim
for(j=0;j<boyut;j++){
printf("matris[%d][%d]=%d\t",i,j,sifirM[i][j]);
}
printf("\n");
}

//for(i=0;i<boyut;i++) free(sifirM[i]); //Matriste her satir için ayrilan bellegi bosalttim.

//free(sifirM[i]); //Matrisin satir baslarini tutan bellegi bosalttim.


return sifirM; //büyük ihtimal yaptigim hatalardan biri burda.
}


Kare matrisin boyutunu giriniz :        4 
sifirMatrisi(57) : Memory blogu tahsis edildi. Adress : 0x804a008
sifirMatrisi(68) : Memory blogu tahsis edildi. Adress : 0x804a020
sifirMatrisi(68) : Memory blogu tahsis edildi. Adress : 0x804a038
sifirMatrisi(68) : Memory blogu tahsis edildi. Adress : 0x804a050
sifirMatrisi(68) : Memory blogu tahsis edildi. Adress : 0x804a068
matris[0][0]=0 matris[0][1]=0 matris[0][2]=0 matris[0][3]=0
matris[1][0]=0 matris[1][1]=0 matris[1][2]=0 matris[1][3]=0
matris[2][0]=0 matris[2][1]=0 matris[2][2]=0 matris[2][3]=0
matris[3][0]=0 matris[3][1]=0 matris[3][2]=0 matris[3][3]=0
main(36) : Matris adresi alindi. Adress : 0x804a008





< Bu mesaj bu kişi tarafından değiştirildi garui -- 12 Mart 2013; 14:25:05 >
Bu mesaja 1 cevap geldi.
G
12 yıl
Yüzbaşı

quote:

Orijinalden alıntı: ebubekir.s

tamam çok teşekkür ederim.
@garui

Rica ederim. Dikkat forum da birsey var gibi. & ve notArr yanyana yazmiyor. Farkli bir karakter koyuyor ¬Arr seklinde.





< Bu mesaj bu kişi tarafından değiştirildi garui -- 12 Mart 2013; 14:39:52 >

N
12 yıl
Yüzbaşı

@garui

Teşekkür ederim yardımınız için.


Bu mesaja 1 cevap geldi.
T
12 yıl
Onbaşı

Merhaba arkadaslar sizlere iki sorum olacak umarim yardimci olabilirsiniz, c#'a yeni basladigimi da belirtmek isterim.

Soru 1 : Asagidaki kod ile C#'da compile islemi yapilamamaktadir. Neden ve ne gibi sorunlardan dolayi yapilamadigini aciklayiniz ?

double a = 56.5;
int b=a;


Soru 2 :

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

Yukaridaki kod dizelerinde 5 ciddi sorun vardir ve bir kac sira hatasi bulunmaktadir. Hatanin nerede oldugu hakkinda aciklama ve cözum icin neler yapilabilir belirtiniz ?

Sorular bunlar arkadaslar umarim yardimci olabilirsiniz, gercekten cok mutlu olurum.

Saygilarimla





< Bu mesaj bu kişi tarafından değiştirildi tokayto -- 12 Mart 2013; 14:58:13 >
Bu mesaja 1 cevap geldi.
R
12 yıl
Yarbay

arkadaşlar mesela ismini sorduktan sonra cinsiyet soracak ve E veya K dan başka tuşa basıldığında tekrar soracak ? nasıl yapabiliriz





< Bu mesaj bu kişi tarafından değiştirildi Ridianod -- 13 Mart 2013; 10:32:07 >
Bu mesaja 1 cevap geldi.
Y
12 yıl
Er

Kullanıcıdan alınan değere göre bir küme oluşturan ve aşağıdaki gibi bir çıktı veren program yazmaya çalışıyorum.
{1, 2, 3} dizisinin alt kümeleri;
{ }
{ 1 }
{ 2 }
{ 3 }
{ 1, 2 }
{ 1, 3 }
{ 2, 3 }
{ 1, 2, 3 }

Diziyi oluşturma ve diziye eleman atama kısmını hallettim ama 2 ve 3 elemanlı alt kümelerini nasıl oluşturacağım çözemedim. 8 elemanlı bir küme olursa 4,5,6,7 elemanlı alt kümelerini de buldurmam gerekiyor. Biraz açıklayabilir misiniz?


Bu mesaja 2 cevap geldi.
M
12 yıl
Yüzbaşı

Arkadaşlar, c++'ta bir sorum olacak.
 
int fonksiyon(int* dizi,int a,int b)
{
for(int i=0;i<5;i++)
{
dizi[i]=i;
}
cin>>a>>b;
}

int fonksiyon2()
{

}

Koddaki gibi oluşturduğum değerleri diğer bir fonksiyonda nasıl kullanabilirim? Pointerları bir türlü kavrayamadım. Mesela fonksiyon2 adında bir fonksiyon oluşturdum ve bunda ilk fonksiyondaki diziyi ve a,b değerlerini aynen kullanmak istiyorum. Nasıl yapabilirim?


Bu mesaja 2 cevap geldi.
X
12 yıl
Er

c++ builder 6 kullanıyorum

edit1----mevcut şifre
edit2---yeni şifre
edit3---yeni şifre tekrar
edit4--- kullanıcı adı

kullanici adlı tablomda k_adi ve parola olarak tanımladığım iki alanım var . kullanıcının şifresini değiştirmeye calısıyorum ama olmuyor yanlışım nerde acaba ?
void __fastcall TForm6::Button1Click(TObject *Sender) 
{
if(Edit2->Text=="" || Edit3->Text=="")
{
ShowMessage("Lütfen yeni parolanızı giriniz.Parola boş olamaz.");
return;
}
else if(Edit2->Text!=Edit3->Text)
{
ShowMessage("Parola ve parola tekrarı aynı değil, lütfen düzeltiniz.");
return;
}

String sql="SELECT * FROM kullanici WHERE parola='"+Edit1->Text+"'WHERE k_adi='"+Edit4->Text+"'";



MyQuery1->SQL->Clear();
MyQuery1->SQL->Add(sql);
MyQuery1->Execute();
if(MyQuery1->RecordCount<1)
{
ShowMessage("Mevcut kullanici adi veya parola yanlış.");
return;
}

sql="UPDATE kullanici SET parola='"+Edit2->Text+"' WHERE k_adi='"+Edit4->Text+"'";

//ShowMessage(sql);
MyQuery1->SQL->Clear();
MyQuery1->SQL->Add(sql);
MyQuery1->Execute();
ShowMessage("Parolanız başarıyla değiştirilmiştir.");
}


Bu mesaja 1 cevap geldi.
S
12 yıl
Teğmen

ya arkadşlar şimdi şöyle bişey var benim bi program yazmam lazım. program her çift sayının kaç farklı asal sayı ikilisinin toplamı şeklinde yazılacağını hesaplayacak. örnek vermek gerekirse;
4 = 2 + 2 (demekki 4 sayısı 1 farklı şekilde yazılabiliyor)
6 = 3 + 3(6 sayısı 1 farklı şekilde yazılabiliyor)
8 = 5 + 3(1 farklı şekilde yazılabiliyor)
10 = 3 + 7 = 5 + 5(10 sayısı 2 farklı şekilde yazılabiliyor)

program bu şekilde 4 den başlayarak her çift sayının kaç farklı asal sayı ikilisinin toplamı şeklinde yazılabileceğini ekrana yazıcak
4 - 1 farklı
6 - 1 farklı
8 - 1 farklı
10 - 2 farklı

programlama dili c++


Bu mesaja 2 cevap geldi.
M
12 yıl
Binbaşı

Arkadaşlar C# ile Hastane otomasyonu yapıyorum fakat takıldığım bir nokta var Hide, Close komutları ile Form1'den Form2'ye geçiş sağlıyorum ardından Form2'yi tamamen kapatıp Form1'e dönebiliyorum ama ilk geçiş yaptığım Form1 kapanmıyor arkaplanda çalışıyor bunu nasıl çözebilirim ?
Kodlar:
Form1'den Form2'ye geçiş butonu.
private void button3_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2();
f2.Show();
this.Hide();
}

Form2'den Form1'e dönüş butonu.
private void button3_Click(object sender, EventArgs e)
{
Form1 f1 = new Form1();
this.Dispose();
f1.Show();
}
Buradaki Dispone'i Form1'den 2'ye geçerken kullanamıyorum 1 kapandığı için 2'de gösterilmeden otomatik olarak kapatılıyor.



E
12 yıl
Teğmen

quote:

Orijinalden alıntı: selamolsunbolubeyine

ya arkadşlar şimdi şöyle bişey var benim bi program yazmam lazım. program her çift sayının kaç farklı asal sayı ikilisinin toplamı şeklinde yazılacağını hesaplayacak. örnek vermek gerekirse;
4 = 2 + 2 (demekki 4 sayısı 1 farklı şekilde yazılabiliyor)
6 = 3 + 3(6 sayısı 1 farklı şekilde yazılabiliyor)
8 = 5 + 3(1 farklı şekilde yazılabiliyor)
10 = 3 + 7 = 5 + 5(10 sayısı 2 farklı şekilde yazılabiliyor)

program bu şekilde 4 den başlayarak her çift sayının kaç farklı asal sayı ikilisinin toplamı şeklinde yazılabileceğini ekrana yazıcak
4 - 1 farklı
6 - 1 farklı
8 - 1 farklı
10 - 2 farklı

programlama dili c++



Her basliga ayni cevabi yazmissin ? Hayirdir QBASIC ile derdin mi, var ?
Sadece bu yorumlari yazmak icin mi, uye oldun siteye ?
ne iciyorsun ? yardim almak icin baslik acmissin da diger konularda niye hem insanlari yaniltip hem de dalga geciyorsun ? Yas kac ?

Arduino Uno Proje Yardım -> eğer qbasic öğrenirsen istediğin herşeyi yapabilirsin. internette qbasic die aratırsan kaynaklar bulabilirsin
c#'ta label veya pictureBox'u yan çevirmek varmı ? -> bu gibi görsel işleri c# yerine qbasic de yapmalısın. bence hemen qbasic öğrenmeye başla
Matlab -> google a matlab yaz kendi orjinal sitesi çıkar zaten. ordan indirebilirsin. fiyatı ne kadar bilmiyorum biraz pahalı olabilir. matlab yerine qbasic öğrenirsen daha akıllıca bir iş yapmış olursun,
c# kaynak -> bence c# yerine qbasic öğren. zararın neresinden dönsen kardır.

Programcılığa başlamak ->
iyi dinle şimdi.
gidip java öğren sonra android öğren sonra da gidip iş ara.bulursan bana da söle bende gelem :D
1000lira + yemek ücretine çalışırım. sabah 8 aksam 7 uygundur benim için.

Programlamaya başlıyorum ->
arkadaşım kesinlikle assembly den başlamalısın. hem temelden almış olursun :D yavaş yavaş ilerlersin.


Cevap: C/C++/C# Sorularınız Buraya. . .(GÜNCEL) ->
ya arkadşlar şimdi şöyle bişey var benim bi program yazmam lazım. program her çift sayının kaç farklı asal sayı ikilisinin toplamı şeklinde yazılacağını hesaplayacak. örnek vermek gerekirse;
4 = 2 + 2 (demekki 4 sayısı 1 farklı şekilde yazılabiliyor)
6 = 3 + 3(6 sayısı 1 farklı şekilde yazılabiliyor)
8 = 5 + 3(1 farklı şekilde yazılabiliyor)
10 = 3 + 7 = 5 + 5(10 sayısı 2 farklı şekilde yazılabiliyor)

program bu şekilde 4 den başlayarak her çift sayının kaç farklı asal sayı ikilisinin toplamı şeklinde yazılabileceğini ekrana yazıcak
4 - 1 farklı
6 - 1 farklı
8 - 1 farklı
10 - 2 farklı

programlama dili c++


Bu mesaja 1 cevap geldi.
K
12 yıl
Binbaşı

İyi günler,
Yazdığım XOX oyununa yapay zeka eklemek istiyorum. Ancak ne şekilde yapabileceğimi tam olarak çözemedim.
Aklıma gelen tek yöntem benim belirlediğim senaryoları test ederek yapay zekanın ona göre "O" koyması.
Sadece mantık söylerseniz yada basit bi algoritma kurarsanız çok makbule geçer.
Teşekkürler


#include<stdio.h> 
int sira=1,sa,su; //kullanicidan koordinat alirken sa ve su kullanilacak..
char kazanan; //Kontrol fonkisyonu kazanan kisi olursa döndürdüğü X veya O değeri kazanan değişkenine atanicak.
int ekran[3][3]={1,1,1, 1,1,1, 1,1,1}; //3x3 alanımız için kullanılacak matris.
//x icin 2 y icin 3 degeri atanir.

char kontrol(); //kontol fonksiyonu prototipi(70-98. Satır)

void yaz() //ekran dizisindeki değerleri
{

int sat,sut; //satir ve sutunlari yazdirmak icin degiskenleri atiyoruz.
system("CLS"); //Ekrani siliyoruz
printf("\t \t \t1 \t2 \t3 \n\n\n\n\n"); //Satranç tahtası gibi sayılar yazdırıyoruz. En üste 1,2,3 yazdırıyor.
for(sat=0;sat<3;sat++){
printf("\t\t %d \t", sat + 1); // 14. satirdaki islemi sol tarafa uyguluyoruz.
for(sut=0;sut<3;sut++){
if(ekran[sat][sut]==1) printf("* \t"); //kullanicinin veri atamadigi yere * konuyor.
if(ekran[sat][sut]==2) printf("X \t"); //kullanicinin X koyduğu yere X koyuyor.
if(ekran[sat][sut]==3) printf("O \t"); //kullanicinin Y koyduğu yere Y koyuyor.
}
printf("\n\n\n\n");

}

}

void oku() //Kullanicidan konum okuyan fonksiyon
{
tekrarlama: //Eğer zaten bir X veya O nun girildiği yere kullanici atama yaparsa tekrar değer alınır.
if(sira%2==1)
{
printf("X konumu giriniz : ");
scanf("%d%d",&sa,&su); //satiri sa degiskenine sutunu su degiskenine atiyor.
if(ekran[sa-1][su-1]==2||ekran[sa-1][su-1]==3) goto tekrarlama; //Eğer zaten deger atanmis yere kullanici
// bir daha X veya Y koymaya kalkarsa oku fonksiyonunun basina gidiliyor.

else ekran[sa-1][su-1]=2; //Eğer girilen yer boşsa X konuluyor

}
else if(sira%2==0)
{
printf("O konumu giriniz : ");
scanf("%d%d",&sa,&su);
if(ekran[sa-1][su-1]==2||ekran[sa-1][su-1]==3) goto tekrarlama;
ekran[sa-1][su-1]=3;
}
}


int main()
{
yaz(); //Programin basinda tumuyle bos tahtamiz ekrana yazdiriliyor.
while(sira<=9) //döngü 9 defa tekrar ediyor.
{
oku(); //Kullanicidan konum aliniyor.
yaz(); //Tahta tekrar yazdiriliyor.
kazanan=kontrol(); //Kazana varmi diye kontrol ediliyor.
if(kazanan=='X') break; //kazanan var ise döngüden cikiliyor.
else if(kazanan=='O') break;
sira+=1;
}
printf("Oyun bitti");
if(kazanan=='X') printf("\nX kazandi.\a\2\n\n");
else if(kazanan=='O') printf("\nO kazandi.\a\2\n\n");
else printf("\n Berabere.\a\1\n\n");

system("pause");
return 0;
}

char kontrol()
{
if(ekran[0][0]==2&&ekran[0][1]==2&&ekran[0][2]==2) return 'X';//üst taraf soldan saða
else if(ekran[1][0]==2&&ekran[1][1]==2&&ekran[2][2]==2) return 'X';//orta taraf soldan saða
else if(ekran[2][0]==2&&ekran[2][1]==2&&ekran[2][2]==2) return 'X';//alt taraf soldan saða


else if(ekran[0][0]==2&&ekran[1][0]==2&&ekran[2][0]==2) return 'X';//Sol taraf yukardan aþaðý
else if(ekran[0][1]==2&&ekran[1][1]==2&&ekran[2][1]==2) return 'X';//Orta taraf yukardan aþaðý
else if(ekran[0][2]==2&&ekran[1][2]==2&&ekran[2][2]==2) return 'X';//sað taraf yukarýdan aþaðý

else if(ekran[0][0]==2&&ekran[1][1]==2&&ekran[2][2]==2) return 'X';//soldan saða çapraz
else if(ekran[0][2]==2&&ekran[1][1]==2&&ekran[2][0]==2) return 'X';//saðdan sola çapraz

//O kazanma durumu

if(ekran[0][0]==3&&ekran[0][1]==3&&ekran[0][2]==3) return 'O';//üst taraf soldan saða
else if(ekran[1][0]==3&&ekran[1][1]==3&&ekran[2][2]==3) return 'O';//orta taraf soldan saða
else if(ekran[2][0]==3&&ekran[2][1]==3&&ekran[2][2]==3) return 'O';//alt taraf soldan saða


else if(ekran[0][0]==3&&ekran[1][0]==3&&ekran[2][0]==3) return 'O';//Sol taraf yukardan aþaðý
else if(ekran[0][1]==3&&ekran[1][1]==3&&ekran[2][1]==3) return 'O';//Orta taraf yukardan aþaðý
else if(ekran[0][2]==3&&ekran[1][2]==2&&ekran[2][2]==3) return 'O';//sað taraf yukarýdan aþaðý

if(ekran[0][0]==3&&ekran[1][1]==3&&ekran[2][2]==3) return 'O';//soldan saða çapraz
if(ekran[0][2]==3&&ekran[1][1]==3&&ekran[2][0]==3) return 'O';//saðdan sola çapraz

}


Bu mesaja 1 cevap geldi.
L
12 yıl
Er

arkadaslar end. müh. 1.sınıftayım. bilgisayar programlama dersinde visual studio 2012 görüyoruz.hocamız ödev verdi ve benim yapamadığım sorularım var . Rica etsem yardımcı olabilecek arkadaslar var mı ?

SORUM: 1’den 10’a kadar sayıları kareleri ve küpleri ile beraber listeleyen program.

daha yeni oldugumuz ıcın konularda cok ileriye gidemedik. do loopa kadar gelebildik. Yardım ederseniz sevinirim