Today You can easily add posts, images, quotes, links, music and video to your WordPress tumblog from your iPhone.
Black Sakura Template is perfect for this kind of personal blog!
29
Ara

Satranç Tahtası Üzerinde Atın Hareketi

Program hazır ama cuma gününü beklemek zorundayım kusura bakmayın.

Projeyi kısaca anlatim.

At satranç tahtasında yapabileceği maksimum hamleyi yapmaya çalışıyor.

projede allegro kütüphanesi kullanılmıştır ve atın kaç hamle yapacağı yazmaktadır. Ayriyeten at hareketine satranç tahtasında tıkladığımız bölgede harekete başlar ve bütün tahtayı gezene kadar devam eder.

10
Ara

Dosyadan Bağlı Listeye Atama ve Karşılaştırma

Bu gün de sizlere diğer iki yazımın birleştirilmiş halini yani dosyadan bağlı listeye atayıp karşılaştırma yapan programı paylaşacağım.

#include stdlib.h
#include conio.h
#include stdio.h
#include windows.h
#include locale.h
 
typedef struct Liste {
	char  veri[1024];
	struct Liste* sonra;
};
Liste* ilkkelime=NULL,*ilkkelime2=NULL,*sonkelime,*sonkelime2,*yeniliste,*ilk,*ilk2;
int kelimesayisi=0,kelimesayisi2=0;
char dosya[100],dosya2[100];
void Listeyeekle(void);
void Listeyeekle2(void);
void Karsilastir(Liste *,Liste *,int,int);
 
main()
{
	setlocale(LC_ALL,"Turkish");
	printf("1. Dosya Yolunu Giriniz : ");
	scanf("%s",&dosya);
	printf("2. Dosya Yolunu Giriniz : ");
	scanf("%s",&dosya2);
	Listeyeekle();
	Listeyeekle2();
	if(kelimesayisi<kelimesayisi2)
	{
		ilk=ilkkelime;
		ilk2=ilkkelime2;
	}
	else
	{
		ilk=ilkkelime;
		ilk2=ilkkelime2;
	}
	Karsilastir(ilk,ilk2,kelimesayisi,kelimesayisi2);
	getch();
}
 
void Listeyeekle(void)
{
	FILE *fp;
    fp=fopen(dosya,"r");
    while(!feof(fp))
	{
		if((yeniliste=(Liste *) malloc(sizeof(struct Liste)))==NULL)
		{
			puts("Bellekte Yeterli Alan Yok !!!");
			break;
		}
		if(ilkkelime==NULL)
		{
			fscanf(fp,"%s",yeniliste->veri);
			kelimesayisi++;
			ilkkelime=yeniliste;
			sonkelime=ilkkelime;
			yeniliste->sonra=NULL;
		}
		else
		{
			fscanf(fp,"%s",yeniliste->veri);
			kelimesayisi++;
			sonkelime->sonra=yeniliste;
			sonkelime=sonkelime->sonra;
			sonkelime->sonra=NULL;
		}
	}
	fclose(fp);
}
 
void Listeyeekle2(void)
{
	FILE *fp2;
	fp2=fopen(dosya2,"r");
	while(!feof(fp2))
	{
		if((yeniliste=(Liste *) malloc(sizeof(struct Liste)))==NULL)
		{
			puts("Bellekte Yeterli Alan Yok !!!");
			break;
		}
		if(ilkkelime2==NULL)
		{
			fscanf(fp2,"%s",yeniliste->veri);
			kelimesayisi2++;
			ilkkelime2=yeniliste;
			sonkelime2=ilkkelime2;
			yeniliste->sonra=NULL;
		}
		else
		{
			fscanf(fp2,"%s",yeniliste->veri);
			kelimesayisi2++;
			sonkelime2->sonra=yeniliste;
			sonkelime2=sonkelime2->sonra;
			sonkelime2->sonra=NULL;
		}
	}
	fclose(fp2);
}            
 
void Karsilastir(Liste *ilk,Liste *ilk2,int kelimesayisi,int kelimesayisi2)
{
	int ayni=0;
	Liste *yeni=ilk,*yeni2=ilk2;
	while(yeni->sonra!=NULL)
	{
		yeni2=ilk2;
		int sayac=3;
		while(yeni2->sonra!=NULL)
		{
			char deger[1024]="";
			sayac=3;
			while((strcmp(yeni->veri,yeni2->veri)==0) && (sayac>0) && (yeni2->sonra!=NULL) && (yeni->sonra!=NULL))
			{
				strcat(deger, yeni->veri);
				strcat(deger, " ");
				sayac--;
				yeni2=yeni2->sonra;
				yeni=yeni->sonra;
				ayni++;
			}
			if(sayac==0)
			{
				while((strcmp(yeni->veri,yeni2->veri)==0) && (yeni2->sonra!=NULL) && (yeni->sonra!=NULL))
				{
					ayni++;
					strcat(deger, yeni->veri);
					strcat(deger, " ");
					yeni2=yeni2->sonra;
					yeni=yeni->sonra;
				}
				printf("%s\n",deger);
			}
			if(yeni2->sonra!=NULL)
			yeni2=yeni2->sonra;
		}
		if(yeni->sonra!=NULL)
		yeni=yeni->sonra;
	}
	float yuzde;
	if(kelimesayisi>kelimesayisi2)
	yuzde=(float)ayni/(float)kelimesayisi*100;
	else
	yuzde=(float)ayni/(float)kelimesayisi2*100;
	printf("\n\n Benzerlik Oranı=%%%.1f",yuzde);
}

