دستورات زير را در نظر بگيريد:
Var y۱,y۲:real;
St۱,st۲ : string;
Y۱:=۳۵۲.۷۶۸
Y۲:=۴۷۶.۳۹۵
Str(y۱:۷:۲,st۱);
Str(y۲:۳:۱,st۲);
با اجراي دستور str اول مقدار ۳۵۲.۷۶۸ به رشته ‘۳۵۲.۷۶۸′ تبديل ميشود و در st۱ قرار ميگيرد و با اجراي دستورstr دوم مقدار ۴۷۶.۳۹۵ به رشته ‘۴۷۶.۳۹۵′تبديل ميشود و در st۲ قرار ميگيرد.
جدا كردن زيررشته اي از رشته:
زيررشته بخشي از رشته است و براي جدا كردن زيررشته از رشته از تابع copy استفاده ميشودتابع copy به صورت زير به كار ميرود.
Copy (source,index,size)
S:=’I am learning pascal ‘;
S۱:=copy(s,۱۵,۶);
دستور copy باعث ميگردد تا با شروع از محل ۱۵ تعداد ۶ كاراكتر از رشته s استخراج شود و در s۱ قرار گيرد. بنابراين محتويات رشته s۱ برابر است با ‘pascal’.
الحاق رشته ها :
منظور از الحاق رشته ها اتصال رشته ها به يكديگر است به عنوان مثال اگرs۱:=’ab’ و s۲:=’cde’ الحاق دو رشته (s۱,s۲) به صورت ‘abcde’ خواهد بود براي الحاق رشته ها از تابع concat استفاده ميشود:
(اسامي رشته ها)concat
دستورات زير را در نظر بگيريد:
S۱:=’pascal’;
S۲:=’is a ;
S۳:=’language’;
S۴:=concat(s۱,s۲,s۳);
با اجراي اين دستور s۳ به انتهاي s۲ متصل ميشود و رشته نتيجه به انتهاي s۱ متصل ميگردد و در نتيجه رشته s۴ عبارت است از’pascal is a language’: . اگر طول رشته حاصل بيش از ۲۵۵ باشد بقيه كاراكترها حذف ميشوند.
جستجوي رشته اي در رشته ديگر:
براي اين كار از تابع pos استفاده ميشود كاربرذ اين تابع به صورت زير است:
Pos(s۱,s۲)
S۱ رشته اي است كه بايد در s۲ وجود داشته باشد محل اولين وقوع آن برگردانده ميشود و گر نه مقدار صفر برگردانده ميشود دستورات زير را در نظر بگيريد:
S۱:=’learning’
S۲:=’I am learning pascal’;
S۳:=’english’
X:=pos(s۱,s۲)
y:=pos(s۳,s۲)
چون رشته s۱ در s۲ وجود دارد دستور pos اول مقدار ۶ را در x قرار ميدهد و معنايش اين است كه رشته ‘learning’ در محل ۶ رشته s۲ وجود ندارد مقدار صفر در y قرار ميگيرد.
محاسبه طول رشته :
براي محاسبه طول رشته از تابع length به صورت زير استفاده ميشود:
(رشته)length
دستورات زير را در نظر بگيريد:
S۱:=’xymn’
X:=length(s۱)
چون طول رشته s۱ برابر ۴ است مقدار x برابر ۴ خواهد بود.
حذف و درج زيررشته:
زير رشته اي را ميتوان از رشته اي حذف كرد و يا زيررشته اي را ميتوان در رشته اي درج كرد براي حذف زير رشته از زيربرنامه ها به صورت زير به كار ميروند:
Delete(source,index,size)
Insert(pattern,destination,index)
در زيربرنامه delete زيررشته اي به طول size با شروع از محل index از رشته source حذف ميشود و در زيربرنامه insert زيررشته pattern با شروع از محل index در رشته destination درج ميشوددستورات زير را در نظر بگيريد:
S۱:=pas***cal
Delete(s۱,۴,۳)
S۲:=’paal’;
S۳:=’sc’;
Insert(s۳,s۲,);
دستور delete باعث ميشود تا با شروع از محل ۴ رشته s۱ حذف شده و رشته s۱ به pascalتبديل شود دستور insert موجب ميشود تا رشته s۳ در s۲ درج شود و در نتيجه رشته s۲ به ‘pascal’ تبديل شود.
مثال : برنامه اي بنويسيد كه يك اسم را از ورودي دريافت و آنرا بر عكس چاپ كند
Readln(name);
For i:=length(name) downto ۱ do
Write (name[i])
مثال : برنامه اي بنويسيد كه كه يك نام را از ورودي دريافت و به ما بگويد كه آيا اين نام با حرف a شروع ميشود يا خير؟
Readln(name);
If name[۱]=’a’ then
Writeln(’ok’)
Else
Writeln(’not ok’);
مثال : برنامه اي بنويسيد كه يك نام را از ورودي دريافت و حروف آنرا يك در ميان چاپ كند.
Readln(name);
For i:=۱ to length(name) do
If I mod ۲ = ۰ then
Writeln(name[i]);
روش ديگر:”
For i:=۱ to int(length(name)/۲) do
Writeln(name[i*۲]);
مثال : برنامه اي بنويسيد كه يك رشته را از ورودي دريافت و متقارن بودن آنرا چك كند.
۱ ۲ ۳ ۴ ۵ ۵ ۴ ۳ ۲ ۱
var
N:string;
Begin
Readln(n);
For i:=۱ to int(length(n)/۲) do
Begin
If n[i] <> n[length(n)-i+۱] then
K:=۰;
End;
If k=۱ then
Writeln (’ok’)
Else
Writeln(’no’);
End.
مثال : برنامه اي بنويسيد كه تعداد حروف a موجود در يك رشته ورودي را بشمارد.
Var st:string;
Begin
Readln(st);
C:=۰;
For i:=۱ to length(st) do
If st[i]=’a’ then ?if st[i] in [’a',’A'] then
C:=c+۱;
Writeln(c)
مثال : برنامه اي بنويسيد كه تعداد اسامي alireza موجود در رشته را بشمارد.
Begin
Readln(st);
C:=۰;
While pos(’alireza’,st) <> ۰ do
Begin
C:=c+۱;
J:=pos(’alireza’,st);
Delete(st,pos(’ali’,st),۳);
End;
Write ( c );
End.
مثال : برنامه اي بنويسيد كه دو رشته را از ورودي دريافت و بعد از كاراكترمساوي كه در رشته اول وجود دارد رشته دوم را چاپ كند.
Readln(st,st۱);
J:=pos(’=',st);
Writeln(copy ((st,۱ j) , st۱, copy (st,j+۱,۱۰۰));
تكليف : برنامه اي بنويسيد كه با دريافت سه حرف و قرار دادن آنها در يك آرايه سه تايي كليه تركيبات ممكن را كه سه حرف تركيباتشان به هم نخورد چاپ كند.
W a x
A x w
W a x
مثال : برنامه اي بنويسيد كه يك رشته را از ورودي دريافت و كليه كلمات موجود در آن را بشمارد.
Readln(st);
S:=۰;
St:=st+’ ‘
While pos(’ ‘,st) <> ۰ do
Begin
S;=s+۱;
Delete(st,۱,pos(’ ‘,st));
While st[۱]=’ ‘do
Delet (st,۱,۱);
End;
End.
تكليف : برنامه اي بنويسيد كه ۱۰۰ رسته را از ورودي دريافت و در يك آرايه به طول ۱۰۰ از نوع string بريزيد و به سؤالات زير جواب دهد.
۱- تعداد كل كلمات
۱- تعداد كل حروف
۲- تعداد حروف صدا دار
ذخيره اطلاعات :
Log file : فايلي است كه تمام تغييرات مربوط به يك محيط را ثبت ميكند
فايلها :
۱- متني text
۲- ركوردي typed
۳-بدون نوع
۴-untyped
معرفي فايلهاي متني :
Var
Text : نام فايل
نسبت دادن فايل :
; (’نام خارجي ,’نام فايل ) assign
مثال :
Assign(f,’c:\a۱.dat.ddd’);
باز كردن جهت خواندن
;( نام فايل)reset
باز كردن جهت نوشتن
; ( نام فايل)rewrite
) ___,نام فايل)readln
) ___,نام فايل)writeln
) نام فايل)close
تا close انجام نشود data ذخيره نميشود .
نكته بسيار مهم : در هر يك از مسائلي كه در مورد فايلها مطرح ميشود مي بايستي به نحوي از يكي از تكنيكهاي نگهداري اطلاعات در حافظه اصلي استفاده نمود اين تكنيكها ممكن است استفاده از متغيرها و آرايه ها و ماتريسها و ودرختهاو…استفاده نمود ولي تنها با دو عمل خواندن و نوشتن به روي فايل كار انجام ميشود
Update : ميخوانيم ولي دوباره ميريزيم سر جاش
Append : بهش يك چيزي اضافه ميكنيم
نكته : عمل rewrite باعث ميگردد چنانچه فايل وجود نداشته باشد ايجاد و چنانچه وجود دارد اطلاعاتش به طور كامل پاك شود.
مثال : برنامه اي بنويسيد كه۱۰۰ اسم را از ورودي دريافت و آنها را در يك فايل به نام a۱.dat))بنويسد.
Var
F:text;a:string;
Begin
Assign(f,’a۱.dat’);
Rewrite(f);
For i:=۱ to ۱۰۰ do
Readln(a);
Writeln(f,a);
End;
Close(f);
End.
مثال : برنامه اي بنويسيد كه فايل a۱.dat را خوانده و به ما بگويد چند بار اسم ali تكرار شده است؟
Var
A:text;
B:string;
Begin
Assign(a,’a۱.dat’);
Reset(a);
Sum:=۰;
For i:=۱ to ۰۰ do
Begin
Readln(a,b);
If b=’ali’ then
Sum:=sum+۱;
End;
Close(a,b);
End;
مثال : برنامه اي بنويسيد كه تعدادي اسم را كه آخرين آنها end است از ورودي دريافت و در يك فايل به نام aa.dat بريزد آنگاه فايل را بسته و قسمتهاي زير را به طور جداگانه انجام دهد.
۱- تعداد حسنها بيستر است يا علي ها
۲- چند اسم وجود دارد كه با حرف z شروع ميشود.
Var
f:text;
Name:string;
Begin
Assign(f,’aa.dat’);
Rewrite(f);
Readln(name);
While name<> ‘end’ do
Begin
Writeln(f,name);
Readln(name);
End;
Close(f);
H:=۱;
A:=۱;
Z:=۱;
Reset(f);
While not eof (f) do
Begin
Readln(f,name);
If name=’ali’ then
A:=a+۱;
If name =’hassan’ then
H:=h+۱;
End;
Close(a);
If h>a then writeln(’h>a’);
If h If h=a then writeln(’h=a’);
End;
Close(f);
Reset(f);
While not eof (f) do
Begin
Readln(f,name);
If name[i]=’z’ then
Z;=z+۱;
End;
Close(f);
Writeln(’sum of z is :’z);
End.
تكليف : برنامه اي بنويسيد كه تعدادي نام را از ورودي دريافت و در يك فايل بريزد سپس فايل تشكيل شده را باز كرده و از روي اين فايل دو فايل ديگر تشكيل دهيد كه در يكي از آنها اسامي كه بين a تا z قرار گرفته اند ريخته و در فايل دوم كليه اسامي كه از v تا z هستند را بريزد.
Program test;
Var
Name : string;
F,f۱,f۲:text;
Begin
Assign(f,’a.dat’);
Rewrite(f);
Writeln(’enter a name ‘);
Readln(name);
While length(name)>۰ do
Begin
Writeln(f,name);
Writeln(’enter a name’);
Readln(name);
End;
Close(f);
Reset(f);
Assign(f۱,’a۱.dat’);
Assign(f۲,’a۲.dat’);
Rewrite(f۱);
Rewrite(f۲);
While not eof (f) do
begin
Readln(f,name);
Case name[۱] of
‘a’..’u':writeln(f۱,name);
‘v’..’z':writeln(f۲,name);
end;
end;
close(f۲);
close(f۱);
close(f);
end.
تكليف : برنامه اي بنويسيد كه نام دو فايل را از ورودي دريافت و از اطلاعات داخل اين دو فايل فايل سومي تشكيل دهد كه حاصل تركيب دو فايل قبل باشد.
var
h,f,g:text;
a:string;
begin
writeln(’enter first filename’) ;
readln(a);
assign(h,a);
writeln(’enter second filename’) ;
readln(a);
assign(f,a);
reset(h);
reset(f);
assign(g,’out.dat’);
rewrite(g);
while not eof(h) do
begin
readln(h,a);
writeln(g,a);
end;
while not eof(f) do
begin
readln(f,a);
writeln(g,a);
end;
close(f);
close(h);
close(g);
End.
تكليف :برنامه اي بنويسيد كه در ضمن عمل merge دو فايل مرتب شده را با يكديگر تركيب و يك فايل مرتب شده به دست آوريم.
منبع : http://www.webschools.ir/
سوالات کنکور کاردانی به کارشناسی امسال دانشگاه آزاد رو می تونید از اینجا دانلود کنید
وز هر چه در عالم بهی ؛ ما نیز هم بد نیستیم
گفتی به رنگ من گلی ؛ هرگز نبیند بلبلی
آری نکو گفتی ولی ؛ ما نیز هم بد نیستیم ....
تا چند گویی ما و بس ؛ کوته کن ای رعنا و بس
نه خود تویی زیبا و بس ؛ ما نیز هم بد نیستیم
ای شاهد هر مجلسی ؛ وآرام جان هر کسی
گر دوستان داری بسی ؛ ما نیز هم بد نیستیم
گر گلشن خوشبو تویی ؛ ور بلبل خوشگو تویی
ور در جهان نیکو تویی ؛ ما نیز هم بد نیستیم
گویی چه شد کان سرو و بن ؛ با ما نمیگو ید سُخُن
گو بی وفایی پر مکن ؛ ما نیز هم بد نیستیم
گر تو به حسن افسانه ای ؛ یا گوهر یکدانه ای
از ما چرا بیگانه ای ؛ ما نیز هم بد نیستیم
گفتم تو ما را دیده ای ؛ وز حال ما پرسیده ای
پس چون ز ما رنجیده ای ؛ ما نیز هم بد نیستیم
گفتی به از من در چگل ؛ صورت نبندد آب و گل
ای سست مهر سخت دل ؛ ما نیز هم بد نیستیم
سعدی گر آن زیباقرین ؛ بگزید بر ما همنشین
گو هر که خواهی برگزین ؛ ما نیز هم بد نیستیم
روز دانشجو مبارک
فردا برای ترم بعد برنامه ریزی می کنم. اگه کسی نظر خاصی داره برای برنامه ترم بعد فردا(شنبه ۱۶ آذر) به گروه مراجعه کنه
برای برنامه ریزی دروس عملی ترم بعد لطفا درسهایی که می خواهید انتخاب کنید رو مشخص کنید که گروه های مورد نیاز ارائه بشه. لطفا برای هر درسی که انتخاب می کنید فقط یکبار ثبت کنید که برنامه ریزی درست انجام بشه و به خاطر به حد نصاب نرسیدن درس هاتون حذف نشه.
کلاسهای مدار منطقی برق و کامپیوتر و تجزیه و تحلیل سیستم ها در روز یکشنبه ۴ آذر ماه برگزار نمی شود.
ضمنا هفته آینده فقط روز شنبه ۳ آذر دانشگاه هستم
