IPB

Здравствуйте, гость ( Вход | Регистрация )

> Программирование Turbo Pascal 7 и Delphi 7, Обращайтесь кто интересуется
DAN
сообщение Aug 24 2005, 14:35
Сообщение #1


Мега постер
******

Группа: Posters
Сообщений: 1,337
Регистрация: 15.8.2005
Из: Москва
Пользователь №: 45



Можете сдесь задавать свои вопросы по этой теме.


--------------------
http://www.fds-net.ru Филиал Дома Студента МГУ
Вернуться к началу страницы
 
+Цитировать сообщение
10 страниц V  « < 6 7 8 9 10 >  
Создать новую тему
Ответов (140 - 159)
Daniilka
сообщение Sep 25 2007, 22:16
Сообщение #141


Пользователь
**

Группа: Posters
Сообщений: 53
Регистрация: 29.9.2006
Пользователь №: 2,126



Цитата(Bjorndalen @ Sep 20 2007, 19:41) *
Но ведь в таком случае получится не один условный оператор, а несколько wink.gif А в условии задачи говорится, что нужен один условный оператор и без использования OR и AND


Присвоить все в булинову переменную и уже ее без 'or' и 'and' пихнуть в IF.


ЗЫ: Вы вообще о чем, граждане?
Вернуться к началу страницы
 
+Цитировать сообщение
Bjorndalen
сообщение 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.


--------------------
Побеждает тот, кто знает правила игры.
Вернуться к началу страницы
 
+Цитировать сообщение
MadDog.er
сообщение Oct 7 2007, 22:50
Сообщение #143


Продвинутый пользователь
***

Группа: Posters
Сообщений: 177
Регистрация: 1.12.2006
Пользователь №: 3,584



Цитата(Bjorndalen @ Oct 7 2007, 17:48) *
есть такой вопрос. Программа работает правильно, значение находит верно, оно совпадает с бибилотечной функцией, но при больших значениях 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 думает такс гдето у мну была таблица со значениями типов
используй тип данных с большим диапозоном


--------------------
Жизнь такая штука........ от неё умерают!!!
Вернуться к началу страницы
 
+Цитировать сообщение
Bjorndalen
сообщение Oct 8 2007, 18:58
Сообщение #144


SALT LAKE 2002
******

Группа: Posters
Сообщений: 2,129
Регистрация: 2.1.2007
Из: г. Цивильск.
Пользователь №: 4,562



Позвольте спросить, а какой? Чтобы вещественный и большой диапазон, может longreal smile.gif


--------------------
Побеждает тот, кто знает правила игры.
Вернуться к началу страницы
 
+Цитировать сообщение
pavel
сообщение Oct 10 2007, 00:39
Сообщение #145


Пользователь
**

Группа: Posters
Сообщений: 116
Регистрация: 22.5.2006
Из: Чебоксары
Пользователь №: 616



Цитата(Bjorndalen @ Oct 7 2007, 17:48) *
есть такой вопрос. Программа работает правильно, значение находит верно, оно совпадает с бибилотечной функцией, но при больших значениях n происходит переполнение памяти, как можно облегчить программу, чтобы она работала так же правильно? Диапазон допустимых значений входных данных таков: 1<x<1, 1=<n<=9
есть подозрение, что переполнение происходит, когда x*n выходит из диапазона -1<x<1. Для x>1 и x<-1 другие разложения в ряд.
Вернуться к началу страницы
 
+Цитировать сообщение
AlRunner
сообщение Oct 10 2007, 21:58
Сообщение #146


Новичок
*

Группа: Members
Сообщений: 5
Регистрация: 5.10.2007
Из: Чебоксары
Пользователь №: 10,032



Цитата(Bjorndalen @ Oct 8 2007, 19:58) *
Позвольте спросить, а какой? Чтобы вещественный и большой диапазон, может longreal smile.gif


Используй тип double!
Вернуться к началу страницы
 
+Цитировать сообщение
pavel
сообщение Oct 11 2007, 01:58
Сообщение #147


Пользователь
**

Группа: Posters
Сообщений: 116
Регистрация: 22.5.2006
Из: Чебоксары
Пользователь №: 616



Цитата(AlRunner @ Oct 10 2007, 22:58) *
Используй тип double!
зачем менять тип данных, если точность вычислений от этого не изменится (она жестко задана в программе = 1e-10), и ей не приходится оперировать такими большими значениями, которые бы не поместились в тип real?
Вернуться к началу страницы
 
