close

Вход

Забыли?

вход по аккаунту

?

ТП РГР №2 Айнура

код для вставкиСкачать
 Алматинский университет энергетики и связи
Кафедра инженерной кибернетики
Расчетно-графическая работа № 2 по дисциплине "Технологии программирования" На тему: "Использование функций при работе с массивами"
Вариант-21
Выполнил: студент группы БАУ-10-5
Ташибаева А.Е
Проверил: доцент кафедры ИК Сябина Н.В
Алматы 2011
Содержание
Введение
Помимо стандартных функций, определенных языком си++, и вызываемых различными библиотеками, есть также особый класс функций- пользовательские функции.
Задание 1
Шахматную доску будем представлять символьной матрицей размера 8 8.Даны натуральные p и q (1<=p<=8,1<=q<=8), местоположение ферзя (F) определяет пользователь, задавая его координаты. Выявить поля, находящиеся под угрозой ферзя и отметить их "*", а остальные поля символом 0.Вывести полученный массив на экран.
В данной программе я использовала кроме стандартных функций языка Си++, также пользовательскую функцию Cross()(Ход).Во время выполнения этой функции все 64 клетки шахматной доски проверяются на условие, могут ли они быть побитыми ферзем. Если ячейка находится под угрозой ферзя, то она отмечается '*', если нет- то символом 0.Также хотелось бы отметить, что у функции cross(), нет локальных переменных, то есть я использовала глобальные переменные такие как число строк и столбцов символьной матрицы как в функции, так и в основной программе.Глобальные переменные я описал перед объявлением пользоватльской подпрограммы.
Блок-схема программы
Графическое описание алгоритма решения задачи №1 с помощью Flow-формы
b
Программа
#include<CONIO.H>
#include<MATH.H>
#include<IOSTREAM.H>
int i, j, x, y, p=8, q=8;
char a[8][8];
void cross()
{
if(y>0) {
for(i=y-1;i>=0;i--) {
a[x][i]='*';}}
if(y<7) {
for(i=y+1;i<=7;i++) {
a[x][i]='*'; }}
if(x>0) {
for(i=x-1;i>=0;i--) {
a[i][y]='*'; }}
if(x<7) {
for(i=x+1;i<=7;i++) {
a[i][y]='*';
}}}
void main()
{
clrscr();
cout << "Vvedite stroku, v kotoroy nahoditsya ferz'" << endl;
cin >> x; x--;
cout << "Vvedite stolbec, v kotorom nahoditsya ferz'" << endl;
cin >> y; y--;
cout << endl;
cout << "Tochki ataki ferzya pomecheni zvezdochkami" << endl << endl;
for(i=0;i<p;i++) {
for(j=0;j<q;j++) {
a[i][j]='0'; }}
a[x][y]='F';
cross();
i=x; j=y;
while((i>0)&&(j>0)) {
i--; j--;
a[i][j]='*';}
i=x; j=y;
while((i<7)&&(j<7)) {
i++; j++;
a[i][j]='*';}
i=x; j=y;
while((i>0)&&(j<7)) {
i--; j++;
a[i][j]='*';}
i=x; j=y;
while((i<7)&&(j>0)) {
i++; j--;
a[i][j]='*';}
for(i=0;i<p;i++) {
for(j=0;j<q;j++) {
cout << a[i][j];}
cout << endl;}
getch();}
Результат выполнения программы
Вводим местоположение ферзя.Пусть ферзь располагается на пересечении 4 строки и пятого столбца. Тогда x=4,y=5.Результат программы следующий:
Рассмотрим случаи, когда ферзь находится в крайних положениях шахматной доски, те есть например на пересечении восьмой строки восьмого столбца. Тогда соответственно x=8,y=8.
Результат программы таков:
Задание 2
Используя шифр перестановки, закодировать фразу следующим образом: исходный текст записать в обратном порядке построчно в матрицу, а вывести в вектор по столбцам. Шифр защитить паролем, позволяющим получить исходный текст. При вводе неверного пароля выдать соответствующее сообщение.
Блок-схема программы
Программа:
Результат выполнения программы
Заключение
В данной расчетно-графической работе мною были получены навыки по работе с подпрограммами(функциями и процедурами) для обработки данных данного символьного массива, работы с данными символьного типа( для шифровки фразы, введенной пользователем ).Узнала новую информацию о ASCII- кодах, шифре простой перестановки, когда зашифрованный текст располагается по строкам в обратном порядке, я научилась защищать данные, защитив их паролем.
Список использованной литературы
1. Культин Н.Б С/С++ в задачах и примерах.Петербург, 2002 год
2. Культин-Самоучитель по С++ Builder .СПб.:БХВ-Петербург,2004
3. Ашарина И.В Основы программирования на С и С++.-М:Горячая линия - Телеком,2002.
4. Аляев Ю.А, Козлов О.А.Алгоритмизация и языки программирования Pascal,C++,Visual Basic:Учебно-справочное пособие.-М:Финансы и статистика, 2004.
1
Документ
Категория
Рефераты
Просмотров
133
Размер файла
1 732 Кб
Теги
айнура, ргр
1/--страниц
Пожаловаться на содержимое документа