|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
13.12.2010, 15:46 | #1 |
Форумчанин
Регистрация: 05.05.2009
Сообщений: 244
|
переписать код на паскаль
Здравствуйте, у меня проблема...есть код на Си, помогите переписать на паскаль, помогите пожалуйста
#include <stdio.h> #include <stdlib.h> #define MaxLength 20 int main() { int k, i, j, NotBegin = 0; int Tcurr[MaxLength+1], Tprev[MaxLength+1]; printf("Enter number k: "); scanf("%d", &k); /* Начальная инициализация массивов коэфф. многочлена. Коэфф. в массиве хранятся по возрастанию степени: элемент с нулевым индексом - свободный член, элемент с первым индексом - первая степень X и так далее То есть, индекс массива = степень X. */ for(i = 0; i <= MaxLength; i++) { Tprev[i] = Tcurr[i] = 0; } Tprev[0] = 1; // T[0] = 1. Tcurr[1] = 1; // Т[1] = X. for(i = 2; i <= k; i++) { int buffer[MaxLength+1]; //Буфферный массив для сохранения предыдущего элемента. //Сохранение текущего многочлена, так как он станет T[n-1] for(j = 0; j <= MaxLength; j++) { buffer[j] = Tcurr[j]; } //Умножение на 2*X. /* Умножением на Х - повышение степени многочлена на 1. Так как в массиве коэфф. хранятся по возврастанию, достаточно сдвинуть элементы "вправо", а нулевому элементу который является свободным членом присвоить нулевое значение. Старший элемент теряется. */ for(j = MaxLength; j > 0; j--) { Tcurr[j] = Tcurr[j-1]*2; /*Более наглядно было бы написать так: Tcurr[j-1] *= 2; //Умножение на 2. Tcurr[j] = Tcurr[j-1]; //Умножение на Х. */ } //Вычитание Tcurr[0] = 0; /* Следующий шаг - вычитание T[n-2] многочлена, который представлен массивом Tprev. Это производится поэлементным вычитанием массивов. */ for(j = 0; j <= MaxLength; j++) { Tcurr[j] -= Tprev[j]; } /* Теперь Tcurr вычислен, а Tprev необходимо присвоить значение Tcurr на начало цикла, которое было сохранено в buffer. */ for(j = 0; j <= MaxLength; j++) { Tprev[j] = buffer[j]; } } //Вывод результата в виде строки. for(i = MaxLength; i >= 0; i--) { if(Tcurr[i]) { if(Tcurr[i] > 0 && NotBegin) printf("+"); printf("%d", Tcurr[i]); if(i) printf("x^%d", i); NotBegin = 1; } } return 0; } |
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
переписать этот код, так чтобы в коде присутствовали пользовательские модули | Artur1992 | Помощь студентам | 1 | 05.12.2010 20:17 |
Переписать код bp C++, на Delphi | Айдар | Общие вопросы Delphi | 0 | 12.06.2010 20:40 |
Код игры на Паскале и на Делфи сильно отличается? Как переписать код с Паскаля в Делфи? | Mclaren | Помощь студентам | 2 | 27.04.2009 22:37 |
как переписать код программы с книги, потом сохранить и скомпилировать? | Graff_1 | Помощь студентам | 3 | 14.05.2008 16:21 |