İlginizi Çekebilir
  1. Ana Sayfa
  2. C++

C++ Örnek Projeler – Kolay Seviye 7 Adet #5

C++ Örnek Projeler – Kolay Seviye 7 Adet #5
C++ Örnek Projeler – Kolay Seviye 7 Adet #4
+ - 0

Merhabalar herkese, C++ Örnek Projeler – Kolay Seviye 7 Adet #5 yazım ile C++ derslerine devam ediyorum. Bu dersimizde C++ üzerine kolay seviyede 7 farklı probleme ve çözümlerine bakacağız. Daha önceki iki dersimizde giriş seviyelere 2 ayrı derste ve kolay seviyede iki derse bakmıştık. C++ eğitim seti sayfasından yazılara ulaşabilirsiniz. o derslere ulaşabilirsiniz. Biliyorsunuz Yapay zeka dersleri için C++ ‘a öğrenmeye başlamıştım. Yapay zeka konusunda bir kaç sıralama algoritmasına değinmiştik. Yakın zamanda güzel bir kurs bulmuştum. O kursta 75 tane örnek yer alıyor. Bu dersin github sayfasına giderseniz ilgili kursun bağlantısına ulaşabilirsiniz.

C++ Örnek Projeler – Kolay Seviye 7 Adet #5

Fazla uzatmadan örneklere bakalım arkadaşlar.

1 – Parametre olarak gönderilen İngilizce kelimelerin çoğul olup olmadıklarını kontrol eden metodu yazın. Çoğul ise True, tekil ise False olarak geri dönüş verin.

// Kod Egzersizi 13
// ingilizce dilinde string olarak girilen ifadenin çoğul olup olmadığını belirleyen metodu yazın. Çoğul ise True, Tekil ise False dönsün.
// çoğul ifadesi olarak sondaki "s" karakteri kontrol edilecek.
#include <iostream>
bool isPlural(std::string word) {

	const char plural = 's';
	if (word[word.size() - 1] == plural)
		return true;
	else
		return false;
	//return word[word.size() - 1] == 's';
}

İngilizce dilinde çoğul eki, kelimenin son harfi sesli ise “s” sessiz ise “es” tir. Bazı özel kelimelerde ise kelimenin yazılışı bile farklıdır. Burada sadece “s” harfine bakılmıştır.

 

2 – Parametre olarak aldığı dizideki tüm string ifadelerin sonuna, aldığı ikinci parametreyi ekleyen metodu yazın.

// Kod Egzersizi 14
// parametre olarak aldığı dizideki tüm nesnelerin sonunda, aldığı ikinci parametreyi ekleyen metodu yazın.
#include <iostream>
#include <vector>
std::vector<std::string> addEnding(std::vector<std::string> arr, std::string ending) {
	for (int i = 0; i < arr.size(); i++)
	{
		arr[i] += ending;
	}
	return arr;
}

 

3 –  1 ile parametre olarak aldığı sayıya ulaşana kadarki tüm sayıların toplamını yapan metodu yazın.

// Kod Egzersizi 15
// 1'den başlayarak parametre olarak verilen sayıya kadarki tüm sayıları toplayan metodu yazın.
#include <iostream>
int addUpTo(int n) {
	if (n >= 1)
	{
		int sum = 0;
		for (int i = 1; i <= n; i++)
			sum += i;
		return sum;
	}
	else
		return 0;

	// recursive çözüm
	/*if (n == 1) { return 1; }
	else return n + addUpTo(n - 1);*/
}

NOT: her for döngüsü recursive metot, her recursive metot ise for döngüsü ile yazılabilir. Burada iki çözüm şeklini de görebilirsiniz.

 

4 – Bir  kahve dükkanında satılan her 6 fincan kahvede +1 fincan kahve bedava verilmektedir. Parametre olarak verilen kahve sayısına kaç tane bedava verilmesi gerektiğini bulan metodu yazın.

// Kod Egzersizi 16
// Alınan her 6 kahvede bir kahve bedava. Yani 6 kahve alırsam 7 kahvem olur. Parametre olarak girilen kahve sayısına göre toplam kahve sayısını veren metodu yazın.
int totalCups(int n) {
	return n + (n / 6);
}

Bazı istekler zor gibi görünse de aslında ne kadar basit olabileceğini görebiliyorsunuz. :)

 

5 – Parametre olarak aldığı string ifadede ard arda tekrar eden harfler var ise True, yok ise False dönen metodu yazın. Örneğin, yummy = True, Mustafa = False

// Kod Egzersizi 17
// parametre olarak aldığı string degerde ard arda tekrar eden kelimeler var ise True yok ise False dönen metodun yazın.
#include <iostream>
bool double_letters(std::string word) {
	for (int i = 0; i < word.size(); i++)
	{
		if (i >= 1)
			if (word[i - 1] == word[i])
				return true;
	}
	return false;
}

Burada, index üzerinden -1 verdiğimiz için ve kontrol sırasında hata vermesini istemediğimiz için if kontolü  koyduk. İlk karakteri sadece, ikinci karaktere geçildiğinde kontrol edilir.

 

6 – Parametre olarak aldığı sayının hangi ay olduğunu veren metodu yazın.

// Kod Egzersizi 18
// Dışarıdan parametre olarak girilen sayının hangi ay olduğunu veren metodu yazın.
#include <iostream>
#include <vector>
#include <string>
using namespace std;
std::string monthName(int n) {
	switch (n)
	{
	case 1: return "January";	break;
	case 2: return "February";	break;
	case 3: return"March";	break;
	case 4: return"April";	break;
	case 5: return"May";	break;
	case 6: return"June";	break;
	case 7: return"July";	break;
	case 8: return"August";	break;
	case 9: return"September";	break;
	case 10:return "October"; break;
	case 11:return "November"; break;
	case 12:return "December"; break;
	default:return ""; break;
	}
	//vector<string> a = { "January","February","March","April","May","June","July","August","September","October","November","December" };
	//return a[n - 1];
}

 

7 – Parametre olarak aldığı dizideki sayıların, parametre olarak aldığı ikinci parametrenin çarpanları olup olmadığını kontrol eden metodu yazın.

// Kod Egzersizi 19
// parametre olarak verilen dizideki sayıların, parametre olarak verilen diğer sayının çarpanları olup olmadığını kontrol eden metodu yazın.
// 2,3,4 sayıları 12'nin çarpanlarıdır.
#include <iostream>
#include <vector>	
bool checkFactors(std::vector<int> f, int num) {
	for (int i = 0; i < f.size(); i++)
	{
		if (num % f[i] != 0)
			return false;
		return true;
	}
}

Mod alma işlemi ile dizideki tüm karakterin tam bölünüp bölünmediğine bakarak sonucu bulabilir. Eğer bir tanesi bile bölünemiyor ise false dönecek.

 

7 adet daha kolay seviye örneğe göz attık. Kolay seviye de burada bitiyor. Yakın zamanda Orta seviye örneklere geçeceğiz


C++ Örnek Projeler – Kolay Seviye 7 Adet #4  yazımda bu kadardı arkadaşlar. Bu dersler Yapay Zeka temelinde olduğundan dolayı ilgili kategorinin derslerine ulaşmak için bağlantıya tıklayabilirsiniz. Ayrıca C++ dersleri içinde bir sayfa hazırladım. O sayfaya da bağlantıya tıklayarak ulaşabilirsiniz.

Her zamanki gibi Github projesine bağlantıya tıklayarak ulaşabilir ve indirebilirsiniz. Ayrıca bu yazının PDF’ine buraya ve ya buraya tıklayarak ulaşabilirsiniz. Discord’a katılmayı unutmayın.

Diğer derslerde görüşürüz.

Bol Kodlu günler! ?

Bu yazıya tepkiniz ne oldu?

Yazar Hakkında

Lise Ağ Sistemleri ve Yönetimi bölümü, üniversite Bilgisayar Programcılığı bölümü Ön Lisans, Yönetim Bilişim Sistemleri Lisans öğrenimi aldım. Askerlik görevimi tamamladım. Uzmanlık alanım; C# ve SQL Programlama dilleri ile müşteri odaklı, kullanıcı dostu ERP ve CRM gibi sistemleri geliştirmektir. Ayrıca şuanda PHP ve MYSQL alanında projeler geliştirmekteyim. C++, Phyton, Xamarin, MVC gibi konuları öğrenmek ve kendimi geliştirme çabası içerisindeyim. Discord için: https://discord.gg/FBxZeHu9

Değerli yorumlarınızı bekliyorum. :)