예제 #1
0
def quadratic_results(request):
        
	disc = {}
	text_result = {}

	if request.method == "GET":
		form = QuadraticForm(request.GET)
		if form.is_valid():
			a = form.cleaned_data['a']
			b = form.cleaned_data['b']
			c = form.cleaned_data['c']

			disc['message'] = "Дискриминант: "
			disc['value'] = b**2-4*a*c

			if disc['value'] < 0:
				text_result['message'] = u"Дискриминант меньше нуля, квадратное уравнение не имеет действительных решений."
			elif disc['value'] == 0:
				x = (-b + disc['value'] ** (1/2.0)) / 2*a
				text_result['message'] = u"Дискриминант равен нулю, квадратное уравнение имеет один действительный корень: x1 = x2 = "
				text_result['value'] = x
			else:
				x1 = (-b + disc['value'] ** (1/2.0)) / 2*a
				x2 = (-b - disc['value'] ** (1/2.0)) / 2*a
				text_result['message'] = u"Квадратное уравнение имеет два действительных корня: " 
				text_result['value'] = u"x1 = %.1f, x2 = %.1f" % (x1, x2)
	else:
		form = QuadraticForm()
	
	out_result =  context = {"disc":disc, "text_result":text_result, "form":form}
	
	return render(request,'results.html', out_result)
예제 #2
0
def quadratic_results(request): 
    form = QuadraticForm()
    context={}   
    if request.method == 'GET':
        form = QuadraticForm(request.GET)
        if form.is_valid():
            a = form.cleaned_data['a']
            b = form.cleaned_data['b']
            c = form.cleaned_data['c']
            discr = b**2 - 4*a*c
            
            if discr == 0:
                context['d'] = discr
                x = -b/ 2.0*a
                context['message'] = str('Дискриминант равен нулю, квадратное уравнение имеет один действительный корень: x1 = x2 = %s' % x)
            if discr < 0:
                context['d'] = discr
                context['message'] = str('Дискриминант меньше нуля, квадратное уравнение не имеет действительных решений.')
            if discr > 0:
                context['d'] = discr
                x1 = str((-b + discr ** (1/2.0)) / 2*a)
                x2 = str((-b - discr ** (1/2.0)) / 2*a)
                context['message'] = str('Квадратное уравнение имеет два действительных корня: x1 = %s, x2 = %s' % (x1, x2))
   
    else:
        form = QuadraticForm()       
    context['form'] = form
    return render(request,'quadratic/results.html', context)
예제 #3
0
def quadratic(request):
    context={}
    
    if request.method == 'GET' and request.GET.keys():
        form = QuadraticForm(request.GET)
        if form.is_valid():
    
            a = context['a'] = request.GET.get('a','')
            b = context['b'] = request.GET.get('b','')
            c = context['c'] = request.GET.get('c','')

            context['d'] = float(b)**2 - 4*float(a)*float(c)
            d = context['d']
            if d > 0 and int(a) != 0:
                context['descr'] = 'Дискриминант: %d' %d
                context['x1'] = (-float(b) + float(d) ** (1/2.0)) / 2*float(a)
                context['x2'] = (-float(b) - float(d) ** (1/2.0)) / 2*float(a)
                print context['x2']
                print context['x1']
                context['result'] = "Квадратное уравнение имеет два действительных корня: x1 = %.1f, x2 = %.1f" % (context['x1'] + 0, context['x2'] + 0) 
            elif d < 0:
                context['descr'] = 'Дискриминант: %d' %d
                context['result'] = "Дискриминант меньше нуля, квадратное уравнение не имеет действительных решений."
            elif d == 0 and int(a) != 0:
                context['descr'] = 'Дискриминант: %d' %d
                context['x1'] = (-float(b) + float(d) ** (1/2.0)) / 2.0*float(a)
                context['result'] = "Дискриминант равен нулю, квадратное уравнение имеет один действительный корень: x1 = x2 = %.1f" % (context['x1'] + 0)      
    else:
        form = QuadraticForm()

    context['form'] = form    
    return render(request, 'quadratic/results.html', context)
예제 #4
0
def quadratic_results(request):
    context = {}

    if request.method == "GET":
        form = QuadraticForm(request.GET)
        if form.is_valid():
            a = form.cleaned_data['a']
            b = form.cleaned_data['b']
            c = form.cleaned_data['c']

            discriminant = b * b - 4 * a * c

            if discriminant > 0:
                context['x1'] = (-b + sqrt(discriminant)) / (2 * a)
                context['x2'] = (-b - sqrt(discriminant)) / (2 * a)
            elif discriminant == 0:
                context['x1'] = (-b - sqrt(discriminant))/(2 * a)

            context['discriminant'] = discriminant

    else:
        form = QuadraticForm()

    context['form'] = form

    return render(request, 'results.html', context)
def quadratic_results(request):
	result = {}
	message = None
	discr = None
	if request.GET:
		form = QuadraticForm(request.GET)
		if form.is_valid():
			a = form.cleaned_data['a']
			b = form.cleaned_data['b']
			c = form.cleaned_data['c']
			
			discr = b*b - 4*a*c
			if discr < 0:
				message = "Дискриминант меньше нуля, квадратное уравнение не имеет действительных решений."
			elif discr == 0:
				x = round((-b + discr**(1/2.0)) / 2*a, 1)
				message = "Дискриминант равен нулю, квадратное уравнение имеет один действительный корень: x1 = x2 = %s" %x
			else:
				x1 = round((-b + discr**(1/2.0)) / 2*a, 1)
				x2 = round((-b - discr**(1/2.0)) / 2*a, 1)
				message = "Квадратное уравнение имеет два действительных корня: x1 = %s, x2 = %s" %(x1,x2)
			
			result['d'] = 'Дискриминант: %d'  %discr
			result['message'] = message
			
	else:
		form = QuadraticForm()
	result['form'] = form
	return render(request, "quadratic/results.html", result)	
def quadratic_results(request):
    import math, cmath
    output_request = {}
    output_request['calculate'] = False
    if request.GET:
        temp_form = QuadraticForm(request.GET)
        if temp_form.is_valid():
            output_request['calculate'] = True
            a = temp_form.cleaned_data['a']
            b = temp_form.cleaned_data['b']
            c = temp_form.cleaned_data['c']
            output_request['D'] = b**2 - 4*a*c
            if output_request['D'] > 0:
                output_request['x1'] = float((-b + math.sqrt(output_request['D']))/(2*a))
                output_request['x2'] = float((-b - math.sqrt(output_request['D']))/(2*a))
            elif output_request['D'] == 0:
                output_request['x1'] = output_request['x2'] = float(-b / 2*a)
            elif output_request['D'] < 0:
                output_request['x1'] = complex((-b + cmath.sqrt(output_request['D']))/(2*a))
                output_request['x2'] = complex((-b - cmath.sqrt(output_request['D']))/(2*a))    
    else:
        temp_form = QuadraticForm()

    output_request['form'] = temp_form
    return render(request,'quadratic/results.html',output_request)
예제 #7
0
def quadratic_results(request):
	context={}
	if request.method == 'GET' and request.GET.keys():
		form = QuadraticForm(request.GET)
		if form.is_valid():
			a = context['a'] = request.GET.get('a','')
			b = context['b'] = request.GET.get('b','')
			c = context['c'] = request.GET.get('c','')

			context['d'] = float(b)**2 - 4*float(a)*float(c)
			d = context['d']
			if d > 0 and int(a) != 0:
				context['descr'] = 'Дискриминант: %d' %d
				context['x1'] = (-float(b) + float(d) ** (1/2.0)) / 2*float(a)
				context['x2'] = (-float(b) - float(d) ** (1/2.0)) / 2*float(a)
				print context['x2']
				print context['x1']
				context['result'] = "Квадратное уравнение имеет два действительных корня: x1 = %.1f, x2 = %.1f" % (context['x1'] + 0, context['x2'] + 0) 
			elif d < 0:
				context['descr'] = 'Дискриминант: %d' %d
				context['result'] = "Дискриминант меньше нуля, квадратное уравнение не имеет действительных решений."
			elif d == 0 and int(a) != 0:
				context['descr'] = 'Дискриминант: %d' %d
				context['x1'] = (-float(b) + float(d) ** (1/2.0)) / 2.0*float(a)
				context['result'] = "Дискриминант равен нулю, квадратное уравнение имеет один действительный корень: x1 = x2 = %.1f" % (context['x1'] + 0)      
	else:
		form = QuadraticForm()

	context['form'] = form    
	return render(request, 'quadratic/results.html', context)
