Пример #1
0
def quadratic_results(request):
	'''reshenie kvadratnogo uravneniya'''
	x,x1,x2 = 0, 0, 0
	koren, diskrimin = '', ''

	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']
	
			diskriminant = b**2 - 4*a*c
			if diskriminant < 0:
				diskrimin = 'Дискриминант: %d' % diskriminant
				koren = 'Дискриминант меньше нуля, квадратное уравнение не имеет действительных решений.'
		
			elif diskriminant == 0:
				x = -b/2.0*a
				diskrimin = 'Дискриминант: %d' % diskriminant
				koren = 'Дискриминант равен нулю, квадратное уравнение имеет один действительный корень: x1 = x2 = %.1f' %x
		
			elif diskriminant > 0:
				x1 = (-b + diskriminant ** (1/2.0))/(2*a)
				x2 = (-b - diskriminant ** (1/2.0))/(2*a)
				diskrimin = 'Дискриминант: %d' % diskriminant
				koren = 'Квадратное уравнение имеет два действительных корня: x1 = %.1f, x2 = %.1f' % (x1, x2)
	else:
		form = QuadraticForm()
	
	dic = {'form':form, 'x':x, 'x1':x1, 'x2':x2, 'diskrimin':diskrimin, 'koren':koren}
	return render(request, 'results.html', dic)
Пример #2
0
def quadratic_results(request):
	discrim = None
	final_message = None
	if request.method == "GET" and len(request.GET):
		form = QuadraticForm(request.GET)
		if form.is_valid():
			if form.clean_a():
				a = int(request.GET['a'])
				b = int(request.GET['b'])
				c = int(request.GET['c'])
				discrim = b**2 - 4 * a * c
				if discrim < 0:
					final_message = messages['mes5']
				if discrim == 0:
					x1 = -b/2*a
					final_message = ''.join(messages['mes6'] + str(round(float(x1), 1)))
				if discrim > 0:
					x1 = (-b+discrim**0.5)/(2*a)
					x2 = (-b-discrim**0.5)/(2*a)
					final_message = ''.join(messages['mes4'] + 
					'x1 = ' + str(round(float(x1), 1)) + ', x2 = ' + str(round(float(x2), 1)))
				discrim = int(discrim)
	else:
		form = QuadraticForm()
	return render(request, 'quadratic/results.html', {
		'discrim':discrim, 
		'final_message':final_message,
		'form':form})
Пример #3
0
def quadratic_results(request):
    if request.method == 'GET':
        form = QuadraticForm(request.GET)
        d_data = {'d': '', 'd_desc': ''}
        if form.is_valid():
            d_data = d_calculate(form.cleaned_data['a'], form.cleaned_data['b'], form.cleaned_data['c'])
        context = {
            'd_value': d_data['d'],
            'd_details': d_data['d_desc'],
            'form': form,
        }
    else:
        form = QuadraticForm()
        context = {
            'form': form
        }
    return render(request, 'quadratic/results.html', context)
Пример #4
0
def quadratic_results(request):
    text_result = {}
    d = x = x1 = x2 = 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']
            d = b**2-4*a*c  # discriminant
            if d < 0:
                d = d
            elif d == 0:
                x = (-b+math.sqrt(d))/2*a
            else:
                x1 = (-b+math.sqrt(d))/2*a
                x2 = (-b-math.sqrt(d))/2*a
            text_result.update({'discriminant': d, 'x': x, 'x1': x1, 'x2': x2})
    else:
        form = QuadraticForm()
    text_result.update({'form': form})
    return render(request, 'quadratic/results.html', text_result)
