MSHOWTO Yazılım Semineri

10 Mayıs Pazar günü Bahçeşehir Üniversitesi’nde herkese açık şekilde Bilgisayar Mühendisleri Odası’nın da desteği ile ilk yazılım seminerimizi gerçekleştiriyor olacağız.

MSHOWTO olarak yıllardır altyapı seminerlerinde sizler ile bir araya geliyorduk. Ve bildiğiniz gibi bir süre önce yazılım ekibimiz ile yazılım alanında da paylaşımlar yapmaya başlamıştık. Ve ilk seminerimizi de 10 mayıs günü Beşiktaş’ta Bahçeşehir Üniversitesi’nde gerçekleştireceğiz.

Detaylar ve kayıt için:

Kayıt için : http://bmo-mshowto-yazilim-gunleri.eventbrite.com

İletişim    : istanbul@bimo.org.tr

mshowto-yazilim

Splitting a Linked List

I’ll try to explain how to split a linked list and return second part to another list. Logic is, first pass the list and count items. After that pass list till half of count and after passes return the address of list. Let’s look codes;

node struct should look like;

1

typedef struct tagNode{
	int data;
	struct tagNode* pNext;
}Node;

I have AddItemToEnd function;

 

Node* AddItemToEnd(Node* pList, int data)
{
	Node* pTemp;
	Node* pNewItem = malloc(sizeof(Node));
	pNewItem->data = data;
	pNewItem->pNext = NULL;

	if (NULL == pList)
		return pNewItem; // If list is empty, return new item.
	pTemp = pList;
	while (NULL != pTemp->pNext)
		pTemp = pTemp->pNext; // Pass the list until the end.
	pTemp->pNext = pNewItem; // Add my new item to the end.

	return pList; // return list
}

Let me add four item like 1,2,3,4. You can imagine it as like this picture:

2

And my Split function;

 

Node* SplitList(Node* pList){
	Node* pTemp;
	int count=1;
	int i;


	pTemp = pList; // I don't want to change my original list, thats why I used temp.

	if (NULL == pList->pNext || NULL == pList){
		return pList; // If list is empty or has only one item, cannot split and return list back.
	}

	while (NULL != pList->pNext){
		count++; // Counts items on the list. When pList's pNext become NULL counting will stop.
		pList = pList->pNext;
	}


	for (i = 0; i < count / 2; i++) 		
            pTemp = pTemp->pNext;
	
	return pTemp;

}

I’ve tried to trace it with an image;

3Finally my print and main functions here;

 

void PrintList(Node* list){

	while (NULL != list){
		printf("Data: %d\n", list->data);
		list = list->pNext;
	}

}


int main(int argc, char** argv)
{
	Node* list = NULL;
	Node* Split;
	int i;

	for (i = 0; i < 4; i++)
		list = AddItemToEnd(list, i + 1);

	Split = SplitList(list);

	printf("*****Before Split*****\n");
	PrintList(list);
	printf("\n*****After Split*****\n");
	PrintList(Split);

	return EXIT_SUCCESS;
}

My output is like this:

4

C ile Asal Sayı, Tek ve Çift Sayıları Gösteren Program

Bu programda 100’e kadar olan sayıların tek seferde asal mı tek mi çift mi olduğunu görebiliyoruz. Fazla üstünde durmadım, geliştirilebilir. Mesela 100 değil de kullanıcının istediği kadar sayı gösterme vs yapılabilir.

primeprogram

Kodlar: http://www.mediafire.com/?6a16c3z14463p3b

C ile dosyadan okuma

C ile dosyadan okumanın birçok yöntemi var. Ben sizlere en çok kullandığım yöntemi anlatacağım.

Öncelikle read yapacağımız bir dosyamızın olması gerekiyor. Örnek olarak içinde aşağıdaki bilgilerin olduğu bir dosyamız olsun;

EUROVISION WINNERS
2000 – Denmark
2001 – Estonia
2002 – Latvia
2003 – Turkey
2004 – Ukraine
2005 – Greece
2006 – Finland
2007 – Serbia
2008 – Russia
2009 – Norway
2010 – Germany
2011 – Azerbaijan
2012 – Sweden
2013 – Denmark

Ben bu dosyada yılları ve ülkeleri kullanmak istiyorum. Yani benim almam gereken bilgiler 2. satırdan başlıyor. Bir struct tanımlıyorum;

typedef struct{
int year;
char country[20];
} eurovision_t;

Okumaya devam et

C ile Gano Hesaplama Programı

ganov

Derslerinizin kredisini ve notunuzu giriyorsunuz, gerisini program yapıyor. Kolay ve kullanışlı bir program. double calculateGano fonksiyonundaki kısmı kendi  üniversitenizin not sistemine göre düzeltebilirsiniz.  Biraz basit fakat yarım dönemde bu kadar yapıldı. Geliştirilebilir..

Programı bilgisayarınızda kullanmak için tıklayın.

Okumaya devam et