Многомерные массивы. (Лекция 5) презентация

Содержание


Презентации» Информатика» Многомерные массивы. (Лекция 5)
Домашнее задание № 5
 Study-Inf/1 курс/ПИ/ Информатика и программированиеМногомерные массивы 
 Инициализация матрицМеханизм 
 Механизм 
 выделения 
 памятиМеханизм 
 Механизм 
 освобождения 
 памятиОбращение к элементу матрицы x[i,j]
 for(i=0;i<n;i++)
 	for(j=0;j<m;j++)
 		…for(i=0;i<m;i++)
 for(i=0;i<m;i++)
 	for(j=0;j<n;j++)
 		… x[j][i]Инициализация элементов матрицы. Ввод данных с клавиатуры.
 …
 float **A;
 intfor(i=0;i<n;i++)
 for(i=0;i<n;i++)
  A[i] = new float[m];
 for(i=0;i<n;i++)
  for(j=0;j<m;j++)
 Получение значений случайным образом
 …
 float **x;
 int n,m,i,j;
 …
 xПечать элементов матрицы…
 …
 for(i=0;i<n;i++)
  {
  for( j=0;j<m;j++)
   printf("%8.3fВыделение областей матриц
 Выделение строки с номером k:Выделение столбца с номером f
 …
 for (int i=0;i<n;i++)
 	Обращение кВыделение блоков матриц
 …
 for (int i=0;i<n;i++)
 	for(int j=0;j<=k;j++)
 	Обращение к…
 …
 for (int i=z+1;i<n;i++)
 	for(int j=k+1;j<m;j++)
 	Обращение к элементу x[i][j];
Квадратные матрицы
 …
 for (int i=0;i<n;i++)
 	Обращение к элементу x[i][i];
 ……
 …
 for (int i=0;i<n-1;i++)
 	for (int j=i+1;j<n;j++)
   Обращение…
 …
 for (int i=0;i<n-1;i++)
 	for (int j=0;j<n-i-1;j++)
   ОбращениеВ вещественной матрице размерности nxm элементов найти минимальный элемент и егоint n,m,i,j;
  int n,m,i,j;
  srand(time(NULL));
  scanf("%d",&n);
  printf("Введитеprintf("%8.2f",x[i][j]);}
  printf("%8.2f",x[i][j]);}
  printf("\n");
  }
  int imin,jmin;
 for(i=n-1;i>=0;i--)
 for(i=n-1;i>=0;i--)
    free( x[i]);
  free( x);
 Отсортировать строки целочисленной матрицы A[nxm] по возрастанию минимальных элементов строк. 
int n,m,i ,j;
  int n,m,i ,j;
  srand(time(NULL));
  scanf("%d",&n);
for(j=0;j<m;j++)
 for(j=0;j<m;j++)
  {a[i][j]=rand()%101;
   if (min[i]>a[i][j]) min[i] = a[i][j];
a[j][k] = a[j+1][k];
 	  a[j][k] = a[j+1][k];
 	  a[j+1][k]printf("%4d",a[i][j]);}
   printf("%4d",a[i][j]);}
  printf(" min = %4d",min[i]);
  printf("\n");
