Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Определение переменных программы




Для реализации алгоритма будут нужны такие переменные.

Матрица представляется в памяти как 2-мерний массив (должен быть размещен в статической памяти): int Ar[S][S];

Переменные для представления текущих номеров строки (l) и столбца (r): short l, r;

Переменные для представления граничных номеров столбцов: short r1,r2;

Переменная - модификатор граничных номеров: short dd;

Переменная - текущий член ЛП: short k;

Всем скалярным переменным назначаем тип short, т.к. их значения никак не могут выходить из диапазона -128 - 128.

Разработка текста программы

Текст программы начинаем с включения файла stdio.h и определения макроконстанты S - размера матрицы (хотя по условию задания можно было бы использовать просто константу 9 в тексте программы, определение размера через макроконстанту более соответствует стилю программирования на языке C).

Массив-матрицу Ar объявляем до открытия тела главной функции, что обеспечивает его размещение в статической памяти.

Открываем тело главной функции и объявляем переменные в соответствии с п.5.2. Присваиваем переменным r1, r2, dd, k начальные значения (это можно было сделать и при их объявлении). Открываем цикл перебора строк с изменением l от 0 до S-1 и цикл перебора столбцов с изменением r от 0 до S-1. Внутренний цикл состоит из одного условного оператора, так что нет необходимости брать его тело в операторные скобки. Тело внешнего цикла берется в скобки.

В условном операторе проверяем сразу оба условия (блоки 5 и 6). Поскольку для выхода за пределы должно выполняться хотя бы одно из них, они соединены операцией "ИЛИ".

При выполнении условия значение k записывается в элемент массив с индексами [l,r] и сразу же увеличивается. При невыполнении - в элемент массива записывается 0.

После выхода из внутреннего цикла, но еще в теле внешнего модифицируются значения r1 и r2. Потом условным оператором проверяется условие r1>r2 и, если он выполняется знак модификатора dd меняется на противоположный.

Потом открываются два цикла для вывода. В каждой итерации внутреннего цикла выводится значение одного элемента массива. Формат вывода обеспечивает вывод положительного числа из 2 цифр и пробела перед ним. После каждого выхода из внутреннего цикла выводится символ перехода на новую строку. Таким образом, матрица будет выведена в наглядном представлении. Полный текст программы приведен ниже.

#include <stdio.h>#define S 9int Ar[S][S]; /* матрица */int main(void) { short l, r; /* текущие индексы */ short r1,r2; /* граничные номера столбцов */ short dd; /* модификатор граничных номеров */ short k; /* текущий член ЛП */ /* начальные значения переменных */ r1=1; r2=S-2; dd=1; k=1; for (l=0; l<S; l++) { /* перебор строк */ for (r=0; r<S; r++) /* перебор столбцов */ /* условие ненулевого значения */ if ((r<r1)||(r>r2)) Ar[l][r]=0; else Ar[l][r]=k++; /* конец перебора строк */ /* модификация границ */ r1+=dd; r2-=dd; /* условие перехода в нижнюю часть */ if (r1>r2) dd=-dd; } /* конец перебора столбцов */ /* вывод матрицы */ for (l=0; l<S; l++) { for (r=0; r<S; r++) { printf("%3d",Ar[l][r]); } printf("\n"); } return 0;}

Отладка программы

Форма вывода результатов программы столь наглядна, что по результатам можно убедиться в правильном функционировании программы или - при неправильном функционировании - можно делать выводы о том, у реализации какой именно ветви алгоритма сделана ошибка. При наличии ошибок можно в отладке программы также использовать средства пошаговой отладки, при чем следует контролировать текущие индексы граничные номера и текущее значение модификатора. Наиболее вероятные ошибки - неправильное определение граничных номеров или неправильное определение момента перехода в нижнюю часть матрицы.

Содержание отчета:

1. Постановка задачи для конкретного варианта.

2. Текст программы.

3. Блок-схема алгоритма решения задачи.

4. Результаты тестов.

5. Распечатка результатов работы программы.

 

 

 

 





Поделиться с друзьями:


Дата добавления: 2016-12-18; Мы поможем в написании ваших работ!; просмотров: 375 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Начинайте делать все, что вы можете сделать – и даже то, о чем можете хотя бы мечтать. В смелости гений, сила и магия. © Иоганн Вольфганг Гете
==> читать все изречения...

2335 - | 2134 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.01 с.