Метод_материалы / Учебники / Решебник
.pdfребра в сантиметрах), цвет (красный, желтый, зеленый или синий) и материал (деревянный, металлический, картонный).
Написать и протестировать функции для ввода и вывода данных, а также функции поиска количества кубиков каждого из перечисленных цветов и их суммарного объема.
Задание 18. Определить структуру, описывающую кубики: размер кубика (длина ребра в сантиметрах), его цвет (красный, желтый, зеленый или синий) и материал (деревянный, металлический, картонный).
Написать и протестировать функции для ввода и вывода данных, а также функции поиска количества кубиков с указанными значениями «материал» и «длина ребра». Например, найти количество деревянных кубиков с ребром 3 см и количество металлических кубиков с ребром 5 см.
Задание 19. Определить структуру, описывающую сведения о веществах: название вещества, его удельный вес и проводимость (проводник, полупроводник, изолятор).
Написать и протестировать функции для ввода и вывода данных. Написать и протестировать функции для поиска по названию вещества и по проводимости. Найти удельные веса и названия всех проводников.
Задание 20. Определить структуру, описывающую сведения о веществах: название вещества, его удельный вес и проводимость (проводник, полупроводник, изолятор).
Написать и протестировать функции для ввода и вывода данных. Написать и протестировать функции для сортировки данных по любому из признаков.
Задание 21. Определить структуру, описывающую сведения об игрушках: название игрушки, ее стоимость и возрастные границы детей для которых она предназначена (например, для детей от двух до пяти лет).
Написать и протестировать функции для ввода и вывода данных. Написать и протестировать функцию поиска, чтобы получить сведения о названиях игрушек, цена которых не превышает k руб. и которые подходят детям n лет. Написать и протестировать функцию поиска, чтобы получить сведения о самом дорогом, например, конструкторе.
Задание 22. Определить структуру, описывающую сведения об игрушках: название игрушки, ее стоимость и возрастные границы детей для которых она предназначена (например, для детей от двух до пяти лет).
Написать и протестировать функции для ввода и вывода данных. Написать и протестировать функцию поиска по наименованию. Написать и протестировать функцию поиска, чтобы получить сведения о названиях наиболее дорогих игрушек (цена которых отличается от цены самой дорогой игрушки не более чем на 10 руб.).
Задание 23. Определить структуру, описывающую сведения об игрушках: название игрушки, ее стоимость и возрастные границы детей для которых она предназначена (например, для детей от двух до пяти лет).
Написать и протестировать функции для ввода и вывода данных. Написать и протестировать функцию поиска по диапазону цены. Написать и протестировать
141
функцию поиска, чтобы подобрать игрушку любую, кроме мяча, подходящую ребенку 3 лет, и дополнительно мяч так, чтобы суммарная стоимость игрушек не превосходила 100 руб.
Задание 24. Определить структуру, описывающую сведения об игрушках: название игрушки, ее стоимость и возрастные границы детей для которых она предназначена (например, для детей от двух до пяти лет).
Написать и протестировать функции для ввода и вывода данных. Написать и протестировать функцию поиска, чтобы подобрать игрушку по названию, по цене, и по возрастному диапазону. Например, все мячи ценой n руб., предназначенный детям от 3 до 8 лет.
Задание 25. Имеются сведения об изделиях, выпускаемых малым предприятием: наименование изделия, годовой план выпуска изделий в штуках, фактический поквартальный выпуск каждого изделия.
№п/п |
Наименование |
Годовой план выпуска |
Фактический выпуск по кварталам |
||||
I |
II |
III |
IV |
||||
|
изделия |
|
|||||
1 |
Стул |
100 |
10 |
20 |
35 |
35 |
|
|
|
|
|
|
|
|
|
Определить структуру для представления этих данных.
Написать и протестировать функции для ввода данных и вывода в виде таблицы. Написать и протестировать функции для определения фактического выпуска изделий и процента выполнения плана по каждому виду изделий. Написать функцию поиска по наименованию с выводом общей информации.
Задание 26. Имеются сведения о сотрудниках учреждения в следующем виде: табельный номер сотрудника, его фамилия, имя, отчество, оклад. Определить структуру для представления этих данных.
Написать и протестировать функции для ввода данных и вывода в виде таблицы. Написать и протестировать функции для поиска по табельному номеру, по фамилии. Вычислить среднюю заработную плату всех сотрудников.
Задание 27. Имеются данные о выпускаемых изделиях: наименование изделия, артикул, себестоимость изделия и его цена. Определить структуру для представления этих данных. Написать и протестировать функции для ввода данных и вывода в форме полной ведомости выпускаемых изделий следующего вида:
№ п/п |
Наименование изделия |
Артикул |
Себестоимость |
Цена |
|
|
|
|
|
Написать и протестировать функции для поиска изделий по наименованию и по диапазону цен. (Например, цена не превышает K1 руб., но более K2 руб.)
Задание 28. Известны сведения о себестоимости некоторых видов продукции: наименование, Jм – индекс изменения норм расхода на данный вид материальных затрат, Jц – индекс изменения оптовых цен на данный вид, Jп – индекс выпуска продукции, Do – отношение стоимости основных и вспомогательных материалов к выпуску товарной продукции по отчету, Тпп – объем товарной продукции по плану. На основании этих данных может быть вычислена экономия от снижения себестоимости, которая вычисляется по формуле
142
Э = (1 – Jм · Jц) · Dо · Jп · Тпп.
Определить структуру для представления этих данных. Разработать функции для ввода данных и вывода в форме выходной ведомости следующего вида:
Наименование |
Jм |
Jц |
Jп |
Dо |
Тпп |
Э |
|
|
|
|
|
|
|
Здесь Э – экономия, которая должна быть вычислена для каждого наименования. Написать и протестировать функции для добавления новых данных, а также для поиска наименований, для которых достигнута наибольшая и наименьшая экономия.
Задание 29. В магазине ведется учет продажи товаров. По каждому товару известны наименование товара, цена, торговая надбавка, количество проданного товара. Определить структуру для представления этих данных. Разработать функции для ввода данных и вывода в форме отчетной ведомости следующего вида:
Наименование |
Цена (руб.) |
Торговая |
Количество |
Общая |
|
товара |
надбавка (%) |
стоимость |
|||
|
|
||||
|
|
|
|
|
Написать и протестировать функции для добавления данных о новом товаре, для поиска по наименованию, для вычисления общей итоговой стоимости продаж.
Задание 30. Известны данные о выпускаемой продукции по цехам предприятия: название цеха, отношение стоимости основных и вспомогательных материалов к выпуску продукции по отчету Dо и по плану Dп, объем товарной продукции по плану Тп.
Определить структуру для представления этих данных. Разработать функции для ввода данных и вывода в форме выходной ведомости следующего вида:
|
Отношение стоимости основных и |
Объем товарной |
Экономия от |
||
Цех |
вспомогательных материалов к объему |
продукции по |
снижения |
||
выпускаемой продукции |
плану |
себестоимости |
|||
|
|||||
|
Dо |
Dп |
Тп |
Э |
|
|
|
|
|
|
|
Здесь экономия от снижения себестоимости по каждому цеху вычисляется по формуле: Э = (Dо – Dп) · Тп.
Написать и протестировать функции, чтобы найти цеха, для которых достигнута наибольшая и наименьшая экономия, а также для поиска информации по названию цеха.
Задание 31. В выпуске продукции принимают участие несколько бригад, для которых ведется помесячный учет. Бригады имеют номера. Определить структуру для представления этих данных. Разработать функции для ввода данных и вывода в форме выходной ведомости следующего вида:
Месяц |
|
Номер бригады |
|
Итоговая выработка по |
||
1 |
2 |
3 |
4 |
месяцам |
||
|
||||||
|
|
|
|
|
|
|
Написать и протестировать функции, чтобы найти среднюю выработку по бригадам за весь отчетный период, а также для поиска сведений о выработке за указанный месяц по названию месяца.
143
Задание 32. Предприятие нанимает работников на сдельную работу. Для каждого из них ведется ежедневный учет: фамилия, имя, отчество, разряд, расценка за единицу продукции, количество произведенных изделий. Определить структуру для представления этих данных. Разработать функции для ввода данных и вывода в форме расчетной ведомости следующего вида:
Ф. И. О. |
Разряд |
Расценки |
Количество |
Сумма |
|
|
|
|
|
Написать и протестировать функции, чтобы найти общую выработку за день и общую сумму к оплате. Сохранить эти данные в виде таблицы.
Дата |
Количество произведено |
Оплачено |
|
|
|
Задание 33. Для каждого участка цеха завода имеются сведения о количестве отпущенных для производства материалов: наименование материала, единица измерения, объем отпущенного участку материала. Определить структуру для представления этих данных. Разработать функции для ввода данных и вывода с подведением итогов в форме выходной ведомости следующего вида:
Наименование |
Ед. измерения |
Участок 1 |
Участок 2 |
Участок 3 |
Итого |
|
|
|
|
|
|
Написать и протестировать функции, чтобы найти общий расход материалов каждым участком, и всего по цеху, а также для поиска по наименованию.
Задание 34. На складе ведется учет наличия товаров. Для подведения итогов месяца есть сведения: наименование товара; количество поступившего и реализованного товара за месяц. Определить структуру для представления этих данных. Разработать функции для ввода данных и вывода в форме оборотной ведомости следующего вида:
Наименование товара |
Поступило за месяц |
Реализовано за месяц |
Разница |
|
|
|
|
Написать и протестировать функции, чтобы найти общий приход товара и общий расход, а также для вывода отчета об остатках товара на складе по форме:
Наименование товара |
Остаток |
|
|
Задание 35. На предприятие поступает сырье разного вида. Учет поступления сырья ведется по следующим позициям: вид сырья (наименование), плановое поступление, фактическое поступление. Определить структуру для представления этих данных. Разработать функции для ввода данных и вывода в форме отчетной ведомости следующего вида:
Вид сырья |
Плановое |
Фактическое |
Процент выполнения |
|
поступление |
поступление |
плана |
||
|
||||
|
|
|
|
Написать и протестировать функции, чтобы найти общий объем плановых поступлений и общий объем фактических поступлений, а также для поиска по наименованию.
Тема 13. Работа в графическом режиме
144
Данная тема включена как дополнительная. Работа в графическом режиме связана с использованием графических библиотек, принципы и содержание которых зависят от среды разработки. Задания этой темы предлагались для разработки в среде программирования Borland C++ 3.1 с использованием BGI графики, которая на данный момент времени устарела. Именно поэтому ее принципы в данном пособии не рассматриваются. Однако, задачи представляют интерес с точки зрения их алгоритмической разработки, и могут решаться в других графических средах. Они интересны еще и потому, что интегрируют знания различных разделов данного курса.
Варианты заданий
Задание 1.
1.Нарисовать и оживить изображение автомобиля.
2.Столбиковая диаграмма представляет собой набор прямоугольников, основания которых равны, а высоты пропорциональны числовым величинам, взятым из некоторой совокупности исходных данных. Для большей наглядности прямоугольники диаграммы обычно закрашивают в разные цвета. Построить такую диаграмму для n исходных данных. Применять автоматическое масштабирование.
3.В текстовом файле хранятся координаты n точек на координатной плоскости. Прочитать данные из файла в массивы. Изобразить на экране взаимное расположение точек относительно горизонтали, проходящей через середину экрана. Выделить различными цветами точки, лежащие выше и ниже этой линии.
Задание 2.
1.Нарисовать и оживить изображение «цыпленок, клюющий зерно».
2.Круговая диаграмма – это круг, площади секторов которого пропорциональны соответствующим числовым величинам, взятым из некоторой совокупности исходных данных. Для большей наглядности секторы диаграммы закрашивают в разные цвета. Построить такую диаграмму для n исходных данных. Применять автоматическое масштабирование.
3.В текстовом файле хранятся координаты центров n окружностей на координатной плоскости c заданным радиусом. Прочитать данные из файла в массивы. Изобразить на экране взаимное расположение окружностей. Выделить цветом концентрические окружности.
Задание 3.
1.Нарисовать и оживить изображение «взлет ракеты».
2.Построить графики функций: Y1(x) = x2, Y2(x) = x3, где x=[–2.5, 2.5]. Шаг по
хпринять равным 0,1, но предусмотреть возможность изменения. Применять автоматическое масштабирование.
3.В текстовом файле хранятся координаты n точек на координатной плоскости. Прочитать данные из файла в массивы. Изобразить на экране точки, а также линию, соединяющую эти точки в порядке обхода. Каждый отрезок линии выделить другим цветом.
Задание 4.
1. Нарисовать и оживить изображение «извержение вулкана».
145
2.Построить график функции: y(x)=esin(x), где x = [0.2, π], шаг = π /12 . Применять автоматическое масштабирование.
3.В текстовом файле хранятся координаты n точек на координатной плоскости. Прочитать данные из файла в массивы. Изобразить на экране точки. Выделить цветом точки, удовлетворяющие условию x>y.
Задание 5.
1.Нарисовать и оживить изображение физиономии клоуна.
2.Построить график функции: y(x) = x·cos(x) + x·sin(x), где x = [0.2, π], шаг
x= π /12 . Применять автоматическое масштабирование.
3.В текстовом файле хранятся координаты n точек на координатной плоскости. Прочитать данные из файла в массивы. Изобразить на экране взаимное расположение точек относительно вертикали, проходящей через середину экрана. Выделить различными цветами точки, лежащие левее и правее этой линии.
Задание 6.
1.Нарисовать и оживить изображение «часовой циферблат» (будильник).
2.Построить график функции: y(x) = A·x3+B·x2+C, где x = [–5,+5] с шагом = 1. Значения A, B, C вводить. Применять автоматическое масштабирование.
3.В текстовом файле хранятся координаты n точек на координатной плоскости. Прочитать данные из файла в массивы. Построить на экране множество точек, а также отрезки, соединяющие точки с центром экрана. Каждый отрезок линии выделить другим цветом.
Задание 7.
1.Нарисовать и оживить изображение «домик». Имитировать зажигание света
вокне, дым из трубы.
2. Построить графики функций: y1(x) = x + sin(x), y2(x) = x + cos(x), где
x= [–π,+π] с шагом π / 8. Применять автоматическое масштабирование.
3.В текстовом файле хранятся координаты n точек на координатной плоскости. Прочитать данные из файла в массивы. Построить на экране множество точек, а также отрезки, соединяющие каждую точку со всеми другими. Множество отрезков каждой точки выделить другим цветом.
Задание 8.
1.Нарисовать и оживить изображение поросенка.
2.Построить улитку Паскаля, которая параметрически задается следующим
образом:
x = a·cos2(t) + b·cos(t),
y = a·cos(t)·sin(t) + b sin(t), где a>0, b>0, t = [0, 2π).
Рассмотреть случаи, когда b > 2a, a < b < 2a, a > b .
3.В текстовом файле хранятся координаты n точек на координатной плоскости. Это координаты центров пересечения диагоналей квадратов со стороной указанной длины. Прочитать данные из файла в массивы. Построить на экране множество квадратов. Выделить цветом квадраты, пересекающиеся друг с другом.
Задание 9.
146
1.Нарисовать и оживить изображение «Чебурашка».
2.Изобразить кардиоду – кривую, заданную параметрически следующим образом:
x = a·cos(t)· (1 + cos(t)), y = a·sin(t)· (1 + cos(t)),
где a > 0, t = [0, 2π].
3.В текстовом файле хранятся координаты n точек на координатной плоскости, где n – четное число. Это координаты концов отрезков на плоскости. Задана окружность указанного радиуса с центром в середине экрана. Прочитать данные из файла в массивы. Изобразить взаимное расположение на плоскости отрезков и окружности. Выделить цветом отрезки, полностью лежащие внутри окружности.
Задание 10.
1.Нарисовать и оживить изображение «НЛО на фоне звездного неба».
2.Изобразить эпициклоиду – кривую, заданную параметрически следующим образом:
x = (a+b)·cos(t) – a·cos ((a+b)·t / a), y = (a+b)·sin(t) – a·sin ((a+b)·t / a), где a > 0, b > 0.
Рассмотреть два случая:
1) Если b/a – целое положительное число, t = [0, 2π].
2) Если b/a = p/g, где p и g – положительные целые взаимно простые числа, t=[0, 2 g π].
3.В текстовом файле хранятся координаты n точек на координатной плоскости. Прочитать данные из файла в массивы. Изобразить на экране взаимное расположение точек относительно диагонали, проходящей через середину экрана. Выделить различными цветами точки, лежащие выше и ниже этой линии.
Задание 11.
1.Нарисовать и оживить изображение летящей птицы.
2.Изобразить астроиду – кривую, заданную параметрически уравнениями:
x= b·cos3(t),
y= b·sin3(t),
где t=[0, 2π].
3. В текстовом файле хранятся координаты n точек на координатной
плоскости. Прочитать данные из файла в массивы. Построить на экране множество точек, а также отрезки, соединяющие точки с верхним левым и правым нижним углами экрана. Каждую пару отрезков выделить другим цветом.
Задание 12.
1.Нарисовать и оживить изображение «стакан с лимонадом».
2.Построить строфоиду – кривую, которая задана параметрически следующим образом:
147
x = a t2 −1 t 2 +1
y = a t |
t 2 |
−1 |
|
t 2 |
+1 |
||
|
где t = (–∞, +∞), a>0.
3. В текстовом файле хранятся радиусы n окружностей на координатной плоскости. Прочитать данные из файла в массив. Изобразить на экране взаимное расположение окружностей, если центр находится в середине экрана. Выделить цветом каждую окружность.
Задание 13.
1.Нарисовать и оживить изображение «парусник в море».
2.Построить спираль вокруг начала координат с n витками и внешним радиусом r, начальное направление спирали образует с осью 0x угол 1 градус, если параметрическое представление спирали:
x = r·cos(t), y = r·sin(t),
где r = t/2 ,1< = t < =2 π n.
3.В текстовом файле хранятся координаты n точек на координатной плоскости. Прочитать данные из файла в массивы. Построить на экране множество окружностей с центрами в указанных точках определенного радиуса. Выделить разными цветами окружности, центры которых лежат выше и ниже горизонтали, проходящей через середину экрана.
Задание 14.
1.Нарисовать и оживить изображение «вращение колеса».
2.Изобразить Циссоиду – кривую, заданную параметрически уравнениями:
x = a t2 1 +t2
y = a t3 1 +t2
где t = (–∞, +∞), a>0.
3. В текстовом файле хранятся координаты центров и радиусы n окружностей на координатной плоскости. Прочитать данные из файла в массивы. Изобразить на экране взаимное расположение окружностей. Выделить цветом окружности, радиус которых равен некоторому указанному числу.
Задание 15.
1.Нарисовать и оживить изображение мыши или хомячка.
2.Изобразить конхоиду Никомеда – кривую, заданную параметрически уравнениями:
x = a + L·cos(t),
y = a· tg(t) + L· sin(t),
где правая ветвь получена для t = (–π/2; +π/2),
148
левая ветвь получена для t = (π/2; 3π ), при a>0, L>0.
2
Рассмотреть случаи, когда L<a, L>a,L = a.
3. В текстовом файле хранятся координаты центров и радиусы n окружностей на координатной плоскости. Прочитать данные из файла в массивы. Изобразить на экране взаимное расположение окружностей. Показать линию, соединяющую центры окружностей. Выделить разным цветом каждый отрезок.
Задание 16.
1.Нарисовать и оживить изображение «ветреный день».
2.Изобразить овалы Кассини по их уравнению в полярных координатах:
p2 = c2 cos 2ϕ ±
c4 cos2 2ϕ +(a4 −c4 )
Рассмотреть случаи, когда a > c
2 >0;0 < c < a < c
2;0 < a < c .
3. В текстовом файле хранятся координаты n точек на координатной плоскости, где n – четное число. Это координаты концов отрезков на плоскости. Прочитать данные из файла в массивы. Изобразить взаимное расположение на плоскости отрезков. Выделить цветом те отрезки, которые пересекаются.
Задание 17.
1.Нарисовать и оживить изображение «пляшущие человечки».
2.Построить график функции: y(x) = cos (x–1)+|x|, где x = [–π, +π] с шагом π/8. Применять автоматическое масштабирование.
3.В текстовом файле хранятся координаты n точек на координатной плоскости, где n четное число. Это координаты концов отрезков на плоскости. Прочитать данные из файла в массивы. Изобразить взаимное расположение на плоскости отрезков. Выделить цветом отрезки, лежащие полностью правее вертикали, проходящей через середину экрана.
Задание 18.
1.Нарисовать и оживить изображение «растущее дерево».
2.Изобразить Спирограф, зубчатый диск радиуса b, расположенный внутри колеса радиуса а, который вращается и находится в зацеплении с внешним колесом. В диске имеется метка на расстоянии d от центра диска, имеющая перо, которое и вычерчивает узор. Уравнение вычерчиваемой кривой в параметрических координатах имеет вид:
x = (a – b)·cos(t) + d·cos(φ), y = (a – b)·sin(t) – d·sin(φ),
где ϕ = ab t ; и d<b<a.
Угол t меняется от 0 до 2πn, где n равно b, поделенному на наибольший общий делитель чисел b и a.
3. В текстовом файле хранятся координаты n точек на координатной плоскости. Прочитать данные из файла в массивы. Изобразить на экране множество окружностей с центрами в указанных точках и случайными значениями радиусов, выбранных из диапазона 1–200. Выделить различными цветами окружности, радиусы которых больше или меньше 100.
149
Задание 19.
1.Нарисовать и оживить изображение «дерево на ветру».
2.Изобразить усеченный конус, если заданы координаты центров оснований и радиусы оснований. Имитировать вращение вокруг центральной оси.
3.В текстовом файле хранятся координаты центров и радиусы n окружностей на координатной плоскости. Прочитать данные из файла в массивы. Изобразить на экране взаимное расположение окружностей. Выделить цветом окружности, центры которых лежат выше диагонали, проходящей через середину экрана. Выделить различными цветами окружности, лежащие выше и ниже этой линии.
Задание 20.
1.Нарисовать и оживить изображение – рекламу газированной воды.
2.Построить треугольную пирамиду по заданным координатам вершин. Две видимые грани закрасить. Имитировать вращение вокруг высоты.
3.В текстовом файле хранятся координаты n точек на координатной плоскости. Прочитать данные из файла в массивы. Изобразить на экране точки. Выделить цветом точки, принадлежащие вертикальной полосе, делящей экран на три части.
Задание 21.
1.Нарисовать и оживить изображение – рекламу жевательной резинки.
2.Построить параллелепипед по заданным координатам вершин. Две видимые грани закрасить. Имитировать вращение вокруг высоты.
3.Изобразить n усеченных конусов, если координаты центров оснований и радиусы оснований заданы в текстовом файле. Предварительно данные прочитать из файла в массивы.
Задание 22.
1.Нарисовать и оживить изображение «бегущие облака».
2.Изобразить усеченный конус, в основаниях которого эллипсы с радиусами r1
иr2, где r1<r2<=60 . Имитировать вращение вокруг центральной оси.
3.Построить n прямоугольников на плоскости по координатам вершин, заданным в текстовом файле. Предварительно данные прочитать из файла в массивы.
Задание 23.
1.Нарисовать и оживить изображение «крушение самолета».
2.Построить в координатной плоскости (x0y) куб, ребро которого n<=100, закрасить две грани куба. Имитировать вращение вокруг одного из ребер.
3.В текстовом файле хранятся координаты n точек на координатной плоскости. Прочитать данные из файла в массивы. Построить на экране множество точек, а также отрезки, соединяющие точки с центром экрана. Каждую пару отрезков выделить другим цветом.
Задание 24.
1.Нарисовать и оживить изображение «поздравление с новым годом».
2.Построить плоский прямоугольник по заданным координатам вершин. Имитировать вращение вокруг любой из сторон.
3.В текстовом файле хранятся радиусы n окружностей на координатной
150
