Главная » Все файлы » Просмотр файлов из архивов » PDF-файлы » Ю.С. Корухова - Сборник задач и упражнений по языку С++

Ю.С. Корухова - Сборник задач и упражнений по языку С++

PDF-файл Ю.С. Корухова - Сборник задач и упражнений по языку С++ Практика расчётов на ПЭВМ (38626): Книга - 3 семестрЮ.С. Корухова - Сборник задач и упражнений по языку С++: Практика расчётов на ПЭВМ - PDF (38626) - СтудИзба2019-05-08СтудИзба

Описание файла

PDF-файл из архива "Ю.С. Корухова - Сборник задач и упражнений по языку С++", который расположен в категории "". Всё это находится в предмете "практика расчётов на пэвм" из 3 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст из PDF

1. Абстрактные типы данных (АТД). Классы.Конструкторы, деструкторы, конструктор копирования, параметры со значениями по умолчанию, работа сдинамической памятью (new и delete). Ссылки, передача параметров по ссылке. Класс как областьвидимости. Дружественные функции. Конструкторы со списком инициализации.

Статические члены класса.1. Пусть имеется описание класса комплексных чиселclass complex{double re, im;};Написать конструкторы, позволяющие создавать объект класса complexа) по двум заданным параметрамб) по заданному значению re (при этом считать im=0)в) без параметровМожно ли написать один конструктор, удовлетворяющий всем условиям а) – в)?2. Привести описание класса "обыкновенная дробь", члены-данные класса – числитель изнаменатель.

При создании объектов этого класса возможно задание значений числителя изнаменателя или только числителя (знаменатель в этом случае считается равным 1). Присоздании дроби должно проводиться сокращение, то есть дроби ½ и 6/12 должны статьодинаковыми. Нужно ли для создания копий объектов такого класса явно определятьконструктор копирования?3. Описать конструктор, деструктор и конструктор копирования для класса my_vectorclass my_vector{int len; // количество элементов в вектореint *v; //указатель на массив элементов вектора};Дополнить описание класса функцией, вычисляющей длину вектора. Описать функции,вычисляющие скалярное произведение векторов, произведение вектора на константу,сумму векторов, предполагая, что оба вектора имеют одинаковую размерность.Написать функцию-член класса next(), которая увеличивает на 1 все координатывектора.

Функция должна возвращать в качестве результата измененный вектор. Чтопроизойдет с координатами вектора v после вычисления выражения v.next().next()?4. Описать реализацию АТД. Если для него требуются вспомогательные АТД, привестиих описание полностью.1) Электрический счетчик.При создании объекта указывается диапазон значений, которые может отображатьсчетчик (при возникновении значения на 1 больше заданного максимального счетчик«сбрасывается» на 0), единицы измерения.

Для счетчика должны быть определеныоперации увеличения значения на N и печать текущего значения.2) Стек для хранения целых чисел (int).В классе должны быть функции добавления элемента на вершину стека (push), чтениеверхнего элемента стека (pop) , проверка стека на пустоту (empty), проверка, что стекполон (full). Максимальный допустимый размер стека указывается при созданииобъекта.3) Очередь для хранения вещественных чисел (double).В классе должны быть функции добавления элемента в конец очереди (put), чтениепервого элемента из очереди (get) , проверка очереди на пустоту (empty), проверка, чтоочередь целиком заполнена (full).

Максимальный допустимый размер очередиуказывается при создании каждого объекта.4) Почтовый адрес.Для объектов класса должны быть предусмотрены функции изменения индекса,города, улицы, номера дома, корпуса, квартиры, вывод адреса на экран.5) Дерево поиска.Деревом поиска (деревом сравнений) называется двоичное дерево, которое либопустое, либо состоит из одной вершины, либо для каждой из его вершин в левомподдереве содержатся только вершины с меньшими элементами, а в правом поддереве– только с большими элементами. Для объектов класса должны быть предусмотреныоперации добавления, удаления и поиска элемента.

В вершинах дерева хранятся числатипа int.6) Банковский счет.Необходимые члены-данные: дата создания счета, сумма денег, которая на немхранится, владелец счета (объект класса person, у которого есть фамилия и имя),информация о последних 10 операциях, проведенных со счетом.Операция,проводимая со счетом – объект, содержащий дату операции, вид операции(добавить/снять деньги) и сумму операции.У класса банковский счет должны быть методы: пополнить счет, снять деньги (еслиуказана недопустимая сумма – должно печататься сообщение об ошибке, сумма насчете при этом не меняется), распечатать информацию о последних 10 операциях,распечатать доступную сумму денег на счете.7) Зоопарк.Необходимые члены-данные: количество зверей, массив, содержащий информацию озверях (имя, номер клетки, название любимой еды), часы работы зоопарка адресзоопарка, фамилия сторожа.

В классе нужно определить методы, позволяющие«накормить» зверя (изменить значение соответствующего поля), поменять сторожазоопарка (записать другую фамилию сторожа в соответствующее поле).5. Есть ли ошибки в приведенном ниже фрагменте программы. Если да – исправить их,не изменяя функций f, main и не определяя новых функций. Перечислить всеконструкторы и деструкторы, которые будут вызваны при работе программы.class cat{double weight;char name[100];public:explicit cat(const char* n, double w=12.0): weight(w){strcpy(name,n);}cat(double w): weight (w) {strcpy(name,"cat");}};int f(const cat c1, const cat c2, const cat& c3,const cat & c4){return c1.weight+c2.weight+c3.weight+c4.weight;}int main(){f("Murzik", 22.0, "Kuzya",10.2);return 0;}6. Из указанных классов перечислить те, объекты которых можно создавать безпараметров (используя конструктор умолчания).class Journal{int pages;char* editor;int number;public: Journal(int p, char* ed,int num):pages(p),number(num){editor=new char[strlen(ed)+1];strcpy(editor,ed);}~Journal(){delete[] editor;}};class Book{int pages;char* name;int year;Book(int p=10){pages=p;name=new char [1];*name='\0';year=2007;}~Book(){delete[] name;}};class Page{int num;int format;};class CopyBook{enum size {A0,A1,A2,A3,A4,A5};int pages;size sz;char name[20];public:CopyBook(const CopyBook& c){sz=c.sz;strcpy(name,c.name);pages=c.pages;}};7.

