Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 13.05.2014, 12:20   #1 (permalink)
Андрей_1993
Новичок
 
Регистрация: 13.05.2014
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Написание программы по блок-схеме. Вопрос с выводом данных

Составил программу в Pascal ABC по блок-схеме. Создал файл ввода и вывода. Программа рабочая, но в файле вывода выдает те же цифры, которые вводятся в файле DAT. Подскажите в чем проблема? Заранее благодарю)

program diplom;
var f1,f2:text;
t_k0,t_g0,t_kk,w_0f,d,p_u,H_z,dH,dt,t_kj,t_kn,t,t_ g,dt_g,c_k,c_g,k_v,dt_k,H:real;
i,j,k,it,n:integer;
begin
assign(f1,'diplom.dat');
assign(f2,'diplom_1.res');
reset(f1);
rewrite(f2);
readln(f1,t_k0,t_g0,t_kk,w_0f,d,p_u,H_z,dH,dt);
n:=round(H_z/dH);
for j:=1 to n do
begin
t_kj:=t_k0;
end;
i:=0;
repeat
i:=i+1;
t:=dt*i;
t_g:=t_g0;
dt_g:=0;
writeln(f2,'t=',t:5:2);
for j:=1 to n do
begin
c_k:=0.59+(3.43*1e-3)*t_kj-(2.57*1e-6)*sqr(t_kj)+(8.18*1e-10)*exp(ln(t_kj)*3);
c_g:=1.312+(2.93*1e-4)*t_g;
end;
for k:=1 to it do
begin
k_v:=0.025*exp(ln(w_0f)*0.9)*exp(ln(t_g+0.5*dt_g+2 73)*0.3)/exp(ln(d)*0.75);
dt_k:=k_v*(t_kj-t_g-0.5*dt_g)*dt/(p_u*c_k+0.5*k_v*dt);
dt_g:=k_v*(t_kj-t_g-0.5*dt_k)*dH/(w_0f*c_g+0.5*k_v*dH);
end;
t_kj:=t_kj-dt_k;
t_g:=t_g+dt_g;
H:=dH*j;
writeln(f2,'H= ' ,H:6:5,'t_kj= ' ,t_kj:6:5, 't_g= ', t_g:6:5);
until t_kn<=t_kk;
close(f1);
close(f2);
end.
Миниатюры
1231.jpg   1232.jpg  
Андрей_1993 вне форума   Ответить с цитированием

Старый 13.05.2014, 12:20
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Посмотрите аналогичные темы на нашем форуме

Написание программы через процедуры и функции
Написание программы через процедуры и функции. Паскаль

Старый 13.05.2014, 12:23   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Выложите, пожалуйста, формулировку задания - без этого трудновато.
И да, прикрепите или просто скопируйте в пост текст входного файла.
Vladimir_S вне форума   Ответить с цитированием
Старый 13.05.2014, 12:43   #3 (permalink)
Андрей_1993
Новичок
 
Регистрация: 13.05.2014
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Мое задание не имеет четкой формулировки. Мне необходимо рассчитать процесс охлаждения кокса в Установке сухого тушения кокса на ЭВМ. Я прикрепил теоретический материал, где расписаны формулы и ручной расчет температур. Программа, написанная по блок-схеме должна работать так же, как и ручной расчет.

Файл с входными данными не прикрепляется, он в блокноте, я напишу здесь:

1000 180 250 0.644 0.065 450 7.9 0.15 120

Где:

1000 - начальная температура раскаленного кокса

180 - температура инертного газа, которым охлаждается кокс в установке

250 - конечная температура кокса после охлаждения

0.644 - фиктивная скорость газа через слой засыпки кокса в камере тушения

450 - насыпная плотность кокса

7.9 - высота слоя кокса в камере тушения

0.15 - высота элементарного слоя коксовой загрузки, принятая в расчета (указана в теории как "дельта H")

120 - элементарный интервал времени, также указанный в теоретических расчетах

Данные в файле ввода соответствуют readln(f1,t_k0,t_g0,t_kk,w_0f,d,p_u,H_z,dH,dt); каждый параметр расписан выше соответственно
Миниатюры
1-0001.jpg   1-0002.jpg   1-0003.jpg   1-0004.jpg   1-0005.jpg  

