Контрольная - пример №1

advertisement
Поволжский государственный университет телекоммуникаций и
информатики
Заочный факультет
РЕГИСТРАЦИОННЫЙ № ______
Контрольная работа № ___1____
Вариант ____125___
по __________СИАОД___________
Работа выслана «_____»_________________ 200__г.
Оценка _______________ Дата _______________200___г.
Подпись преподавателя ___________________
Контрольная работа вместе с рецензией предъявляется
экзаменатору при сдаче экзамена
Контрольная работа №1
Задание 1.
1. Создать одномерный массив чисел размером ABC, где ABC – 3 последние цифры
номера студенческого билета. Тип данных определяется по таблице 1.
2. Заполнить первые N элементов произвольными числами (N – последняя цифра C
номера студенческого билета; если N < 5, то N = C + 5).
3. Найти среднее значение заполненной части массива.
4. Вывести на экран среднее значение и дополнительные данные (сумму элементов и их
количество).
5. Заполнить следующие M элементов произвольными числами, где M = 1…N.
6. Пересчитать среднее значение заполенной части массива, зная исходное среднее
значение (вычисленное на предыдущем этапе), размеры заполненных на предыдущем и
текущем этапе частей массива и вновь введённые данные.
7. Вывести на экран среднее значение и дополнительные данные (сумму элементов и их
количество).
8. Повторять пункты 5 – 7 до исчерпания массива или до прекращения ввода данных.
9. Оформить пункты 1 – 8 в виде единой программы.
Задание 2.
1. Использовать динамический массив. Предусмотреть создание этого массива в начале
работы программы и удаление в конце работы. Заполнить массив данными.
2. В пунктах 3 и 6 задания 1 заменить расчёт среднего значения поиском минимума или
максимума (по варианту – таблица 2).
Таблица 1. Тип данных выбирается по сумме цифр B и С (если B + C > 13, то B + C – 13)
1
Целые числа (int)
8
Символы (char)
2
Знаковые символы (signed char)
9 Беззнаковые символы (unsigned char)
3
Длинные целые числа (long)
10 Знаковые целые числа (signed int)
4
Действительные числа (float)
11 Беззнаковые целые числа (unsigned int)
5
Действительные числа (long double) 12 Длинные беззнаковые целые числа
6
Короткие целые числа (short)
7
Действительные числа (double)
13 Действительные числа (long float)
Таблица 2. Поиск минимума или максимума определяется цифрой С
C – чётная
Поиск минимума
C – нечётная Поиск максимума
Задание №1.
#include <iostream>
int main()
{
const int ABC=125; // Именованная константа
double Mas1[ABC] = {7,1,6,4,5}; //Описание массива, и заполнение части массива данными
double Sum=0; // Сумма обрабатываемых элементов массива
float Sred; // Среднее значение
int N=5; // Размер обрабатываемой части массива
for (int i=0; i<N;++i)
Sum = Sum + Mas1[i]; // Нахождение суммы элементов
Sred = Sum/N; // Нахождение среднего значения заполненной части массива
cout << Sum<<" " <<N<<" "<<Sred<<endl; // Вывод на экран найденных значений
int M; // Количество вновь вводимых данных
do { // Начало цикла
cout <<"Введите число элементов:"; // Приглашение для ввода
cin>>M; // Ввод числа элементов
if (M==0) break; // Выход из цикла, если M = 0
cout<<"Введите данные:";
for (int i=N; i<N+M&&i<ABC;++i) // Цикл ввода новых данных
cin >> Mas1[i]; // Ввод новых данных
Sum = Sred * N;
for (int i = N; i < N + M && i < ABC; ++i)
Sum=Sum+Mas1[1];
N=N+M; // Изменение размера заполенной части массива
Sred=Sum/N; ; // Нахождение нового среднего значения
cout<<Sum<<" "<<N<<" "<<Sred<<endl;
}
while (M>0&&N<ABC);
return 0;
}
Задание №2.
#include <iostream>
int main()
{
int ABC=457;
double *Mas2=new double [ABC];
int N=5;
cout<<"Введите "<<N<<" чисел:";
for (int i=0; i<N; ++i)
cin>>Mas2[i];
double Max=0; // Начальное значение максимума
for (int i=0; i<N; ++i)
if (Mas2[i]>Max)
Max=Mas2[i];
cout<<Max<<endl;
int M; // Количество вновь вводимых данных
do { { // Начало цикла
cout<<"Введите число элементов:";
cin>>M;
if (M = = 0) break; // Выход из цикла, если M = 0
cout << ”Введите данные: ”;
for (int i = N; i < N + M && i < ABC; ++i) // Цикл ввода новых данных
cin >> Mas2[i]; // Ввод новых данных
for (int i = N; i < N + M && i < ABC; ++i)
if (Mas2[i] > Max)
Max = Mas2[i];
N = N + M;
cout << Max << endl;
}
while (M > 0 && N < ABC);
delete [ ] Mas2;
return 0;
}
Download