İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 1 DERSİ LAB. ÖDEVİ
****(1. Ve 2. sorular çıktı üzerinde el yazısı ile doldurulmuş olarak laboratuvar görevlilerine elden teslim edilecektir.
Çıktıların KESİNLİKLE bilgisayar ortamında çalıştırılarak değil, el ile çözülmüş olması mecburidir.) *****
1- Aşağıdaki programların çıktıları nedir? Programın ekran çıktısını altlardaki boşluğa yazınız. (sonuçlar elden el yazısı ile teslim edilecektir. Çözümler bilgisayar ortamında değil kağıt ortamında çalıştırılmalıdır)
#include <iostream>
#include <string>
using namespace std;
void main(){
string a = "merhaba";
string b = "hello";
if (a == b) cout << a;
else
cout << b;
}
#include <iostream>
#include <string>
using namespace std;
int main(){
string c = "bir iki alti yedi";
char ch='i';
int i, cnt=0;
for (i =0;c[i]!='\0';++i){
if (ch == c[i]) ++cnt;}
cout << cnt;}
#include <iostream>
#include <string>
using namespace std;
int main(){
string c = "in.un. bilg. muh.";
int i;
for (i = 0; c[i] !='\0'; ++i);
cout << i;
}
#include <iostream>
#include <string>
using namespace std;
int Tr(string a, char c){
int i;
for (i = 0; a[i] != c; ++i);
return i;
}
int main(){
cout<<Tr("yeni dunya",'u');
}
#include <iostream>
#include <string>
using namespace std;
string Tree(string a, char c){
int i;
if (a[2] > c) return a + c;
else
return c + a;
}
int main(){
cout<< Tree("yeni dunya",'f');
}
#include <iostream>
#include <string>
using namespace std;
string Tr(string a, string c){
int i;
if (a.compare(c)<0) return a +"\n"+ c;
else
return c +"\n"+ a;
}
int main(){
cout<<Tr("yeni dunya","yeni hayat");
}
AD SOYAD : TESLİM TARİHİ :
OKUL NO : TESLİM SÜRESİ : 1 hafta Ödev No : 10
2- Aşağıdaki string sınıfı fonksiyonları ile yazılmış programların çıktıları nedir? Programın ekran çıktısını altlardaki boşluğa yazınız. (sonuçlar elden el yazısı ile teslim edilecektir. Çözümler bilgisayar ortamında değil kağıt ortamında çalıştırılmalıdır)
#include<iostream>
#include<string>
using namespace std;
void main(){
string str = "Merhaba Dunya";
cout <<"length of string : "<<str.length() << endl;
cout <<"size of string : " <<str.size() << endl;
}
#include<iostream>
#include<string>
using namespace std;
void main(){
string str = "C++ cok eglenceli";
string str1 = "";
if (str1.empty()) str1 = str;
cout << str1;
}
#include<iostream>
#include<string>
using namespace std;
void main(){
string sifre =
"hmyoanddlfklsdfksandsşdlfkşlsdfksandşsldfkldfkand";
string a = "and";
int p1=0;
while (p1 < sifre.length()){
p1 = sifre.find(a, p1);
cout << "deer:" << p1++ << endl;
p1 += a.length();
} }
#include<iostream>
#include<string>
using namespace std;
void main(){
string str = "Bilgisayar Muhendisligi";
string str1 = "Algoritma programlama";
string str2 = "hayat guzeldir";
str3=str.substr(0, 10)+str1.substr(9,12)+str2.substr(5,10);
cout <<str3;
}
#include<iostream>
#include<string>
using namespace std;
void main(){
string str="Inonu Universitesi Bilgisayar Muhendisligi";
string gn = str.erase(6, 6);
cout << "geriye kalan:" <<str.erase(0, 13) << endl;
}
#include<iostream>
#include<string>
using namespace std;
void main(){
string str = "Bilgisayar Bolumu";
string ekl = str.insert(11, "Muhendisligi");
cout << "str:" << ekl << endl;
}
*****(Aşağıdaki 3- 4- 5- sorular kodlama sorularıdır. Öğrenciler, C++ ile kodlanması istenen soruların kodlarını proje dosyası halinde çalışır halleri, lab saatinde, flash bellek veya kendi bilgisayarlarında kayıtlı olarak laboratuvar sorumlularına teslim edecek şekilde hazırlıklı gelmelidirler. Kodlar laboratuvar görevlilerinin talimatı ile, belirlenen e- posta adresine de gönderilebilir.)
3- Klavyeden girilen bir kelimelik karakter dizisinin Büyük ünlü uyumuna* uyup uymadığını bulan bir program yazılacaktır.
Bu programın ana gövdesi aşağıda verilmiştir. Buna göre aşağıda istenen fonksiyonları uygun yerlere C++ kodları ile yazınız.
*BÜYÜK ÜNLÜ UYUMU:
Bir kelimenin birinci hecesinde kalın bir ünlü (a, ı, o, u) bulunuyorsa, diğer hecelerdeki ünlüler de kalın; ince bir ünlü (e, i, ö, ü) bulunuyorsa diğer hecelerdeki ünlüler de ince olur:
ÖRN: adım, ağız, ayak, boyun, beşik, bilezik, gelincik, gözlük,
FONKSİYON YAPISI:
FONKSİYON TANIMLARI
1- char IlkUnluyuBul(char a[10]):
Parametrik değer olarak girilen char a[10] dizi karakterleri içerisindeki ilk ünlüyü bulmak için Unluler[] içindeki her elemanla a[] nın elemanlarını karşılaştırıp a[]’nın içerisindeki ilk bulduğu ünlü harfi döndürecektir.
ÖRNEK GÖSTERİM: EKRAN ÇIKTISI
bool BuyukUnluUyumu( char c[]){
char KalinUnlu[] ={'a','ı','o','u'};
char InceUnlu[] ={'e','i','ü','ö'};
char ilk;
ilk = IlkUnluyuBul(c);
if(UnluIncemi(ilk))
}
char IlkUnluyuBul(char a[10]){
char Unluler[] ={'a','ı','o','u','e','i','ü','ö'};
}
bool UnluIncemi(char a){
char InceUnlu[] ={'e','i','ü','ö'};
}
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
void main(){
setlocale(LC_ALL, "turkish");
char a[10]= "merhaba";
cout<<IlkUnluyuBul(a);
}
e
2- bool UnluIncemi(char a):
char tipinde ünlü bir harfi parametrik değer olarak alan ve ince bir ünlüyse true kalın bir ünlüyse false döndüren fonksiyondur.
Parametre değeri(char a),InceUnlu[ ] ‘ler içerisindeki karakterlerden herhangi birine eşitse ince ünlüdür, değilse kalın ünlüdür.
ÖRNEK GÖSTERİM: EKRAN ÇIKTISI
void main(){
setlocale(LC_ALL, "turkish");
char a[10]= "merhaba";
char f=IlkUnluyuBul(a);
if (UnluIncemi(f))
cout<<f<<" ünlüsü İNCE HARFTİR";
else
cout<<f<<" ünlüsü KALIN HARFTİR";
}
e ünlüsü İNCE HARFTİR
3- bool BuyukUnluUyumu(char c[]):
Bir string ifadenin parametrik değer olarak alındığı (char c[]) bir fonksiyonda string ifadenin büyük ünlü uyumuna uyup uymadığını return (true/false) yapan bir fonksiyondur.
Bu fonksiyon gövdesinde (1) ve (2) şıklarında verilen fonksiyonları çağıracaktır. Bu fonksiyon içerisinde ilk önce ilk ünlü bulunacak (1) ve bulunan ünlünün ince ünlümü yoksa kalın ünlümü olduğu (2) tespit edilecek,
Eğer ilk ünlü ince ünlü ise karakter dizideki diğer karakterlerle kalın ünlüler karşılaştırılacak,
İlk ünlü kalın ünlü ise de karakter dizideki elemanlar ince ünlülerle karşılaştırılacaktır.
Bu karşılaştırma sırasında herhangi bir eşitlik olursa büyük ünlü uyumu geçersiz olacak, kelime sonuna kadar tüm karşılaştırmalarda eşitlik yoksa Büyük ünlü uyumu geçerli olacaktır.
ÖRNEK GÖSTERİM: EKRAN ÇIKTISI
void main(){
setlocale(LC_ALL, "turkish");
char a[10]= "merhaba";
if ( BuyukUnluUyumu(a))
cout<<a<<" Büyük Ünlü Uyumuna uygundur";
else
cout<<a<<" Büyük Ünlü Uyumuna uygun DEĞİLDİR";
}
Merhaba Büyük Ünlü Uyumuna uygundur
C++ PROGRAM YAPISI:
#include<iostream>
using namespace std;
bool UnluIncemi(char a){
char InceUnlu[] = {'e','i','ü','ö'};
}
char IlkUnluyuBul(char a[10]){
char Unluler[] = {'a','ı','o','u','e','i','ü','ö'};
}
bool BuyukUnluUyumu( char c[]){
char KalinUnlu[] = {'a', 'ı', 'o', 'u' };
char InceUnlu[] = { 'e', 'i', 'ü', 'ö' };
char ilk;
ilk = IlkUnluyuBul(c);
if(UnluIncemi(ilk))
}
void main(){
setlocale(LC_ALL, "turkish");
char a[10];
cout<<”karakter dizisi giriniz :”;
cin>>a;
if (BuyukUnluUyumu(a))
cout<<a<<" kelimesi BÜYÜK ÜNLÜ UYUMUNA UYGUNDUR";
else
cout<<a<<" kelimesi BÜYÜK ÜNLÜ UYUMUNA UYGUN DEĞİLDİR";
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
4- C++ ‘ın string sınıfı içerisinde tanımlı olan fonksiyonları kullanarak (insert(), erase(), find(), v.b. ) kendisine parametre olarak verilen bir stringden yine parametre olarak verilen başka bir string’i çıkaran ve parametre olarak verilen bir string’de aranan bir string’i bir başka string’le yer değiştiren fonksiyonları yazınız. Fonksiyonların prototip , main() yapıları ile fonksiyonlar çalıştıktan sonraki ekran çıktıları aşağıda verilmiştir.
YAZILMASI İSTENEN FONKSİYON AÇIKLAMALARI
void stringdenCikar(string str, string cikarilan);
Bu fonksiyon kendisine parametre olarak verilen str stringi içerisinde string sınıfının fonksiyonlarını kullanarak cikarilan stringini çıkartma işlemin yapacaktır.
void stringleYerDegistir(string str, string aranan, string yerineGelen);
Bu fonksiyon ise kendisine parametre olarak verilen str içerisinde aranan stringini arıyacak ve o stringi yerineGelen stringi ile yer değiştirecektir.
YAZILMASI İSTENEN PROGRAMIN MAIN YAPISI
#include<iostream>
#include<string>
using namespace std;
void stringdenCikar(string str, string cikarilan);
void stringleYerDegistir(string str, string aranan, string yerineGelen);
void main(){
string ss = "bilgisayar programlamak, hayati programlamaktir";
string ss1 = "bilgisayar bolumu";
stringdenCikar(ss,"bilgisayar");
cout << ss<<endl;
stringleYerDegistir(ss1, " bolumu", " muhendisligi bolumu");
cout << ss1 << endl;
}
EKRAN ÇIKTISI:
programlamak, hayati programlamaktır bilgisayar muhendisligi bolumu
5- Boyutu (N) olan bir dizinin dışarıdan girilen bir sınır değerinin altındaki elemanlarını diziden çıkartan, çıkardığı dizi elemanının yerini alt taraftaki elamanları kaydıran C++ programı yazılacaktır.
Bu programı yazmak için yazılması istenen fonksiyonların prototipleri aşağıdaki kod kısmında verilmiş ve fonksiyon görevlerinde ne yapacakları açıklanmıştır. Örnek girdi ve dizi davranışı aşağıdaki açıklamada verilmiştir.
Dışarıdan girilen sınır 50 ve dizimizin ilk durumu aşağıdaki gibi olsun
YAZILMASI İSTENEN FONKSİYON AÇIKLAMALARI void diziOlustur(int dizi[], int adet);
Bu fonksiyon kendisine verilen dizinin bütün elemanlarına 0 ile 99 arasında rastgele sayı atayacaktır.
void diziKaydir(int dizi[], int adet, int kaydirilacakIndis);
Bu fonksiyon dizidekiKucukleriCikar() fonksiyonu içerisinde çağrılacaktır. Kendine parametre olarak verilen dizi[] içerisinden kaydirilacakIndis indisinden başlayarak sağ tarafındaki değerleri bir hücre sola kaydırır. Bu durum yukarıdaki şekilde açıklanmıştır.
int dizidekiKucukleriCikar(int* dizi, int adet, int sinir);
Kendisine verilen dizinin içerisindeki sayılardan sinir değerinin altındaki sayıları çıkartacaktır. Çıkarma yaparken diziKaydir() fonksiyonunu çağırarak tespit ettiği değerden itibaren kaydırmasını isteyecektir. Çıkartılan sayı adedi geri döndürülecektir.
void diziYazdir(int dizi[], int adet);
Kendisine verilen diziyi ekrana bastıracaktır.
YAZILMASI İSTENEN PROGRAMIN MAIN YAPISI
#include<iostream>
#include<string>
#include <time.h>
using namespace std;
void diziOlustur(int dizi[], int adet);
int dizidekiKucukleriCikar(int dizi[], int adet, int sinir);
void diziKaydir(int dizi[], int adet, int KaydirilacakIndis);
void diziYazdir(int dizi[], int adet);
void main(){
int sinirDegeri = 50;
int cikarilanAdet = 0;
srand(time(NULL));
int dizi[50];
diziOlustur(dizi, 50);
cikarilanAdet=dizidekiKucukleriCikar(dizi, 50, sinirDegeri);
cout << "diziden cikarilan elaman adedi: " << cikarilanAdet<<endl;
diziYazdir(dizi,50);
}