Автор: Пользователь скрыл имя, 17 Ноября 2011 в 00:38, курсовая работа
Задание 1.
Осуществить циклический сдвиг элементов квадратной матрицы размерности mxm на n элементов вправо. n может быть больше m (сформировать статический массив, определить значения его элементов и выполнить задачу).
Задание 2.
Дана целочисленная прямоугольная матрица размерности n на m. Упорядочить её строки по возрастанию количества одинаковых элементов в каждой строке, а также найти номер первого из столбцов, не содержащих ни одного отрицательного элемента (решить задачу, используя динамическое выделение памяти и обработку массива с применением указателей).
Постановка задачи ………………………………………. 3
Алгоритм программы …………………………………… 4
Функции программы ……………………………………. 9
Реализация программ ………………………………….. 10
Листинги программ …………………………………….. 12
Список используемой литературы ……………………. 16
Расчётно – графическая работа
по дисциплине
«Алгоритмические языки и программирование»
№1
Содержание:
1 Постановка задачи
Задание 1. Вариант 8.
Осуществить циклический сдвиг элементов квадратной матрицы размерности mxm на n элементов вправо. n может быть больше m (сформировать статический массив, определить значения его элементов и выполнить задачу).
Задание 2. Вариант 6.
Дана
целочисленная прямоугольная
2
Алгоритмы программ
Схема
2.1 Блок-схема задачи 1
Схема
2.3 Блок-схема задачи 2
Схема 2.4 Блок-схема задачи 2(продолжение)
Схема
2.5 Блок-схема задачи 2(продолжение)
3 Функции программы
В
задании 1 пользовательские функции отсутствуют.
Использованы функции: RAND для присвоения
каждому элементу массива случайного
значения. Для возможности использования
данной функции к программе присоединена
стандартная библиотека <stdlib.h>,
для возможности вывода данных используется
функция cout, для её использования к
программе присоединена стандартная библиотека
<iostream>
В
задании 2 пользовательские функции
также отсутствуют. Аналогично использование
функции RAND, ввод и вывод данных
осуществляется с помощью функций
cin и cout соответственно. New
используется для создания динамического
массива.
4 Памятка пользователя
Задание 1.
Выполнение
данной программы происходит сразу
же после её запуска, а именно: инициализация
всех переменных, заполнение массива случайными
числами, вывод его на экран, осуществление
циклического сдвига элементов квадратной
матрицы размерности mxm на n элементов
вправо. Все эти действия последовательны.
После их завершения пользователь только
может просмотреть результаты и закрыть
программу, ничего более. Интерфейс программы
представлен на рисунке 1.
Рис.
1 Результат работы программы, составленной
по задаче 1
Задание 2.
После запуска данной программы выводится сообщение с просьбой ввести количество строк и столбцов в массиве. Пользователь вводит нужное ему целое число.
Программа
получила все необходимые от пользователя
данные и дальнейшее её выполнение
от него не зависит. Идёт формирование
массива заданных размеров, его заполнение
и вывод на экран. После чего - выполнение
поставленной задачи по заданному алгоритму
и вывод на экран результатов. Интерфейс
программы представлен на рисунке
2 .
Рис.
2 Результат работы программы составленной
по задаче 2
5 Листинги программ
Задание 1.
#include "stdafx.h"
#include <iostream>//Присоединение библиотеки для возможности использования функций ввода/вывода
#include <stdlib.h>//Присоединение библиотеки для возможности использования функции RAND
using namespace std;
void main()
{
//Инициализация переменных и ввод размера массива
const int m=5,n=2;//Размеры массива
int i,j,k,per1,per2;//
int mas[m][m];//Исходный массив
//Заполнение массива случайными числами и вывод на экран
cout<<"\t\tMASSIV:"<<
for (i=0;i<m;i++)//Циклы заполнения массива случайными числами
for (j=0;j<m;j++)
{
mas[i][j]=
if (j!=m-1)
cout<<
else
cout<<
}
//Сдвигаем элементы
k=0;
while (k<n)
{
for (i=0;i<m;i++)
{
for (j=0;j<m-1;j++)
{
if (j==0)//Проверка равенства на 0
{
}
if (j%2!=0)//Проверка на нечётность индекса столбца
{
}
if ((j%2==0) && (j!=0))//Проверка индекса столбца на чётность и неравенства нулю
{
}
if (j==(m-2))//Проверка на предпоследний индекс просматриваемого столбца
{
}
}
}
k++;
}
//Вывод на экран нового массива
cout<<"\t\tNEW MASSIV:"<<endl;
for (i=0;i<m;i++)
for (j=0;j<m;j++)
{
if (j!=m-1)
cout<<
else
cout<<
}
}
Задание
2.
#include "stdafx.h"
#include <iostream>//Присоединение библиотеки для возможности использования функций ввода/вывода
#include <stdlib.h>//Присоединение библиотеки для возможности использования функции RAND
using namespace std;
void main()
{
//Инициализация переменных и ввод размера массива
int m,n;//Рабочие переменные
cout<<"\t\tVVEDITE KOL-VO STROK"<<"\n";
cin>>n;//Ввод количества строк
cout<<"\t\tVVEDITE KOL-VO STOLBCOV"<<"\n";