No Image

Формула дискриминанта в паскале

0 просмотров
11 марта 2020

Цели урока:

  • Повторить с учащимися правила решения квадратных уравнений
  • Вспомнить алгоритмическую конструкцию IF-THEN-ELSE
  • Составить блок-схему программы и саму программу на языке Pascal
  • Проверить работоспособность программы на конкретных примерах
  • Расширить представления учащихся о применении языка Pascal
  • Воспитать у учащихся чувство аккуратности, внимательности, ответственности
  • Научить учащихся самостоятельно находить свои ошибки в программах
  • Оборудование:

  • Таблички с формулами
  • Плакат с блок-схемой алгоритма КВУР
  • Листочки с индивидуальными заданиями
  • Система программирования "Turbo Pascal 7.0"
  • До сих пор мы с вами говорили о каких-то отвлечённых задачах из области математики. Сегодня мы поговорим о конкретной задаче, которая встречается у вас почти на каждом уроке. Это решение квадратного уравнения. Я хочу, чтобы вы на примере этой задачи поняли, что программирование – это не просто прихоть учителя, это действительно раздел информатики, который может нам помочь, например, в решении конкретных математических задач. Нужно только уметь разбираться в этом.

    2. Математическое решение

    Давайте вспомним, что понимают под квадратным уравнением?

    Что из себя представляют числа a,b,c и как их называют?

    С чего начинают решение квадратного уравнения?

    Найдите вокруг себя формулу дискриминанта. (D=b 2 -4ac) (Приложение 3)

    Как мы решаем далее квадратное уравнение? (сравнение D с нулём)

    Какие выводы мы из этого делаем?

    (если D 0, то два корня)

    Как найти корни квадратного уравнения? Найдите формулы корней среди тех, что развешены повсюду.

    Если я случай наличия корней квадратного уравнения сведу к условию D0, то что я получу в случае D=0?

    (Два одинаковых корня)

    Давайте ещё раз подробно разберём нашу задачу:

    Итак, у нас есть квадратное уравнение ax 2 +bx+c=0.

    Мы должны решить его, т.е. найти такие значения х, при которых правая часть уравнения =0. Мы знаем, что для этого нам надо:

    Найти дискриминант D=b 2 – 4ac.

    Сравнить его с нулём

    D=b 2 -4ac=10 2 -4*3*3=100 – 36 =64

    Читайте также:  Старые кооперативные игры по сети

    Х1=,

    X2 =

    3. Составление блок-схемы алгоритма.

    По заданному решению попробуем составить блок-схему алгоритма в тетради. Кто справится первым, прошу к доске.

    Подпишем основные элементы блок – схемы применительно к языку программирования.

    4. Составление программы по блок – схеме.

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

    А я раздам вам домашнее задание.

    Var a,b,c,d,x1,x1: real;

    Write(‘введите коэффициенты уравнения a,b,c’); readln(a,b,c);

    Else writeln(‘действительных корней нет’)

    1. Составить и набрать программу КВУР на компьютере.

    Загрузка среды Pascal- 2ЩЛКМ по значку Pascal, нажать ALT+ENTER.

    Запуск программы – ЩЛКМ по кнопке RUN выбрать RUN.

    2. Решить следующие квадратные уравнения и показать учителю их решения (если нет такой возможности, то занести их в маршрутный лист (Приложение 4)

    1,5х 2 -0,6х – 4,8 = 0

    3. Переделайте программу КВУР таким образом, чтобы в ней учитывался случай, когда D=0 и уравнение имеет один корень.

    4. Закрыть программу.

    Подсказка: Меню File – Exit или ALT+X.

    1. За простое воспроизведение (набор программы) без проверки оценка "3"

    2. За проверку работы программы на примерах, представленных учителем оценка "4"

    3. За решение всех заданий и дополнительное изменение программы для случая D=0, оценка "5"

    4. Закрыть программу.

    Подсказка: Меню File – Exit или ALT+X.

    Х1 Х2
    1 3,230139 0,1031947
    2 1,464102 -5,464102
    3 1,106107 -1,356107
    4 5 6 1,6
    7 2 -1,6
    8 9 0,6872614 -1,131706
    10 9,486833 -9,486833

    Можно дать дополнительное задание:

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

    1) Напишите программу проверки пароля. Пусть пароль – некоторое число, зафиксированное в программе. Программа печатает приглашение “введите пароль” и вводит число. Если введённое число совпадает с фиксированным паролем, то программа выводит приветствие, если нет – сообщает о том, что пароль не угадан.

    Читайте также:  Hp 1200 печатает иероглифы

    7. Подведение итогов урока.

    Итак, ребята, сегодня мы с вами решали конкретные задачи из математики, применяя свои умения по программированию. Вы получили следующие оценки за свои знания. (Перечисление оценок) На следующем уроке нам предстоит познакомиться с новыми алгоритмами – Циклическими.

    На сегодня наш урок закончен. До свидания.

    Литература:

  • И. Семакин, Л. Залогова “Информатика. Базовый курс. 9 класс”, М., БИНОМ, 2005г.
  • А.А. Чернов “Конспекты уроков информатики в 9-11 классах”, Волгоград: Учитель, 2006г.
  • Л.И. Белоусова, С.А. Веприк “Сборник задач по курсу информатики”, М., “Экзамен”, 2007.
  • Идёт приём заявок

    Подать заявку

    Для учеников 1-11 классов и дошкольников

    Чтобы скачать материал, введите свой E-mail, укажите, кто Вы, и нажмите кнопку

    Нажимая кнопку, Вы соглашаетесь получать от нас E-mail-рассылку

    Если скачивание материала не началось, нажмите еще раз “Скачать материал”.

    • Информатика

    Формулировка. Даны вещественные числа a , b и c , причем a отлично от 0. Решить квадратное уравнение ax 2 + bx + c = 0 или сообщить о том, что действительных решений нет.

    Решение. Из алгебры известно, что:

    Квадратное уравнение ax 2 + bx + c = 0, выражение D = b 2 – 4 ac – дискриминант:

    – если D > 0, имеет два решения: , ;

    – если D = 0, имеет единственное решение: ;

    – если D d типа real ) и в зависимости от его значения организовать ветвления. Сначала нужно проверить, имеет ли уравнение действительные решения (для решений заведем переменные x 1 и x 2 типа real ). Если да, и если дискриминант не равен нулю, то вычисляем оба решения по формулам, а если дискриминант равен нулю, то вычисляем единственное решение. Если же действительных решений нет, выводим текстовое сообщение об этом. Основной алгоритм можно проиллюстрировать следующей блок-схемой:

    Три нерасшифрованных блока представляют собой стандартные операторы вывода. Разберем их подробнее :

    Читайте также:  Срок оплаты счета мгтс

    1) При выводе двух корней выражение будет выглядеть следующим образом:

    x1 := (-b + sqrt(d)) / 2 * a;

    x2 := (-b – sqrt(d)) / 2 * a;

    writeln(‘x1 = ‘, x1:4:2, ‘, x2 = ‘, x2:4:2);

    При этом выводимое выражение будет выглядеть так: ‘ x 1 = m , x 2 = n ‘ , где синим цветом выделены однозначные текстовые константы, которые берутся из списка аргументов writeln , красным – вычисленные значения x 1 и x 2 . Причем корни выведены в форматированном виде: число после первого двоеточия задает ширину поля вывода для переменной вместе с точкой (при нехватке поля она будет расширено программой), а число после второго двоеточия – количество выводимых дробных знаков (его при работе программы изменить нельзя);

    2) При выводе одного корня – все то же самое, только выводится один корень:

    3) При отсутствии действительных корней выводим сообщение:

    writeln(‘No real solutions!’);

    В итоге внутренний условный оператор с телом включительно будет выглядеть так:

    if d <> 0 then begin

    x1 := (-b + sqrt(d)) / 2 * a;

    x2 := (-b – sqrt(d)) / 2 * a;

    writeln(‘x1 = ‘, x1:4:2, ‘, x2 = ‘, x2:4:2)

    1. program QuadraticEquation;
    2. var
    3. a, b, c, d, x1, x2: real;
    4. begin
    5. readln(a, b, c);
    6. d := b * b – 4 * a * c;
    7. if d >= 0 then begin
    8. if d <> 0 then begin
    9. x1 := (-b + sqrt(d)) / 2 * a;
    10. x2 := (-b – sqrt(d)) / 2 * a;
    11. writeln(‘x1 = ‘, x1:4:2, ‘, x2 = ‘, x2:4:2)
    12. end
    13. else begin
    14. x1 := -(b / 2 * a);
    15. writeln(‘x = ‘, x1:4:2)
    16. end
    17. end
    18. else begin
    19. writeln(‘No real solutions!’);
    20. end
    21. end.

    program z1;
    var a,b,c,D:real;
    begin
    writeln(‘Vvedite a’);
    readln(a);
    writeln(‘Vvedite b’);
    readln(b);
    writeln(‘Vvedite c’);
    readln(c);
    D:=(b*b)-(4*a*c);
    writeln(‘Discriminant’);
    writeln(D:1:2);
    D:=(-b+sqrt(D))/(2*a);
    writeln(‘1 koren’);
    writeln(D:1:2);
    D:=(-b-sqrt(D))/(2*a);
    writeln(‘2 koren’);
    writeln(D:1:2);
    readln
    end.

    Правильно ли написал код нахождения??
    При вводе значений a=2 b=1 c=-6 дискриминант равен 49.00 а 1 корень=1.50 а 2 корень=-0.56

    “>

    Комментировать
    0 просмотров
    Комментариев нет, будьте первым кто его оставит

    Это интересно
    No Image Компьютеры
    0 комментариев
    No Image Компьютеры
    0 комментариев
    No Image Компьютеры
    0 комментариев
    No Image Компьютеры
    0 комментариев
    Adblock detector