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

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

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

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

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

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

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

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




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

Доброго времени суток.
Чтобы проверить кратность нужно использовать 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
Сообщений: 1,354
Репутация: 644
По умолчанию

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


15:36.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.