Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Умова завдання. Задавши двомірний масив речових даних (матрицю А), реалізувати його обробку, як зазначено у варіанті

Робота з масивами.

Задавши двомірний масив речових даних (матрицю А), реалізувати його обробку, як зазначено у варіанті. Вихідні дані задати самостійно, враховуючи специфіку завдання. У програмі повинні бути передбачені функції введення-виведення елементів масиву А та його обробки. Задана квадратна матриця A розміром 4 x 4, що складається з дійсних елементів. Знайти суму найбільших елементів кожного стовпця матриці та їх координати.

1.4.2. Опис методу рішення

Двовимірний масив - це одновимірний масив, елементами якого є одновимірні масиви. Іншими словами, це набір однотипних даних, що має загальне ім'я, доступ до елементів якого здійснюється по двох індексах. Наочно двовимірний масив зручно представляти у вигляді таблиці, в якій n рядків і m стовпців, а під елементом таблиці, що стоїть в i -у рядку і j -му стовпці розуміють деякий елемент масиву a[i][j].

Рис. 1.9 – Пресдтавлення двовимірного масиву

 

Дійсно, якщо розібратися з тим, що таке a[i] при фіксованому значенні i, то побачимо, що це одновимірний масив, що складається з m елементів, до яких можна звертатися по індексу,: a[i][1], a[i][2],.., a[i][m]. Схематично це уся i -й рядок рядок таблиці. Аналогічно, якщо ми розглянемо одновимірний масив рядків, то зможемо помітити, що це так само двовимірний масив, де кожен окремий елемент - це символ типу char, а a[i] - це одновимірний масив, що представляє окремий рядок початкового одновимірного масиву рядків. Виходячи з ідеї визначення думерного масиву можна визначити рекурентное поняття багатовимірного масиву: n -мерный масив -це одновимірний масив, елементами якого є (n - 1) -мерные масиви. Нескладно здогадатися, що 3-мірний масив візуально можна представити у вигляді куба з осередками (схоже на кубик Рубика), де кожен елемент має вигляд a[i][j][k]. А ось з великою розмірністю виникають складнощі з візуальним представленням, але математична модель ясна.

По-іншому двовимірний масив також називають матрицею, а у тому випадку, коли n=m (число рядків дорівнює числу стовпців) матрицю називають квадратною. У матрицях можна зберігати будь-які табличні дані: зміст ігрового поля (шашки, шахи, Lines і так далі), лабіринти, таблицю суміжності графа, коефіцієнти системи лінійних рівнянь і так далі. Матриці часто використовують для вирішення олімпіадних і математичних завдань. У завданнях табличні дані часто визначаються у вхідному файлі таким чином: спочатку в першому рядку вказуються значення n і m через пропуск, а далі йдуть n рядків по m елементів в кожній, також один від одного відокремлені пропуском і вхідний файл може мати, наприклад, наступний зміст, що зрозуміло відбиває вміст матриці при звичайному перегляді.

Директива #define служить для заміни констант, що часто використовуються, ключових слів, операторів або виразів деякими ідентифікаторами. Ідентифікатори, замінюючі текстові або числові константи, називають іменованими константами. Ідентифікатори, замінюючі фрагменти програм, називають макровизначеннями, причому макровизначення можуть мати аргументи.

Директива #define має дві синтаксичні форми:

#define ідентифікатор текст

#define ідентифікатор (список параметрів) текст

Ця директива замінює усі наступні входження ідентифікатора на текст. Такий процес називається макропідстановкою. Текст може бути будь-яким фрагментом програми на З, а також може бути і відсутнім. У останньому випадку усі екземпляри ідентифікатора видаляються з програми.

Приклад 1:

#define WIDTH 80
#define LENGTH (WIDTH+10)

Ці директиви змінять в тексті програми кожне слово WIDTH на число 80, а кожне слово LENGTH на вираження (80+10) разом з дужками, що оточують його.

Дужки, що містяться в макровизначенні, дозволяють уникнути непорозумінь, пов'язаних з порядком обчислення операцій. Наприклад, за відсутності дужок вираження t=LENGTH*7 буде перетворено у вираження t=80+10*7, а не у вираження t=(80+10)*7, як це виходить за наявності дужок, і в результаті вийде 780, а не 630.

У другій синтаксичній формі в директиві #define є список формальних параметрів, який може містити один або декілька ідентифікаторів, розділених комами. Формальні параметри в тексті макровизначення відмічають позиції на які мають бути підставлені фактичні аргументи макровиклику. Кожен формальний параметр може з'явитися в тексті макровизначення кілька разів.

При макровиклику услід за ідентифікатором записується список фактичних аргументів, кількість яких повинна співпадати з кількістю формальних параметрів.

Приклад 2:

#define MAX((x)>(y))?(x):(y)

- Ця директива замінить фрагменнт

t=MAX(i, s[i]);

- на фрагмент

t=((i)>(s[i])?(i):(s[i]);

Як і в попередньому прикладі, круглі дужки, в які поміщені формальні параметри макровизначення, дозволяють уникнути помилок пов'язаних з неправильним порядком виконання операцій, якщо фактичні аргументи є виразами.

Наприклад, за наявності дужок фрагмент

t=MAX(i&j, s[i]||j);

- буде замінений на фрагменнт

t=((i&j)>(s[i]||j)?(i&j):(s[i]||j);

- а за відсутності дужок - на фрагмент

t=(i&j>s[i]||j)?i&j: s[i]||j;

- у якому умовне вираження обчислюється в абсолютно іншому порядку.

Для змінних, що представляють число з плаваючою точкою використовуються наступні модификаторы-типа: float, double, long double (у деяких реалізаціях мови long double СІ відсутній).

Величина з модификатором-типа float займає 4 байти. З них 1 байт відводиться для знаку, 8 біт для надмірної експоненти і 23 біта для мантиси. Відмітимо, що старший біт мантиси завжди дорівнює 1, тому він не заповнюється, у зв'язку з цим діапазон значень змінної з плаваючою точкою приблизно рівний від 3.14E-38 до 3.14E+38.

<== предыдущая лекция | следующая лекция ==>
Тестування роботи програми | Тестування роботи програми. Опис алгоритму програми
Поделиться с друзьями:


Дата добавления: 2014-01-11; Просмотров: 375; Нарушение авторских прав?; Мы поможем в написании вашей работы!


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



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




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