Fall Object-Oriented Programming Laboratory 02 - Structures

Benzer belgeler
Fall Object-Oriented Programming Laboratory 03

#ifndef VEKTOR_H #define VEKTOR_H. struct vektor_s { double x; double y; double z; }; typedef struct vektor_s vektor_t;

#ifndef COMPLEX_H #define COMPLEX_H

Object-Oriented Programming Laboratuvar 11

#ifndef FATURA_H #define FATURA_H

Ad Soyad: İmza: Object-Oriented Programming Quiz 4 60dk. Kapalı kitap. Kapalı defter. Kapalı cep telefonu. Hesap makinesi yok.

Diziler. Yrd.Doç.Dr.Bülent ÇOBANOĞLU

Object-Oriented Programming Lab 4. - Sıcaklık değeri, Kelvin biriminde saklansın. Varsayılan sıcaklık değeri K olsun.

Dizi nin Önemi. Telefon rehberindeki numaralar, haftanın günleri gibi v.b.

String ve Karakter Dizileri. Yrd. Doç. Dr. Fehim KÖYLÜ Erciyes Üniversitesi Bilgisayar Mühendisliği Bölümü

BİLG Dr. Mustafa T. Babagil 1

C++ Dersi: Nesne Tabanlı Programlama

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

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

NESNEYE YÖNELİK PROGRAMLAMA C++ a Giriş

Object-Oriented Programming Laboratuvar 10

C++ Dersi: Nesne Tabanlı Programlama

C++ Giriş Ders 1 MSGSU Fizik Bölümü Ferhat ÖZOK Kullanılacak kaynak: Published by Juan Soulié

Dr. Fatih AY Tel: fatihay@fatihay.net

Bil 101 Bilgisayar Yazılımı 1 Çözümlü Sorular Timur Karaçay

Final Sınavı Soruları Güz, Süre: 90 Dakika

Örnek1: #include <iostream> #include <string> using namespace std;

1 PROGRAMLAMAYA GİRİŞ

elemanlı bir dizide bir sinyalin 1 er saniye aralıklarla ölçülen gerilim değerleri tutulmaktadır. Bu sinyalin tepeden tepeye genliğini,

NESNEYE YÖNELİK PROGRAMLAMA

YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ. 3. Hafta

DİZİLER-KATARLAR ALGORİTMA VE PROGRAMLAMA II

Object-Oriented Programming Lab Shape, TwoDShape, ThreeDShape, Disk, Square, Sphere, Cube class hiyerarşisi.

#include <stdio.h> int main(void) { float sayi; float * p; p = &sayi; printf("deger girin:"); scanf("%f", p); printf("girilen deger:%f\n", *p);

Deney 7: Fonksiyon Tanımlama ve Parametre Aktarım Yöntemleri

C++ Operatörler (Operators)

KOCAELİ ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ. BİLGİSAYAR LABORATUVARI II FİNAL SINAVI SORU ve CEVAPLARI(I. ogr)

#include<stdio.h> #include<conio.h> #define doktorsayisi 3. typedef struct dr{ int ay1, ay2, ay3, ay4; } doktor; float hesapla(doktor dktr){

Hafta 12 Karakter Tutan Diziler

2) /* Kullanıcıdan alınan iki sayının obebini alt fonksiyon yardımı ile hesaplayan C programı*/

Dr. Fatih AY Tel: fatihay@fatihay.net

10/17/2007 Nesneye Yonelik Programlama 3.1

elemanlarının gezilmesine yönelik bir örnek sunulmuştur, inceleyiniz.

Pythonda değişkenlerin türlerini tanımlamaya gerek yoktur

FBEB-512. C++ ile Nesne Tabanlı Programlama. Güz (5. Hafta)

BPR152-Algoritma ve Programlama II Uygulama -13

BM102 BİLGİSAYAR PROGRAMLAMA II LABORATUVAR UYGULAMALARI. 3Hafta

ALGORİTMA VE PROGRAMLAMA II

Diziler & Karakter Katarı (String)

KONU 7: DOSYA İŞLEME ( File Processing )

