• 0216 488 01 91
  • destek@sonsuzbilgi.com.tr

Restoran Web Siteniz Olsun!

Üstelik QR Kod Menü Sistemi de Hediyemiz.

Sınırsız Menü, Sınırsız Yemek, SSL Sertifikası, Full Mobil Uyumlu, Full SEO Uyumlu
ve Daha bir çok özellik. Bugün kullanmaya başlayın.


C++ ile Yığın Yapısı İle Dosya Okuma ve İşlem Örnekleri

Adı : C++ ile Yığın Yapısı İle Dosya Okuma ve İşlem Örnekleri

Yığınlara dayalı veri yapıları, programlamada oldukça sık kullanılan bir tiptir. Bu veri yapısı, öğelerin önceden belirlenmiş bir sıraya göre eklendiği ve kaldırıldığı üstünden çalışır. C++ dili, birçok farklı yığın varlığı sunar ve her biri belirli bir amaçla kullanılır.

Bu yazımızda, C++ dilinde yığın veri yapısı ile dosya okuma ve işlem örnekleri ele alacağız.

Yığın Veri Yapısı

Yığınlarda, öğeler yığının en üstüne eklenir ve kaldırılır. Bu, sıraya uygun bir şekilde olur ve bu sıralama, öğelerin yerlerinde değişiklik yapılmadan önce belirlenir.

Yığın veri yapısı, birçok alanda farklı şekillerde kullanılır. Örneğin, bilgisayar algoritmalarında sıkça kullanılan bir tekniktir. İşlemlerde birçok olası seçeneğin arasında en iyisini seçme ihtiyacı doğduğunda, öğeleri yığın veri yapısına ekleyip, en uygun olanı seçmenin işlemi kolaylaştırdığı bilinir.

C++ için, birçok yığınlama seçeneği mevcuttur. Bunlar:

1. std::stack – Bu yığınlama, son eklenen öğenin en üstündeki öğe olduğunu tutar ve LIFO (Last In First Out) kuralına göre çalışır.

2. std::queue – Bu yığınlama şekli, ilk önce eklenen öğenin öncelikli olarak çıkarılması gerektiği ayrıntıda LIFO yerine FIFO (First In First Out) kuralına göre çalışır.

3. std::priority_queue – Bu yığınlama şekli, öncelik sırasına göre öğeleri saklar ve çıkarır. En yüksek öncelikli öğe yığının en üstündedir.

Dosya Okuma ve İşlem Örnekleri

Bu bölümde, yukarıda bahsedilen yığınlama yöntemlerine dayalı olarak C++ diliyle dosya okuma ve işleme örneklerini ele alacağız.

1. Dosyadan Veri Okuma ve Puan Hesaplama

Bu özellikle not hesaplama işlemlerinde ve sınav değerlendirmelerinde kullanışlı bir yöntemdir. İlk önce, bir dosyadan veri okuyarak, bir yığına ekleyeceğiz. Sonuç olarak, yığındaki verileri kullanarak her öğrenci için ortalamaları hesaplayacağız.

Aşağıdaki kod, öğrencinin adı, soyadı ve notları ile bir dosyadan veri okur:

```
#include
#include
#include
using namespace std;

struct Student
{
string name;
string surname;
double grade1;
double grade2;
};

int main()
{
stack studentStack;

string line;
ifstream file(\"students.txt\");

while (getline(file, line))
{
Student student;

stringstream lineStream(line);
getline(lineStream, student.name, ',');
getline(lineStream, student.surname, ',');
lineStream >> student.grade1;
lineStream.ignore();
lineStream >> student.grade2;

studentStack.push(student);
}

file.close();

int numberOfStudents = studentStack.size();
double average;
Student *tempStudent;

for (int count = 0; count < numberOfStudents; count++)
{
tempStudent = &studentStack.top();
average = (tempStudent->grade1 + tempStudent->grade2) / 2.0;

cout << tempStudent->name << \" \" << tempStudent->surname;
cout << \" - Average: \" << average << endl;

studentStack.pop();
}

return 0;
}
```

2. Postfix İfadelerini Hesaplama

Daha matematiksel bir örnek olarak, yığınlama işlemini kullanarak postfix ifadelerini hesaplamayı ele alabiliriz. Postfix ifadeleri, operatörlerin iki sayının sonunda yer aldığı terimlerdir. Bu ifadelerin hesaplanması, üst üste yığınlama ve çıkarım işlemlerinin uygulanmasını gerektirir.

Bu örnek, std::stack yığın veri yapısını kullanarak yığını ele alıyor ve postfix ifadesindeki sayıları yığına yerleştiriyor.

