Основные принципы составления блок-схем и алгоритомов

Автор работы: Пользователь скрыл имя, 29 Октября 2013 в 12:08, лекция

Описание работы

В спецификаторах формата функции 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();

то символьная переменная с получит значение символа (кода) нажатой клавиши.

С началом работы консольной программы автоматически открываются  стандартные потоки для ввода данных – stdin, который по умолчанию связан с клавиатурой, и вывод – stdout, связанный с экраном монитора.

Внимание. Ввод данных функциями 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="+FloatToStrF(x, ffFixed, 15, 7));

 

При этом обычно используются функции преобразования типов 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() вы не задали иное).


Информация о работе Основные принципы составления блок-схем и алгоритомов