вторник, 29 декабря 2015 г.

Задачи по программированию на языке C++, часть 2

Это подолжение обещанного в предыдущем сообщении "Задачи по программированию на языке C, часть 1" : так же задачи, но уже на языке C++.

Язык C++ намного объёмнее, чем C, поэтому и примеров здесь могло бы быть на порядок больше. Но я сознательно не хочу касаться вопросов собственно проектирования, отображения реальных сущностей в конструкции C++ - это значит, что из рассмотрения уводятся большинство вопросов наследования, полиморфизма, и уж конечно множественного наследования. "Нельзя объять необъятное".

Немного, но есть пересечения по формулировкам задач с 1-й частью - некоторые задачи любопытно посмотреть в сравнении: как это делается на C и что нового привносит C++.

Как и раньше, ссылки даются на последнюю актуальную редакцию - ссылки будут меняться без какого-либо уведомления. Скачать свободно последнюю актуальную редакцию текста и архива кодов можно здесь:
Yandexтекст, архив кодов
Googleтекст, архив кодов

Сейчас это редакция 38 от 13.09.2016, стр. 85.
(после достаточно продолжительного перерыва произошло весьма обстоятельное обновление)

В отношении авторских прав повторю:
Ничто из представленного в этом тексте не заимствовано ни из каких источников (кроме, возможно, идей постановок некоторых задач). Все представленные варианты решений - авторские, со всеми возможными ошибками и неточностями.

Как и всё опубликованное ранее, этот текст и все сопутствующие ему материалы представляется под лицензией: Creative Commons Attribution ShareAlike (http://legalfoto.ru/licenzii/) ("общественное достояние"):
... допускается копирование, коммерческое использование произведения, создание его производных при чётком указании источника, но при том единственном ограничении, что при использовании или переработке разрешается применять результат только на условиях аналогичной лицензии.

четверг, 24 декабря 2015 г.

Задачи по программированию на языке C, часть 1

Здесь я собрал большой набор вопросов и задач по программированию на языке C. Это систематизированная подборка тех материалов, которые обсуждались на протяжении нескольких лет на форуме (жалко стало, если затеряется). В составе: текст описания (задачи и решения) и архив кодов решений задач. Все решения проверены и делались в Linux, но, в основной своей части, не должны зависеть от операционной системы (некоторые проверялись в VirtualBox в Windows).

Спектр задач достаточно широкий получается: начиная от простых (но не очевидных) вопросов (которые с подтекстом), и заканчивая задачами, написание решений которых могут потребовать 2-3 дня плотной работы. Главным образом, этот материал предназначен для изучающих язык C. Но некоторые задачи потребуют пошевелиться и профессионалов в C, чтобы "не застаиваться" (как этюды для пианиста). Часть задач мне подбрасывали в разные годы те, кто изучали C (под моим ... кураторством, или каким другим образом), и борьба с частью таких задач вызывала азарт интереса.

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

И последнее ... почему "часть 1"? Потому что в работе находится такой же сборник, но по языку C++. Я являюсь последовательным сторонником точки зрения, рассматривающей язык C++ не как некоторое абсолютно автономное изобретение, а как надмножество языка C. И того, что изучать C++ лучше через изучение C с дальнейшим расширением до C++ (Существует другая, противоположная точка зрения). Так вот, "Задачи по программированию на языке C++" - это и будет часть 2.

Скачать свободно последнюю актуальную редакцию текста и архива кодов можно здесь:
Yandexтекст, архив кодов
Googleтекст, архив кодов
Сейчас это редакция 23 от 12.01.2016, страниц 82.

В отношении авторских прав повторю:

Ничто из представленого в этом тексте не заимствовано ни из каких источников (кроме, возможно, идей постановок некоторых задач). Все представленные варианты решений - авторские, со всеми возможными ошибками и неточностями.

Как и всё опубликованное ранее, этот текст и все сопутствующие ему материалы представляется под лицензией: Creative Commons Attribution ShareAlike (http://legalfoto.ru/licenzii/) ("общественное достояние"):

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