35_OSSZEADAS_1.py

35_OSSZEADAS_1.py

A set <int> szamok; utasítással létrehoztuk a szamok halmazt. Itt gyűjtjük a lottószámokat. A kiírásnálmegvizsgáljuk, hogy a lehetséges értékek közül mekyek azok, amelyek a szamok halmaz típusú változó elemei.

Az A ill. B szám számjegyeit látjuk a táblázatban. Az azonos helyi értékű számokat egymás alá írtuk- Az eredményt a C sorba írjuk.

Legyen I s számjegyek sorszáma, indexe, akkor A(I) az A szám I.eleme, B(I) a B szám I. eleme.

Az összeadás algoritmusa:

T=0;

Ciklus I=0 –tól 5-ig

C[I]=(A[I]+B[I]+T) / 10

T=( A[I]+B[I]+T) % 10

Ciklus vége

Programban a számjegyeket az a és b konstans vektorban adjuk meg.

OSSZEADAS_1.py

n = 7

a = [1, 2, 4, 6, 2, 3, 0]

b = [6, 9, 8, 3, 8, 0, 0]

c = [0] * n

t = 0

for i in range(n):

     osszeg = a[i] + b[i] + t

     c[i] = osszeg % 10

     t = osszeg // 10

print("\n" + " ".join(str(x) for x in c[::-1]))

Itt a str(x) minden egyes elemet (x) a c listából (fordított sorrendben, [::-1] használatával) karakterlánccá alakít. A for x in c[::-1] rész gondoskodik arról, hogy végigmenjünk a c lista elemein.

"Az összeadás hősei: A számok kalandja"

Egyszer volt, hol nem volt, volt egyszer egy kisváros, ahol a számok különleges életet éltek. Az 1-es, 2-es, 4-es, 6-os, 2-es, 3-as és 0-s számok egy varázslatos sorozat részei voltak, akárcsak a 6-os, 9-es, 8-as, 3-as, 8-as, 0-s és 0-s számok. Egy nap a számok rájöttek, hogy szükségük van egy tervre, hogy együttműködve valami nagyobbat alkossanak. Ekkor érkezett Liza, a város fiatal programozója, aki vállalta, hogy megoldja a problémát a segítségükkel.

"Megoldjuk ezt egy kis programmal!" – mondta Liza, és elővette laptopját, hogy megírja az "OSSZEADAS_1.py" nevű programot. Először meghatározta a számok hosszát:

n = 7

"Mivel mindkét sorozat 7 számjegyből áll, n értékét 7-re állítjuk" – magyarázta.

Ezután beírta az első és a második számjegysorozatot:

a = [1, 2, 4, 6, 2, 3, 0]b = [6, 9, 8, 3, 8, 0, 0]

"Ezek a sorozatok képviselik az összeadandó számokat!" – tette hozzá izgatottan.

"Most készítünk egy helyet az eredménynek" – folytatta, és megírta a következő sort:

c = [0] * n

"Ez a lista tele lesz nullákkal, amíg ki nem számítjuk az összeget."

Ezután beállította a kezdeti átvitel értékét:

t = 0

"Az t változó az átvitel tárolására szolgál, ha két számjegy összege meghaladja a 10-et."

Liza ezután megírta a ciklust, amely végighalad a számjegyeken:

for i in range(n):

"Ez a ciklus biztosítja, hogy minden számjeggyel foglalkozzunk" – magyarázta.

A belső számításokat így végezte el:

osszeg = a[i] + b[i] + t

"Összeadjuk az aktuális számjegyeket és az esetleges átvitel értékét."

A maradékot az aktuális számjegy helyére írta:

c[i] = osszeg % 10

"Az osszeg % 10 biztosítja, hogy csak a maradékot kapjuk meg, ami az adott helyértékre kerül."

Végül frissítette az átvitel értékét:

t = osszeg // 10

"Ez az osszeg // 10 kiszámítja, hogy mekkora az átvitel a következő helyértékre."

Amikor a ciklus befejeződött, az eredményt a következőképpen jelenítette meg:

print("\n" + " ".join(str(x) for x in c[::-1]))

"Mivel az eredmény fordított sorrendben számolódik ki, visszafordítjuk a listát a [::-1] segítségével, hogy a helyes sorrendben kapjuk meg a számjegyeket."

Liza lefuttatta a programot, és a képernyőn megjelent az eredmény:

7 1 3 9 0 3 0

"Ez az összeg!" – mondta büszkén. A város lakói Liza zsenialitását ünnepelték, és azóta is az "OSSZEADAS_1.py" programot használják minden összetett számításra.