<?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=0089_-_Palindrom_Propozitie</id>
	<title>0089 - Palindrom Propozitie - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=0089_-_Palindrom_Propozitie"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0089_-_Palindrom_Propozitie&amp;action=history"/>
	<updated>2026-05-01T04:05: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=0089_-_Palindrom_Propozitie&amp;diff=8091&amp;oldid=prev</id>
		<title>AntalKrisztian: Pagină nouă: Un cuvânt este palindrom dacă se citește la fel în ambele direcții. De exemplu, &#039;&#039;&#039;capac&#039;&#039;&#039; este palindrom.  O propoziție este palindromică dacă prin eliminarea spațiilor și a altor semne de punctuație devine palindrom. De exemplu, propoziția &#039;&#039;&#039;ele fac cafele&#039;&#039;&#039; este palindromică. == Cerinţa == Să se scrie un program care citește mai multe propoziții și determină despre fiecare dacă este palindromică. == Date de intrare == Fișierul de intrare &#039;&#039;&#039;palindr...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0089_-_Palindrom_Propozitie&amp;diff=8091&amp;oldid=prev"/>
		<updated>2023-12-14T13:55:15Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: Un cuvânt este palindrom dacă se citește la fel în ambele direcții. De exemplu, &amp;#039;&amp;#039;&amp;#039;capac&amp;#039;&amp;#039;&amp;#039; este palindrom.  O propoziție este palindromică dacă prin eliminarea spațiilor și a altor semne de punctuație devine palindrom. De exemplu, propoziția &amp;#039;&amp;#039;&amp;#039;ele fac cafele&amp;#039;&amp;#039;&amp;#039; este palindromică. == Cerinţa == Să se scrie un program care citește mai multe propoziții și determină despre fiecare dacă este palindromică. == Date de intrare == Fișierul de intrare &amp;#039;&amp;#039;&amp;#039;palindr...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Un cuvânt este palindrom dacă se citește la fel în ambele direcții. De exemplu, &amp;#039;&amp;#039;&amp;#039;capac&amp;#039;&amp;#039;&amp;#039; este palindrom.&lt;br /&gt;
&lt;br /&gt;
O propoziție este palindromică dacă prin eliminarea spațiilor și a altor semne de punctuație devine palindrom. De exemplu, propoziția &amp;#039;&amp;#039;&amp;#039;ele fac cafele&amp;#039;&amp;#039;&amp;#039; este palindromică.&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Să se scrie un program care citește mai multe propoziții și determină despre fiecare dacă este palindromică.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fișierul de intrare &amp;#039;&amp;#039;&amp;#039;palindromin.txt&amp;#039;&amp;#039;&amp;#039; conține pe prima linie un număr natural &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039;, iar pe următoarele &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; linii câte o propoziție alcătuita din litere mici ale alfabetului englez și spații.&lt;br /&gt;
== Date de ieşire ==&lt;br /&gt;
Fișierul de ieșire &amp;#039;&amp;#039;&amp;#039;palindromout.txt&amp;#039;&amp;#039;&amp;#039; va conține &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; linii. Linia &amp;#039;&amp;#039;&amp;#039;i&amp;#039;&amp;#039;&amp;#039; va conține valoarea &amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039; dacă pe linia &amp;#039;&amp;#039;&amp;#039;i+1&amp;#039;&amp;#039;&amp;#039; din fișierul de intrare se află o propoziție palindromică, și &amp;#039;&amp;#039;&amp;#039;0&amp;#039;&amp;#039;&amp;#039; în caz contrar.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;0&amp;lt;n&amp;lt;100&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* fiecare propoziție va conține cel mult &amp;#039;&amp;#039;&amp;#039;200&amp;#039;&amp;#039;&amp;#039; de caractere.&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; palindromin.txt&lt;br /&gt;
 4&lt;br /&gt;
 capac&lt;br /&gt;
 ele fac cafele&lt;br /&gt;
 ale nu fac cafele&lt;br /&gt;
 aerare&lt;br /&gt;
; palindromout.txt&lt;br /&gt;
 Datele de intrare corespund restrictiilor impuse.&lt;br /&gt;
 1&lt;br /&gt;
 1&lt;br /&gt;
 0&lt;br /&gt;
 0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; palindromin.txt&lt;br /&gt;
 101KKGKKG&lt;br /&gt;
; palindromout.txt&lt;br /&gt;
 Datele de intrare nu corespund restrictiilor impuse.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
# functia de validare verifica daca datele de intrare sunt in intervalul specificat&lt;br /&gt;
def validare(n_validare, propozitii_validare):&lt;br /&gt;
    # verificam daca n este in intervalul 0-100&lt;br /&gt;
    if n_validare &amp;lt;= 0 or n_validare &amp;gt; 100:&lt;br /&gt;
        raise ValueError  # ridicam o eroare daca n nu este in intervalul 0-100&lt;br /&gt;
    for propozitie_validare in propozitii_validare:    # parcurgem lista de propozitii&lt;br /&gt;
        # verificam daca lungimea propozitiei este mai mica sau egala cu 200&lt;br /&gt;
        if len(propozitie_validare) &amp;gt; 200:&lt;br /&gt;
            raise ValueError&lt;br /&gt;
        for caracter in propozitie_validare:    # parcurgem fiecare caracter din propozitie&lt;br /&gt;
            # verificam daca caracterul este o litera mica a alfabetului englezesc&lt;br /&gt;
            if not caracter.islower() and not caracter.isspace():&lt;br /&gt;
                raise ValueError&lt;br /&gt;
    file_out.write(&amp;quot;datele de intrare corespund restrictiilor impuse\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# functia is_palindrome verifica daca o propozitie este palindromica&lt;br /&gt;
def este_palindrom(propozitie_palindrom):&lt;br /&gt;
    # eliminam spatiile din propozitie si verificam daca este palindrom&lt;br /&gt;
    propozitie_fara_spatii = propozitie_palindrom.replace(&amp;#039; &amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
    return propozitie_fara_spatii == propozitie_fara_spatii[::-1]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;#039;__main__&amp;#039;:&lt;br /&gt;
    file_in = open(&amp;quot;palindromin.txt&amp;quot;, &amp;quot;r&amp;quot;)&lt;br /&gt;
    file_out = open(&amp;quot;palindromout.txt&amp;quot;, &amp;quot;w&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    try:&lt;br /&gt;
        # citim numarul de propozitii&lt;br /&gt;
        n_main = int(file_in.readline())&lt;br /&gt;
        # citim propozitiile&lt;br /&gt;
        propozitii_main = [linie.strip() for linie in file_in]&lt;br /&gt;
        # validam datele de intrare&lt;br /&gt;
        validare(n_main, propozitii_main)&lt;br /&gt;
        # pentru fiecare propozitie, verificam daca este palindromica si scriem rezultatul in fisierul de iesire&lt;br /&gt;
        for propozitie in propozitii_main:&lt;br /&gt;
            file_out.write(&amp;#039;1\n&amp;#039; if este_palindrom(propozitie) else &amp;#039;0\n&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
    # daca datele de intrare nu sunt valide, afisam un mesaj de eroare&lt;br /&gt;
    except ValueError:&lt;br /&gt;
        file_out.write(&amp;quot;Datele de intrare nu corespund restrictiilor impuse.&amp;quot;)&lt;br /&gt;
    # daca datele de intrare sunt incomplete, afisam un mesaj de eroare&lt;br /&gt;
    except IndexError:&lt;br /&gt;
        file_out.write(&amp;quot;Datele de intrare 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>AntalKrisztian</name></author>
	</entry>
</feed>