Дано описание класса Dateclass Date{int day, month, year;static Date today;public:static int count;// В поле count подсчитывается количество созданных дат.};Написать для этого класса конструкторы (один или несколько) и деструктор.Предполагается создавать объект-дату по заданным значениям дня, дня и месяца или дня,месяца и года (недостающие значения берутся из даты today), корректность заданияпараметров в конструкторе проверять не требуется. Конструкторы и деструктор должныучитывать появление и удаление объекта в поле count. Привести пример функции main,в которой продемонстрированы разные способы создания объектов-дат. Какое числобудет получено в результате работы функции f()?int f(){Date d1(1,1,2009), d2(28,2),d3, d4=d1;return d1.count + Date::count;}8. Есть ли ошибки в приведенной ниже программе на Си++? Если есть – объясните, в чемони заключаются.

Если нет - прокомментировать работу программы.class Flower{int num;int height;char* name;public:Flower(int n=10, int h, char* nm = "Rose"): num(n),height(h){name=nm;}void ~Flower(){delete[] name;}};class Garden{Flower& f;public:void add_flower(Flower& f1){f=f1;}};int main(){Garden g;Flower f;return 0;}9.

Для автоматизированной системы регистрации на курсы кройки и шитья описатьклассы Course и Student. Класс Course описывает один конкретный курс. В немдолжно быть предусмотрено хранение информации об общем количестве слушателейэтого курса, максимальное допустимом количестве слушателей для этого курса. Услушателя курсов (Student) должны быть определены фамилия, имя, номер паспорта,информация о курсе, на котором он учится.

Предусмотреть функции добавленияслушателя и исключения его с курсов. Один и тот же слушатель не может учиться нанескольких курсах. Написать функцию, не являющуюся членом указанных классов,которая для двух параметров Student проверяет, учатся ли они на одном курсе.10. Привести примеры различных ситуаций, в которых будет вызываться конструкторкопирования. Привести пример описания класса, копирование объектов которогонедопустимо.11.

Привести пример класса, имеющего конструктор умолчания. Привести примеры двухразличных ситуаций, в которых работает функция-конструктор (но не конструкторкопирования)? Сформулируйте условия, при которых конструктор копирования поумолчанию в классе не создается.12. Дать определение деструктора. Привести примеры двух различных ситуаций, вкоторых вызывается деструктор.13. Есть ли ошибки в следующем фрагменте программы? Если да – объяснить, в чем онизаключаются, и исправить их. Для каждого вызова функции внутри main, используяоперацию :: , указать, функция из какой области видимости будет вызвана.class my_str{size_t len;char * str;public:my_str(const char* s): len(strlen(s)){s = new char[len+1];strcpy(str,s);}~my_str(){ delete[] str; }void strcpy(const my_str& t){if (len==t.len) strcpy(str,t.str);else {delete[] str;str=new char[t.len+1];strcpy(str,t.str);}len=t.len;}};int main(){my_str a("aaa"), b("bb");const my_str c("ccc");b.strcpy(c);strcpy(b,a);b.strcpy(b);c.strcpy(a);strcpy(a.str,b.str);return 0;}14.

Дополнить программу, не изменяя текст функции main, чтобы функция main работалав соответствии со своим описанием, приведенным в комментариях. В описании классов неиспользовать открытые нестатические члены - данные.а) int main(){Ball gb("green",20),//мяч цвета "green", диаметр - 20wb(12),//мяч цвета "white", диаметр - 12b(10);//мяч цвета "white", диаметр - 10cout<<"The smallest:"<<smallest(gb,wb,b)<<" end "<<endl;//должен быть напечатан диаметр самого маленького из мячейreturn 0;}//В результате работы программы должно быть напечатано:The smallest: 10 endwhitewhitegreenб) int main(){tiger T1,T2("Kuzya");T1.setname("Murzik").setcolor("light").setweight(200);//задаем параметры тиграT1.print(); //печать информации о тиграхT2.print();T2.setname("Tigr");if (less(T2,T1)) T2.print();//печать информации о том тигре, который по размеру меньшеelse T1.print();//печатаем количество объектов-тигровcout<<tiger::count<<endl;return 0;}2.

Перегрузка функций и операторовПерегрузка функций, алгоритм выбора перегруженной функции. Перегрузка операций с помощью функцийчленов класса, с помощью функций-друзей класса.1. Пусть класс Door описан следующим образом:class Door{int height;int width;};Привести примеры операций, которыеа) могут быть перегружены только с помощью функции-члена класса;б) могут быть перегружены только с помощью функции, не являющейся членом класса;с) могут быть перегружены как функцией - членом класса, так и функцией, неявляющейся членом класса.d) не могут быть перегружены.Написать соответствующие прототипы перегруженных операций для класса Door.2.

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5209
Авторов
на СтудИзбе
431
Средний доход
с одного платного файла
Обучение Подробнее