- •1. Основные этапы разработки программных продуктов
- •1.1 Постановка задачи
- •Словесная формулировка
- •Формульная постановка задачи
- •1.2 Создание программного продукта
- •1.2.1.Формирование математической модели
- •Формирование исходных данных
- •Составление расчётных зависимостей
- •Правила формирования математической модели.
- •1.2.2.Алгоритмизация задачи
- •Выбор метода решения
- •Составление алгоритма решения
- •Программирование задачи
- •1.2.3. Реализация программного продукта
- •1.2.4. Работа с результатами
- •1.2.5.Анализ результатов решения
- •1.2.6.Принятие решения
- •1.2.7.Составление технической документации
- •1.3.Полная обработки задачи пользователя
- •1.4.Обеспечение эффективности разработки программных продуктов
- •2.5 Идентификаторы
- •2.6 Описание операций
- •2.6.1 Унарные операции
- •2.6.2 Бинарные операции
- •2.6.3 Пунктуаторы
- •Программирование простых ветвлений
- •4.1.5. Программирование задачи
- •Правила составления и использования
- •4.1.5.2. Операторы условной передачи управления
- •Укороченный оператор условного перехода
- •Правила записи и выполнения
- •Условная операция
- •Технология программирования арифметических циклов
- •Циклы с аналитическим заданием аргумента
- •Постановка задачи
- •Формирование математической модели
- •Выбор метода решения
- •Составление алгоритма
- •Оператор цикла с предусловием
- •Правила записи и выполнения
- •Оператор цикла с постусловием
- •Правила записи и выполнения
- •Оператор пошагового цикла for
- •Правила записи и выполнения
- •Программа по алгоритму цикла с предусловием
- •Программа по алгоритму цикла с постусловием
- •Программа по алгоритму цикла с параметром
- •Циклы с табличным заданием аргумента
- •Описание массивов
- •Описатель имя[размер];
- •Обозначение элементов массива
- •Имя[индекс]
- •Описатель имя[разм_1] …[разм_i]… [разм_n];
- •Постановка задачи
- •Математическая формулировка
- •Выбор метода решения
- •Составление алгоритма решения
- •Алгоритмизация структурой цикла с предусловием
- •Алгоритмизация структурой цикла с постусловием
- •Алгоритмизация структурой цикла с параметром
- •Программирование задачи
- •Описание массивов
- •Обозначение элементов массива
- •Составление программ решения задачи
- •Улучшение качества программных продуктов
- •Организация ввода-вывода Использование укороченных спецификаторов
- •Ввод переменных
- •Вывод переменных
- •Организация ввода в диалоге
- •Варианты ввода массивов
- •Оформление выводимых величин
- •Управление выполнением программ Использование составных присваиваний
- •Выбор устройства вывода
- •Повторение расчётов
- •Приостановка вывода
- •Очистка экрана
- •Позиционирование курсора
- •Пример улучшения качества
- •Программирование с использованием подпрограмм
- •Имя (фактические параметры)
- •Подпрограмма с одним результатом
- •Формирование математической модели
- •Выбор метода решения
- •Составление алгоритма решения
- •Программирование задачи
- •Составление алгоритма решения
- •Программирование задачи
- •Составление алгоритма решения
- •Программирование задачи
- •Подпрограмма с результатом – массивом
- •Постановка задачи
- •Математическая формулировка
- •Выбор метода решения
- •Составление алгоритма решения
- •Программирование задачи
- •Обработка текстовой информации в Си Символьные строки
- •Определение значения символьной строки
- •Массивы строк
- •Ввод строки
- •Выделение памяти
- •Функции ввода символьной строки
- •Функция ввода символьной строки gets( )
- •Функция ввода символьной строки scanf( )
- •Преобразование символьных строк
- •Функция atoi( )
- •Функция atol( )
- •Функции atof( ) и atold( )
- •Методика ввода числовых данных с использованием функции gets( )
- •Вывод строки
- •Вывод строки функциями printf( ) и fprintf( )
- •Вывод строки функциями puts( ) и fputs( )
- •Перевод чисел в формат символьной строки
- •Обработка символьных строк
- •Определение длины строки
- •Объединение строк
- •Копирование строк
- •Сравнение строк
- •Функции по работе с датой и временем.
- •Структуры.
- •Работа с дисками.
- •Ввод-вывод потока.
- •Открытие потока.
- •Объектно−ориентированное программирование
- •Классы ObjectWindows
- •Приложение коды клавиш
- •Краткий справочник по Си
- •Оператор вывода на принтер
- •Структура оператора
- •Структура оператора
- •Структура оператора
- •Библиографический список
Методика ввода числовых данных с использованием функции gets( )
Функции преобразования символьной строки в числовой формат позволяют отказаться от использования в программе функции scanf( ).
Функция ввода gets( ) позволяет вводить числовые данные в формате символьной строки, которая может быть преобразована в соответствующий числовой формат.
Например, фрагмент программы
…
char buf[20];
int d;
float r;
printf(“Введите значение переменной d:”)
gets( buf );
d = atoi( buf );
printf(“Введите значение переменной r:”)
gets( buf );
r = atof( buf );
…
позволяет последовательно ввести значения целой переменной d и вещественной переменной r, посредством символьной строки buf, необходимой для ввода и промежуточного хранения вводимых значений в формате символьной строки.
Вывод строки
Существует два способа вывода символьной строки.
-
использование многоцелевой функции printf( ) или fprintf( );
-
использование функции puts( ) или fputs( ).
Рассмотрим каждый из способов.
Вывод строки функциями printf( ) и fprintf( )
Функция printf( ) (fprintf( )) позволяет выводить различные типы данных из оперативной памяти на экран дисплея (на принтер или в файл), в том числе и символьную строку.
Для вывода строки используется спецификатор %s. В списке выводимых значений в качестве аргумента, соответствующего спецификатору %s, используется указатель на символьную строку.
-
Внимание ! Спецификатор %s требует в качестве соответствующего аргумента указания адреса выводимой строки.
Для вывода других типов переменных функция printf( ) использует не адреса, а значения. Использование адреса при выводе строки обусловлено тем, что функция выводит строку посимвольно. Функция принимает значение адреса и выводит все символы, начиная с символа в ячейке с этим адресом и заканчивая символом находящимся перед ‘\0’.
Если требуется вывести часть строки, то в спецификаторе необходимо указать количество выводимых символов (например, %10s).
Функция printf( ) не выводит каждую символьную строку с новой строки. Для перевода строки необходимо в управляющей строке указать символ новой строки ‘\n’.
Например,
…
char *name = “ЭВМ и вычислительные системы”;
int lec = 54, pr = 72, lab = 72;
printf( “\n Нагрузка по курсу \“%s\”: \n - лекции %d час;\n”
“ - практические занятия %d час;\n”
“ - лабораторные работы %d час.\n”, name, lec, pr, lab);
…
Результаты работы программы:
Нагрузка по курсу "ЭВМ и вычислительные системы":
- лекции 54 час;
- практические занятия 72 час;
- лабораторные работы 72 час.
В качестве аргументов функции printf( ) использованы: управляющая строка, указатель name, переменные lec, pr, lab. Таким образом, для вывода строки используется её начальный адрес, а для вывода целых переменных – их значения.
Функция fprintf( ) аналогична функции printf( ) за исключением того, что позволяет выводить данные не только на экран, но и на принтер или в файл.
Вывод строки функциями puts( ) и fputs( )
Функция puts( ) (fputs( )) позволяет выводить символьную строку из оперативной памяти на экран дисплея (на принтер или в файл).
Прототипы функций описаны в заголовочном файле stdio.h и имеют следующую структуру:
int puts(char *s);
int fputs(char *s, FILE *fp);
Аргументом функции puts( ) является указатель на выводимую символьную строку.
Аргументами функции fputs( ) являются указатель на выводимую символьную строку и указатель на поток вывода. В качестве второго фактического параметра используются стандартные указатели на поток:
-
stdout, предписывающий вывод на экран;
-
stdprn, предписывающий вывод на принтер;
или указатель на поток, связанный с файлом, в который осуществляется вывод.
Функция puts( ) копирует символьную строку, на которую указывает формальный параметр – указатель s, на экран дисплея, добавляя в конце символ новой строки ‘\n’. Функция принимает значение адреса строки и выводит все символы, начиная с этого адреса до символа ‘\0’.
Добавление символа ‘\n’ предписывает перевод курсора на следующую строку экрана после вывода строки. Следовательно, функция puts( ) автоматически переводит строку после вывода.
При успешном завершении функция возвращает неотрицательное значение. В противном случае значение EOF (конец файла).
Функция fputs( ) аналогична функции puts( ) за исключением того, что позволяет выводить строку не только на экран, но и на принтер или в файл. Ещё одно отличие состоит в том, что функция fputs( ) не добавляет в конец выводимой строки символ ‘\n’.
-
Внимание ! Функция fputs( ) не переводит строку после вывода.