Считая, что заданы координаты концов отрезков, найти их длины - C (СИ)
Формулировка задачи:
Дан файл натуральных чисел. Количество чисел в файле кратно четырем, каждые два последовательных числа определяют координаты некоторой точки на плоскости. Считая, что заданы координаты концов отрезков, найти их длины.
Решение задачи: «Считая, что заданы координаты концов отрезков, найти их длины»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <math.h> int l_vect(FILE *,int*,int*); int main() { int beg[2],end[2]; //координаты точек начала и конца вектора FILE *f; char str[20]; scanf("%s",str); f = fopen(str,"r"); if(f == NULL) // Проверка ошибки открытия файла { puts("File open error..."); getchar(); return 0; } while(!feof(f)) // Пока не конец файла printf("Long vector: %i\n",l_vect(f,beg,end)); getchar(); getchar(); return 1; } int l_vect(FILE *f,int *beg, int *end) { fscanf(f,"%i",&beg[0]); fscanf(f,"%i",&beg[1]); fscanf(f,"%i",&end[0]); fscanf(f,"%i",&end[1]); return sqrt((pow((double)(end[0]-beg[0]),2)+pow((double)(end[1]-beg[1]),2))); // Возвращаем значение по формуле: }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы с вводом-выводом, математическими функциями и файлами
- Определяем функцию
l_vect
, которая будет вычислять длину вектора по заданным координатам концов отрезков - В функции
main
открываем файл для чтения с помощьюfopen
и проверяем успешность операции с помощьюfeof
- Пока файл не закончился, считываем координаты концов отрезков с помощью
fscanf
и передаем их в функциюl_vect
- Выводим значение длины вектора на экран с помощью
printf
- В функции
l_vect
считываем координаты концов отрезков с помощьюfscanf
- Вычисляем длину вектора по формуле
sqrt((pow((double)(end[0]-beg[0]),2)+pow((double)(end[1]-beg[1]),2))
и возвращаем результат - Закрываем файл с помощью
fclose
после окончания работы с ним - Возвращаем 1 в функции
main
, если файл успешно открыт и прочитан, иначе возвращаем 0 и выводим сообщение об ошибке - В функции
l_vect
используемpow
из библиотекиmath.h
для вычисления квадрата числа с плавающей точкой - В функции
l_vect
используемsqrt
из библиотекиmath.h
для вычисления квадратного корня числа с плавающей точкой - В функции
main
используемgetchar
для считывания символа новой строки - В функции
main
используемfeof
для проверки окончания файла - В функции
main
используемfscanf
для считывания чисел из файла - В функции
main
используемprintf
для вывода значения длины вектора на экран - В функции
main
используемfclose
для закрытия файла - В функции
main
используемgetchar
для считывания символа новой строки - В функции
main
используемgetchar
для считывания символа новой строки - В функции
main
возвращаем 1 при успешном выполнении программы, иначе возвращаем 0 - В функции
l_vect
используемfscanf
для считывания чисел из файла
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д