Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Программирование на языке высокого уровня. Методические указания и варианты заданий для студентов 1-го курса направления подготовки 09.03.01 Информати
.pdf
{
printf("\nL=%d",Len);
printf("\nСимметричная группа\n");
for(i=0;i<Len;i++)
printf("%d ",y[i]);
}
else
printf("\nНЕТ симметричной группы\n");
getch();
}
Пример 3: Умножение матрицы на матрицу.
#include <stdio.h>
#include <conio.h>
#include <alloc.h> /* <malloc.h> для C++ */
umnmatr(int n,int m,int l, float **a, float **b,
float **c)
{
int i,j,k;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{
c[i][j]=0;
for(k=0;k<l;k++)
c[i][j]+=a[i][k]*b[k][j];
}
}
main()
{
int i,j,n;
float **a,**b,**c;
FILE *in;
if((in=fopen("myarray.dat ","r"))==NULL){
printf("\nФайл myarray.dat не открыт !");
getch(); exit(1); }
21

clrscr();
Массив А
1 2 3 4 3 3 2 1 3 1
Массив В
3 2 4 1 4 4 2 3 4 3
printf("Введите n:"); scanf("%d",&n);
a=(float**)malloc(n*sizeof(float*));
b=(float**)malloc(n*sizeof(float*));
c=(float**)malloc(n*sizeof(float*));
for(i=0;i<n;i++)
{
a[i]=(float*)malloc(n*sizeof(float));
b[i]=(float*)malloc(n*sizeof(float));
c[i]=(float*)malloc(n*sizeof(float));
}
for(i=0;i<n;i++)
for(j=0;j<n;j++) fscanf(in,"%f",&a[i][j]);
for(i=0;i<n;i++)
for(j=0;j<n;j++) fscanf(in,"%f",&b[i][j]);
umnmatr(n,n,n,a,b,c);
printf("\nМатрица C:\n");
for(i=0;i<n;i++)
{
for(j=0;j<m;j++) printf("%5d",c[i][j]);
printf("\n");
}
getch();
}
Пример 4: Подсчитать, сколько раз встречается в данном массиве каж-
дое значение.
#include <stdio.h>
#include <conio.h>
int Counter(int n,int *x,int r)
{
int i,k=0;
for(i=0;i<n;i++)
if(x[i]==r)
k++;
return k;
}
22

main()
{
int n=10,i;
int a[10]={1,2,3,4,3,3,2,1,3,1};
int b[10];
clrscr();
printf("\nМассив A \n");
for(i=0;i<n;i++)
printf("%5d",a[i]);
printf("\n");
for(i=0;i<n;i++)
{
b[i]=Counter(n,a,a[i]);
}
printf("\nМассив B \n");
for(i=0;i<n;i++)
printf("%5d",b[i]);
printf("\n");
getch();
}
23

ВАРИАНТЫ ЗАДАНИЯ № 4-A
1. Дана матрица A(N,M), которая вводится из файла, и число k,
вводимое с клавиатуры. В k-ом столбце найти минимальный элемент. В
той строке, где этот элемент находится, найти сумму положительных
элементов. Каждый этап решать при помощи подпрограммы, работающей с вектором. Вектор «вырезать» из матрицы.
2. Дана матрица A(N,M), которая вводится из файла, и число k,
вводимое с клавиатуры. В k-ом столбце найти максимальный элемент.
В той строке, где этот элемент находится, найти сумму положительных
элементов. Каждый этап решать при помощи подпрограммы, работающей с вектором. Вектор «вырезать» из матрицы.
3. Дана матрица A(N,M), которая вводится из файла, и число k,
вводимое с клавиатуры. В k-ом столбце найти минимальный элемент. В
той строке, где этот элемент находится, найти сумму отрицательных
элементов. Каждый этап решать при помощи подпрограммы, работающей с вектором. Вектор «вырезать» из матрицы.
4. Дана матрица A(N,M), которая вводится из файла, и число k,
вводимое с клавиатуры. В k-ом столбце найти максимальный элемент.
В той строке, где этот элемент находится, найти сумму отрицательных
элементов. Каждый этап решать при помощи подпрограммы, работающей с вектором. Вектор «вырезать» из матрицы.
5. Дана матрица A(N,M), которая вводится из файла, и число k,
вводимое с клавиатуры. В k-ом столбце найти минимальный элемент. В
той строке, где этот элемент находится, найти сумму модулей элементов. Каждый этап решать при помощи подпрограммы, работающей с
вектором. Вектор «вырезать» из матрицы.
6. Дана матрица A(N,M), которая вводится из файла, и число k,
вводимое с клавиатуры. В k-ом столбце найти максимальный элемент.
В той строке, где этот элемент находится, найти сумму модулей элементов. Каждый этап решать при помощи подпрограммы, работающей
с вектором. Вектор «вырезать» из матрицы.
7. Дана матрица A(N,M), которая вводится из файла, и число k,
вводимое с клавиатуры. В k-ом столбце найти минимальный элемент. В
24

той строке, где этот элемент находится, найти произведение отличных
от нуля элементов. Каждый этап решать при помощи подпрограммы,
работающей с вектором. Вектор «вырезать» из матрицы.
8. Дана матрица A(N,M), которая вводится из файла, и число k,
вводимое с клавиатуры. В k-ом столбце найти максимальный элемент.
В той строке, где этот элемент находится, найти произведение отличных от нуля элементов. Каждый этап решать при помощи подпрограммы, работающей с вектором. Вектор «вырезать» из матрицы.
9. Дана матрица A(N,M), которая вводится из файла, и число k,
вводимое с клавиатуры. В k-ой строке найти минимальный элемент. В
том столбце, где этот элемент находится, найти сумму положительных
элементов. Каждый этап решать при помощи подпрограммы, работающей с вектором. Вектор «вырезать» из матрицы.
10. Дана матрица A(N,M), которая вводится из файла, и число k,
вводимое с клавиатуры. В k-ой строке найти максимальный элемент. В
том столбце, где этот элемент находится, найти сумму положительных
элементов. Каждый этап решать при помощи подпрограммы, работающей с вектором. Вектор «вырезать» из матрицы.
11. Дана матрица A(N,M), которая вводится из файла, и число k,
вводимое с клавиатуры. В k-ой строке найти минимальный элемент. В
том столбце, где этот элемент находится, найти сумму отрицательных
элементов. Каждый этап решать при помощи подпрограммы, работающей с вектором. Вектор «вырезать» из матрицы.
12. Дана матрица A(N,M), которая вводится из файла, и число k,
вводимое с клавиатуры. В k-ой строке найти максимальный элемент. В
том столбце, где этот элемент находится, найти сумму отрицательных
элементов. Каждый этап решать при помощи подпрограммы, работающей с вектором. Вектор «вырезать» из матрицы.
13. Дана матрица A(N,M), которая вводится из файла, и число k,
вводимое с клавиатуры. В k-ой строке найти минимальный элемент. В
том столбце, где этот элемент находится, найти сумму модулей элементов. Каждый этап решать при помощи подпрограммы, работающей с
вектором. Вектор «вырезать» из матрицы.
14. Дана матрица A(N,M), которая вводится из файла, и число k,
вводимое с клавиатуры. В k-ой строке найти максимальный элемент. В
25

том столбце, где этот элемент находится, найти сумму модулей элементов. Каждый этап решать при помощи подпрограммы, работающей с
вектором. Вектор «вырезать» из матрицы.
15. Дана матрица A(N,M), которая вводится из файла, и число k,
вводимое с клавиатуры. В k-ой строке найти минимальный элемент. В
том столбце, где этот элемент находится, найти произведение отличных
от нуля элементов. Каждый этап решать при помощи подпрограммы,
работающей с вектором. Вектор «вырезать» из матрицы.
16. Дана матрица A(N,M), которая вводится из файла, и число k,
вводимое с клавиатуры. В k-ой строке найти максимальный элемент. В
том столбце, где этот элемент находится, найти произведение отличных
от нуля элементов. Каждый этап решать при помощи подпрограммы,
работающей с вектором. Вектор «вырезать» из матрицы.
17. Дана матрица A(N,M), которая вводится из файла. В каждом
столбце найти сумму положительных элементов. Определить, в каком
из столбцов получается наибольшая из этих сумм. Вывести все элементы этого столбца. Каждый этап решать при помощи подпрограммы,
работающей с вектором. Вектор «вырезать» из матрицы.
18. Дана матрица A(N,M), которая вводится из файла. В каждом
столбце найти сумму положительных элементов. Определить, в каком
из столбцов получается наименьшая из этих сумм. Вывести все элементы этого столбца. Каждый этап решать при помощи подпрограммы,
работающей с вектором. Вектор «вырезать» из матрицы.
19. Дана матрица A(N,M), которая вводится из файла. В каждом
столбце найти сумму отрицательных элементов. Определить, в каком
из столбцов получается наибольшая из этих сумм. Вывести все элементы этого столбца. Каждый этап решать при помощи подпрограммы,
работающей с вектором. Вектор «вырезать» из матрицы.
20. Дана матрица A(N,M), которая вводится из файла. В каждом
столбце найти сумму отрицательных элементов. Определить, в каком
из столбцов получается наименьшая из этих сумм. Вывести все элементы этого столбца. Каждый этап решать при помощи подпрограммы,
работающей с вектором. Вектор «вырезать» из матрицы.
21. Дана матрица A(N,M), которая вводится из файла. В каждом
столбце найти сумму модулей элементов. Определить, в каком из
столбцов получается наибольшая из этих сумм. Вывести все элементы
26

этого столбца. Каждый этап решать при помощи подпрограммы, работающей с вектором. Вектор «вырезать» из матрицы.
22. Дана матрица A(N,M), которая вводится из файла. В каждом
столбце найти сумму модулей элементов. Определить, в каком из
столбцов получается наименьшая из этих сумм. Вывести все элементы
этого столбца. Каждый этап решать при помощи подпрограммы, работающей с вектором. Вектор «вырезать» из матрицы.
23. Дана матрица A(N,M), которая вводится из файла. В каждом
столбце найти произведение отличных от нуля элементов. Определить,
в каком из столбцов получается наибольшее из этих произведений. Вывести все элементы этого столбца. Каждый этап решать при помощи
подпрограммы, работающей с вектором. Вектор «вырезать» из матрицы.
24. Дана матрица A(N,M), которая вводится из файла. В каждом
столбце найти произведение отличных от нуля элементов. Определить,
в каком из столбцов получается наименьшее из этих произведений. Вывести все элементы этого столбца. Каждый этап решать при помощи
подпрограммы, работающей с вектором. Вектор «вырезать» из матрицы.
25. Дана матрица A(N,M), которая вводится из файла. В каждой
строке найти сумму положительных элементов. Определить, в какой из
строк получается наибольшая из этих сумм. Вывести все элементы этой
строки. Каждый этап решать при помощи подпрограммы, работающей
с вектором. Вектор «вырезать» из матрицы.
26. Дана матрица A(N,M), которая вводится из файла. В каждой
строке найти сумму положительных элементов. Определить, в какой из
строк получается наименьшая из этих сумм. Вывести все элементы
этой строки. Каждый этап решать при помощи подпрограммы, работающей с вектором. Вектор «вырезать» из матрицы.
27. Дана матрица A(N,M), которая вводится из файла. В каждой
строке найти сумму отрицательных элементов. Определить, в какой из
строк получается наибольшая из этих сумм. Вывести все элементы этой
строки. Каждый этап решать при помощи подпрограммы, работающей
с вектором. Вектор «вырезать» из матрицы.
28. Дана матрица A(N,M), которая вводится из файла. В каждой
строке найти сумму отрицательных элементов. Определить, в какой из
строк получается наименьшая из этих сумм. Вывести все элементы
этой строки. Каждый этап решать при помощи подпрограммы, работающей с вектором. Вектор «вырезать» из матрицы.
27

29. Дана матрица A(N,M), которая вводится из файла. В каждой
строке найти сумму модулей элементов. Определить, в какой из строк
получается наибольшая из этих сумм. Вывести все элементы этой строки. Каждый этап решать при помощи подпрограммы, работающей с
вектором. Вектор «вырезать» из матрицы.
30. Дана матрица A(N,M), которая вводится из файла. В каждой
строке найти сумму модулей элементов. Определить, в какой из строк
получается наименьшая из этих сумм. Вывести все элементы этой
строки. Каждый этап решать при помощи подпрограммы, работающей
с вектором. Вектор «вырезать» из матрицы.
31. Дана матрица A(N,M), которая вводится из файла. В каждой
строке найти произведение отличных от нуля элементов. Определить, в
какой из строк получается наибольшее из этих произведений. Вывести
все элементы этой строки. Каждый этап решать при помощи подпрограммы, работающей с вектором. Вектор «вырезать» из матрицы.
32. Дана матрица A(N,M), которая вводится из файла. В каждой
строке найти произведение отличных от нуля элементов. Определить, в
какой из строк получается наименьшее из этих произведений. Вывести
все элементы этой строки. Каждый этап решать при помощи подпрограммы, работающей с вектором. Вектор «вырезать» из матрицы.
ПРИМЕРЫ ВЫПОЛНЕНИЯ ЗАДАНИЯ
Пример 1: В какой строке максимальная сумма положительных эле-
ментов?
#include <stdio.h>
#include <conio.h>
#include <alloc.h> /* <malloc.h> для C++ */
int xsum(int n, int *x)
{
int i,s;
for(s=0,i=0; i<n; i++)
s+=x[i];
return s;
}
28

void xmax(int n,int*x,int*r,int*k)
{
int i;
*r=x[0]; *k=0;
for(i=1;i<n;i++)
if (x[i]>*r)
{
*r=x[i]; *k=i;
}
return;
}
main()
{
int i,j,n,m,k,r,*x,*s,**a;
printf(”Введите n и m:”);
scanf(”%d%d”,&n,&m);
x=(int*)malloc(m*sizeof(int));
s=(int*)malloc(n*sizeof(int));
a=(int**)malloc(n*sizeof(int*));
for(i=0;i<n;i++)
a[i]=(int*)malloc(m*sizeof(int));
printf(”\nВведите элементы A:”);
for(i=0;i<n;i++)
for(j=0;j<m;j++)
scanf(”%d”,&a[i][j]);
printf(”\nМатрица A:\n”);
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
printf(”%5d”,a[i][j]);
printf(”\n”);
}
for(i=0;i<n;i++)
{
k=0;s[i]=0;
29

for(j=0;j<m;j++)
if(a[i][j]>0)
x[k++]=a[i][j];
if(k>0) s[i]=xsum(k,x);
}
xmax(n,s,&r,&k);
printf(”\nk=%d”,k);
getch();
}
30
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
