Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Программирование на языке высокого уровня. Методические указания и варианты заданий для студентов 1-го курса направления подготовки 09.03.01 Информати

.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
{ 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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]