• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

Строки / Pascal

  • Автор темы Автор темы Smile1995
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
S

Smile1995

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

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]
 
Что-то мне подсказывает (походу логика), что Вы занимаетесь довольно хитрым копи-пастом, собирая данные с разных мест (где по чуть-чуть дополняют Ваш код), потом Вы удаляете темы (прошлые темы), чтобы нельзя было отследить историю Вашего нежелания самой подумать, и создаете новые (где объединяете все правки, причем невсегда удачно) темы.
Ай-яй-яй....
 
темы-дубликаты автора тут на форуме удалила я. Вроде бы они все одинаковые были.
а по поводу кода - править надо описания и код: смешались в кучу строки, числа (у чисел внезапно появился индекс, у строк - сложение с числом), также есть ошибка в логике вычисления в рамках приведенного кода- там, где summa_01[i-1]:='1'; - значение перезатирается в цикле, тут надо выставить признак переполнения и потом анализировать на следующем шаге - заполнять результат с учетом этого переполнения и сбрасывать признак переполнения, если он уже не надо.
 
Что-то мне подсказывает (походу логика), что Вы занимаетесь довольно хитрым копи-пастом, собирая данные с разных мест (где по чуть-чуть дополняют Ваш код), потом Вы удаляете темы (прошлые темы), чтобы нельзя было отследить историю Вашего нежелания самой подумать, и создаете новые (где объединяете все правки, причем невсегда удачно) темы.
Ай-яй-яй....
Во-первых, я думаю сама, ищу по книгам, как написать и выдвигаю свои идеи, а не чьи либо. И не нужно меня обвинять в том, чего я не делала. Во-вторых я создавала несколько тем, не спорю косяк за мной есть. Но делала я это, т к уже новый код писала и нужна была помощь с ним, а не с предыдущим. И в третьих, вы написали данную прогу на делфи, а мне он не известен, так что код оказался бесполезен. И да я написала эту программу в итоге, после долгого мозгового штурма, а не "слизала" от куда нибудь
 
И в третьих, вы написали данную прогу на делфи, а мне он не известен, так что код оказался бесполезен.

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

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

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

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

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

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

P.S. И я надеюсь, что леди OKEN будет также четко и внимательно следить за подобными махинациями.
 
Ах, да... к чему я всё это...
Когда я написал вам код, там были 3 ограничения...
К сожалению, этот код не сохранился, т.к. вы создали много одинаковых тем и они были удалены.
Вам были расписаны 3 ограничения, которые нужно было исправить вам лично (ибо основную помощь вам оказали).

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

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

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

а против OKEN я вообще ничего не имею, и прекрасно понимаю ее замечания, справедливые и обоснованные, в отличии от вас
 
А про махинации это вы бред какой то говорите. Я же не продаю ваш код и не выдаю его за свой, а переделываю так, как могу. Тем более что в итоге им я не воспользовалась

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

Да, ё-маё! Подумайте, что Вам написали!
"махинации" = создание кучи тем
"также четко и внимательно следит" = это сарказм, ибо была удалена не идентичная тема, а с ответами

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

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



Добавлено:
Код:
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.

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

вам что то еще?
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab