06.11.2012, 23:03 | #11 (permalink) |
Новичок
Регистрация: 05.11.2012
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
|
06.11.2012, 23:03 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Будем ждать ответов в вашу тему, а пока можете прочитать содержимое этих топиков Паскаль Паскаль АBC Паскаль Турбо Паскаль или Фри Паскаль. Задание по теме Типизированный файл |
29.11.2012, 03:41 | #12 (permalink) |
Новичок
Регистрация: 29.11.2012
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
извините еще раз за беспокойство, но как я не пыталась изменить задачу у меня ничего не вышло. программа выдает отрицательный результат. Т.е вся строка состоит только из положительных чисел, а произведение элементов этой строки отрицательное. что сделать никак не пойму. помогите пожалуйста. Выглядит это так. интервал в задачу я сама добавила.
Исходная матрица Введите интервал[a,c]: -2 18 11 -2 4 9 6 1 18 0 -2 -2 17 4 11 16 5 -5696 9 13 14 14 17 -3372 16 -1 11 3 18 Преобразованная матрица 17 13 14 16 18 1 18 0 -2 -2 16 -2 11 9 17 9 4 11 14 6 11 -1 4 3 5 |
29.11.2012, 09:51 | #13 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Уважаемая лекси_1, не видя Вашей программы и, соответственно, не зная, что Вы там накурочили, я, разумеется, бессилен Вам помочь. Одно могу сказать точно: сырых неотлаженных неоттестированных программ я не выкладываю, и моя программа точно и правильно решала поставленную задачу. Так что пока Вы не выложите листинг своего варианта, разговор беспредметен.
И еще. Для того, чтобы не сбивались интервалы (например, при выкладывании матриц, а также листингов), нужно делать так: 1. Перейти в "Расширенный режим". 2. Выделить набранную матрицу или листинг. 3. Нажать на значок #. Или то же самое можно сделать, взяв нужный фрагмент в теги Code, т.е. вручную прописать: {Code} <Матрица> {/Code}, только вместо фигурных следует поставить квадратные скобки. |
05.12.2012, 19:13 | #14 (permalink) |
Новичок
Регистрация: 29.11.2012
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Вот эта программа
изменила я только то что можно сейчас самой выбирать интервал. так вот, когда выбираешь маленькие числа к примеру от -3 до 12 то все работает правильно, а когда большие от -11 до 26 ,например, то появляется минус в произведении положительных чисел. что я уже только не меняла не получается ничего. Помогите пожалуйста!
Program Primer; uses crt; const n=5; var M: array[1..n,1..n]of integer; i,j,p,r,k, a,c :integer; b:boolean; begin clrscr; randomize; writeln('Исходная матрица:’); writeln; write('Введите интервал [a,c]:’); readln(a,c); writeln; for i:=1 to N do begin b:=true; p:=1; for j:=1 to N do begin M[i,j]:=random(c-a+1)+a; if M[i,j]<0 then b:=false; if b then P:=P*m[i,j]; write(m[i,j]:4); end; if b then writeln(p:15) ; writeln; end; readkey; writeln; writeln('Преобразованная матрица’); writeln; for j:=1 to n do begin for k:=1 to n-2 do begin for i:=k+2 to n do if k mod 2 <> 0 then if sqr(m[k,j]) < sqr(m[i,j]) then begin r:=m[k,j]; m[k,j]:=m[i,j]; m[i,j]:=r;end; end; end; for i:=1 to n do begin for j:=1 to n do write (m[i,j]:4); writeln;end; readkey; End. |
05.12.2012, 20:36 | #15 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Черт, что за запах отвратительный? Ох, чую - пахнет Паскалем АВС. Превосходящим своею глючностью самою глючность. В общем, так - за глюки этого... изделия я не отвечаю. Кроме того:
1. Ведь вот просил Вас выкладывать листинги в тегах {Code}, и объяснил, как это делается - нет, всё мимо. Ведь так неудобно читать неформатированный текст программы! Впрочем, это так - воркотня. 2. Не надо менять то, что было отлажено и выверено! Например, у меня: If b then Write(P:15); Writeln; у Вас: If b then Writeln(P:15); Writeln; В результате на экране появляются лишние пустые строки, матрица рвется. И зачем? Ну ладно. Главное, ответить на извечный вопрос "Что делать?". Предлагаю попытаться обойти глюки Вашего лжепаскаля путем задания типа произведения P, как "Real". Должно помочь. Тогда (заодно еще кое-где кое-что "причесал" и добавил исключение нулевых элементов матрицы): Код:
Program Primer; uses crt; const n=5; var M: array[1..n,1..n]of integer; i,j,r,k,a,c :integer; P:Real; b:boolean; begin clrscr; randomize; write('Enter the range [a,c]: '); readln(a,c); writeln; writeln('Initial matrix:'); writeln; for i:=1 to N do begin b:=true; P:=1; for j:=1 to N do begin M[i,j]:=random(c-a+1)+a; if M[i,j]=0 then M[i,j]:=1; if M[i,j]<0 then b:=false; if b then P:=P*m[i,j]; write(m[i,j]:4); end; if b then write(P:15:0); writeln; end; readkey; writeln; writeln('Ordered matrix:'); writeln; for j:=1 to n do begin for k:=1 to n-2 do begin for i:=k+2 to n do if k mod 2 <> 0 then if sqr(m[k,j]) < sqr(m[i,j]) then begin r:=m[k,j]; m[k,j]:=m[i,j]; m[i,j]:=r; end; end; end; for i:=1 to n do begin for j:=1 to n do write (m[i,j]:4); writeln; end; readkey; End. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
18.12.2012, 20:17 | #17 (permalink) |
Новичок
Регистрация: 29.11.2012
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
хотя нет, это кошмар какой то, только заметила что и сортировка тупит.... 3 столбец 10-ку зачем то взял, хотя должен работать только с нечетными по номеру строками. это он опять тупит?
|
18.12.2012, 20:48 | #19 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,794
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
|
Появление отрицательных значений вызвано переполнением числового формата Integer.
Можно воспользоваться типом longint для хранения произведения больших чисел. |
18.12.2012, 20:49 | #20 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Ага, ну ясно. Уважаемая леди, у меня в #10 всё было правильно, отлажено и выверено, так нет же - Вам понадобилось всё переиначить на свой лад, непонятно зачем, а в результате в части программы, где идёт упорядочение, Вы мало того, что зачем-то навставляли ненужных операторных скобок (begin-end), ну это еще полбеды, а беда в том, что напрочь перепутали индексы i,j,k элементов матрицы. Я вообще не понимаю, что там за алгоритм использован. Поэтому совет: внимательно перенести в программу нужный фрагмент из #10 и не мудрить.
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Опции темы | |
Опции просмотра | |
|
|