<?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=1007_-_Matrice_7</id>
	<title>1007 - Matrice 7 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=1007_-_Matrice_7"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1007_-_Matrice_7&amp;action=history"/>
	<updated>2026-05-03T03:38:42Z</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=1007_-_Matrice_7&amp;diff=5067&amp;oldid=prev</id>
		<title>AndorGiulia: Pagină nouă: Sursa: [https://www.pbinfo.ro/probleme/1007/matrice7] ---- == Cerinţa == Se consideră o matrice cu &#039;&#039;&#039;n&#039;&#039;&#039; linii şi &#039;&#039;&#039;m&#039;&#039;&#039; coloane şi elemente numere naturale. Să se modifice matricea în felul următor: toate elementele egale cu valoarea maximă din matrice se înlocuiesc cu valoarea minimă de pe coloana lor. == Date de intrare == Fișierul de intrare &#039;&#039;&#039;matrice7.in&#039;&#039;&#039; conține pe prima linie numerele &#039;&#039;&#039;n m&#039;&#039;&#039;, iar următoarele &#039;&#039;&#039;n&#039;&#039;&#039; linii câte &#039;&#039;&#039;m&#039;&#039;&#039; numere natu...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1007_-_Matrice_7&amp;diff=5067&amp;oldid=prev"/>
		<updated>2023-04-27T18:48:40Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: Sursa: [https://www.pbinfo.ro/probleme/1007/matrice7] ---- == Cerinţa == Se consideră o matrice cu &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; linii şi &amp;#039;&amp;#039;&amp;#039;m&amp;#039;&amp;#039;&amp;#039; coloane şi elemente numere naturale. Să se modifice matricea în felul următor: toate elementele egale cu valoarea maximă din matrice se înlocuiesc cu valoarea minimă de pe coloana lor. == Date de intrare == Fișierul de intrare &amp;#039;&amp;#039;&amp;#039;matrice7.in&amp;#039;&amp;#039;&amp;#039; conține pe prima linie numerele &amp;#039;&amp;#039;&amp;#039;n m&amp;#039;&amp;#039;&amp;#039;, iar următoarele &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; linii câte &amp;#039;&amp;#039;&amp;#039;m&amp;#039;&amp;#039;&amp;#039; numere natu...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/1007/matrice7]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se consideră o matrice cu &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; linii şi &amp;#039;&amp;#039;&amp;#039;m&amp;#039;&amp;#039;&amp;#039; coloane şi elemente numere naturale. Să se modifice matricea în felul următor: toate elementele egale cu valoarea maximă din matrice se înlocuiesc cu valoarea minimă de pe coloana lor.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fișierul de intrare &amp;#039;&amp;#039;&amp;#039;matrice7.in&amp;#039;&amp;#039;&amp;#039; conține pe prima linie numerele &amp;#039;&amp;#039;&amp;#039;n m&amp;#039;&amp;#039;&amp;#039;, iar următoarele &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; linii câte &amp;#039;&amp;#039;&amp;#039;m&amp;#039;&amp;#039;&amp;#039; numere naturale, reprezentând elementele matricei.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Pe ecran se va afișa mesajul: &amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;. Fișierul de ieșire &amp;#039;&amp;#039;&amp;#039;matrice7.out&amp;#039;&amp;#039;&amp;#039; va conține matricea modificată, câte o linie a matricei pe o linie a fişierului, elementele fiecărei linii fiind separate prin exact un spaţiu. În cazul în care datele introduse de la tastatură nu îndeplinesc cerințele enunțate, programul va afișa &amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;1 ≤ n, m ≤ 100&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* elementele matricei vor fi mai mici decât &amp;#039;&amp;#039;&amp;#039;1 000 000 000&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
== Exemple ==&lt;br /&gt;
=== Exemplu 1 ===&lt;br /&gt;
; &amp;#039;&amp;#039;&amp;#039;matrice7.in&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
: 3 4&lt;br /&gt;
: 2 6 7 3&lt;br /&gt;
: 7 1 7 1&lt;br /&gt;
: 5 3 1 2&lt;br /&gt;
; &amp;#039;&amp;#039;&amp;#039;matrice7.out&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
: 2 6 1 3 &lt;br /&gt;
: 2 1 1 1 &lt;br /&gt;
: 5 3 1 2 &lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
import math&lt;br /&gt;
&lt;br /&gt;
def citire_matrice():&lt;br /&gt;
    try:&lt;br /&gt;
        with open(&amp;quot;matrice7.in&amp;quot;, &amp;quot;r&amp;quot;) as fin:&lt;br /&gt;
            n, m = map(int, fin.readline().split())&lt;br /&gt;
            if 1 &amp;lt;= n &amp;lt;= 100 and  1 &amp;lt;= m &amp;lt;= 100:&lt;br /&gt;
                print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
            else:&lt;br /&gt;
                print(&amp;quot;Datele nu sunt conform restrictiilor impuse.&amp;quot;)&lt;br /&gt;
                exit()&lt;br /&gt;
&lt;br /&gt;
            matrix = []&lt;br /&gt;
            for linie in range(n):&lt;br /&gt;
                linie_matrice = []&lt;br /&gt;
                valori = fin.readline().split()&lt;br /&gt;
                for coloana in range(m):&lt;br /&gt;
                    try:&lt;br /&gt;
                        valoare = int(valori[coloana])&lt;br /&gt;
                        if valoare &amp;lt;= 1000000000:&lt;br /&gt;
                            print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
                            linie_matrice.append(valoare)&lt;br /&gt;
                        else:&lt;br /&gt;
                            print(&amp;quot;Datele nu sunt conform restrictiilor impuse.&amp;quot;)&lt;br /&gt;
                            exit()&lt;br /&gt;
                    except ValueError:&lt;br /&gt;
                        print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
                        exit()&lt;br /&gt;
                matrix.append(linie_matrice)&lt;br /&gt;
&lt;br /&gt;
            return n, m, matrix&lt;br /&gt;
    except FileNotFoundError:&lt;br /&gt;
        print(&amp;quot;Fisierul matrice7.in nu exista.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
def matrice7(n, m, matrix):&lt;br /&gt;
    max_val = -1&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        for j in range(m):&lt;br /&gt;
            if matrix[i][j] &amp;gt; max_val:&lt;br /&gt;
                max_val = matrix[i][j]&lt;br /&gt;
&lt;br /&gt;
    min_col = [math.inf] * m&lt;br /&gt;
    for j in range(m):&lt;br /&gt;
        for i in range(n):&lt;br /&gt;
            if matrix[i][j] &amp;lt; min_col[j]:&lt;br /&gt;
                min_col[j] = matrix[i][j]&lt;br /&gt;
&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        for j in range(m):&lt;br /&gt;
            if matrix[i][j] == max_val:&lt;br /&gt;
                matrix[i][j] = min_col[j]&lt;br /&gt;
&lt;br /&gt;
    with open(&amp;quot;matrice7.out&amp;quot;, &amp;quot;w&amp;quot;) as fout:&lt;br /&gt;
        for i in range(n):&lt;br /&gt;
            for j in range(m):&lt;br /&gt;
                fout.write(str(matrix[i][j]) + &amp;quot; &amp;quot;)&lt;br /&gt;
            fout.write(&amp;quot;\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
if _name_ == &amp;quot;_main_&amp;quot;:&lt;br /&gt;
    n, m, matrix = citire_matrice()&lt;br /&gt;
    matrice7(n, m, matrix)&lt;br /&gt;
    print(&amp;quot;Procesul s-a incheiat cu succes!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicații ==&lt;br /&gt;
 Funcția citire_matrice()&lt;br /&gt;
 Descriere: Această funcție se ocupă de citirea datelor din fișierul &amp;quot;matrice7.in&amp;quot; și construirea matricei corespunzătoare. În cazul în care fișierul nu există sau datele nu sunt conforme cu restricțiile impuse, se va afișa un mesaj de eroare corespunzător.&lt;br /&gt;
 Parametri: Funcția nu primește parametri.&lt;br /&gt;
 Return: Funcția returnează trei valori: n (numărul de linii al matricei), m (numărul de coloane al matricei) și matrix (matricea propriu-zisă, reprezentată sub formă de listă de liste).&lt;br /&gt;
 Funcția matrice7(n, m, matrix)&lt;br /&gt;
 Descriere: Această funcție primește ca parametri dimensiunile matricei și matricea propriu-zisă și se ocupă de efectuarea operațiilor specifice cerinței și de scrierea matricei rezultate în fișierul &amp;quot;matrice7.out&amp;quot;.&lt;br /&gt;
 Parametri: Funcția primește trei parametri: n (numărul de linii al matricei), m (numărul de coloane al matricei) și matrix (matricea propriu-zisă, reprezentată sub formă de listă de liste).&lt;br /&gt;
 Return: Funcția nu returnează niciun rezultat.&lt;br /&gt;
 Funcția main()&lt;br /&gt;
 Descriere: Această funcție reprezintă punctul de pornire al programului. Se apelează funcția citire_matrice() pentru a obține matricea de intrare și se apelează apoi funcția matrice7() pentru a obține matricea rezultată. &lt;br /&gt;
 De asemenea, se afișează un mesaj de confirmare a terminării programului.&lt;br /&gt;
 Parametri: Funcția nu primește parametri.&lt;br /&gt;
 Return: Funcția nu returnează niciun rezultat.&lt;/div&gt;</summary>
		<author><name>AndorGiulia</name></author>
	</entry>
</feed>