Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Turbo Pascal






Program QuadraticEquation; Uses Crt; { подключение библиотеки Crt } Var a, b, c: Real; {a, b, c - коэффициенты уравнения} Discr: Real; x1, x2: Real; {x1, x2 - корни } Test, NTest: Integer; {Ntest - количество тестов }BEGIN ClrScr; Write('Введите количество тестов: '); ReadLn(NTest); For Test: = 1 to NTest do {цикл по всем тестам задачи } begin Write('Тест ', Test, '. Введите коэффициенты a, b, c: '); ReadLn(a, b, c); If (a=0) and (b=0) and (c=0) {проверка 4-го случая} then begin Write('Все коэффициенты равны нулю.'); WriteLn('x - любое число ') end else If (a=0) and (b< > 0) {проверка 6-го случая} then WriteLn('Линейное уравнение. Oдин корень: x =', (-c/b): 6: 2) else If (a=0) and (b=0) and (c< > 0) {проверка 5-го случая} then WriteLn('Неправильное уравнение.') else begin Discr: = b*b - 4*a*c; {вычисление дискриминанта} If Discr > 0 {проверка 1-го случая} then begin {вычисление корней} x1: =(-b + Sqrt(Discr)) / (2*a); x2: =(-b - Sqrt(Discr)) / (2*a); WriteLn('x1=', x1: 6: 2, '; x2=', x2: 6: 2) end else If Discr = 0 {проверка 2-го случая} then begin x1: = -b/(2*a); WriteLn('Корни равны: x1=', x1: 6: 2, ' x2=', x1: 6: 2) end else WriteLn('Действительных корней нет.'); {проверка 3-го случая} end; WriteLn end; ReadLnEND.

Пример 9 Контроль корректности данных. Составить программу расчета площади треугольника S по трем сторонам a, b, c, значения которых запрашиваются с клавиатуры, по формуле Герона

, где .

Var a, b, c, p, S: real;

Begin

Write(‘Ввести сторону а=’); ReadLn(a);

Write(‘Ввести сторону b=’); ReadLn(b);

Write(‘Ввести сторону c=’); ReadLn(c);

IF (a> 0) and (b> 0) and (c> 0) {проверка положительности}

and (a+b> c) and (a+c> b) and (c+b> a) {каждая сторона должна быть меньше суммы двух других сторон}

THEN begin p: =(a+b+c)/2;

S: =sqrt(p*(p-a)*(p-b)*(p-c));

WriteLn(‘Площадь: ’, S: 15: 5) end

ELSE Writeln(“Неверные входные данные! ’);

ReadLn

END.

Пример 10 Программа случайного предсказания одного из десяти вариантов ближайшего будущего с вероятностью 1/20, в остальных случаях – Вы «неудачник».

Var N: word;

Begin

WriteLn(‘Предсказание будущего! ’);

Randomize; N: =Random(20)+1; {N-случайное число от 1 до 20}

WriteLn; Write(‘Вас ожидает_’);

Case N of

1: WriteLn(‘счастье’); 6: WriteLn(‘здоровье’);

2: WriteLn(‘пятерка’); 7: WriteLn(‘деньги’);

3: WriteLn(‘дорога’); 8: WriteLn(‘любовь’);

4: WriteLn(‘двойка’); 9: WriteLn(‘встреча’);

5: WriteLn(‘болезнь’); 10: WriteLn(‘мама’)

Else WriteLn(‘неудача’) end;

WriteLn(‘Нажми клавишу Enter’);

ReadLn

END.

Здесь функция Random(x) генерирует случайное число, с равномерной плотностью распределения на заданном интервале. Для инициализации распределения в начале программы необходимо вызвать процедуру Randomize.







© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.