|
10 / 10 / 0
Регистрация: 27.05.2013
Сообщений: 92
|
||||||||||||||||||||||||||||||||||||||||||||||
Решение всех задач из учебника Стивена Праты23.03.2015, 12:20. Показов 217466. Ответов 271
Метки нет (Все метки)
Здравствуйте!Решил выложить свои решения задач книги С. Прата. Код ни в коем случае не претендует на звание эталонного, если есть замечания с радостью выслушаю и приму к сведению.
Глава 4
Задания
Задача №1
Задача №2
Задача №3
Задача №5
Задача №6
Задача №7
Задача №8
Задача №9
Задача №10
Задачи из глав с 4 о 10, решенные sourcerer
9
|
||||||||||||||||||||||||||||||||||||||||||||||
| 23.03.2015, 12:20 | |
|
Ответы с готовыми решениями:
271
Нюансы синтаксиса: классы, список инициализации (неясная строка из учебника Стивена Праты) читаю главу 10 книги стивена праты - "объекты и классы". автор во всех примерах поступает следуйщим образм: объявляет класс в одном фаиле... Неожиданный консольный вывод (упражнения 3 к главе 6 книги Стивена Праты) |
|
Модератор
|
|||||||||||||||||
| 26.06.2015, 22:20 | |||||||||||||||||
|
Вот правильный вариант: Глава 11, упражнение 5 (исправленный вариант).
0
|
|||||||||||||||||
|
Модератор
|
|||||||||||||||||||||||||||||||
| 03.07.2015, 05:27 | |||||||||||||||||||||||||||||||
|
Глава 11. Упражнение 6.
Мой вариант 7 упражнения из главы 11: Глава 11. Упражнение 7.
Я решил в перегрузках операторов operator+(), operator-(), operator*() и operator~() использовать конструктор, вместо операции присваивания, чтобы избежать лишнего вызова конструктора копирования. Кроме того, я вставил проверку в перегрузке оператора operator>>(), чтобы получить результат в точности соответствующий условию из учебника.
1
|
|||||||||||||||||||||||||||||||
|
58 / 62 / 34
Регистрация: 14.03.2014
Сообщений: 933
|
||||||
| 12.07.2015, 15:40 | ||||||
|
gru74ik в 5 упражнении 3 задание. Мне кажется там хотят чтобы программа была написана с использованием динамического массива, поскольку в главе 4 уделялось большое внимание им. Мне кажется что так будет меньше занимать памяти. Поскольку я новичок, буду ждать ваших замечаний если не прав.
0
|
||||||
|
Модератор
|
|||||||
| 13.07.2015, 08:58 | |||||||
В Вашем же коде две переменных типа double, а потом ещё и массив типа double ажно на 500 элементов, так же цикл и выделение и очистка памяти (за которыми вы следите самостоятельно). Памяти однозначно Вы расходуете больше. С точки зрения решения поставленной задачи, Ваше решение, на мой взгляд, чистой воды overengineering (неоправданное усложнение).
0
|
|||||||
|
58 / 62 / 34
Регистрация: 14.03.2014
Сообщений: 933
|
|
| 13.07.2015, 11:20 | |
|
Ну да, Вы правы
0
|
|
|
59 / 71 / 2
Регистрация: 04.12.2014
Сообщений: 176
|
|||||||||||
| 16.07.2015, 21:09 | |||||||||||
|
Всем доброго времени суток, у меня возник вопрос по 6 заданию 8 главы.
В задании написано, что в программе необходимо объявить специализацию, использующую массив строк. Можно ли считать функцию
Я написал свой вариант программы, в ней объявление специализации схоже с объявлениями в книге Stephen Prata Code
Не могли бы знающие люди подсказать - какой вариант правильнее или, быть может, разницы между ними особой и нет.
0
|
|||||||||||
|
2 / 2 / 0
Регистрация: 23.04.2015
Сообщений: 13
|
|||||||||||
| 17.07.2015, 17:53 | |||||||||||
|
Кто нибудь дошел до 17 главы, 7-e упражнение ?
Глава 17. Упражнение 7.
/*Ниже представлена часть программы, которая читает клавиатурный ввод в вектор объектов string, сохраняет строковое содержимое (не объекты!) в файле, а затем копирует содержимое файла обратно в вектор объектов string:
чтобы ввод-вывод осуществлялся методами read () и write (). Остается сделать немного, как перечислено ниже. • Написать функцию void ShowStr (const string &), которая отображает объект string с последующим символом перевода строки. • Написать функтор Store, который записывает строковую информацию в файл. Конструктор Store должен указывать объект if stream, а перегруженная функция operator () (const string &) должна указывать строку, подлежащую записи. Приемлемый подход состоит в записи в файл сначала размера строки, а затем — ее содержимого. Например, если Іеп содержит размер строки, можно было бы использовать следующие операторы: os.write((char *)&len, sizeof(std::size_t)); // сохранить длину os.write(s.data(), len); // сохранить символы Член data () возвращает указатель на массив, который содержит символы строки. Он подобен члену est г (), за исключением того, что последний добавляет нулевой символ. • Написать функцию GetStrsO, которая восстанавливает информацию из файла. Она может использовать read () для получения размера строки и затем применять цикл для чтения указанного количества символов из файла, добавляя их в изначально пустую временную строку. Поскольку данные объекта string— закрытые, для извлечения данных в строку должен использоваться метод класса вместо считывания их напрямую в нее. */ Может кто-то подсказать где ошибка в этом коде: Code
0
|
|||||||||||
|
704 / 109 / 21
Регистрация: 22.06.2014
Сообщений: 241
|
||||||
| 17.07.2015, 18:16 | ||||||
|
Ошибка в сигнатуре функции:
Сигнатура должна выглядеть вот так: void GetStrs(std::ifstream &f, std::vector<std::string>& vec); Поняли почему?
1
|
||||||
|
2 / 2 / 0
Регистрация: 23.04.2015
Сообщений: 13
|
|
| 17.07.2015, 18:28 | |
|
Спасибо! День "убил", перечитывая работу с бинарными файлами.
0
|
|
|
704 / 109 / 21
Регистрация: 22.06.2014
Сообщений: 241
|
|
| 17.07.2015, 18:32 | |
|
По-моему у Праты было где-то, что если данные вне функции надо изменить по параметру, то надо юзать указатели, а если просто считать оттуда, то константные ссылки. Просто полезно будет запомнить на будущее, что вектора надо передавать по константной ссылке, а вот уже если вам надо будет поработать с их копией, то тогда по значение, а если изменить что-то во внешнем векторе, то - указатели. Лично для меня это как-то немного систематизирует работу с параметрами для функций.
1
|
|
|
2 / 2 / 0
Регистрация: 23.04.2015
Сообщений: 13
|
|
| 17.07.2015, 19:10 | |
|
Конечно там ссылка должна была быть. Моя ошибка на уровне копипасты. Написал прототип, отвлекся, когда вернулся продолжил... в результате цикл на весь день. Думал что ошибка в чтении бинарного файла.
0
|
|
|
6 / 6 / 0
Регистрация: 08.02.2014
Сообщений: 79
|
|
| 21.07.2015, 13:57 | |
|
ну так ведь детям нужно же с чего то начинать или сразу рождаться с дипломом из высшего учебного
0
|
|
|
58 / 62 / 34
Регистрация: 14.03.2014
Сообщений: 933
|
||||||
| 22.07.2015, 12:11 | ||||||
|
gru74ik,
Ну что то вы в 6 главе 9 упражнении решили передохнуть заменив cin на объект класса ifstream. Я думал здесь хотят что то вроде этого: Кликните здесь для просмотра всего текста
0
|
||||||
|
Модератор
|
|||
| 22.07.2015, 12:27 | |||
|
Senarist, условие упражнения № 9 внимательнее читайте:
0
|
|||
|
58 / 62 / 34
Регистрация: 14.03.2014
Сообщений: 933
|
|
| 22.07.2015, 13:40 | |
|
Решение то правильное. Я думал чего то более сложного хотят. Поэтому решил от основного когда упражнения 6 отойти. Хотя в моем коде если написать имя в 2 слова то получается фигня. Придется переделывать.
0
|
|
|
0 / 0 / 0
Регистрация: 22.05.2015
Сообщений: 1
|
|
| 30.07.2015, 14:39 | |
|
Большое спасибо)
0
|
|
|
0 / 0 / 1
Регистрация: 04.05.2014
Сообщений: 67
|
|
| 30.07.2015, 20:30 | |
|
0
|
|
|
58 / 62 / 34
Регистрация: 14.03.2014
Сообщений: 933
|
|
| 30.07.2015, 22:11 | |
|
Nordener ну у gru74ik она реализована не лучшим образом. 7 переменных типа double, когда я обошелся 5, причем 2 из них интовские. Ибо сумма клео всегда будет инт.
0
|
|
| 30.07.2015, 22:11 | |
|
Найти причины и способы исправления ошибок в коде (упражнения по книге Стивена Праты) Задача из лекций по книге Стивена Праты
Понятен материал учебника, но не получается самостоятельное решение задач Запишите в файл 2 название команды, количество решенных задач и общее времени, потраченное на решение всех задач Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет
Новости компьютерного мира и их обсуждение (4)
Салют, шампанское, овации!
:drink:
|
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр.
Дословно, отклонённая. . .
|
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы
Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
|
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
|
|
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2.
Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
|
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
|
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
|
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
|