Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

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

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

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

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

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

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

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

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

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




Думаю, что этого будет достаточно ...
ViktorR вне форума Ответить с цитированием
Старый 18.02.2013, 20: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, 20:32   #4
ViktorR
Участник клуба
 
Регистрация: 23.10.2010
Сообщений: 1,569
По умолчанию

Код:
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 вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


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


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS