
- •Технология программирования линейных процессов
- •Постановка задачи
- •Формирование математической модели
- •Выбор метода решения
- •Составление алгоритма решения
- •Программирование задачи
- •Ключевые слова
- •Константы
- •Целые константы
- •Вещественные константы
- •Текстовые константы
- •Переменные
- •Правила записи и использования оператора
- •Функции. Вызовы функций
- •Арифметические выражения
- •Правила записи и вычисления арифметических выражений
- •Оператор присваивания
- •Правила составления и использования
- •Операторы ввода-вывода
- •Оператор ввода
- •Правила составления и выполнения оператора ввода
- •Оператор вывода на дисплей
- •Правила составления и выполнения оператора вывода
- •Оператор вывода в поток
- •Организация ввода-вывода переменных
- •Ввод переменных
- •Вывод переменных
- •Заголовок программы
- •Тело программы
- •Поэлементная структура простейшей программы
- •Предмашинная подготовка задачи определения площади круга
- •Постановка задачи
- •Создание математической модели задачи
- •Выбор метода решения
- •Составление алгоритма решения
- •Программирование задачи
- •Заключение
- •Вопросы для контроля
-
Предмашинная подготовка задачи определения площади круга
Полный вариант создания программного продукта этой задачи (без рассмотрения элементов теории алгоритмического языка) выполним задачей (3.2) определения площади круга.
Постановка задачи
Рассчитать площадь круга в квадратных метрах и квадратных миллиметрах, если его диаметр равен 76,3 см.
Создание математической модели задачи
Исходные данные
(основные)
d = 76,3 см |
диаметр круга; |
|
|
число Пи; |
|
(дополнительные) |
|
|
kм
=
|
коэффициент перевода сантиметров в метры; |
|
kмм = 10 мм/см |
коэффициент перевода сантиметров в миллиметры. |
Расчётные зависимости
|
[ |
диаметр круга, м; |
|
[ |
диаметр круга, мм; |
|
[ |
площадь круга, м2; |
|
[ |
площадь круга, мм2. |
Выбор метода решения
Анализ математической формулировки позволяет сделать вывод, что решение сводится к последовательному однократному выполнению небольшого количества математических зависимостей, не содержащих нестандартных трансцендентных функций. Следовательно, в качестве метода решения необходим простой линейный вычислительный процесс.
Составление алгоритма решения
Анализ полученной математической модели (достаточно простой) и выбранного метода решения (простейшего) позволяет выполнить графическую схему алгоритма решения в один шаг (рис. 3.14).
Рис. 3.14. Схема алгоритма задачи о площади круга
Программирование задачи
Идентификация переменных представлена табл. 3.20.
Таблица 3.20
Обозначение в алгоритме |
d |
|
kМ |
kММ |
dМ |
dММ |
SМ |
SММ |
Обозначение в программе |
d |
PI |
km |
kmm |
dm |
dmm |
sm |
smm |
С учётом таблицы идентификации на основании схемы алгоритма запишем программу решения задачи (предписываемый блоком 2 ввод переменной PI выполним не напрямую – оператором ввода, а с помощью заменяющей директивы):
#include<stdio.h> /* включающие */
#include<stdlib.h> /* директивы */
#include<math.h> /* препроцессора */
#define PI 3.1416 /* заменяющая директива препроцессора */
main( )
{
float d, km, kmm, /* описание локальных */
dm, dmm, sm, smm; /* переменных */
scanf(“%4f%5e%3f”, &d, &km, &kmm);
fprintf(stdout,“\nd=%5.2f PI=%6.4f km=%7.2e kmm=%4.1f”, d,PI,km,kmm);
dm=d*km;
dmm=d*kmm;
sm=PI*pow(dm/2.,2);
smm=PI*pow(dmm/2.,2);
fprintf(stdout,“\n dm=%8.4f dmm=%8.1f sm=%8.4f”
“smm=%8.1f \n”, dm, dmm, sm, smm);
}
76.31.e-210.
Последняя строка, под закрывающей программу фигурной скобкой, задаёт численные значения вводимых оператором scanf переменных.
Результаты решения представлены в приложении 3.2.
-
Заключение
Линейный – простейший вычислительный процесс. Назначение – организация последовательного однократного выполнения всех запланированных вычислений задачи. В чистом виде встречается редко. Большинство реальных вычислений – псевдолинейны (используют подпроцессы реализации различных трансцендентных функций).
Изучение линейного процесса – основа получения первоначальных навыков программирования на языке высокого уровня. Рабочий язык – Си/Си++. Основные компоненты – алфавит, элементарные конструкции, выражения, операторы, функции.
Алфавит – совокупность букв, цифр, специальных символов, используемых в языке.
Элементарные конструкции – составные конструкции алгоритмического языка. Типичные представители – ключевые слова, константы, переменные, вызовы функций.
Выражения – совокупности элементарных конструкций, предписываемые задачей. Варианты – арифметические и логические.
Операторы – основные конструкции языка высокого уровня. Программные аналоги конкретных предписаний алгоритма решения задачи.
Функции – базовые конструкции языка Си/Си++. Обеспечивают модульность программ решения задачи.
Структура Си/Си++-программы – заголовок и тело программы. Состав заголовка – комментарии, директивы препроцессора, объявление глобальных переменных.
Структура тела программы – последовательность главной и дополнительных функций. Состав любой функции – ее заголовок и тело.
Тело функции – объявления локальных переменных, операторы, комментарии.
Абсолютное следование сути определения линейных вычислений (однократность выполнения) – причина их малой эффективности для ЭВМ.
В обозримом будущем использование линейных процессов в программировании неизбежно. Залог повышения эффективности их использования – универсальность создаваемого программного продукта (возможность распространения на целый класс однотипных задач).