Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 18.11.2011
Сообщений: 8

Помогите разобраться.

18.11.2011, 21:28. Показов 1584. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем!!!Помогите найти ошибку.Заранее спасибо)))
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
PROGRAM zam_capl;
uses crt;
label w1,w2,w3,w4;
const
n=100;            {количество точек}
z1=1.0;z2=0.1; {коэффициент теплопроводности/ плотность/ уд. Теплоёмкость}
s=0.001;s2=0.002; {коэффициент теплопроводности/плотность/уд. Теплота плавления}
t0=0;                   {температура замерзания воды  }
T1=50;lm=0;       {температура и радиус внутренней области капли}
l=100;T2=-50;     {температура и радиус внешней области капли}
VAR
Rl,dR,r,dt,dtm:real;
k,i,nt,nm,j:integer;
T,tt,td,TT1:array [0..n+1] of real ;
RR:array [0..200] of real ;
capl:text;
BEGIN
 assign(capl, 'c:\kapl50.dat');
 rewrite(capl);
 clrscr;
 dtm:=0.001;  dr:=l/n; nm:=trunc(n/l*lm);
FOR k:=1 TO n do begin
   T[k]:=T1; end;
   T[n]:=t0;
   T[n+1]:=T2;
   nt:=n; Rl:=dR*Nt; i:=0;
while i<100 do begin
    dt:=32;
    for k:=nm+1 to nt-1 do begin
       r:=l/n*k;
       td[k]:=z1/(dR*dR)*(T[k-1]*(1-dR/r)+T[k+1]*(1+dr/r)-2*T[k]);
       for j:=1 to 200 do begin
if T[j]+dt*td[j]>T[j-1]+dt*td[j-1] then dt:=dt/2 else goto w1;
if dt=0 then dt:=dtm ;
     w1:end;
  end;
for k:=1 to 200 do begin
  if T[nt-1]+dt*td[nt-1]<T[nt] then dt:=dt/2 else goto w2;
  if dt=0 then dt:=dtm ;
   w2:end;
for k:=nt+1 to n do begin
    r:=l/n*k;
    td[k]:=z2/(dR*dR)*(T[k-1]*(1-dR/r)+T[k+1]*(1+dr/r)-2*T[k]);
    for j:=1 to 500 do begin
    if T[j]+dt*td[j]>T[j-1]+dt*td[j-1] then dt:=dt/2 else goto w3;
         if dt=0 then dt:=dtm;
 w3:end; end;
 for j:=1 to 200 do begin
   if T[nt+1]+dt*td[nt+1]>T[nt] then dt:=dt/2 else goto w4;
   if dt=0 then dt:=dtm ;
w4:end;
   Rl:=Rl-(s*(T[nt]-T[nt-1])-s2*(T[nt+1]-T[nt]))*dt;
   nt:=trunc(Rl/dR);
   RR[J]:=RL;
   if T[nt]<>t0 then T[nt]:=t0;
   td[nt]:=0;
   T[nt+1]:=(T[nt+2]+t0)/2;
   T[nt-1]:=(T[nt-2]+t0)/2;
   for k:=0 to n do
begin
     T[k]:=T[k]+td[k]*dt;
end;
     i:=i+1;
     T[0]:=T[1]
  end;
   for i:=0 to n do begin
     writeln (capl,RR[n],' ',T[i]);
   end; close(capl);
end.
Нужно составить блок-схему согласно алгоритму.Выходные данные должны быть представлены в графической форме.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.11.2011, 21:28
Ответы с готовыми решениями:

Помогите разобраться в коде
Помогите в коде разобраться. const dx :array of integer = (0, -1, 0, 1); dy :array of integer = (1, 0, -1, 0); var a...

Помогите разобраться в коде программы
Здравствуйте Помогите разобраться в коде программы (НЕ МОГУ ПОНЯТЬ КАК В ПРОГРАММЕ РАБОТАЮТ МАССИВЫ И ПРОЦЕДУРЫ ) ОЧЕНЬ СРОЧНО НУЖНО )) ...

Решение задачи усовершенствованным методом Эйлера. Error 207. Помогите разобраться
Помогите, пожалуйста, решение задачи усовершенствованным методом Эйлера:

