Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...
Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...
Топ:
Эволюция кровеносной системы позвоночных животных: Биологическая эволюция – необратимый процесс исторического развития живой природы...
Основы обеспечения единства измерений: Обеспечение единства измерений - деятельность метрологических служб, направленная на достижение...
История развития методов оптимизации: теорема Куна-Таккера, метод Лагранжа, роль выпуклости в оптимизации...
Интересное:
Влияние предпринимательской среды на эффективное функционирование предприятия: Предпринимательская среда – это совокупность внешних и внутренних факторов, оказывающих влияние на функционирование фирмы...
Средства для ингаляционного наркоза: Наркоз наступает в результате вдыхания (ингаляции) средств, которое осуществляют или с помощью маски...
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
Дисциплины:
2018-01-04 | 145 |
5.00
из
|
Заказать работу |
|
|
Указанные выше программа всё ещё обладает тем недостатком, что для получения суммы других чисел необходимо запускать её заново.
Итак, это уже вторая программа, имеющая существенные недостатки. Это говорит о том, что проектирование программы было начато неправильно: вместо того, чтобы кидаться сразу писать текст на языке программирования необходимо сначала четко осознать потребительские свойства и алгоритм будущего программного продукта.
Решению этой задачи способствует проектирование схемы алгоритма (рис. 2). Правила составления таких схем описаны в разделе 5. Пример весьма условный, поскольку программа тривиальная. В реальных случаях не следует расписывать схему вплоть до каждого оператора. Схема алгоритма должна быть укрупненной и помещаться на один лист формата А4.
Зададимся вопросом: чем же так замечательны схемы алгоритмов и почему необходимо начинать проектирование именно с них?
Основным преимуществом схем алгоритма является языконезависимость. Это означает, что одна и та же схема может быть реализована практически на любом языке программирования.
Так же схема алгоритма может показать общие черты предполагаемой программы, не вдаваясь в подробности. Таким образом, можно выявить общую функциональность схемы, не отвлекаясь на излишнюю информацию и подробности, присущие конкретному языку и конкретной реализации. Важно то, что эта общая функциональность далее отображается на конкретные функции языка программирования и, поэтому, проектирование схемы алгоритма – это первый этап проектирования структуры программной системы.
Отличительная особенность алгоритма заключается в циклическом исполнении основного фрагмента программы. Алгоритмы этого типа называют циклическими.
|
Ниже приведен текст программы, спроектированный по схеме алгоритма, показанной на рис. 2.
#include <stdio.h>
#include <conio.h>
void main(void)
{ // Программа суммирования двух чисел с циклическим повторением
int a, b, c;
char cont;
clrscr(); // Очистка экрана
do
{ // Циклическое повторение суммирования двух чисел
printf("Введите два числа:\n");
scanf("%d %d", &a, &b); // Последний введенный символ - '\n'
c = a + b;
printf("Сумма = %d\n", c);
puts("Хотите продолжать? (y/n)");
fflush(stdin); // Очистка stdin от последнего
// введенного символа '\n'
scanf("%c", &cont);
} while(!(cont=='n'|| cont=='N'));
}
В данной программе жирным выделены места отличия от предыдущего варианта. Начнём разбор изменений по порядку.
Строка #include <conio.h> осуществляет подключение новой библиотеки, которую мы не использовали ранее. Она нам пригодится в дальнейшем в этой программе.
В строке char cont; осуществляется ввод переменной для хранения символов.
Строка clrscr(); // Очистка экрана говорит сама за себя: именно этой функцией осуществляется очистка экрана. Именно для неё мы и подключали дополнительную библиотеку.
Далее начинается конструкция, которую ни в коем случае нельзя воспринимать как отдельную строку – это цикл. Он состоит как минимум из 2-х (в данном случае из 3-х) строк:
do
{ // Циклическое повторение суммирования двух чисел
и
} while(!(cont=='n'|| cont=='N'));
Данная конструкция предназначена для циклического выполнения того кода, который заключён между первой и второй частью. Выполнение кода повторяется пока истинно значение логического выражения внутри скобок while(…), то есть до тех пор пока не (!) введен символ 'n' или 'N'. Операторы! и || являются операторами булевой алгебры. Они означают НЕ и ИЛИ соответственно.
Строка puts("Хотите продолжать? (y/n)"); выводит поясняющую надпись. Понятный и удобный интерфейс, как уже было сказано ранее, является важной составляющей частью любой программы.
Строкой fflush(stdin); мы сообщаем компилятору о необходимости очистки входного потока. Это сделано в связи с наличием буфера входного потока, который сохраняет все нажатые символы до момента пока они не будут востребованы. В данном случае, при вводе чисел в буфере клавиатуры остался символ ‘\n’. Это символ перевода каретки, который остался после нажатия клавиши [Enter].
|
После очистки буфера можно быть совершенно уверенным, что в строке scanf("%c", &cont); мы получим то, что хотел нам передать пользователь, а именно один символ. Считываем мы его в переменную cont; %c в данном случае означает символьную переменную.
Итог
Мы спроектировали программу Вашей лабораторной работы №1. Не правда ли, текст программы на языке С выглядит просто и понятно для человека-проектировщика. Простота и наглядность текста – это то, к чему Вы и в дальнейшем должны стремиться.
Однако, следует обратить особое внимание, что язык С – язык профессионального программирования и, поэтому, содержит массу средств выражения алгоритмов, изощренных деталей и нюансов, делающих его эффективным с точки зрение объема памяти и скорости выполнения результирующей программы.
Настоящее пособие не призвано заменять какую-либо книгу, подробно описывающую язык С. Язык программирования следует изучать по оригиналу (такому как [1]) самостоятельно, что Вы и должны уже сейчас начать делать. А задача преподавателей, читающих лекции и ведущих практические занятия как раз и заключается в том, чтобы помочь Вам разобраться во всех тонкостях предмета. Если Вы чувствуете трудности в освоении языка, то целесообразно воспользоваться учебником [2].
|
|
Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...
Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...
Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!