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

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

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

> Программа расчета харак-тик выходного сигнала электроцепи
Shadow83
сообщение 9.04.2010 21:13
Сообщение #1





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

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


Есть программа:

Program Kursovic;
uses crt;
const
maxind=160;
type
ArrayType=array [1..maxind] of real;
{---------------------------------------------------------}
{Процедура ввода исходной информации}
Procedure DATA(var n:integer;
kl:byte;
tn, tm, tk, Um, Uin2, Uin3, at, bt:real);
begin
Writeln('Введите нужное количество отсчетов сигнала');
Write('n=');
Readln(n);

Writeln('Введите признак kl=1, если хотите вывести результат на монитор');
Writeln('или признак kl=0, если хотите записать результаты в файлы f1 и f2');
Write('kl=');
Readln(kl);

Writeln('Введите ваши исходные данные');
Writeln('Начальный момент наблюдения входного сигнала');
Write('tn=');
Readln(tn);

Writeln('Момент времени, разделяющий две ветви алгоритма');
Writeln('расчета входного сигнала');
Write('tm=');
Readln™;

Writeln('Конечный момент времени наблюдения входного сигнала');
Write('tk=');
Readln(tk);

Writeln('Значение входного напряжения соответствующему моменту времени tm');
Write('Um=');
Readln(Um);

Writeln('Заданный параметр передаточной характеристики');
Write('Uin2=');
Readln(Uin2);
Write('Uin3=');
Readln(Uin3);
Write('a=');
Readln(at);
Write('b=');
Readln(bt);
End;
{---------------------------------------------------------}
{Описание процедуры формирования массива входных отсчетов}
procedure UIN1(var n:integer;
kl:byte;
tn, tm, tk, Um:real;
Uin:ArrayType);
var t, a, b, del:real;
i:integer;
begin
t:=tn;
del:=(tk-tn)/(n-1);
a:=Um/(tm-tn);
b:=Um/(tk-tm);
for i:=1 to n do
begin
if t>tm then Uin[i]:=b*(tk-t)
else Uin[i]:=a*(t-tn);
t:=t+del;
end;
end;
{---------------------------------------------------------}
{Описание процедуры формирования массива выходных отсчетов}
procedure Uout1(var n:integer;
kl:byte;
Uin2, Uin3, at, bt:real;
Uin, Uout:ArrayType);
var i:integer;
begin
for i:=1 to n do
if Uin[i]<=Uin2 then Uout[i]:=(at*Uin2)+bt
else if (Uin2<Uin[i]) and (Uin[i]<=Uin3) then Uout[i]:=(at*Uin[i])+bt
else if Uin[i]>Uin3 then Uout[i]:=(at*Uin3)+bt;
end;
{---------------------------------------------------------}
{Описание функции нахождения макс. значения выходного сигнала}
procedure MAXI(var n:integer;
Uout:Arraytype);
var
max:real;
i:integer;
begin
max:=Uout[i];
for i:=2 to n do
if Uout[i]>max then max:=Uout[i];
max:=MaxInt;
end;
{---------------------------------------------------------}
{Описание процедуры записи массивов входного и выходного сигнала}
{на диск в файлы с именами f1.prn и f2.prn}
procedure WRITEINFO(var n:integer;
uin,uout:ArrayType);
var
f1, f2:text;
i:integer;
begin
assign(f1,'f1.prn');
assign(f2,'f2.prn');
rewrite(f1);
rewrite(f2);
for i:=1 to n do
begin
WriteLn(f1,uin[i]:7:3);
WriteLn(f2,uout[i]:7:3);
end;
close(f1);
close(f2);
end;
{---------------------------------------------------------}
{Процедура вывода на экран результатов работы программы}
procedure REZULT(var n:integer;
kl:byte;
uin, uout:ArrayType);
var
i:integer;
begin
if kl=1 then
begin
WriteLn('Отсчеты входного сигнала');
for i:=1 to n do
WriteLn('uin[',i,']=',uin[i]:7:3);
WriteLn('Отсчеты выходного сигнала');
for i:=1 to n do
WriteLn('uout[',i,']=',uout[i]:7:3);
WriteLn('Макс. значение вых. сигнала=',MAXI(n,uout):7:3);
end
else
begin
WriteLn;
WriteLn;
WriteLn('Программа закончила свою работу. Массивы');
WriteLn('входных и выходных отсчетов сформированы');
WriteLn('и записаны в файлы f1.prn и f2.prn соответственно');
end;
end;
{---------------------------------------------------------}
var
n:integer;
kl:byte;
tn, tm, tk, Um, Uin2, Uin3, at, bt:real;
Uin, Uout:ArrayType;
begin {Main}
Clrscr;
Data(n, kl, tn, tm, tk, Um, Uin2, Uin3, at, bt);
Uin1(n, kl, tn, tm, tk, Um, Uin);
Uout1(n, kl, Uin2, Uin3, Uin, Uout);
Writeinfo(n, uin, uout);
Rezult(n, kl, uin, uout);
Readln;
end.


Вылазят ошибки и не могу их исправить. Помогите пожалуйста! unsure.gif Её уже сдавать надо, а я никак её сделать не могу. Если не использовать процедуру MAXI в процедуре вывода результатов на экран, то вылазит 26 ошибка на 153:32. А если использовать то 143 ошибка на 133:54.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Shadow83
сообщение 11.04.2010 11:24
Сообщение #2





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

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


Тут
MAXI:=max;
говорит не хватает скобки.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 



- Текстовая версия 20.07.2025 22:43
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"