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


 

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

16536. Основы организации ЭВМ 598 KB
  Лабораторная работа №6. Основы организации ЭВМ 1. Архитектура компьютера. Архитектура ЭВМ Презентация. Устройства компьютера. Шинная структура связей Для достижения максимальной универсальности и упрощения протоколов обмена информацией в м...
16537. МОНИТОРИНГ СИСТЕМЫ WINDOWS И РАБОТА С ПОДСИСТЕМОЙ БЕЗОПАСНОСТИ 119.5 KB
  МЕТОДИЧЕСКИЕ УКАЗАНИЯ К ВЫПОЛНЕНИЮ ЛАБОРАТОРНЫХ РАБОТ ПО ДИСЦИПЛИНЕ ОПЕРАЦИОННЫЕ СИСТЕМЫ Лабораторная работа 3. Мониторинг системы Windows и работа с подсистемой безопасности Часть1. Мониторинг и оптимизация системы Вызовите программу Диспетчер задач. ...
16538. ОРГАНИЗАЦИЯ РАБОЧЕЙ СРЕДЫ ПОЛЬЗОВАТЕЛЯ 105.5 KB
  МЕТОДИЧЕСКИЕ УКАЗАНИЯ К ВЫПОЛНЕНИЮ ЛАБОРАТОРНЫХ РАБОТ ПО ДИСЦИПЛИНЕ ОПЕРАЦИОННЫЕ СИСТЕМЫ ЛАБОРАТОРНАЯ РАБОТА 1. ОРГАНИЗАЦИЯ РАБОЧЕЙ СРЕДЫ ПОЛЬЗОВАТЕЛЯ Часть 1. Использование графического интерфейса Настройка рабочей среды пользователя Посмотрите как
16539. РАБОТА С ФАЙЛАМИ 89 KB
  МЕТОДИЧЕСКИЕ УКАЗАНИЯ К ВЫПОЛНЕНИЮ ЛАБОРАТОРНЫХ РАБОТ ПО ДИСЦИПЛИНЕ ОПЕРАЦИОННЫЕ СИСТЕМЫ Лабораторная работа 2. Работа с файлами Часть 1. Локальные файловые системы Создать папку в ФС NTFS и вложить в нее несколько файлов. Установить права доступа на папку.
16540. СОЗДАНИЕ УЧЕТНЫХ ЗАПИСЕЙ ПОЛЬЗОВАТЕЛЕЙ И ГРУПП В СРЕДЕ ОС LINUX. ОРГАНИЗАЦИЯ РАБОЧЕЙ СРЕДЫ ПОЛЬЗОВАТЕЛЯ 381.5 KB
  Лабораторная работа 4. Создание учетных записей пользователей и групп в среде ОС Linux. Организация рабочей среды пользователя Войдите в систему. Используя Центр управления создайте своего пользователя. Перейдите в первую текстовую консоль и зарегистрируйтесь...
16541. Методика проведения АВС анализа 54 KB
  Методика проведения АВС анализа Идея метода АВС анализа строится на основании принципа Парето: за большинство возможных результатов отвечает относительно небольшое число причин в настоящий момент более известного как правило 20 на 80. Данный метод анализа пол
16542. Предложения по совершенствованию реализации кадровой политики в Правительстве Самарской области 12.68 MB
  Управление кадрами как вид профессиональной деятельности обретает характер сложнейшего вида общественной практики, и ею необходимо овладеть и руководителям всех уровней управления
16543. Вычисление геодезических координат точек по их плоским 219.29 KB
  Лабораторная работа № 7 Вычисление геодезических координат точек по их плоским Координатам ГауссаКрюгера Общий путь решения сводиться к определению по известной абсциссе x широты В0 основания изображения плоской ординаты на поверхности B где В – искомая ши...
16544. Религия и мифология 76.33 KB
  Мифология - это форма общественного сознания, способ понимания природной и социальной действительности на ранних ступенях общественного развития. Мифы - это архаические повествования о деяниях богов и героев...