Введение
В этом практическом занятии (лабораторной работе) вы научитесь определять, является ли число идеальным квадратом, используя язык программирования C. Идеальный квадрат - это число, которое может быть представлено в виде произведения целого числа на само себя. Например, 16 является идеальным квадратом, так как оно равно 4 × 4, а 25 также является идеальным квадратом, так как оно равно 5 × 5.
По завершении этого практического занятия вы поймете концепцию идеальных квадратов и сможете написать программу на языке C, которая проверяет, является ли введенное пользователем число идеальным квадратом или нет.
Понимание идеальных квадратов
Перед тем, как мы начнем писать код, давайте разберемся, что такое идеальный квадрат и как можно определить, является ли число идеальным квадратом.
Идеальный квадрат - это число, которое является квадратом целого числа. Другими словами, это число, которое можно записать в виде n², где n - целое число.
Примеры идеальных квадратов:
- 1 = 1² (1 × 1)
- 4 = 2² (2 × 2)
- 9 = 3² (3 × 3)
- 16 = 4² (4 × 4)
- 25 = 5² (5 × 5)
Для определения того, является ли число идеальным квадратом, мы можем проверить, существует ли целое число, квадрат которого равен заданному числу.
Давайте создадим каталог для нашего проекта и перейдем в него:
mkdir -p ~/project/perfect-square
cd ~/project/perfect-square

Теперь давайте создадим новый файл на языке C для нашей программы:
- В WebIDE перейдите в панель проводника файлов слева.
- Щелкните правой кнопкой мыши по папке
perfect-squareи выберите "Новый файл". - Назовите файл
perfect_square.cи нажмите Enter.
Создание базовой структуры программы
Теперь давайте создадим базовую структуру нашей программы на языке C. Нам нужно подключить необходимые заголовочные файлы и настроить главную функцию.
Откройте файл perfect_square.c в WebIDE, кликнув на него в панели проводника файлов. Затем добавьте следующий код:
#include <stdio.h>
int main() {
int number;
// Запросить у пользователя ввод
printf("Enter a number to check if it's a perfect square: ");
scanf("%d", &number);
// Мы добавим код для проверки идеального квадрата на следующем шаге
return 0;
}
Давайте разберем код:
#include <stdio.h>- Это подключает стандартную библиотеку ввода-вывода, которая предоставляет такие функции, какprintfиscanf.int main()- Это главная функция, с которой начинается выполнение программы.int number;- Мы объявляем целочисленную переменную для хранения ввода пользователя.printf("Enter a number...");- Это выводит приглашение пользователю.scanf("%d", &number);- Это считывает целочисленный ввод от пользователя и сохраняет его в переменнойnumber. Оператор&используется для получения адреса памяти переменной, в которой будет храниться ввод.
Сохраните файл, нажав Ctrl+S или выбрав "Сохранить" в меню "Файл".
Реализация алгоритма проверки на идеальный квадрат
Теперь давайте реализуем логику для проверки, является ли введенное пользователем число идеальным квадратом. Существует несколько способов проверить, является ли число идеальным квадратом. Мы будем использовать простой подход, при котором мы проверяем, есть ли среди целых чисел от 1 до данного числа такое, квадрат которого равен этому числу.
Обновите файл perfect_square.c следующим кодом:
#include <stdio.h>
int main() {
int number;
int isPerfectSquare = 0; // Флаг, указывающий, является ли число идеальным квадратом
// Запросить у пользователя ввод
printf("Enter a number to check if it's a perfect square: ");
scanf("%d", &number);
// Проверить, является ли число отрицательным
if (number < 0) {
printf("%d is negative, and negative numbers cannot be perfect squares.\n", number);
return 0;
}
// Проверить, является ли число идеальным квадратом
for (int i = 0; i <= number; i++) {
if (i * i == number) {
isPerfectSquare = 1;
printf("%d is a perfect square. It is %d squared.\n", number, i);
break; // Выйти из цикла, как только найдем ответ
}
// Оптимизация: если i*i превышает число, нет необходимости проверять дальше
if (i * i > number) {
break;
}
}
// Если число не является идеальным квадратом, сообщить пользователю
if (isPerfectSquare == 0) {
printf("%d is not a perfect square.\n", number);
}
return 0;
}
Давайте разберем новый код:
- Мы добавили флаг
isPerfectSquareдля отслеживания, является ли число идеальным квадратом. - Мы проверяем, является ли число отрицательным, так как отрицательные числа не могут быть идеальными квадратами.
- Мы используем цикл
forдля перебора чисел от 0 до данного числа. - Внутри цикла мы проверяем, равно ли
i * iданному числу. Если равно, мы устанавливаем наш флаг, выводим сообщение и выходим из цикла. - Мы добавили оптимизацию: если
i * iпревышает данное число, мы можем прекратить проверку, так как все последующие значения также будут превышать число. - Наконец, если флаг все еще равен 0, мы сообщаем пользователю, что число не является идеальным квадратом.
Сохраните файл (Ctrl+S или "Файл > Сохранить").
Компиляция и тестирование программы
Теперь, когда мы завершили написание кода для проверки идеальных квадратов, давайте скомпилируем и протестируем его. Мы будем использовать компилятор GCC для компиляции нашей программы на языке C.
Перейдите в директорию, содержащую наш код (если вы еще не там):
cd ~/project/perfect-square
Скомпилируйте программу:
gcc perfect_square.c -o perfect_square
Эта команда компилирует файл perfect_square.c и создает исполняемый файл с именем perfect_square. Если компиляция прошла успешно, вы не увидите никакого вывода.
Теперь давайте запустим программу:
./perfect_square

Программа попросит вас ввести число. Давайте протестируем с разными входными данными:
Введите число, являющееся идеальным квадратом, например 16. Вывод должен быть:
16 is a perfect square. It is 4 squared.Введите число, не являющееся идеальным квадратом, например 10. Вывод должен быть:
10 is not a perfect square.Введите отрицательное число, например -4. Вывод должен быть:
-4 is negative, and negative numbers cannot be perfect squares.
Вы можете запускать программу несколько раз, чтобы протестировать с разными входными данными.
Давайте также попробуем граничный случай, число 0:
./perfect_square
Введите 0, когда программа запросит ввод.
Вывод должен быть: 0 is a perfect square. It is 0 squared.
Поздравляем! Вы успешно создали программу на языке C, которая проверяет, является ли число идеальным квадратом.
Резюме
В этом практическом занятии (лабораторной работе) вы научились создавать программу на языке C, которая определяет, является ли число идеальным квадратом. Вот основные концепции, которые были рассмотрены:
- Идеальные квадраты - это числа, которые могут быть представлены в виде квадрата целого числа.
- Основные концепции программирования на языке C, включая переменные, условные операторы и циклы.
- Получение входных данных от пользователя с помощью
scanfи вывод результатов с помощьюprintf. - Использование цикла для проверки, является ли число идеальным квадратом, путем проверки каждого возможного значения.
- Оптимизация решения путем выхода из цикла при необходимости.
- Обработка граничных случаев, таких как отрицательные числа и ноль.
В этой лабораторной работе показано, как математические концепции могут быть реализованы в программировании. Вы можете расширить эту программу, добавив новые функции, например, поиск следующего идеального квадрата после заданного числа или проверку, является ли число кубом (n³) вместо квадрата.



