Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Билеты на экзамен.docx
Скачиваний:
5
Добавлен:
25.08.2019
Размер:
156.49 Кб
Скачать
  1. Анализ - маркетинг рынка программных средств, спецификация требований к ПП.

  2. Проектирование структуры пп.

  3. Программная реализация - программирование (создание загрузочного модуля).

  4. Тестирование, автономная и комплексная отладка программ.

  5. Документирование пп, подготовка эксплуатационной и технологической документации.

  6. Сопровождение - выход на рынок программных средств, распространение, эксплуатация и сопровождение ПП.

Завершение жизненного цикла  ПП - снятие ПП с продажи, отказ от сопровождения.

  1. Существует большое количество разнообразных задач, требующих программной реализации. В процессе подготовки и компьютерного решения научно-инженерных задач можно выделить следующие этапы:

  • постановка задачи;

  • математическое описание задачи;

  • выбор и обоснование метода решения;

  • алгоритмизация вычислительного процесса;

  • составление программы;

  • отладка программы;

  • решение задачи на ЭВМ и анализ результатов.

Постановка задачиточная формулировка задачи с описанием входной и  выходной информации. На данном этапе формулируется цель решения задачи и подробно описывается ее содержание. Анализируются характер и сущность всех величин, используемых в задаче, и определяются условия, при которых она решается.

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

Математическая модель должна удовлетворять, по крайней мере, двум требованиям: реалистичности и реализуемости. Под реалистичностью понимается правильное отражение моделью наиболее существенных черт исследуемого явления. Реализуемость достигается разумной абстракцией, отвлечением от второстепенных деталей, чтобы свести задачу к проблеме с известным решением.

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

Алгоритмизация вычислительного процесса. На данном этапе составляется алгоритм решения задачи согласно действиям, задаваемым выбранным методом решения. Процесс обработки данных разбивается на отдельные относительно самостоятельные блоки, и устанавливается последовательность выполнения блоков. Разрабатывается блок-схема алгоритма.

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

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

Решение задачи на ПК и анализ результатов. После отладки программы ее можно использовать для решения прикладной задачи. При этом обычно выполняется многократное решение задачи на ПК для различных наборов исходных данных. Получаемые результаты интерпретируются и анализируются специалистом или пользователем, поставившим задачу.

  1. Модель – это объект, который замещает оригинал и отражает наиболее важные для данного исследования  черты свойства оригинала.         

 Классификация моделей:

1. Материальные (натурные) основываются на чем-то объективном, существующем независимо от человеческого сознания (каких-либо телах или процессах). Материальные объекты делятся на:

–         физические (например, автомодели, авиамодели);

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

2. Абстрактные (идеальные) модели, связаны с человеческим мышлением, воображением, восприятием. Они делятся на:

–         вербальные (текстовые) модели - используют последовательности предложений естественного языка для описания той или иной области действительности (например, милицейский протокол, правила дорожного движения);

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

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

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

Целями моделирования могут являться:

- изучение поведения объекта на примере укрупненной его модели  или измельченной;

- прогнозирование будущего состояния или поведения системы;

- постановка экспериментов над моделью с последующей интерпретацией их результатов применительно к моделируемой системе;

- обучение и тренаж специалистов.

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

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

Целями моделирования могут являться:

- изучение поведения объекта на примере укрупненной его модели  или измельченной;

- прогнозирование будущего состояния или поведения системы;

- постановка экспериментов над моделью с последующей интерпретацией их результатов применительно к моделируемой системе;

- обучение и тренаж специалистов.

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

Виды моделирования:

- концептуальное моделирование, при котором совокупность уже известных  представлений об исследуемом объекте или системе истолковывается с помощью некоторых специальных знаков, символов, операций над ними или с помощью естественного или искусственного языков;

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

- структурно-функциональное моделирование, при котором моделями являются схемы (блок-схемы), графики, чертежи, диаграммы, таблицы, рисунки, дополненные специальными правилами их объединения и преобразования;

