- Lektsia - бесплатные рефераты, доклады, курсовые работы, контрольные и дипломы для студентов - https://lektsia.info -

Базовые понятия пpогpаммиpования. Действие, пpоцесс, алгоритм, программа.



Базовые понятия пpогpаммиpования. Действие, пpоцесс, алгоритм, программа.

Программирование - это способ решения задач с помощью ПК.

Задача- это вопрос, на который нужно ответить, или требование, которое нужно выполнить, опираясь на те условия и учитывая те ограничения, которые указаны в задаче.

1.Действие-совершается неким объектом и приводит к опр результату( характер, время)

Самое важное понятие - ДЕЙСТВИЕ. Действие совершается над объектом и приводит к определенному результату. Если действие можно разложить на составные части, то оно называется ПРОЦЕССОМ. Если нет - это элементарное действие.

2. Процесс – действие, которое возможно разложить на элементарные действия.

 


 

Последовательное( одно за другим) параллельное( одновременно)

ПРОЦЕССОРОМ наз. исполнитель, который выполняет элементарные действия согласно инструкциям (человек, автомат, ЭВМ).

3. Каждое действие можно описать с помощью языка или системы формул. АЛГОРИТМ- это описание процесса, т.е. описание последовательности элементарных действий, приводящих к определенному результату. Каждое элементарное действие наз. инструкцией.

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

Существует несколько уровней ЯП. Нижний уровень - внутренний язык машины (машинный код: 0 и 1). Программа на ЯП высокого уровня может быть введена в машину, но не может быть выполнена. Программа, которая переводит (транслирует) программу с языка высокого уровня на внутренний язык машины, называется транслятор: компилятор или интерпретатор.

Компилятор - программа, которая транслирует код с языка высокого уровня на язык машины: сначала перевод, потом выполнение программы (Паскаль).

Интерпретаторпереводит каждое действие и тут же выполняет, пооператорно (Basic).

2. Функциональная структура ЭВМ. Основные устройства ЭВМ, их функциональные характеристики.

Схема:

Входные данные (устройство ввода) -> Память (программа)(внутренние данные) -> Выходные данные (устройство вывода). К памяти две стрелки <-> Процессор.

Две главные компоненты ЭВМ:

1) ПАМЯТЬ (запоминающее устройство). В памяти в закодированном виде содержатся объекты, над которыми производятся действия. Эти закодированные объекты наз. данными. Основные характеристики памяти:

- емкость (размер);

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

2) ПРОЦЕССОР - это устройство, которое выполняет 2 основные функции:

- производит действия над данными;

- управляет последовательностью действий в программах.

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

Т.о. память играет роль "камеры хранения" для процессора, причем она используется как для хранения программы, так и для хранения данных.

Внутренние данные, обрабатываемые программой, состоят из входных, выходных и промежуточных данных.

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

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

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

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

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

КОНСТАНТА - это постоянная величина, которая определяется своим значением.

ПЕРЕМЕННАЯ - величина, значение которой может меняться в процессе вычислений.

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

Тип константы определяется формой ее записи. Тип переменной определяется множеством значений, которые она может принимать.

Основными типами, применяемыми в машинных алгоритмах, являются цел, вещ, лог и лит.

Значениями целых переменных являются числа: 0, 1, -1, 2, -2,..., которые в памяти машины представляются точно.

Значениями вещественных переменных являются действительные числа, записываемые в виде десятичных дробей: 0.5, 1.2*10^6. Вещественные числа в памяти представлены с округлением.

Значениями логических переменных являются логические значения: истина (1) и ложь (0).

Значениями литерных переменных являются литеры или цепочки литер из определенных алфавитов - русского, латинского и тп: 'упчк!!!11', 'х='.

При размещении в памяти машины каждой константе и переменной выделяется отдельный участок памяти. Имя переменной является адресом этого участка.

Каждая инструкция программы также занимает участок памяти, длина которого зависит от вида инструкции.

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

Основным свойством этих типов данных является неделимость их значений. Каждое значение есть объект, не распадающийся на компоненты. Такие объекты в памяти машины представлены простыми переменными.

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

Требования к качеству программного продукта. Основные критерии качества.

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

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

1. Работоспособность - возможность выполнения программы на имеющейся машине.

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

3. Надежность - отсутствие отказов при выполнении программы даже для неправильно закодированных или недопустимых данных.

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

5. Документированность - наличие инструкции по пользованию и описаний внутренней логики программы.

6. Мобильность - независимость программы от конкретной реализации.

7. Эргономичность - программа позволяет минимизировать усилия пользователя по подготовке исходных данных, обработке данных и оценке полученных результатов.

8. Читабельность - программа должна быть понятной.

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

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

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

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

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

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

Исполнение программы.

Первые 4 этапа выполняются последовательно. Пятый этап распределяется по всем этапам - каждый завершается составлением документации.

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

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

Технология структурного программирования:

1. Нисходящее проектирование алгоритмов и данных.

2. Строгая последовательность этапов программирования.

3. Выполнение требований к качеству продукта.

Ввод данных

Для ввода исходных данных чаще всего используется процедура ReadLn:

ReadLn(A1,A2,...AK);

Процедура производит чтение К значений исходных данных и присваивает эти значения переменным А1, А2, ..., АК.

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

Значения исходных данных могут отделяться друг от друга пробелами и нажатием клавиш табуляции и Enter.

Не допускается разделение вводимых чисел запятыми!

Repeat

<оператор #1>;
<оператор #2>;
<оператор #3>;
. . .

Until <условие>

Читается так: "Выполнять оператор #1, оператор #2. : до выполнения условия".

Цикл ПОКА:

while — это цикл, в котором условие стоит перед телом. Причем тело цикла выполняется тогда и только тогда, когда условие true; как только условие становится false, выполнение цикла прекращается.

While имеет формат:

while < условие> do<оператор 1>; {Пока … делай ….}

Данный цикл подходит только для одного оператора, если же вы хотите использовать несколько операторов в своем коде, вам следует заключить их в операторные скобки — beginи end; .

 

 

21. Реализация параметрического цикла в языке Паскаль. Синтаксис и семантика, ограничения при использовании.

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

Операторы цикла используются для многогратного повторения входящих в состав операторов. В языке Турбо паскаль различают операторы цикла типа арифметической прогрессии (оператор цикла со счетчиком FOR) с шагом +1 или -1 и операторы цикла итерационного типа (While и Repeat)

 

Оператор цикла типа арифметической прогрессии используется, если заранее известно количество повторений цикла и шаг изменния параметра цикла +1 или -1.

 

For<параметр цикла>:=<выражение1>to <выражение 2> do <оператор(тело цикла>; - шаг изменения параметра цикла +1

Downto - -1

Var f1:text

Begin

clrscr;

assign(f1,'file.txt');

reset(f1);

Процедура ввода массива может иметь разную степень универсальности

1) инициализация файлов и ввод длины массива происходит в главной программе;

(как в приведенном ниже примере); а ввод массива – в процедуре;

{вход: f– имя ф.п.,n – длина массива; выход: X - массив}

Procedure Input1_mas (var f : text; n : ind; var X : mas);

2) инициализация файлов происходит в главной программе, а ввод длины массива и самого массива – в процедуре;

{вход: f– имя ф.п.,выход:n – длина массива; X - массив}

Procedure Input2_mas (var f: text; var n :ind; var X : mas);

3) в главной программе вводятся внешние имена файлов, а инициализация файлов и ввод длины массива и самого массива – в процедуре;

{вход: Namef– внешнее имя файла,выход:n – длина массива; X - массив}

Procedure Input3_mas (Namef : str8; var n : ind; var X : mas);

4) в процедуре выполняются все операции: вводятся внешние имена файлов, инициализация файлов и ввод длины массива и самого массива

{вход: -- ,выход:n – длина массива; X - массив}

Procedure Input4_mas (var n : ind; var X : mas);

Так как фактический (реальный) массив определяется внешним именем файла Namefи длиной n массива, то именно этими переменными желательно управлять в главной программе. С этой точки зрения наиболее предпочтителен следующий вариант:

5) в главной программе вводятся внешние имена файлов и длины массива, а инициализация файлов и ввод самого массива – в процедуре;

{вход: Namef– внешнее имя файла,n – длина массива; выход: X - массив}

Procedure Input5_mas (Namef : str8; n : ind; var X : mas);

Базовые понятия пpогpаммиpования. Действие, пpоцесс, алгоритм, программа.

Программирование - это способ решения задач с помощью ПК.

Задача- это вопрос, на который нужно ответить, или требование, которое нужно выполнить, опираясь на те условия и учитывая те ограничения, которые указаны в задаче.

1.Действие-совершается неким объектом и приводит к опр результату( характер, время)

Самое важное понятие - ДЕЙСТВИЕ. Действие совершается над объектом и приводит к определенному результату. Если действие можно разложить на составные части, то оно называется ПРОЦЕССОМ. Если нет - это элементарное действие.

2. Процесс – действие, которое возможно разложить на элементарные действия.

 


 

Последовательное( одно за другим) параллельное( одновременно)

ПРОЦЕССОРОМ наз. исполнитель, который выполняет элементарные действия согласно инструкциям (человек, автомат, ЭВМ).

3. Каждое действие можно описать с помощью языка или системы формул. АЛГОРИТМ- это описание процесса, т.е. описание последовательности элементарных действий, приводящих к определенному результату. Каждое элементарное действие наз. инструкцией.

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

Существует несколько уровней ЯП. Нижний уровень - внутренний язык машины (машинный код: 0 и 1). Программа на ЯП высокого уровня может быть введена в машину, но не может быть выполнена. Программа, которая переводит (транслирует) программу с языка высокого уровня на внутренний язык машины, называется транслятор: компилятор или интерпретатор.

Компилятор - программа, которая транслирует код с языка высокого уровня на язык машины: сначала перевод, потом выполнение программы (Паскаль).

Интерпретаторпереводит каждое действие и тут же выполняет, пооператорно (Basic).

2. Функциональная структура ЭВМ. Основные устройства ЭВМ, их функциональные характеристики.

Схема:

Входные данные (устройство ввода) -> Память (программа)(внутренние данные) -> Выходные данные (устройство вывода). К памяти две стрелки <-> Процессор.

Две главные компоненты ЭВМ:

1) ПАМЯТЬ (запоминающее устройство). В памяти в закодированном виде содержатся объекты, над которыми производятся действия. Эти закодированные объекты наз. данными. Основные характеристики памяти:

- емкость (размер);

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

2) ПРОЦЕССОР - это устройство, которое выполняет 2 основные функции:

- производит действия над данными;

- управляет последовательностью действий в программах.

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

Т.о. память играет роль "камеры хранения" для процессора, причем она используется как для хранения программы, так и для хранения данных.

Внутренние данные, обрабатываемые программой, состоят из входных, выходных и промежуточных данных.

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

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

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