1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
смог решить только пункт в) и то не уверен что правильно.
В принципе, можно и так, но тогда ты будешь делать двойную работу...
Путь решения - подобен тому, что я показывал здесь: Многочлен Чебышева (только придется подкорректировать для твоих полиномов). А уж как найдешь полином - то будешь вычислять его.
Насчет многочлена Чебышева- препод точно не поверит, что это я сам сделал...
Я ж не предлагаю тебе просто взять и скопировать решение, правда? Посмотри, что делается, как делается, если что совсем непонятно - спрашивай, поможем разобраться... А когда разберешься - с легкостью запрограммируешь сам эту задачу...
Ну вот что ты к фамилии прицепился? Давай, я назову те многочлены "Многочленами X", тебе от этого станет проще разбираться? Какая разница, как называется полином. Он просто очень похож на твой, и метод решения совпадает... Ну, не хочешь разбираться с тем, что есть - как хочешь, пиши свои велосипеды, только проверяй, чтоб они не были с квадратными колесами, и ездили правильно.
, чтобы не плодить лишние if coeffs[i] > 0 then ... else ..., я делаю все одним оператором: если коэффициент > 0, значит, (coeffs[i] > 0) равно true, и напечатается "+". Иначе логическое значение будет равно false, и напечатается первый элемент sign, то есть "минус"...
Добавлено через 1 мин.
Цитата
зачет сдал
Ну, сдал-то сдал, это хорошо... А разобрался, что там происходит, и как это делается (кроме твоего вопроса о выводе)?
почему если true напечатается '+', а не первый элемент '-'?
Так... Значит, с системой типов Паскаля не знаком
Что значит описание:
array[boolean] ofstring[3]
? Это эквивалент вот такого описания:
array[low(boolean) .. high(boolean)] ofstring[3]
, а поскольку Low(boolean) - оно же минимальное значение Логического типа = False, а максимальное значение = True (ведь False < True, правда?), то первоначальное описания массива Sign означает:
, где элементу с индексом False присвоено значение ' - ', а элементу с индексом True - значение ' + '. Вот и все, собственно.
Цитата
а нельзя сдесь взять string[2]?
Во-первых - нет, там знак с двух сторон окружен пробелами, а это уже 3 символа. А во-вторых, с чего вообще менять, опять экономия что-ли? Не на том экономим, этот байт/два ничего не решают.
здесь я не понял стороку pred(maxOrder)*sizeof(integer). Если не ошибаюсь то sizeof(integer) возвращает размер типа в байтах. А вот дальше не очень ясно.
Цель всей этой строки - перенести массив из CF в Res, но не просто так перенести, а одновременно еще сдвинуть его вправо, т.е., элементы cf[ i ] перенести в элементы Res[i+1]. А как это сделать? Можно циклом, конечно, но зачем цикл, если есть встроенная процедура Move, которая прекрасно подходит для этого. Передавать в Move надо 3 параметра: откуда брать данные, куда их переносить, и сколько (в байтах) переносить. Откуда и куда (первые 2 параметра) - все понятно, от CF[0], в Res[1]. А вот сколько? Берем Pred(max_order) = max_order - 1, это столько элементов, сколько мы в принципе можем записать начиная с Res[1], не рискуя вылететь за пределы массива. Но ведь тип CoeffType - массив Integer-ов, а Move хочет размер в байтах. Значит, число переносимых элементов домножаем на размер Integer-а.