Строки / Pascal

Статус
Закрыто для дальнейших ответов.

Smile1995

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

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]
 

Senset

Well-known member
11.09.2006
136
0
#2
Что-то мне подсказывает (походу логика), что Вы занимаетесь довольно хитрым копи-пастом, собирая данные с разных мест (где по чуть-чуть дополняют Ваш код), потом Вы удаляете темы (прошлые темы), чтобы нельзя было отследить историю Вашего нежелания самой подумать, и создаете новые (где объединяете все правки, причем невсегда удачно) темы.
Ай-яй-яй....
 

hosm

* so what *
18.05.2009
2 442
6
#3
темы-дубликаты автора тут на форуме удалила я. Вроде бы они все одинаковые были.
а по поводу кода - править надо описания и код: смешались в кучу строки, числа (у чисел внезапно появился индекс, у строк - сложение с числом), также есть ошибка в логике вычисления в рамках приведенного кода- там, где summa_01[i-1]:='1'; - значение перезатирается в цикле, тут надо выставить признак переполнения и потом анализировать на следующем шаге - заполнять результат с учетом этого переполнения и сбрасывать признак переполнения, если он уже не надо.
 

Smile1995

New member
10.09.2013
0
0
#4
Что-то мне подсказывает (походу логика), что Вы занимаетесь довольно хитрым копи-пастом, собирая данные с разных мест (где по чуть-чуть дополняют Ваш код), потом Вы удаляете темы (прошлые темы), чтобы нельзя было отследить историю Вашего нежелания самой подумать, и создаете новые (где объединяете все правки, причем невсегда удачно) темы.
Ай-яй-яй....
Во-первых, я думаю сама, ищу по книгам, как написать и выдвигаю свои идеи, а не чьи либо. И не нужно меня обвинять в том, чего я не делала. Во-вторых я создавала несколько тем, не спорю косяк за мной есть. Но делала я это, т к уже новый код писала и нужна была помощь с ним, а не с предыдущим. И в третьих, вы написали данную прогу на делфи, а мне он не известен, так что код оказался бесполезен. И да я написала эту программу в итоге, после долгого мозгового штурма, а не "слизала" от куда нибудь
 

Senset

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

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

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

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

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

Senset

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

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

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

Smile1995

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

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

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

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

Senset

Well-known member
11.09.2006
136
0
#8
А про махинации это вы бред какой то говорите. Я же не продаю ваш код и не выдаю его за свой, а переделываю так, как могу. Тем более что в итоге им я не воспользовалась

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

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

Smile1995

New member
10.09.2013
0
0
#9
Здесь же мы видим, что Вы пытаетесь исправить эти ограничения чужими силами... это плохо.
А и еще. Я не просила написать за меня код, а просила просто объяснить. Мне так то потом еще зарабатывать "написанием кода" и что за меня вечно кто то будет писать? Это абсолютно не логично и лично меня такая перспектива не устраивает



Добавлено:
Код:
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.
Добавлено:
отлично, теперь напишите его так, чтобы он работал, потому что начальную помощь вам оказали
вам что то еще?
 
Статус
Закрыто для дальнейших ответов.