Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.09.2011, 20:35   #1
ivan.tiran
Форумчанин
 
Аватар для ivan.tiran
 
Регистрация: 24.08.2011
Сообщений: 138
По умолчанию Программа по вычислению объёма функции z=x^2+y^2

Прошу прощения, что задаю вопрос в разделе "Паскаль". Мне нужен раздел "Fortran", а его здесь нет. Но вы прогеры умные, думаю, мне поможете.
Вот код:
Код:
		program prog
		real*8 s(0:10000,0:10000)
		real*8 x1(10000),x(10000),y1(10000),y(10000)
		real*8 dlina,shag,v
		integer*4 n,i,j
		x1(0)=0
		y1(0)=x1(0)
		v=0
		print*,'Vvedite dlinu uchastka'
		read(*,*)dlina
		print*,'Vvedite shag'
		read(*,*)shag
		n=dlina/shag
		
		
		do i=1,n
		x1(i)=x1(i-1)+shag/2
		x(i)=x1(i)
		print*,'x[',i,']=',x(i)
		x1(i)=x1(i)+shag/2
		enddo
		
		do j=1,n
		y1(j)=y1(j-1)+shag/2
		y(j)=y1(j)
		print*,'y[',j,']=',y(j)
		y1(j)=y1(j)+shag/2
		enddo
		
		
		do i=1,n
		do j=1,n
		s(i,j)=(y(i)**2)+(x(j)**2)*(shag**2)
		v=v+s(i,j)
		enddo 
		enddo
		print*,v
      end program prog
Может я ослеп и не вижу простейшей ошибки. Но в чём причина не могу понять. Когда заполняю массив с иксами, то шаг начинается с 0,5, как мне и нужно. А игрек не с 0,5, а 1,5. Если меняю местами циклы, то такая же ерунда происходит с точностью наоборот. Пробовал в один цикл записывать - там такая же ерунда.



________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 28.09.2011 в 11:52.
ivan.tiran вне форума Ответить с цитированием
Старый 27.09.2011, 20:36   #2
ivan.tiran
Форумчанин
 
Аватар для ivan.tiran
 
Регистрация: 24.08.2011
Сообщений: 138
По умолчанию

Да, для примера беру длину отрезка за 10, а шаг за 1.
ivan.tiran вне форума Ответить с цитированием
Старый 27.09.2011, 20:56   #3
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,814
По умолчанию

В вузовских старых учебниках по МатАнализу (автор Демидович) есть в конце примеры программ на фортране. Думаю, можете там поискать.
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace вне форума Ответить с цитированием
Старый 27.09.2011, 23:03   #4
Anatole
Форумчанин
 
Аватар для Anatole
 
Регистрация: 07.04.2009
Сообщений: 245
По умолчанию

Я с фортраном работал где-то в конце 80-х. И как помнится компилятор не контролирует выход индексов за пределы массива и индексация массива начинается с 1. Проверте не выходят ли у вас индексы за пределы массива при i или j=1
Всякое безобразие должно быть единообразным. Тогда это называется порядком.
Anatole вне форума Ответить с цитированием
Старый 28.09.2011, 02:52   #5
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

Цитата:
Сообщение от Anatole Посмотреть сообщение
компилятор не контролирует выход индексов за пределы массива и индексация массива начинается с 1. Проверте не выходят ли у вас индексы за пределы массива при i или j=1
Именно так.
У автора темы без тени сомнения использует x1(0) и y1(0) - а их не существует. В цикле же следующий элемент считается через предыдущий, и цикл начинается с первого. Нужно сменить описания массивов с
x1(10000)
на
x1(0:10000)

[offtop]С Фортраном вообще хохма.. Как-то раз я испортил себе единицу, передавая ее в параметрах, и дня два искал причину совершенно непонятного поведения программы [/offtop]
Предпочитаю на "ты".
TinMan вне форума Ответить с цитированием
Старый 28.09.2011, 19:58   #6
ivan.tiran
Форумчанин
 
Аватар для ivan.tiran
 
Регистрация: 24.08.2011
Сообщений: 138
По умолчанию

Спасибо, всё работает.
ivan.tiran вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача про округление объёма проданной газировки [Паскаль] balla Помощь студентам 0 04.12.2010 11:24
Вопрос, по вычислению стажа работы с типом Date Sfera БД в Delphi 4 04.10.2010 15:57
Программа на СИ++, используя функции работы с файлами и функции <string.h> Аня Popova Фриланс 9 13.09.2010 15:52
Подсчёт объёма отправленных данных в TClientSocket Cold_Night Работа с сетью в Delphi 0 06.03.2010 12:56
программа по вычислению последовательности чисел crystalcat Помощь студентам 3 03.11.2009 22:59