КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Постановка задачи
Лабораторная работа №2. Представление в памяти массивов и матриц Данные для тестирования Тестирование должно обеспечить проверку работоспособности функций для всех вариантов входных данных. Входные данные, на которых должно проводиться тестирование, сведены в таблицу: вариант src num len dest 1 012345 2 2 23 012345 0 1 0 012345 0 6 012345 2 012345 5 3 5 012345 2 6 2345 012345 0 7 012345 3 012345 8 2 пусто 4 012345 -1 2 пусто 012345 5 0 пусто 012345 5 -1 пусто Текст программы /*************************************************/ /******** Файл LAB1.C **************************/ #include <stdio.h> #define N 80 /**************************************************/ /* Функция выделения подстроки (массивы) */ /*************************************************/ int substr_mas(char src[N],char dest[N],int num,int len){ int i, j; /* проверка случая 4 */ if ((num<0)||(len<=0)) { dest[0]=0; return 0; } /* выход на num-ый символ */ for (i=0; i<=num; i++) /* проверка случая 3 */ if (src[i]=='\0') { dest[0]=0; return 0; } /* перезапись символов */ for (i--, j=0; j<len; j++, i++) { dest[j]=src[i]; /* проверка случая 2 */ if (dest[j]=='\0') return 1; } /* запись признака конца в выходную строку */ dest[j]='\0'; return 1; } /*************************************************/ /* Функция выделение подстроки */ /* (адресная арифметика) */ /************************************************/ int substr_ptr(char *src, char *dest, int num, int len) { /* проверка случая 4 */ if ((num<0)||(len<=0)) return dest[0]=0; /* выход на num-ый символ или на конец строки */ while (num-- && *src++); /* проверка случая 3 */ if (!num) return dest[0]=0; /* перезапись символов */ while (len-- && *src) *dest++=*src++; /* запись признака конца в выходную строку */ *dest=0; return 1; } /*************************************************/ main() { char ss[N], dd[N]; int n, l; clrscr(); printf("Вводите строку:\n"); gets(ss); printf("начало="); scanf("%d",&n); printf("длина="); scanf("%d",&l); printf("Массивы:\n"); if (substr_mas(ss,dd,n,l)) printf(">>%s<<\n>>%s<<\n",ss,dd); else printf("Ошибка! >>%s<<\n",dd); dd[0]='\0'; printf("Адресная арифметика:\n"); if (substr_ptr(ss,dd,n,l)) printf(">>%s<<\n>>%s<<\n",ss,dd); else printf("Ошибка! >>%s<<\n",dd); getch(); } : Цель работы Получение практических навыков в использовании указателей и динамических объектов в языке C, создание модульных программ и обеспечение инкапсуляции. Для разряженной матрицы целых чисел в соответствии с индивидуальным заданием создать модуль доступа к ней, у котором обеспечить экономию памяти при размещении данных. Индивидуальные задания 1 Все нулевые элементы размещены в левой части матрицы 2 Все нулевые элементы размещены в правой части матрицы 3 Все нулевые элементы размещены выше главной диагонали 4 Все нулевые элементы размещены в верхней части матрицы 5 Все нулевые элементы размещены в нижней части матрицы 6 Все элементы нечетных строк — нулевые 7 Все элементы четных строк — нулевые 8 Все элементы нечетных столбцов — нулевые 9 Все элементы четных столбцов — нулевые 10 Все нулевые элементы размещены в шахматном порядке, начиная с 1-го элемента 1-й строки 11 Все нулевые элементы размещены в шахматном порядке, начиная со 2-го элемента 1-й строки 12 Все нулевые элементы размещены на местах с четными индексами строк и столбцов 13 Все нулевые элементы размещены на местах с нечетными индексами строк и столбцов 14 Все нулевые элементы размещены выше главной диагонали на нечетных строках и ниже главной диагонали — на четных 15 Все нулевые элементы размещены ниже главной диагонали на нечетных строках и выше главной диагонали — на четных 16 Все нулевые элементы размещены на главной диагонали, в первых 3 строках выше диагонали и в последних 3 строках ниже диагонали 17 Все нулевые элементы размещены на главной диагонали и в верхней половине участка выше диагонали 18 Все нулевые элементы размещены на главной диагонали и в нижней половине участка ниже диагонали 19 Все нулевые элементы размещены в верхней и нижней четвертях матрицы (главная и побочная диагонали делят матрицу на четверти) 20 Все нулевые элементы размещены в левой и правой четвертях матрицы (главная и побочная диагонали делят матрицу на четверти) 21 Все нулевые элементы размещены в левой и верхней четвертях матрицы (главная и побочная диагонали делят матрицу на четверти) 22 Все нулевые элементы размещены на строках, индексы которых кратны 3 23 Все нулевые элементы размещены на столбцах, индексы которых кратны 3 24 Все нулевые элементы размещены на строках, индексы которых кратны 4 25 Все нулевые элементы размещены на столбцах, индексы которых кратны 4 26 Все нулевые элементы размещены попарно в шахматном порядке (сначала 2 нулевых) 27 Матрица поделена диагоналями на 4 треугольники, элементы верхнего и нижнего треугольников нулевые 28 Матрица поделена диагоналями на 4 треугольники, элементы левого и правого треугольников нулевые 29 Матрица поделена диагоналями на 4 треугольника, элементы правого и нижнего треугольников нулевые 30 Все нулевые элементы размещены квадратами 2х2 в шахматном порядке Исполнителю самому надлежит выбрать, будут ли начинаться индексы в матрице с 0 или с 1.
Дата добавления: 2017-02-01; Просмотров: 505; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |