1.Örnek: ginput komutu yardımıyla, bir çizim üzerindeki iki noktanın koordinatları alınarak, bu iki nokta arasındaki uzaklık bir fonksiyonda hesaplanarak, text komutu yardımıyla bu iki nokta arasına hesaplanan uzaklığı yazdıran programı ve fonksiyonu yazınız.
Uygulama Kodu:
clear all;
clc;
clf;
t = 0:pi/50:10*pi;
plot(t)
[x,y] = ginput(2)
text(x(1),y(1),’*’);
text(x(2),y(2),’*’);
mesafe=uzaklik(x,y)
xorta = (x(1)+x(2))/2;
yorta = (y(1)+y(2))/2;
text(xorta,yorta,int2str(mesafe))
Uzaklık Fonksiyonu:
function mesafe=uzaklik(x,y)
mesafe=sqrt(((x(2)-x(1))^2)+((y(2)-y(1))^2));
2.Örnek:Klavyeden girilen bir karakter katarını kullanıcının isteğine göre büyük ya da küçük harf karşılıklarını bulan programı kullanacağınız karakter fonksiyonu yardımı ile yazınız. (Not: karakter fonksiyonunu yazarken hiçbir şekilde lower ya da upper fonksiyonlarından yararlanmayınız ve yazdığınız fonksiyonun gerekli giriş ve dönüş argümanları tanımlanmış olmalıdır).
Uygulama Kodu:
clc;
clear all;
a=input(‘Bir string değeri giriniz :’,’s’);
j=input(‘Tümü büyük harf için(B|b),Tümü küçük için(K|k)’,’s’);
s=karakter(a,j);
disp(s)
Karakter fonksiyonu:
function don=karakter(s,m);
kilk =abs(‘a’);
kson =abs(‘z’);
bilk =abs(‘A’);
bson =abs(‘Z’);
don=[];bul=0;
if (m==’B’) | (m==’b’)
for k=1:length(s)
if (s(k)>=kilk &s(k)<=kson)
bul=(abs(s(k))-kilk)+bilk;
don=[don char(bul)];
else
don=[don s(k)];
end
end
end
if (m==’K’) | (m==’k’)
for k=1:length(s)
if (s(k)>=bilk &s(k)<=bson)
bul=(abs(s(k))-bilk)+kilk;
don=[don char(bul)];
else
don=[don s(k)];
end
end
end
3.Örnek:
Klavyeden kullanıcı adı boş girilinceye kadar belirlenen, kullanıcı adı ve şifresi için “c:\sil\melih\melih.mat” şeklinde dizin ve mat dosyasını yazacağınız dizin fonksiyonunda oluşturunuz (“melih” kullanıcı adı olup mat dosyada da şifresi kayıtlıdır). Daha sonra deneme amaçlı kullanıcının adı ve şifresini sorarak bir doğrulama işlemi gerçekleştiriniz.
(Not: Girilen kullanıcı adı tanımlanmamış ise, program kullanıcıyı uygun bir mesajla uyarmalıdır. Daha sonra test aşamasında kullanıcının şifresini doğru girmesi için en az 3 hak tanıyınız).
Uygulama Kodu:
clc;
clear all;
eval([‘cd c:\’]) % ilk olarak ana dizine geçiliyor
varmi=exist(‘sil’,’dir’); % sil dizinin kontrolü
if varmi~=7
eval([‘!mkdir c:\sil’]); % yoksa oluşturuluyor
else
end
kackere=round(1+rand*4); % kaç giriş yapılacağı belirleniyor
i=1;
while i<=kackere
kullad=input(sprintf(‘%s. KULLANICININ ADI >’,int2str(i)),’s’); % kullanıcı adı girişi
eval([‘cd c:\sil\’]); % sil dizinine geçiliyor
varmi=exist(kullad,’dir’); % bu kullanıcının kontrolü
if varmi~=7 % * eğer yoksa
sifre=input(sprintf(‘%s. KULLANICININ ŞİFRESİ >’,int2str(i)),’s’); % şifre girişi
dizin=[‘c:\sil\’,kullad]; % kullanıcı adına ait dizini tanımlama
eval([‘!mkdir ‘,dizin]); % kullanıcın adına ait dizin oluşturma
eval([‘cd c:\sil\’,kullad]) % oluşturulan kullanıcı dizinine geçilir
sifredosyasi=[sifre,’.mat’]; % sifredosyasi tanımlama
eval([‘save ‘,sifredosyasi]); % sifre dosyası oluşturma
eval([‘cd C:\MATLABR11\work’]) % MATLAB çalışma dizinine dönme
varmi=7;
i=i+1;
else % * eğer varsa
disp(‘VAR OLAN BİR KULLANICI ADI GİRDİNİZ!…’);
disp(‘ ‘);
end
disp(‘ ‘);
end % veri girişlerinin sonu
clc;
% test amaçlı program
disp(‘*********** TEST BAŞLIYOR!!! ************’);
disp(‘ ‘);
kullad=input(‘KULLANICI ADI >’,’s’); % kullanıcı adı girişi
eval([‘cd c:\sil’]); % sil dizinine geçiliyor
varmi=exist(kullad,’dir’); % kullanıcı adının kontrolü
bildi=0;
if varmi==7 % * kullanıcı adı varsa
for i=1:3 % 3 şifre hakkı
sifre=input(sprintf(‘%s.giriş, %s ADLI KULLANICINI ŞİFRESİ >’,int2str(i),kullad),’s’); % şifre sorma
eval([‘cd c:\sil\’,kullad]);
sifredosyasi=[sifre,’.mat’]; % kullanıcının girdiği sifre ile sifredosyasi oluşturma
varmi=exist(sifredosyasi); % bu dosyanın kontrolü
if varmi==2 % varsa şifreyi bildi demektir
clc;
bildi=1;
disp(‘*********************’);
disp(‘** GİRİŞ ONAYLANDI **’);
disp(‘*********************’);
break;
else % yoksa şifreyi bilememiştir
end
end % for döngüsüne dön ve diğer hakkını kullandır
elseif varmi~=7 % eğer beklenilmeyen bir durumla karşılaşılırsa
disp(‘BİR SORUN VAR. PROGRAMI TEKRAR ÇALIŞTIRIN’);
disp(‘program hatasi değil, bende suç yok 😀 ‘);
eval([‘cd c:\MATLABR11\work’]) % MATLAB çalışma dizinine dönme
end
if bildi==0
clc;
disp(‘**********************’);
disp(‘** GİRİŞ REDDEDİLDİ **’);
disp(‘**********************’);
end
Yorum bırakın