
Programmirovanie_i_osnovyi_algo
.pdfstruct |
CMP |
// |
CoMPlex: |
комплексный |
тип |
|
{ |
r; |
// |
Вещественная |
часть |
|
|
double |
|
|||||
double |
±; |
// |
Мнимая |
часть |
|
|
} ;
Написать определение функции, перегружающей операцию вычитания комплексных данных, и пример вызова этой функции. Имейте ввиду, что вещественная часть разности равна разности ве щественных частей операндов. Аналогично - для мнимых частей.
Вариант 7. Шаблоны функций. В одномерном массиве, со стоящем из п вещественных элементов, вычислить сумму элементов массива с нечетными номерами. Исходные данные и полученные
результаты обязательно передавать через список параметров.
Написать прототип, определение шаблона функций и пример ее вы зова для типов intafloat и double.
Вариант |
8. Перегрузка |
операций для пользовательских ти |
пов. Определен следующий пользовательский тип: |
||
struct V |
|
|
{ |
|
|
int |
arr[ 4 ]; // |
Вектор |
} ;
Написать определение функции, перегружающей операцию вычитания векторов, и пример вызова этой функции. Имейте ввиду, что разность векторов равна поэлементной разности векторов.
Вариант |
9. Перегрузка |
операций для пользовательских ти |
пов. Определен следующий пользовательский тип: |
||
struct V |
|
|
{ |
|
|
double |
arr[ 4 ]; // |
Вектор |
} ;
Написать определение функции, перегружающей операцию суммирования векторов, и пример вызова этой функции. Имейте ввиду, что сумма векторов равна поэлементной сумме векторов.
Вариант |
10. Функции |
с умалчиваемыми значениями пара |
|
метров. |
Имеется следующий фрагмент программного кода: |
||
void Rect |
( float |
w, tloat |
1=1,5 ) ; |
390
Является ли запись прототипа функции правильной (обоснуйте Ваш ответ)? Являются ли правильными приведенные ниже вызовы функции? В случае положительного ответа укажите, с какими зна чениями параметров функция будет выполняться?
Rect |
( |
) ; |
; |
Rect |
( |
2.0 ) |
|
Rect |
( |
2.00, |
3.00 ) ; |
Вариант 11. Шаблоны функций. В одномерном массиве, со стоящем из п элементов, вычислить наибольшее значение элемента массива. Исходные данные и полученные результаты обязатель но передавать через список параметров. Написать прототип, оп ределение шаблона функций и пример ее вызова для типов long, float и double.
Вариант 12. Директивы препроцессора. |
Опишите: |
||
• |
действия препроцессора по директиве |
include; |
|
• |
различие форматов ^include <file.h> и include |
''file.h'\ |
Вариант 13. Функции с умалчиваемыми значениями пара метров. Где следует указывать умалчиваемые значения параметров функции (в прототипе, в заголовке определения функции, в обоих перечисленных местах)?
Вариант 14. |
Функции |
с умалчиваемыми значениями пара |
метров. Имеется следующий фрагмент программного кода: |
||
void Point ( double |
х, double |
у=-1.5 ) ; |
Является ли запись прототипа функции правильной (обоснуйте Ваш ответ)? Являются ли правильными приведенные ниже вызовы функции? В случае положительного ответа укажите, с какими зна чениями параметров функция будет выполняться?
Point |
( |
, ) |
; |
) ; |
Point |
( |
2.0, |
-1.5 |
|
Point |
( |
2.00, |
3.00, |
4.7 ) ; |
Point |
( |
4.7 |
) ; |
|
Вариант 15. Шаблоны функций. В одномерном массиве, со стоящем из п элементов, вычислить среднее арифметическое значе ние для отрицательных элементов массива. Постарайтесь не поте рять дробную часть результата. Исходные данные и полученные
результаты обязательно передавать через список параметров.
Написать прототип, определение шаблона функций и пример ее вы-
391
зова для типов int и double.
Вариант 16. Шаблоны функций. В одномерном массиве, со стоящем из п элементов, вычислить максимальный по модулю отри цательный элемент массива. Исходные данные и полученные ре зультаты обязательно передавать через список параметров. На писать прототип, определение шаблона функций и пример ее вызова для типов int и double.
Вариант 17. Шаблоны функций. В матрице, состоящей из п строк и т столбцов, определить количество строк, не содержащих ни одного нулевого элемента. Исходные данные и полученные ре зультаты обязательно передавать через список параметров. На писать прототип, определение шаблона функций и пример ее вызова для типов int и double.
Вариант 18. Шаблоны функций. В матрице, состоящей из п строк и т столбцов, определить максимальное из отрицательных значений элементов матрицы. Исходные данные и полученные ре зультаты обязательно передавать через список параметров. На писать прототип, определение шаблона функций и пример ее вызова для типов int и double.
Вариант |
19. Директивы препроцессора. Что напечатает дан |
||||
ная программа? |
|
|
|
||
^include |
|
<stdio.h> |
|
|
|
^define |
AREA (г) |
3.14*г*г |
|
||
±пЬ main |
( |
void |
) |
|
|
{ |
|
|
|
|
|
printf( |
|
"%f\n'\ |
AREA( 2.0-1.0 |
) ) ; |
|
jretujm |
0; |
|
|
|
}
Вариант 20. Шаблоны функций. В одномерном массиве, со стоящем из п элементов, вычислить среднее арифметическое значе ние элементов массива (не потеряйте дробную часть) и индекс наи большего элемента. Исходные данные и полученные результаты обязательно передавать через список параметров. Написать про тотип, определение шаблона функций и пример ее вызова для типа int.
П.1.2. Программные проекты
На практических занятиях студенты выполняют три про-
392
граммных проекта:
•решение простой задачи с использованием ПМ-ассемблера (выпол няется по усмотрению преподавателя и требует наличия компактдиска, прилагаемого к данному учебному пособию);
•структурное программирование средствами языков Си/С++;
•средства модульного программирования в языке C++.
П. 1.2.1. Программирование |
на ПМ-ассемблере. |
Варианты |
программных |
проектов |
|
Среда программирования. Интегрированная среда програм мирования ПМ-ассемблера описана в [1] и имеется на компактдиске.
Формулировка решаемой задачи. Задача, предложенная для решения, должна предусматривать работу с массивами с использо ванием косвенной адресации. Варианты программных проектов приведены ниже. Для ввода и вывода использовать файлы MS
DOS. Для обеспечения наглядности вывода использовать стро ковые данные.
Содермсание отчета
1. ТЕХНИЧЕСКОЕ ЗАДАНИЕ - формулировка решаемой зада чи, требования к программному проекту, язык программирования.
2.ТЕКСТ ПРОГРАММЫ - назначение программы, листинг с исходным текстом программы в самодокументируемой форме. Многочисленные примеры оформления исходных текстов ПМпрограмм имеются в [1] и на компакт-диске.
3.ОПИСАНИЕ ПРОГРАММЫ - назначение программы; метод решения задачи и основные расчетные соотношения; схема про граммы с необходимыми пояснениями, выполненная в соответствии
сдействующими стандартами.
3.ПРОГРАММА И МЕТОДИКА ИСПЫТАНИЙ - разработка контрольного примера (примеров) с их обоснованием и анализом, результаты вычислений по отлаженной программе, выводы.
Варианты 1-5, В качестве первых пяти вариантов можно ис пользовать приведенные выше варианты 1-5 из подразд. П. 1.1.1.
Вариант 6. Ввести и напечатать значения элементов массива целого типа с заданной размерностью. Вычислить и напечатать сумму элементов массива, расположенных до минимального эле мента.
393
Вариант 7. Ввести и напечатать значения элементов массива вещественного типа с заданной размерностью. Вычислить и напеча тать произведение положительных элементов массива. Если массив не содержит элементов с положительными значениями, то в качест ве ответа напечатать "В массиве нет положительных элементов".
Вариант 8. Ввести и напечатать значения элементов массива вещественного типа с заданной размерностью. Вычислить и напеча тать сумму положительных элементов массива, расположенных до максимального элемента. Если массив не содержит элементов с по ложительными значениями, то в качестве ответа напечатать "В мас сиве нет положительных элементов".
Вариант 9. Ввести и напечатать значения элементов массива вещественного типа с заданной размерностью. Вычислить и напеча тать количество отрицательных элементов массива.
Вариант 10, Ввести и напечатать значения элементов массива вещественного типа с заданной размерностью. Преобразовать мас сив таким образом, чтобы вначале располагались все элементы, от личающиеся от максимального не более, чем на 20%. Модифициро ванный массив напечатать.
Вариант 1L Ввести и напечатать значения элементов массива целого типа с заданной размерностью. Вычислить и напечатать сумму элементов массива, расположенных после последнего нулево го элемента. Если массив не содержит нулевых элементов, то в ка честве ответа напечатать "В массиве нет нулевых элементов".
Вариант 12. Ввести и напечатать значения элементов массива вещественного типа с заданной размерностью. В массиве все отри цательные элементы заменить их квадратами и определить их коли чество. Модифицированный массив и количество измененных эле ментов напечатать.
Вариант 13. Ввести и напечатать значения элементов массива вещественного типа с заданной размерностью. Вычислить и напеча тать сумму модулей элементов массива, расположенных после мак симального элемента.
Вариант 14. Ввести и напечатать значения элементов массива вещественного типа с заданной размерностью. Преобразовать мас сив таким образом, чтобы вначале располагались все отрицательные элементы. Модифицированный массив напечатать.
394
Вариант 15, Ввести и напечатать значения элементов массива вещественного типа с заданной размерностью. Упорядочить массив по возрастанию значений элементов. Отсортированный массив на печатать.
Вариант 16, Ввести и напечатать значения элементов массива вещественного типа с заданной размерностью. Ввести значения гра ниц диапазона. Вычислить и напечатать количество элементов массива, лежащих в заданном диапазоне, и информацию о заданном диапазоне.
Вариант. 17, Ввести и напечатать значения элементов массива вещественного типа с заданной размерностью. Ввести значения гра ниц диапазона. Сжать массив, удалив из него элементы, значения которых находятся в заданном диапазоне. Освободившиеся элемен ты заполнить нулями. Модифицированный массив и заданный диа пазон значений напечатать.
Вариант 18, Ввести и напечатать значения элементов массива вещественного типа с заданной размерностью. Преобразовать мас сив таким образом, чтобы в первой его половине располагались эле менты, стоявшие в четных позициях, а во второй половине — эле менты, стоявшие в нечетных позициях. Модифицированный массив напечатать.
Вариант 19, Ввести и напечатать значения элементов массива целого типа с заданной размерностью. Преобразовать массив таким образом, чтобы нулевые элементы располагались в конце массива. Модифицированный массив напечатать.
Вариант 20, Ввести и напечатать значения элементов массива целого типа с заданной размерностью. Преобразовать массив таким образом, чтобы нулевые элементы располагались в начале массива. Модифицированный массив напечатать.
П.1.2.2. Структурное программирование средствами языков Си/С++. Варианты программных проектов
Среда программирования. Любая интегрированная среда про граммирования языка С+-ь. На начальном этапе обучения можно ре комендовать использование простой интегрированной среды про граммирования Borland С+-ь 3.1 с переходом в будущем на более со-
395
временную и широко распространенную среду программирования Microsoft Visual Studio C++ 6.0.
Формулировка решаемой задачи, С использованием средств структурного программирования языков Си/С++ спроектировать три элементарных программы для решения.
1. Задачи с линейным следованием операторов. Например, вы числить значение функции
у = arctg( 1 1 4 • 1п(«))
спроверкой области допустимых значений ее аргументов.
2.Задачи с ветвлением (использовать структурированные операторы if, switch). Например, вычислить значение функции
[ |
а+Ь |
при |
х<1, |
у := [ |
а*Ь |
при |
1<=х<=2, |
[ |
а-Ь |
в остальных случаях |
3. Задачи с циклом (использовать структурированные операто ры while, do-while, for). Например, вычислить сумму ряда
Набор вариантов программных проектов приводится ниже.
Содерлсание отчета.
1.ТЕХНИЧЕСКОЕ ЗАДАНИЕ - формулировка решаемой задачи, требования к программам, язык программирования.
2.ТЕКСТ ПРОГРАММЫ - для каждой программы в заголовкекомментарии указать ее назначение, привести листинг с исход ным текстом в самодокументируемом виде. Создание программ ного проекта рассмотрено в приложении П.2. Рекомендации по структуре программы и пример оформления исходного текста программы приведены в приложении П.З.
3.ПРОГРАММА И МЕТОДИКА ИСПЫТАНИЙ - разработка кон трольных примеров с их обоснованием и анализом, результаты вычислений по отлаженной программе, выводы. Рекомендации по методике отладки разработанной программы приведены в приложении П.4.
Вариант 1. Вычислить значения функций и сумму ряда
у = arctg('';5Lii^-.ln(a)) +10"^. 2,5 19(111(^7))
396
fa+b |
при |
х<\. |
у = } ab |
при |
1<=:X<=2, |
Уа-b |
при |
х>2 |
Вариант 2. Вычислить значения функций и значение факториала
V5^tg^(arcsin(x))^^:
ШЫ
{" при jc>3. при 1<х<=3,
у = Y
U при д:<=1
п\
Вариант 3. Вычислить значения функций и сумму ряда
|
х^ |
|
|
к |
|
|
е |
. , |
,ч2,33 |
sin'^Cx+TT/Z) |
|
|
Vtg(in(A:)) |
|
|
j2 . ig(x) |
|
|
11 6 , 7 J C + 9 , 2 X ^ |
-1,02OC^ |
«рм |
jc<=0, |
|
•^ |
» |
— |
^ |
при |
x>0 |
|
ax |
+b-x |
•sin(A:) |
|
|
Вариант 4. Вычислить значения функций и сумму ряда
|
s2(el^4.3 |
|
|
у = дЯ^В^-*^»^ У ) .(2.3-^^1) |
|||
|
In* (л:) |
|
|
a-\-bz-\-C'Z |
при |
х=\. |
|
J^ = < d-\-n-z-¥f-z |
при |
jc-2. |
|
g-bh-z+mz |
в |
остальных |
случаях |
х-\-\ |
х+Ъ |
х+п |
|
у = |
+ |
+ ... + |
|
1 |
3 |
« |
|
Вариант 5. Вычислить значения функций и сумму ряда
_ s'm(x^+x~^+x^^^) \0~^'k
397
f |
а-х+4 |
при |
x>4, |
у = Ja(l-e-^)
I 0
при 0<=х<=4,
в остальных случаях
У = Е{(-1Г/(2-а+1)}
|
|
|
|
|
а=0 |
|
|
|
|
|
|
|
Вариант |
6, Вычислить значения функций и сумму ряда |
|||||||||||
|
|
|
|
sin'^(^2,8-e^+x) |
2 |
|
^^ |
^ л |
||||
|
|
|
У |
V- |
|
|||||||
|
|
|
= |
х ^ - а " |
|
|
•9,110^ |
|||||
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
Са+Ь |
при |
|
|
|
а>Ь, |
|
|
||
|
Д' |
= |
" |
при |
|
а<-Ь |
и |
|
а>0, |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[о |
в |
|
остальных |
|
случаях |
||||
|
|
|
|
|
|
|
||||||
|
|
|
|
|
1 |
V^2,3 |
|
|
|
|
||
|
|
|
|
|
|
|
а=1 |
а! |
|
|
|
|
Вариант |
7. Вычислить значения функций и сумму ряда |
|||||||||||
|
|
|
|
75,73-я •^^г^ |
|
|
|
|||||
|
|
|
>^ |
|
|
|
|
|
И)-11.7 |
|||
|
|
|
г |
к1 |
при |
|
\х\>\ |
и |
|
а>0. |
||
|
>^ = < |
\+х |
при |
|
|x|<=l |
и |
|
а>0. |
||||
|
|
|
1 sin(x) |
в |
|
остальных |
|
случаях |
||||
|
|
|
|
у = |
Z(2.a-l)-0,5а-\ |
|
|
|
||||
|
|
|
|
|
а=1 |
|
|
|
|
|
|
|
Вариант |
8. Вычислить значения функций и сумму ряда |
|||||||||||
|
|
|
_ |
(е^^^+Ь/а)'Л: |
(л-/) |
У24-23,6 |
||||||
|
|
|
|
|
к1 |
|
|
|
5/ |
п |
||
|
|
|
|
|
|
|
|
|
||||
|
с |
|
9 |
|
|
|
при |
|
|
|
х>0. |
|
|
|
z^+\g(a+b'C)/x |
|
|
|
|
||||||
У |
= < |
|
^/z'X'Sm(a'X) |
|
при |
x<=0 |
|
W |
(x*z)>0. |
|||
|
|
|
|
1 |
|
|
в |
остальных |
случаях |
|||
|
у = 2+ I |
|
{Ы)'''^^<-;г^+~^)} |
|||||||||
|
|
|
|
а=0 |
|
|
|
Ъа-\-\ 2'а+2 |
||||
Вариант |
9. Вычислить значения функций и сумму ряда |
|||||||||||
|
|
|
|
У = |
a+b |
|
|
|
|
|
|
|
398 |
|
|
|
|
7г/4-\-х'-1/J |
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
(a+b+c |
при |
\b\<=\a\ |
и |
\c\<=\b\. |
|
|
у |
= J |
a+b |
при |
\b\<=\a\ |
и |
к1>1*|. |
|
|
[ |
- |
в |
остальных |
случаях |
|
|
|
|
|
|
|
|
||
Вариант 10. |
Вычислить значения |
функций |
и произведение |
||||
сомножителей |
|
|
|
|
|
|
|
|
у = e«(^^>(^psin(x)-x(^"'-x'/'"))10-3 |
||||||
|
Г(ж/2)-е<-^^'=*д<^)) при |
|
х>0. |
|
|||
У = } |
Я-/2 |
|
при |
|
х=0. |
|
|
|
[ |
(^/2)е(*-*> |
в |
остальных |
случаях |
||
|
|
у = |
\\+ |
П(2-а+1) |
|
|
|
Вариант 11. Вычислить значения функций и сумму ряда
^ч |
sin(x)'10 -4 |
|
|
|
|^c|-arcsin(x) •(7r/2 + e^^^' |
(а^-х^))) |
|||
|
х+2 |
при |
jc<3, |
|
у = < |
. 2 - 5 |
при |
3<=jc<6, |
|
|
зГ |
в |
остальных |
случаях |
|
х+ух |
|
|
|
у = Z(-l)"+'-l/a
Вариант 12. Вычислить значения функций и сумму ряда
.5
|
т-л/аЬ |
|
|
|
|
(l/Q+a)^ |
при |
х>=1, |
|
У = \ |
а^-,х |
при |
х<0. |
|
|
ОМх-а |
в |
остальных |
случаях |
У = Z(-l)''-l/(2-f3-a) а=0
399