Главная страница
Навигация по странице:

  • ИНДИВИДУАЛЬНЫЙ ПРОЕКТ «ИССЛЕДОВАНИЕ КВАДРАТИЧНОЙ ФУНКЦИИ С ПОМОЩЬЮ ПАСКАЛЬ» Работу выполнил

  • 1.Теоритические основы использования языка программирования Паскаль. 1.1 История языка программирования Паскаль

  • 1.2 Особенности языка Паскаль. Синтаксис и языковые конструкции

  • SetPixel(x,y,color)

  • Line(x1,y1,x2,y2)

  • Rectangle(x1,y1,x2,y2)

  • Ellipse(x1,y1,x2,y2)

  • 2.1. Теоретическая часть

  • 2.2. Практическая часть Исследование № 1

  • Исследование № 2

  • Исследование № 3

  • Приложение 1 program

  • итог. Итог. исследование квадратичной функции с помощью паскаль


    Скачать 322.19 Kb.
    Названиеисследование квадратичной функции с помощью паскаль
    Дата04.05.2023
    Размер322.19 Kb.
    Формат файлаdocx
    Имя файлаИтог.docx
    ТипИсследование
    #1107705


    МУНИЦИПАЛЬНОЕ БЮДЖЕТНОЕ ОБЩЕОБРАЗОВАТЕЛЬНОЕ

    УЧРЕЖДЕНИЕ НОВОУСМАНСКОГО МУНИЦИПАЛЬНОГО РАЙОНА

    ВОРОНЕЖСКОЙ ОБЛАСТИ

    «ОТРАДНЕНСКАЯ ГИМНАЗИЯ»


    ИНДИВИДУАЛЬНЫЙ ПРОЕКТ

    «ИССЛЕДОВАНИЕ КВАДРАТИЧНОЙ ФУНКЦИИ С ПОМОЩЬЮ ПАСКАЛЬ»

    Работу выполнил:

    Приходько Максим Виталиевич

    Ученик 10А класса

    Руководитель:

    Докучаева Тамара Геннадьевна

    Учитель информатики

    Отрадное, 2023

    Содержание

    Введение………………………………………………………………………….3

    1.Теоритические основы использования языка программирования Паскаль..5

    1.1. История языка программирования Паскаль……………………………5

    1.2. Особенности языка Паскаль. Синтаксис и языковые конструкции…..6

    2. Практическая часть по созданию и реализации……………………………..11

    2.1. Теоретическая часть………………………………………………………11

    2.2. Практическая часть……………………………………………………….13

    Заключение……………………………………………………………………….17

    Список используемой литературы………………………………………………18

    Приложение 1……………………………………………………………………..19

    Введение

    Тема моей исследовательской работы «Построение квадратичной функции с помощью Паскаль». Данная тема была выбрана мной не случайно. Современное общество все больше и больше полагается на вычислительную технику, которая позволяет решать довольно сложные задачи в короткий промежуток времени. Поскольку деятельность любого субъекта в значительной степени зависит от степени владения информации, а также способности эффективно ее использовать. Для свободной ориентации в информационных потоках современный специалист любого профиля должен уметь получать, обрабатывать и использовать информацию, прежде всего, с помощью компьютеров, а также телекоммуникаций и других новейших средств связи, в том числе и уметь, обращаться с языками программирования. Актуальность данной темы обусловлена тем, что прогресс компьютерных технологий определил процесс появления новых разнообразных знаковых систем для записи алгоритмов - языков программирования.

    На уроках математики мы неоднократно сталкиваемся с решением задач на нахождение области определения и области значения различных функций. Данные задания занимают большое количество времени при подготовке к урокам, а также требует от нас сосредоточенности и использования большого количества знаний по данному предмету. Для решения таких задач приходится обращаться к компьютерным средствам и искать информацию в сети Internet.

    В начале 2020-2021 учебного года, на уроках математики мы изучали квадратичные функции и решали большой класс математических задач на нахождение корней квадратного трехчлена, разложение квадратного трехчлена на множители и другие. Информация, которую я нашел в сети Internet, позволила мне сделать вывод о том, что решение данных задач можно успешно реализовать при помощи языка программирования Паскаль.

    Цель научно-исследовательской работы: разработать программу для исследования квадратичной функции, применяя язык программирования Паскаль.

    Под исследованием квадратичной функции в данной работе понимается построение графика функции, нахождение корней уравнения.

    Для достижения цели были поставлены следующие задачи:

    1. Изучить основы программирования на языке Паскаль;

    2. Разработать программу для исследования квадратичной функции.

    Научно-исследовательская работа состоит из: введения, двух глав, заключения и списка литературы.

    В введение сформулированы цель и задачи научно-исследовательской работы.

    В первой главе рассматриваются теоретические основы программирования на языке Паскаль.

    Во второй главе рассмотрен процесс разработки программы для исследования квадратичных функций, применяя язык программирования Паскаль.

    В заключении отражены достигнутые результаты и перспективы развития приложения.

    1.Теоритические основы использования языка программирования Паскаль.

    1.1 История языка программирования Паскаль

    Язык был создан Никлаусом Виртом в 1968—1969 годах после его участия в работе комитета разработки стандарта языка Алгол-68. Язык назван в честь французского математика, физика, литератора и философа Блеза Паскаля, который создал одну из первых в мире механических машин, складывающую два числа. Первая публикация Вирта о языке датирована 1970 годом; представляя язык, автор в качестве цели его создания указывал построение небольшого и эффективного языка, способствующего хорошему стилю программирования, использующему структурное программирование и структурированные данные. Последующая работа Вирта была направлена на создание на основе Паскаля языка системного программирования, с сохранением возможности вести на его базе систематический, целостный курс обучения профессиональному программированию.

    Одной из целей создания языка Паскаль Никлаус Вирт считал обучение студентов структурному программированию. До сих пор Паскаль заслуженно считается одним из лучших языков для начального обучения программированию. Его современные модификации, такие как Object Pascal, широко используются в промышленном программировании (среда Delphi). Также на основе синтаксиса языка Паскаль создан язык программирования Structured Text (ST) или Structured Control Language (SCL) для программируемых логических контроллеров.

    К 1990-м годам Pascal стал одним из наиболее распространённых в мире алгоритмических языков программирования. Ведущие разработчики программного обеспечения регулярно выпускали новые версии своих компиляторов для этого языка. Популярные компиляторы того времени: Turbo Pascal (разработан компанией Borland), Microsoft Pascal Compiler, Quick Pascal, Pascal-2, Professional Pascal, USCD Pascal.[4]

    1.2 Особенности языка Паскаль. Синтаксис и языковые конструкции

    Программы на Паскале начинаются с ключевого слова Program и следующего за ним имени программы с точкой с запятой (в некоторых диалектах является необязательным), за именем может в скобках следовать список внешних файловых дескрипторов («окружение») в качестве параметров; за ним следует тело программы, состоящее из секций описания констант (Const), типов (Type), переменных (Var), объявлений процедур (Procedure) и функций (Function) и следующего за ними блока операторов, являющегося точкой входа в программу. В языке Паскаль блок ограничивается ключевыми словами begin и end. Операторы разделяются точками с запятой, после тела помещается точка, служащая признаком конца программы. Регистр символов в Паскале не имеет значения. Таким образом, простейшая («пустая») программа на Паскале будет выглядеть следующим образом:[1]

    program p;

    begin

    end.

    Приведённая выше программа не выполняет никаких действий и содержит пустой блок операторов.

    Основой языка программирования Паскаль, как и любого другого языка, является алфавит – набор допустимых символов, которые можно использовать для записи программы. Это 26 латинских срочных и 26 латинских прописных букв:

    1. A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

    a b c d e f g h i j k l m n o p q r s t u v w x y z

    2) _ подчеркивание

    3) 10 цифр:

    0 1 2 3 4 5 6 7 8 9

    4) знаки операций:

    + — * / = <> < > <= >=: = @

    5) ограничители:

    ., ' () [] (.) { } (* *). .:;

    6) спецификаторы:

    ^ # $

    В языке существует также некоторое количество различных цепочек символов, рассматриваемых как единые смысловые элементы с фиксированным значением. Такие цепочки символов называются служебными словами. В таблице 1.2.1 приведены основные служебные слова, которые мы будем использовать при записи программ на языке Паскаль.

    Таблица 1.2.1

    Служебное слово языка Паскаль

    Значение служебного слова

    and

    и

    array

    массив

    begin

    начало

    do

    выполнить

    else

    иначе

    for

    для

    if

    если

    of

    из

    or

    или

    procedure

    процедура

    program

    программа

    repeat

    поворять

    then

    то

    to

    до (увеличивая до)

    until

    до (до тех пор пока)

    var

    переменная

    while

    пока

    Для обозначения констант, переменных, программ и других объектов используются имена — любые отличные от служебных слов последовательности букв, цифр и символа подчёркивания, начинающиеся с буквы или символа подчёркивания.

    Прописные и строчные буквы в именах не различаются.

    Длина имени может быть любой. Для удобства мы будем пользоваться именами, длина которых не превышает 8 символов.

    В языке Паскаль используются различные типы данных. Мы будем пользоваться некоторыми из так называемых простых типов данных (табл. 1.2.2).

    Таблица 1.2.2

    Название

    Обозначение

    Допустимые значения

    Область памяти

    Целочисленный

    integer

    -32768…32767

    2 байта со знаком

    Вещественный

    real

    ±(

    6 байтов

    Символьный

    char

    Произвольный символ алфавита

    1 байт

    Строковый

    string

    Последовательность символов длиной меньше 255

    1 байт на символ

    Логический

    boolean

    trure и false

    1 байт

    В вещественном числе целая часть от дробной отделяется точкой, при этом перед точкой и после неё должно быть, по крайней мере, по одной цифре. Пробелы внутри числа недопустимы.[3]

    Построение графических изображений в Паскале, исследование графиков функций, является одной из важных и интересных тем программирования.

    Обычно экран компьютера находится в символьном режиме, а для переключения экрана в графический режим необходимо подключение модуля graphABC. В результате этого, экран очищается и переходит в цветной графический режим. При работе в графическом режиме изображение на экране строится не из символов, а из точек – пикселейКаждый пиксель (точка) имеет две координаты: х и у. Модуль содержит набор графических функций и процедур, основные из них рассмотрены ниже.

    Первой инструкцией программы должна быть инструкция uses GraphABC; SetWindowSize(x,y) - устанавливает ширину и высоту графического окна.

    ClearWindow - очищает графическое окно белым цветом.

    ClearWindow(color) - очищает графическое окно указанным цветом SetPixel(x,y,color) - Закрашивает один пиксел с координатами (x,y) цветом color LineTo(x,y) - рисует отрезок от текущего положения пера до точки (x,y); координаты пера при этом также становятся равными (x,y).
    Line(x1,y1,x2,y2) - рисует отрезок с началом в точке (x1,y1) и концом в точке (x2,y2).
    SetPenColor(color) - устанавливает цвет пера, задаваемый параметром color.
    SetPenWidth(n) - устанавливает ширину (толщину) пера, равную n пикселям. 

    Rectangle(x1,y1,x2,y2) - рисует прямоугольник, заданный координатами противоположных вершин (x1,y1) и (x2,y2).
    FloodFill(x,y,color) - заливает область одного цвета цветом color, начиная с точки (x,y).

    SetBrushColor(color) - устанавливает цвет кисти. Заливка кистью распространяется на замкнутый контур, описание которого следует за процедурой установки цвета кисти. 

    Ellipse(x1,y1,x2,y2) - рисует эллипс, заданный своим описанным прямоугольником с координатами противоположных вершин (x1,y1) и (x2,y2).
    Circle(x,y,r) - рисует окружность с центром в точке (x,y) и радиусом r.

     Arc(x,y,r,a1,a2) - Рисует дугу окружности с центром в точке (x,y) и радиусом r, заключенной между двумя лучами, образующими углы a1 и a2 с осью OX (a1 и a2 – вещественные, задаются в градусах и отсчитываются против часовой стрелки).

    2.1. Теоретическая часть

    Функция вида  , где a≠0  называется квадратичной функцией.

    В уравнении квадратичной функции:

    a - старший коэффициент

    b - второй коэффициент

    с - свободный член.

    Графиком квадратичной функции является квадратичная парабола.

    Если в уравнении квадратичной функции старший коэффициент a=1, то график квадратичной функции имеет ровно такую же форму, как график функции   при любых значениях остальных коэффициентов.

    Если старший коэффициент a >0, то ветви параболы направлены вверх.

    Если старший коэффициент a <0, то ветви параболы направлены вниз.

    Второй параметр для построения графика функции - значения х, в которых функция равна нулю, или нули функции. На графике нули функции f(x) – это точки пересечения графика функции y=f(x) с осью ОХ.

    Поскольку ордината (у) любой точки, лежащей на оси ОХ равна нулю, чтобы найти координаты точек пересечения графика функции y=f(x) с осью ОХ, нужно решить уравнение f(x)=0.

    В случае квадратичной функции   нужно решить квадратное уравнение  .

    Теперь внимание!

    В процессе решения квадратного уравнения мы находим дискриминант:  , который определяет число корней квадратного уравнения.

    И здесь возможны три случая:

    1. Если D<0 ,то уравнение не имеет решений, и, следовательно, квадратичная парабола не имеет точек пересечения с осью ОХ.

    2. Если D=0 ,то уравнение   имеет одно решение, и, следовательно, квадратичная парабола   имеет одну точку пересечения с осью ОХ.

    3. Если D>0 ,то уравнение   имеет два решения, и, следовательно, квадратичная парабола   имеет две точки пересечения с осью ОХ:

    ,  

    Следующий важный параметр графика квадратичной функции - координаты вершины параболы:





    Прямая, проходящая через вершину параболы параллельно оси OY является осью симметрии параболы.

    И еще один параметр, полезный при построении графика функции - точка пересечения параболы   с осью OY.

    Поскольку абсцисса любой точки, лежащей на оси OY равна нулю, чтобы найти точку пересечения параболы   с осью OY, нужно в уравнение параболы вместо х подставить ноль: y(0)=c.

    То есть точка пересечения параболы с осью OY имеет координаты (0;c).[2]
    2.2. Практическая часть

    Исследование № 1

    Цель: с помощью программы в Pascal проанализировать изменение графика функции от коэффициента a.

    Ход работы:

    1. Построить графики функции с разными коэффициентами a.

    2. Сравнить результаты и сделать вывод.

    a=1, b=0, c=0

    a=-1, b=0, c=0





    a=2, b=0, c=0

    a=0.25, b=0, c=0





    Вывод: 1) Знак коэффициента   отвечает за направление ветвей. При а>0 ветви направлены вверх, при а <0 — вниз. 

    2) Абсолютная величина коэффициента (модуля) отвечает за “расширение”, “сжатие” параболы. Если |a|>1, тем уже парабола, |a| <0, тем шире парабола.
    Исследование № 2

    Цель: с помощью программы в Pascal проанализировать изменения графика функции от коэффициента b.

    Ход работы:

    1. Построить графики функции с разными коэффициентами c.

    2. Сравнить результаты и сделать вывод.

    a=1, b=0, c=3

    a=1, b=0, c=-2






    Вывод: если c>0, то график функции смещается по оси Оу вверх на c единиц, если c<0, график смещается вниз на c единиц.
    Исследование № 3

    Цель: решить квадратное уравнение.

    Ход работы:

    1. С помощью программы в Pascal решить квадратное уравнение.

    2. Решить уравнение, используя формулы корней квадратных уравнений.

    3. Сравнить результаты и сделать вывод.

    Пример 1. Решить уравнение

    1. Построим график функции .

    2. Данное уравнение не имеет корней, так как дискриминант <0.

    График функции

    Выводы





    Пример 2. Решить уравнение

    1. Построим график функции .

    2. Уравнение имеет 2 разных корня, так как дискриминант >0.






    Выводы






    Пример 3. Решить уравнение

    Решить уравнение

    1. Построим график функции .

    2. Уравнение имеет 2 одинаковых корня, так как дискриминант = 0.



    Выводы






    Заключение

    Мы познакомились с языком программирования Паскаль, узнав его историю, к примеру, мы узнали, что этому языку уже более 50 лет. Далее разобрались с его особенностями, а также с языковыми конструкциями. Следующим этапом, приступили к разработке программы. Для этого мы тщательно изучили вопрос о решении уравнений через Дискриминант, изучили формулы и последовательность решения. Используя базовые команды смогли написать рабочую программу. Данный проектный продукт можно использовать для того, чтобы построить график функции, проверить, правильные ли получились корни в ответе.

    Список литературы

    1. Мордкович А.Г. Алгебра. 8 класс. В 2 ч. Ч. 1. Учебник для учащихся общеобразовательных учреждений / А.Г.Мордкович. - 12-е изд., стер. - М.: Мнемозина, 2010. - 215 с.

    2. Симонович С.В. Информатика: Базовый курс / С.В.Симонович и др. - СПб.: Питер, 2001. - 640с.

    3. Семакин И.Г. Основы программирования: Учебник для сред. проф. образования / И.Г.Семакин, А.П.Шестаков. – 2-е изд., стер. – М.: Издательский центр «Академия», 2003.

    4. https://ru.wikipedia.org/wiki/Паскаль_(язык_программирования)


    Приложение 1

    program proekt;

    uses graphABC;

    var b,c,gx,gy,x0,k,y0,x1,y1,i:integer;

    x,y,D,x11,x22,a:real;

    begin

    writeln( 'Введите коэффициенты уравнения');

    readln (a,b,c);

    if a>0 then writeln ('Ветви параболы направлены вверх') else writeln ('Ветви параболы направлены вниз');

    if c>0 then writeln ('График функции сместится по оси оу вверх на ' , c ) else writeln ('График функции сместится по оси оу вниз на ' , c );
    gx:=1000;

    gy:=1300;

    k:=10; //масштаб

    setwindowsize (gx,gy);

    x0:=gx div 2; //центр Х

    y0:=gy div 2; //центр Y

    ///ось х

    line(0,y0,gx,y0);

    line(gx,y0,gx-10,y0+10);

    line(gx,y0,gx-10,y0-10);

    textout(gx-10,y0+10,'X');

    /// ось y

    line(x0,0,x0,gy);

    line(x0,0,x0-10,10);

    line(x0,0,x0+10,10);

    textout(x0+10,10,'Y');

    ///цикл для цены деления X

    i:=-20;

    while i<21 do

    begin

    line(x0+i*k,y0+5,x0+i*k,y0-5);

    textout(x0+i*k,y0+10,inttostr(i));

    i:=i+2;

    end;

    ///цикл для цены деления Y

    i:=-20;

    while i<21 do

    begin

    if i<>0 then

    begin

    line(x0+5,y0+i*k,x0-5,y0+i*k);

    textout(x0+10,y0-i*k,inttostr(i));

    end;

    i:=i+2;

    end;

    x:=-5;

    while x<=5 do

    begin

    y:=a*x*x+b*x+c;

    x1:=x0+ round(x*k); //коорд Х относительно центра

    y1:=y0- round(y*k); //коорд Y относительно центра

    setpencolor(clred);

    circle(x1,y1,2);

    floodfill(x1,y1,clred);

    x:=x+0.1;

    end;

    D := sqr(b) - 4 * a * c;
    if D < 0 then

    writeln('Квадратное уравнение не имеет корней')

    else

    begin

    if D = 0 then

    begin

    {квадратное уравнение имеет два одинаковых корня}

    x11 := -b / (2 * a);

    x22 := x11;

    end

    else

    begin

    {уравнение имеет два разных корня}

    x11 := (-b + sqrt(D)) / (2 * a);

    x22 := (-b - sqrt(D)) / (2 * a);

    end;

    {вывод корней уравнения}

    writeln('x1 = ', x11:8:3);

    writeln('x2 = ', x22:8:3);

    end;

    end.


    написать администратору сайта