Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции программирование.doc
Скачиваний:
37
Добавлен:
05.11.2018
Размер:
4.73 Mб
Скачать

Программирование задачи

Программирование позволяет преобразовать полученный алгоритм в форму доступную ЭВМ с помощью системы программирования.

Система программирования – набор средств представления формализованной записи алгоритма решения задачи пользователя в виде доступном ЭВМ. Основное назначение системы программирования – создание программы решения задачи пользователя на выбранном им алгоритмическом языке.

Программирование – завершающий этап предмашинной полготовки, на котором удобный человеку алгоритм решения задачи преобразуется в запись, понятную для ЭВМ.

Этот этап выполняет пользователь-программист. Результатом работы является программа решения задачи.

Программа – алгоритм решения, записанный на доступном ЭВМ языке.

Вначале под программированием понимали непосредственный перевод человеком математического языка алгоритма на язык конкретной ЭВМ. При этом требовалось детализировать алгоритм до совокупности арифметических операций, а затем каждую из них записать в виде машинной команды, аналогично работе с калькулятором. Такое программирование приводило к получению малонаглядных программ большого объёма и требовало значительных затрат времени.

Труд программистов существенно облегчился созданием специальных (входных) языков программирования, промежуточных между математическим языком алгоритма и машинными командами ЭВМ.

Входными (алгоритмическими) называются языки эффективного программирования алгоритмов решения.

Преобразование математических предписаний алгоритма в машинную программу при использовании алгоритмического языка имеет вид (рис. 2.5).

Рис. 1.5. Схема преобразования записей алгоритма в машинную программу

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

Входные языки могут быть высокого и низкого уровня. Уровень определяется степенью близости к математическому или машинному языку.

Языки высокого уровня существенно облегчают труд программистов, особенно непрофессионалов. Основными компонентами таких языков являются операторы.

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

Программа на языке высокого уровня – это последовательность операторов, определяющих путь решения задачи.

Операторы выполняются ЭВМ в порядке расположения в программе. Такой порядок называется естественным.

Языки высокого уровня являются проблемно-ориентированными (например, на инженерно-технические или экономические задачи), либо универсальными. Типичные представители проблемно-ориентированных (Фортран, Кобол) и универсальных (Паскаль, Си) языков широко используются программистами любой квалификации – от начинающих, до профессионалов.

Языки низкого уровня (ассемблеры) относятся к машинно-ориентированным. Их основные конструкции аналогичны машинным командам, записанным в удобном для человека виде. Ассемблеры позволяют эффективно использовать внутренние возможности ЭВМ и необходимы, как правило, программистам-профессионалам.

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

Каждый входной язык имеет собственные правила формирования операторов и их элементов. В Си, например, для обозначения переменных используют латинский алфавит.

Поэтому, до начала записи программы необходимо выполнить идентификацию обозначений переменных в алгоритме и будущей программе. Идентификация переменных оформляется в виде горизонтальной таблицы. Например, для задачи о картофеле (пример 2.3) она имеет вид (табл. 2.6).

Таблица 2.6

Наименование в алгоритме

1

ПД

ПШ

УБ

ПО

Наименование в программе

2

pd

psh

ub

po

Окончание табл. 2.6

1

k1

k2

k3

k4

ПП

МВ

МП

МТ

2

k1

k2

k3

k4

pp

mv

mp

mt

С учётом таблицы идентификации, алгоритма и правил составления программы выполнен простейший пример записи на Си алгоритма решения задачи о картофеле:

#include<stdio.h>

#include<math.h>

main( )

{

float pd, psh, ub, po,

k1, k2, k3, k4;

float pp, mv, mp, mt;

scanf("%3f%4f%4f%4f",&pd, &psh, &ub, &po);

scanf("%5f%5e%3f%4f",&k1, &k2, &k3, &k4);

fprintf(stdprn,"%3.1f %4.0f %4.0f %4.1f\n",pd, psh, ub, po);

fprintf(stdprn,"%5.0f %5.0e %3.1f %4.0f\n",k1, k2, k3, k4);

pp=(pd*k1*psh)*k2;

mv=ub*pp*k3;

mp=mv*po/k4;

mt=mv-mp;

fprintf(stdprn,"%f %f %f %f\n",pp, mv, mp, mt);

}

1.2750.180.12.7

1000.1.e-40.1100.

Пояснения к программе.

Первые две строки предписывают подключение к программе пользователя необходимых стандартных функций из внешних файлов stdio.h и math.h.

Третья строка – заголовок тела программы.

Четвёртая – признак начала тела программы.

Строки 5-7 – описатели типов всех данных задачи.

Строка 8 – ввод основных исходных данных.

Строка 9– ввод вспомогательных исходных данных (коэффициентов).

Строка 10 –распечатка введённых данных.

Строка 11 – распечатка коэффициентов.

Строки 12-15 – расчёт промежуточных и конечного данных.

Строка 16 – распечатка рассчитанных данных.

Строка 17 – признак окончания тела программы.

Последние две строки в программу не входят. В них записаны численные значения переменных, указанных в операторах ввода.

Рекомендации по улучшению качества программ даны в разд. 2.6.

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