Пример #5
0
def quadratic_results(request):
    if request.method == "GET":
        form = QuadraticForm(request.GET)

        context = {'form': form}

        if form.is_valid():
            a = int(form['a'].value())
            b = int(form['b'].value())
            c = int(form['c'].value())

            discr = b * b - 4 * a * c
            
            if discr == 0:
                x1 = - b / (2.0 * a)
                x1 = round(x1, 1)
                discr_msg = "Дискриминант равен нулю, квадратное уравнение имеет один действительный корень: x1 = x2 = {0}".format(x1)

            elif discr < 0:
                discr_msg = "Дискриминант меньше нуля, квадратное уравнение не имеет действительных решений."

            else:
                x1 = (- b + discr ** (1/2.0)) / (2 * a)
                x2 = (- b - discr ** (1/2.0)) / (2 * a)
                x1 = round(x1, 1)
                x2 = round(x2, 1)
                round(x1, 1)
                discr_msg = "Квадратное уравнение имеет два действительных корня: x1 = {0}, x2 = {1}".format(x1, x2)
            context['discr_msg'] = discr_msg
            context['discr'] = discr
        

        elif form['a'].value() == form['b'].value() == form['c'].value() == None:
            context['form'] = QuadraticForm()

    return render(request, 'results.html', context)
def quadratic_results(request):

    if request.GET == {}:
        form = QuadraticForm()
        return render(request, 'quadratic/results.html', {"form" : form})


    

    if request.method == "GET":
        form = QuadraticForm(request.GET)
        if form.is_valid():
            data = form.cleaned_data

            #a = request.GET['a']
            #b = request.GET['b']
            #c = request.GET['c']

            a = data['a']
            b = data['b']
            c = data['c']

           
            
            # 'warning_'+'a'
            dic = {'a': a, 'b': b, 'c': c}
            war_a = '' 
            war_b = ''
            war_c = ''       
            x = ''
            same_root = '' 
            des = ''
            des_warn = ''
            x1 = ''
            x2 = ''
            root_mes = ''
            x = ''
            same_root = '' 
            
            if a == '':
                a = ''
                war_a = 'коэффициент не определен'     
            

            elif a == '0':
                war_a = 'коэффициент при первом слагаемом уравнения не может быть равным нулю'    
                        
            #elif not a.replace('-', '').isdigit():
            #elif not a.isdigit():
            #    war_a = 'коэффициент не целое число'
            
            if b == '':
                b = ''
                war_b = 'коэффициент не определен'
            
            #elif not b.replace('-', '').isdigit():
            #    war_b = 'коэффициент не целое число'

            if c == '':
                c = ''
                war_c = 'коэффициент не определен'

            #elif not c.replace('-', '').isdigit(): #last check if c=digit add check war_a and war_b
            #    war_c = 'коэффициент не целое число'

            if war_a == '' and war_b == '' and war_c == '':
                a = int(a)
                b = int(b)
                c = int(c)
                des = b**2-4*a*c

                if des < 0:
                    des_warn = 'Дискриминант меньше нуля, квадратное уравнение не имеет действительных решений.'
                    x1 = ''
                    x2 = ''
                    root_mes = ''
                    x = ''
                    same_root = ''

                elif des == 0:
                    des_warn = ''
                    
                    x1 = ''
                    x2 = ''
                    root_mes = ''
                    x = (-b+math.sqrt(b**2-4*a*c))/2*a
                    same_root = 'Дискриминант равен нулю, квадратное уравнение имеет один действительный корень: x1 = x2 = %s' % x
                else:
                    des_warn = ''
                    
                    x1 = (-b+math.sqrt(b**2-4*a*c))/2*a
                    x2 = (-b-math.sqrt(b**2-4*a*c))/2*a
                    root_mes = 'Квадратное уравнение имеет два действительных корня: x1 = %s, x2 = %s' % (x1, x2)

            

            s = {
                'a': a,
                'b': b, 
                'c': c, 
                'warning_a': war_a, 
                'warning_b': war_b, 
                'warning_c': war_c,
                'des': des,
                'des_warn': des_warn,
                'x1': x1,
                'x2': x2,
                'root_mes': root_mes,
                'x': x,
                'same_root': same_root,
                'form' : form
                }
            return render(request, 'quadratic/results.html', s)




        else:
            form = QuadraticForm(request.GET)
            return render(request, 'quadratic/results.html', {"form" : form})

    else:
        form = QuadraticForm()
        return render(request, 'quadratic/results.html', {"form" : form})