русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Задачи для самостоятельного решения


Дата добавления: 2015-07-09; просмотров: 768; Нарушение авторских прав


Мряка и Бряка расдрусили пусик. Мряка взяла себе два фарика, а Бряка - один. По скольку хрунечков у Мряки и у Бряки?

Г.Остер. Задачник

5.1. Задана произвольная гирлянда. Написать функцию, которая вставляет в i-ю висюльку на k-е место число 48.

5.2. Задана произвольная гирлянда. Написать функцию, которая удаляет все пустые висюльки.

5.3. Задана произвольная гирлянда. Написать функцию, которая пе­реставляет первую висюльку на последнее место.

5.4. Задана произвольная гирлянда. Написать функцию, которая переворачивает i-ю висюльку "вверх ногами".

5.5. Задана произвольная гирлянда. Написать функцию, которая из данной гирлянды делает гирлянду с одной большой висюлькой (соби­рает все висюльки в одну, то есть висит первая висюлька, под ней вторая, под ней третья и т.д).

5.6. Задана произвольная гирлянда. Написать функцию, которая в каждой висюльке оставляет по три элемента.

5.7. Задана произвольная гирлянда. Написать функцию, которая из­меняет порядок следования висюлек на противоположный.

5.8. Задана произвольная гирлянда. Написать функцию, которая до­бавляет в каждую висюльку на первое место число 10.

5.9. Задана произвольная гирлянда. Написать функцию, которая удаляет во всех висюльках отрицательные числа.

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

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

5.12. Задана произвольная гирлянда. Написать функцию, которая удаляет максимальный элемент в гирлянде.

5.13. Задана произвольная гирлянда. Написать функцию, которая вставляет в гирлянду на (i+1)-е место новую висюльку (3,5,-6,11).



5.14. Задана произвольная гирлянда. Написать функцию, которая во всех висюльках ставит последний элемент на первое место.

5.15. Задана произвольная гирлянда. Написать функцию, которая удаляет первые элементы в висюльках, висящих на четных местах.

5.16. Задана произвольная гирлянда. Написать функцию, которая удаляет висюльки, висящие на четных местах.

5.17. Задана произвольная гирлянда. Написать функцию, которая удаляет висюльки, у которых на первом месте отрицательное число.

5.18. Задана произвольная гирлянда. Написать функцию, которая подвешивает первую висюльку к самой короткой висюльке.

5.19. Задана произвольная гирлянда. Написать функцию, которая перевешивает висюльку, содержащую одни нули на первое место.

5.20. Задана произвольная гирлянда. Написать функцию, которая "удваивает" i-ю висюльку, то есть из висюльки (-1 6 12) должна полу­читься висюлька (-1 -1 6 6 12 12).

5.21. Задана произвольная гирлянда. Написать функцию, которая добавляет в каждую висюльку на последнее место число -17.

5.22. Задана произвольная гирлянда. Написать функцию, которая добавляет в конец гирлянды висюльку, являющуюся копией i-й ви­сюльки.

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

5.24. Задана произвольная гирлянда. Написать функцию, которая меняет на противоположный знак каждого нечетного элемента в ви­сюльках с четными номерами.

5.25. Задана произвольная гирлянда. Написать функцию, которая обнуляет все элементы в тех висюльках, в которых все числа распо­ложены по возрастанию.

5.26. Задана произвольная гирлянда. Написать функцию, которая подвешивает копию первой висюльки под последнюю, а копию послед­ней под первую.

5.27. Задана произвольная гирлянда. Написать функцию, которая удваивает каждую висюльку, подвешивая под ней ее копию.

5.28. Задана произвольная гирлянда. Написать функцию, которая в каждой висюльке вставляет между равными числами число 0.

5.29. Задана произвольная гирлянда. Написать функцию, которая в каждой висюльке меняет местами числа, "висящие" на четных и не­четных местах.

5.30. Задана произвольная гирлянда. Написать функцию, добавляющую новое звено в гирлянду, висюлька которого содержит суммы висюлек соответствующего звена гирлянды.

5.31. Установите, какими недостатками обладает приведенная ниже функция. Исправьте их.

void GirVstav (nodeGir **Res,int el)

// Включение звена с информационным полем el после звена, на которое //указывает *Res (включение звена в гирлянду).

{

nodeGir *q, *f;

q = new nodeGir;

(*q).elem = el; (*q).sled = (**Res).sled; (**Res).sled = q;

}

5.32. Установите, какими недостатками обладает приведенная ниже функция. Исправьте их.

void Gir1Vstav (nodeGir **Res,int el)

//Включение звена с информационным полем el перед звеном, на которое //указывает *Res (включение звена в гирлянду).

{

nodeGir *q;

q = new nodeGir;

(*q).elem = (**Res).elem; (*q).sled = (**Res).sled;

(**Res).elem = el; (**Res).sled = q;

}

5.33. Установите, какими недостатками обладает приведенная ниже функция. Исправьте их.

void GirUdale (nodeGir **Res)

//Удаление звена, расположенного после звена, на которое

//указывает ссылка *Res (удаление звена гирлянды).

{

nodeGir *q;

q = (**Res).sled;

if ((**Res).sled!=NULL)

{ (**Res).sled = (*(**Res).sled).sled; delete q; }

else cout<<"Звено с заданным элементом - последнее!\n";

}

5.34. Установите, какими недостатками обладает приведенная ниже функция. Исправьте их.

void Gir1Udale (nodeGir **Res)

//Удаление звена, на которое указывает ссылка *Res

//(удаление звена гирлянды).

{

nodeGir *g;

if ((**Res).sled!=NULL)

{g = (**Res).sled;

(**Res).elem = (*(**Res).sled).elem;

(**Res).sled = (*(**Res).sled).sled;

delete g; }

else cout<<"Не умею удалять последнее звено!\n";

}

5.35*. Данная задача заимствована из монографии [38].

(а) Рассмотрим фабрику, изготавливающую изделия из более мел­ких узлов. Назовем элементарной деталью такой узел, который не является композицией более мелких.

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

 
 

 

 


Указатели на заголовки списков последовательно записываются в массив PARTS. Затем программа печатает все неэлементарные детали.

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

Например, если часть A содержит части B, C и D и при этом B содержит элементарные части E и F, C является элементарной де­талью, а D содержит G, которая в свою очередь содержит элементар­ные части H и I, и при этом D также содержит элементарную часть J, то тогда A содержит элементарные части C, E, F, H, I и J.

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

Замечание. Приведенные в этом разделе задачи принадлежат в основном А.С.Белозерову (Одесский педагогический институт).

 



<== предыдущая лекция | следующая лекция ==>
Фрагмент теории | Фрагмент теории


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.467 сек.