14
albor
18.11.2011, 23:38
В строке 54 RR[J]:=RL; J всегда равно 200. По моему, непорядок..
0 / 0 / 0
Регистрация: 18.11.2011
Сообщений: 8
19.11.2011, 12:50  [ТС]
Ну и что тут надо поменять???
0
albor
19.11.2011, 12:56
Вообще то Вы автор, Вам лучше знать, но мне кажется, что главный цикл у Вас по i , значит надо индекс i использовать.

RR[i]:=RL;
0 / 0 / 0
Регистрация: 18.11.2011
Сообщений: 8
19.11.2011, 15:36  [ТС]
Если б я был автором,то всё было бы проще)))
Вот такая ошибка вылазит:
»*Ошибка: 102 - выход за границы диапазона изменения индекса 0..101 (Program1.pas, строка 33)
0
albor
19.11.2011, 17:14
Смотрим:
0033: if T[j]+dt*td[j]>T[j-1]+dt*td[j-1] then dt:=dt/2 else goto w1;

в этой строке есть T[j] и td[j]. Они объявлены как массивы 0..n+1 где n=100.

А в 32 строке for j:=1 to 200 do.. еще вопросы будут?
0 / 0 / 0
Регистрация: 18.11.2011
Сообщений: 8
20.11.2011, 13:02  [ТС]
И что мне исправить надо????
0
albor
20.11.2011, 16:49
Надо разобраться в чем смысл этой программы. Почему выходные данные выводятся из расчета 100 значений, а в теле проги что-то вычисляется в диапазоне 200 значений?
Причем массивы рассчитаны на 100. :o
0 / 0 / 0
Регистрация: 18.11.2011
Сообщений: 8
20.11.2011, 19:38  [ТС]
вообще это компьютерное моделирование замерзания капли.текст данной программы взят с книги,но почему-то не работает)))
0
albor
20.11.2011, 20:44
Я бы попробовал заменить во всех циклах for .. to 200 на 100
Хотя разбираться во всей этой физике меня, честно говоря, ломает.
Почему расчеты на 200 точек, может это опечатка, а может проверка Вашей внимательности? :o
0 / 0 / 0
Регистрация: 18.11.2011
Сообщений: 8
20.11.2011, 20:57  [ТС]
»*Ошибка: 102 - выход за границы диапазона изменения индекса 0..101 (Program1.pas, строка 57)
0
albor
20.11.2011, 22:16
А глаза поднять на строку 57 самому! Там что-то считается в ячейку массива n+2, при n=100 это получается попытка записать в 102-й элемент. А их всего 101! Авария! Кто так пишет! :mad:
Чтобы раз и навсегда избавиться от этих проблем советую в секции var исправить размерности массивов на [0..201]. По крайней мере эта ошибка исчезнет.

вместо
T,tt,td,TT1:array [0..n+1] of real ;

написать
T,tt,td,TT1:array [0..201] of real ;
TheCat
20.11.2011, 22:29
И вообще названия переменных - тт... тд!!! Черт ногу сломит!.. Толи дело tZamerzanya, KolvoTochek, KakayaToHren... Конечно, писать дольше, но ведь будет понятнее!
0 / 0 / 0
Регистрация: 18.11.2011
Сообщений: 8
21.11.2011, 15:16  [ТС]
Спасибо albor!!!
0
0 / 0 / 0
Регистрация: 18.11.2011
Сообщений: 8
21.11.2011, 15:18  [ТС]
[QUOTE=albor;922298]Кто так пишет! :mad:

Этот текст проги взял с какого-то заумного учебника)))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.11.2011, 15:18
Помогаю со студенческими работами здесь

Помогите разобраться построчно что делает данная программа
помогите разобраться построчно что делает данная программа program z2; uses crt; var n,a,b,c,i,d,j,k,p,l:integer; t:real; ...

Помогите пожалуйста, не могу разобраться как сохранять файл, например в формате bmp?
Помогите пожалуйста, не могу разобраться как сохранять файл, например в формате bmp? uses graphabc; var pic: picture; y:...

Помогите разобраться в коде модели Марковица
Дали вот такой код, но я не могу в нем разобраться. Преподаватель сказала, что не разбирается. Помогите пожалуйста. program riski; ...

Совершенно запуталась с операторными скобками (BEGIN и END). Помогите разобраться
Совершенно запуталась с BEGINами и ENDами.. помогите пожалуйста program echo(input,output); var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o: real;...

Помогите разобраться.
В чем разница между turbo pascal и free pascal? ну кроме названия и то что free пошёл у меня на windows 7 (x86)


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru