Ошибка 201 - Free Pascal (143584)

Узнай цену своей работы

Формулировка задачи:

Написал прогу на сумму чисел в столбик(используя модуль). В ABC работает отлично, претензий нет. Но в Free дает ошибку 201(помоему ссылка на несущ. переменную). Если записать все в одну прогу(без модуля), то проблем нету. В принципе такого разногласия не должно быть. Что делать, помогите?! Модуль:
unit sum;
interface
uses crt;
procedure chasti(a:longint; var e,d,s,t,dt,st,n: longint);
procedure summa(x,y: integer);
 
implementation
procedure chasti(a:longint; var e,d,s,t,dt,st,n: longint);
begin
e:=a mod 10;
n:=n+1;
if a>=10 then begin
d:=trunc((a-e)/10) mod 10;
n:=n+1; end;
if a>=100 then begin
s:=trunc((a-10*d-e)/100) mod 10;
n:=n+1; end;
if a>=1000 then  begin
t:=trunc((a-100*s-10*d-e)/1000) mod 10;
n:=n+1; end;
if a>=10000 then begin
dt:=trunc((a-1000*t-100*s-10*d-e)/10000) mod 10;
n:=n+1; end;
if a>=100000 then begin
st:=trunc((a-10000*dt-1000*t-100*s-10*d-e)/100000) mod 10;
n:=n+1; end;
end;
 
procedure summa(x,y: integer);
var  z: longint;
     i,b,n,e1,d1,s1,t1,dt1,st1,n1: longint;
BeGIN
clrscr;
n:=0;
z:=x+y;
chasti(z,e1,d1,s1,t1,dt1,st1,n1);
for i:=1 to n1 do
begin
b:=b+7;
gotoxy(1,b);
writeln(x);
writeln('+');
writeln(y);
writeln('------');
if i=1 then begin
gotoxy(n1,b+4);
writeln(e1); end;
if i=2 then begin
gotoxy(n1-1,b+4);
writeln(d1,e1); end;
if i=3 then begin
gotoxy(n1-2,b+4);
writeln(s1,d1,e1); end;
if i=4 then begin
gotoxy(n1-3,b+4);
writeln(t1,s1,d1,e1); end;
if i=5 then begin
gotoxy(n1-4,b+4);
writeln(dt1,t1,s1,d1,e1); end;
if i=6 then begin
gotoxy(n1-5,b+4);
writeln(st1,dt1,t1,s1,d1,e1); end;
readln;
end;
END;
end.
Сама прога:
uses crt,sum;
var  x1,y1: integer;
 
BEGIN
clrscr;
 
write('Vvedite pervoye chislo: ');
readln(x1);
write('Vvedite vtoroye chislo: ');
readln(y1);
summa(x1,y1);

repeat until keypressed;
END.

Решение задачи: «Ошибка 201»

textual
Листинг программы
uses crt,sum,um;
var  x1,y1: integer;
 
BEGIN
clrscr;
 
write('Vvedite pervoye chislo: ');
readln(x1);
write('Vvedite vtoroye chislo: ');
readln(y1);
umnoj(x1,y1);
 
 
 
 
END.

Объяснение кода листинга программы

  1. Импортируются модули CRT, SUM и UM.
  2. Объявляются две переменные типа integer x1 и y1.
  3. Очищается экран с помощью функции clrscr.
  4. Выводится сообщение с приглашением ввести первое число.
  5. Читается значение первого числа с помощью функции readln и сохраняется в переменной x1.
  6. Выводится сообщение с приглашением ввести второе число.
  7. Читается значение второго числа с помощью функции readln и сохраняется в переменной y1.
  8. Производится умножение двух чисел с помощью функции umnoj, где первым аргументом является x1, вторым - y1.
  9. Программа завершается, так как нет дополнительных инструкций после оператора END.

ИИ для рефератов и докладов


  • Экспорт Word по ГОСТу
  • Минимум 80% уникальности текста
  • Поиск релевантных источников в интернете
  • Готовый документ за 2 минуты

Оцени полезность:

13   голосов , оценка 3.923 из 5