Обработка двумерных массивов (матриц). Построение графических фигур. Задачи с использованием Геометрических данных

Автор работы: Пользователь скрыл имя, 10 Июня 2014 в 15:34, курсовая работа

Краткое описание

Язык Си - это универсальный язык программирования, для
которого характерны экономичность выражения, современный
набор операторов и типов данных. Язык Си не является ни
языком "очень высокого уровня", ни "большим" языком, и не
предназначается для некоторой специальной области примене-
ния, но отсутствие ограничений и общность языка делают его
для многих задач более удобным и эффективным, чем языки,
предположительно более мощные. Операционная система, компи-
лятор с языка Си и по существу все прикладные программы сис-
темы "ДЕМОС" написаны на Си. Язык Си не связан с какими-
либо определенными аппаратными средствами или системами, и
на нем легко писать программы, которые можно пропускать без
изменений на любой ЭВМ, имеющей Си-компилятор.

Содержание

ВВЕДЕНИЕ 3
Лист задания 5
1.Обработка двумерных массивов 6
1.1Алгоритм решения задачи 7
1.2 Описание программы 8
2. Построение графических фигур 9
2.1 Алгоритм решения задачи 10
2.2 Описание программы 11
3. Задачи с использованием геометрических данных 12
3.1 Алгоритм решения задачи 13
3.2 Описание программы 14
4. Главное меню курсовой работы 15
5.1 Обработка двумерных массивов 16
5.2 Контрольный запуск программы 19
6.1 Построение графических фигур 20
6.2 Контрольный запуск программы 21
7.1 Задачи с использованием геометрических данных 22
7.2 Контрольный запуск программы 25
8.1 Главное меню 26
8.2 Контрольный запуск программы 28
Заключение 29
Список используемой литературы: 30

Прикрепленные файлы: 1 файл

курсовая работа.docx

— 274.44 Кб (Скачать документ)

 

 

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

ДОНЕЦЬКИЙ НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ

 

Кафедра АСУ

 

 

 

 

 

 

 

ПОЯСНЮВАЛЬНА ЗАПИСКА

до курсової роботи з дисципліни «Програмування»

 

 

 

Виконавець     

ст.гр. __________________  

   (підпис)   (П.І.Б.)

Керівник            __________________   Свiтлична В.А

(підпис)   (П.І.Б.)

Дата захисту  ______________ Оцінка _______________________

 

 

Донецьк 2013г.

 

РЕФЕРАТ

Пояснительная записка к курсовому проекту

31 стр., 6 рис., 3 блок-схемы,  2 источника, 4 приложения

Целью курсовой работы по дисциплине «Программирование» является практическое закрепление теоретической части курса и приобретение навыков алгоритмизации и программирования с использованием современных программных и технических средств вычислительной техники.

 

 

 

ФУНКЦИЯ, ПРОГРАММА, БЛОК-СХЕМА, ОПЕРАТОР, ВХОДНЫЕ ДАННЫЕ, ВЫХОДНЫЕ ДАНННЫЕ, ГРАФИКА, МАССИВ, АЛГОРИТМ,.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

                       

Оглавление

 

 

 

 

ВВЕДЕНИЕ

  Язык Си - это универсальный  язык программирования,  для

которого  характерны  экономичность  выражения,  современный

набор операторов и типов данных.  Язык  Си  не  является  ни

языком  "очень  высокого  уровня", ни "большим" языком, и не

предназначается для некоторой специальной  области  примене-

ния,  но  отсутствие ограничений и общность языка делают его

для многих задач более удобным  и  эффективным,  чем  языки,

предположительно более мощные.  Операционная система, компи-

лятор с языка Си и по существу все прикладные программы сис-

темы   "ДЕМОС"  написаны на Си.  Язык Си не связан с какими-

либо определенными аппаратными средствами или  системами,  и

на  нем легко писать программы, которые можно пропускать без

изменений на любой ЭВМ, имеющей Си-компилятор.

 

     Язык Си  является универсальным языком  программирования.

Он  первоначально  появился  в  операционной системе UNIX, и

развивался как основной язык систем, совместимых с ОС  UNIX.

Сам язык , однако, не связан с какой-либо одной операционной

системой или машиной; и хотя его называют языком  системного

программирования, так как он удобен для написания операцион-

ных систем, он  может  использоваться  для  написания  любых

больших  вычислительных  программ,  программ  для  обработки

