1

Тема: Поясніть коли можна писати поза int main()

Привіт, я поступив на програміста і хотів би запитати коли можна писати поза межами int main(), тому що я не розумію. Я знаю що воно працює(Мій код) но я завжди запитую себе чому воно так працює, і які в нього правила, тобто коли можна коли ні, чому саме так, я спробував гуглити но моя цікавість не була задоволена, і тепер я тут. Шукаю відповідь на моє питання на цьому форумі

#include <iostream>
#include <cmath>

bool Laba4(int n) {
    if (n < 2) return false;
    if (n == 2) return true;
    if (n % 2 == 0) return false;

    for (int i = 3; i <= sqrt(n); i += 2) {
        if (n % i == 0) return false;
    }
    return true;
}
int main() {
    printf("dviznachini chisla: ");
    for (int i = 10; i < 100; i++) {
        if (Laba4(i)) {
            printf("%d ", i);
        }
    }
    return 0;
}

Від модератора: додав теги code.

2

Re: Поясніть коли можна писати поза int main()

а де коментарі?

3

Re: Поясніть коли можна писати поза int main()

Якщо ти за коментарі в коді, то від нас не вимагають коментарі, тому я їх і не пишу. Якби це була програма більша за обсягом, то я б писав для себе, щоб не заплутатись, но цей код не настільки великий, щоб писати коментарі тому і не писав

Подякували: leofun011

4

Re: Поясніть коли можна писати поза int main()

якби писав би, то не було б зайвих питань.

5 Востаннє редагувалося Betterthanyou (26.10.2023 23:20:35)

Re: Поясніть коли можна писати поза int main()

Що можна "писати" за межами функції main:

Глобальні змінні.
Глобальні функції.
Класи.
Функції-члени класів.
Шаблони класів і функцій.
Оголошення функцій.
Оголошення класів і функцій у інших файлах.

У вашому випадку 'bool Laba4(int n)' - це глобальна функція.

Подякували: flatliner, maksym3123, leofun01, koala4

6

Re: Поясніть коли можна писати поза int main()

Якщо Вас цікавить в загальному як називаються "правила" які ви шукаєте: це "область видимості" і "простір імен"

Ось тут добре пояснено: https://en.cppreference.com/w/cpp/language/scope

Подякували: maksym3123, leofun012

7 Востаннє редагувалося Droid 77 (27.10.2023 00:20:00)

Re: Поясніть коли можна писати поза int main()

Пані maksym3123, вибачте за зухвалість, та коли Ви роз'ясните що написано в рядку:

printf("dviznachini chisla: ");

То шановне панство, до якаго Ви звернулися, можливо чимось і допоможе.

Подякували: maksym31231

8

Re: Поясніть коли можна писати поза int main()

Це я написав так на англійській двохзначні числа(прості двохзначні числа) якщо я напишу на українській, то видасть ієрогліфи тому прийшлось так скажемо викрутитись з ситуації таким чином. І так Мені подобається як я написав за це бал не знижують тому нехай буде. Дякую за запитання

Подякували: bebyk1

9

Re: Поясніть коли можна писати поза int main()

Це постійне студентське питання, тому що лабораторні, які ви пишете, маленькі і зазвичай влізають у main, але промисловий код - довгий, і повністю винесений в main стане практично нечитаним.
По-хорошому, у вашому коді слід було б перейменувати Laba4 в щось на кшталт is_prime(), бо ця функція саме перевіряє, чи є число простим; у коді, наближеному до промислового, це було б якось так:

bool is_prime(int n) 
{
    /*те, що у вас в Laba4*/
}

void laba4()
{
   /*те, що у вас у main*/
}

int main(void)
{
    laba4();
}

але ясно, що в цьому випадку окрема функція laba4 не має сенсу і її можна спокійно об'єднати з main(). Але якщо винести laba4 в окрему функцію, то можна створити програму, що запускатиме різні лабораторні на вибір, і для цього не треба буде перейменовувати і переписувати функції з різних лабораторних. Це - ваш вибір як розробника.

Подякували: maksym3123, Betterthanyou2

10

Re: Поясніть коли можна писати поза int main()

ur_naz написав:

якби писав би, то не було б зайвих питань.

вимкніть комп'ютер з розетки

11

Re: Поясніть коли можна писати поза int main()

ur_naz отримує бан за п.1.1 Правил

Подякували: Bleizzi, leofun01, maksym31233