iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 25
0
Modern Web

零經驗ASP .NET Core 30 DAY全紀錄系列 第 25

零經驗 .NET Core 30 DAY----- Day25 row column二維TO一維計算和實際應用

  • 分享至 

  • xImage
  •  

大家好,昨天有提到我想要做的功能為” TABLE的上下左右看功能”,可是昨天寫出來的程式碼被今天的我發現完全錯誤,所以今天更新了正確的程式碼(在DAY24),下面談談row&column計算,跟我的程式碼應用解說。

一、row&column計算:

ROW MAJOR

紅線為記憶體中資料儲存的方向。
假設二維A[i][j] 。
https://ithelp.ithome.com.tw/upload/images/20201001/20130030l11T7TGqMs.png
一維A[z],z從1開始到i*j。
Z = (j-1)*i.max() + i
https://ithelp.ithome.com.tw/upload/images/20201001/20130030Lj0kT6QZT0.png

COLUMN MAJOR

紅線為記憶體中資料儲存的方向。
假設二維A[i][j] 。
https://ithelp.ithome.com.tw/upload/images/20201001/20130030z2MGTzZHo4.png
一維A[z],z從1開始到i*j。
Z = (i-1)*i.max() + j
https://ithelp.ithome.com.tw/upload/images/20201001/20130030klQA66izJR.png


我的實作:
昨天已經完成顯示範圍的判斷,不過昨天的程式碼中page1 、page2是寫死的,那我的page其實是我要顯示的終點做標各加1,例如(11,11)(11,21)(21,21)等等,那下面放上我的範圍判斷程式碼,然後因為一開始我的x,y就擺錯家,所以我的程式碼是(y,x)。

@if(R >= page1){
    string tmp = ViewBag.TNAME + "," + (page1+10).ToString() + "," + page2.ToString();
<li><a asp-route-id=@tmp asp-controller="searchSeat" asp-action="searchSeat3" class="button special"><p>LOOK⬇</p></a></li>
}//R為最大的y做標,page1為目前範圍最終(y,x)的y+1。
@if(page2 <= C){
    string tmp = ViewBag.TNAME + "," + page1.ToString()+ "," + (page2+10).ToString() + "," ;
<li><a asp-route-id=@tmp asp-controller="searchSeat" asp-action="searchSeat3" class="button special"><p>LOOK➡</p></a></li>
}//C為最大的x做標,page2為目前範圍最終(y,x)的x+1。
@if(page1 > 11){
    string tmp = ViewBag.TNAME + "," + (page1-10).ToString() + "," + page2.ToString() ;
<li><a asp-route-id=@tmp asp-controller="searchSeat" asp-action="searchSeat3" class="button special"><p>LOOK⬆</p></a></li>
}
@if(page2 > 11 ){
    string tmp = ViewBag.TNAME + "," + page1.ToString()+ "," + (page2-10).ToString() + "," ;
<li><a asp-route-id=@tmp asp-controller="searchSeat" asp-action="searchSeat3" class="button special"><p>LOOK⬅</p></a></li>
}

顯示結果
一進去查看座位表會從最左上方(1,1)開始顯示,目前的表大小為20x21,因為右邊和下面接還有座位,所以會出現LOOK➡、LOOK⬇按鈕。
https://ithelp.ithome.com.tw/upload/images/20201001/20130030OyKYH9KAep.png
按下LOOK➡後的解果,因為右邊沒有位子了,所以只剩下LOOK⬇跟可以回到左邊的LOOK⬅。
https://ithelp.ithome.com.tw/upload/images/20201001/20130030UM0jAqGt52.png
按下LOOK⬇,因為下面還有所以會出現LOOK⬇跟可以返回左邊LOOK⬅跟返回上面的LOOK⬆。
https://ithelp.ithome.com.tw/upload/images/20201001/20130030Wj0AoVnzO4.png

最後再按下LOOK⬇。

https://ithelp.ithome.com.tw/upload/images/20201001/20130030VMKPvOKmmv.png


day25心得:
我要趕去家庭聚餐了,大家掰掰。


上一篇
零經驗 .NET Core 30 DAY----- Day24 所謂的直行橫列就是個搞瘋人的東西嘛
下一篇
零經驗 .NET Core 30 DAY----- Day26 HashAlgorithm做密碼加密&byte[]和string的轉換
系列文
零經驗ASP .NET Core 30 DAY全紀錄30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言