![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Smartic |
![]()
Сообщение
#1
|
|||
Группа: Пользователи Сообщений: 8 Пол: Мужской Репутация: ![]() ![]() ![]() |
Нужно было составить программу для расчета статического и динамического моментов электродвигателя. У меня вот что получилось:
Program ControlWork2; А мне еще надо вывести Md,Mc,w,t в виде таблицы, а также записать файл исходных данных. Как это сделать? Подскажите, пожалуйста. Заранее огромное спасибо!
Сообщение отредактировано: volvo - 18.05.2009 8:37 |
|||
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата У меня вот что получилось: А что, собственно, у тебя получилось? Ты что, где-то что-то считаешь? Ты пока описываешь только функции (причем, описываешь их неправильно), а вот когда ты будешь их вызывать, тогда и будем говорить о выводе...Ты программу-то свою компилировать пробовал? Кто ж запятой пользуется в вещественных числах? Вообще-то для этого есть точка. Кто дает одинаковые имена функции и переменной? Паскаль такого не позволяет... |
Smartic |
![]()
Сообщение
#3
|
Группа: Пользователи Сообщений: 8 Пол: Мужской Репутация: ![]() ![]() ![]() |
Сори за ошибки, просто плохо разбираюсь в программировании. Немного исправил код:
Код 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. В чем ошибки? |
Ozzя |
![]()
Сообщение
#4
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 220 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата S(w):8:4;); Тебе же прямо, честно и откровенно говорят: "Скобку хочу!" А ты ему (компилятору) ; подсовываешь. |
Smartic |
![]()
Сообщение
#5
|
Группа: Пользователи Сообщений: 8 Пол: Мужской Репутация: ![]() ![]() ![]() |
Я убрал ту точку с запятой, но компилятор все равно выдает эту же ошибку (error: 89 ")" expected) и подчеркивает вот это место:
writeln (t:6:4, '|', W:8:1, '|', D(K):8:4, '|', S(w):8:4); Сообщение отредактировано: Smartic - 19.05.2009 9:56 |
-Lapp- |
![]()
Сообщение
#6
|
Гость ![]() |
|
Lapp |
![]()
Сообщение
#7
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
извиняюсь - не переменная, а константа W
-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Smartic |
![]()
Сообщение
#8
|
Группа: Пользователи Сообщений: 8 Пол: Мужской Репутация: ![]() ![]() ![]() |
Действительно, вот в таком виде программа уже компилируется:
Код 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 - 19.05.2009 10:51 |
Krjuger |
![]()
Сообщение
#9
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
Ну чтобы записать исходные дадные для начала:
1) надо создать этот файл и исходными данными. 2)инициализировать его в программе. Assign(имя фалла,'путь к файлу'); 3)Открыть для чтрения Reset(имя файла); 4) Считывать из файла твои данные и записывать в твои переменные. 5)и наконец закрыть файл. А вообще я бы на твоем месте создал бы двухмерный массив и запихнул бы туда все и сразу,а потом просто распечатал бы массив. P.s.Обычно имя файла берут fin,если входной и fout,если для вывода в файл.И fin и fout внутренние текстовые файлы,поэтому путь надо указывать с названием самого файла, где храняться данные. Например; asign(fin,'C:\Tpascal\test1.txt'); в само программе ты будеш работать с fin а исходный файл будет не тронут. (грубо говоря ты все данные из теста переписываеш в фин и с ними работаеш,чтоб не испортить исходный файл) Сообщение отредактировано: Krjuger - 20.05.2009 12:41 |
Smartic |
![]()
Сообщение
#10
|
Группа: Пользователи Сообщений: 8 Пол: Мужской Репутация: ![]() ![]() ![]() |
Помогите, пожалуйста, с кодом программы, а то у меня ничего не получается.
![]() |
Krjuger |
![]()
Сообщение
#11
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
Код 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 должны четко присутствовать в файле в заданном порядке.и каждые новые данные должны вводится с новой строки в том же порядке. |
Smartic |
![]()
Сообщение
#12
|
Группа: Пользователи Сообщений: 8 Пол: Мужской Репутация: ![]() ![]() ![]() |
Большое спасибо! Действительно, пока плохо понимаю в программировании. Буду разбираться.
|
Smartic |
![]()
Сообщение
#13
|
Группа: Пользователи Сообщений: 8 Пол: Мужской Репутация: ![]() ![]() ![]() |
А почему при компиляции этой программы
Код 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 "Ожидается ;" ? |
Client |
![]()
Сообщение
#14
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 865 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
Procedure Create(var fin,fout:text); |
Smartic |
![]()
Сообщение
#15
|
Группа: Пользователи Сообщений: 8 Пол: Мужской Репутация: ![]() ![]() ![]() |
Теперь пишет следующее, указывая на "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". |
Client |
![]()
Сообщение
#16
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 865 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
Ты его не описал нигде, вот те и ошибка
|
![]() ![]() |
![]() |
Текстовая версия | 19.06.2025 5:05 |