Evet arkadaşlar buyurun biraz geç yayınladık bunu ama diğer türlü kopya muamelesi körebilirdik.

9
Ara

Bağlı Listede Karşılaştırma

Kendi yaptığım projenin karşılaştırma kodları buyurun buradan faydalanabilirsiniz:

while(yeni->sonra!=NULL)
	{
		yeni2=ilk2;
		int sayac=3;
		while(yeni2->sonra!=NULL)
		{
			char deger[1024]="";
			sayac=3;
			while((strcmp(yeni->veri,yeni2->veri)==0) && (sayac>0) && (yeni2->sonra!=NULL) && (yeni->sonra!=NULL))
			{
				strcat(deger, yeni->veri);
				strcat(deger, " ");
				sayac--;
				yeni2=yeni2->sonra;
                      yeni=yeni->sonra;
			}
			if(sayac==0)
			{
				while((strcmp(yeni->veri,yeni2->veri)==0) && (yeni2->sonra!=NULL) && (yeni->sonra!=NULL))
				{
					strcat(deger, yeni->veri);
					strcat(deger, " ");
					yeni2=yeni2->sonra;
					yeni=yeni->sonra;
				}
				printf("%s\n",deger);
			}
			if(yeni2->sonra!=NULL)
			yeni2=yeni2->sonra;
		}
		if(yeni->sonra!=NULL)
		yeni=yeni->sonra;
	}

Kullanacak arkadaşların kodları değiştirmelerini istiyorum hem siz hem de ben yanmıyayım.

5
Ara

Dosyadan Bağlı Listeye Kelime Aktarma

Bugün size C dilinde dosyadan Bağlı Listeye nasıl kelime atanır onu paylaşacağım.

Program kodları bunlar:

#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>
// Yapinin Olusturulmasi
struct List
{
char *val; // Kelimeyi tutacak val degiskeni
struct List * next; // List yapsini gosteren Pointer
};
typedef struct List Node; // Node Adini Vererek Bu Yapiyi Olustur
Node *curr, *head; // Bu Yapiyi gosteren curr ve head adinda degiskenler olustur
// Verilen Stringi Su Anki Node'un Val Bolumune Ekler,
// Listeyi Bir Uzatir.
void ekle(char *deger)
{
// Su Anki Nodeun Degerini Belirle
curr->val = deger;
// Yeni Bir Node Yarat
Node *tmp = (Node*)malloc(sizeof(Node));
// Node'un Bir Sonraki Gosterdigi Node'u NULL Olarak Ayarla
tmp->next = NULL;
// Su Andaki Node'un Bir Sonraki Gosterdigi Node'u Ayarla
curr->next = tmp;
// Node'un Tuttugu Kelimeyi Bas
printf("%s",curr->val);printf(" ");
// Curr Node'u Bir Sonrakine Al
curr = curr->next;
}
// Verilen Stringi Bosluk Karakterine Gore Ayirir
// Boylelikle Kelimeler Bulunur.
// Bulunan Her Kelime ekle(char*str) fonksiyonuna gonderilir
// Ve Listeye Eklenmis Olur
void satiriAyir(char *satir)
{
char *kelime = NULL;
kelime = strtok (satir," ");
while (kelime != NULL)
{
ekle(kelime);
kelime = strtok (NULL, " ");
}
}

int main()
{
setlocale(LC_ALL,"Turkish");
// Bağlı listeyle alakası yok ama ekranda
//Türkçe karakterleri yazmamıza yarar.
curr = (Node *)malloc(sizeof(Node));
curr->next = NULL;
head = curr;
FILE *fp = fopen("2.txt","r");
char satir[1000];
while (fgets( satir, sizeof(satir), fp ))
satiriAyir(satir);
fclose(fp);
getch();
return 0;
}

Bu kadar eğer konu ile ilgili sorularınız olursa bu konu altında sorularınızı sorabilirsiniz.

22
Kas

Merhaba dünya!

Herkese Selamlar. Ben Harun AYDIN olarak yeni kişisel ve bilgi paylaşım bloğumu yayın hayatına geçirmiş bulunmaktayım. “Haydı Hayırlısı” diyerek bu günden itibaren bloglamaya başlıyalım.

© Copyright 2010-2012 Harun AYDIN. All rights reserved.