#include //ввод и вывод #include //работа с файлами using namespace std; bool check_number(char *s)//функция проверки: является ли строка числом? { for (int i=0; s[i]!='\0'; i++)//пробегаем по всем символам строки s до символа конца строки \0 if (!(s[i]>='0' && s[i]<='9' || s[i]=='.')) return false;//если текущий символ не цифра и не точка, то наша строка не число, выходим return true;//возвращаем true, т.е. наша строка - это число } bool read_file(float *&x, float *&y, int &n, char *filename)//чтение данных из файла. & означает, что ф-ия оставит изменёнными эти параметры { ifstream file; file.open(filename);//открываем файл if (file.fail())//если открыть не удалось, выводим ошибку и выходим из проги { cout<<"Error! Can't open file "<>str;//считываем строку n++;//подсчитываем кол-во чисел в файле if (!check_number(str))//если считанная строка не число, выводим ошибку и выходим из проги { cout<<"Error! Wrong data in file!"<>x[i]>>y[i];//пока не достигнем конца файла считываем значения х и у в массивы file.close();//после чтения закрываем файл return true;//если дошли до этого момента, то ошибок нет и данные успешно прочитаны } float calc_lagrange(float *x, float *y, int n, float num)//ф-ия вычисления полинома лагранжа для заданных массивов x и y, размера n, и какого-то значения num { float drob=1.0;//каждая дробь в полиноме float res=0.0;//конечный результат for (int i=0; i>filename;//читаем имя файла float *x, *y;//массивы значений x и y int n=0;//сколько элементов в массивах (изначально 0) if (!read_file(x, y, n, filename)) return -1;//если при чтении из файла произошли ошибки, то выходим из проги delete[] filename;//удаляем строку с именем файла float num=0.0;//число х, которое нужно подставить в полином лагранжа while (num!=-1.0) { cout<<"Enter x for calculations (for exit enter -1): "; cin>>num; if (num!=-1.0) cout<<"Result: "<