- математическое (логико-математическое) моделирование, при котором моделирование, включая построение модели, осуществляется средствами математики и логики;

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

Перспективно комбинированное моделирование, позволяющее объединить достоинства названных подходов.

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

Процесс составления алгоритмов называют алгоритмизацией.

Свойства алгоритмов:

дискретность (прерывность). Алгоритм должен представлять процесс решения задачи как последовательное выполнение простых (или ранее определенных) шагов, при этом для выполнения каждого шага требуется конечный отрезок времени;

определенность. Каждое правило алгоритма должно быть четким и однозначным. Благодаря этому свойству выполнение алгоритма носит механический характер и не требует никаких дополнительных указаний или сведений о решаемой задаче;

результативность (или конечность) состоит в том, что за конечное число шагов алгоритм должен приводить к решению задачи или после конечного числа шагов останавливаться из-за невозможности получить решение с выдачей соответствующего сообщения, либо неограниченно продолжаться в течение времени, отведенного для исполнения алгоритма, с выдачей промежуточных результатов;

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

Способы представления алгоритмов

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

  1. Самый простой способ представления алгоритма – словесный, который содержит описание алгоритма на естественном языке

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

В блок-схеме каждому типу действий (вводу исходных данных, вычислению значений выражений, проверке условий и т.п.) соответствует геометрическая фигура, представленная в виде блочного символа. Блочные символы соединяются линиями переходов, определяющими очередность выполнения действий.

  1. Запись алгоритма на языке программирования называется программой на алгоритмическом языке. В этом случае алгоритм представляется в виде последовательности операторов.

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

Процесс составления алгоритмов называют алгоритмизацией.

Базовые алгоритмические конструкции

Логическая структура любого алгоритма может быть представлена комбинацией трех базовых структур: следования (линейная структура), ветвления и  цикла.

  1. Базовая структура «следование» образуется последовательностью действий, следующих одно за другим. Это самый простой вид алгоритмов, его структура изображена на рисунке 11.3.

Базовая структура  «ветвление» обеспечивает выбор одного из альтернативных путей работы алгоритма в зависимости от результата проверки условия (да или нет).

Структура «ветвление» существует в трёх основных вариантах: если-то-иначе (рисунок 11.5.а); если-то (рисунок 11.5.б); выбор-иначе (рисунок 11.5.в).

Базовая структура «цикл» обеспечивает многократное выполнение некоторой совокупности действий. Повторяющаяся совокупность действий называется – телом цикла.

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

Существует три вида циклов:

– цикл с заранее известным числом повторений (цикл с параметром);

– цикл с предусловием (цикл «пока»);

– цикл с постусловием (цикл «до»).

21. Система программирования – часть инструментального программного обеспечения, поддерживающая процесс программирования. Системы программирования представляют собой единство средств статической (инструментальной) и динамической (исполнительной) поддержки. В самом общем случае для создания и выполнения программы на выбранном языке программирования нужно иметь следующие компоненты.

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

2. Транслятор. Исходный текст с помощью программы-транслятора переводится в машинный код и таким образом получается объектный модуль (ОМ) программы, т.е. файл с расширением .obj. Трансляторы делятся на компиляторы и интерпретаторы.

3. Компилятор - программа, которая весь ИМ целиком проверяет на ошибки и при их отсутствии, переводит его в машинные коды, получая тем самым ОМ. При нахождении ошибок на экране появляется соответствующее сообщение. После их исправления, транслятор запускается заново.

В общем случае работа  компилятора (рисунок 11.16) состоит из четырех основных фаз:

1) лексического анализа, в процессе которого на основе исходного модуля опознаются различные символы  и классифицируются как ключевые слова, числовые значения и т.д.;

2) синтаксического анализа, в процессе которого определяются синтаксические соотношения;

3) генерация объектного модуля программы;

4) оптимизация объектного модуля с целью повышения его эффективности.

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

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