текстов и баз данных.

 

     Язык Си - это  язык относительно "низкого уровня".   Это

означает,  что Си имеет дело с объектами того же вида, что и

большинство ЭВМ, а именно, с символами, числами и  адресами.

Они  могут  объединяться  и пересылаться посредством обычных

арифметических и логических операций, осуществляемых  реаль-

ными ЭВМ.

 

     В языке  Си отсутствуют операции,  имеющие  дело  непос-

редственно  с составными объектами, такими как строки симво-

лов, множества, списки или с массивами, рассматриваемыми как

целое. Здесь, например, нет никакого аналога операциям PL/1,

оперирующим с массивами и строками.  Язык  не  предоставляет

никаких других возможностей распределения памяти, кроме ста-

тического определения и  механизма  стеков,  обеспечиваемого

локальными переменных функций.  Сам по себе язык Си не обес-

печивает никаких возможностей ввода-вывода.  Все  эти  меха-

низмы высокого уровня должны обеспечиваться явно вызываемыми

функциями.

 

     Аналогично, язык  Си предлагает только простые, последо-

вательные конструкции управления: проверки, циклы, группиро-

вание и подпрограммы, но не  мультипрограммирование,  парал-

лельные операции, синхронизацию или сопрограммы.

 

     Удержание  языка в скромных размерах  дает реальные преи-

мущества.  Так  как Си относительно мал, он не требует много

места для  своего  описания  и  может  быть  быстро  выучен.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Лист задания

Данная курсовая работа состоит из трёх частей:

1. Обработка двумерных массивов(матриц)

2. Построение графических  фигур

       3. Задачи с использованием Геометрических данных

 

Также, все программы должны быть объединены и запускаться с помощью меню.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.Обработка  двумерных массивов

Задача:

Задана матрица размером NxM. Минимальный элемент каждой строки матрицы заменить среднеарифметическим значением максимальных элементов остальных строк матрицы.

Требования к выполнению задания:

  • Размер матрицы должен вводиться с клавиатуры;
  • Под элементы матрицы выделить динамическую память требуемого размера.
  • При формировании матриц предусмотреть выбор варианта: случайным образом, вводом с клавиатуры или вводом из файла;
  • При выборе ввода матрицы с клавиатуры, должен быть предусмотрен удобный интерфейс ввода данных;
  • При вводе из файла при недостаточном объеме данных элементы матрицы, для которых не хватило значений, заполняются нулями;
  • Сформированную матрицу отобразить на экране;
  • Предусмотреть вывод промежуточных результатов и результатов обработки на экран и/или в файл.

 

 

 

 

 

 

 

 

 

 

 

 

1.1Алгоритм  решения задачи

В начале вводим размеры матрицы ,  выбираем способ заполнения элементов . После формирования выводим начальную матрицу на экран .

Далее создаем временный массив (размер равен количеству строк матрицы) с числами ,равными среднему арифметическому максимальных чисел всех строк , кроме данной .После находим в каждой строке матрицы минимальный элемент и заменяем его на соответствующий из массива . 
Удаляем выделенную память под массив , выводим обработанную матрицу.

Блок-схема

 

 

1.2 Описание  программы

Программа состоит из 9 функций, подробное описание приведено ниже :

    • key(a,n,m);

Ввод елементов матрицы вручную с клавиатуры.

    • random(a,n,m);

Заполнение матрицы с помощью функции rand().

    • fromfile(a,n,m);

Заполнение матрицы числами из файла. Если в файле недостаточно чисел – дополняется нулями. Файл находится в директории

«d:\\file.txt»

    • get(a,n,m);

Вывод матрицы на экран.

    • sr_max(a,n,m,i);

Функция находит и возвращает среднее арифметическое масимальных элементов всех строк, кроме  i – той.

    • num_min(a,m,i);

Функция находит и возвращает номер минимального элемента в i – той строке.

    • func(a,n,m);

Функция заменяет элемент каждой строки матрицы  среднеарифметическим значением максимальных элементов остальных строк матрицы.

 

    • get_file(a,n,m);

Записывает матрицу в файл «d:\\file!.txt».

    • task1();

Основная функция , вызывается из меню .

 

 

 

 

 

 

2. Построение  графических фигур

Задача:

Окружность, вписанная в квадрат, меняют свои цвета, размеры и движутся по окружности с центром в середине экрана.

 