1-0006.jpg   1-0007.jpg  
Андрей_1993 вне форума   Ответить с цитированием
Старый 13.05.2014, 12:52   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Андрей_1993 Посмотреть сообщение
Файл с входными данными не прикрепляется
Прикрепляется, если ему либо дать расширение .txt, либо сохранить в Word'е в виде *.doc (*.docx), либо в Zip-архиве. Ну ладно, сойдет и так.
К сожалению, быстро не получится - нужно изучить представленный труд по расчету охлаждения кокса.
Vladimir_S вне форума   Ответить с цитированием
Старый 13.05.2014, 14:21   #5 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

М-да... Еще даже не начав разбираться в вопросах остывания кокса, а просто глядя на программу, вижу кое-где полную бредятину.
Это вот что такое, скажите на милость?
Код:
for j:=1 to n do
 begin
  t_kj:=t_k0;
 end;
Вы хоть представляете себе, что делает этот цикл? Объясняю: он n раз повторяет одну и ту же операцию - присвоение скалярной переменной t_kj значения скалярной переменной t_k0. И в чем глубинно-потаенный смысл этой ахинеи?
Догадываюсь, что имелось в виду. Видимо, следовало:
1. Оценить самое максимально-возможное значение величины n. Обозначим ее Nmax. Ее задать в виде константы:
Код:
Const
 Nmax=1000;
2. Переменную t_k задать в виде массива:
Код:
t_k:Array[0..Nmax] of Real;
3. Цикл присвоения исходных значений элементам массива записать так:
Код:
for j:=1 to n do
 begin
  t_k[j]:=t_k[0];
 end;
И это, я чувствую, только начало. В циклах вычисления c_k и c_g я опять вижу всё то же многократное повторение одной и той же операции.
Ладно, будем дальше разбираться.
А Вы, сударь, учите пока работу с массивами - тут у Вас явный пробел.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 13.05.2014, 14:33   #6 (permalink)
Андрей_1993
Новичок
 
Регистрация: 13.05.2014
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Сразу скажу - в программировании не силен, тех знаний что дали в университете для меня не достаточно оказалось. Программу писал с помощью своих конспектов и лабораторных работ с моих прошлых курсов обучения. Хочу снова научиться азов, но не знаю с чего начать и какой литературой пользоваться.
Андрей_1993 вне форума   Ответить с цитированием
Старый 13.05.2014, 14:42   #7 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Андрей_1993 Посмотреть сообщение
Сразу скажу - в программировании не силен, тех знаний что дали в университете для меня не достаточно оказалось. Программу писал с помощью своих конспектов и лабораторных работ с моих прошлых курсов обучения. Хочу снова научиться азов, но не знаю с чего начать и какой литературой пользоваться.
Литературы и в бумаге, и в Сети по тому же Паскалю - море. А как самоучка, дам Вам один совет - практика, практика и еще раз практика! Ставьте для себя задачки, пишите программы, отлаживайте (конечно, параллельно с чтением книжек и пособий).
Vladimir_S вне форума   Ответить с цитированием
Старый 13.05.2014, 14:55   #8 (permalink)
Андрей_1993
Новичок
 
Регистрация: 13.05.2014
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Дело в том что я не программист, но моя специальность требует от меня знаний базовых языков, умение их использовать для математического моделирования процессов и аппаратов химической технологии. В прошлых семестрах с программированием более менее справлялся. В данный момент у меня дипломирование, куда входит раздел расчета на ЭВМ. С теор расчетами технологии, чертежами и т.д... у меня проблем нету, но вот с программой явные неполадки. Сегодня приходил к консультанту насчет программы, но он сказал мне идти самому разбираться с программой..
Андрей_1993 вне форума   Ответить с цитированием
Старый 13.05.2014, 15:02   #9 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Андрей_1993 Посмотреть сообщение
Дело в том что я не программист
Я тоже. Я физик-экспериментатор.
Цитата:
Сообщение от Андрей_1993 Посмотреть сообщение
Сегодня приходил к консультанту насчет программы, но он сказал мне идти самому разбираться с программой..
И правильно. Так оно надежнее. Если есть время и желание - быстро научитесь, тем более уж Вам, инженеру-расчетчику, грех не расщелкать такую школьную ерундистику, как основы ЯП, в шесть секунд.
Успехов!

P.S. Я тоже еще с Вашей программой повожусь - но когда время будет. Возни тут, чувствую, много.
Vladimir_S вне форума   Ответить с цитированием
Старый 13.05.2014, 15:07   #10 (permalink)
Андрей_1993
Новичок
 
Регистрация: 13.05.2014
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Спасибо на добром слове)
Андрей_1993 вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 05:36.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.