Programowanie zaawansowane FM i IN 2017/2018

Podobne dokumenty
Zadanie 1. Zmiana systemów. Zadanie 2. Szyfr Cezara. Zadanie 3. Czy liczba jest doskonała. Zadanie 4. Rozkład liczby na czynniki pierwsze Zadanie 5.

Algorytmy sortujące i wyszukujące

n, m : int; S, a, b : double. Gdy wartości sumy składowej nie można obliczyć, to przyjąć Sij = 1.03 Dla obliczenia Sij zdefiniować funkcję.

Zadania do wykonania. Rozwiązując poniższe zadania użyj pętlę for.

Wstęp do Informatyki

Podstawy programowania. 1. Operacje arytmetyczne Operacja arytmetyczna jest opisywana za pomocą znaku operacji i jednego lub dwóch wyrażeń.

Podstawy Programowania Podstawowa składnia języka C++

INŻYNIERIA BEZPIECZEŃSTWA LABORATORIUM NR 2 ALGORYTM XOR ŁAMANIE ALGORYTMU XOR

Samodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 =

Przykłady zastosowań funkcji tekstowych w arkuszu kalkulacyjnym

3. Opracować program kodowania/dekodowania pliku tekstowego. Algorytm kodowania:

Zestaw 1 ZESTAWY A. a 1 a 2 + a 3 ± a n, gdzie skªadnik a n jest odejmowany, gdy n jest liczb parzyst oraz dodawany w przeciwnym.

Zadanie 1. Potęgi (14 pkt)

Strumienie, pliki. Sortowanie. Wyjątki.

ARYTMETYKA BINARNA. Dziesiątkowy system pozycyjny nie jest jedynym sposobem kodowania liczb z jakim mamy na co dzień do czynienia.


Projekty zaliczeniowe Podstawy Programowania 2012/2013

Zadanie nr 3: Sprawdzanie testu z arytmetyki

Podstawy Informatyki

2 Kryptografia: algorytmy symetryczne

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Temat 1: Podstawowe pojęcia: program, kompilacja, kod

Arytmetyka liczb binarnych

Przedstawię teraz tzw. podstawowe symbole wyrażenia regularne (BRE, Basic Regular Expression)

Analiza algorytmów zadania podstawowe

4. Funkcje. Przykłady

a) Zapisz wynik działania powyższego algorytmu dla słów ARKA i MOTOR...

1 Powtórzenie wiadomości

Podstawowe typy zmiennych

Pracownia Informatyczna Instytut Technologii Mechanicznej Wydział Inżynierii Mechanicznej i Mechatroniki. Podstawy Informatyki i algorytmizacji

Kod uzupełnień do dwóch jest najczęściej stosowanym systemem zapisu liczb ujemnych wśród systemów binarnych.

Pliki wykład 2. Dorota Pylak

I. Podstawy języka C powtórka

Notacja RPN. 28 kwietnia wyliczanie i transformacja wyrażeń. Opis został przygotowany przez: Bogdana Kreczmera.

Zadania język C++ Zad. 1. Napisz program wczytujący z klawiatury wiek dwóch studentów i wypisujący informację o tym, który z nich jest starszy.

Zestaw 3. - Zapis liczb binarnych ze znakiem 1

Ćwiczenie 1 - Arkusze kalkulacyjne

ARKUSZ KALKULACYJNY komórka

Pomorski Czarodziej 2016 Zadania. Kategoria C

Systemy zapisu liczb.

Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński

ALGORYTMY I STRUKTURY DANYCH

Zajęcia 6 pliki tekstowe

DYDAKTYKA ZAGADNIENIA CYFROWE ZAGADNIENIA CYFROWE

Napisz program wypisujący na standardowym wyjściu następujący napis: Napis zawierający różne dziwne znaczki // \ \$ &%.

1. Napisz program, który wyświetli Twoje dane jako napis Witaj, Imię Nazwisko. 2. Napisz program, który wyświetli wizytówkę postaci:

Wstęp do informatyki- wykład 2

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Wstęp do Programowania Lista 1

Temat zajęć: Filtry, strumienie standardowe oraz przetwarzanie potokowe. stderr

