Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.02.2013, 19:16   #1
Santina
Новичок
Джуниор
 
Регистрация: 18.02.2013
Сообщений: 2
По умолчанию Задача в Pascal

Найти сумму корней квадратного уравнения.
Если эта сумма положительна и кратна трем, то увеличить коэффициенты a и b в 0,5 раза. Иначе проверить, кратна ли данная сумма произведению коэффициентов этого уравнения. Если уравнение не имеет корней, то вывести соответствующее сообщение.
Santina вне форума Ответить с цитированием
Старый 18.02.2013, 19:57   #2
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

Как вариант - вспомнить теорему Виета и определение дискриминанта квадратного уравнения.

Цитата:
то увеличить коэффициенты a и b в 0,5 раза
классика ...

Кратность можно определить делением целых чисел: оператор mod Вам поможет.

Так думается, что коэффициенты уравнения - целого типа




Думаю, что этого будет достаточно ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 18.02.2013, 21:17   #3
PavelDD
Пользователь
 
Регистрация: 15.02.2013
Сообщений: 35
По умолчанию

Доброго времени суток.
Чтобы проверить кратность нужно использовать mod, то есть:
Код:
if (x1+x2) mod 3 = 0 then begin     {x1,x2 - это корни уравнения}
  a := a*0,5;
  b := b*0,5;
end
else if (x1+x2) mod (a*b) =0 then writeln('Сумма кратна произведению коэффициентов.')
else writeln('Сумма не кратна.');
Ну с сообщением, что нет корней это просто.
Надеюсь это Вам поможет.
PavelDD вне форума Ответить с цитированием
Старый 19.02.2013, 21:32   #4
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

Код:
if (x1+x2) mod 3 = 0 then begin     {x1,x2 - это корни уравнения}
  a := a*0,5;
  b := b*0,5;
end
else if (x1+x2) mod (a*b) =0 then writeln('Сумма кратна произведению коэффициентов.')
else writeln('Сумма не кратна.');
Внимание!
x1 и x2 - должны быть целого типа.
Тогда a и b - целого типа.
Тогда код:
Код:
a := a*0,5;
b := b*0,5;
не пройдет.
Возможно так?
Код:
a := a div 2;
b := b div 2;
Надо отследить соответствие типов ...


Вроде так ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача turbo pascal на тему: файлы с произвольным доступом в Pascal ExCiTeC Паскаль, Turbo Pascal, PascalABC.NET 0 28.01.2013 20:36
Задача по подсчёту статистики использования букв. Другая задача - по длинной арифметике Pascal ABC kimberly Паскаль, Turbo Pascal, PascalABC.NET 3 24.12.2012 17:03
Задача Pascal!!! Kirill_Sokolov Паскаль, Turbo Pascal, PascalABC.NET 1 17.10.2012 20:47
Задача Pascal Cruzel Помощь студентам 3 05.11.2011 20:18
Задача на Pascal! BlackFishSQL Паскаль, Turbo Pascal, PascalABC.NET 1 01.11.2011 17:38