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


 

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

56176. Впровадження комп′ютерно-орієнтованих методів навчання, спрямованих на розвиток всебічно розвиненої особистості молодшого школяра 561.5 KB
  МЕТА: провести спортивні змагання у рамках проекту «Здоровеньку були!»; продовжити роботу з популяризації здорового способу життя серед учнів 2 А класу та їхніх батьків; розвивати у дітей навички командної роботи на єдиний результат;
56177. Тато, мама, я - спортивна сім’я! 315.5 KB
  Команди вітають одна одну журі вболівальників і йдуть до місця старту. Команди шикуються в колони. За сигналом перший учасник підбиваючи кульку вгору біжить до кеглі оббігає її і повертається назад де на лінії старту передає кульку другому учаснику команди...
56178. «Більше, сильніше, швидше». Олімпійські ігри. Спорт 48.5 KB
  Today we’re going to talk to learn about the Olympic Games and we’ll discuss it. You will listen to the text about the Olympic Games and do some tasks, discuss famous Ukrainian spotsman. So, let’s start.
56179. ВИГОТОВЛЕННЯ ІГРАШОК-СУВЕНІРІВ “СПОРТСМЕНИ“ 56.5 KB
  Із поролону вирізати деталі: тулуб разом із головою та ноги. Із коричневого драпу вирізати деталі тулуба й ніг. З’єднати деталі тулуба із тканини й поролону зметати й зшити косим стібком через край. З’єднати деталі із тканини й поролону зметати й зшити.
56181. Німецька мова — одна з найкращих європейських мов 145.5 KB
  Stimmt. Ich bin damit einverstanden. Auβerdem werden wir H?rverstehen?ben, Sprachreaktion entwickeln, die Liebe zur deutschen Sprache beitragen. Jetzt beginnen wir mit der Wortschatzarbeit.
56184. Справочник юного натуралиста 977.5 KB
  Сельским жителям лесостепных районов УССР известна эта небольшая серая птица с коричневой подковкой на груди. Дятел Дятлы тоже принадлежат к лазающим птицам в полном смысле этого слова и при лазанье по коре деревьев очень ловко умеет пользоваться парным расположением своих пальцев.