1 Podstawy c++ w pigułce.

INFORMATYKA POZIOM ROZSZERZONY CZĘŚĆ II PRZYKŁADOWY ZESTAW ZADAŃ. Czas pracy 150 minut

Programowanie zaawansowane FM i IN 2017/2018

Algorytmy przeszukiwania wzorca

Zarys algorytmów kryptograficznych

Podstawy programowania. Wykład: 11. Trochę różnych przykładów. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Wykład z Technologii Informacyjnych. Piotr Mika

Język jako hierarchiczny system dwuklasowy

Inicjacja tablicy jednowymiarowej

Polcode Code Contest PHP-10.09

Liga zadaniowa - Informatyka. Zad 1. (Python lub Logomocja)

do instrukcja while (wyrażenie);

EGZAMIN MATURALNY Z INFORMATYKI

PRÓBNY EGZAMIN MATURALNY Z INFORMATYKI STYCZEŃ Arkusz I. Czas pracy: 60 minut Liczba punktów do uzyskania: 15

1. Wypisywanie danych

Podstawy Programowania

Programowanie w języku Java

Pole wielokąta. Wejście. Wyjście. Przykład

lekcja 8a Gry komputerowe MasterMind

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

Wprowadzenie do baz danych

I znowu można jak w C, za pomocą starych struktur i metod:

Kurs języka Python. Lista 1.

LISTA 5. C++ PETLE for, while, do while

utworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy,

1. Kalkulator czterech działań. 2. Konwersja ciągu znaków do tablicy.

Zadanie 1. Suma silni (11 pkt)

pobieramy pierwszą literę komunikatu i wypełniamy nią (wszystkie pozycje tą samą literą) bufor słownikowy.

Laboratorium nr 7 Sortowanie

1. Napisz program wypisujący w kolejnych wierszach standardowego wyjścia pojedyncze słowa następującego napisu Bardzo dlugi napis. 2.

PROGRAMOWANIE W C++ ZADANIA

Napisz program, który dla podanej na standardowym wejściu temperatury w stopniach Fahrenheita wypisze temperaturę w stopniach Celsjusza.

Znaki w tym systemie odpowiadają następującym liczbom: I=1, V=5, X=10, L=50, C=100, D=500, M=1000

Technologie informacyjne: Arkusz kalkulacyjny

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Arkusz zawiera informacje prawnie chronione do momentu rozpoczęcia egzaminu.

wagi cyfry pozycje

2. Tablice. Tablice jednowymiarowe - wektory. Algorytmy i Struktury Danych

Wykonaj na ekranie napis KONKURS czcionką wielokolorową (przynajmniej w trzech kolorach).

Zadanie 1. Algorytmika ćwiczenia

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab

Złożoność obliczeniowa zadania, zestaw 2

PRÓBNY EGZAMIN MATURALNY Z INFORMATYKI

Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem.

znalezienia elementu w zbiorze, gdy w nim jest; dołączenia nowego elementu w odpowiednie miejsce, aby zbiór pozostał nadal uporządkowany.

Laboratorium nr 4: Arytmetyka liczb zespolonych

Ćwiczenie 3 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania. Zofia Kruczkiewicz

EGZAMIN MATURALNY Z INFORMATYKI MAJ 2010 POZIOM PODSTAWOWY CZĘŚĆ I WYBRANE: Czas pracy: 75 minut. Liczba punktów do uzyskania: 20 WPISUJE ZDAJĄCY

WYRAŻENIA ALGEBRAICZNE

Transkrypt:

Programowanie zaawansowane FM i IN 2017/2018 Zadania domowe seria 2. Termin: 22 maja 2018 r. Rozwiązaniem każdego z zadań powinien być plik lub więcej plików zawierających kod w języku C++, mających standardowe rozszerzenia, np..cpp,.h. Nazwa pliku powinna mieć postać nazwisko-zadanie.roz, np. kowalski-calc.cpp. W przypadku istnienia kilku plików o tych samych rozszerzeniach należy jeszcze dodać do nazwy ich numery: nazwisko-zadanie-numer.roz, np. kowalski-calc-1.cpp, kowalski-calc-2.cpp. Zadanie 1. intersection Część wspólna zbiorów liczb (1 pkt.) Napisz program intersection, który wczytuje ze standardowego wejścia dwie linie liczb całkowitych, a następnie wypisuje na standardowe wyjście te liczby, które występują w obu liniach jednocześnie. Liczby powinny być wypisywane w kolejności rosnącej i każda tylko raz. Windows: intersection.exe Linux:./intersection 5 2 98 34 7 12 6 7 9 10 540 6 8 5 6 7 Zadanie 2. exact-sum Przedział o zadanej sumie elementów (2 pkt.) Napisz program exact-sum, który przyjmuje jako argument wywołania wartość całkowitą, czyta ze standardowego wejścia liczby całkowite do napotkania końca pliku i wypisuje na standardowe wyjście pierwszy napotkany podciąg tych liczb o sumie zadanej argumentem wywołania. Jeżeli taki podciąg nie istnieje, program nic nie wypisuje. Windows: exact-sum.exe 10 Linux:./exact-sum 10 6 3 2 7 1 4 8 1 5 2 2 7 1 1

Zadanie 3. insertionsort Sortowanie przez wstawianie (3 pkt.) Sortowanie przez wstawianie przebiega w następujący sposób. Pierwszy z elementów do posortowania pozostaje na swoim miejscu. Następnie bierzemy drugi element i sprawdzamy, w jakiej relacji jest on z pierwszym: jeśli jest mniejszy lub równy, to zostaje na drugim miejscu, w przeciwnym przypadku zamieniamy go miejscami z pierwszym elementem. W kolejnym kroku sprawdzamy trzeci element: porównujemy go z pierwszym i drugim oraz jeśli to konieczne przesuwamy go i wstawiamy w odpowiednie miejsce tak, by pierwsze trzy elementy były posortowane. Tak samo postępujemy z kolejnymi elementami. Napisz program insertionsort, który wczytuje ze standardowego wejścia liczby całkowite aż do napotkania znaku końca pliku, a następnie wypisuje je posortowane rosnąco na standardowe wyjście. Sortowanie powinno się odbyć metodą przez wstawianie. Windows: insertionsort.exe Linux:./insertionsort 5 12 407 9 304 7 6 5 6 7 9 12 304 407 Zadanie 4. selectionsort Sortowanie przez wybór (3 pkt.) Sortowanie przez wybór przebiega następująco. Na początku szukamy najmniejszego z elementów do posortowania. Gdy go odnajdziemy, zamieniamy go miejscami z pierwszym elementem. Następnie znowu szukamy najmniejszego elementu, jednak tym razem począwszy od elementu drugiego (element pierwszy jest najmniejszy, więc jest już wstawiony na odpowiednie miejsce i nie bierzemy go dalej pod uwagę). Po jego odnalezieniu zamieniamy go miejscami z drugim elementem. Czynność tę powtarzamy, tym razem pomijając elementy pierwszy i drugi, które są już na właściwych miejscach. Po odnalezieniu trzeciego w kolejności elementu znowu robimy to samo, pomijając pierwsze trzy elementy i tak dalej, aż do momentu, gdy wszystkie elementy będą posortowane. Napisz program selectionsort, który wczytuje ze standardowego wejścia liczby całkowite aż do napotkania znaku końca pliku, a następnie wypisuje je posortowane rosnąco na standardowe wyjście. Sortowanie powinno się odbyć metodą przez wybór. Windows: selectionsort.exe Linux:./selectionsort 5 12 407 9 304 7 6 5 6 7 9 12 304 407 Zadanie 5. find Przeszukiwanie wektora (2 pkt.) Napisz funkcję find, znajdującą w wektorze element o zadanej wartości. Funkcja przyjmuje trzy argumenty: referencję wektora liczb całkowitych, poszukiwaną wartość całkowitą oraz indeks początkowy. Funkcja rozpoczyna wyszukiwanie od tego indeksu i zwraca indeks pierwszego wystąpienia podanej wartości albo 1, jeżeli wartość nie została znaleziona. Na przykład dla wektora 1 0 7 5 3 0 2, poszukiwanej wartości 0 oraz 2

