hỏi về vòng lặp for

Liên hệ QC
Nếu e là dân kỹ thuật thì Vòng lặp For hay ứng dụng trong việc nội suy tuyến tính 1 chiều và 2 chiều.... thậm chí cao hơn 1 chút nữa có thể giải quyết giải hệ phương trình nhiều ẩn theo pp ma trận cũng được và vv...các ứng dựng khác nữa. Các code nội suy này trên diễn đàn khá nhiều... e tự tìm nhé. Còn để hiểu rõ hơn về vòng lặp for...nếu chịu khó e tìm sách Pascal và VB6 đọc là được.
 
Nếu e là dân kỹ thuật thì Vòng lặp For hay ứng dụng trong việc nội suy tuyến tính 1 chiều và 2 chiều.... thậm chí cao hơn 1 chút nữa có thể giải quyết giải hệ phương trình nhiều ẩn theo pp ma trận cũng được và vv...các ứng dựng khác nữa. Các code nội suy này trên diễn đàn khá nhiều... e tự tìm nhé. Còn để hiểu rõ hơn về vòng lặp for...nếu chịu khó e tìm sách Pascal và VB6 đọc là được.
Chỉ tầm bậy. Mỗi ngôn ngữ có cách sử lý vòng lặp for khác nhau. Tơ lơ mơ đọc nhầm thì áp dụng trật lất.
Có ngôn ngữ cho phép thay đổi giới hạn trị cuối, có ngôn ngữ không cho.
Có ngôn ngữ cho phép thay đổi trị biến đếm trong vòng lặp, có ngôn ngữ thì không.
Có ngôn ngữ cho phép đặt biến đếm là biế nội của vòng lặp (hết vòng lặp là hết phạm vi của biến)
Cũng có ngôn ngữ chả bắt buộc vòng lặp for phải dùng biến đếm (hoạt động giống như while).
 
VBA yêu cầu biến đếm phải là số còn Pascal có thể for từ A đến Z.
 
Có ngôn ngữ cho phép đặt biến đếm là biế nội của vòng lặp (hết vòng lặp là hết phạm vi của biến)
.
Tôi thêm chữ chỉ. Vd. trong Delphi (Object Pascal) thì biến bắt buộc phải khai báo trong sub/function có FOR - local variable.

Thêm: có ngôn ngữ thì sau vòng lặp biến có giá trị bằng giá trị khi kết thúc FOR (VBA), nhưng trong ngôn ngữ khác thì sau khi FOR kết thúc thì biến không xác định. Vd. như trong Delphi thì sau FOR biến không xác định. Tức nó có giá trị nào đó nhưng Delphi không đảm bảo là giá trị đó phải là thế này hay thế kia.
 
Chúng ta có thể tìm được ý tưởng hữu ích từ những giáo trình ngôn ngữ lập trình khác dù không phải về VBA. Vấn đề là có ai chịu khó động não không? Kể cả với ngôn ngữ Assembly dù bản thân tôi đọc mãi cũng chả hiểu và Assembly cũng chả ăn nhập với cú pháp bất cứ ngôn ngữ lập trình hiện đại nào, nhưng nhờ phí thời gian cho nó mà tôi cũng nghiệm ra vài điều hay cho sự viết cốt của mình.

Chuyện áp dụng phương thức dùng trong ngôn ngữ lập trình này cho một ngôn ngữ lập trình khác có thể không thành công nhưng chắc chắn là nó sẽ luyện tập cho người lập trình sự tư duy. Nếu thiếu tư duy thì kể cả học đúng giáo trình của đúng ngôn ngữ thì chưa chắc bạn đã viết được gì đáng kể.
 
Lần chỉnh sửa cuối:
Túm lợi thì bàn cho lắm cũng trợt lớt.
Thớt cũng chưa cho biết mình muốn nói chuyện vòng lặp trong ngữ cảnh nào.
Và nếu là trong VBA thì cũng còn cần phải biết nó là loại duyệt căn bản (có chỉ số đếm) hay loại duyệt nhóm/collection (bóc ra từng phần tử)

