Условно-бесплатные - это означает, что они бесплатны ПРИ НЕКОТОРЫХ УСЛОВИЯХ. Например, что бесплатно ими можно пользоваться только некоторое время (чтоб понять, что это запрограмма и подходит ли она конкретно вам), а сверх того - уже за плату. Или можно пользоваться только некоторыми базовыми функциями программы, а расширенными - уже за плату. Или её функционал ограничен размерами обрабатываемой информации - скажем, схему на 64 узла я ещё могу смоделировать, а вот более сложную - только заплатив. Ну то есть примерно понятно: что-то можно, но не всё и/или не вечно. Лицензионные программы свободны от этих ограничивающих условий: можно всё и почти вечно (некоторые программы, даже платные, всё равно устанавливают предел срокам своей работы - это особенно часто встречается в антивирусах). беспалтные программы тоже свободны от таких ограничений, но очень часто их функционал недостаточен, и ещё чаще бесплатных программ, которые делают "вот конкретно это", просто нет. Скажем, нет бесплатных программ компьютерного проектирования топологии (те, что есть, на самом деле просто взломаны. а для топологии ИС нет вооще ничего). Нет бесплатных программ моделирования полупроводниковых приборов, типа SUPREM IV, - вообще нет. Нет хороших бесплатных программ вёрстки текстов. Даже шрифтов некоторых бесплатно не нарыть. Ну и так далее. То есть как только попадается СЛОЖНАЯ и не сильно распространённая задача, не для домохозяек, - так кранты, и приходится приобретать лицензию...
Вы не указали на каком языке Вам необходимо это решить. Поэтому выкладываю решение на C#.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static double[] Solve(double A, double B, double C, out bool Fail)
{
Fail = false;
double D = B * B - A * C;
double[] res = new double[2];
if (D >= 0)
{
res[0] = (Math.Sqrt(D) + B) / (2 * A);
res[1] = (Math.Sqrt(D) - B) / (2 * A);
}
else
{
Fail = true;
}
return res;
}
static void Main(string[] args)
{
bool Fail = false;
Console.WriteLine("Введите коэффициент при x^2");
double A = Double.Parse(Console.ReadLine());
Console.WriteLine("Введите коэффициент при x");
double B = Double.Parse(Console.ReadLine());
Console.WriteLine("Введите свободный коэффициент");
double C = Double.Parse(Console.ReadLine());
double[] res = Solve(A, B, C, out Fail);
if (Fail)
{
Console.Write("Дискриминант меньше нуля\n");
}
else
{
for (int i = 0; i < res.Length; i++)
{
Console.Write("x{0}={1} ", i, res[i]);
}
Console.Write("\n");
}
}
}
}
Условно-бесплатные - это означает, что они бесплатны ПРИ НЕКОТОРЫХ УСЛОВИЯХ. Например, что бесплатно ими можно пользоваться только некоторое время (чтоб понять, что это запрограмма и подходит ли она конкретно вам), а сверх того - уже за плату. Или можно пользоваться только некоторыми базовыми функциями программы, а расширенными - уже за плату. Или её функционал ограничен размерами обрабатываемой информации - скажем, схему на 64 узла я ещё могу смоделировать, а вот более сложную - только заплатив.
Ну то есть примерно понятно: что-то можно, но не всё и/или не вечно.
Лицензионные программы свободны от этих ограничивающих условий: можно всё и почти вечно (некоторые программы, даже платные, всё равно устанавливают предел срокам своей работы - это особенно часто встречается в антивирусах).
беспалтные программы тоже свободны от таких ограничений, но очень часто их функционал недостаточен, и ещё чаще бесплатных программ, которые делают "вот конкретно это", просто нет. Скажем, нет бесплатных программ компьютерного проектирования топологии (те, что есть, на самом деле просто взломаны. а для топологии ИС нет вооще ничего). Нет бесплатных программ моделирования полупроводниковых приборов, типа SUPREM IV, - вообще нет. Нет хороших бесплатных программ вёрстки текстов. Даже шрифтов некоторых бесплатно не нарыть. Ну и так далее. То есть как только попадается СЛОЖНАЯ и не сильно распространённая задача, не для домохозяек, - так кранты, и приходится приобретать лицензию...