indeksu początkowego 3 funkcja zwróci wartość 5, ponieważ pierwsze wystąpienie wartości 0 o indeksie nie mniejszym niż 3 ma indeks 5. Korzystając z tej funkcji, napisz program find, który przyjmuje jako argument wywołania wartość całkowitą, czyta ze standardowego wejścia liczby całkowite aż do napotkania znaku końca pliku i wypisuje na standardowe wyjście indeksy wszystkich wystąpień podanej wartości pośród tych liczb. Windows: find.exe 0 Linux:./find 0 7 0 2 8 0 4 1 4 0 3 1 4 8 Zadanie 6. comments Usuwanie komentarzy (2 pkt.) Napisz program comments, służący do usuwania komentarzy w pliku tekstowym. Program przyjmuje trzy argumenty wywołania: pierwszy jest pewnym znakiem, zaś pozostałe dwa to nazwy plików. Program przepisuje zawartość pierwszego z tych plików do drugiego z nich, pomijając linie zaczynające się znakiem przekazanym programowi jako pierwszy argument. pierwsza linia?komentarz druga linia Windows: comments.exe? in.txt out.txt Linux:./comments? in.txt out.txt pierwsza linia druga linia Zadanie 7. palindrom Palindromy (3 pkt.) Palindrom to wyrażenie, które czytane litera po literze od przodu brzmi tak samo, jak czytane od tyłu. Nie mają tu znaczenia wielkość liter ani znaki interpunkcyjne. Przykładem palindromu jest zdanie Wół utył i ma miły tułów. Napisz funkcję palindrom, która przyjmuje jako argument łańcuch znaków i zwraca wartość typu logicznego: prawdę (true), jeśli jest on palindromem, lub fałsz (false), jeśli nim nie jest. Korzystając z tej funkcji, napisz program palindrom, który przyjmuje jako argument wywołania nazwę pliku tekstowego i wypisuje na standardowe wyjście wszystkie zawarte w tym pliku zdania, które są palindromami, każde w nowej linii. Zdanie zdefiniowane jest jako ciąg znaków rozpoczynający się z początkiem pliku lub bezpośrednio po zakończeniu poprzedniego zdania i kończący się jednym z trzech znaków: kropką, wykrzyknikiem lub znakiem zapytania. Zawartość pliku wejściowego text.txt: Pewnego razu Ala, co ma kota, szła przez las. Napotkała typa, zapytała: Kto pan? A to idiota. 3

Windows: palindrom.exe text.txt Linux:./palindrom text.txt Napotkała typa, zapytała: Kto pan? A to idiota. Zadanie 8. sentences Wielkość liter w zdaniach (2 pkt.) Napisz program sentences, przyjmujący jako argumenty wywołania nazwy dwóch plików tekstowych, którego zadaniem jest przepisanie zawartości pierwszego pliku do drugiego pliku w taki sposób, by pierwsza litera każdego zdania była duża, zaś pozostałe litery - małe. Zdanie zdefiniowane jest jako ciąg znaków rozpoczynający się z początkiem pliku lub bezpośrednio po zakończeniu poprzedniego zdania i kończący się jednym z trzech znaków: kropką, wykrzyknikiem lub znakiem zapytania. quousque tandem abutere, Catilina, patientia nostra? o Tempora! o Mores! Cum Tacent, Clamant. Windows: sentences.exe in.txt out.txt Linux:./sentences in.txt out.txt Quousque tandem abutere, catilina, patientia nostra? O tempora! O mores! Cum tacent, clamant. Zadanie 9. letters Zliczanie liter (2 pkt.) Napisz program letters, który przyjmuje jako argument wywołania nazwę pliku tekstowego i wypisuje na standardowe wyjście liczby wystąpień poszczególnych liter w tym pliku, począwszy od A. Program nie rozróżnia wielkości liter oraz pomija wszelkie znaki poza literami alfabetu łacińskiego. Zawartość pliku wejściowego augustinus.txt: Mihi quaestio factus sum. Windows: letters.exe augustinus.txt Linux:./letters augustinus.txt 2 0 1 0 1 1 0 1 3 0 0 0 2 0 1 0 1 0 3 2 3 0 0 0 0 0 Zadanie 10. copy Kopiowanie ze strumienia do strumienia (3 pkt.) Napisz funkcję copy, która przyjmuje jako argumenty referencję strumienia wejściowego oraz referencję strumienia wyjściowego i przepisuje zawartość pierwszego do drugiego aż do napotkania w pierwszym strumieniu znaku końca pliku. Korzystając z tej funkcji, napisz program copy, przepisujący tekst z jednego strumienia do drugiego bez żadnych zmian. Jeśli w wywołaniu programu podano opcję -i, program czyta tekst z pliku o 4

