Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...
Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...
Топ:
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов...
Интересное:
Подходы к решению темы фильма: Существует три основных типа исторического фильма, имеющих между собой много общего...
Что нужно делать при лейкемии: Прежде всего, необходимо выяснить, не страдаете ли вы каким-либо душевным недугом...
Национальное богатство страны и его составляющие: для оценки элементов национального богатства используются...
Дисциплины:
2018-01-04 | 148 |
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].
|
|
История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...
Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...
Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьшения длины пробега и улучшения маневрирования ВС при...
Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!