Программирование с использованием массивов

Страницы работы

4 страницы (Word-файл)

Содержание работы

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РФ

НГТУ

КАФЕДРА ПРИКЛАДНОЙ МАТЕМАТИКИ

ЛАБОРАТОРНАЯ РАБОТА № 3

ПО ДИСЦИПЛИНЕ:

ЛАБОРАТОРНЫЕ МЕТОДЫ ПРОГРАММИРОВАНИЯ

«ПРОГРАММИРОВАНИЕ С ИСПОЛЬЗОВАНИЕМ МАССИВОВ»

ФПМИ

ГРУППА: ПМ-21

СТУДЕНТ: Воронов А.С.

ПРЕПОДАВАТЕЛЬ: Хиценко В. П.

НОВОСИБИРСК 2002 г.

  1. Условие задачи

В данной действительной квадратной матрице n*n найти максимальный по модулю элемент и получить квадратную матрицу (n-1)*(n-1) убрав столбец и строку содержащие этот элемент.

  1. Анализ задачи

Дано: Матрица n*n, где aij элемент матрицы  i, j Î [1..n]

Результат: Матрица (n-1)*(n-1) где aij элемент матрицы  i, j Î [1..n-1]

Метод решения:

Сравнивая модуль элемента aij с каким-то максимальным элементом max, найдем максимальный по модулю элемент и запишем max=aij b=i c=j  (присвоив перед выполнением max = -1). Сдвинем элементы столбцов следующих за столбцом с максимальным элементом влево. Сдвинем элементы строк следующих за строкой с максимальным элементом вверх.

  1. Алгоритм решения задачи
  1. Текст программы

#include <stdio.h>

#include <conio.h>

#include <math.h>

#define n 5

void main()

{

float A[n][n],c,max;

int i,j,np,a,b;

clrscr();

printf ("Введите порядок матрицы n*n  n<=%d",n);

scanf ("%d",&np);

if (np>n) printf ("Указан неверный параметр");

else

{ //  2

i=0;

j=0;

max=-1;

while (i<=np-1)

{  // 3

while (j<=np-1)

{scanf ("%f",&A[i][j]);

if (max<fabs(A[i][j])) {

max=fabs(A[i][j]);

a=i; b=j;}

j++;}

i++;

j=0;

}  // 3

i=0;

while (i<=np-1)

{  // 4

j=b;

while (j<np-1)

{  // 5

A[i][j]=A[i][j+1];

j++;

}  // 5

i++;

}  // 4

j=0;

while (j<=np-1)

{  // 4

i=a;

while (i<np-1)

{  // 5

A[i][j]=A[i+1][j];

i++;

}  // 5

j++;

}  // 4

i=0;

j=0;

while (i<=np-2)

{  // 4

while (j<=np-2)

{printf (" %f",A[i][j]);

j++;}

i++;

j=0;

printf ("\n");

}  // 4

} //  2

getch();

}

  1. Набор тестов

Информация о работе