Требования к выполнению задания:

  • Хотя бы одна фигура должна иметь заливку, которая согласно условию меняет свои параметры;
  • Завершение движения происходит по нажатию любой клавиши ;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.1 Алгоритм  решения задачи

Для начала необходимо задать первоначальные координаты прямоугольника и вписанной окружности. Далее в цикле рисуем движение этого объекта по кругу . Это осуществляется с помощь изменения координат с использованием функций sin(x) и cos(x). Каждые 2 фигура меняет свои параметры.

Блок-схема


 

 

 

 

2.2 Описание  программы

Программа состоит из одной функции             

Для работы в графическом режиме необходимо:

    • Подключение графической библиотеки   graphics.h
    • В visual studio инициализация графического окна :

Initwindow(x,y), где х ,у – размеры окна.

В папке BGI находится графический драйвер.

 

Для движения по окружности координаты x,y задаются с помощью функций

x=R*cos(i)+А;

y=R*sin(i)+В;

где R-радиус движения; A-координата окружности (х); B-координата окружности (у); i- величина угла (в радианах); x, y- координаты движущейся фигуры (точка на окружности).

 

 

 

 

 

 

 

 

 

 

 

3. Задачи с использованием геометрических данных

Заданы две пересекающиеся прямые, с помощью 4 точек. Найти координаты точки пересечения и расстояния от нее до заданных точек.

Требования к выполнению работы:

  • Размер множества точек должен вводиться с клавиатуры;
  • При формировании координат точек предусмотреть выбор варианта: случайным образом, вводом с клавиатуры или вводом из файла;
  • При выборе ввода с клавиатуры, должен быть предусмотрен удобный интерфейс ввода данных;
  • При вводе из файла при недостаточном объеме данных элементы массивов, для которых не хватило значений, заполняются случайным образом;
  • Сформированное множество точек отобразить на экране в графическом режиме;
  • Решение задачи должно сопровождаться графической интерпретацией.
  • Графическое изображение должно менять масштаб, цвет, тип линии и заливок.

 

 

 

 

 

 

 

 

 

 

 

 

 

3.1 Алгоритм  решения задачи

Необходимо сформировать четыре точки. По условию они образуют две пересекающиеся прямые. Далее используя уравнения прямых находим выражение, которое будет находить точку пересечения двух прямых.

После выводим график на экран. 

Блок-схема

 

 

 

3.2 Описание  программы

Программа состоит из 7 функций:

  • set(a,b,c,d);

Формирование точек вручную.

  • file(a,b,c,d);

Считывание точек из файла.

  • rand(a,b,c,d);

Точки задаются с помощью функции rand().

  • cross(a,b,c,d);

Возвращает точку пересечения.

  • draw(a,b,c,d);

Рисует точки , изменяет параметры графика.

  • line(step,width,m,sx,sy,color,s,thinkness);

Рисует  координатную плоскость.

  • task3();

Оновная функция.

Где a,b,c,d – точки, заданные в виду структур (имеют поля х,у); color –цвет;m -масштаб;step-количество пикселей в одной еденице измерения;width-ширина графического окна;thinkness-толщина линий;

Sx ,sy –сдвиг по координатным осям ;s –тип линий.

 

Клавишами + и – изменяется масштаб графика ; wasd – движение графика ;

c- изменение цвета ;v – изменение типа линий ;b-изменение толщины линий;Enter – вернуть стандартные значения ; Esc-выход.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4. Главное  меню курсовой работы

Оно состоит из 5 кнопок:

    • Обработка матриц
    • Построение графических фигур
    • Геометрические данные
    • информация об авторе
    • завершить работу

Перемещение по меню осуществляется при помощи клавиш w и s.

Выбор - при помощи клавиши ENTER.

При нажатии клавиши Esc – выход.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5.1 Обработка  двумерных массивов

Код программы

 

 

#include <stdio.h>

#include <stdlib.h>

#include <locale>

#include <conio.h>

#include <time.h>

 

void key(int **a , int n , int m)

{

printf("\n\nВводите элементы матрицы:");

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

for(int j=0;j<m;j++)

{

printf("\n%d - ",i*m+j+1);

scanf("%d",&a[i][j]);

}

}

 

 void random(int **a , int n , int m)

{

printf("\n\nЗначения заданы с помощью функции rand() в пределах [-99;99];");

Информация о работе Обработка двумерных массивов (матриц). Построение графических фигур. Задачи с использованием Геометрических данных