Студопедия

КАТЕГОРИИ:


Архитектура-(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; Просмотров: 487; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.