• Sonuç bulunamadı

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 1 DERSİ LAB. ÖDEVİ

N/A
N/A
Protected

Academic year: 2022

Share "İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 1 DERSİ LAB. ÖDEVİ"

Copied!
8
0
0

Yükleniyor.... (view fulltext now)

Tam metin

(1)

İ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)

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;

}

(3)

*****(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','ü','ö'};

}

. . .

. . .

. . .

. . .

. . .

. . .

. . .

. . .

. . .

. . .

(4)

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

(5)

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";

. . .

. . .

. . .

. . .

. . .

. . .

. . .

. . .

(6)

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

(7)

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.

(8)

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);

}

Referanslar

Benzer Belgeler

• Bağlaç olan «ki» ise kendinden önce gelen sözcükten ayrı yazılır.. Bu sözcük cümleden çıkarıldığında cümlenin anlamında önemli bir bozukluk

» Bir sözcüğün iç sesinde, aynı nitelikli iki ünlü arasında bulunan &lt;ğ&gt; söyleyişte yitirildiğinde, yanyana kalan ünlüler uzar.. (1) uğur

DERSİ

Büyük ünlü uyumu bir kelimedeki ünlü harflerin ince veya kalın olmasıyla ilgilidirA. ünlü uyumu bir kelimedeki ünlü harflerin ince veya kalın

taşeron. Bir projenin tamamını yapmayı üstlenen ana yükleniciden işin belirli parçalarını onunla ayrı bir sözleşme yaparak tamamlamayı üstlenen malzeme ya da

Levhalarda özgül kütle, tutkal kullanım oranını ve suda bekletme suresinin su alma miktarı ve kalınlık artışı üzerine etkilerini belirlemek için gruplar arasında

VoIP ağına bağlı ISDN yetenekli PBX santralleri aynı zamanda analog dış hatlar üzerinden telefon ağına (PSTN) ve/veya sayısal dış hatlar (ISDN-PRI:

Sonucu z(n) ’in FFT’ si ile çarpıp, filtre çıkışını elde etmek için çarpımın IFFT’ sini hesaplayın.. Verilen FIR filtreleri kullanarak x(n) işaretindeki