Telefon Rehberi Uygulaması



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

STRİNG DİZİLER(KATARLAR)

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

Matris İşlemleri Uygulaması

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

Adı Soyadı : Öğrenci No :

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

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

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

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

Diziler. Dizi Tanımı Dizi Elemanlarına Değer Atama Diziler ve Göstergeler 2-Boyutlu Diziler

#include<stdio.h> #include<string.h> #include<stdlib.h> typedef struct { int ID; char isim[15]; char soyisim[15];

/* Çember alanını hesaplar */

Programlama Dilleri Laboratuvarı

PROGRAMLAMAYA GİRİŞ DERS 2

AHMET YESEVİ ÜNİVERSİTESİ BİLİŞİM SİSTEMLERİ VE MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ LİSANS DÖNEM ÖDEVİ

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

YAPILAR (STRUCTURES)

8. Bölüm DİZİLER. tip dizi_ismi[eleman_sayısı]; Bütün diziler 0 ile baţlar.

Giriş. ENF102 Jeoloji

Eln 1002 Bilgisayar Programlama II

Kocaeli Üniversitesi Bilgisayar Mühendisliği Programlama 2 Dersi Final Sınavı. A Grubu

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Eln 1001 Bilgisayar Programlama I

BASİT C PROGRAMLARI Öğr.Gör.Dr. Mahmut YALÇIN

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

ALFASAYISAL BİLGİLER KARAKTER DİZİLERİ (STRING)

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

Bölüm 2 - C ile Programlamaya Giriş

C PROGRAMLAMA D İ L İ

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD

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

DİZİLER 5/4/2010. ENF-102 Jeoloji Giriş. Tek Boyutlu Diziler. Tek Boyutlu Diziler. Örnek. Örnek

ALGORİTMA VE PROGRAMLAMA II

3/7/2011. ENF-102 Jeoloji 1. Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Veri Tanımları ve Mantıksal Đşlemler

Hazır Fonksiyonlar {\} /\ Suhap SAHIN Onur GÖK 1

Adı Soyadı Öğrenci No. Toplam (100p) 2 (10p) +10p. 5 (25p) +10p. 3 (20p) 4 (25p) 1 (20p)

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

mod ile açılacak olan dosyanın ne amaçla açılacağı belirlenir. Bunlar:

BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ

Arasınav Sınavı Soruları Güz 2017 Süre: 90 Dakika

ESM-361 Mikroişlemciler. 3. Hafta Ders Öğretim Üyesi Dr.Öğr.Üyesi Ayşe DEMİRHAN

Struct VE GÖSTERİCİLER FONKSİYONLARDA STRUCT KULLANIMI Programlama dilleri hafta -

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.

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8

Programlama Dilleri 1. Ders 5: Göstericiler

ALGORİTMA VE PROGRAMLAMA I

Bölüm 6. Karma. Olcay Taner Yıldız. O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, / 31

Fonksiyonlar (Altprogram)

Adım Adım C-II. Eksik kalmış konular

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

C++ Dersi: Nesne Tabanlı Programlama

C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ

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

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

Final Sınavı Örnek Soruları Güz 2018 Süre: 90 Dakika

BİLG Dr. Mustafa T. Babagil 1

STRING (SÖZEL) İŞLEMLER. Yrd. Doç.Dr. Bülent Çobanoğlu

Dr. Fatih AY Tel: fatihay@fatihay.net

ALGORİTMA VE PROGRAMLAMA I

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

Bölüm 8, Yrd. Doç. Dr. A. Kadir YALDIR PAÜ Bilgisayar Mühendisliği Bölümü BÖLÜM 8: DİZİLER

BÖLÜM 7: DÖNGÜ KONTROL YAPILARI

Java String İşlemleri

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

C ile Uygulamalar 4 - Cevaplar

Adım Adım C. Dr. Hidayet Takcı

C PROGRAMLAMA D İ L İ

Eln 1002 Bilgisayar Programlama II

YZM 2105 Nesneye Yönelik Programlama

int main(void) { int num = 0; int input = 1; int retval = 0; struct NODE *nodepointer; nodepointer = (struct NODE *)malloc(sizeof(struct NODE));

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

Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları. Mustafa Kemal Üniversitesi

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

Javascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu.

NESNE TABANLI PROGRAMLAMA Final Sınavı Cevapları

Sınav tarihi : Süre : 60 dak. c) En başta #include<stdio.h> yazılmamıştır. c) zt d) Pi e) X0

Strings(Karakter Dizisi)

Sınav tarihi : Süre : 60 dak. a) strstr b) strchr c) strcat d) strcpy e) strlen. a) b) d) e) 0

Fall Object-Oriented Programming Laboratory 02 - Structures

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

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-8 Dosya İşlemleri-1. Yrd. Doç. Dr. Ümit ATİLA

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

BMB1002 Bilgisayar Programlamaya Giriş. Dosyalar. Prof. Dr. Necmettin Kaya

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

Klavyeden girilen metnin karakter uzunluğu bulan C programı. Klavyeden girilen metin içerisindeki küçük ve büyük harf sayısını bulan C programı

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

PROGRAMLAMA DİLLERİ I

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

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while

KARAR YAPILARI. Acaba hangi yöne gitmeliyim? Oturduğun yerden kalkıp, kapıya varana kadar kaç kez karar verdiniz biliyor musunuz?

ALGORİTMA VE PROGRAMLAMA I

MATLAB/Değişkene Değer Atamak

ALGORİTMA VE PROGRAMLAMA I

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

YZM 2116 Veri Yapıları

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

ÇOK BOYUTLU DİZİLER VE DİNAMİK BELLEK YÖNETİMİ İLE İLGİLİ ÖRNEKLER

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

Algoritma ve Programlama: Karar Yapıları ve Döngüler

Transkript:

Sayfa1 Telefon Rehberi Uygulaması Uygulama, temel düzeyde, telefon rehberi üzerinedir. Kullanıcı, telefon rehberine eklediği her bir kayıt içi ad, soyad, ev telefonu ve üç adet cep telefonu bilgisi girebilmektedir. Uygulamada, veri yapısından (data structure) ve string veri tipini işleyebilen fonksiyonlardan yararlanılmıştır. Program Yapısı BİLGİ GİRİŞİ İşlem Türü, Kayıt Bilgileri İŞLEM Kayıt Ekleme veya Arama BİLGİ ÇIKIŞI Kayıt veya Arama Sonucu Veri Yapıları (Data Structures) Veri yapıları, bir biri ile ilişkili değişkenlerin tek bir isim altında toplanarak daha kolay işlenmesini sağlayan veri tipleridir. Veri yapıları diğer temel veri tipleri kullanılarak oluşturulabilen bir veri tipidir. Örneğin bir basit değişken tam sayı tipinde tek bir değer taşıyabilirken, bir dizin değişkenin elemanlarının hepsi tam sayı tipinde değer taşıyabilmektedir. Veri yapıları ise aynı anda hem tam sayı hem noktalı sayı hem de char tipinde değer taşıyabildiği gibi bu üyeler basit ve dizin değişken şeklinde de olabilmektedir. Temel bildirim şekli aşağıdaki gibidir: struct yapı_ismi veri_tipi üye_adı_1; veri_tipi üye_adı_2; veri_tipi üye_adı_3[eleman_sayısı]; değişken_listesi; Veya struct yapı_ismi değişken_listesi; Bu yapı bildiriminden sonra, yapıyı kullanacak olan değişken, klasik değişken bildirimi ile kullanımı sağlanır. Uygulama örneğimizde, telefon rehberine kaydedilecek olan ad, soyadı, ev telefonu ve üç adet cep telefon numarası bilgileri trehber ismi altında oluşturulan veri yapısı ile saklanacaktır. struct trehber char ad[20]; char soyad[20]; int tel; int cep[3]; ; main() struct trehber x[10];

Kullanılan Fonksiyonlar Uygulama örneğinde, telefon kayıtlarının saklanması yanında, önceki kayıtlarda arama yapılarak bilgilere ulaşılması da sağlanmaktadır. Burada, arama kriterinin kayıt bilgileri ile karşılaştırılmasında, string işeyebilen hazır fonksiyonlarından faydalanılmıştır. Karşılaştırma işlemi, bildirimi string başlık dosyasında yapılmış olan strcmp fonksiyonundan yararlanılmıştır. Bu hazır fonksiyon dışında, benzer işlemi karşılaştırılacak değerlerin belli sayıdaki karakterini dikkate alarak yapan strncmp fonksiyonu da vardır. Strcmp fonksiyonu iki adet parametreye ihtiyaç duymaktadır. Bu parametreler karşılaştırılacak olan string tipi değerlerdir. Fonksiyon her iki değerin tüm karakterlerini bire bir karşılaştırır ve eşitlik durumunda 0 değerini döndürür. Aksi iki durum daha mevcuttur, bunlar, ilk değerin ikinci değerden küçük olması ve ilk değerin ikinci değerden büyük olmasıdır. Bu durumların ortaya çıkması halinde sırasıyla -1 ve 1 değerlerini döndürecektir. Tablo 1. Telefon Rehberi Uygulamasında kullanılan ve kullanılabilecek hazır fonksiyonlar Hazır Fonksiyon Parametreler Açıklama strcmp str1 Karşılaştırılacak birinci ifade str2 Karşılaştırılacak ikinci ifade char x[4+= Ali, y*4+= Ali ; char x[5+= Ayşe, y*5+= Bora ; Komut t=strcmp(x,y); t=strcmp(x,y); Örnek strncmp Örnek Sonuç Değişken t 0 değerini alacaktır (iki ifadenin tüm harfleri aynıdır. İfadeler eşittir.) Değişken t -1 değerini alacaktır (iki ifadenin ilk harfleri farklıdır ve a harfi b den küçüktür. İfadeler eşit değildir.) Bilgi Bilge 1 (İlk dört harf aynıdır ancak beşinci harfler farklıdır ve i harfi e den büyüktür. Bu nedenle ifadeler eşit değildir.) Belge Bilge -1 (İlk harf aynıdır ancak ikinci harfler farklıdır ve e harfi i den küçüktür. Dolayısı ile sonraki harflerin aynı olmasını önemi kaybetmektedir. Bu nedenle ifadeler eşit değildir.) str1 Karşılaştırılacak birinci ifade str2 Karşılaştırılacak ikinci ifade Harf Sayısı Karşılaştırmada kullanılacak harf sayısı Komut Sonuç char x*4+= Ali, y*4+= Ali ; t=strncmp(x,y,3); Değişken t 0 değerini alacaktır (iki ifadenin karşılaştırılan ilk üç harfi aynıdır. İfadeler eşittir.) char x*5+= Ayşe, y*5+= Bora ; t=strncmp(x,y,3); Değişken t -1 değerini alacaktır (iki ifadenin karşılaştırılan ilk üç harfinden birincileri farklıdır ve a harfi b den küçüktür, karşılaştırılan diğer iki harf önemi yitirir. Ayşe Bora şeklinde sıralanabilirler.) Bilgi Bilge 0 (Karşılaştırılan İlk üç harf aynıdır. Örneğin, diğer harflere bakılarak sıralanabilirler.) Belge Bilge -1 (Karşılaştırılan ilk üç harften ikinciler farklıdır ve e harfi i den küçüktür. Dolayısı ile karşılaştırılacak sonraki iki harfin aynı olması önemi kaybetmektedir. Bu nedenle, örneğin, Belge Bilge şeklinde sıralanabilirler.) Uygulama örneğimizde, kayıt arama kriteri (ad) kayıtlı adlar ile karşılaştırılarak, eşleşen kaydın(ların) bilgi çıkışı sağlanacaktır. Sayfa 2

Akış Şeması Başla KOŞUL: strcmp(kriter,x[k].ad)==0 2 1 kriter k=0, <i+1 KOŞUL E H E i++ İturu==1 H BİTİR Sayfa 3

Kaynak Program Kodu /* Telefon Rehberi Uygulaması */ #include<stdio.h> #include<conio.h> #include<string.h> #include<locale.h> struct trehber char ad[20]; char soyad[20]; int tel; int cep[3]; ; main() setlocale(lc_all,"turkish"); struct trehber x[10]; int i=0,j,k; char kriter[20]; int ; basla: printf("işlem Türü? (Kayıt için 1 - Arama için 2) "); scanf("%d",&); switch() case 1: printf("ad? "); scanf("%s",); printf("soyad? "); scanf("%s",); printf("ev Telefonu? "); scanf("%d",&); printf("%d. Cep Telefonu? ",j+1); scanf("%d",&); printf("yeni Kayıt Adı: %s\n",); printf("yeni Kayıt Soyadı: %s\n",); printf("yeni Kayıt Telefon No: %d\n",); printf("yeni Kayıt %d. Cep Telefon No:%d\n",j+1,); i++; break; case 2: printf("arama Kriteri (Ad)? "); scanf("%s",&kriter); for(k=0;k<i+1;k++) if(strcmp(kriter,x[k].ad)==0) printf("kayıt Adı: %s\n",x[k].ad); printf("kayıt Soyadı: %s\n",x[k].soyad); printf("kayıt Ev Telefonu: %d\n",x[k].tel); printf("kayıt %d. Cep Telefonu: %d\n",j+1,x[k].cep[j]); break; printf("baska Işlem Var mi? (Evet için 1 - Hayır için 2) "); scanf("%d",&); if(==1) goto basla; else getch(); return 0; Sayfa 4

ÇALIŞMA ÖNERİLERİ 1. Ders içinde yapılan uygulama içeriği ile bu ders uygulama notu içeriği arasındaki farkları araştırınız. Farklılıkları ve neden farklı olabilecekleri hakkında açıklamalar yapmaya çalışınız. 2. Bu ders içeriğini oluşturan veri yapıları konusunu farklı uygulamalarda kullanmaya çalışınız. 3. Karakter dizilerini karşılaştırmak amacıyla kullanılan strcmp ve strncmp fonksiyonlarını kullanarak, karakter dizilerini kendi aralarında sıralama yapmak amacıyla bir kaynak program kodlaması yapmaya çalışınız. 4. Bu uygulamada, telefon rehberine eklenen kayıtlar sadece geçici hafızada (RAM) tutulmaktadır. Uygulamayı, dosya işlemlerini kullanarak, kayıtları kalıcı hafızada (Sabit Disk, vb.) saklayacak şekilde geliştirmeye çalışınız. Sayfa 5