Поволжский государственный университет телекоммуникаций и информатики Заочный факультет РЕГИСТРАЦИОННЫЙ № ______ Контрольная работа № ___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; }