+Цитировать сообщение
Sandro
сообщение Oct 13 2007, 06:39
Сообщение #148


Да прибудет с тобой сила...
******

Группа: Posters
Сообщений: 1,180
Регистрация: 21.5.2006
Из: г.п. Урмары :)
Пользователь №: 611



Цитата(Kumarr @ Oct 12 2007, 16:31) *
народ помогите плиз прогу в QBasic'е надо написать: дан двумерный целочисленный массив A(m;n). Задается с экрана либо генерируется в пределах (-20;20) Требуется найти среднее арифметическое каждого столбца

ну вот smile.gif а мне бы решение задачи этой в паскале.

Сообщение отредактировал Sandro - Oct 13 2007, 06:39


--------------------
ххх (21:01:35 6/08/2008)
Слу, в каком возрасте у маленьких девочек отрастают мозги? ©
Вернуться к началу страницы
 
+Цитировать сообщение
Bjorndalen
сообщение Oct 13 2007, 14:38
Сообщение #149


SALT LAKE 2002
******

Группа: Posters
Сообщений: 2,129
Регистрация: 2.1.2007
Из: г. Цивильск.
Пользователь №: 4,562



Цитата(pavel @ Oct 11 2007, 02:58) *
зачем менять тип данных, если точность вычислений от этого не изменится (она жестко задана в программе = 1e-10), и ей не приходится оперировать такими большими значениями, которые бы не поместились в тип real?

Может дело в большом количестве повторений циклов? В памяти не умещается....


--------------------
Побеждает тот, кто знает правила игры.
Вернуться к началу страницы
 
+Цитировать сообщение
pavel
сообщение Oct 13 2007, 18:05
Сообщение #150


Пользователь
**

Группа: Posters
Сообщений: 116
Регистрация: 22.5.2006
Из: Чебоксары
Пользователь №: 616



Цитата(Bjorndalen @ Oct 13 2007, 15:38) *
Может дело в большом количестве повторений циклов? В памяти не умещается....
по-моему, это все же связано с тем, что ограничение ты задаешь для X, а арктангенс вычисляешь для X*I (I=1..N) при помощи ряда, который сходится только если аргумент в диапазоне (-1, 1). когда X*I выходит из этого диапазона, значения в переменных arc, chisl и slag должны довольно быстро расти и, возможно, переполнение происходит, когда одна из них уже не помещается в тип real.
очень большое кол-во циклов (бесконечное) можно получить, задав значения X и N равными 1, будет ли переполнение в этом случае или программа просто "зависнет"?

Сообщение отредактировал pavel - Oct 13 2007, 18:06
Вернуться к началу страницы
 
+Цитировать сообщение
Bjorndalen
сообщение Oct 13 2007, 18:28
Сообщение #151


SALT LAKE 2002
******

Группа: Posters
Сообщений: 2,129
Регистрация: 2.1.2007
Из: г. Цивильск.
Пользователь №: 4,562



Цитата(pavel @ Oct 13 2007, 19:05) *
очень большое кол-во циклов (бесконечное) можно получить, задав значения X и N равными 1, будет ли переполнение в этом случае или программа просто "зависнет"?

Программа зависла sad.gif


--------------------
Побеждает тот, кто знает правила игры.
Вернуться к началу страницы
 
+Цитировать сообщение
AlRunner
сообщение Oct 14 2007, 00:10
Сообщение #152


Новичок
*

Группа: Members
Сообщений: 5
Регистрация: 5.10.2007
Из: Чебоксары
Пользователь №: 10,032



Цитата(Bjorndalen @ Oct 13 2007, 19:28) *
Программа зависла sad.gif


С какими входными данными она виснет? Что-то не желает оня у меня глючить, может она у тебя не глючит а просто ряд не сходится ну или долго не сходится?!
Вернуться к началу страницы
 
+Цитировать сообщение
dimka999
сообщение Oct 14 2007, 01:08
Сообщение #153


Пользователь
**

Группа: Posters
Сообщений: 109
Регистрация: 18.1.2007
Из: Hell
Пользователь №: 4,959



Цитата(Sandro @ Oct 13 2007, 07:39) *
ну вот smile.gif а мне бы решение задачи этой в паскале.



Код
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.


--------------------
**********
Вернуться к началу страницы
 
+Цитировать сообщение
Bjorndalen
сообщение Oct 14 2007, 12:25
Сообщение #154


SALT LAKE 2002
******

Группа: Posters
Сообщений: 2,129
Регистрация: 2.1.2007
Из: г. Цивильск.
Пользователь №: 4,562



Цитата(AlRunner @ Oct 14 2007, 01:10) *
С какими входными данными она виснет? Что-то не желает оня у меня глючить, может она у тебя не глючит а просто ряд не сходится ну или долго не сходится?!

Читай цитату, на которую я ответил - программа зависла при входных данных 1 и 1 glare.gif А вообще, программа работает, только не может оперировать большими числами, появляется ошибка 205: "Floating point overflow"


--------------------
Побеждает тот, кто знает правила игры.
Вернуться к началу страницы
 
+Цитировать сообщение
SiMM
сообщение Oct 14 2007, 12:55
Сообщение #155


PAUK-NET.RU TEAM
Иконка группы

Группа: Admin
Сообщений: 4,715
Регистрация: 11.7.2005
Из: ЮЗР
Пользователь №: 3



Цитата(Bjorndalen @ Oct 14 2007, 13:25) *
программа зависла при входных данных 1 и 1 glare.gif
По условию задачи они недопустимы, да и ряд, очевидно, не сходится (числитель растёт значительно быстрее знаменателя).
Вернуться к началу страницы
 
+Цитировать сообщение
Bjorndalen
сообщение Oct 14 2007, 13:59
Сообщение #156


SALT LAKE 2002
******

Группа: Posters
Сообщений: 2,129
Регистрация: 2.1.2007
Из: г. Цивильск.
Пользователь №: 4,562



Цитата(SiMM @ Oct 14 2007, 13:55) *
По условию задачи они недопустимы, да и ряд, очевидно, не сходится (числитель растёт значительно быстрее знаменателя).

Да это всё понятно, но вот если например взять x=0.9 и n=3, то произойдёт ошибка переполнения с плавающей точкой... есть ещё предположение, что сама программа несовершенна, может быть можно её как-то упростить, чтобы памяти меньше занимала?

Сообщение отредактировал Bjorndalen - Oct 14 2007, 14:01


--------------------
Побеждает тот, кто знает правила игры.
Вернуться к началу страницы
 
+Цитировать сообщение
AndrewDragon
сообщение 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 лет?..
Вернуться к началу страницы
 
+Цитировать сообщение
Bjorndalen
сообщение Oct 20 2007, 20:29
Сообщение #158


SALT LAKE 2002
******

Группа: Posters
Сообщений: 2,129
Регистрация: 2.1.2007
Из: г. Цивильск.
Пользователь №: 4,562



Цитата(AndrewDragon @ Oct 20 2007, 19:29) *
Код
slag := (chisl * z) / znam;
z := z * (-1);

замени на
Код
slag := (chisl * (-1)) / znam;


это так...для экономии чего-нибудь)))

Эту операцию я выполнял, но почему-то результат выполнения программы не сошёлся с данными библиотечной функции unsure.gif


--------------------
Побеждает тот, кто знает правила игры.
Вернуться к началу страницы
 
+Цитировать сообщение
Sandro
сообщение Nov 20 2007, 21:37
Сообщение #159


Да прибудет с тобой сила...
******

Группа: Posters
Сообщений: 1,180
Регистрация: 21.5.2006
Из: г.п. Урмары :)
Пользователь №: 611



1)перевод введенного числа в двоичную(или в 8,16 ричную) систему счисления
2)в римскую систему
примерно понимаю что в цикле, массив. но хз как.


--------------------
ххх (21:01:35 6/08/2008)
Слу, в каком возрасте у маленьких девочек отрастают мозги? ©
Вернуться к началу страницы
 
+Цитировать сообщение
Gobbs
сообщение Nov 20 2007, 22:59
Сообщение #160


Супер постер
Иконка группы

Группа: Local moder
Сообщений: 888
Регистрация: 23.10.2005
Из: п.Кугеси
Пользователь №: 106



Цитата(Sandro @ Nov 20 2007, 21:37) *
1)перевод введенного числа в двоичную(или в 8,16 ричную) систему счисления
2)в римскую систему
примерно понимаю что в цикле, массив. но хз как.

http://forum.sources.ru/index.php?showtopic=42165
Вернуться к началу страницы
 
+Цитировать сообщение

10 страниц V  « < 6 7 8 9 10 >
ОтветитьСоздать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 28th April 2024 - 06:03