Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Интегрирование Глава 3.doc
Скачиваний:
3
Добавлен:
12.11.2018
Размер:
986.62 Кб
Скачать
    1. Предмашинная подготовка задачи определения площади круга

Полный вариант создания программного продукта этой задачи (без рассмотрения элементов теории алгоритмического языка) выполним задачей (3.2) определения площади круга.

Постановка задачи

Рассчитать площадь круга в квадратных метрах и квадратных миллиметрах, если его диаметр равен 76,3 см.

Создание математической модели задачи

Исходные данные

(основные)

d = 76,3 см

диаметр круга;

= 3,1416

число Пи;

(дополнительные)

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.

    1. Заключение

Линейный – простейший вычислительный процесс. Назначение – организация последовательного однократного выполнения всех запланированных вычислений задачи. В чистом виде встречается редко. Большинство реальных вычислений – псевдолинейны (используют подпроцессы реализации различных трансцендентных функций).

Изучение линейного процесса – основа получения первоначальных навыков программирования на языке высокого уровня. Рабочий язык – Си/Си++. Основные компоненты – алфавит, элементарные конструкции, выражения, операторы, функции.

Алфавит – совокупность букв, цифр, специальных символов, используемых в языке.

Элементарные конструкции – составные конструкции алгоритмического языка. Типичные представители – ключевые слова, константы, переменные, вызовы функций.

Выражения – совокупности элементарных конструкций, предписываемые задачей. Варианты – арифметические и логические.

Операторы – основные конструкции языка высокого уровня. Программные аналоги конкретных предписаний алгоритма решения задачи.

Функции – базовые конструкции языка Си/Си++. Обеспечивают модульность программ решения задачи.

Структура Си/Си++-программы – заголовок и тело программы. Состав заголовка – комментарии, директивы препроцессора, объявление глобальных переменных.

Структура тела программы – последовательность главной и дополнительных функций. Состав любой функции – ее заголовок и тело.

Тело функции – объявления локальных переменных, операторы, комментарии.

Абсолютное следование сути определения линейных вычислений (однократность выполнения) – причина их малой эффективности для ЭВМ.

В обозримом будущем использование линейных процессов в программировании неизбежно. Залог повышения эффективности их использования – универсальность создаваемого программного продукта (возможность распространения на целый класс однотипных задач).