Важная информация
Показано с 1 по 2 из 2

Тема: Ошибка Е2015 помогите новечку (FreePascal)

  1. #1 Ошибка Е2015 помогите новечку (FreePascal) 
    Новичок
    Регистрация
    22.10.2013
    Сообщений
    1
    Сказал(а) спасибо
    1
    Поблагодарили 0 раз(а) в 0 сообщениях
    Добрый день, составила программув модульном программировании
    вот сама программа :
    program Project1;

    {$APPTYPE CONSOLE}

    uses
    SysUtils,
    U_Fraction in 'U_Fraction.pas';

    var a,b,c1,c2,c3:fraction; p1,p2:integer; q1,q2:word; m:T_mass;
    begin

    Massiv(a,m);
    readln;
    end.





    а вот модуль к ней:
    unit U_Fraction;

    interface
    //const n=5;
    type fraction=record
    p:integer;
    q:word;
    end;
    t_mass=array[1..5]of fraction;
    function Init_D(const p0:integer;const q0:word):fraction;
    procedure add_d(const a,b:fraction; out c1:fraction);
    procedure mult_d(const a,b:fraction; out c2:fraction);
    procedure div_d(const a,b:fraction; out c3:fraction);
    procedure write_d(const a:fraction);
    procedure write_2d(const a,b:fraction; c1,c2,c3:fraction);
    procedure nod(x,y:integer;out z:integer);
    procedure nod_d(var a:fraction);
    procedure Massiv (a:fraction;m:t_mass);

    implementation

    function Init_D(const p0:integer;const q0:word):fraction;
    begin
    result.p:=p0;
    result.q:=q0;
    end;

    procedure add_d(const a,b:fraction; out c1:fraction);
    begin
    c1.p:=(a.p*b.q)+(a.q*b.p);
    c1.q:=a.q*b.q;
    nod_d(c1);
    end;

    procedure mult_d(const a,b:fraction; out c2:fraction);
    begin
    c2.p:=a.p*b.p;
    c2.q:=a.q*b.q;
    nod_d(c2);
    end;

    procedure div_d(const a,b:fraction; out c3:fraction);
    begin
    c3.p:=a.p*b.q;
    c3.q:=a.q*b.p;
    nod_d(c3);
    end;

    procedure write_d(const a:fraction);
    begin
    writeln(a.p,'/',a.q);
    end;

    procedure write_2d(const a,b:fraction;c1,c2,c3:fraction);
    begin
    writeln(a.p,'/',a.q,'+',b.p,'/',b.q,'=',c1.p,'/',c1.q);
    writeln(a.p,'/',a.q,'*',b.p,'/',b.q,'=',c2.p,'/',c2.q);
    writeln(a.p,'/',a.q,':',b.p,'/',b.q,'=',c3.p,'/',c3.q);
    end;

    procedure nod(x,y:integer;out z:integer);
    begin
    while x<>y do
    if y>x then y:=y-x else x:=x-y;
    z:=x;
    end;

    procedure nod_d(var a:fraction);
    var z:integer;
    begin
    nod(a.p,a.q,z);
    a.p:=a.p div z;
    a.q:=a.q div z;
    end;

    procedure Massiv (a:fraction;m:t_mass);
    var i,n:integer;
    begin
    randomize;
    for i := 1 to 5 do
    begin
    a.p:=random(25);
    a.q:=random(50);
    nod_d(a);
    m[i]:=a;
    writeln(i,' element massiva:',a.p,'/',a.q);
    end;
    end;

    procedure sred_arifm(a:fraction; const m:t_mass);
    var i:integer;
    begin
    for i := 1 to 5 do a.p:=a.p+m[i]; вот в этой строчке выдает ошибку(((

    end;

    end.

    помогите пожалуйста разобраться....
    Ответить с цитированием  
     

  2. #2  
    Гуру Аватар для Абадябер
    Регистрация
    09.12.2010
    Адрес
    Беларусь, Минск
    Сообщений
    1,219
    Сказал(а) спасибо
    302
    Поблагодарили 176 раз(а) в 144 сообщениях
    Записей в блоге
    5
    for i := 1 to 5 do a.p:=a.p+m[i]
    У вас типы не сходятся. В этом случае, вы пытаетесь добавить к переменной типа Integer запись, а так делать нельзя.
    Можно исправить таким образом: For I:= 1 To 5 Do A.P:= A.P + M[I].P;
    Дружба-магия-радость!
    Ответить с цитированием  
     

  3. Пользователь сказал cпасибо:


Информация о теме
Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. ошибка в nginx
    от Наталья Григорьева в разделе Сервера
    Ответов: 1
    Последнее сообщение: 26.11.2016, 23:48
  2. Ответов: 1
    Последнее сообщение: 10.12.2015, 19:03
  3. Помогите разобраться,в чем ошибка!(((
    от Мариночка в разделе C/C++
    Ответов: 4
    Последнее сообщение: 25.11.2013, 01:28
  4. FreePascal
    от fizuch в разделе Pascal
    Ответов: 6
    Последнее сообщение: 06.06.2011, 00:25
  5. Ошибка в дебаге.
    от fizuch в разделе Assembler
    Ответов: 16
    Последнее сообщение: 20.01.2011, 02:06
Ваши права
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •