Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 05.04.2018
Сообщений: 41
1

Ресурс с хорошими задачами и пояснениями

10.04.2018, 21:52. Показов 764. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Изучаю сам С++, не могу найти годные задачки(упражнения). Все на уровне школьных\универских(слабеньких). нужна практика.
Если знаете где можно найти хорошие упражнения с решениями(необязательно), то буду очень признателен.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.04.2018, 21:52
Ответы с готовыми решениями:

Хорошие курсы с наставником и хорошими задачами по ООП
Здравствуйте , уважаемые java программисты могли вы направить меня на хорошие java курсы ,...

Посоветуйте ресурс с решенными задачами по C++
народ всем привет не могли бы вы мне подсказать есть ли какие то ресурсы чтобы там были задачи(для...

Дабы не ржавел мозг, посоветуйте ресурс, с практикой и задачами, желательно динамически обновляемый
Просто перечитывать учебники, помогать студентам и слушать лекции чувствую недостаточно, надо...

Есть файл ресурсов. В ресурс загрузил картинку. Как программно добавить в ресурс файл?
$R New1.res...button1.click... Var my1:TBitMap; Res:TResourceStream; begin ...

2
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,737
Записей в блоге: 1
10.04.2018, 22:21 2
Цитата Сообщение от BadKoder Посмотреть сообщение
универских(слабеньких)
Задачка со второго курса, дерзайте
Задание Упрощённый markdown
----------------------------

# Общее описание

Требуется написать программу на языке С++, использующую парадигму ООП, отображающую на экране форматированный
текст.
В аргументах командной строки задаются параметры, влияющие на стиль отображения текста.

Для разбора параметов необходимо использовать функцию getopt или getopt_long Параметры указываются следующим
образом:

1. -f имя файла с разметкой,
3. -t отступ для второй и последующих строк списка (число пробелов),
4. -m символ-маркер ненумерованного списка,
5. -r величина красной строки.
6. -h - выдача help с описанием поведения программы
7. -v - отображение версии программы

Здесь предполагается, что параметры по ключам -t,-m,-r - не обязательны и если параметр не указан,
то задаётся значение по умолчанию.
Возможно например определение ширины экрана при помощи системных вызовов fstat и ioctl (man tty_ioctl).

# Описание форматов

Размеченый текст состоит из абзацев. Существует несколько типов абзацев:

* заголовки,
* списки
1. нумерованные списки,
2. маркированные списки,
* простые абзацы.

Абзацы отделяются друг от друга двумя и более переносами строк. Всюду внутри абзацев два пробельных
символа подряд считаются одним пробелом.

Заголовок задаётся следующим образом:

# Текст заголовка до конца строки

Заголовки могут быть нескольких уровней, уровень заголовка задаётся числом символов '#' подряд в начале.
Заголовок нулевого уровня задаётся строкой состоящей из минусов, которая подписывается после собственно
заголовка.

Нумерованные списки (число перед точкой не играет роли):

100. первый элемент списка
200. второй элемент списка

Маркированный список задаётся по аналогии с нумерованным, используется символ '*'.

Списки могут быть вложены друг в друга, вложенный список задаётся указанием отступа в 2 пробела
от предыдущего уровня.

Блок кода. Блок кода начинается 4-мя пробелами, либо одним символом табуляции,
далее идёт собственно код.

Простые абзацы это все остальные абзацы. Чаще всего они будут начинаться просто с текста.

Примером разметки является текст с заданием.

# Описание способа отображения

Для размеченного текста, в соответствии с параметрами функции main требуется задать отображение на экран.

При отображении на экран все пробельные символы между словами должны быть заменены на один пробел
(в памяти хранить именно в таком виде). В случае, если текст не помещается на одну строку, в него
вставляются переносы. Запрещается, чтобы текст с переносами вылезал за границу ширины текста,
также запрещается переносить так, чтобы на строчке оставался бы один символ.
В случае невозможности поставить перенос строка завершается, а слово пишется на следующей строчке
(выдавать предупреждение и завершать программу если слово оказалось длиннее отображаемой ширины текста).

Для списков в начале ставится либо маркер, либо число c точкой, далее через определённое число пробельных символов,
отсчитываемых от начала экрана, идёт текст связанный с элементом списка. Если элемент списка не помещается в одну строчку,
то на следующих строчках так же ставятся пробельные символы так, чтобы был эффект отступа от края.
Так продолжается до следующего элемента. На следующем элементе всё начинается по новой: мы ставим маркер
или следующий номер в нумерации, пробельные символы и текст.
Если список вложенный, то на каждую строчку ставится
дополнительный отступ в соответствии с уровнем вложенности.
Маркеры списков, и числа в нумерованных списках дополнительно должны быть помечены голубым цветом.

Заголовки отображаются по центру заданной ширины экрана. При этом заголовок заключается в коробочку из символов '#'.
Коробочка ограничена справа и слева размерами отображаемой части окна терминала.
Левая и правая граница коробочки обрамляется в столько решёточек, какого уровня заголовок, а сверху и снизу отображается
на всю ширину экрана строка из решёток. После заголовка обязательно должна быть отображена пустая строка.
Заголовки должны быть подсвечены жёлтым цветом.

Блок кода отображается таким образом, что строка начинается символом '@', далее 3 пробела и сам код, который никак
не интерпретируется, и в случае выхода за границы экрана просто обрезается при отображении. Код должен быть подсвечен
зелёным цветом.

Простые абзацы начинаются с отступа первой строки задаваемого числом пробелов. На остальных
строках отступа уже нет.

# Требования к программному коду

Программный код должен быть написан на C++ и содержать абстрактный базовый класс Abstract_text,
который содержит следующие методы:

virtual unsigned long int count_symbols() const = 0;
virtual unsigned long int count_words() const = 0;
virtual int print(FILE *) const = 0;

Каждый логический элемент текста должен храниться как char* в наследнике класса Abstract_text.
Запрещается использовать классы std::string и std::vector.

Каждый класс должен быть описан в собственном модуле.

Требуется создать наследников данного класса, где каждый класс соответствует одному из типов абзацев в размеченном тексте.
В наследниках необходимо полностью определить интерфейс класса-родителя, реализация которого будет осуществлять
параметризованную печать текста.

В программе должен быть класс Text_viewer, который осуществляет чтение текста из файла
в хранилище во внутреннее для данного класса представление текста, а также затем его распечатку
на экран из хранилища. Хранилище текста - массив указателей на объекты Abstract_text.

После распечатки текста, в стандартный поток ошибок должно быть выведено число символов и число слов в исходном тексте,
при этом несколько идущих подряд пробельных символов являются одним сисмолом и служебные символы задающие разметку
не участвуют в подсчёте числа символов и слов.

В случае невозможности отображения текста программа должна выдавать сообщение об ошибки
с вразумительным описанием проблемы.

Предусмотреть возможность перенаправления печати в файл, а не в терминал, в этом случае ширину экрана нужно принять
равной 100 и отключить управление цветом (не печатать соответствующие управляющие символы).

В результате должно получиться примерно так
0
0 / 0 / 0
Регистрация: 05.04.2018
Сообщений: 41
10.04.2018, 22:34  [ТС] 3
Цитата Сообщение от Croessmah Посмотреть сообщение
Сообщение от BadKoder
универских(слабеньких)
Задачка со второго курса, дерзайте
Спасибо, буду пробовать
Что за университет, если не секрет?
0
10.04.2018, 22:34
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.04.2018, 22:34
Помогаю со студенческими работами здесь

Делимся хорошими детективами
Господа, посоветуйте что-нибудь в жанре детектива, так чтоб не ширпотреб, а со смыслом, что можно...

решить с пояснениями
пожалуйстьа помогите y(4+{e}^{x})dy-{e}^{x}dx=0

Сайты с хорошими скриптами PHP
Подскажите хорошие сайты со скриптами PHP для скачки и заливки???

Неизвестный дисплей с хорошими характеристиками
Уже много времени лежит рабочий экран от китайской нокии, выкинуть рука не поднимается. Диагональ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru