Строки / Pascal

Тема в разделе "Pascal and Delphi", создана пользователем Smile1995, 8 дек 2013.

Статус темы:
Закрыта.
  1. Smile1995

    Smile1995 New Member

    Регистрация:
    10 сен 2013
    Сообщения:
    0
    Симпатии:
    0
    СТРОКИ
    Задание: Ввести две строки, состоящие только из нулей и единиц. Считая их изображениями двоичных чисел, сложить их и вывести сумму на экран в двоичной и десятичной системах счисления. Исходные слагаемые в десятичную систему счисления не преобразовывать.

    Pascal

    помогите пожалуйста совсем не работает не могу понять почему, до преобразования в десятичную систему даже не дошла.. Знаю только Pascal, прошу объяснить именно на этом языке..

    <!--shcode--><pre><code class='pascal'>Program varuant_7;
    Var str_1, str_2:string;
    summa_01, summa_10, i, k, error,n:integer;

    begin
    Writeln('Vvedite str_1=');
    Readln(str_1);
    Writeln('Vvedite str_2=');
    Readln(str_2);
    Writeln;

    n:=length(str_1);
    k:=length(str_2);

    if n>k
    then while (n>k) do
    begin str_2:=0+str_2;
    k:=k+1;
    end
    else while (n<k) do
    begin str_1:=0+str_1;
    n:=n+1;
    end;
    n:=k;

    Writeln('str_1=', str_1);
    Writeln('str_2=', str_2);

    for i:= n downto 1 do
    begin
    if (str_1='1') and (str_2='1')
    then begin summa_01:='0';
    summa_01[i-1]:='1';
    end
    else begin
    if (str_1='1') or (str_2='1')
    then summa_01:='1'
    else summa_01:='0';
    end;
    end;

    Writeln('summa_01=',summa_01);
    writeln;

    end.[/CODE]
     
  2. Senset

    Senset Well-Known Member

    Регистрация:
    11 сен 2006
    Сообщения:
    136
    Симпатии:
    0
    Что-то мне подсказывает (походу логика), что Вы занимаетесь довольно хитрым копи-пастом, собирая данные с разных мест (где по чуть-чуть дополняют Ваш код), потом Вы удаляете темы (прошлые темы), чтобы нельзя было отследить историю Вашего нежелания самой подумать, и создаете новые (где объединяете все правки, причем невсегда удачно) темы.
    Ай-яй-яй....
     
  3. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    темы-дубликаты автора тут на форуме удалила я. Вроде бы они все одинаковые были.
    а по поводу кода - править надо описания и код: смешались в кучу строки, числа (у чисел внезапно появился индекс, у строк - сложение с числом), также есть ошибка в логике вычисления в рамках приведенного кода- там, где summa_01[i-1]:='1'; - значение перезатирается в цикле, тут надо выставить признак переполнения и потом анализировать на следующем шаге - заполнять результат с учетом этого переполнения и сбрасывать признак переполнения, если он уже не надо.
     
  4. Smile1995

    Smile1995 New Member

    Регистрация:
    10 сен 2013
    Сообщения:
    0
    Симпатии:
    0
    Во-первых, я думаю сама, ищу по книгам, как написать и выдвигаю свои идеи, а не чьи либо. И не нужно меня обвинять в том, чего я не делала. Во-вторых я создавала несколько тем, не спорю косяк за мной есть. Но делала я это, т к уже новый код писала и нужна была помощь с ним, а не с предыдущим. И в третьих, вы написали данную прогу на делфи, а мне он не известен, так что код оказался бесполезен. И да я написала эту программу в итоге, после долгого мозгового штурма, а не "слизала" от куда нибудь
     
  5. Senset

    Senset Well-Known Member

    Регистрация:
    11 сен 2006
    Сообщения:
    136
    Симпатии:
    0
    В коде который я писал вам ранее нет ни одной строчки на Delphi. (там нет ни классов, ни подключаемых библиотек этой среды программирования и даже более того, нет ни одной функции, которая была бы присуща Delphi). Т.е. запуск программы можно было осуществить в Borland TP совершенно спокойно.

    Но в коде (ранее данном) были три ограничения, которые вы частично исправили. И здесь сейчас (в первом посте) я вижу свой "скопированный" код (в котором изменены названия переменных, но вы можете сказать что это совпадение... ладно, смотрим дальше: это не совпадения, т.к. Ваш код подгонки 2-х строк под одну длину (который был у меня сделан с объявленными ограничениями) вы исправили, точнее пытаясь избавиться от ограничений Вы неправильно подгоняете строки под одну длину... а значит не могли сами написать процесс сложения (принципиально я имею ввиду). Чисто потому что не видите где разница символов и чисел.

    Итого:
    Ваше "Во-вторых" вы сами признали косяк...
    В "Во-первых" и "В-третьих" = расписано выше

    + учтите то, что вам написала "OKEN"

    спасибо за понимание.
     
  6. Senset

    Senset Well-Known Member

    Регистрация:
    11 сен 2006
    Сообщения:
    136
    Симпатии:
    0
    Ах, да... к чему я всё это...
    Когда я написал вам код, там были 3 ограничения...
    К сожалению, этот код не сохранился, т.к. вы создали много одинаковых тем и они были удалены.
    Вам были расписаны 3 ограничения, которые нужно было исправить вам лично (ибо основную помощь вам оказали).

    Здесь же мы видим, что Вы пытаетесь исправить эти ограничения чужими силами... это плохо.

    P.S. И я надеюсь, что леди OKEN будет также четко и внимательно следить за подобными махинациями.
     
  7. Smile1995

    Smile1995 New Member

    Регистрация:
    10 сен 2013
    Сообщения:
    0
    Симпатии:
    0
    мне вам повторить? я написала потом сама код. И далее длинна строки была и в правду в тему, но я не тупо скопировала ваш код, а попыталась его изменить, не смогла. В итоге открыла кучу учебников и написала, ее по другому.
    А про махинации это вы бред какой то говорите. Я же не продаю ваш код и не выдаю его за свой, а переделываю так, как могу. Тем более что в итоге им я не воспользовалась

    а против OKEN я вообще ничего не имею, и прекрасно понимаю ее замечания, справедливые и обоснованные, в отличии от вас
     
  8. Senset

    Senset Well-Known Member

    Регистрация:
    11 сен 2006
    Сообщения:
    136
    Симпатии:
    0
    Да, ё-маё! Подумайте, что Вам написали!
    "махинации" = создание кучи тем
    "также четко и внимательно следит" = это сарказм, ибо была удалена не идентичная тема, а с ответами

    отлично, теперь напишите его так, чтобы он работал, потому что начальную помощь вам оказали
     
  9. Smile1995

    Smile1995 New Member

    Регистрация:
    10 сен 2013
    Сообщения:
    0
    Симпатии:
    0
    А и еще. Я не просила написать за меня код, а просила просто объяснить. Мне так то потом еще зарабатывать "написанием кода" и что за меня вечно кто то будет писать? Это абсолютно не логично и лично меня такая перспектива не устраивает



    Добавлено:
    Код (Text):
    Program Variant_7;
    var ch_1_st, ch_2_st: string;
    a_int,b_int, i: integer;
    ch1: array[1..20] of integer;
    ch2: array[1..20] of integer;
    summ: array[1..20] of integer;

    dec_int: real;
    temp: integer;

    begin


    write ('Введите число 1 ');  
    readln (ch_1_st);
    write ('Введите число 2 ');
    readln (ch_2_st);
    WriteLn;

    a_int:=length(ch_1_st);

    for i:=1 to a_int do
    begin
    val(ch_1_st[a_int-i+1],ch1[i],temp);
    end;

    b_int:=length(ch_2_st);

    for i:=1 to b_int do
    begin
    val(ch_2_st[b_int-i+1],ch2[i],temp);
    end;

    if a_int<b_int then a_int:=b_int;

    for i:=1 to a_int do
    begin
    summ[i]:=summ[i]+ch1[i]+ch2[i];
    if summ[i]=2 then
    begin
    summ[i]:=0;
    summ[i+1]:=1;
    end;
    if summ[i]=3 then
    begin
    summ[i]:=1;
    summ[i+1]:=1;
    end;
    end;

    for i:=a_int+1 downto 1 do
    begin
    write(summ[i]);
    dec_int:=dec_int+summ[i]*exp(ln(2)*(i-1))
    end;
    writeln();
    write(dec_int:5:0);
    readln;
    end.
    Добавлено:
    вам что то еще?
     
  10. Senset

    Senset Well-Known Member

    Регистрация:
    11 сен 2006
    Сообщения:
    136
    Симпатии:
    0
    Не понял. И к сожалению, нельзя посмотреть удаленную тему.
    Ну да ладно... Вопрос: код который Вы представили рабочий?
     
  11. Smile1995

    Smile1995 New Member

    Регистрация:
    10 сен 2013
    Сообщения:
    0
    Симпатии:
    0
    у меня отлично работает и преподаватель принял его
     
  12. Senset

    Senset Well-Known Member

    Регистрация:
    11 сен 2006
    Сообщения:
    136
    Симпатии:
    0
    :) И this is хорошо.
     
  13. Smile1995

    Smile1995 New Member

    Регистрация:
    10 сен 2013
    Сообщения:
    0
    Симпатии:
    0
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей