- •Министерство образования и науки рф
- •Рабочая программа
- •1. Информация и информатика.
- •2. Вычислительная техника.
- •3. Устройство персонального компьютера (пк).
- •4. Функции операционных систем (ос) пк.
- •5. Основы работы с операционной системой Windows xp.
- •6. Настройка операционной системы Windows xp.
- •7. Стандартные приложения Windows xp.
- •8. Компьютерные сети, Интернет, компьютерная безопасность.
- •9. Получение информации из Интернета.
- •10. Создание текстовых документов.
- •11. Введение в программирование на эвм
- •13. Лабораторные работы.
- •Задания для контрольной работы №1 задание 1. Программирование формул
- •Задание 2. Структуры выбора
- •Задание 3. Вывод на текстовый экран таблицы и графика функции
- •Задание 4. Итерационные циклы
- •Задание 5. Обработка одномерного массива
- •Задание 6. Обработка двумерного массива
- •Задание 7. Обработка символьных данных
- •Задания для контрольной работы №2 задание 8. Функции
- •Задание 10. Перечисления структуры и объединения
- •Задание 11. Работа с экраном в текстовом режиме
- •Задание 13. Файлы
Задания для контрольной работы №2 задание 8. Функции
Для выполнения задания количество и содержание функций пользователя следует выбрать так чтобы основная функция содержала только (или в основном) вызовы этих функций Блок-схемы алгоритмов следует представить как для основной функции так и для вызываемых функций
Количество обрабатываемых матриц или одномерных массивов подсчитывать, а не задавать.
1 Столбцы матриц поставить в порядке возрастания элементов первой строки.
2 В матрицах добавить по столбцу с количествами положительных элементов по строкам.
3 В строках матриц нулевые элементы примкнуть к первым нулевым.
4 Сформировать одномерные массивы из минимальных элементов столбцов матриц.
5 В строках матриц отрицательные элементы расставить по убыванию.
6 Найти произведения пар матриц.
7 Вычислить следы матриц и сформировать из них массив.
8 Строки матриц поставить в порядке убывания элементов первого столбца.
9 Найти среднее арифметическое максимальных элементов массивов.
10 В строках матриц перед максимальными элементами добавить заданное число.
11 В столбцах матриц отрицательные элементы поставить по убыванию.
12 В строках матриц удалить минимальные элементы.
13 В массивах удалить нулевые элементы.
14 Положительные элементы массивов расставить по убыванию, остальные - оставить на своих местах.
15 Элементы массивов расставить по возрастанию, а затем удалить нулевые элементы и вставить заданное число, не нарушая порядка расположения.
16 В матрицах строки с максимальным и минимальным элементами переставить местами.
17 В указанных строках матриц положительные элементы располагать по возрастанию.
18 Сформировать массив из минимальных элементов введенных массивов, указывая для каждого элемента формируемого массива его положение в исходном массиве.
19 В матрицах добавлять по строке с максимальными элементами по столбцам.
20 В столбцах матриц минимальные элементы поставить в первую строку.
21 Во введенных массивах найти последовательность максимальной длины из элементов, расположенных в порядке возрастания.
22 Сформировать массивы из строк матриц с минимальными количествами положительных элементов.
23 Указать матрицу, максимальный элемент в которой минимален.
24 В столбцах матриц отрицательные элементы примкнуть к первому отрицательному.
25 В матрицах минимальные элементы заменять на указанное число.
26 Вводимые массивы сортировать по убыванию, а затем из них удалять через один отрицательные элементы.
27 Во вводимых массивах элементы расставлять по убыванию, если сумма элементов <0, по возрастанию, если сумма элементов >0, и удалять нулевые, если она равна нулю.
28 Элементы в массивах расставлять следующим образом: нулевые - в конец массива, положительные и отрицательные - чередовать.
29 Строки матриц расположить в порядке возрастания сумм элементов.
30 Столбцы матриц расположить в порядке убывания количеств отрицательных элементов.
Пример
//В указанной строке матрицы расположить элементы по возрастанию
#include<iostream.h>
#include<iomanip.h>
#include<conio.h>
#include<stdlib.h>
void inmatr(int[][20],int&,int&);
void outmatr(int[][20],int,int);
void sort(int[][20],int,int);
void main()
{
int x[10][20],n,m,k,kol=0; //kol – количество обработанных матриц
char ch;
clrscr();
do{
inmatr(x,n,m);
cout<<setw(30)<<"Введена матрица:"<<endl;
outmatr(x,n,m);
cout<<" Укажите номер сортируемой строки(<"<<n<<"):";
cin>>k;
sort(x,k,m);
cout<<endl<<setw(30)<<"Получена матрица:"<<endl;
outmatr(x,n,m);
kol++;
cout<<endl<<"Продолжить работу (y/n)? ";
cin>>ch;}
while(ch=='y'||ch=='Y');
cout<<"Обработано матриц: "<<kol<<endl;
cout<<" Конец программы.";
getch();
}
void inmatr(int a[][20],int&p,int&q)
{
cout<<"Введите размеры матрицы:"<<endl
<<"число строк(<=10):";
cin>>p;
cout<<"число столбцов(<=20):";
cin>>q;
for(int i=0;i<p;i++)
for(int j=0;j<q;j++)a[i][j]=(rand()-16383)%100;
}
void outmatr(int a[][20],int p,int q)
{
for(int i=0;i<p;i++){
for(int j=0;j<q;j++)cout<<setw(4)<<a[i][j];
cout<<endl;}
}
void sort(int a[][20],int t,int q)
{
int z;
for(int i=1;i<q-1;i++)
for(int j=q-1;j>=i;j--)
if(a[t][j-1]>a[t][j]){
z=a[t][j-1];
a[t][j-1]=a[t][j];
a[t][j]=z;}
}
ЗАДАНИЕ 9. ОБРАБОТКА ДИНАМИЧЕСКИХ МАССИВОВ
Для размещения массивов следует использовать динамическую память
В матрице удалить столбцыв которых количество отрицательных элементов превышает заданноеа затем в качестве первого добавить столбецэлементы которого равны суммам элементов в соответствующих строках
В матрице удалить строки содержащие нули а затем добавить строку элементы которой равны произведениям элементов в соответствующих столбцах
В матрице удалить столбцы с нулевыми элементами ниже главной диагонали а затем добавить столбец элементы которого равны разностям соответствующих элементов первого и второго столбцов
В матрице удалить столбцы с отрицательными элементами на главной диагонали а затем в качестве второго добавить столбец элементы которого равны суммам положительных элементов соответствующих строк
В матрице удалить строки с нулевыми элементами на главной диагонали а затем в качестве первой добавить строку элементы которой равны произведениям элементов в соответствующих столбцах
В матрице удалить строки с нулевыми элементами выше главной диагонали а затем в качестве третьей добавить строку элементы которой равны разностям соответствующих элементов первой и второй строк
В матрице удалить строку с максимальным по модулю элементом матрицы а затем в качестве первой добавить строку элементы которой равны суммам модулей элементов в соответствующих столбцах
В матрице удалить строки первые отрицательные элементы которых лежат ниже главной диагонали а затем в качестве первой и второй строк добавить строки элементы в которых равны суммам и произведениям элементов в соответствующих столбцах
В матрице удалить строки последние отрицательные элементы которых лежат выше главной диагонали а затем в качестве второй добавить строку элементы которой равны разностям соответствующих элементов первой и второй строк
В матрице удалить столбец с максимальным элементом матрицы а затем вставить заданный столбец перед столбцом с минимальным элементом полученной матрицы
В матрице удалить строку с максимальным элементом матрицы а затем добавить строки элементы которых равны суммам и произведениям элементов в соответствующих столбцах
В матрице удалить строки с нулевыми элементами а затем добавить строку с элементами из заданного массива
В матрице удалить строку с максимальной суммой элементов а затем в качестве третьей добавить строку элементы которой равны разностям соответствующих элементов первой и последней строк
В матрице удалить строку с минимальным элементом матрицы а затем добавить строку элементы которой равны модулям произведений элементов соответствующих столбцов
В матрице удалить столбцы с отрицательными суммами элементов а затем добавить столько же столбцов из элементов заданного массива
В матрице удалить строки с положительными суммами элементов а затем добавить столько же строк из отрицательных элементов заданного массива
В матрице удалить столбцы с отрицательными произведениями элементов а затем в качестве первого добавить столбец элементы которого равны произведениям элементов в соответствующих строках
В матрице удалить столбцы с отрицательными элементами а затем добавить столько же столбцов из положительных элементов заданного массива
В матрице удалить строки с элементами на главной диагонали превышающими заданную величину а затем в качестве первой вставить строку из максимальных элементов соответствующих столбцов
В матрице удалить столбцы с положительными суммами элементов а затем в качестве первого вставить столбец из минимальных элементов соответствующих строк
В матрице удалить строку с минимальным произведением элементов а затем в качестве третьей добавить строку элементы которой равны разностям элементов последней и первой строк
В матрице удалить столбец с минимальным элементом матрицы а затем добавить столбец составленный из максимальных по модулю элементов в соответствующих строках
В матрице удалить столбцы с отрицательными первыми элементами а затем добавить столбец составленный из максимальных элементов соответствующих строк
В матрице удалить строки последние элементы которых отрицательны а затем в качестве первой добавить строку из элементов заданного массива
В матрице удалить столбцы с отрицательной суммой элементов а затем добавить столбец из минимальных элементов соответствующих строк
В матрице удалить столбцы с нулевыми элементами выше главной диагонали а затем в качестве первого добавить столбец элементы которого равны суммам элементов соответствующих строк
В матрице удалить столбцы с максимальным и минимальным элементами матрицы а затем на место первого добавить столбец из произведений элементов соответствующих строк
В матрице удалить строки с положительными последними элементами а затем добавить строку из минимальных элементов по соответствующим столбцам
В матрице удалить первую и последнюю строки а затем добавить строку из максимальных элементов соответствующих столбцов
В матрице удалить столбцы с равными количествами положительных и отрицательных элементов а затем добавить столько же столбцов из элементов заданного массива
Пример
//В матрице удалить строки с последними отрицательными элементами,
//а затем добавить строку из сумм элементов по соответствующим столбцам
#include<iostream.h>
#include<iomanip.h>
#include<stdlib.h>
#include<conio.h>
#include<assert.h>
#define NDEBUG//отмена действия операторов контроля “assert(условие)”
void main()
{
clrscr();
int i,j,n,m,k,q,**ptr;
cout<<"Введите размеры исходной матрицы"<<endl
<<"число строк:";
cin>>n;
cout<<"число столбцов:";
cin>>m;
ptr=new int*[n];
assert(ptr!=0);//контроль выделения динамической памяти
for(i=0;i<n;i++){
ptr[i]=new(int[m]);
assert(ptr[i]!=0);
for(j=0;j<m;j++)
ptr[i][j]=(rand()-16383)%10;}
cout<<setw(30)<<"Введена матрица:"<<endl;
for(i=0;i<n;i++){
for(j=0;j<m;j++)cout<<setw(4)<<ptr[i][j];
cout<<endl;}
q=0; //q-номер анализируемой строки
k=0; //k-количество удаленных строк
do{
if(ptr[q][m-1]<0){
for(i=q;i<n-k-1;i++)
for(j=0;j<m;j++)ptr[i][j]=ptr[i+1][j];
delete[]ptr[n-k-1];
k++;continue;}
q++;}
while(q+k<n);
ptr[n-k]=new(int[m]);
assert(ptr[n-k]!=0);
for(j=0;j<m;j++){
ptr[n-k][j]=0;
for(i=0;i<n-k;i++)
ptr[n-k][j]+=ptr[i][j];}
cout<<setw(30)<<"Получена матрица:"<<endl;
for(i=0;i<=n-k;i++){
for(j=0;j<m;j++)cout<<setw(4)<<ptr[i][j];
cout<<endl;}
for(i=0;i<n-k;i++)
delete[]ptr[i];//освобождение динамической памяти
delete[]ptr;
cout<<endl<<"Конец программы.";
getch();
}