Тiзбектерге және матрицаларға арналған есептердi шығару
Автор: Madina Duisenbek • Ноябрь 23, 2021 • Лабораторная работа • 1,437 Слов (6 Страниц) • 418 Просмотры
№ 8 Зертханалық жұмыс
Тақырыбы: Тiзбектерге және матрицаларға арналған есептердi
шығару. Iздеу
Жұмыс мақсаты : Білімгерлерді көп өлшемді массивтермен жұмыс істеудің әртүрлі алгоритмдерін пайдаланып, Си тілінде программалар жазуға үйрету. Іздеуді толық меңгеріп, кез-келген берілген есепті шығару.
Қысқаша теориялық бөлім
Көп өлшемді массив
Көп өлшемді массив келесі үлгі бойынша сипатталады. Массив атының типі[1-өлшем][2-өлшем]…[n-өлшем];
Екі өлшемді массивтер І
Мысалы а[3][4]. ЭВМ зердесінде 2 өлшемді массив жол бойынша сақталады. ?
Массивке мән беру
Си тілінде массивке мән берудің арнайы мүмкіндігі бар. Ең қарапайым түрі массивті сипаттау кезінде мәндерді фигуралық жақшалар ішінде жазу. Мысалы: Float ff[4]={7.9,8,9,5.7,7,0}
Мән берудің басқа түрі — меншіктеу операторлары түрінде жазу. Мысалы, a[0]=5; а[1]=7; а[3]=8;
Көп өлшемді массивтер үшін оларды массив ішіндегі массив түрінде жазуға болады. Мысалы: Inta[3][2]= {1,7,9,7,8,5} Немесе Inta[3][2]={{!,7},{9,7},{8,5}}
Массивті сипаттау және оған мән беру кезінде өлшемді дәл көрсету міндетті емес. Мысалы, Int a []={1,8,0,5,8,6}
Көп өлшемді массивке мәндер беру кезінде өлшемді тек ең сол жақтағы жақшада ғана көрсетпеуге болады. Мысалы,
Inta[][3]={6,8,9,5,0,9,7,6,8}
Мыс:
A(3,4) матрицасын B(4,2) матрицасына көбейту ;
# include <stdio.h>
main()
{ int a[3][4]={{5,2,-4,13},{4,9,0.6},{7,-1,83}};
int b[4][2]={{23,-6},{92,-53},{12,3}};
int c[3][2],i,j,k;
for (i=0;i<3;i++)
{ for (j=0;j<2;j++)
{ c[i][j]=0;
for (k=0;k<4;k++)
c[i][j]=a[i][k]*b[k][j]:}}
for (i=0;i<3;i++)
for (j=0;j<2;j++)
{ printf(«c[%d][%d]=[%d]», i,j,c[i][j]);
printf(«\n»); }}
Бір варианттың орындалуы
№ 1 Тапсырма
n- ретті квадрат матрицасын алу;
- 0 0 0 0 n
- 2 0 0 n-1 0
0 0…….. 0 0
………………..
0 0……..0 0
0 2 0 0 n-1 0
1 0 0 0 0 n
Шешімі:
# include <stdio.h>
main()
{ const int n=9;
int i,j, a[n][n];
for(i=0;i<n;i++)
for(j=0;j<n;j++)
a[i][j]=0;
for(i=0;i<n;i++)
{ a[i][j]=i+1;a[i][n-1-i]=n;}
for(i=0;i<n;i++)
for(j=0;i<n;j++)
printf(“%2”, a[i][j]);
printf(“\n”);}
return 0;}
Нәтиже: 1 0 0 0 0 0 0 0 9
0 2 0 0 0 0 0 8 0
0 0 3 0 0 0 7 0 0
0 0 0 4 0 6 0 0 0
0 0 0 0 5 0 0 0 0
0 0 0 4 0 6 0 0 0
0 0 3 0 0 0 7 0 0
0 2 0 0 0 0 0 8 0
0 0 0 0 0 0 0 0 9
№ 2 Тапсырма
Массивтің ең үлкен элементін іздеу.
Шешімі:
#include<stdio.h>
#include<conio.h>
void main()
{ const int n=3;
int i,j ;
int a[3][3];
int max;
clrscr();
printf("Engiz:");
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
printf("a[%d][%d]=%d\n",i,j,a[i][j]);
max=a[1][1];
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if(a[i][j]>max)
max=a[i][j];
for(i=0;i<n;i++)
{ for(j=0;j<n;j++)
printf("%d\t",a[i][j]);
printf("\n");
}
printf("max=%2d", max);
printf("\n");
getch();
}
Нәтижесі
ТАПСЫРМАЛАР
Тап. Вар. | Матрица аты | Орындалу керек әрекет | Шарты және шектері |
1 | А(10,15) | Матрицаның әрбір баған элементтерінің қосьшдысын және оң элементтер санын есте сақтау және есептеу. Нәтижелерді екі қатар етіп шығару керек. | Хі>0 |
2 | А(N,М) | Матрицаның әрбір қатарының элементтерінің қосындысын және санын есептеу. | N=20 |
3 | В(М,М) | Матрицаның басты диагоналінде және оның астында орналасқан элемент-терінің қосындысын және санын есептеу | M=12 |
4 | С(Н,М) | Матрица элементтерінің басты диагоналінің үстінде орналасқан оң элементтердің санын және олардың өзара қосындысын есептеу | сц>0 |
5 | D(К,К) | Матрицаның теріс элементтерінің орнына нолдерді қойып жазу және оны баспаға шығару | К<10 |
6 | A(10,10) | В матрицасының теріс элементтерінің орнына 0-дерді ал, оң элементтерінің орнына 1-лерді қойып баспара шыгару. | A-кез-келген сан |
? | Р(N,М) | Матрицаның әрбір қатаръшың ең үлкен, ең кіші элементтерін тауып, оларды сәйкесінше қатардың бастапқы және соңғы элементтерінің орнына қою. | N=20 |
8 | Р(10,8) | Берілген матрицаны транспонирлеп, баспаға басты диагональ элементтерін және басты диагональ стында орналасқан элементтерді шыгару. Нәтижелерді екі қатармен шыгару | Di-кез-келген сан |
9 | N(10,10) | Бүтінсанды матрица үшін өрбір қатар | (Пі/5)-5 = Піі |
10 | N(10,10) | N матрицасының оң элемент-нен М | Ni-кез-келген сан |
11 | Р(М,M) | Әрбір қатардан ең үлкен элементтердің | M<15 |
12 | К(К,М) | Матрицаның ең үлкен және ең кіші | К<20 М<10 |
13 | S(25,8) | Бастапқы берілгендерді алгашқы 24 қатарға және алғашқы 7 бағанға енгізу. Әрбір қатардың геометриялық ортасын тауып, оларды 8-ші баганра, ал әрбір қатардың арифметикалық ортасын 25-қатарға жазу және баспара шырару. | S-кез-келген сан |
14 | H(М,М) | Элементтер саны ең үлкен және ең кіші | M<20 |
15 | Ү(15,10) | Матрицаның әрбір қатар элементтерін өспелі түрде реттеп жазу және баспаға шығару. | Уі-кез-келген сан |
...