Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 02.03.2019
Сообщений: 5

Двойной сумматор

02.03.2019, 15:31. Показов 2458. Ответов 2

Студворк — интернет-сервис помощи студентам
Мне надо,чтобы при выполнении одного из условий i увеличилось на 2,но так как цикл снова заходит в for,то i увеличивается соизмерительно шагу то есть только на единицу
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
a = (input('Введите первое двоичное число :'))
b = (input('Введите второе двоичное число :'))
p0 = 0 #перенос из прошлого разряда
if (len(a) > len(b)): #добавляем нули,если количество разрядов в а больше,чем в b
    b = '0'*(len(a) - len(b)) + b
else:
    a = '0'*(len(b) - len(a)) + a #и иначе
a = list(reversed(a))
b = list(reversed(b))
c = list('')
for i in range(len(a)):
    if(int(a[i]) + int(b[i]) == 2 and p0 == 0):
        c.insert(i, 0)
        p0 += 1
    elif (int(a[i]) + int(b[i]) == 2 and p0 == 1):
        c.insert(i, 1)
        c.insert(i+1, 1)
        p0 -= 1
        i = i + 2
    elif (int(a[i]) + int(b[i]) == 1 and p0 == 0):
        c.insert(i, 1)
    elif (int(a[i]) + int(b[i]) == 1 and p0 == 1):
        c.insert(i, 0)
        p0 -= 1
    elif (int(a[i]) + int(b[i]) == 0 and p0 == 0):
        c.insert(i, 0)
    elif (int(a[i]) + int(b[i]) == 0 and p0 == 1):
        c.insert(i, 1)
        p0 -= 1
k = len(a)
if (p0 == 1):
    c.insert(k, 1)
c = list(reversed(c))
print(c)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.03.2019, 15:31
Ответы с готовыми решениями:

Сумматор
Петя хочет выбирать из последовательности чисел те, которые удовлетворяют заданному условию, и суммировать их. Условие такое: все числа...

Сумматор
Что будет на выходе у сумматора, если на одно плечо не подана информация?

Сумматор на ОУ
Здравствуйте, подскажите как верно подключить к сумматору входные напряжения? Есть два ЭДС на -3В и 5В. У первого надо добиться...

2
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
02.03.2019, 15:54
Зачем столько раз приводить строковое значение к int? Не проще сразу иметь массив целочисленных значений?
Цитата Сообщение от nik_gri Посмотреть сообщение
то i увеличивается соизмерительно шагу
i это переменная цикла - ее не нужно изменять. Это бессмысленно. Ее шаг задается в самой функций range - и больше не изменяется.
Python
1
2
3
>>> list(range(0,10,2))  # шаг - 2
[0, 2, 4, 6, 8]
>>>
0
0 / 0 / 0
Регистрация: 02.03.2019
Сообщений: 5
03.03.2019, 07:29  [ТС]
разобрался
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
a = (input('Введите первое двоичное число: '))
b = (input('Введите первое двоичное число: '))
p = 0 #перенос из прошлого разряда
s = 0
M = ''
if (len(a) > len(b)): #добавляем нули,если количество разрядов в а больше,чем в b
    b = '0' * (len(a) - len(b)) + b
else:
    a = '0' * (len(b) - len(a)) + a #и иначе
a = int(a)
b = int(b)
while (a > 0):
    l = ''
    x = int(a) % 10 #выделяем разряд
    y = int(b) % 10 #выделяем разряд
    s = x + y + p #считаем сумму разрядов и перенос из прошлого разряда
    if (x == 1 and y == 1):#если равны,то считаем,что перенос равен 1
        p = 1 
    else :#иначе
        p = 0
    if (s == 2):#так как сумма по модуля равна 2,то в строку будем записывать 0,а перенос берем за 1
        s = 0
        p = 1
    if (s == 3):#сумма по модулю и перенос дает 3,из чего следует,что в строку записываем 1 и перенос берем за 1
        s = 1
        p = 1 
    a =int(a/10) #отсекаем разряд
    b =int(b/10) #отсекаем разряд
    if (s == 0): #записываем в строку полученную сумму разряда от каждой итерации
        l = l + '0'
    if (s == 1):
        l = l + str(s)
    M =l + M #итоговая строка
if p==1:#если перенос из прошлого разряда остался равен 1,то вписываем в строку
    M = "1" + M
print(M)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.03.2019, 07:29
Помогаю со студенческими работами здесь

Сумматор
дали задание , не понимаю как сделать , спасибо заранее

Сумматор
Можете привести код оптимизированного сумматора?

Сумматор
Это сумматор! Но почему то работает с ошибкой ! Значение переменной флаг не изменяется! public partial class Form1 : Form ...

Сумматор
Здраствуйте, помогите пожалуйста дано вот такое вот задание Информация предоставляется 8 разрядными комбинациями(двоичный код)...

Сумматор
Очень нужна помощь!Необходимо синтезировать 4-х разрядный сумматор на элементах И-НЕ.Заранее спасибо!


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита, которое может. . .
Команды "Заполнить" и "Очистить" на форме документа
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". На примере нетипового документа разработанного в конфигурации КА2. В качестве источника данных указан регистр накопления, в который записываются данные о. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru