4-خروجی قطعه کد زیر چیست؟جدول Trace آن را رسم کنید یا عملکرد کد آن را توضیح دهید.
1- لیست [‘ Amir ’ , ‘ barry ‘ , ‘ Chales ‘ , ‘ Dao ‘ ] در خانه حفظه names1 قرار میگیرد.
2- names1 در خانه حافظه ای به نام names2 قرار میگیرد
3- کپی از names1 میگیرد و در خانه حافظه ای به نام names3 قرار میگیرد .
4- رشته اندیس 0 (سطر0) خانه حافظه names2 ، از ‘ Amir ‘ به رشته ‘ Alice ‘ تغییر میدهد.
5- به جای رشته ‘ Barry ‘ رشته ‘ Bob ‘ را جاگذاری میکند . تغییرات حاصل:
[' Names1 = [‘ Alice ‘ , ‘ Barry ‘ , ‘ Chales ‘ , ‘ Dao
[' Names2 = [‘ Alice ‘ , ‘ Barry ‘ , ‘ Chales ‘ , ‘ Dao
[' Names3 = [‘ Amir ‘ , ‘ Bob ‘ , ‘ Chales ‘ , ‘ Dao
6- در مرحله بعد یک خانه حافظه ای به نام sum تعریف کرده مقدار 0 را داخل آن قرار میدهیم.
7- حلقه for را که val آن ls و sequence آن شامل سه لیست بالاست فراخوانی میکنیم.
8- اگر رشته موجود در اندیس 0 که درnames1 قرار دارد با ‘ Amir ‘ برابر بشد آنگاه : sum = sum+1
9- شرط 12 برقرار است چون در خانه های names1 و names2 رشته Alice به طور یکسان وجود دارد پس:
[' Names1 = [‘ Alice ‘ , ‘ Barry ‘ , ‘ Chales ‘ , ‘ Dao
[' Names2 = [‘ Alice ‘ , ‘ Barry ‘ , ‘ Chales ‘ , ‘ Dao
Sum = s+1 à sum = 2
10- اگر رشته موجود در اندیس 1 (سطر 1 ) با رشته ‘ Bob ‘ برابر باشد آنگاه :
sum = sum+10
[' Names3 = [‘ Amir ‘ , ‘ Bob ‘ , ‘ Chales ‘ , ‘ Dao
11- شرط 13 نیز برقرار است پس در sum قبلی مقدار 10 نیز جمع بسته میشود
Sum = sum +10 à sum = 12
حلقه تکرار میشود ولی چون شرط ها دیگر برقرار نیستند از حلقه خارج میشود
12- عناصر موجود در خانه sum را چاپ کن
درباره این سایت