예제 #8
0
파일: views.py 프로젝트: snb4crazy/PyBursa
def quadratic_results(request):
    if request.method == 'GET':
        form = QuadraticForm(request.GET)
        disc = {}
        text_result = {}
        if form.is_valid():
            a = int(request.GET['a'])
            b = int(request.GET['b'])
            c = int(request.GET['c'])
            disc['message'] = "Дискриминант: "
            disc['value'] = b**2 - 4*a*c

            if disc['value'] < 0:
                text_result['message'] = "Дискриминант меньше нуля, уравнение не имеет действительных решений."
            elif disc['value'] == 0:
                x = (-b + disc['value'] ** (1/2.0)) / 2*a
                text_result['message'] = "Дискриминант равен нулю, уравнение имеет один действительный корень: x1=x2 = "
                text_result['value'] = x
            else:
                x1 = (-b + disc['value'] ** (1 / 2.0)) / 2*a
                x2 = (-b - disc['value'] ** (1 / 2.0)) / 2*a
                text_result['message'] = "Квадратное уравнение имеет два действительных корня: "
                text_result['value'] = u"x1 = %.1f, x2 = %.1f" % (x1, x2)

        content = {"disc": disc, "text_result": text_result, 'form': form}

        return render(request, 'quadratic/results.html', content)

    else:
        form = QuadraticForm()

    return render(request, 'quadratic/results.html', {'form': form})
예제 #9
0
def quadratic_results(request):
    if request.GET:
        form = QuadraticForm(request.GET)
        if form.is_valid():
            data = form.cleaned_data
            a = data['a']
            b = data['b']
            c = data['c']
            q = Quadratic(a, b, c)
            context = {'q': q, 'form': form}
            return render(request, 'quadratic/results.html', context)
        return render(request, 'quadratic/results.html', {'form': form})
    else:
        form = QuadraticForm()
        return render(request, 'quadratic/results.html', {'form': form})
예제 #10
0
def quadratic_results(request):
  x1 = None
  x2 = None
  d = None
  form = QuadraticForm()
  if request.method == "GET":
    form = QuadraticForm(request.GET)
    if form.is_valid():
      a = form.cleaned_data['a']
      b = form.cleaned_data['b']
      c = form.cleaned_data['c']
      d = discr(a,b,c)
      if d == 0:
        x1 = x2 = deq(a, b)
      elif d > 0:
        temp = dbig(a, b, c)
        x1 = temp['1']
        x2 = temp['2']
  
  
  return render(request,'quadratic/results.html',{'form':form,'d':d,'x1':x1,'x2':x2})
예제 #11
0
def quadratic_results(request):
    context = {}
    if request.GET:
        form = QuadraticForm(request.GET)
        context['form'] = QuadraticForm(request.GET)
        if form.is_valid():
            a = form.cleaned_data['a']
            b = form.cleaned_data['b']
            c = form.cleaned_data['c']

            context['discrim'] = b ** 2 - 4 * a * c
            if context['discrim'] > 0:
                context['x1'] = float(
                    (-b + context['discrim']**(1 / 2.0)) / (2 * a))
                context['x2'] = float(
                    (-b - context['discrim']**(1 / 2.0)) / (2 * a))
            elif int(context['discrim']) == 0:
                context['x1'] = context[
                    'x2'] = float(-b / (2 * a))
    else:
        context['form'] = QuadraticForm()
    return render(request, 'quadratic/results.html', context)
def quadratic_results(request):
    discr = 'Дискриминант: %d'
    dis_less_null = 'Дискриминант меньше нуля, квадратное уравнение не имеет действительных решений.'
    dis_eq_null = 'Дискриминант равен нулю, квадратное уравнение имеет один действительный корень: x1 = x2 = %s'
    two_roots = 'Квадратное уравнение имеет два действительных корня: x1 = %s, x2 = %s'
    empty_str = ''
    comment_dsc = empty_str
    comment_result = empty_str
    
    if request.GET:
        form = QuadraticForm(request.GET)
        if form.is_valid():
            got_data = form.cleaned_data
            qe =  QuadraticEquation(got_data) 
            dsc = qe.get_discr()
            if dsc > 0:
                x1 = qe.get_eq_root()
                x2 = qe.get_eq_root(order=2)
                comment_dsc = discr % dsc
                comment_result = two_roots % (round(x1,1), round(x2,1))
            elif dsc < 0:
                comment_dsc = discr % dsc
                comment_result = dis_less_null
            elif dsc == 0:
                x1 = qe.get_eq_root()
                comment_dsc = discr % dsc
                comment_result = dis_eq_null % round(x1,1)
        else:
            form = QuadraticForm(request.GET)
    else:
        form = QuadraticForm()

    site_view = {
        'comment_discr': comment_dsc,
        'comment_result': comment_result,
        'form': form,}
    return render(request, 'quadratic/results.html', site_view)
def quadratic_results(request):

    a = request.GET['a']
    b = request.GET['b']
    c = request.GET['c']
    not_spec = 'коэффициент не определен'
    not_int = 'коэффициент не целое число'
    not_null = 'коэффициент при первом слагаемом уравнения не может быть равным нулю'
    discr = 'Дискриминант: %d'
    dis_less_null = 'Дискриминант меньше нуля, квадратное уравнение не имеет действительных решений.'
    dis_eq_null = 'Дискриминант равен нулю, квадратное уравнение имеет один действительный корень: x1 = x2 = %s'
    two_roots = 'Квадратное уравнение имеет два действительных корня: x1 = %s, x2 = %s'
    empty_str = ''
    form = QuadraticForm()
    print request.POST

    if request.method == 'POST':
        # create a form instance and populate it with data from the request:
        form = QuadraticForm(request.POST)
        # check whether it's valid:
        if form.is_valid():
            print 'is valid'
            # process the data in form.cleaned_data as required
            # ...
            # messages for success form data:
            #messages.success(request, 'Form is saved!')
            # redirect to a new URL:
            #return redirect('/thanks/')  # redirect возвращает код 302 вместо 200

    # if a GET (or any other method) we'll create a blank form
    else:
        form = QuadraticForm(request.GET)
        if form.is_valid():
            print 'Get is valid'
        else:
            form = QuadraticForm(request.GET)

    
    site_view = {
        'head_line': 'Квадратное уравнение a*x*x + b*y + c = 0',
        'a_str': 'a = %s' % a,
        'comment_a': empty_str,
        'b_str': 'b = %s' % b,
        'comment_b': empty_str,
        'c_str': 'c = %s' % c,
        'comment_c': empty_str,
        'comment_discr': empty_str,
        'comment_result': empty_str,
        'form': form,
    }
    
    def chk_gigit(d='', dig=False):
        if not d:
            ret = not_spec
        elif not re.match(r'^-?\d+', d):
            ret = not_int
        else:
            ret = empty_str
            dig = True
        return [ret, dig]
    
    def chk_gigit_a(a='', dig=False):
        if a.isdigit() and int(a) == 0:
            ret = not_null
            dig = False
        else:
            ret = chk_gigit(a)[0]
            dig = chk_gigit(a)[1]
        return [ret, dig]
    
    if chk_gigit_a(a)[1] and chk_gigit(b)[1] and chk_gigit(c)[1]:
        qe =  QuadraticEquation(int(a), int(b), int(c)) 
        dsc = qe.get_discr()
        site_view['comment_discr'] = discr % dsc
        if dsc < 0:
            res_mes = dis_less_null
        else:
            x1 = qe.get_eq_root()
            print x1
            x2 = qe.get_eq_root(order=2)
            print x1
            if x1 == x2:
                res_mes = dis_eq_null % round(x1,1)
            else:
                res_mes = two_roots % (round(x1,1), round(x2,1))
        site_view['comment_result'] = res_mes
    else:
        site_view['comment_a'] = chk_gigit_a(a)[0]
        site_view['comment_b'] = chk_gigit(b)[0]
        site_view['comment_c'] = chk_gigit(c)[0]

    return render(request, 'quadratic/results.html', site_view)