49039

Выполнение действия в виде функций с динамическим распределением памяти программным способом

Курсовая

Информатика, кибернетика и программирование

Вывести результат сглаживания заданной вещественной матрицы размером 10 на 10. Соседями элемента Аij в матрице назовем элементы. Операция сглаживания матрицы дает новую матрицу того же размера, каждый элемент которой получается как среднее арифметическое имеющихся соседей соответствующего элемента исходной матрицы.

Русский

2014-01-07

365.5 KB

8 чел.

Министерство образования и науки Российской Федерации

РОССИЙСКИЙ ГОСУДАРСТВЕННЫЙ ГИДРОМЕТЕОРОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ

Кафедра Информационных технологий и систем безопасности

КУРСОВАЯ РАБОТА

по дисциплине: «Языки программирования»

Выполнил: студент гр. ИБ-240

                                                                                                                                                Иванова А. Ю.

Проверил: Доцент кафедры ИТ и СБ

Шишкин А. Д.

Санкт-Петербург

2012

Содержание

Задание на курсовое проектирование                                                                         3

Блок-схема кода программы                                                                                        4                                                             

Алгоритм главной функции                                                                                         7

Листинг программы                                                                                                      8

Вывод результатов                                                                                                      10

Таблица переменных                                                                                                  11

Список использованной литературы                                                                         12

Задание на курсовое проектирование по дисциплине «Языки программирования»:

Дана вещественная квадратная матрица.

Написать программу, выполняющую следующие действия в виде функций с динамическим распределением памяти.

1) Вывести результат сглаживания заданной вещественной матрицы размером 10 на 10. Соседями элемента Аij в матрице назовем элементы Аkl с    i-1≤ki+1, j-1≤lj+1, (k,l) ≠ (i,j). Операция сглаживания матрицы дает новую матрицу того же размера, каждый элемент которой получается как среднее арифметическое имеющихся соседей соответствующего элемента исходной матрицы.

2) В сглаженной матрице найти сумму модулей элементов, расположенных ниже главной диагонали

Содержание проекта:

  1.  Постановка задачи и метод решения.
  2.  Алгоритм модулей и главной функции.
  3.  Листинг программы.
  4.  Результаты тестирования программы.
  5.  Таблица переменных, задействованных в программе.
  6.  Список использованных источников.

Дата выдачи «____»    сентября 2012 г.

Дата сдачи «____»    декабря 2012г.

Задание выдал                                                                    доц. Шишкин А.Д.

Задание получила                                                        студентка Иванова А. Ю.

На Рис. 1 представлена блок-схема кода программы

Рис. 1

Алгоритм главной функции

сглаживания   

Листинг программы:

//group Ib-240

//student Ivanova Arina

#include <conio.h>

#include <stdio.h>

#include <math.h>

#include <stdlib.h>

#define RND ((int)rand()/2000)

int main()

{

float A[10][10],B[10][10],s=0, sum=0;

int n,i,j,a=1,b=1,c=1,d=1,k=4;

clrscr();

printf(" n = "); scanf("%d",&n);

printf("\n");

puts("vybrat'variant zapolneniya matrici:\n1-vruchnuyu,\n2-avtomatcheski(sluchainiye elementy)");

printf("\n");

printf("OLD MATRIX:\n");

flushall();

 switch(getchar())

 {

  case'1':

  for(i=0;i<n;i++)

     {

     for(j=0;j<n;j++)

      {

      printf("A[%d][%d]= ",i,j);

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

      }

     }

printf("\n");

    for(i=0;i<n;i++){

    for(j=0;j<n;j++){

    printf("%1.1f\t",&A[i][j]);

    }

    printf("\n");

    }

 break;

 case'2':

  for(i=0;i<n;i++)

     {

     for(j=0;j<n;j++)

      {

       A[i][j]=(float)(RND%10);

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

      }

      printf("\n");

     }

printf("\n");

}

printf("\n");

printf("NEW MATRIX:\n");

printf("\n");

for (i=0; i<n; i++)

{

for (j=0; j<n; j++)

{

k=4; s=0; a=1; b=1; c=1; d=1;

if(i==0) {a=0; k--;}

if(i==n-1) {b=0; k--;}

if(j==0) {c=0; k--;}

if(j==n-1) {d=0; k--;}

s=(b*A[i+1][j]+a*A[i-1][j]+c*A[i][j-1]+d*A[i][j+1])/k;

B[i][j]=s; printf("%5.1f",B[i][j]);

}

printf("\n");

}

for(i=0;i<n;i++)

{

for(j=0;j<i;j++)

{

sum+=B[i][j];

}            }

printf("Summa nij glav diag=%5.1f",sum);

getch();

return 0;

}