BMT 101 Algoritma ve Programlama I 5. Hafta. Yük. Müh. Köksal Gündoğdu 1

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) {

C de Detaylı Üs Alma Programı. C# Dilinde Metot Tanımlama ve Yazdırma

BİLG Dr. Mustafa T. Babagil 1

2. Dereceden Denklemin Köklerini Bulan Program

Örnek 4: Örnek Özyinelemeli fonksiyon örneği Bölüm 9. C++ programlama dilinde Nesne ve sınıf

Veri Yapıları. Amaçlar: Temel Veri Yapılarını Tanımlamalı Veri Yapılarını Veri Modeli ve Türlerini Öğreneceksiniz. İçindekiler:

ALGORİTMA VE PROGRAMLAMA II

BÖLÜM 11: YAPISAL VERİ TİPLERİ

ALGORİTMA VE PROGRAMLAMA I

BİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER,

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları

/ C Bilgisayar Programlama Final Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak.

Programlama Dilleri. C Dili. Programlama Dilleri-ders08/ 1

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-8 Değişken Tipleri ve Temel Giriş/Çıkış İşlemleri

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR

Karma C/C + + Kodlama

STRİNG DİZİLER(KATARLAR)

C++ Dersi: Nesne Tabanlı Programlama

C Programlama printf() Fonksiyonu

Diziler (Arrays) Çok Boyutlu Diziler

Programlama Dilleri Laboratuvarı

BĠLGĠSAYAR PROGRAMLAMA II C++ Programlamaya GiriĢ Published by Juan Soulié

sayi=3 harf=a reelsayi=8.72 Bellek durumu 5. İşaretç iler (pointers)

Telefon Rehberi Uygulaması

Sınav tarihi : Süre : 60 dak.

C++ Dilinde Bazı Temel Algoritmalar

Karakter katarları ile ilgili fonksiyonlar içerir Yerel kayan noktalı sayılar tanımlanır

YAPILAR (STRUCTURES)

BİLECİK ŞEYH EDEBALİ ÜNİVERSİTESİ, MÜHENDİSLİK FAKÜLTESİ, BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BAHAR Y.Y. BM106 PROGRAMLAMA DİLLERİ 1, ARA SINAVI

İstanbul Teknik Üniversitesi IEEE Öğrenci Kolu DİZİLER

Matlab da Dizi ve Matrisler. Mustafa Coşar

Eln 1001 Bilgisayar Programlama I

Temel Bilgisayar Bilimleri Ders Notu #4-2. kısım

Fonksiyonlar (Altprogram)

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

şeklinde tanımlanmıştır. O halde, dosyaları daha önceki bilgilerimizi kullanarak FILE *Dosya1, *Dosya2;

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8

DÖNGÜLER (LOOPS) while(), do-while(), for(), foreach()

Temel Giriş/Çıkış Fonksiyonları

C ile Uygulamalar 4 - Cevaplar

Giris {\} /\ Suhap SAHIN Onur GÖK

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

D İ Z İ L E R A R R A Y S

DERSİN WEB SİTESİ:

Dizgiler. C dilinde karakter m şeklinde tek tırnak içerisinde yazılan ifadelerdir. Bu karakterlerin her biri aslında bir tamsayı ile ifade edilir.

enum bolumler{elektronik, insaat, bilgisayar, makine, gida};

Giriş. ENF102 Jeoloji

Week 7. Düğüm bulma Tekli bağlı liste: phead ve ptail Dairesel bağlı liste Çift bağlı liste

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

Dizi nin Önemi. Telefon rehberindeki numaralar, haftanın günleri gibi v.b.

Yrd. Doç. Dr. Caner ÖZCAN

Alıştırma 1: Yineleme

Transkript:

2017-2018 Fall Object-Oriented Programming Laboratory 02 - Structures 10.10.2017 1. Diziler. Bir tamsayi dizisinin elemanlarını ekrana yazdırmak için void printarr(int arr[], int elem_count) prototipli fonksiyonu tanımlayın. Tanımladığınız fonksiyonu bir programda test edin. Örnek: 10 elemanlı bir dizi tanımlayın. Dizinin her bir elemanı için rastgele sayı üretin. Dizinin elemanlarını ekrana yazdırın. Rastgele sayı üretmek: #include <cstdlib> #include <ctime> srand(time(null)); // ile rastgele sayı üreteci kurulur. r = rand(); // ile rastgele üretilen sayı r değişkenine atanır. // siz r den başka bir değişkene atayabilirsiniz. #include <iostream> #include <cstdlib> #include <ctime> #define ECOUNT 10 using std::cin; using std::cout; using std::endl; void printarr(int arr[], int elem_count); int main(void) int random_numbers[ecount]; int a; srand( time(null) ); for(a=0; a<ecount; a++) random_numbers[a] = rand(); printarr(random_numbers, ECOUNT); return 0; void printarr(int arr[], int elem_count)

int i; for(i=0; i<elem_count; i++) cout << arr[i]; if(i!=elem_count-1) cout << ", "; 2. Dizi elemanlarını büyükten küçüğe sıralamak. Bir tamsayı dizisinin elemanlarını büyükten küçüğe sıralamak için void sortdecreasing(int arr[], int elem_count) prototipli fonksiyonu tanımlayın. Tanımladığınız fonksiyonu bir programda test edin. Örnek: 20 elemanlı bir dizi tanımlayın. Dizinin her bir elemanı için rastgele sayı üretin. Dizinin elemanlarını ekrana yazdırın. Tanımladığınız fonksiyon ile dizinin elemanlarını sıralayın. Sıralanmış diziyi ekrana yazdırın. #include <iostream> #include <cstdlib> #include <ctime> #define ECOUNT 20 using std::cin; using std::cout; using std::endl; void printarr(int arr[], int elem_count); void sortdecreasing(int arr[], int elem_count); int main(void) int random_numbers[ecount]; int a; srand( time(null) ); for(a=0; a<ecount; a++) random_numbers[a] = rand(); printarr(random_numbers, ECOUNT); sortdecreasing(random_numbers, ECOUNT); printarr(random_numbers, ECOUNT); return 0;

void printarr(int arr[], int elem_count) int i; for(i=0; i<elem_count; i++) cout << arr[i]; if(i!=elem_count-1) cout << ", "; void sortdecreasing(int arr[], int elem_count) int i, j, temp; for(i=0; i<elem_count; i++) for(j=i+1; j<elem_count; j++) if(arr[i]<arr[j]) temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; 3. Katılımcılar için structure. Bir etkinliğe katılacak kişiler için ad, soyad ve yaş bilgileri toplanacaktır. Bu bilgileri işlemek için katilimci isminde bir structure tanımlayın. Bu structure için tip tanımlaması da yapın. Klavyeden katilimci girişi almak için scan_katilimci() fonksiyonu tanımlayın. Argümanlara ve return tipine siz karar verin. Ekrana katilimci çıktısı yapmak için print_katilimci() fonksiyonu tanımlayın. Argümanlara ve return tipine siz karar verin. Tanımladığınız structure ı ve fonksiyonları bir programda test edin. Örnek: Bir katilimci değişkeni tanımlayın. Kullanıcıdan input isteyin. Değişkeninizdeki değerleri ekrana yazdırın. #include <iostream> #include <cstring>

#define NAMELEN 32 #define NAMESIZE (NAMELEN + 1) using std::cin; using std::cout; using std::endl; typedef struct katilimci_s char ad[namesize]; char soyad[namesize]; int yas; katilimci_t; void print_katilimci(katilimci_t * p); void scan_katilimci(katilimci_t * s); int main(void) katilimci_t k; scan_katilimci(&k); print_katilimci(&k); return 0; void print_katilimci(katilimci_t * p) cout << p->ad << ' ' << p->soyad << " (yas:" << p->yas << ")"; void scan_katilimci(katilimci_t * s) char buffer[256]; int input_length; cout << "ad: "; cin >> buffer; input_length = strlen(buffer); if(input_length > NAMELEN) input_length = NAMELEN; strncpy(s->ad, buffer, input_length); (s->ad)[input_length] = '\0'; cout << "soyad: "; cin >> buffer; input_length = strlen(buffer); if(input_length > NAMELEN) input_length = NAMELEN; strncpy(s->soyad, buffer, input_length);

(s->soyad)[input_length] = '\0'; cout << "yas: "; cin >> s->yas; 4. Structure dizisi sıralama. 3. soruda tanımladığınız katilimci structure ını ve ilgili fonksiyonları kullanın. Bir katilimci dizisini ad a, soyad a ve yaşa göre sıralamak için sırala_ad(), sırala_soyad() ve sırala_yas() fonksiyonlarını yazın; argümanlara ve return tipine siz karar verin. Tanımladığınız fonksiyonları bir programda test edin. Örnek: 4 kişinin katılacağı bir etkinlik için kullanıcıdan katılımcı bilgileri alın. Katılımcıların bilgileri ekrana yazdırın. Katılımcıları ada göre sıralayın, katılımcı bilgilerini ekrana yazdırın. Katılımcıları soyada göre sıralayın ve katılımcı bilgilerini ekrana yazdırın. Katılımcıları yaşa göre sıralayın, katılımcı bilgilerini ekrana yazdırın. Gereken fonksiyonlar: <cstring> int strcmp(const char * str1, const char * str2) #include <iostream> #include <cstring> Eğer str1 ve str2 string leri aynı ise 0 döner. Eğer str1, str2 den alfabetik olarak önce geliyor ise negatif değer döner. Eğer str1, str2 den alfabetik olarak sonra geliyor ise pozitif değer döner. #define NAMELEN 32 #define NAMESIZE (NAMELEN + 1) #define KSAYISI 4 using std::cin; using std::cout; using std::endl; typedef struct katilimci_s char ad[namesize]; char soyad[namesize]; int yas; katilimci_t; void print_katilimci(katilimci_t * p); void scan_katilimci(katilimci_t * s); void sirala_ad (katilimci_t kdz[], int e_sayisi); void sirala_soyad(katilimci_t kdz[], int e_sayisi);

void sirala_yas (katilimci_t kdz[], int e_sayisi); int main(void) katilimci_t k[ksayisi]; int looper; scan_katilimci(&k[looper]); cout << "katilimcilar:" << endl; print_katilimci(&k[looper]); sirala_ad(k, KSAYISI); cout << "katilimcilar (ada gore):" << endl; print_katilimci(&k[looper]); sirala_soyad(k, KSAYISI); cout << "katilimcilar (soyada gore):" << endl; print_katilimci(&k[looper]); sirala_yas(k, KSAYISI); cout << "katilimcilar (yasa gore):" << endl; print_katilimci(&k[looper]); return 0; void print_katilimci(katilimci_t * p) cout << p->ad << ' ' << p->soyad << " (yas:" << p->yas << ")" << endl; void scan_katilimci(katilimci_t * s) char buffer[256]; int input_length; cout << "ad: "; cin >> buffer; input_length = strlen(buffer);

if(input_length > NAMELEN) input_length = NAMELEN; strncpy(s->ad, buffer, input_length); (s->ad)[input_length] = '\0'; cout << "soyad: "; cin >> buffer; input_length = strlen(buffer); if(input_length > NAMELEN) input_length = NAMELEN; strncpy(s->soyad, buffer, input_length); (s->soyad)[input_length] = '\0'; cout << "yas: "; cin >> s->yas; void sirala_ad(katilimci_t kdz[], int e_sayisi) char buffer[namesize]; int i, j, temp; for(i=0; i<e_sayisi; i++) for(j=i+1; j<e_sayisi; j++) if(strcmp(kdz[i].ad, kdz[j].ad)>0) strcpy(buffer, kdz[i].ad); strcpy(kdz[i].ad, kdz[j].ad); strcpy(kdz[j].ad, buffer); strcpy(buffer, kdz[i].soyad); strcpy(kdz[i].soyad, kdz[j].soyad); strcpy(kdz[j].soyad, buffer); temp = kdz[i].yas; kdz[i].yas = kdz[j].yas; kdz[j].yas = temp; void sirala_soyad(katilimci_t kdz[], int e_sayisi) char buffer[namesize]; int i, j, temp;

for(i=0; i<e_sayisi; i++) for(j=i+1; j<e_sayisi; j++) if(strcmp(kdz[i].soyad, kdz[j].soyad)>0) strcpy(buffer, kdz[i].ad); strcpy(kdz[i].ad, kdz[j].ad); strcpy(kdz[j].ad, buffer); strcpy(buffer, kdz[i].soyad); strcpy(kdz[i].soyad, kdz[j].soyad); strcpy(kdz[j].soyad, buffer); temp = kdz[i].yas; kdz[i].yas = kdz[j].yas; kdz[j].yas = temp; void sirala_yas(katilimci_t kdz[], int e_sayisi) char buffer[namesize]; int i, j, temp; for(i=0; i<e_sayisi; i++) for(j=i+1; j<e_sayisi; j++) if(kdz[i].yas > kdz[j].yas) strcpy(buffer, kdz[i].ad); strcpy(kdz[i].ad, kdz[j].ad); strcpy(kdz[j].ad, buffer); strcpy(buffer, kdz[i].soyad); strcpy(kdz[i].soyad, kdz[j].soyad); strcpy(kdz[j].soyad, buffer); temp = kdz[i].yas; kdz[i].yas = kdz[j].yas; kdz[j].yas = temp;