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


 

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

36766. ИЗУЧЕНИЕ СВОБОДНЫХ КОЛЕБАНИЙ ПРУЖИННОГО МАЯТНИКА 482 KB
  ОТЧЁТ ПО ЛАБОРАТОРНОЙ РАБОТЕ № 4 ИЗУЧЕНИЕ СВОБОДНЫХ КОЛЕБАНИЙ ПРУЖИННОГО МАЯТНИКА. Цель работы: Определение коэффициента жесткости пружины по удлинению пружины и методом колебаний пружинного маятника. Такой функцией является функция описывающая гармонические колебания...
36767. Перевод числа из одной системы счисления в другую 44.5 KB
  Варианты 1 15: Перевод из системы по основанию 10 в систему по основанию 2; Перевод из системы по основанию 10 в систему по основанию 4; Перевод из системы по основанию 10 в систему по основанию 8; Перевод из системы по основанию 10 в систему по основанию 16; Перевод из системы по основанию 8 в систему по основанию 10; Перевод из системы по основанию 8 в систему по основанию 2; Перевод из системы по основанию 8 в систему по основанию 4; Перевод из системы по основанию 8 в систему по основанию 16; Перевод...
36768. Размещение графики в документе 310.01 KB
  Работа с графикой в процессоре Word может строиться по трем направлениям.
36769. Изучение колебаний пружинного маятника 298 KB
  Изучение колебаний пружинного маятника. Цель работы: Изучение свободных и вынужденных колебаний системы с одной степенью свободы на примере пружинного маятника. Несмотря на различную физическую природу колебаний их можно описать одинаковыми уравнениями. Здесь А амплитуда колебаний; = круговая циклическая частота незатухающих свободных колебаний; t текущий момент времени...
36770. ИЗУЧЕНИЕ СВОБОДНЫХ КОЛЕБАНИЙ ФИЗИЧЕСКОГО МАЯТНИКА 169.5 KB
  Прибор, используемый в данной работе, представляет собой настенный кронштейн, на котором смонтированы подушки для опорных призм физического маятника. На том же кронштейне подвешен математический маятник, длину которого можно изменять, наматывая нить на соответствующий барабанчик. Физический маятник представляет собой цилиндрический стержень, на котором жестко закреплены две призмы 1 и 2
36771. Создание составных документов. Печать документов 364.5 KB
  Word уберет с экрана панель инструментов Формула и восстановит стандартное меню Word. Текстовые эффекты Применение текстовых эффектов к оформлению текста при помощи вставки объекта созданного в Wordrt. Пример объявления подготовленного с помощью Wordrt Попробуем подготовить самое банальное объявление для расклеивания на столбах рис. Создание заголовка объявления Продается компьютер с помощью Wordrt.
36772. Настройка аутентификации 43 KB
  htccess и в нем пропишите следующие директивы webсервера: uthNme ″Restricted re″ директива задает имя области аутентификации uthType Bsic директива задает тип аутентификации uthUserFile vr www ваша_фамилия users директива задает путь к файлу пользователей uthGroupFile vr www ваша_фамилия groups директива задает путь к файлу групп пользователей Создайте файл пользователей с помощью команды usr bin htpsswd c путь_к_файлу_пользователей имя_пользователя Здесь путь_к_файлу_пользователей это путь указанный в...
36774. МЕДИЦИНСКАЯ СЛУЖБА ГРАЖДАНСКОЙ ОБОРОНЫ 128 KB
  В условиях войны с применением современных средств поражения потери среди мирного населения могут существенно возрасти, так как новейшие средства доставки позволяют вероятному противнику поражать не только прифронтовые