Программирование Turbo Pascal 7 и Delphi 7, Обращайтесь кто интересуется |
Здравствуйте, гость ( Вход | Регистрация )
Программирование Turbo Pascal 7 и Delphi 7, Обращайтесь кто интересуется |
Aug 24 2005, 14:35
Сообщение
#1
|
|
Мега постер Группа: Posters Сообщений: 1,337 Регистрация: 15.8.2005 Из: Москва Пользователь №: 45 |
Можете сдесь задавать свои вопросы по этой теме.
-------------------- http://www.fds-net.ru Филиал Дома Студента МГУ
|
|
|
Sep 25 2007, 22:16
Сообщение
#141
|
|
Пользователь Группа: Posters Сообщений: 53 Регистрация: 29.9.2006 Пользователь №: 2,126 |
Но ведь в таком случае получится не один условный оператор, а несколько А в условии задачи говорится, что нужен один условный оператор и без использования OR и AND Присвоить все в булинову переменную и уже ее без 'or' и 'and' пихнуть в IF. ЗЫ: Вы вообще о чем, граждане? |
|
|
Oct 7 2007, 16:48
Сообщение
#142
|
|
SALT LAKE 2002 Группа: Posters Сообщений: 2,129 Регистрация: 2.1.2007 Из: г. Цивильск. Пользователь №: 4,562 |
есть такой вопрос. Программа работает правильно, значение находит верно, оно совпадает с бибилотечной функцией, но при больших значениях n происходит переполнение памяти, как можно облегчить программу, чтобы она работала так же правильно? Диапазон допустимых значений входных данных таков: 1<x<1, 1=<n<=9
Код Program var3;
var slag,x, chisl, znam, arc, sum,bib : real; n, i, z : integer; begin writeln('vvedite X and N'); readln(x,n); if (x>=1) or (x<=-1) or (x=0) then writeln('Ukazannoe znachenie nedopustimo') else begin bib:=0; sum := 0; for i := 1 to n do begin arc := 0; znam := 1; slag := 0; z := 1; chisl:=x*i; repeat slag := (chisl * z) / znam; arc := arc + slag; chisl := chisl * x * x * i * i; znam := znam + 2; z := z * (-1); until (abs(slag/arc) < 1e-10); sum := sum + arc; bib:=bib+arctan(x*i); end; writeln('iskomaya summa ravna ',sum:0:11); writeln('bibliotechnaya funkcia ',bib:0:11); end; readln; end. -------------------- Побеждает тот, кто знает правила игры.
|
|
|
Oct 7 2007, 22:50
Сообщение
#143
|
|
Продвинутый пользователь Группа: Posters Сообщений: 177 Регистрация: 1.12.2006 Пользователь №: 3,584 |
есть такой вопрос. Программа работает правильно, значение находит верно, оно совпадает с бибилотечной функцией, но при больших значениях n происходит переполнение памяти, как можно облегчить программу, чтобы она работала так же правильно? Диапазон допустимых значений входных данных таков: 1<x<1, 1=<n<=9 Код Program var3; var slag,x, chisl, znam, arc, sum,bib : real; n, i, z : integer; begin writeln('vvedite X and N'); readln(x,n); if (x>=1) or (x<=-1) or (x=0) then writeln('Ukazannoe znachenie nedopustimo') else begin bib:=0; sum := 0; for i := 1 to n do begin arc := 0; znam := 1; slag := 0; z := 1; chisl:=x*i; repeat slag := (chisl * z) / znam; arc := arc + slag; chisl := chisl * x * x * i * i; znam := znam + 2; z := z * (-1); until (abs(slag/arc) < 1e-10); sum := sum + arc; bib:=bib+arctan(x*i); end; writeln('iskomaya summa ravna ',sum:0:11); writeln('bibliotechnaya funkcia ',bib:0:11); end; readln; end. ну так а что ты хотел Real у нас диапазон от скольки до сколько? /me думает такс гдето у мну была таблица со значениями типов используй тип данных с большим диапозоном -------------------- Жизнь такая штука........ от неё умерают!!!
|
|
|
Oct 8 2007, 18:58
Сообщение
#144
|
|
SALT LAKE 2002 Группа: Posters Сообщений: 2,129 Регистрация: 2.1.2007 Из: г. Цивильск. Пользователь №: 4,562 |
Позвольте спросить, а какой? Чтобы вещественный и большой диапазон, может longreal
-------------------- Побеждает тот, кто знает правила игры.
|
|
|
Oct 10 2007, 00:39
Сообщение
#145
|
|
Пользователь Группа: Posters Сообщений: 116 Регистрация: 22.5.2006 Из: Чебоксары Пользователь №: 616 |
есть такой вопрос. Программа работает правильно, значение находит верно, оно совпадает с бибилотечной функцией, но при больших значениях n происходит переполнение памяти, как можно облегчить программу, чтобы она работала так же правильно? Диапазон допустимых значений входных данных таков: 1<x<1, 1=<n<=9 есть подозрение, что переполнение происходит, когда x*n выходит из диапазона -1<x<1. Для x>1 и x<-1 другие разложения в ряд.
|
|
|
Oct 10 2007, 21:58
Сообщение
#146
|
|
Новичок Группа: Members Сообщений: 5 Регистрация: 5.10.2007 Из: Чебоксары Пользователь №: 10,032 |
|
|
|
Oct 11 2007, 01:58
Сообщение
#147
|
|
Пользователь Группа: Posters Сообщений: 116 Регистрация: 22.5.2006 Из: Чебоксары Пользователь №: 616 |
|
|
|
Oct 13 2007, 06:39
Сообщение
#148
|
|
Да прибудет с тобой сила... Группа: Posters Сообщений: 1,180 Регистрация: 21.5.2006 Из: г.п. Урмары :) Пользователь №: 611 |
народ помогите плиз прогу в QBasic'е надо написать: дан двумерный целочисленный массив A(m;n). Задается с экрана либо генерируется в пределах (-20;20) Требуется найти среднее арифметическое каждого столбца ну вот а мне бы решение задачи этой в паскале. Сообщение отредактировал Sandro - Oct 13 2007, 06:39 -------------------- ххх (21:01:35 6/08/2008)
Слу, в каком возрасте у маленьких девочек отрастают мозги? © |
|
|
Oct 13 2007, 14:38
Сообщение
#149
|
|
SALT LAKE 2002 Группа: Posters Сообщений: 2,129 Регистрация: 2.1.2007 Из: г. Цивильск. Пользователь №: 4,562 |
зачем менять тип данных, если точность вычислений от этого не изменится (она жестко задана в программе = 1e-10), и ей не приходится оперировать такими большими значениями, которые бы не поместились в тип real? Может дело в большом количестве повторений циклов? В памяти не умещается.... -------------------- Побеждает тот, кто знает правила игры.
|
|
|
Oct 13 2007, 18:05
Сообщение
#150
|
|
Пользователь Группа: Posters Сообщений: 116 Регистрация: 22.5.2006 Из: Чебоксары Пользователь №: 616 |
Может дело в большом количестве повторений циклов? В памяти не умещается.... по-моему, это все же связано с тем, что ограничение ты задаешь для X, а арктангенс вычисляешь для X*I (I=1..N) при помощи ряда, который сходится только если аргумент в диапазоне (-1, 1). когда X*I выходит из этого диапазона, значения в переменных arc, chisl и slag должны довольно быстро расти и, возможно, переполнение происходит, когда одна из них уже не помещается в тип real.очень большое кол-во циклов (бесконечное) можно получить, задав значения X и N равными 1, будет ли переполнение в этом случае или программа просто "зависнет"? Сообщение отредактировал pavel - Oct 13 2007, 18:06 |
|
|
Oct 13 2007, 18:28
Сообщение
#151
|
|
SALT LAKE 2002 Группа: Posters Сообщений: 2,129 Регистрация: 2.1.2007 Из: г. Цивильск. Пользователь №: 4,562 |
очень большое кол-во циклов (бесконечное) можно получить, задав значения X и N равными 1, будет ли переполнение в этом случае или программа просто "зависнет"? Программа зависла -------------------- Побеждает тот, кто знает правила игры.
|
|
|
Oct 14 2007, 00:10
Сообщение
#152
|
|
Новичок Группа: Members Сообщений: 5 Регистрация: 5.10.2007 Из: Чебоксары Пользователь №: 10,032 |
|
|
|
Oct 14 2007, 01:08
Сообщение
#153
|
|
Пользователь Группа: Posters Сообщений: 109 Регистрация: 18.1.2007 Из: Hell Пользователь №: 4,959 |
ну вот а мне бы решение задачи этой в паскале. Код program mas;
uses crt; const m= 4; n= 3; var a: array[1..4,1..3] of integer; b: array[1..3] of real; i,j: integer; begin clrscr; randomize; for i:= 1 to m do begin for j:= 1 to n do begin a[i,j]:= random(20) - 10; write(a[i,j]:4); end; writeln; end; writeln; for i:=1 to n do begin b[i]:=0; for j:=1 to m do b[i]:=b[i] + a[j,i]; b[i]:=b[i]/m; write(b[i]:4:1,' '); end; readln; end. -------------------- **********
|
|
|
Oct 14 2007, 12:25
Сообщение
#154
|
|
SALT LAKE 2002 Группа: Posters Сообщений: 2,129 Регистрация: 2.1.2007 Из: г. Цивильск. Пользователь №: 4,562 |
С какими входными данными она виснет? Что-то не желает оня у меня глючить, может она у тебя не глючит а просто ряд не сходится ну или долго не сходится?! Читай цитату, на которую я ответил - программа зависла при входных данных 1 и 1 А вообще, программа работает, только не может оперировать большими числами, появляется ошибка 205: "Floating point overflow" -------------------- Побеждает тот, кто знает правила игры.
|
|
|
Oct 14 2007, 12:55
Сообщение
#155
|
|
PAUK-NET.RU TEAM Группа: Admin Сообщений: 4,715 Регистрация: 11.7.2005 Из: ЮЗР Пользователь №: 3 |
|
|
|
Oct 14 2007, 13:59
Сообщение
#156
|
|
SALT LAKE 2002 Группа: Posters Сообщений: 2,129 Регистрация: 2.1.2007 Из: г. Цивильск. Пользователь №: 4,562 |
По условию задачи они недопустимы, да и ряд, очевидно, не сходится (числитель растёт значительно быстрее знаменателя). Да это всё понятно, но вот если например взять x=0.9 и n=3, то произойдёт ошибка переполнения с плавающей точкой... есть ещё предположение, что сама программа несовершенна, может быть можно её как-то упростить, чтобы памяти меньше занимала? Сообщение отредактировал Bjorndalen - Oct 14 2007, 14:01 -------------------- Побеждает тот, кто знает правила игры.
|
|
|
Oct 20 2007, 18:29
Сообщение
#157
|
|
Устаревший Дракон Группа: Global moder Сообщений: 1,579 Регистрация: 10.10.2005 Из: NChK Пользователь №: 100 |
Код bib:=0; bib:=bib+arctan(x*i); writeln('bibliotechnaya funkcia ',bib:0:11); замени просто на Код writeln('bibliotechnaya funkcia ',arctan(x*i):0:11) потом Код slag := (chisl * z) / znam; z := z * (-1); замени на Код slag := (chisl * (-1)) / znam; это так...для экономии чего-нибудь))) Сообщение отредактировал AndrewDragon - Oct 20 2007, 18:30 -------------------- Атдам наски в хорошие руки. Цвет мокрый асфальт. Запах мокрые ноги. Пробег 17 км. На ходу. Требуют стирки. Вывертыш. и почему вам 17 лет?.. |
|
|
Oct 20 2007, 20:29
Сообщение
#158
|
|
SALT LAKE 2002 Группа: Posters Сообщений: 2,129 Регистрация: 2.1.2007 Из: г. Цивильск. Пользователь №: 4,562 |
Код slag := (chisl * z) / znam; z := z * (-1); замени на Код slag := (chisl * (-1)) / znam; это так...для экономии чего-нибудь))) Эту операцию я выполнял, но почему-то результат выполнения программы не сошёлся с данными библиотечной функции -------------------- Побеждает тот, кто знает правила игры.
|
|
|
Nov 20 2007, 21:37
Сообщение
#159
|
|
Да прибудет с тобой сила... Группа: Posters Сообщений: 1,180 Регистрация: 21.5.2006 Из: г.п. Урмары :) Пользователь №: 611 |
1)перевод введенного числа в двоичную(или в 8,16 ричную) систему счисления
2)в римскую систему примерно понимаю что в цикле, массив. но хз как. -------------------- ххх (21:01:35 6/08/2008)
Слу, в каком возрасте у маленьких девочек отрастают мозги? © |
|
|
Nov 20 2007, 22:59
Сообщение
#160
|
|
Супер постер Группа: Local moder Сообщений: 888 Регистрация: 23.10.2005 Из: п.Кугеси Пользователь №: 106 |
1)перевод введенного числа в двоичную(или в 8,16 ричную) систему счисления 2)в римскую систему примерно понимаю что в цикле, массив. но хз как. http://forum.sources.ru/index.php?showtopic=42165 |
|
|
Текстовая версия | Сейчас: 13th May 2024 - 11:55 |