Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Pascal] Использование модуей


Автор: elllektra 14.5.2007, 17:40

M
Kuvaldis
Не забываем указывать язык программирования в названии темы!

что такое ошибка компиляции при запуске программы не могу её убрать используя созданный модуль, вычислить: -перевод числа из десятичной системы счисления в двоичную -сложение чисел в двоичной системе счисления -перевода числа из двоичной системы счисления в десятичную Даны три числа a,b,c в десятичной системе счисления. Вычислить: a)a вторых + b вторых   b)a+ (b-c) вторых c)a-b+ c вторых 
Код

Program proga2;
uses crt;
Procedure perevod;
const
    z=10;
type
    chislo=array [1..z] of integer;
var
    n:real;
    cd1,cd2,cd3,c1,c2,c3,s,v,i:integer;
    math:char;
    a,b,c,g,s1,s2,s3:integer;
    cp1,cp2,cp3,co1,co2,co3:chislo;
    Begin
        writeln('Vvedite a');
        readln(a);
        writeln('Vvedite b');
        readln(b);
        writeln('Vvedite c');
        readln(c);
        write('A) ');
        s1:=a+b;
        write('B) ');
        g:=b-c;
        s2:=a+g;
        write('C) ');
        s3:=a-b+c;
        c1:=s1;
        if c1>0 then
            begin
            i:=1;
            while abs(c1)>=2 do
                begin
                    cp1[i]:=c1 mod 2;
                    i:=i+1;
                    c1:=c1 div 2;
                end;
            if i<n then
                begin
                    i:=i-1;
                    write('  +',c1);
                    while i<>0 do
                        begin
                            write(cp1[i]);
                            i:=i-1;
                        end;
                end;
                        end
      else
      begin
       i:=1;
       while abs(c1)>=2 do
              begin
               cp1[i]:=abs(c1) mod 2;
                i:=i+1;
                c1:=abs(c1) div 2;
              end;
       i:=i-1;
       write(' -',abs(c1));
       while i<>0 do
              begin
                    write(cp1[i]);
                     i:=i-1;
               end;
       c2:=s2;
        if c2>0 then
            begin
            i:=1;
            while abs(c2)>=2 do
                begin
                    cp2[i]:=c2 mod 2;
                    i:=i+1;
                    c2:=c2 div 2;
                end;
            if i<n then
                begin
                    i:=i-1;
                    write('  +',c2);
                    while i<>0 do
                        begin
                            write(cp2[i]);
                            i:=i-1;
                        end;
                end;
            end
    {end;}
      else
      begin
       i:=1;
       while abs(c2)>=2 do
              begin
               cp1[i]:=abs(c2) mod 2;
                   i:=i+1;
                   c1:=abs(c2) div 2;
              end;
       i:=i-1;
       write(' -',abs(c2));
       while i<>0 do
        begin
             write(cp2[i]);
             i:=i-1;
            end;
       c3:=s3;
        if c3>0 then
            begin
            i:=1;
            while abs(c3)>=2 do
                begin
                    cp3[i]:=c3 mod 2;
                    i:=i+1;
                    c3:=c3 div 2;
                end;
            if i<n then
                begin
                    i:=i-1;
                    write('  +',c3);
                    while i<>0 do
                        begin
                            write(cp3[i]);
                            i:=i-1;
                        end;
                end;
            end
    {end}
      else
      begin
       i:=1;
       while abs(c3)>=2 do
           begin
        cp3[i]:=abs(c3) mod 2;
            i:=i+1;
            c3:=abs(c3) div 2;
           end;
       i:=i-1;
       write(' -',abs(c3));
       while i<>0 do
           begin
             write(cp3[i]);
             i:=i-1;
           end;
       end;

Begin
    ClrScr;
    perevod;
    readln;
End.



M
Guedda
Не забываем указывать язык программирования!


Автор: Misha_White 18.5.2007, 16:26
elllektra, 
Если задача на модули, то для правильного решения надо:
1)Вынести ввод чисел a, b, c из процедуры в главную программу!
2)Создать отдельно функции(!) для каждой операции! Передавать в нее числа, а функция должна возвращать рез-т.
3)Эти функции поместить в модуль! И вызывать из главной программы! А затем выводить рез-т(в главной программе)!
Все!
Советую процедуру выкинуть полностью, потому что ты уже не разберешься где пропустила end!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)