<?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=1868_-_Prosirx</id>
	<title>1868 - Prosirx - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=1868_-_Prosirx"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1868_-_Prosirx&amp;action=history"/>
	<updated>2026-05-01T06:39:25Z</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=1868_-_Prosirx&amp;diff=8850&amp;oldid=prev</id>
		<title>Codrut Borcutean: Pagină nouă: == Cerinţa == Se consideră un text format din cel mult &#039;&#039;&#039;200&#039;&#039;&#039; de caractere litere mici și spații. Cuvintele din text sunt separate prin unul sau mai multe spații. Scrieti un program care citește textul și care:  &#039;&#039;&#039;a)&#039;&#039;&#039; determină numărul de consoane din textul citit;  &#039;&#039;&#039;b)&#039;&#039;&#039; înlocuiește prima literă a fiecărui cuvânt din textul citit cu litera X (mare);  &#039;&#039;&#039;c)&#039;&#039;&#039; modifică textul citit prin aranjarea în ordine lexicografică a tuturor cuvintelor din text...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1868_-_Prosirx&amp;diff=8850&amp;oldid=prev"/>
		<updated>2024-01-03T14:37:29Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: == Cerinţa == Se consideră un text format din cel mult &amp;#039;&amp;#039;&amp;#039;200&amp;#039;&amp;#039;&amp;#039; de caractere litere mici și spații. Cuvintele din text sunt separate prin unul sau mai multe spații. Scrieti un program care citește textul și care:  &amp;#039;&amp;#039;&amp;#039;a)&amp;#039;&amp;#039;&amp;#039; determină numărul de consoane din textul citit;  &amp;#039;&amp;#039;&amp;#039;b)&amp;#039;&amp;#039;&amp;#039; înlocuiește prima literă a fiecărui cuvânt din textul citit cu litera X (mare);  &amp;#039;&amp;#039;&amp;#039;c)&amp;#039;&amp;#039;&amp;#039; modifică textul citit prin aranjarea în ordine lexicografică a tuturor cuvintelor din text...&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 consideră un text format din cel mult &amp;#039;&amp;#039;&amp;#039;200&amp;#039;&amp;#039;&amp;#039; de caractere litere mici și spații. Cuvintele din text sunt separate prin unul sau mai multe spații. Scrieti un program care citește textul și care:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;a)&amp;#039;&amp;#039;&amp;#039; determină numărul de consoane din textul citit;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;b)&amp;#039;&amp;#039;&amp;#039; înlocuiește prima literă a fiecărui cuvânt din textul citit cu litera X (mare);&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;c)&amp;#039;&amp;#039;&amp;#039; modifică textul citit prin aranjarea în ordine lexicografică a tuturor cuvintelor din text și separarea lor prin câte un singur spațiu.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fișierul de intrare &amp;#039;&amp;#039;&amp;#039;prosirxin.txt&amp;#039;&amp;#039;&amp;#039; conține pe prima linie textul.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Fișierul de ieșire &amp;#039;&amp;#039;&amp;#039;prosirxout.txt&amp;#039;&amp;#039;&amp;#039; va conține:&lt;br /&gt;
&lt;br /&gt;
- pe prima linie răspunsul la cerința &amp;#039;&amp;#039;&amp;#039;a)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
- pe a doua linie răspunsul la cerința &amp;#039;&amp;#039;&amp;#039;b)&amp;#039;&amp;#039;&amp;#039;  &lt;br /&gt;
&lt;br /&gt;
- pe a treia linie răspunsul la cerința &amp;#039;&amp;#039;&amp;#039;c)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* textul este format din cel mult &amp;#039;&amp;#039;&amp;#039;200&amp;#039;&amp;#039;&amp;#039; de caractere, doar litere mici sau spații&lt;br /&gt;
== Exemplu 1 ==&lt;br /&gt;
; prosirxin.txt&lt;br /&gt;
 oana   este    la scoala &lt;br /&gt;
; prosirxout.txt&lt;br /&gt;
 Datele de intrare corespund restrictiilor impuse&lt;br /&gt;
 7 &lt;br /&gt;
 Xana   Xste    Xa Xcoala &lt;br /&gt;
 este la oana scoala &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Exemplu 2 ==&lt;br /&gt;
; prosirxin.txt&lt;br /&gt;
 oana   este    la scoala999&lt;br /&gt;
; prosirxout.txt&lt;br /&gt;
 Datele de intrare nu corespund restrictiilor impuse&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Explicație ==&lt;br /&gt;
 Sunt &amp;#039;&amp;#039;&amp;#039;7&amp;#039;&amp;#039;&amp;#039; consoane în textul citit.&lt;br /&gt;
&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def analyze_text(text):&lt;br /&gt;
    # Analizează textul și returnează numărul de consoane,&lt;br /&gt;
    # textul cu prima literă a fiecărui cuvânt înlocuită cu &amp;#039;X&amp;#039;&lt;br /&gt;
    # și textul cu cuvintele aranjate în ordine lexicografică&lt;br /&gt;
    consoane = &amp;#039;bcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ&amp;#039;&lt;br /&gt;
    vocale = &amp;#039;aeiouAEIOU&amp;#039;&lt;br /&gt;
    nr_consoane = sum(c in consoane for c in text)&lt;br /&gt;
    cuvinte = text.split()&lt;br /&gt;
    cuvinte_x = [&amp;#039;X&amp;#039; + cuvant[1:] if cuvant[0] in vocale else cuvant for cuvant in cuvinte]&lt;br /&gt;
    cuvinte_sortate = sorted(cuvinte)&lt;br /&gt;
    return nr_consoane, &amp;#039; &amp;#039;.join(cuvinte_x), &amp;#039; &amp;#039;.join(cuvinte_sortate)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    with open(&amp;#039;prosirxin.txt&amp;#039;, &amp;#039;r&amp;#039;) as fin, open(&amp;#039;prosirxout.txt&amp;#039;, &amp;#039;w&amp;#039;) as fout:&lt;br /&gt;
        text = fin.readline().strip()&lt;br /&gt;
&lt;br /&gt;
        # Verifică dacă textul respectă restricțiile&lt;br /&gt;
        if len(text) &amp;gt; 200 or not all(c.isalpha() or c.isspace() for c in text):&lt;br /&gt;
            fout.write(&amp;quot;Datele de intrare nu corespund restrictiilor impuse\n&amp;quot;)&lt;br /&gt;
            return&lt;br /&gt;
&lt;br /&gt;
        fout.write(&amp;quot;Datele de intrare corespund restrictiilor impuse\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
        # Analizează textul și scrie rezultatele în fișierul de ieșire&lt;br /&gt;
        nr_consoane, text_x, text_sortat = analyze_text(text)&lt;br /&gt;
        fout.write(str(nr_consoane) + &amp;#039;\n&amp;#039;)&lt;br /&gt;
        fout.write(text_x + &amp;#039;\n&amp;#039;)&lt;br /&gt;
        fout.write(text_sortat + &amp;#039;\n&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Codrut Borcutean</name></author>
	</entry>
</feed>