Chú: đối với các CSDL thì
TSQL không có For, dùng While
mySQL cũng không có For, dùng Loop
SQLplus dùng For như một lambda để chạy Loop
Như đã nêu trước, CSDL LH không có khái niệm "dòng cũng như cột". Cột là tính chất, là số có xác định. Dòng là phát sinh, cứ thêm bớt dài dài.
 
Chúng ta có thể tìm được ý tưởng hữu ích từ những giáo trình ngôn ngữ lập trình khác dù không phải về VBA. Vấn đề là có ai chịu khó động não không? Kể cả với ngôn ngữ Assembly dù bản thân tôi đọc mãi cũng chả hiểu và Assembly cũng chả ăn nhập với cú pháp bất cứ ngôn ngữ lập trình hiện đại nào, nhưng nhờ phí thời gian cho nó mà tôi cũng nghiệm ra vài điều hay cho sự viết cốt của mình.

Chuyện áp dụng phương thức dùng trong ngôn ngữ lập trình này cho một ngôn ngữ lập trình khác có thể không thành công nhưng chắc chắn là nó sẽ luyện tập cho người lập trình sự tư duy. Nếu thiếu tư duy thì kể cả học đúng giáo trình của đúng ngôn ngữ thì chưa chắc bạn đã viết được gì đáng kể.
Những lời này chỉ nói được với ngừoi đã có trình độ lập trình tương đối khá.
Đối với thớt, vòng lặp for là một trong nhũng cấu trúc căn bản còn chưa nắm vững. Chỉ riêng mục chọn góc diễn đàn để đặt câu hỏi cho đúng ngữ cảnh còn không chắc đã nên thân, bảo rèn luyện tư duy thì quên đi.

VBA không phải là ngôn ngữ lập trình tổng quát. Từ Application trong tên của nó đã liệt hẳn nó vào loại lập trình có nền tảng (platform) và khuôn khổ (framework). Nền tảng của nó là Excel/Access, và khuôn khổ của nó là VBE. Muốn học VBA thì học thẳng VBA. Và học các cách áp dụng vào việc xử lý bảng tính. Việc "ý tưởng hữu ích từ những giáo trình khác" chỉ giành cho ngừoi đã có kiến thức về ngôn ngữ khác.

Muốn học tư duy lập trình thì nên học Pascal. Tự lịch sử của nó đã xuất xứ từ giáo dục. Pascal là ngôn ngữ được đặt ra để dạy Angol 60.

Cái dòng kết cuối cùng (bottom line) của VBA là cái bảng tính (Excel) và cái CSDL (Access). Không nên quên điều đó.
 
Những lời này chỉ nói được với ngừoi đã có trình độ lập trình tương đối khá.
Đối với thớt, vòng lặp for là một trong nhũng cấu trúc căn bản còn chưa nắm vững. Chỉ riêng mục chọn góc diễn đàn để đặt câu hỏi cho đúng ngữ cảnh còn không chắc đã nên thân, bảo rèn luyện tư duy thì quên đi.

VBA không phải là ngôn ngữ lập trình tổng quát. Từ Application trong tên của nó đã liệt hẳn nó vào loại lập trình có nền tảng (platform) và khuôn khổ (framework). Nền tảng của nó là Excel/Access, và khuôn khổ của nó là VBE. Muốn học VBA thì học thẳng VBA. Và học các cách áp dụng vào việc xử lý bảng tính. Việc "ý tưởng hữu ích từ những giáo trình khác" chỉ giành cho ngừoi đã có kiến thức về ngôn ngữ khác.

Muốn học tư duy lập trình thì nên học Pascal. Tự lịch sử của nó đã xuất xứ từ giáo dục. Pascal là ngôn ngữ được đặt ra để dạy Angol 60.

Cái dòng kết cuối cùng (bottom line) của VBA là cái bảng tính (Excel) và cái CSDL (Access). Không nên quên điều đó.
Hi hi... bác oy cháu cũng chỉ là nhờ chủ Topic này nhân tiện để hỏi thôi bác à.
 
