Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Bitnami MediaWiki
Search
Search
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
1526 - Align
Page
Discussion
English
Read
Edit
Edit source
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
Edit source
View history
General
What links here
Related changes
Special pages
Page information
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Enunţ== Pe lângă marea lui pasiune pentru informatică, lui Andino îi place să se joace cu fişierele. El deschide la întâmplare fişiere text şi se întreabă dacă poate alinia textul la stânga sau la dreapta. Cu toate că el este la curent cu tot ce se întâmplă în domeniul informaticii, el utilizează un editor de text primitiv care nu are funcţii de aliniere, aşa că vă roagă pe voi să-l ajutaţi. ==Cerinţă== Să se alinieze un text dat la stânga sau la dreapta. ==Date de intrare== Fişierul de intrare align.in conţine pe prima linie numărul n, numărul de linii din fişierul text şi un caracter x. Dacă x este 'S', atunci textul se va alinia la stânga, iar dacă x este 'D', se va alinia la dreapta. Pe următoarele n linii se citeşte textul din fişierul lui Andino. ==Date de ieşire== Fişierul de ieşire align.out va conţine pe n linii textul aliniat. ==Restricţii şi precizări== *1 ≤ n ≤ 100 *lungimea unei linii nu va depăşi 200 *dacă îl veţi ajuta pe Andino, veţi primi 100 de puncte şi probabil îl veţi convinge pe Andino să folosească un alt editor de texte ==Exemplu 1== ;align.in :3 S :: text linia 1 ::: text pentru linia 2 :::: textul pentru linia trei ;align.out :text linia 1 :text pentru linia 2 :textul pentru linia trei ==Explicaţie== Textul a fost aliniat la stanga. ==Exemplu 2== ;align.in :3 D :text linia 1 :text pentru linia 2 :textul pentru linia trei ;align.out ::::: text linia 1 ::: text pentru linia 2 :: textul pentru linia trei ==Explicaţie== Textul a fost aliniat la dreapta. ==Exemplu 3== ;align.in :3 :text linia 1 :text pentru linia 2 :textul pentru linia trei ;align.out :Date de intrare invalide. ==Rezolvare== <syntaxhighlight lang="python" line="1"> #1526 align def align_text(lines, alignment): max_length = max(len(line) for line in lines) aligned_text = [] for line in lines: if alignment == 'S': aligned_text.append(line.ljust(max_length)) elif alignment == 'D': aligned_text.append(line.rjust(max_length)) return aligned_text def validate_input(n, alignment, lines): if not (alignment == 'S' or alignment == 'D'): return False, "Caracterul de aliniere trebuie să fie 'S' sau 'D'." if n != len(lines): return False, "Numărul specificat de linii nu corespunde numărului real de linii citite." return True, None def main(): with open("align.in", "r") as input_file, open("align.out", "w") as output_file: try: n, alignment = input_file.readline().strip().split() n = int(n) lines = [input_file.readline().strip() for _ in range(n)] except ValueError: print("Date de intrare invalide.") output_file.write("Date de intrare invalide.") return is_valid, error_message = validate_input(n, alignment, lines) if not is_valid: print("Numar invalid: " + error_message) output_file.write("Numar invalid: " + error_message) return aligned_text = align_text(lines, alignment) for aligned_line in aligned_text: output_file.write(aligned_line + "\n") if __name__ == "__main__": main() </syntaxhighlight>
Summary:
Please note that all contributions to Bitnami MediaWiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Bitnami MediaWiki:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Toggle limited content width