C++ Практические задания Группа №1 — различия между версиями
(→#9 Output streams) |
|||
(не показаны 2 промежуточные версии этого же участника) | |||
Строка 56: | Строка 56: | ||
== #9 Output streams == | == #9 Output streams == | ||
+ | |||
+ | Using an interface provided you need to implement `StandardConsoleOutputStream`, `ErrorConsoleOutputStream`, `FileOutputStream`. | ||
+ | |||
https://www.dropbox.com/s/klw6db7f18m1tgl/output_stream.h?dl=0 | https://www.dropbox.com/s/klw6db7f18m1tgl/output_stream.h?dl=0 | ||
Строка 80: | Строка 83: | ||
Реализовать класс для работы с длинной арифметикой. Задание делится на две части: | Реализовать класс для работы с длинной арифметикой. Задание делится на две части: | ||
− | #1 | + | '#1 |
struct big_int | struct big_int | ||
Строка 86: | Строка 89: | ||
_?_ operator+(_?_ other); | _?_ operator+(_?_ other); | ||
_?_ operator-(_?_ other); | _?_ operator-(_?_ other); | ||
− | |||
_?_ operator<(_?_ other); | _?_ operator<(_?_ other); | ||
}; | }; | ||
− | #2 | + | '#2 |
struct big_int | struct big_int | ||
Строка 96: | Строка 98: | ||
_?_ operator+(_?_ other); | _?_ operator+(_?_ other); | ||
_?_ operator-(_?_ other); | _?_ operator-(_?_ other); | ||
− | |||
_?_ operator*(_?_ other); | _?_ operator*(_?_ other); | ||
_?_ operator/(_?_ other); | _?_ operator/(_?_ other); | ||
− | |||
_?_ operator<(_?_ other); | _?_ operator<(_?_ other); | ||
}; | }; |
Текущая версия на 11:25, 30 октября 2015
Кудинкин Алексей
+7-911-748-38-35
Содержание
#1: Find all the problems
https://www.dropbox.com/s/26j3j6kata8jiqu/challenge.cc?dl=0
#2: Get it compiled!
https://www.dropbox.com/sh/izpca2efj2htdy2/AAB4Uj-vj7oBknJo9QOLF3UJa?dl=0
#3 Pointers
https://www.dropbox.com/sh/k3glgu3wyut3otq/AAAO1MejOgQFuvsVSQ5r0Ktda?dl=0
#4 Vector
https://www.dropbox.com/sh/plc204mdal7jb7z/AABlZIUsO1_3_wyH0TX0UdfNa?dl=0
#5 Intrusive Lists
https://www.dropbox.com/sh/kp0jdgy97p3sjg9/AAAr5g7a8Ufg7zikE2spCmBJa?dl=0
#6 C IO
Задание предполагает, что файлы на вход программы будут поступать только файлы правильного формата.
Формат текстового файла: Каждый элемент списка на новой строке: числа x и y разделены пробелом
Формат бинарного файла: Каждое число занимает не больше 3 байт (hint: |, &, >>, <<)
Вспомогательные материалы: https://www.dropbox.com/sh/kp0jdgy97p3sjg9/AAAr5g7a8Ufg7zikE2spCmBJa?dl=0
Параметры
./p {loadtxt | loadbin} infile {savetxt | savebin} outfile ./p {loadtxt | loadbin} infile print “fmt” ./p {loadtxt | loadbin} infile count
- loadtxt загружает из текстового файл
- loadbin загружает из бинарного файла
- savetxt записывает в текстовый файл
- savebin записывает в бинарный файл
- print “fmt” выводит в stdout ранее прочитанное отформатированные согласно "fmt" (пример fmt: “(%d %d)”, “[%#x %#x]\n”)
- count выводит размер прочитанного корпуса
https://www.dropbox.com/sh/u5feahsavqykw02/AACW7NafrtgZOvOEGFEuS3Qsa?dl=0
#7 Pseudo XML
#8 Hash table
#9 Output streams
Using an interface provided you need to implement `StandardConsoleOutputStream`, `ErrorConsoleOutputStream`, `FileOutputStream`.
https://www.dropbox.com/s/klw6db7f18m1tgl/output_stream.h?dl=0
#10 Arithmetic Operations
Необходимо реализовать следующие узлы дерева арифметических операций:
Сложение, Вычитание, Умножение, Деление, Деление по модулю, Литерал (константа).
Каждый из узлов должен наследовать базовый класс (интерфейс `i_expr`):
struct i_expr { virtual void print(std::stringstream& s) = 0; virtual int eval() = 0; };
NB: Реализация, должна подразумевать возможность создания дерева динамически (с использованием оператора new). Hint: проверьте корректно ли освобождается память в вашей реализации.
#11 auto_ptr
#12 big_int
Реализовать класс для работы с длинной арифметикой. Задание делится на две части:
'#1
struct big_int { _?_ operator+(_?_ other); _?_ operator-(_?_ other); _?_ operator<(_?_ other); };
'#2
struct big_int { _?_ operator+(_?_ other); _?_ operator-(_?_ other); _?_ operator*(_?_ other); _?_ operator/(_?_ other); _?_ operator<(_?_ other); };