<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=0313_-_Diagonale</id>
	<title>0313 - Diagonale - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=0313_-_Diagonale"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0313_-_Diagonale&amp;action=history"/>
	<updated>2026-05-01T04:05:24Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0313_-_Diagonale&amp;diff=4212&amp;oldid=prev</id>
		<title>Alexandra Leș: Pagină nouă: == Cerinţa == Se dă o matrice cu &#039;&#039;&#039;n&#039;&#039;&#039; linii şi &#039;&#039;&#039;n&#039;&#039;&#039; coloane şi elemente numere naturale. Calculaţi diferenţa în valoare absolută dintre sumele elementelor de pe cele două diagonale. == Date de intrare == Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n*n&#039;&#039;&#039; numere naturale, separate prin spaţii, reprezentând elementele matricei, linie cu linie. == Date de ieşire == Dacă datele sunt introduse corect,pe ecran se va afișa :&#039;&#039;&#039;&quot;Datele sunt i...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0313_-_Diagonale&amp;diff=4212&amp;oldid=prev"/>
		<updated>2023-04-24T18:04:43Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: == Cerinţa == Se dă o matrice cu &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; linii şi &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; coloane şi elemente numere naturale. Calculaţi diferenţa în valoare absolută dintre sumele elementelor de pe cele două diagonale. == Date de intrare == Programul citește de la tastatură numărul &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039;, iar apoi &amp;#039;&amp;#039;&amp;#039;n*n&amp;#039;&amp;#039;&amp;#039; numere naturale, separate prin spaţii, reprezentând elementele matricei, linie cu linie. == Date de ieşire == Dacă datele sunt introduse corect,pe ecran se va afișa :&amp;#039;&amp;#039;&amp;#039;&amp;quot;Datele sunt i...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Cerinţa ==&lt;br /&gt;
Se dă o matrice cu &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; linii şi &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; coloane şi elemente numere naturale. Calculaţi diferenţa în valoare absolută dintre sumele elementelor de pe cele două diagonale.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039;, iar apoi &amp;#039;&amp;#039;&amp;#039;n*n&amp;#039;&amp;#039;&amp;#039; numere naturale, separate prin spaţii, reprezentând elementele matricei, linie cu linie.&lt;br /&gt;
== Date de ieşire ==&lt;br /&gt;
Dacă datele sunt introduse corect,pe ecran se va afișa :&amp;#039;&amp;#039;&amp;#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&amp;#039;&amp;#039;&amp;#039;,apoi pe un rând nou numărul &amp;#039;&amp;#039;&amp;#039;D&amp;#039;&amp;#039;&amp;#039;, reprezentând valoarea calculată.În cazul contrar,se va afișa pe ecran &amp;#039;&amp;#039;&amp;#039;&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* 1 &amp;amp;les; n &amp;amp;les; 20&lt;br /&gt;
* elementele matricei vor fi mai mici decât 10000&lt;br /&gt;
== Exemplu ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 4&lt;br /&gt;
: 8 3 3 7 &lt;br /&gt;
: 1 1 6 5 &lt;br /&gt;
: 8 7 1 1 &lt;br /&gt;
: 9 8 7 1&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
: 18&lt;br /&gt;
== Explicație == &lt;br /&gt;
Sumele elementelor pe cele două diagonale sunt: &amp;#039;&amp;#039;&amp;#039;11&amp;#039;&amp;#039;&amp;#039; şi &amp;#039;&amp;#039;&amp;#039;29&amp;#039;&amp;#039;&amp;#039;. Diferenţa în valoare absolută este: &amp;#039;&amp;#039;&amp;#039;18&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
from typing import List&lt;br /&gt;
&lt;br /&gt;
def validare_date(n: int, matrice: List[List[int]]) -&amp;gt; bool:&lt;br /&gt;
    # Verifică dacă dimensiunea matricei este în intervalul corect&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 20:&lt;br /&gt;
        return False&lt;br /&gt;
    # Verifică dacă toate elementele matricei sunt în intervalul corect&lt;br /&gt;
    for rand in matrice:&lt;br /&gt;
        for elem in rand:&lt;br /&gt;
            if elem &amp;lt; 0 or elem &amp;gt;= 10000:&lt;br /&gt;
                return False&lt;br /&gt;
    # Returnează True dacă matricea este validă&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def calculeaza_diferenta_diagonalelor(n: int, matrice: List[List[int]]) -&amp;gt; int:&lt;br /&gt;
    # Inițializează sumele diagonalelor cu 0&lt;br /&gt;
    suma_dp, suma_ds = 0, 0&lt;br /&gt;
    # Calculează sumele elementelor de pe cele două diagonale&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        for j in range(n):&lt;br /&gt;
            if i == j:&lt;br /&gt;
                suma_dp += matrice[i][j]&lt;br /&gt;
            if i + j == n - 1:&lt;br /&gt;
                suma_ds += matrice[i][j]&lt;br /&gt;
    # Returnează diferența dintre cele două sume, calculată ca valoare absolută&lt;br /&gt;
    return abs(suma_dp - suma_ds)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;#039;__main__&amp;#039;:&lt;br /&gt;
    # Citește dimensiunea matricei de la tastatură&lt;br /&gt;
    n = int(input())&lt;br /&gt;
    # Inițializează matricea cu valorile citite de la tastatură&lt;br /&gt;
    matrice = []&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        rand = list(map(int, input().split()))&lt;br /&gt;
        matrice.append(rand)&lt;br /&gt;
    # Verifică dacă matricea este validă și afișează mesajul corespunzător&lt;br /&gt;
    if validare_date(n, matrice):&lt;br /&gt;
        print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
        # Dacă matricea este validă, calculează diferența dintre diagonale și o afișează&lt;br /&gt;
        D = calculeaza_diferenta_diagonalelor(n, matrice)&lt;br /&gt;
        print(D)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restrictiilor impuse.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Alexandra Leș</name></author>
	</entry>
</feed>