IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Помогите вывести результаты программы в виде таблицы
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 8
Пол: Мужской

Репутация: -  0  +


Нужно было составить программу для расчета статического и динамического моментов электродвигателя. У меня вот что получилось:
Program ControlWork2;
Uses crt;
Const
R=2,9; {soprotivlenie}
I=4,3; {sila toka}
U=220; {napryazhenie}
w=157; {chastota}
J=0,04; {moment inercii}
name='C:\workdir\out.txt';
Var
t,K,Md,Mc:real;
fout:text;
Function Md:real; {moment dvizheniya}
Begin
K:=(U-I*R)/w;
Md:=K*U/R-K*w/R;
End;
Function Mc:real; {moment staticheskij}
Write('Vvedite vremya t:');
Readln(t);
Mc:=J-w/t+Md;
End;
End.

А мне еще надо вывести Md,Mc,w,t в виде таблицы, а также записать файл исходных данных. Как это сделать? Подскажите, пожалуйста. Заранее огромное спасибо!

М
Тегами для подсветки синтаксиса пользоваться не забывай...



Сообщение отредактировано: volvo -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Цитата
У меня вот что получилось:
А что, собственно, у тебя получилось? Ты что, где-то что-то считаешь? Ты пока описываешь только функции (причем, описываешь их неправильно), а вот когда ты будешь их вызывать, тогда и будем говорить о выводе...

Ты программу-то свою компилировать пробовал? Кто ж запятой пользуется в вещественных числах? Вообще-то для этого есть точка. Кто дает одинаковые имена функции и переменной? Паскаль такого не позволяет...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





Группа: Пользователи
Сообщений: 8
Пол: Мужской

Репутация: -  0  +


Сори за ошибки, просто плохо разбираюсь в программировании. Немного исправил код:
Код

Program ControlWork2;
Uses crt;
Const
R=2.9; {soprotivlenie}
I=4.3; {sila toka}
U=220; {napryazhenie}
w=157; {chastota}
J=0.04; {moment inercii}
Var
t,K,Md,Mc,n:real;
Function D(K:real):real; {moment dvizheniya}
Begin
K:=(U-I*R)/w;
Md:=K*U/R-K*w/R;
End;
Function S(w:real):real; {moment staticheskij}
Begin
Mc:=w*J;
End;
begin
t:=J*W/(D(K)-S(w));
writeln (t:6:4, '|', W:8:1, '|', D(K):8:4, '|', S(w):8:4;);
End;
End.

Теперь при компиляции курсор останавливается на 3-й снизу строке и выходит следующее сообщение: error: 89 ")" expected. В чем ошибки?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гуру
*****

Группа: Пользователи
Сообщений: 1 220
Пол: Мужской

Репутация: -  16  +


Цитата
S(w):8:4;);

Тебе же прямо, честно и откровенно говорят: "Скобку хочу!" А ты ему (компилятору) ; подсовываешь.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5





Группа: Пользователи
Сообщений: 8
Пол: Мужской

Репутация: -  0  +


Я убрал ту точку с запятой, но компилятор все равно выдает эту же ошибку (error: 89 ")" expected) и подчеркивает вот это место:
writeln (t:6:4, '|', W:8:1, '|', D(K):8:4, '|', S(w):8:4);

Сообщение отредактировано: Smartic -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Цитата(Smartic @ 19.05.2009 9:53) *

Я убрал ту точку с запятой, но компилятор все равно выдает эту же ошибку (error: 89 ")" expected) и подчеркивает вот это место:
writeln (t:6:4, '|', W:8:1, '|', D(K):8:4, '|', S(w):8:4);
У тебя переменная W - целая. У целой переменной только один формат. Убери ":1".
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


извиняюсь - не переменная, а константа W


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8





Группа: Пользователи
Сообщений: 8
Пол: Мужской

Репутация: -  0  +


Действительно, вот в таком виде программа уже компилируется:
Код

Program ControlWork2;
Uses crt;
Const
R=2.9; {soprotivlenie}
I=4.3; {sila toka}
U=220; {napryazhenie}
w=157; {chastota}
J=0.04; {moment inercii}
Var
t,K,Md,Mc,n:real;
Function D(K:real):real; {moment dvizheniya}
Begin
K:=(U-I*R)/w;
Md:=K*U/R-K*w/R;
End;
Function S(w:real):real; {moment staticheskij}
Begin
Mc:=w*J;
End;
begin
t:=J*W/(D(K)-S(w));
writeln (t:6:4, '|', W:8, '|', D(K):8:4, '|', S(w):8:4);
End.

Что теперь еще нужно сделать, чтобы результаты величин t, w, Mc, Md выводились на экран в виде таблицы? Кроме того, необходимо записать файл исходных данных (в формате txt).

Сообщение отредактировано: Smartic -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Профи
****

Группа: Пользователи
Сообщений: 652
Пол: Мужской
Реальное имя: Алексей

Репутация: -  20  +


Ну чтобы записать исходные дадные для начала:
1) надо создать этот файл и исходными данными.
2)инициализировать его в программе.
Assign(имя фалла,'путь к файлу');
3)Открыть для чтрения
Reset(имя файла);
4) Считывать из файла твои данные и записывать в твои переменные.
5)и наконец закрыть файл.

А вообще я бы на твоем месте создал бы двухмерный массив и запихнул бы туда все и сразу,а потом просто распечатал бы массив.
P.s.Обычно имя файла берут fin,если входной и fout,если для вывода в файл.И fin и fout внутренние текстовые файлы,поэтому путь надо указывать с названием самого файла, где храняться данные.
Например;
asign(fin,'C:\Tpascal\test1.txt');
в само программе ты будеш работать с fin а исходный файл будет не тронут.
(грубо говоря ты все данные из теста переписываеш в фин и с ними работаеш,чтоб не испортить исходный файл)