Những lời này chỉ nói được với ngừoi đã có trình độ lập trình tương đối khá.
Đối với thớt, vòng lặp for là một trong nhũng cấu trúc căn bản còn chưa nắm vững. Chỉ riêng mục chọn góc diễn đàn để đặt câu hỏi cho đúng ngữ cảnh còn không chắc đã nên thân, bảo rèn luyện tư duy thì quên đi.
Trình độ của tôi bèo đến mức mà hiện giờ còn chả nhớ nổi khai báo mảng, vòng lặp có "đu" hay ko "đu" và "đu" để chỗ nào tôi cũng chả nhớ, hàm iff hay iif giờ tôi cũng chả biết là dùng tên nào cho đúng ... (chắc dễ bị phán là mất căn bản). Nhưng bản thân tôi thấy chả sao cả, chỉ tốn thêm vài giây hay vài phút thử lại.. Quan trọng là mình đã thực hiện ý tưởng. Có khi nhầm lẫn lại mở ra những hướng mới.

Tôi nhớ lúc mới học lập trình bằng Pascal chả có máy tính riêng làm bài, thế là tôi đành tự sướng với con máy tính bỏ túi (Texas Ti86) có thể lập trình với thứ ngôn ngữ mà chắc chắc chả mấy ai nghe thèm biết tên (TI BASIC chả ăn nhập gì với Visual Basic hay VBA cũng như Pascal). Tất cả những gì tôi biết nhờ là nhờ cuốn manual nhỏ xíu toàn tiếng Anh chưa đầy trăm trang kèm theo cái máy tính nhỏ đó. Dù trình chưa khá (chả biết đếch gì), nhưng với tôi Ti Basic vẫn là thứ đã dạy cho tôi tư duy về lập trình đầu tiên dù đến giờ tôi cũng chả nhớ nó là cái gì cả:unknw: .

Nếu cứ trông chờ bỗng nhiên "trình độ lập trình tương đối khá" mà chả chịu tìm tòi thì chắc chả bao giờ trình độ khá nổi.

Để khỏi lan man bà tám, tôi xin phép dừng ở đây.
 
Lần chỉnh sửa cuối:
Anh ơi cho em hỏi có quy tắc hoặc công thức nào để viết vòng lặp for không hở anh?
Học có lâu không hở anh?
Hi hi... bác oy cháu cũng chỉ là nhờ chủ Topic này nhân tiện để hỏi thôi bác à.
[1] Vòng lặp tức là một cấu trúc để đoạn code chạy đi chạy lại nhiều lần. Tên chính của vòng lặp trong lập trình là Loop.
Vòng lặp For là một loại Loop căn bản dùng để lặp đi lặp lại có trật tự.
(giải thích thêm nữa chắc phải tốn khoảng 1 trang)

[2] Học lâu mau tuỳ theo mục đích. Muốn học sương sương cho "cũng biết code với người ta" thì khoảng 1 tuần, 1-2 tiếng mỗi ngày.
Muốn đạt nhiều hơn thì khoảng gấp 3 như vậy. Muốn vào nhóm tốp tuen ty pờ sen ở đây thì khoảng 1/2 năm. Muốn vào tốp teng thì... khó trả lời, bởi vì định nghĩa tốp teng nó hơi tương đối.
Nếu thực tế muốn trì chí học thì cách dễ nhất là tậu lấy 1 quyển sách VBA từ căn bản đến nâng cao. Đọc không chừa 1 dòng nào. Nếu có bài tập thì làm đúng không chừa 1 bài nào. Và điều quan trọng là trong khoảng 1/2 đầu của quyển sách, phải gõ đầy đủ từng bài một, không được copy/paste các bài đã làm qua. Lý do là để tập cho quen gõ, tránh bj gõ nhầm về sau. Sau khi qua 1/2 sách rồi thì có thể copy/paste.
Học hết quyển này rồi thì tìm quyển cao hơn. Lúc này là bắt đầu lập thư viện code riêng cho mình để sử dụng. Nếu quyển 2 này không chỉ cách lập thư viện thì nó chưa xứng đáng là bậc cao. Tìm quyển khác.

Riêng theo kinh nghiệm dìu dắt của toi thì bước đầu học chỉ cần siêng năng, chả cần tư duy gì cả. Cái mà người ta gọi tư duy này nọ chỉ là cái chuyện về sau này, khi ngừoi học đã đạt một trình độ kha khá.
Bản thân tôi nhìn kiểu code của 1 vài người vẫn được các bạn ở đây cho là "cao thủ", "pơ rô", "sư phụ" gì đó thì thấy rõ họ bắt đầu bằng cách học mò, chả hề tư duy gì cả.
Hầu hết nhũng ngừoi nói đến cái từ "tư duy" đều là những ngừoi đã đạt trình độ cao rồi.

[3] Hỏi rõ rệt thì mới được câu trả ời chính chắn. Muốn nhờ cũng chả sao nhưng phải xác định. Hỏi ỡm ờ thường nhận được câu trả lời ỡm ờ.
 
[1] Vòng lặp tức là một cấu trúc để đoạn code chạy đi chạy lại nhiều lần. Tên chính của vòng lặp trong lập trình là Loop.
Vòng lặp For là một loại Loop căn bản dùng để lặp đi lặp lại có trật tự.
(giải thích thêm nữa chắc phải tốn khoảng 1 trang)

[2] Học lâu mau tuỳ theo mục đích. Muốn học sương sương cho "cũng biết code với người ta" thì khoảng 1 tuần, 1-2 tiếng mỗi ngày.
Muốn đạt nhiều hơn thì khoảng gấp 3 như vậy. Muốn vào nhóm tốp tuen ty pờ sen ở đây thì khoảng 1/2 năm. Muốn vào tốp teng thì... khó trả lời, bởi vì định nghĩa tốp teng nó hơi tương đối.
Nếu thực tế muốn trì chí học thì cách dễ nhất là tậu lấy 1 quyển sách VBA từ căn bản đến nâng cao. Đọc không chừa 1 dòng nào. Nếu có bài tập thì làm đúng không chừa 1 bài nào. Và điều quan trọng là trong khoảng 1/2 đầu của quyển sách, phải gõ đầy đủ từng bài một, không được copy/paste các bài đã làm qua. Lý do là để tập cho quen gõ, tránh bj gõ nhầm về sau. Sau khi qua 1/2 sách rồi thì có thể copy/paste.
Học hết quyển này rồi thì tìm quyển cao hơn. Lúc này là bắt đầu lập thư viện code riêng cho mình để sử dụng. Nếu quyển 2 này không chỉ cách lập thư viện thì nó chưa xứng đáng là bậc cao. Tìm quyển khác.

Riêng theo kinh nghiệm dìu dắt của toi thì bước đầu học chỉ cần siêng năng, chả cần tư duy gì cả. Cái mà người ta gọi tư duy này nọ chỉ là cái chuyện về sau này, khi ngừoi học đã đạt một trình độ kha khá.
Bản thân tôi nhìn kiểu code của 1 vài người vẫn được các bạn ở đây cho là "cao thủ", "pơ rô", "sư phụ" gì đó thì thấy rõ họ bắt đầu bằng cách học mò, chả hề tư duy gì cả.
Hầu hết nhũng ngừoi nói đến cái từ "tư duy" đều là những ngừoi đã đạt trình độ cao rồi.

[3] Hỏi rõ rệt thì mới được câu trả ời chính chắn. Muốn nhờ cũng chả sao nhưng phải xác định. Hỏi ỡm ờ thường nhận được câu trả lời ỡm ờ.
Hi hi cháu cảm ơn những lời khuyên bảo dạy dỗ của bác. chúc bác mạnh khỏe, sống lâu, nếu khi nào cháu hỏi thì bác giúp cháu đấy bác nhé!
 
Web KT
Back
Top Bottom