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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.08.2014, 21:28   #1
Lizoveta
Пользователь
 
Регистрация: 22.06.2013
Сообщений: 44
По умолчанию Паскаль, действия с многочленами, строки

Задача 1
Написать программу, которая считает сумму, разность и произведение двух введенных с клавиатуры (или из файла)
многочленов, записанных в виде строк.
Пример:
a= «X^2+2X-1», b=«X^2-4X+2»

a+b = «2X^2-2X+1»
a-b = «6X-3»
a*b = «X^4-2X^3-7X^2+8X-2»
___________________________________ ___
Подскажите, пожалуйста! Как эти строки наиболее удобно переделать в числа? Да, в этом случае: можно использовать 3 переменные под каждый многочлен, но что делать, если будет больше?? И ладно, сложение, вычитание - там количество переменных не меняется..Но с умножением как быть?
Очень прошу подсказать хотя бы на словах, может быть, идею какую подбросить, потому что мыслей вообще никаких :С
Lizoveta вне форума Ответить с цитированием
Старый 25.08.2014, 22:03   #2
RomiKon
Форумчанин
 
Регистрация: 11.04.2010
Сообщений: 143
По умолчанию

Многочлен состоит из членов вида k*X^s. Если условиться, что в многочлене нет членов с повторяющимися степенями, то можно для хранения многочлена использовать массив размерности N+1. Где N - максимальная степень многочлена. тогда индекс массива соответствует числу s, а значение числу k.
Код:
var
  a, b, c: array of Integer;
Так же вам потребуеться процедура, которая из строки получает массив членов:
Код:
procedure parse(const s: String; var x: array of Integer);
begin
  /*
    Тут всё просто. 
    Обрабатываем строку посимвольно, выделяем из нём все подстроки 
    вида k*X^s, причём если перед k стоит минус, то 
    коэффициент многочлена отрицателен( ЛОГИКА ).
    далее заполняем массив x.
  /*
end;
Думаю с суммой проблем не возникнет. Просто поэлементно складываем значения двух массивов, причём размер результирующего будет равен размеру большего массива.
Для произведения напишите процедуру умножения многочлена на один член, а на основе неё и процедуры сложения, процедуру произведения многочлен на многочлена.

P.S. слишком много х**в... членов в тексте =)
RomiKon вне форума Ответить с цитированием
Старый 25.08.2014, 22:22   #3
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

Предлагаю сильно не напрягаться, и не изобретать.
В этой области уже существуют полезные изобретения.
Скачайте вот эту книжку и будет Вам счастье:

http://www.itlab.unn.ru/uploads/coa/coaBook.pdf

В случае, когда многочлен "растяжим" следует использовать такую штуку, которая является динамической структурой типа Список.


Как-то так, ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 28.08.2014, 22:40   #4
Lizoveta
Пользователь
 
Регистрация: 22.06.2013
Сообщений: 44
По умолчанию

Спасибо Большое за помощь!
RomiKon, спасибо Вашу мысль я поняла, попробую воплотить в реальность! Я тоже думаю, что дальше проблем не возникнет.
Да, отдельное спасибо, ViktorR, обязательно на досуге изучу эту книгу. А затем буду ждать свое счастье
Lizoveta вне форума Ответить с цитированием
Старый 29.08.2014, 23:26   #5
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

Может кто посчитает это флудом, но не удержался, простите.

Изучать эту книгу на досуге большого смысла нет.
В ней есть готовая часть кода и идеи по реализации Вашей задачи.

Ждать свое счастье - это когда уже в положении ... :-)

Я полагаю, что счастье - это свободный труд, ...

Моё мнение:
Думаю, что правильное решение - не пытаться реализовывать задачу через массивы, а сразу, как в книге.
Труда будет вложено много, но от понимания процесса и ощущения результата адреналина будет больше.
Для чего живём? ...


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


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В матрице поменять местами строки с max элементом и min элементом: объясните код, где какие действия выполняются (Паскаль). КонстантинКонстант Помощь студентам 0 08.01.2014 13:38
Операции над многочленами, заданными списком свомх коэффициентовОперации над многочленами, заданными списком свомх коэффициентов lelicki_bolicki Общие вопросы по Java, Java SE, Kotlin 1 06.12.2011 22:07
Действия с матрицами (Турбо Паскаль) Сусяка Помощь студентам 2 21.12.2010 15:36
действия над многочленами nuevegramodelamor Помощь студентам 4 21.06.2010 01:31
строки и действия DeDoK Общие вопросы Delphi 21 08.08.2009 02:55