nazwie podanej bezpośrednio za tą opcją, w przeciwnym razie czyta ze standardowego wejścia. Podobnie, jeżeli w wywołaniu programu podano opcję -o, program zapisuje tekst do pliku o nazwie podanej bezpośrednio za tą opcją, zaś w przeciwnym razie wypisuje tekst na standardowe wyjście. Windows: copy.exe -o debello.txt Linux:./copy -o debello.txt Gallia est omnis divisa in partes tres quarum unam incolunt Belgae aliam Aquitani tertiam qui ipsorum lingua Celtae nostra Galli appellantur Zawartość pliku wyjściowego debello.txt: Gallia est omnis divisa in partes tres quarum unam incolunt Belgae aliam Aquitani tertiam qui ipsorum lingua Celtae nostra Galli appellantur Zadanie 11. colloquium Wyniki kolokwium (3 pkt.) Wyniki kolokwium zapisane są w pliku tekstowym w sposób pokazany w poniższym przykładzie. W pierwszej linii podana jest maksymalna punktacja za poszczególne zadania. Każda następna linia zawiera jednoczłonowe nazwisko studenta oraz zdobyte przez niego punkty za kolejne zadania. Liczba zadań ani studentów nie jest z góry znana. Napisz program colloquium, który przyjmuje jako argument wywołania nazwę pliku z wynikami kolokwium i wypisuje na standardowe wyjście wyniki każdego studenta oraz średnie wyniki z każdego zadania. Zawartość pliku wejściowego results.txt: 5.0 5.0 5.0 Einstein 1.5 3.0 0.5 Chopin 0.5 3.5 2.5 Sklodowska-Curie 5.0 5.0 5.0 Windows: colloquium.exe results.txt Linux:./colloquium results.txt Einstein 5 Chopin 6.5 Sklodowska-Curie 15 Zadanie 1.: 2.33333 Zadanie 2.: 3.83333 Zadanie 3.: 2.66667 Zadanie 12. textcalc Kalkulator tekstowy (3 pkt.) Napisz funkcję textcalc, która przyjmuje jako argument łańcuch tekstowy przedstawiający działanie matematyczne, posiadający następującą strukturę: ciąg znaków dający się zinterpretować jako liczba rzeczywista (składający się z cyfr i ewentualnie jednej kropki), 5

spacja, jeden z następujących znaków: +, -, *, /, %, ^, spacja, ciąg znaków dający się zinterpretować jako liczba rzeczywista (składający się z cyfr i ewentualnie jednej kropki). Wymienione znaki symbolizują operacje matematyczne, odpowiednio: dodawanie, odejmowanie, mnożenie, dzielenie, obliczanie reszty z dzielenia oraz potęgowanie. Funkcja zwraca liczbę rzeczywistą będącą wynikiem operacji matematycznej powiązanej z danym znakiem, wykonanej na zadanych liczbach. Na przykład dla argumentu 2.4 + 3.3 funkcja powinna zwrócić wartość 5.7. Korzystając z tej funkcji, napisz program textcalc, będący prostym kalkulatorem tekstowym. Program przyjmuje jako argumenty wywołania nazwy dwóch plików tekstowych. Pierwszy z nich zawiera ciąg działań matematycznych zapisanych w sposób opisany powyżej, taki sam, jak dla argumentu funkcji textcalc. Każde działanie zapisane jest w osobnej linii, ilość działań nie jest znana z góry. Program przepisuje zawartość tego pliku do drugiego pliku, dopisując na końcu każdej linii spację, znak równości, kolejną spację i wynik działania zapisanego w tej linii. 3.67 + 2 3.2 * 4 3.14 / 2.72 Windows: textcalc.exe in.txt out.txt Linux:./textcalc in.txt out.txt 3.67 + 2 = 5.67 3.2 * 4 = 12.8 3.14 / 2.72 = 1.15 Zadanie 13. cipher Szyfrowanie przestawieniowe (3 pkt.) Jednym z najprostszych przykładów algorytmów szyfrujących tekst jest wariant szyfrowania przestawieniowego, polegający na przesunięciu wszystkich spółgłosek w tekście o kilka miejsc w prawo lub lewo. Każda spółgłoska jest przesuwana na miejsce spółgłoski stojącej w tekście o odpowiednią liczbę miejsc dalej lub wcześniej, w przypadku napotkania końca tekstu następuje przeskok na jego początek. Znaki inne niż spółgłoski (samogłoski, znaki białe itd.) nie zmieniają swoich miejsc. Napisz program cipher, szyfrujący i deszyfrujący pliki tekstowe omówioną metodą. Program powinien przyjmować cztery argumenty wywołania. Pierwszy z nich jest liczbą całkowitą, drugi to /e dla szyfrowania lub /d dla deszyfrowania, trzeci jest nazwą pliku z tekstem do zaszyfrowania/odszyfrowania, zaś czwarty - nazwą pliku, w którym ma zostać zapisany zaszyfrowany/odszyfrowany tekst. Liczba całkowita z pierwszego argumentu określa, o ile miejsc należy przesuwać spółgłoski oraz w którą stronę należy to robić: przesuwamy spółgłoski w prawo, gdy liczba jest dodatnia, lub w lewo, jeśli jest ona ujemna. 1. loko mo tywa Windows: cipher.exe 1 /e in.txt out.txt 6

Linux:./cipher 1 /e in.txt out.txt wolo ko myta 2. wolo ko myta Windows: cipher.exe 1 /d in.txt out.txt Linux:./cipher 1 /d in.txt out.txt loko mo tywa Zadanie 14. enigma Szyfrowanie z użyciem XOR (3 pkt.) Jedną z metod szyfrowania plików tekstowych jest zastąpienie każdego znaku bitową różnicą symetryczną (XOR) jego kodu ASCII z zadaną jednobajtową liczbą, zwaną kluczem. Odszyfrowanie tekstu polega na ponownym obliczeniu bitowej różnicy symetrycznej zaszyfrowanych kodów z tym samym kluczem. Operatorem bitowej różnicy symetrycznej w języku C++ jest ^. Napisz program enigma, szyfrujący i deszyfrujący pliki tekstowe omówioną metodą. Program powinien przyjmować cztery argumenty wywołania. Pierwszy z nich to jednobajtowa liczba całkowita będąca kluczem, drugi to /e dla szyfrowania lub /d dla deszyfrowania, trzeci jest nazwą pliku z tekstem do zaszyfrowania/odszyfrowania, zaś czwarty - nazwą pliku, w którym ma zostać zapisany zaszyfrowany/odszyfrowany tekst. Szyfrowanie odbywa się znak po znaku, włączając znaki białe. Plik z zaszyfrowanym tekstem powinien zawierać oddzielone spacjami liczby - każda z nich jest bitową różnicą symetryczną kodu zaszyfrowanego znaku i klucza. 1. Non intratur in veritatem, nisi per caritatem. Windows: enigma.exe 7 /e in.txt out.txt Linux:./enigma 7 /e in.txt out.txt 73 104 105 39 110 105 115 117 102 115 114 117 39 110 105 39 113 98 117 110 115 102 115 98 106 43 39 105 110 116 110 39 119 98 117 39 100 102 117 110 115 102 115 98 106 41 2. 73 104 105 39 110 105 115 117 102 115 114 117 39 110 105 39 113 98 117 110 115 102 115 98 106 43 39 105 110 116 110 39 119 98 117 39 100 102 117 110 115 102 115 98 106 41 Windows: enigma.exe 7 /d in.txt out.txt Linux:./enigma 7 /d in.txt out.txt Non intratur in veritatem, nisi per caritatem. 7