Инфоурок Информатика КонспектыРешение квадратного уравнения. Дискриминант в Паскеле.

Решение квадратного уравнения. Дискриминант в Паскеле.

Скачать материал

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

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

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

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

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

– если D < 0, не имеет действительных решений.

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

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

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

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

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

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

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

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

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

writeln('x = ', x1:4: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)

end

else begin

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

  writeln('x = ', x1:4:2)

end;

Код:

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

 

Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Решение квадратного уравнения. Дискриминант в Паскеле."

Методические разработки к Вашему уроку:

Получите новую специальность за 3 месяца

Научный сотрудник музея

Получите профессию

Интернет-маркетолог

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Скачать материал

Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:

6 664 934 материала в базе

Скачать материал

Вам будут интересны эти курсы:

Оставьте свой комментарий

Авторизуйтесь, чтобы задавать вопросы.

  • Скачать материал
    • 05.02.2017 1334
    • DOCX 17 кбайт
    • Оцените материал:
  • Настоящий материал опубликован пользователем Юсупов Зиявдин Абдулкеримович. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт

    Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.

    Удалить материал
  • Автор материала

    Юсупов Зиявдин Абдулкеримович
    Юсупов Зиявдин Абдулкеримович
    • На сайте: 7 лет и 6 месяцев
    • Подписчики: 0
    • Всего просмотров: 1424
    • Всего материалов: 1

Ваша скидка на курсы

40%
Скидка для нового слушателя. Войдите на сайт, чтобы применить скидку к любому курсу
Курсы со скидкой

Курс профессиональной переподготовки

Менеджер по туризму

Менеджер по туризму

500/1000 ч.

Подать заявку О курсе

Курс профессиональной переподготовки

Информатика: теория и методика преподавания в профессиональном образовании

Преподаватель информатики

300/600 ч.

от 7900 руб. от 3650 руб.
Подать заявку О курсе
  • Сейчас обучается 49 человек из 22 регионов
  • Этот курс уже прошли 152 человека

Курс профессиональной переподготовки

Педагогическая деятельность по проектированию и реализации образовательного процесса в общеобразовательных организациях (предмет "Математика и информатика")

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

300 ч. — 1200 ч.

от 7900 руб. от 3650 руб.
Подать заявку О курсе
  • Сейчас обучается 36 человек из 17 регионов
  • Этот курс уже прошли 35 человек

Курс повышения квалификации

Методы и инструменты современного моделирования

72 ч. — 180 ч.

от 2200 руб. от 1100 руб.
Подать заявку О курсе
  • Сейчас обучается 37 человек из 19 регионов
  • Этот курс уже прошли 69 человек

Мини-курс

Социальная и поведенческая психология

6 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Сейчас обучается 29 человек из 17 регионов

Мини-курс

Коррекционно-развивающая работа и оценивание в образовании для детей с ОВЗ

6 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Сейчас обучается 57 человек из 30 регионов
  • Этот курс уже прошли 40 человек

Мини-курс

Стрессоустойчивость и успех в учебе: практические методики и стратегии

4 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Сейчас обучается 51 человек из 24 регионов
  • Этот курс уже прошли 17 человек