Основные принципы составления блок-схем и алгоритомов
Лекция, 29 Октября 2013, автор: пользователь скрыл имя
Описание работы
В спецификаторах формата функции printf после символа % можно указывать число, задающее минимальную ширину поля вывода, например, %5d – для целых, %4.2f – для вещественных (означает поле общей шириной 4 символа, две цифры после запятой). Недостающие позиции будут слева заполнены пробелами (если нужно заполнить их нулями, перед шириной поля надо поставить символ '0' , например: %05d ). Если, наоборот, указанных позиций не хватает для вывода целой части числа, то происходит автоматическое расширение поля до нужной ширины.
Файлы: 1 файл
Лекции ОАиП Гуревич (I сем.) №1.doc
— 185.00 Кб (Скачать файл)При этом целая переменная получит значение, равное количеству успешно введенных объектов ввода. Например, после выполнения оператора
n=scanf("%lf%lf%lf", &x,&y,&z);
значение n будет от 0 (ничего не прочтено) до 3 (при успешном вводе).
Отдельные символы вводятся при помощи функции getch(). Причем простой ее вызов - getch(); - организует паузу, при которой система программирования приостановит выполнение программы и будет ждать нажатия любой клавиши. Так поступают в том случае, когда нужно просмотреть какие то результаты работы, при выводе их на экран монитора.
Если же использовать ее в правой части операции присваивания, например:
char c;
. . .
c = getch();
то символьная переменная с получит значение символа (кода) нажатой клавиши.
С началом работы консольной
программы автоматически
Внимание. Ввод данных функциями gets(), getch() выполняется с использованием потока stdin. Если указанная функция не выполняет своих действий (проскакивает), перед ее использованием необходимо очистить поток (буфер) ввода с помощью функции
fflush(stdin);
Отметим, что не гарантируется одновременная работа функций ввода-вывода и потокового ввода-вывода; однако на практике они конфликтуют редко.
5.5. Ввод-вывод в оконных приложениях.
Для ввода-вывода в оконных приложениях C++ Builder'a используются различные компоненты (Memo, Edit, Label и др.) Например, ввод-вывод в Edit осуществляется обычно через операцию присваивания:
Edit1->Text=IntToStr(k);
X:=StrToFloat(Edit2->Text);
а вывод в Memo - через метод Add() :
Memo1->Lines->Add("x="+
При этом обычно используются функции преобразования типов C++ Builder'a:
Функция |
Направление преобразования |
Пример |
StrToInt() |
String à int |
k=StrToInt (Edit1->Text); |
IntToStr() |
int à String |
Edit1->Text= IntToStr(k); |
StrToFloat() |
String à double |
x= StrToFloat (Edit1->Text); |
FloatToStr() |
double à String |
Edit1->Text= FloatToStr(x); |
FloatToStrF() |
double à String |
Edit1->Text=FloatToStrF(x, ffFixed, 15, 8); |
В функции FloatToStrF(), в отличие от функции FloatToStr(), задается максимальное общее количество цифр в числе (которое поэтому лучше задавать побольше, например, 15) и количество цифр после запятой. Второй параметр может принимать лишь одно из нескольких допустимых значений, имеющих смысл, подобный спецификаторам формата printf() (ffFixed - %f, ffExponent - %e, ffGeneral - %g и т.п.).
В русской версии Windows в функциях StrToFloat(), FloatToStr(), FloatToStrF() дробная часть числа отделяется от целой запятой; а в английской версии Windows - точкой.
Советы по программированию
1. Выбирайте тип для переменных с учетом диапазона их возможных значений и требуемой точности представления данных.
2. Старайтесь давать переменным ID (имена), отражающие их назначение.
3. При вводе данных с клавиатуры выводите на экран пояснения: что нужно ввести, т.е. организуйте диалог. Для контроля сразу же после ввода выводите исходные данные на дисплей (хотя бы в процессе отладки).
4. При составлении выражений учитывайте приоритет используемых операций.
5. В функциях ввода/вывода printf и scanf для каждой переменной указывайте спецификацию формата, соответствующую ее типу. Не забывайте ставить '&' перед каждой переменной в функции scanf.
7. При использовании стандартных функций требуется с помощью директивы препроцессора #include подключить к программе соответствующие заголовочные файлы. Установить, какой именно файл необходим, можно с помощью справочной системы.
8. Данные при вводе разделяйте пробелами, символами перевода строки или табуляции, но не запятыми (если в управляющей строке scanf() вы не задали иное).