Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции_по_программированию.doc
Скачиваний:
80
Добавлен:
02.04.2015
Размер:
4.77 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.

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