|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
01.11.2008, 22:39 | #1 |
Пользователь
Регистрация: 10.12.2007
Сообщений: 69
|
Массив!
Всем здрасти!Сделал задачу на Паскале, но почему-то не получается сформировать массив, при тестировании массива выводит массив состоящий из нулей!
Подскажите пожалуйста в чем ошибка! дан массив x.Получить массив y, каждый элемент которого определяется формулой: y[i]=(((x[i])^2) -2!)*(((x[i])^3) -3!)+...+(((x[i])^9) -9!). моя прога: program lab; var x,y:array [1..10] of integer; i,z,t,n,l,m,p,f:integer; begin readln(n); for i:=1 to n do begin readln(x[i]); end; for i:=1 to n do begin f:=2; p:=x[i]; l:=x[i]; t:=1; for m:=2 to 9 do begin p:=l*p; {формирование степени} f:=f*m; {формирование факториала} z:=p-f; {НАХОЖДЕНИЕ СКОБКИ} t:=t*z; {нахождение произведения скобок} end; y[i]:=t end; for i:=1 to n do write(y[i],' '); end. |
01.11.2008, 22:48 | #2 | |
Старожил
Регистрация: 13.10.2007
Сообщений: 2,740
|
Цитата:
2.Если у Вас х целые числа, да еще и большие, то в процессе вычисления они точно вылезают за пределы типа Integer, а возможно и Longint, надо проверить. Нужно бы точное условие задачи. Какой массив, целых или вещественных чисел. Если целые, какой диапазон и все-таки сумма или произведение. |
|
01.11.2008, 22:55 | #3 |
Пользователь
Регистрация: 10.12.2007
Сообщений: 69
|
1.Произведение, это просто я опечатался!
2.Массив целочисленный, а диапазон препод сказала, чтоб сам выбрал!Я выбрал 1.10! Я дума, что integer пойдет!Особых требований к задаче просто нет! Просто я не могу понять, почему не формируется новый массив! |
02.11.2008, 09:24 | #4 |
Старожил
Регистрация: 13.10.2007
Сообщений: 2,740
|
1.Циклов должно быть не 2, а 3. Внешниий цикл - формирование массива y[i]. Первый вложенный - подсчет скобок и их умножение, второй вложенный - подсчет степеней и факториалов.
2.Вот Вы пытаетесь написать программу, садитесь за комп и пишете всякие буковки, половину неправильно. Но это легко поправить. Беда Ваша в том, что думать не хотите. Прежде чем писать програаму, нужно обдумать задание, проанализировать его. Если бы Вы сделали это, то увидели бы что например при условии как Вы его представляете (умножение 9 больших чисел), при x[i]=0 y[i]= 1.8^21; при x[i]=1 y[i]=7.2^21 и т.д., что не только в integer, но и в Longint не влезет. Значит нужно подумать, либо условие неверное(что скорее всего, потому что задание учебное, на вложенные циклы и вряд ли будут такие числа), либо использовать тип extended. Кстати 1..10 это не диапазон чисел (x[i]), о чем я спрашивал, а размер массива. Если хотите произведение, пожалуйста, но я думаю, что все-таки сумма. Код легко исправить. Тип extended переделать на Longint, а произведение y[i]:=y[i]*z -> y[i]:=y[i]+z; Код:
|
06.11.2008, 22:09 | #5 |
Пользователь
Регистрация: 10.12.2007
Сообщений: 69
|
Ясно!!!!Спасибо большое!
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Массив | KpeHDeJIb | Помощь студентам | 2 | 27.09.2008 13:59 |
Массив | Levsha100 | Помощь студентам | 5 | 23.07.2008 16:29 |
Массив.С++ | bloo[d] | Помощь студентам | 1 | 13.01.2008 14:55 |
Массив. С++ | bloo[d] | Помощь студентам | 2 | 12.12.2007 23:30 |
массив | Jodu | Паскаль, Turbo Pascal, PascalABC.NET | 11 | 01.11.2007 16:11 |