Вывод результатов:

Таблица переменных:

Переменная

Тип

Кол-во в байтах

А

float

4*n

В

4*n

s

4

sum

4

n

int

2

i

2

j

2

a

2

b

2

c

2

d

2

k

2

z

2

Всего выделено памяти:

26+8n

Список используемой литературы:

Шишкин, А. Д. Программирование на языке СИ [Текст]: Учебное пособие – Спб.: РГГМУ, 2003. – 103 с.

PAGE   \* MERGEFORMAT 13


 

А также другие работы, которые могут Вас заинтересовать

10984. Двухфакторный анализ 146.5 KB
  Двухфакторный анализ Бывает что в рамках однофакторной модели влияние интересующего нас фактора не проявляется хотя логические соображения указывают что такое влияние должно быть. Иногда это влияние проявляется но точность выводов о количественной оценке этого вли...
10985. ДВУХФАКТОРНЫЙ АНАЛИЗ В СИСТЕМЕ Statistica 6.0 216.58 KB
  Двухфакторный анализ продолжение ПримерДВУХФАКТОРНЫЙ АНАЛИЗ Исследуем зависимость частоты самопроизвольного дрожания мышц рук тремора от тяжести специального браслета одеваемого на запястье. Полученные результаты приведены в табл.1 причем каждое значение ср
10986. Кластерный анализ 44.7 KB
  Кластерный анализ Если процедура факторного анализа сжимает в малое число количественных переменных данные описанные количественными переменными то кластерный анализ сжимает данные в классификацию объектов. Синонимами термина кластерный анализ являются автомати...
10987. Кластерный анализ. Анализ временных рядов 79.16 KB
  КЛАСТЕРНЫЙ АНАЛИЗ ПРОДОЛЖЕНИЕ Монотонность Для графического представления процесса объединения все индивиды группы размещаются в соответствующем порядке на оси абсцисс. Последовательность объединений иерархия или дендрограмма требует чтобы каждое объединени
10988. Сглаживание временного ряда (выделение неслучайной компоненты) 98.62 KB
  Сглаживание временного ряда выделение неслучайной компоненты Одной из важнейших задач исследования временного ряда является выявление основной тенденции изучаемого процесса выраженной неслучайной составляющей тренда либо тренда с циклической или/и сезонной ком...
10989. Newton Interpolating Polynomial 76.5 KB
  Newton Interpolating Polynomial Case 1: Constant Polynomial Only one xvalue is given in the table X x1 Y y1 Let P0x be the interpolating polynomial function. Hence P0x1 = y1. It passes through the one point x1y1 given in the table. Hence choose 6.1 Case 2: Linear Polynomial Two xvalues are given in the table ...
10990. Spline Interpolation 87.5 KB
  Spline Interpolation In the previous sections n 1th order polynomials were used to interpolate between n date points. For example for eight points we can derive a perfect seventh order polynomial. This curve would capture all the meanderings at least up to and including seventh derivatives suggested by the points. However there are cases where these functions can lead to erroneous results because of roundoff error and overshoot. An alternative approach is to apply low...
10991. Numerical Integration 156.5 KB
  2. Numerical Integration 2.1. Introduction Numerical integration which is also called quadrature has a history extending back to the invention of calculus and before. The fact that integrals of elementary functions could not in general be computed analytically while derivatives could be served to give the field a certain panache and to set it a cut above the arithmetic drudgery of numerical analysis during the whole of the 18th and 19th centuries. With the invention of automa...
10992. Extended Formulas (Closed) 145 KB
  Extended Formulas Closed If we use equation 2.5 N 1 times to do the integration in the intervals x1; x2; x2; x3; xN 1; xN and then add the results we obtain an extendedr or compositer formula for the integral from x1 to xN. Extended trapezoidal rule: In this method the area under the curve is approximated by sums of trapezoids areas under the curve see Fig. 2.3.. Figure 2.3. Extended trapezoidal rule. Trapezoid formul...