Алфавит языка С, C++ включает:

‒ строчные буквы латинского алфавита (a … z);

‒ прописные буквы латинского алфавита (A... Z);

‒ цифры (0  ... 9 );

‒ специальные символы (. , ; + - * / = < > % & ! ( ) { } ^ | ? : [ ] ~ ' " # \ _ и пробел).

 Константа – программный объект, принимающий фиксированное значение, не изменяющееся в процессе исполнения программы.

            Переменная – программный объект, который может менять своё  значение в процессе выполнения программы.

В C, С++ типы данных подразделяются на две группы: простые (скалярные) и составные (структурированные). К простым типам данных (таблица 12.2.1) относятся: целочисленный, вещественный и символьный типы. К структурированным типам данных относятся: строковый и файловый типы, массивы, структуры, перечисление.

Целочисленные переменные и константы могут быть знаковыми и беззнаковыми, для их различения используют модификаторы signed  и unsigned соответственно. Модификатор signed может быть опущен, он подразумевается по умолчанию.

Целочисленные данные на языке С, С++ могут быть представлены в следующих системах счисления:

‒ десятичной (например, 123, 10, 55, 2160);

‒ восьмеричной (начинаются с ноля, например, 012, 0713, 01255);

‒ шестнадцатеричной (начинаются с 0x или 0X, например, 0x12, 0x7D, 0X1A4).

Таблица 12.2.1 – Скалярные типы данных

Идентификатор

типа

Длина,

байт

Диапазон

значений

Целые беззнаковые типы

unsigned char

1

0..255

unsigned int

2

0..65535

unsigned short 

2

0..65535

unsigned long

4

0..4294967295

Целые знаковые типы

char

1

-128..127

int

2

–32768…32767

short 

2

–32768…32767

long

4

-2147483648…2147483647

Вещественные типы

float

4

(3.4E–38..3.4E+38)

double

8

(1.7E–308..1.7E+308)

long double

10

(3.4E–4932..    3.4E+4932)

Операции определяют действия, производимые над операндами.

Опера́нд ‒ аргумент операции. Операндом в простейшем случае является константа или переменная.

Каждая операция имеет условное обозначение ‒ знак операции (символ или комбинация символов). 

По количеству операндов, участвующих в операции, операции подразделяются на: унарные (один операнд), бинарные (два операнда) и тернарные (три операнда)..

Синтаксис унарной операции имеет префиксный вид:

<знак операции> <операнд>

Синтаксис бинарной операции:

<операнд 1> <знак операции> <операнд 2>

Приоритет выполнения операций в С, С++ по убыванию: унарные операции; мультипликативные; аддитивные; сдвиг; <, >, <=, >=; == или !=; &; |; ^; &&; ||; простое и составное высказывание.

Операции, объединённые в одну группу имеют одинаковый приоритет.

Унарные операции, операции присваивания и условная операция имеют ассоциативность «справа налево», т.е. первой будет выполняться операция, знак которой записан правее остальных.

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

Записать математическое выражение  на языке С, С++.

Результат (выражение записанное на С,С++) имеет вид:

                                  (a+b) / (c – d)+e / (f * g).

Математическое выражение

Запись на С, С++

10*x + 3*sqrt(cos(x))

(sin(2*x) – 1)/(pow(x,2) – 1)

fabs(x) + 2*sin(x)/cos(x)

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

Математические выражения записываются по следующим правилам:

‒ запись ведётся в строчку;

‒ нельзя опускать знак умножения между сомножителями.

Приоритет вычисления выражений: (), []; функции; операции.

Из стандартных функций в выражениях чаще других используются математические функции (таблица 12.3.3), содержащиеся в заголовочном файле math.h. При использовании стандартных функций аргумент обязательно заключается в круглые скобки. Основные математические функции С, С++

Математическая

функция

Запись на языке С, С++

Тип

аргумента

Тип результата

x

abs(x)

int

int

fabs(x)

float, double,

double

sqrt(x)

int, double

double

xy

pow(x,y)

double

double

10x

pow10(x)

int

double

ex

exp(x)

int, double

double

ln x

log(x)

int, double

double

lg x

log10(x)

int, double

double

sin x

sin(x)

double

double

cos x

cos(x)

double

double

tg x

tan(x)

double

double

arcsin x

asin(x)

double

double

arcos x

acos(x)

double

double

arctg x

atan(x)

double

double

Запись математических выражений:

Математическое выражение

Запись на С, С++

10*x + 3*sqrt(cos(x))

(sin(2*x) – 1)/(pow(x,2) – 1)

fabs(x) + 2*sin(x)/cos(x)

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

            Команда  выполняют определенные действия и называется оператором языка программирования.

Синтаксически программа состоит из:

‒ директив компилятора;

‒ описательной части;

‒ исполнительной части.

Директивы компилятора дают возможность использовать стандартные функции языка Си. Директива начинается с #include в скобках <> указывается имя заголовочного файла (имя библиотека), который содержит необходимую стандартную функцию языка Си.

Описательная часть содержит: объявления констант, переменных и объявления функций.

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

Синтаксис объявления константы:

const <спецификация типа><список идентификаторов>;

Объявление простой переменной имеет следующий синтаксис:

<спецификация типа><список идентификаторов>;

Исполнительная часть программы (раздел операторов) является основной частью программы  и в общем случае имеет вид:

main()

{

return 0;}

Для форматного ввода-вывода данных скалярных типов и строк используются стандартные функции ввода/вывода, описанные в библиотеке stdio.h.

Программа на С++ имеет вид:

#include<iostream.h>            //включение заголовочного файла ввода-вывода

 

  const float pi =3.14;             //описание константы π

  int R;                                    /*описание переменных: целого типа,

  float Pi, L, S, V;                   вещественного типа*/

 

main()                                     //главная функция

 {

     cout <<" R=";                    // вывод на экран комментария

     cin >>R;                            //ввод значения гипотенузы в целом формате

     Pi=3.14;                             // присвоение значения переменной Pi

     L=2*Pi*R;                        // вычисление значений

     S= Pi*R*R;

     V=4./3.*S*R;

     cout <<'\n'<<"     L="<< L <<"    S="<<S<<'\n';             //вывод значений

     cout <<'\n'<<"    V ="<<V <<'\n';    

     return 0;

   }

  1. Для форматного ввода-вывода данных скалярных типов и строк используются стандартные функции ввода/вывода, описанные в библиотеке stdio.h.

Для вводе используется стандартная функция scanf(), её синтаксис:

scanf (“форматная строка”, список параметров ввода);

Форматная строка заключается в кавычки и может содержать символы трех типов:

‒ обычные символы, которые должны вводиться с клавиатуры в том же виде, в каком они содержатся в форматной строке;

‒ спецификации преобразования, задающие формат ввода, которые начинаются с символа «%» и заканчиваются символом преобразования. Символы преобразования задают тип вводимой переменной: ‘c’ ‒ символ; «d», «i» - десятичное целое типа int; «D», «I» - десятичное целое типа long; «e», «E» - вещественное число в экспоненциальной форме, например, 5.12E-02; «f», «g», «G» - вещественное число с плавающей точкой; «o» («O») - восьмеричное число типа int (long); «x» («X») - 16-ричное число типа int (long); «u» («U») - беззнаковое целое типа int (long); «s» - строка символов; «lf» - вещественное число удвоенной точности;

‒ управляющие символьные константы (например, ‘\n’ - переход к следующей строке).

  1. Условный оператор применяется тогда, когда в зависимости от выполнения или невыполнения некоторого условия процесс следует направить по двум различным ветвям. Условный оператор имеет две формы: полную и сокращенную. В условном операторе используются ключевые слова языка if (если) и else (иначе).

Синтаксис полной формы записи условного оператора: