C++ Практические задания Группа №1 — различия между версиями
(→#10 Arithmetic Operations) |
(→#5 Intrusive Lists) |
||
Строка 22: | Строка 22: | ||
== #5 Intrusive Lists == | == #5 Intrusive Lists == | ||
+ | https://www.dropbox.com/sh/kp0jdgy97p3sjg9/AAAr5g7a8Ufg7zikE2spCmBJa?dl=0 | ||
== #6 C IO == | == #6 C IO == |
Версия 21:01, 18 ноября 2014
Кудинкин Алексей
+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
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: проверьте корректно ли освобождается память в вашей реализации.