Bir program, bilgisayarın ne yapacağını söyleyeceğimiz bir emir topluluğu olarak görebiliriz. Özel durumları bir kenara bırakırsak, bilgisayar sistemi:
Tüm teknik bilgileri bir kenara bırakarak bilgisayar sistemini gündelik bir olayla somutlayabiliriz. Kendinimizi bir aşçı olarak hayal edelim ve bir mutfakta lezzetli pastalar yapalım :)
Programcılığın temellini oturtuğumuza göre artık biz de matlabın yapması gereken emirleri listesini(Program) yazabiliriz. yani bilgisayarın anlayacağı dilden konuşamaya başlayabiliriz. Yukarıdaki senaryoya uygun program yazalım ;)
matlab gui program yazmanız için size yardımcı olacak bilgiler için tıklayınız.
% önceden oluşturulmuş verileri yükleme load('pastalari_sakla.mat') % sakla.list içindeki verileri servise_hazir_pasta_listbox içine yükleme set(hObject,'string',sakla.list) Inspector ekranından uyari_txt için String değerini "Malzemeler Yüklendi" olarak düzenleyerek yükleme sonrası mesaj gösterebiliriz.
function pasta_hazirla_Callback(hObject, eventdata, handles) %mevcut pasları al tum_firindan_cikmis_pastalar = get(handles.firindan_cikmis_pastalar_listbox,'string'); %pastaların benzersiz olabilmesi için rastgele sayi üret rastgele_bir_sayi = num2str(rand()); %10 tane pasta adı bir dizi oluştur for sayi=1:10 pasta = ['Pasta_',rastgele_bir_sayi,'_',int2str(sayi)]; %firindan_cikmis_pastalar_listbox boş ise if isempty(tum_firindan_cikmis_pastalar) tum_firindan_cikmis_pastalar = pasta; %firindan_cikmis_pastalar_listbox tek pasta var ise elseif ~iscell(tum_firindan_cikmis_pastalar) tum_firindan_cikmis_pastalar = {tum_firindan_cikmis_pastalar pasta}; %firindan_cikmis_pastalar_listbox birden fazla pasta var ise else tum_firindan_cikmis_pastalar = {tum_firindan_cikmis_pastalar{:} pasta}; end end %oluşturulan yeni ve eski pastaları firindan_cikmis_pastalar_listbox yükle set(handles.firindan_cikmis_pastalar_listbox,'string',tum_firindan_cikmis_pastalar); %kullanıyıca bilgi ver set(handles.uyari_txt,'string','10 tane pasta hazırlandı seçerek sos ekleyebilirsiniz.'); set(handles.uyari_txt,'BackgroundColor','green');
%özel sos ekle tıkladığında seçilen pastaya sos ekleyerek %servise hazır hale getirme function sos_ekle_btn_Callback(hObject, eventdata, handles) %tüm pastalar alınmakta tum_firindan_cikmis_pastalar = get(handles.firindan_cikmis_pastalar_listbox,'string') %seçilen pasta sırası alınmakta secilen_index = get(handles.firindan_cikmis_pastalar_listbox,'value') %seçilen pasta adı alınmakta secilen_pasta = tum_firindan_cikmis_pastalar{secilen_index}; %seçilen pasta listbox silinecek tum_firindan_cikmis_pastalar(secilen_index)=[]; %yeni firindan_cikmis_pastalar_listbox güncelle set(handles.firindan_cikmis_pastalar_listbox,'string',tum_firindan_cikmis_pastalar,'Value',1); %sos ekleme işlemi pasta_sosu = get(handles.sos_edit,'string'); secilen_pasta = [secilen_pasta,'+',pasta_sosu]; tum_servise_hazir_pastalar = get(handles.servise_hazir_pasta_listbox,'string'); if isempty(tum_servise_hazir_pastalar) tum_servise_hazir_pastalar = secilen_pasta; elseif ~iscell(tum_servise_hazir_pastalar) tum_servise_hazir_pastalar = {tum_servise_hazir_pastalar secilen_pasta}; else tum_servise_hazir_pastalar = {tum_servise_hazir_pastalar{:} secilen_pasta}; end %servise hazır pastalar eklenmiş hali güncellenmektedir. set(handles.servise_hazir_pasta_listbox,'string',tum_servise_hazir_pastalar);
% seçilen pastayı servis etmektedir function servis_et_btn_Callback(hObject, eventdata, handles) %tüm servise hazır pastalar alınıp %seçilen pasta bilgisi alınmaktadır ve silinmektedir. tum_servise_hazir_pastalar = get(handles.servise_hazir_pasta_listbox,'string') secilen_index = get(handles.servise_hazir_pasta_listbox,'value') secilen_pasta = tum_servise_hazir_pastalar{secilen_index}; %seçilen pasta listbox silinecek tum_servise_hazir_pastalar(secilen_index)=[]; set(handles.servise_hazir_pasta_listbox,'string',tum_servise_hazir_pastalar,'Value',1); servis_edildi = [secilen_pasta,' Servis Edildi...']; set(handles.uyari_txt,'string',servis_edildi); set(handles.uyari_txt,'BackgroundColor','red')
%kapatma sırasında çalışır function figure1_CloseRequestFcn(hObject, eventdata, handles) %servise_hazir_pasta_listbox içerisindeki bilgiler alınıp %program çalıştırma sırasında geçici belleğe(RAM)yüklemek üzere %sabit diske kaydedilmektedir sakla.list = get(handles.servise_hazir_pasta_listbox,'string'); save('pastalari_sakla.mat','sakla'); % geçici bellekteki tüm objeler silinmektedir. delete(hObject);