Файл: Отчет по лабораторной работе 3 Выбор процедурного и объектноориентрованного языков программирования для решения квадратного уравнения.docx
Добавлен: 02.12.2023
Просмотров: 96
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Министерство образования и науки Российской Федерации Федерально государственное автономное образовательное учреждение высшего образования «Южно-Уральский государственный университет»Факультет «Архитектурно-строительный институт»Кафедра «Водоснабжение и водоотведение»ОТЧЕТПо лабораторной работе №3«Выбор процедурного и объектно-ориентрованного языков программирования для решения квадратного уравнения»Руководитель работы: ст. преподаватель______________________/С.В. Сяськов«____» _____________________ 2020 г.Автор работы: студент гр. АСЗ-205 __________________/Э.Д. Мирсодиков«____» _____________________ 2020 г.Челябинск 2020ЗаданиеНаписать программу для решения квадратного уравнения на процедурном языке программирования и оформить отчет по ней в программе MS Word.Отчет должен содержать:- титульный лист - лист задания - ГСА - сравнительный анализ процедурных языков программирования- выбор языка программирования- листинг (с комментариями в исходном коде на русском языке)- экранные формы- сравнительны анализ объектно-ориентированных языков программирования- выбор объектно-ориентированного языка программирования на базе их сравнительного анализа- листинг (с комментариями в исходном коде на русском языке)- экранные формы- выводы- библиографический списокУравнение вида ax² + bx + c = 0, где а ≠ 0, называют квадратным уравнением.a – первый коэффициент;b – второй коэффициент;c – свободный член уравнения; a, b, c - действительные числа.Если, а = 1, то квадратное уравнение называют приведенным.Если, а ≠ 1, то квадратное уравнение называют неприведенным.Корни уравнения вида ax² + bx + c = 0 определяют по формуле:D – дискриминант квадратного уравнения, рассчитывается по формуле:Если D=0, то уравнение имеет один корень.Если D<0, то уравнение не имеет решения.Если D>0, то уравнение имеет два корня.Если b = 0, то квадратное уравнение называется неполным и принимает вид: ax² + c = 0В этом случае корень уравнения находится по формуле:
Если с = 0, получим квадратное уравнение без свободного члена вида: ax² + bx = 0, гдекорень уравнения равен нулю, х = 0Графическая схема алгоритма представлена на рисунке 1.Рисунок 1. Блок-схемаСравнительный анализ процедурных языков программированияСравнивая процедурные языки программирования, считаю наиболее оптимальным для решения квадратного уравнения, применения языка Паскаль. Листинг (с комментариями в исходном коде на русском языке):Программа на языке Pascal.Program korni; {Программа называется korni}Var a, b, c, d: real; {a, b, c – коэффициенты уравнения, d- дискриминант}x1, x2 : real; {х1, х2 - корни}beginwriteln (' a');readln (a);writeln (' b');readln (b);writeln (' c');readln (c);if a=0 then writeln {'Для а=0 применение алгоритма невозможно.'}else begind:=b*b-4*a*c;if d<0 then writeln {Корней нет'};if d=0 then begin x1:= -b/2/a; writeln('x=',x1:6:2); end; if d>0 then beginx1:= (-b+sqrt(d))/2/a; x2:= (-b-sqrt(d))/2/a;writeln ('x1=',x1:6:2, ' x2=',x2:6:2); {‘Корни уравнения:’}end;end;end.Рисунок 2. Скриншот экранаСравнительны анализ объектно-ориентированных языков программированияЗадача. Составить программу решения квадратного уравнения ax2+bx+c=0.Учитывая все достоинства и недостатки, считаю наиболее оптимальным применения языка Visual basicРешение. Алгоритм.Запросить значение переменных а, b и c .Присвоить D значение b2 – 4* a * c .Если D > 0, то:Присвоить х1 значение (-b-sqr(D))/2*aПрисвоить х2 значение (-b+sqr(D))/2*aСообщить значение х1 и х2Иначе если D =0, то:Присвоить х значение (-b)/2*a
Сообщить значение хИначе:Сообщить «Уравнение корней не имеет».Конец если.Конец.Рассмотрим блок-схему решения данной задачи:Написаниепрограммногокодаprocedure SqRoot(Editi,Edit2,Edit3:tEdit;Label2:tLabel);vara,b,c:real; {Коэффициенты уравнения}d:real; {Дискриминант}xl,x2:real; {Корни уравнения}begin{Ввод исходных данных} a:=StrToFloat(Editl.text);b:=StrToFloat(Edit2.text);с:=StrToFloat(Edj.t3.text);{ Вычисление дискриминанта } d:=Sqr(b)-4*a*c;if d=0 then beginLabel2.color:=clRed;Label2.font.color:=clRed;Label2.caption:='Дискриминант меньше нуля.'+#10+'Уравнение не имеет корней.' end elsebegin{Вычисление корней}х1:=(-b+Sqrt(d))/(2*a);x2:=(-b-Sqrt(d))/(2*а);{ Вывод результата - значений корней}Label2.font.color:=clBlack;Label 2.caption='Корни уравнения:' +#10+'xl=1+FloatToStr(xl)+#13+'x2='+FloatToStr(x2);end;end.ЭкранныеформыВыводНет самого удобного языка программирования, каждому нужно своё и под определённые нужды. Все они обладают своими положительными и отрицательными качествами, которые будут так или иначе влиять на процесс разработки. Список использованной литературы
Если с = 0, получим квадратное уравнение без свободного члена вида: ax² + bx = 0, гдекорень уравнения равен нулю, х = 0Графическая схема алгоритма представлена на рисунке 1.Рисунок 1. Блок-схемаСравнительный анализ процедурных языков программированияСравнивая процедурные языки программирования, считаю наиболее оптимальным для решения квадратного уравнения, применения языка Паскаль. Листинг (с комментариями в исходном коде на русском языке):Программа на языке Pascal.Program korni; {Программа называется korni}Var a, b, c, d: real; {a, b, c – коэффициенты уравнения, d- дискриминант}x1, x2 : real; {х1, х2 - корни}beginwriteln (' a');readln (a);writeln (' b');readln (b);writeln (' c');readln (c);if a=0 then writeln {'Для а=0 применение алгоритма невозможно.'}else begind:=b*b-4*a*c;if d<0 then writeln {Корней нет'};if d=0 then begin x1:= -b/2/a; writeln('x=',x1:6:2); end; if d>0 then beginx1:= (-b+sqrt(d))/2/a; x2:= (-b-sqrt(d))/2/a;writeln ('x1=',x1:6:2, ' x2=',x2:6:2); {‘Корни уравнения:’}end;end;end.Рисунок 2. Скриншот экранаСравнительны анализ объектно-ориентированных языков программированияЗадача. Составить программу решения квадратного уравнения ax2+bx+c=0.Учитывая все достоинства и недостатки, считаю наиболее оптимальным применения языка Visual basicРешение. Алгоритм.Запросить значение переменных а, b и c .Присвоить D значение b2 – 4* a * c .Если D > 0, то:Присвоить х1 значение (-b-sqr(D))/2*aПрисвоить х2 значение (-b+sqr(D))/2*aСообщить значение х1 и х2Иначе если D =0, то:Присвоить х значение (-b)/2*a
Сообщить значение хИначе:Сообщить «Уравнение корней не имеет».Конец если.Конец.Рассмотрим блок-схему решения данной задачи:Написаниепрограммногокодаprocedure SqRoot(Editi,Edit2,Edit3:tEdit;Label2:tLabel);vara,b,c:real; {Коэффициенты уравнения}d:real; {Дискриминант}xl,x2:real; {Корни уравнения}begin{Ввод исходных данных} a:=StrToFloat(Editl.text);b:=StrToFloat(Edit2.text);с:=StrToFloat(Edj.t3.text);{ Вычисление дискриминанта } d:=Sqr(b)-4*a*c;if d=0 then beginLabel2.color:=clRed;Label2.font.color:=clRed;Label2.caption:='Дискриминант меньше нуля.'+#10+'Уравнение не имеет корней.' end elsebegin{Вычисление корней}х1:=(-b+Sqrt(d))/(2*a);x2:=(-b-Sqrt(d))/(2*а);{ Вывод результата - значений корней}Label2.font.color:=clBlack;Label 2.caption='Корни уравнения:' +#10+'xl=1+FloatToStr(xl)+#13+'x2='+FloatToStr(x2);end;end.ЭкранныеформыВыводНет самого удобного языка программирования, каждому нужно своё и под определённые нужды. Все они обладают своими положительными и отрицательными качествами, которые будут так или иначе влиять на процесс разработки. Список использованной литературы
-
Гради Буч «Объектно-ориентированный анализ и проектирование с примерами приложений»