Сообщение отредактировано: Krjuger -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10





Группа: Пользователи
Сообщений: 8
Пол: Мужской

Репутация: -  0  +


Помогите, пожалуйста, с кодом программы, а то у меня ничего не получается. sad.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Профи
****

Группа: Пользователи
Сообщений: 652
Пол: Мужской
Реальное имя: Алексей

Репутация: -  20  +


Код

Program ControlWork2;
Uses crt;
var
T,K,Md,Mc,n:real;
R,I,U,W,J : real;

Procedure readfile(var R,I,U,W,J :real;var fin : text);
begin
   read(fin,R); {soprotivlenie}
   read(fin,I); {sila toka}
   read(fin,U); {napryazhenie}
   read(fin,w); {chastota}
   read(fin,J); {moment inercii}
   readln(fin);
end;

Function MomentDv(U,I,R:real):real; {moment dvizheniya}
Begin
K:=(U-I*R)/w;
MomentDv:=K*U/R-K*w/R;
End;

Function MomentStat(W,J:real):real; {moment staticheskij}
Begin
MomentStat:=W*J;
End;

Procedure Create(var fin,fout:text);
begin
  while not eof(fin) do begin
    readfile(R,I,U,W,J,fin);
    Md:=MomentDv(U,I,R);
    Mc:=MomentStat(W,J);
    T:=J*W/(Md-Mc);
    writeln (fout,T:6:4, '|', W:8, '|', Md:8:4, '|', Mc:8:4);
    writeln (T:6:4, '|', W:8, '|', Md:8:4, '|', Mc:8:4);
  end;
{Основная прога}
begin
assign(fin,'C:\Tpascal\test.txt');{входной файл}
assign(fout,'C:\Tpascal\test1.txt');{выходной файл}
reset(fin);
rewrite(fout);
Create(fin,fout);
close(fin);
close(fout);
end.

Если я все правильно понял,а вообще посмотри на свои функции и заново прочитай о них факи.потому что зачем тебе в функции Д входной параметр К если ты его внутри функции и считаеш,Вообще функции у тебя абсолютно неверные.Такое ощущение,что ты не понимаеш,что это такое,так про прочитай заново.То что я написал выводит и на экран и в файл.
R,I,U,W,J должны четко присутствовать в файле в заданном порядке.и каждые новые данные должны вводится с новой строки в том же порядке.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12





Группа: Пользователи
Сообщений: 8
Пол: Мужской

Репутация: -  0  +


Большое спасибо! Действительно, пока плохо понимаю в программировании. Буду разбираться.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13





Группа: Пользователи
Сообщений: 8
Пол: Мужской

Репутация: -  0  +


А почему при компиляции этой программы
Код
Program ControlWork2;
Uses crt;
var
T,K,Md,Mc,n:real;
R,I,U,W,J : real;

Procedure readfile(var R,I,U,W,J :real;var fin : text);
begin
   read(fin,R); {soprotivlenie}
   read(fin,I); {sila toka}
   read(fin,U); {napryazhenie}
   read(fin,w); {chastota}
   read(fin,J); {moment inercii}
   readln(fin);
end;

Function MomentDv(U,I,R:real):real; {moment dvizheniya}
Begin
K:=(U-I*R)/w;
MomentDv:=K*U/R-K*w/R;
End;

Function MomentStat(W,J:real):real; {moment staticheskij}
Begin
MomentStat:=W*J;
End;

Procedure Create(var fin,fout:text);
begin
  while not eof(fin) do begin
    readfile(R,I,U,W,J,fin);
    Md:=MomentDv(U,I,R);
    Mc:=MomentStat(W,J);
    T:=J*W/(Md-Mc);
    writeln (fout,T:6:4, '|', W:8, '|', Md:8:4, '|', Mc:8:4);
    writeln (T:6:4, '|', W:8, '|', Md:8:4, '|', Mc:8:4);
  end;
{Основная прога}
begin
assign(fin,'C:\Tpascal\test.txt');{входной файл}
assign(fout,'C:\Tpascal\test1.txt');{выходной файл}
reset(fin);
rewrite(fout);
Create(fin,fout);
close(fin);
close(fout);
end.

курсор останавливается на последнем "end" и выходит ошибка 85 "Ожидается ;" ?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


Procedure Create(var fin,fout:text);
begin
while not eof(fin) do begin
readfile(R,I,U,W,J,fin);
Md:=MomentDv(U,I,R);
Mc:=MomentStat(W,J);
T:=J*W/(Md-Mc);
writeln (fout,T:6:4, '|', W:8, '|', Md:8:4, '|', Mc:8:4);
writeln (T:6:4, '|', W:8, '|', Md:8:4, '|', Mc:8:4);
end;
end; //<-------не хватает
{Основная прога}
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15





Группа: Пользователи
Сообщений: 8
Пол: Мужской

Репутация: -  0  +


Теперь пишет следующее, указывая на "fin":
Код
{Основная прога}
begin
assign(fin,'C:\Tpascal\test.txt');{входной файл}
assign(fout,'C:\Tpascal\test1.txt');{выходной файл}
reset(fin);
rewrite(fout);
Create(fin,fout);
close(fin);
close(fout);
end.

Ошибка 3 "Unknown edintifier".
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #16


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


Ты его не описал нигде, вот те и ошибка
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 1.11.2020 3:34
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name