Студопедия

КАТЕГОРИИ:


Архитектура-(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, b, c, x могут иметь вид:

· общий на все переменные:

 

алгоритм программа     printf("Введите значения a, b, c, x \n"); scanf("%f %f %f %f", &a, &b, &c, &x);     Указание символа \n (перевод строки) в конце запроса организует ввод численных значений указанных переменных отдельной, следующей после запроса, строкой.

 

· конкретный по каждой переменной:

 

алгоритм программа printf("Введите значение a: "); scanf("%f ", &a); printf("Введите значение b: "); scanf("%f ", &b); printf("Введите значение c: "); scanf("%f ", &c); printf("Введите значение x: "); scanf("%f ", &x);   Отсутствие символа \n в конце каждого запроса организует ввод численных значений каждой переменной в конце соответствующей строки. Следовательно, значения вводимых переменных должны быть записаны под программой не строкой, а столбцом.

 

Реализация рассмотренных фрагментов программ выполняется диалогами:

· для общего запроса

Введите значения a, b, c, x (общий запрос программы)

5.7 3.8 -7.89 0.004 <Enter> (ввод данных)

· для запроса по каждой переменной

Введите значение a: 5.7 <Enter> (конкретный запрос-ввод)

Введите значение b: 3.8 <Enter> (конкретный запрос-ввод)

Введите значение c: -7.89 <Enter> (конкретный запрос-ввод)

Введите значение x: 0.004 <Enter> (конкретный запрос-ввод)

 

Варианты ввода массивов

Ввод элементов массива выполняется аналогично вариантам ввода простых переменных:

· стандартно (перечислением всех элементов);

· поэлементно (указанием каждого отдельно).

Реализация указанных вариантов может быть представлена следующими фрагментами алгоритмов и программ:

· стандартный вариант:

алгоритм программа   printf("Введите элементы массива А \n"); scanf("%f %f %f %f %f", &a[0],&a[1], &a[2],&a[3]);     Следовательно, значения вводимых переменных должны быть записаны под программой одной строкой.

· поэлементный вариант:

алгоритм программа     printf("Введите значение a(1): "); scanf("%f ", &a[0]); printf("Введите значение a(2): "); scanf("%f ", &a[1]); printf("Введите значение a(3): "); scanf("%f ", &a[2]); printf("Введите значение a(4): "); scanf("%f ", &a[3]);     Следовательно, значения вводимых переменных должны быть записаны под программой не строкой, а столбцом.    

Реализация представленных фрагментов программы выполняется диалогами:

· при стандартном вводе:

Введите элементы массива A (общий запрос программы)

-4.1 5.3 0.34 93.1 <Enter> (ввод данных)

· при поэлементном вводе:

Введите значение a(1): -4.1 <Enter> (поэлементный запрос-ввод)

Введите значение a(2): 5.3 <Enter> (поэлементный запрос-ввод)

Введите значение a(3): 0.34 <Enter> (поэлементный запрос-ввод)

Введите значение a(4): 93.1 <Enter> (поэлементный запрос-ввод)

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

Фрагменты алгоритма и программы имеют вид:

алгоритм программа     printf("Введите размер " "массива n: "); scanf("%d", &n); for(i=0; i<n; i=i+1) { printf("Введите значение " "a(%d): ", i+1); scanf("%f ", &a[i]); }     Оператор for формирует цикл, запрашивая на каждом шаге текущее значение a(i+1) и организуя его ввод в ячейку элемента массива a[i].  

Реализация фрагмента программы выполняется диалогом:

Введите размер массива n: 4 <Enter> (запрос-ввод)

Введите значение a(1): -4.1 <Enter> (запрос-ввод)

Введите значение a(2): 5.3 <Enter> (запрос-ввод)

Введите значение a(3): 0.34 <Enter> (запрос-ввод)

Введите значение a(4): 93.1 <Enter> (запрос-ввод)

 




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


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


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



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




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