Trang chủ Tin Học Lớp 10 cho hỏi cách dùng vòng for trong C++ (cấu trúc,...

cho hỏi cách dùng vòng for trong C++ (cấu trúc, dùng để làm gì) cho ví dụ bằng cách tính tổng 1 dãy số từ 1 đến n kiểm tra tổng đó có phải số chính phương hay

Câu hỏi :

cho hỏi cách dùng vòng for trong C++ (cấu trúc, dùng để làm gì) cho ví dụ bằng cách tính tổng 1 dãy số từ 1 đến n kiểm tra tổng đó có phải số chính phương hay không

Lời giải 1 :

\begin{array}{c} \color{#db1616}{\texttt{#Khoadang09}} \end{array}

`@`Cấu trúc for trong C++:

`+)` For điều kiện :

`\ \ \ \ \ \ \ \ `$\texttt{for(<initialization>; <condition>; <up/down>)}$
`\ \ \ \ \ \ \ \ {`$\texttt{<command>}$
`\ \ \ \ \ \ \ \ }\ ;`

`-` Trong đó :

  + initialization : một là khai báo biến và giá trị, kèm gán giá trị khởi đầu, hoặc gán giá trị khởi tạo cho biến đếm (đã khai báo biến bên ngoài)

  + condition : đây là điều kiện để dừng vòng lặp. Nếu bạn đặt điều kiện không phù hợp, vòng lặp for sẽ chạy mãi mãi hoặc không thực hiện vòng lặp nào

  + up/down : thường là toán tử tăng/giảm giá trị biến đếm. Tuỳ vào đề bài ta tăng giá trị phù hợp. Ví dụ i++,  j+=2, j+=i

EX : for (int i=0; i<n; i+=2) { s += i} ;

`+)` For - earch : tác dụng chính là duyệt thẳng các phần tử trong mảng, vector, ... mà không cần số chỉ vị trí của chúng 

`\ \ \ \ \ \ \ \ `$\texttt{for(<data types/auto> <count variable>: <array>)}$
`\ \ \ \ \ \ \ \ {`$\texttt{<command>}$
`\ \ \ \ \ \ \ \ };`

`-` Trong đó :

  + data types : kiểu dữ liệu cho count variable, phù hợp với kiểu dữ liệu array. Ngoài ra, một số trường hợp khác ta có thể dùng auto để tự động phù hợp với kiểu dữ liệu array

  + count variable : là biến đếm dùng để truy cập trực tiếp hoặc như bảng copy các phần tử trong array.

(Trước data types có thể có từ khoá const để cố định giá trị, khiến giá trị các phần tử trong array trong quá trình thực hiện không thay đổi)

(Giữa data types và count variable có thể có thể đặt tham chiếu (&) để thay vì chạy và count variable như một bản sao thì nó truy cập trực tiếp, và có thể chỉnh sửa ngay trên mảng)

  + array : thông thường là mảng cần truy cập và xử lý, hoặc bất cứ đối tượng nào hỗ trợ for - earch

`@` Tác dụng chính : dùng để lặp lại nhiều lần một câu lệnh và dựa trên điều kiện để dừng câu lệnh (với for điều kiện) hoặc duyệt qua một mảng hoặc xâu (với for - earch)

*Số chính phương : là số tồn tại căn bậc hai của nó là số tự nhiên

  - 9 là số chính phương vì `sqrt9=3`

  - 2 không là số chính phương vì `sqrt2~~1,4142...`

  - Xây dựng giả thuyết : gọi số n là số cần xét. Nếu `n` sau khi căn bậc hai làm tròn, sau đó bình phương đúng bằng chính nó thì `n` là số chính phương, ngược lại không

  - `sqrt9=3=>3^2=9 ->` số chính phương

  - `sqrt2~~1.4142->\text(int)(1.4142)=1 -> 1^2!=2->` không phải số chính phương

  - Trong C++, nếu tính toán phép tính số thực và lưu vào biến số nguyên, giá trị tự động bỏ phần thập phân và giữ phần nguyên

*Code: tính tổng 1 dãy số từ 1 đến n, xét tổng có là số chính phương không:

#include <iostream>
#include <cmath>
using namespace std;
int main(){
    int n; 
    cout << "Nhap n: "; cin >> n;
    int tong = 0;
    for (int i=1;i<=n;i++) tong = tong + i;
    cout << "Tong: " << tong << endl;
    int sqrt_tong = sqrt(tong);
    if (sqrt_tong * sqrt_tong == tong) cout << "Tong " << tong << " la so chinh phuong";
        else cout << "Tong " << tong << " khong la so chinh phuong";
    return 0;
}

*Bonus : code kiểm tra phạm vi từ `1->n` những tổng nào là tổng số chính phương :

#include <iostream>
#include <cmath>
bool check(int n){
    int sq = sqrt(n);
    return n == sq * sq;
}
using namespace std;
int main(){
    int n; cin >> n;
    for (int i=2;i<=n;i++){
        int s = (i*(i+1))/2;
        if (check(s)) cout << i << "\n";
    }
}

image

Lời giải 2 :

`-` Cấu trúc vòng for (trong C++):

for (khởi tạo ; điều kiện lặp ; bước nhảy)

{

    // viết code ở trong này 

}

`-` Trong đó : 

`@` "khởi tạo": thường được sử dụng để khởi tạo biến lặp 

`@` "điều kiện lặp " : kiểm tra điều kiện trước mỗi lần lặp , nếu điều kiện đúng thì lặp tiếp và thực hiện code bên trong , còn điều kiện sai thì kết thúc vòng lặp

`@` "bước nhảy" : thường được cập nhật biến lặp

`-` Vòng for dùng để làm `1` việc gì đó nhiều lần với số lần biết trước , khi ta không muốn thực hiện `1` công việc giống nhau thì dùng vòng for với số vòng lặp biết trước (còn nếu không biết trước thì dùng while)

_______________________

`C++`

-------------------------

#include<iostream>

#include<cmath>

bool ktscp(long long int n)

{

long long int i = sqrt(n);

return (i*i == n );

}

int main()

{

int n;

long long int sum = 0;

std::cout<<"nhap gia tri n : "<<std::endl;

std::cin>>n;

for(int i = 0; i<=n ; i++)

{

sum += i;

}

if(ktscp(sum))

{

std::cout<<"tong tu 1 toi "<<n<<" la so chinh phuong ";
}else

{

std::cout<<"tong tu 1 toi "<<n<<" khong la so chinh phuong";
}

return 0;

}

____________________

`~phudzz~`

image

Bạn có biết?

Tin học là một ngành khoa học chuyên nghiên cứu quá trình tự động hóa việc tổ chức, lưu trữ, xử lý và truyền dẫn thông tin của một hệ thống máy tính cụ thể hoặc trừu tượng. Tin học bao hàm tất cả các nghiên cứu và kỹ thuật có liên quan đến việc mô phỏng, biến đổi và tái tạo thông tin. Hãy tận dụng sức mạnh của tin học để giải quyết các vấn đề và sáng tạo ra những giải pháp mới!

Nguồn :

Wikipedia - Bách khoa toàn thư

Tâm sự lớp 10

Lớp 10 - Năm đầu tiên ở cấp trung học phổ thông, chúng ta sẽ có nhiều bạn bè mới đến từ những nơi khác nhau. Ngôi trường mới, xa nhà hơn, mở ra một thế giới mới với nhiều điều thú vị. Hãy mở lòng đón nhận và tận hưởng những trải nghiệm mới!

Nguồn :

sưu tập

Liên hệ hợp tác hoặc quảng cáo: gmail

Điều khoản dịch vụ

Copyright © 2021 HOCTAPSGK