2590 - Remove Last 2: Difference between revisions

From Bitnami MediaWiki
Pagină nouă: <nowiki>== Cerință ==</nowiki> Se citește un număr <code>n</code> într-o variabilă de tip întreg pe <code>16</code> biți cu semn. Setați la valoarea <code>0</code> cei mai puțin semnificativi doi biți ai săi apoi afișați valoarea variabilei. <nowiki>== Date de intrare ==</nowiki> Programul citește de la tastatură numărul <code>n</code>. <nowiki>== Date de ieșire ==</nowiki> Programul va afișa pe ecran valoarea cerută. <nowiki>== Restricții de preciz...
 
 
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<nowiki>== Cerință ==</nowiki>
== Cerință ==
Se citește un număr '''n''' într-o variabilă de tip întreg pe 16 biți cu semn. Setați la valoarea 0 cei mai puțin semnificativi doi biți ai săi apoi afișați valoarea variabilei.
== Date de intrare ==
Programul citește de la tastatură numărul '''n'''.
== Date de ieșire ==
Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele de intrare corespund restricțiilor impuse." Programul va afișa pe ecran valoarea cerută. În caz contrar, se va afișa pe ecran: "Datele de intrare nu corespund restricțiilor impuse."


Se citește un număr <code>n</code> într-o variabilă de tip întreg pe <code>16</code> biți cu semn. Setați la valoarea <code>0</code> cei mai puțin semnificativi doi biți ai săi apoi afișați valoarea variabilei.
== Restricții de precizări ==
*-32768 &les; '''n''' &les; 32768
== Exemplul 1==
; Intrare
: 5
; Ieșire
: Datele introduse corespund restricțiilor impuse.
: 4
== Exemplul 2 ==
; Intrare
: 42
; Ieșire
: Datele introduse corespund restricțiilor impuse.
: 40
== Rezolvare ver. 1 ==
<syntaxhighlight lang="python" line="1" start="1">
def validare(n):
    return n.isdigit() and -32768 <= int(n) <= 32767


<nowiki>== Date de intrare ==</nowiki>


Programul citește de la tastatură numărul <code>n</code>.
def removelast(n):
    # Setam cei mai putin semnificativi 2 biti la 0
    n = n & ~0x3  # ~0x3 este echivalent cu 0xFFFC (toți biții sunt 1, mai puțin ultimii 2 care sunt 0)


<nowiki>== Date de ieșire ==</nowiki>
    print("Valoarea dupa setarea celor mai putin semnificativi 2 biti la 0: ", n)


Programul va afișa pe ecran valoarea cerută.


<nowiki>== Restricții de precizări ==</nowiki>
if __name__ == "__main__":
    n = input("Introduceti numarul: ")
    if validare(n):
        n = int(n)


<nowiki>*</nowiki>-32768 <nowiki>&</nowiki>les; n <nowiki>&</nowiki>les; 32768
        print("Datele introduse corespund restricțiilor impuse.")
 
        removelast(n)
<nowiki>== Exemplul 1==</nowiki>
   
 
    else:
<nowiki>;</nowiki> Intrare
        print("Datele introduse nu corespund restricțiilor impuse.")
 
</syntaxhighlight>
<nowiki>:</nowiki> 5
 
<nowiki>;</nowiki> Ieșire
 
<nowiki>:</nowiki> Datele introduse corespund restricțiilor impuse.
 
<nowiki>:</nowiki> 4
 
<nowiki>== Exemplul 2 ==</nowiki>
 
<nowiki>;</nowiki> Intrare
 
<nowiki>:</nowiki> 42
 
<nowiki>;</nowiki> Ieșire
 
<nowiki>:</nowiki> Datele introduse corespund restricțiilor impuse.
 
<nowiki>:</nowiki> 40
 
<nowiki>== Rezolvare ver. 1 ==</nowiki>

Latest revision as of 19:32, 24 April 2023

Cerință

Se citește un număr n într-o variabilă de tip întreg pe 16 biți cu semn. Setați la valoarea 0 cei mai puțin semnificativi doi biți ai săi apoi afișați valoarea variabilei.

Date de intrare

Programul citește de la tastatură numărul n.

Date de ieșire

Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele de intrare corespund restricțiilor impuse." Programul va afișa pe ecran valoarea cerută. În caz contrar, se va afișa pe ecran: "Datele de intrare nu corespund restricțiilor impuse."

Restricții de precizări

  • -32768 ⩽ n ⩽ 32768

Exemplul 1

Intrare
5
Ieșire
Datele introduse corespund restricțiilor impuse.
4

Exemplul 2

Intrare
42
Ieșire
Datele introduse corespund restricțiilor impuse.
40

Rezolvare ver. 1

<syntaxhighlight lang="python" line="1" start="1"> def validare(n):

   return n.isdigit() and -32768 <= int(n) <= 32767


def removelast(n):

   # Setam cei mai putin semnificativi 2 biti la 0
   n = n & ~0x3  # ~0x3 este echivalent cu 0xFFFC (toți biții sunt 1, mai puțin ultimii 2 care sunt 0)
   print("Valoarea dupa setarea celor mai putin semnificativi 2 biti la 0: ", n)


if __name__ == "__main__":

   n = input("Introduceti numarul: ")
   if validare(n):
       n = int(n)
       print("Datele introduse corespund restricțiilor impuse.")
       removelast(n)
   
   else:
       print("Datele introduse nu corespund restricțiilor impuse.")

</syntaxhighlight>