Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Pascal] Использование модулей, ошибка компиляции в задаче 
:(
    Опции темы
elllektra
Дата 14.5.2007, 19:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 14.5.2007

Репутация: 1
Всего: 1



Из-за чего появляется ошибка компиляции?
Помогите пожалуйста исправить задачу.
Условие: используя модуль, вычислить-

-перевод числа из десятичной системы счисления в двоичную
-сложения чисел в двоичной системе счисления
-перевод числа из двоичной системы счисления в десятичную
Даны 3 числа a,b,c в десятичной системе счисления. Вычислить:
a) a вторых + b вторых
b)a вторых   +    (b-c) вторых
c)a- b+   c вторых
Здесь a вторых,b вторых,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.
-------------------------------------




помогите правильно решить задачу.Не получается, а завтра срочно нужно чтоб работала.
Заранее спасибо




Program proga3;
uses crt;
type
    mas=array[1..100] of integer;
var
    a:mas;
    n,i:integer;
Begin
    ClrScr;
    write(' Vvedite kolvo el-v massiva: ');
    readln(n);
    write(' vvedite elementi: ');
    For i:=1 to n do
        Begin
            read(a[i]);
            If a[i+1]>a[i] then
                Begin
                    For i:=1 to n do
                        Begin
                            if i mod 4=0 then a[i]:=0;
                            write(' elem obraz upor posl: ',a[i]);
                            readln
                        End;
                
        
                readln;
        End
End.






Это сообщение отредактировал(а) Alexeis - 17.5.2007, 12:58
PM MAIL   Вверх
Misha_White
Дата 16.5.2007, 06:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 25.4.2007
Где: Кодинск

Репутация: 1
Всего: 1



elllektra, 
Там с Begin-ами и End-ами в процедуре косяк в первой проге! Во второй неправильно организованы вложенные циклы! Попробуй ввод массива поместить в отдельный цмкл!
Код

For i:=1 to n do
       read(a[i]);


Цитата(elllektra @  15.5.2007,  02:19 Найти цитируемый пост)
  If a[i+1]>a[i] then

У тебя еще не введен элемент с номером [i+1]!
Трудно понять что тут вычисляется без условия задачи...

Добавлено через 3 минуты и 18 секунд
elllektra, 
Во второй задаче полностью неверно организованы циклы!
--------------------
Я не волшебник... я только учусь...  
PM MAIL ICQ Skype   Вверх
Misha_White
Дата 16.5.2007, 07:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 25.4.2007
Где: Кодинск

Репутация: 1
Всего: 1



elllektra, 
Вторую написал
Код

program P1;
Uses crt;
Type mas=Array[1..100] of integer;
Var A:mas;
    i,j,n:integer;
    flag:boolean;
begin
 ClrScr;
  flag:=true;
  write('Vvedite N');
  readln(n);
 Writeln('Vvedite elem.:');
  for i:=1 to n do
   readln(a[i]);
 for i:=1 to n-1 do
  if a[i]>a[i+1] then
   begin
    flag:=false;
    Break;
   end;
 if not(flag) then
  for i:=1 to n do
   if (i mod 4)=0 then
    begin
     for j:=i to n-1 do
      a[j]:=a[j+1];
     a[n]:=0;
    end;
 Writeln('Rez:');
  for i:=1 to n do
   writeln(a[i]);
 readln;

end.


Это сообщение отредактировал(а) Alexeis - 17.5.2007, 13:00
--------------------
Я не волшебник... я только учусь...  
PM MAIL ICQ Skype   Вверх
elllektra
Дата 17.5.2007, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 14.5.2007

Репутация: 1
Всего: 1



я условие добавила к задачке с модулем
PM MAIL   Вверх
Alexeis
Дата 17.5.2007, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 23
Всего: 459




M
Alexeis
Модератор: Название темы должно отражать ее суть!

Причем тут модули? Какое отношение имеет ошибка к модулям.

Общее замечание: выбирайте тип подсветки кода http://forum.vingrad.ru/index.php?show_typ...howtopic=126445


Это сообщение отредактировал(а) Alexeis - 17.5.2007, 13:01


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
elllektra
Дата 17.5.2007, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 14.5.2007

Репутация: 1
Всего: 1



модули-тк задача решается использованием модуля(тема такая)
а ошибка компиляции- в решение задачи
PM MAIL   Вверх
Alexeis
Дата 17.5.2007, 15:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 23
Всего: 459



Цитата(elllektra @  17.5.2007,  14:20 Найти цитируемый пост)
а ошибка компиляции- в решение задачи 

  Какая ошибка компиляции? Ведь в этом суть вопроса. Нужно определить почему возникла ошибка. В модуле или не в модуле это уже не так важно. Кстати я не вижу в приведенном коде самого модуля, вижу только текст 2х програм. 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
elllektra
Дата 17.5.2007, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 14.5.2007

Репутация: 1
Всего: 1



значит я не праваильно сделала. для меня задача оч сложная
PM MAIL   Вверх
Misha_White
Дата 17.5.2007, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 25.4.2007
Где: Кодинск

Репутация: 1
Всего: 1



elllektra, 
Я же написал тебе решение второй задачи! А в первой нужно ту большую процедуру вынести в модуль, но перед этим разобраться с Begin-End в условных операторах! Там end-ов просто не хватает (а может и лишние имеются)...
--------------------
Я не волшебник... я только учусь...  
PM MAIL ICQ Skype   Вверх
elllektra
Дата 17.5.2007, 19:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 14.5.2007

Репутация: 1
Всего: 1



я уже вообще ничё не понимаю что куда вынести(
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0592 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.