СтруктурыСинтаксис:
 struct [имя] 
 { тип поле1;
  тип поле2;
 …
Обращение к полям структуры
 <имя переменной>.<имя поля>Вложенность структур
 struct Student{
 	struct Name{
   char surname[30];
 Оператор определения собственного (пользовательского) типа
 Синтаксис: 
 typedef <стандартный тип><задаваемое имя>;Дан массив записей, содержащих информацию о сдаче студентами одной группы экзаменовtypedef struct {
 typedef struct {
  char Name[80];
  intprintf(“Математика: ");
 printf(“Математика: ");
  scanf("%d",&student[i].m);
  printf(“ Физика: ");
 { Student S_vs = student[i];
  { Student S_vs = student[i];
Объединения
 Хранение разнотипных данных в одной области памяти.Размер объединения - это размер его максимального элемента. 
 Размер объединения



Слайды и текст этой презентации
Слайд 1
Описание слайда:
Домашнее задание № 5 Study-Inf/1 курс/ПИ/ Информатика и программирование


Слайд 2
Описание слайда:
Многомерные массивы Инициализация матриц

Слайд 3
Описание слайда:
Механизм Механизм выделения памяти

Слайд 4
Описание слайда:
Механизм Механизм освобождения памяти

Слайд 5
Описание слайда:
Обращение к элементу матрицы x[i,j] for(i=0;i<n;i++) for(j=0;j<m;j++) …

Слайд 6
Описание слайда:

Слайд 7
Описание слайда:
for(i=0;i<m;i++) for(i=0;i<m;i++) for(j=0;j<n;j++) … x[j][i]

Слайд 8
Описание слайда:
Инициализация элементов матрицы. Ввод данных с клавиатуры. … float **A; int n,m,i,j; printf ("Введите количество строк матрицы: "); scanf("%d",&n); printf ("Введите количество столбцов матрицы: "); scanf("%d",&m); A = new float*[n];

Слайд 9
Описание слайда:
for(i=0;i<n;i++) for(i=0;i<n;i++) A[i] = new float[m]; for(i=0;i<n;i++) for(j=0;j<m;j++) { printf("A[%d][%d]= ",i,j); scanf("%f",&(A[i][j])); } …

Слайд 10
Описание слайда:
Получение значений случайным образом … float **x; int n,m,i,j; … x = (float**) malloc(sizeof(float*)*n); for( i=0;i<n;i++) x[i] = (float*)malloc(sizeof(float)*m); for(i=0;i<n;i++) for(j=0;j<m;j++) x[i][j] = rand()%200/(rand()%100+1.); …

Слайд 11
Описание слайда:
Печать элементов матрицы

Слайд 12
Описание слайда:
… … for(i=0;i<n;i++) { for( j=0;j<m;j++) printf("%8.3f ",x[i][j]); // переход на новую строку экрана printf("\n"); } …

Слайд 13
Описание слайда:
Выделение областей матриц Выделение строки с номером k:

Слайд 14
Описание слайда:
Выделение столбца с номером f … for (int i=0;i<n;i++) Обращение к элементу x[i][f]; …

Слайд 15
Описание слайда:
Выделение блоков матриц … for (int i=0;i<n;i++) for(int j=0;j<=k;j++) Обращение к элементу x[i][j]; …

Слайд 16
Описание слайда:
… … for (int i=z+1;i<n;i++) for(int j=k+1;j<m;j++) Обращение к элементу x[i][j]; …

Слайд 17
Описание слайда:
Квадратные матрицы … for (int i=0;i<n;i++) Обращение к элементу x[i][i]; …

Слайд 18
Описание слайда:
… … for (int i=0;i<n-1;i++) for (int j=i+1;j<n;j++) Обращение к элементу x[i][j]; …

Слайд 19
Описание слайда:
… … for (int i=0;i<n-1;i++) for (int j=0;j<n-i-1;j++) Обращение к элементу x[i][j]; …

Слайд 20
Описание слайда:
В вещественной матрице размерности nxm элементов найти минимальный элемент и его местоположение в матрице. В вещественной матрице размерности nxm элементов найти минимальный элемент и его местоположение в матрице.

Слайд 21
Описание слайда:
int n,m,i,j; int n,m,i,j; srand(time(NULL)); scanf("%d",&n); printf("Введите количество столбцов: "); scanf("%d",&m); float **x = (float**) malloc(sizeof(float*)*n); for(i=0;i<n;i++) x[i]=(float*)malloc(sizeof(float)*m); for(i=0;i<n;i++) { for(j=0;j<m;j++) { x[i][j]=rand()%100/(rand()%100)+1.);

Слайд 22
Описание слайда:
printf("%8.2f",x[i][j]);} printf("%8.2f",x[i][j]);} printf("\n"); } int imin,jmin; float min = MAXFLOAT; for (i=0;i<n;i++) for( j=0;j<m;j++) if (min>x[i][j]) { min = x[i][j]; imin=i; jmin=j;} printf("Минимальный элемент x[%d,%d] = %8.2f \n",imin,jmin,min);

Слайд 23
Описание слайда:
for(i=n-1;i>=0;i--) for(i=n-1;i>=0;i--) free( x[i]); free( x); … }

Слайд 24
Описание слайда:
Отсортировать строки целочисленной матрицы A[nxm] по возрастанию минимальных элементов строк. Отсортировать строки целочисленной матрицы A[nxm] по возрастанию минимальных элементов строк.

Слайд 25
Описание слайда:
int n,m,i ,j; int n,m,i ,j; srand(time(NULL)); scanf("%d",&n); printf("Введите количество столбцов: "); scanf("%d",&m); int **a = (int**)malloc(sizeof(int*)*n); for(i=0;i<n;i++) a[i]=(int*)malloc(sizeof(int)*m) ; int* min = new int [n]; for (i=0;i<n;i++) min[i] = MAXINT; for(i=0;i<n;i++) {

Слайд 26
Описание слайда:
for(j=0;j<m;j++) for(j=0;j<m;j++) {a[i][j]=rand()%101; if (min[i]>a[i][j]) min[i] = a[i][j]; printf("%4d",a[i][j]); } printf(" min = %4d",min[i]); printf("\n"); } int k; for (i=0;i<n-1;i++) for (j=0;j<n-1-i;j++) { int temp; if(min[j]>min[j+1]) { for( k=0;k<m;k++) { temp = a[j][k];

Слайд 27
Описание слайда:
a[j][k] = a[j+1][k]; a[j][k] = a[j+1][k]; a[j+1][k] = temp; } temp = min[j]; min[j] = min[j+1]; min[j+1] = temp; } } printf("\n"); for(i=0;i<n;i++) { for(int j=0;j<m;j++) {

Слайд 28
Описание слайда:
printf("%4d",a[i][j]);} printf("%4d",a[i][j]);} printf(" min = %4d",min[i]); printf("\n"); } for(i=n-1;i>=0;i--) free( a[i]); free( a); system(“pause”); }

Слайд 29
Описание слайда:
Структуры

Слайд 30
Описание слайда:
Синтаксис: struct [имя] { тип поле1; тип поле2; … }

Слайд 31
Описание слайда:
Обращение к полям структуры <имя переменной>.<имя поля>

Слайд 32
Описание слайда:
Вложенность структур struct Student{ struct Name{ char surname[30]; char name[20]; char patronymic[30]; }; int ball; char sex; }; … struct Student ss; ss.Name.name = ; …

Слайд 33
Описание слайда:
Оператор определения собственного (пользовательского) типа Синтаксис: typedef <стандартный тип><задаваемое имя>;

Слайд 34
Описание слайда:
Дан массив записей, содержащих информацию о сдаче студентами одной группы экзаменов по математике, физике и программированию. Расположить записи в массиве по убыванию оценки по математике. Вывести отсортированный массив на экран. Дан массив записей, содержащих информацию о сдаче студентами одной группы экзаменов по математике, физике и программированию. Расположить записи в массиве по убыванию оценки по математике. Вывести отсортированный массив на экран.

Слайд 35
Описание слайда:
typedef struct { typedef struct { char Name[80]; int m; int f; int p; } Student; int n = 5; Student *student; student = new Student[n]; for (int i=0;i<n;i++) {printf(“Имя: "); scanf("%s",student[i].Name);

Слайд 36
Описание слайда:
printf(“Математика: "); printf(“Математика: "); scanf("%d",&student[i].m); printf(“ Физика: "); scanf("%d",&student[i].f); printf(" Программирование: "); scanf("%d",&student[i].p); } printf(" Исходные данные: "); for(i=0;i<n;i++) { printf("%30s%3d%3d%3d\n",student[i].Name, student[i].m,student[i].f,student[i].p); } for (i=1;i<n;i++)

Слайд 37
Описание слайда:
{ Student S_vs = student[i]; { Student S_vs = student[i]; int vs = student[i].m; int j = i-1; while(vs>student[j].m&&j>=0) {student[j+1]=student[j]; j--;} student[j+1] = S_vs; } printf("\n После сортировки:\n"); for(i=0;i<n;i++) { printf("%30s%3d%3d%3d\n",student[i].Name, student[i].m,student[i].f,student[i].p); } getch(); }

Слайд 38
Описание слайда:
Объединения Хранение разнотипных данных в одной области памяти.

Слайд 39
Описание слайда:
Размер объединения - это размер его максимального элемента. Размер объединения - это размер его максимального элемента. В каждый момент времени может быть сохранен только один из элементов объединения.


Скачать презентацию на тему Многомерные массивы. (Лекция 5) можно ниже:

Похожие презентации