Daha sonra, yığındaki sayıların çıkarılması ve operatörlere göre işlem yapılması gerekiyor. Sonuçta, elde edilen sonuç yığının en üstüne yerleştirilir ve bir sonraki sayı işleme devam edilir.

Aşağıdaki kod, bir postfix ifadesinin hesaplanmasını gerçekleştirir:

```
#include
#include
#include
using namespace std;

int evaluatePostfix(string expression)
{
stack stk;

for (int i = 0; i < expression.length(); i++)
{
if (isdigit(expression[i]))
stk.push(expression[i] - '0');

else
{
int val1 = stk.top();
stk.pop();

int val2 = stk.top();
stk.pop();

switch (expression[i])
{
case '+':
stk.push(val2 + val1);
break;

case '-':
stk.push(val2 - val1);
break;

case '*':
stk.push(val2 * val1);
break;

case '/':
stk.push(val2 / val1);
break;
}
}
}
return stk.top();
}

int main()
{
string expression;
cout << \"Enter postfix expression: \";
cin >> expression;
cout << \"Result: \" << evaluatePostfix(expression);
return 0;
}
```

Sıkça Sorulan Sorular

1. Hangi yığın kullanılmalıdır?

C++ özelinde, birçok farklı yığınlama seçeneği mevcuttur. Bir uygulama için kullanılacak doğru olanın belirlenmesi, gereksinimlere bağlıdır. std::stack, LIFO yığınları için en uygun olanıdır. std::queue, FIFO yığınları için kullanılırken, std::priority_queue öncelikli sıralama gereksinimlerine göre kullanılır.

2. Yığın, hangi türdeki verileri saklayabilir?

Yığın, her türden verileri saklayabilir. Örneğin, yukarıdaki örnekte, student yapısı ile struct tanımlanmış verilerin saklandığı bir yığın örneği gösterilmiştir. Ancak, yığın, c++ dilinde birçok veri türlerini desteklediği için, işleyebileceğiniz veriler sadece bunlarla sınırlı değildir.

3. Bir yığın nasıl oluşturulur?

Yığın, stack şeklinde tanımlanır. Veritipi, yığının hangi türden verileri saklayacağını belirler. Ayrıca, yığın oluşturulduktan sonra push() ve pop() işlevleri ile veriler eklenebilir veya kaldırılabilir."

C++ ile Yığın Yapısı İle Dosya Okuma ve İşlem Örnekleri

Adı : C++ ile Yığın Yapısı İle Dosya Okuma ve İşlem Örnekleri

Yığınlara dayalı veri yapıları, programlamada oldukça sık kullanılan bir tiptir. Bu veri yapısı, öğelerin önceden belirlenmiş bir sıraya göre eklendiği ve kaldırıldığı üstünden çalışır. C++ dili, birçok farklı yığın varlığı sunar ve her biri belirli bir amaçla kullanılır.

Bu yazımızda, C++ dilinde yığın veri yapısı ile dosya okuma ve işlem örnekleri ele alacağız.

Yığın Veri Yapısı

Yığınlarda, öğeler yığının en üstüne eklenir ve kaldırılır. Bu, sıraya uygun bir şekilde olur ve bu sıralama, öğelerin yerlerinde değişiklik yapılmadan önce belirlenir.

Yığın veri yapısı, birçok alanda farklı şekillerde kullanılır. Örneğin, bilgisayar algoritmalarında sıkça kullanılan bir tekniktir. İşlemlerde birçok olası seçeneğin arasında en iyisini seçme ihtiyacı doğduğunda, öğeleri yığın veri yapısına ekleyip, en uygun olanı seçmenin işlemi kolaylaştırdığı bilinir.

C++ için, birçok yığınlama seçeneği mevcuttur. Bunlar:

1. std::stack – Bu yığınlama, son eklenen öğenin en üstündeki öğe olduğunu tutar ve LIFO (Last In First Out) kuralına göre çalışır.

2. std::queue – Bu yığınlama şekli, ilk önce eklenen öğenin öncelikli olarak çıkarılması gerektiği ayrıntıda LIFO yerine FIFO (First In First Out) kuralına göre çalışır.

3. std::priority_queue – Bu yığınlama şekli, öncelik sırasına göre öğeleri saklar ve çıkarır. En yüksek öncelikli öğe yığının en üstündedir.

Dosya Okuma ve İşlem Örnekleri

Bu bölümde, yukarıda bahsedilen yığınlama yöntemlerine dayalı olarak C++ diliyle dosya okuma ve işleme örneklerini ele alacağız.

1. Dosyadan Veri Okuma ve Puan Hesaplama

Bu özellikle not hesaplama işlemlerinde ve sınav değerlendirmelerinde kullanışlı bir yöntemdir. İlk önce, bir dosyadan veri okuyarak, bir yığına ekleyeceğiz. Sonuç olarak, yığındaki verileri kullanarak her öğrenci için ortalamaları hesaplayacağız.

Aşağıdaki kod, öğrencinin adı, soyadı ve notları ile bir dosyadan veri okur:

```
#include
#include
#include
using namespace std;

struct Student
{
string name;
string surname;
double grade1;
double grade2;
};

int main()
{
stack studentStack;

string line;
ifstream file(\"students.txt\");

while (getline(file, line))
{
Student student;

stringstream lineStream(line);
getline(lineStream, student.name, ',');
getline(lineStream, student.surname, ',');
lineStream >> student.grade1;
lineStream.ignore();
lineStream >> student.grade2;

studentStack.push(student);
}

file.close();

int numberOfStudents = studentStack.size();
double average;
Student *tempStudent;

for (int count = 0; count < numberOfStudents; count++)
{
tempStudent = &studentStack.top();
average = (tempStudent->grade1 + tempStudent->grade2) / 2.0;

cout << tempStudent->name << \" \" << tempStudent->surname;
cout << \" - Average: \" << average << endl;

studentStack.pop();
}

return 0;
}
```

2. Postfix İfadelerini Hesaplama

Daha matematiksel bir örnek olarak, yığınlama işlemini kullanarak postfix ifadelerini hesaplamayı ele alabiliriz. Postfix ifadeleri, operatörlerin iki sayının sonunda yer aldığı terimlerdir. Bu ifadelerin hesaplanması, üst üste yığınlama ve çıkarım işlemlerinin uygulanmasını gerektirir.

Bu örnek, std::stack yığın veri yapısını kullanarak yığını ele alıyor ve postfix ifadesindeki sayıları yığına yerleştiriyor.

Daha sonra, yığındaki sayıların çıkarılması ve operatörlere göre işlem yapılması gerekiyor. Sonuçta, elde edilen sonuç yığının en üstüne yerleştirilir ve bir sonraki sayı işleme devam edilir.

Aşağıdaki kod, bir postfix ifadesinin hesaplanmasını gerçekleştirir:

```
#include
#include
#include
using namespace std;

int evaluatePostfix(string expression)
{
stack stk;

for (int i = 0; i < expression.length(); i++)
{
if (isdigit(expression[i]))
stk.push(expression[i] - '0');

else
{
int val1 = stk.top();
stk.pop();

int val2 = stk.top();
stk.pop();

switch (expression[i])
{
case '+':
stk.push(val2 + val1);
break;

case '-':
stk.push(val2 - val1);
break;

case '*':
stk.push(val2 * val1);
break;

case '/':
stk.push(val2 / val1);
break;
}
}
}
return stk.top();
}

int main()
{
string expression;
cout << \"Enter postfix expression: \";
cin >> expression;
cout << \"Result: \" << evaluatePostfix(expression);
return 0;
}
```

Sıkça Sorulan Sorular

1. Hangi yığın kullanılmalıdır?

C++ özelinde, birçok farklı yığınlama seçeneği mevcuttur. Bir uygulama için kullanılacak doğru olanın belirlenmesi, gereksinimlere bağlıdır. std::stack, LIFO yığınları için en uygun olanıdır. std::queue, FIFO yığınları için kullanılırken, std::priority_queue öncelikli sıralama gereksinimlerine göre kullanılır.

2. Yığın, hangi türdeki verileri saklayabilir?

Yığın, her türden verileri saklayabilir. Örneğin, yukarıdaki örnekte, student yapısı ile struct tanımlanmış verilerin saklandığı bir yığın örneği gösterilmiştir. Ancak, yığın, c++ dilinde birçok veri türlerini desteklediği için, işleyebileceğiniz veriler sadece bunlarla sınırlı değildir.

3. Bir yığın nasıl oluşturulur?

Yığın, stack şeklinde tanımlanır. Veritipi, yığının hangi türden verileri saklayacağını belirler. Ayrıca, yığın oluşturulduktan sonra push() ve pop() işlevleri ile veriler eklenebilir veya kaldırılabilir."


Emlak Web Sitesi

Büyümeyi hayal etmeyin, bugün başlayın...

*256 Bit SSL Sertifikası * Full Mobil Uyumlu * Full SEO Uyumlu
İsterseniz Mobil Uygulama Seçeneğiyle


Dosya okuma Yığın Yapısı İşlem Örnekleri C++ Anahtar kelimeler Türkçe Yığın