Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Chast_2.docx
Скачиваний:
2
Добавлен:
17.04.2019
Размер:
229.99 Кб
Скачать

Часть II

1)

Вся совокупность программ, хранящихся на всех устройствах долговременной памяти компьютера, составляет его программное обеспечение (ПО).

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

Прикладной уровень

Служебный уровень

Системный уровень

Базовый уровень

2)

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

 К программному обеспечению (ПО) относится также вся область деятельности по проектированию и разработке (ПО):

  • технология проектирования программ (нисходящее проектирование, структурное программирование и др.)

  • методы тестирования программ.

  • методы доказательства правильности программ.

  • анализ качества работы программ и др.

Программное обеспечение - неотъемлемая часть ЭВМ. Оно является логическим продолжением технических средств ЭВМ, расширяющие их возможности и сферу использования.

3)

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

  2. Разработка интерфейса (интерфейс - способ общения) - создание экранной формы (окна программы).

  3. Составление алгоритма.

  4. Программирование - создание программного кода на языке программирования.

  5. Отладка программы - устранение ошибок.

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

  7. Создание документации, помощ

4)

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

Алгоритм обладает следующими свойствами:

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

2. Определенность. Каждое правило алгоритма должно быть четким, однозначным.

3. Результативность. Алгоритм должен приводить к решению за конечное число шагов.

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

5. Правильность. Алгоритм правильный, если его выполнение дает правильные результаты решения поставленной задачи.

5) Язы́к программи́рования — формальная знаковая система, предназначенная для записи компьютерных программ. Язык программирования определяет набор лексических,синтаксических и семантических правил, задающих внешний вид программы и действия, которые выполнит исполнитель (компьютер) под ее управлением.

Со времени создания первых программируемых машин человечество придумало более двух с половиной тысяч языков программирования.[1] Каждый год их число увеличивается. Некоторыми языками умеет пользоваться только небольшое число их собственных разработчиков, другие становятся известны миллионам людей. Профессиональные программисты иногда применяют в своей работе более десятка разнообразных языков программирования.

Обзор

Turbo Pascal (Турбо Паскаль). Процедурно-ориентированный язык. Усовершенствованная версия языка Pascal, изобретенного еще в 60-х годах. В настоящее время используется в качестве учебного языка во всех высших и средних учебных заведениях, а также в школах. Этот язык знает любой программист. На основе синтаксиса Паскаля были созданы другие более функциональные языки, но уже с объектно-ориентированным принципом программирования (Object Pascal, Delphi).

С++ (Си++). Является компилируемым, строго типизированным языком общего назначения. Поддерживает процедурный, функциональный, обобщенный и объектно-ориентированный принцип программирования. С++ используют для написания сложных приложений. Для работы с С++ на платформе IBM PCнаиболее популярна система Turbo C++ американской фирмы Borland.

6) КОМПИЛЯЦИЯ (compilation) - трансляция программы (кода) или отдельного программного модуля, составленных на языке программирования высокого уровня (исходная программа, исходный модуль) в программу или модуль на машинном языке или языке, близком к машинному (объектная программа, объектный модуль). В процессе К. программа преобразуется в промежуточную форму, к которой впоследствии необходимо присоединить библиотечные средства, содержащие стандартные подпрограммы и процедуры, а если нужно, то можно добавить любые другие модули, написанные самим пользователем, и скомпилированные в объектные модули, возможно, с иных языков высокого уровня.

Интерпрета́тор (языка программирования) —

  • Программа или техническое средство, выполняющее интерпретацию.[1]

  • Вид транслятора, осуществляющего пооператорную (покомандную) обработку и выполнение исходной программы или запроса (в отличие от компилятора, транслирующего всю программу без её выполнения).[2]

  • Программа (иногда аппаратное средство), анализирующая команды или операторы программы и тут же выполняющая их.[3]

  • Языковой процессор, который построчно анализирует исходную программу и одновременно выполняет предписанные действия, а не формирует на машинном языке скомпилированную программу, которая выполняется впоследствии

Достоинства

  • Бо́льшая переносимость интерпретируемых программ — программа будет работать на любой платформе, на которой есть соответствующий интерпретатор.

  • Как правило, более совершенные и наглядные средства диагностики ошибок в исходных кодах.

  • Упрощение отладки исходных кодов программ[источник не указан 230 дней].

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

Недостатки

  • Интерпретируемая программа не может выполняться отдельно без программы-интерпретатора. Сам интерпретатор при этом может быть очень компактным.

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

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

Многие современные среды разработки также включают браузер классовинспектор объектов и диаграмму иерархии классов — для использования при объектно-ориентированной разработке ПО. Хотя и существуют ИСР, предназначенные для нескольких языков программирования — такие, как EclipseNetBeansEmbarcadero RAD StudioQt Creator или Microsoft Visual Studio, но обычно ИСР предназначается для одного определённого языка программирования - как, например, Visual BasicPureBasicDelphiDev-C++.

  • Частный случай ИСР — среды визуальной разработки, которые включают в себя возможность визуального редактирования интерфейса программы.

7) Turbo Pascal (произносится «ту́рбо паска́ль») — Интегрированная среда разработки программного обеспечения для платформ DOSи Windows 3.x и язык программирования в этой среде, диалект языка Паскаль от фирмы Borland.

Borland Pascal 7.0, 1992 год. Выпущен Borland Pascal 7.0, включающий в себя более дешёвый и менее мощный Turbo Pascal 7.0, который поставлялся также отдельно. BP 7.0 позволял создавать программы под реальный и защищённый 16-битный режим DOS и Windows. Была введена поддержка открытых массивов, добавлено новое ключевое слово «public» для доступных полей и методов объекта. Открыты исходные тексты системных библиотек и функций времени выполнения (RTL).

Turbo Pascal — это среда разработки для языка программирования Паскаль. Используемый в Turbo Pascal диалект базировался на более раннем UCSD Pascal, получившем распространение, в первую очередь, на компьютерах серии Apple II. Компилирующая компонента Turbo Pascal была основана на компиляторе Blue Label Pascal, первоначально созданном в 1981 году Андерсом Хейлсбергом для операционной системы NasSys микрокомпьютера Nascom. Позднее он был переписан как Compass Pascal для операционной системы CP/M, затем как Turbo Pascal для DOS и CP/M. Одна из версий Turbo Pascal была доступна под Apple Macintosh примерно с 1986 года, но её разработка прекратилась примерно в 1992 году.

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

Итак, алфавит языка Паскаль составляют:      1) буквы латинского алфавита;      2) арабские цифры;      3) специальные знаки.

 Наиболее часто употребляемым специальным символом является пробел (в значимых местах мы будем обозначать его в записях знаком "V"). Его использование связано с форматами основной структуры программы, разделов описаний, операторов. Не следует путать наличие пробела с отсутствием символа.      .    конец программы, разделение целой и дробной частей вещественного числа (десятичная точка), разделение полей в переменной типа Record;      ,    разделение элементов списков;      ..    указание диапазона;      :    используется в составе оператора присваивания, а также для указания формата вывода в операторе Writeln;      ;    отделяет один раздел программы от другого, разделяет операторы;      '    используется для ограничения строковых констант;      - + * / ( )    арифметические знаки (используются по своему назначению);      < >    знаки отношений;      =    используется в составе оператора присваивания, в разделах описаний констант и типов, используется как знак отношения (равно);      @    имя специального оператора определения адреса переменной, подпрограммы;      ^    используется для именования динамических переменных;      {}    ограничение комментариев в программе;      [ ]    заключают в себе индексы элементов массивов;      _    символ подчеркивания используется также как любая буква, например, в идентификаторах - вместо пробела;      #    обозначение символа по его коду;      $    обозначение директивы компилятора, обозначение шестнадцатеричного числа.

9)

Написанная по правилам стандарта языка Паскаль программа будет иметь в своем полном варианте структуру показанную ниже:

PROGRAM Имя_Программы; USES     Список используемых библиотек (модулей); LABEL    Список меток в основном блоке программы; CONST     Определение констант; TYPE     Описание типов; VAR     Определение глобальных переменных программы; ОПИСАНИЕ ПРОЦЕДУР; ОПИСАНИЕ ФУНКЦИЙ; BEGIN    Основной блок программы (операторы) END.

Таким образом, программа содержит два раздела: (I) раздел описаний (блоки USES, LABEL, CONST, TYPE, VAR, а также описание процедур и функций) и (II) исполняемую часть (основной блок). Раздел описаний, в принципе, не является обязательным и может вовсе отсутствовать. Заголовок программы, начинающийся с ключевого слова PROGRAM, выполняет исключительно декоративную функцию, и поэтому также может отсутствовать.

Самая короткая "программа" на языке Турбо Паскаль выгдядит следующим образом:

BEGIN END.

Она ничего не делает, но работает!

Деректива USES подключает библиотечные модули из стандартного набора Турбо Паскаля или написанные программистом. У дерективы USES есть свое четко определенное место: если она присутствует, то должна находится перед прочими разделами описаний. Кроме этого, слово USES может появиться в программе только один раз. Список модулей дается через запятую, например:

USES CRT, DOS, Graph, My_Unit;

Блок описания меток LABEL содержит перечисленные через запятую метки переходов. Блоков LABEL может быть сколько угодно и располагаться они могут где угодно в пределах раздела описаний. Метки могут обозначаться целым числом в диапазоне от 0 до 9999 или символьными конструкциями длнной не более 63 символов, например

LABEL 1, 12, Start, Finish, m1, m2;

Блок объявления констант CONST так же, как блок LABEL может располагаться в любом месте раздела описаний. Таких блоков может быть несколько или может не быть вообще. В них размещают определения констант различных видов.

Необязательный, как и все предыдущие, блок описания типов TYPE содержит определения вводимых программистом новых типов. В этом блоке могут быть использованы константы из блока CONST. Если это так, то блок TYPE может быть расположен где угодно, но не выше соответствующего блока CONST.

Раздел описания глобальных переменных VAR формально тоже не обязателен и может отсутствовать. Реально же он, конечно, объявляется и содержит список глобальных переменных программы и их типы. Блоков VAR может быть сколько угодно.

Основной блок - это собственно программа, использующая все, что было описано и объявлено выше. Он обязательно начинается словом BEGIN и заканчивается словом END с точкой. Любой текст после завершающей точки игнорируется компилятором.

Язык Турбо Паскаль предоставляет гораздо большую гибкость в организации текста программы, чем ANSI-стандарт языка. Программа на языке Турбо Паскаль может иметь, например, такую структуру:

PROGRAM Большая_Программа; USES     Список используемых библиотек (модулей); CONST Константы и переменные для VAR      выполнения математических расчетов; Определение процедур и функция для математических расчетов;

CONST Описание констант, типов и  TYPE   переменных необходимых для графического VAR     представления расчетов; Определение процедур и функция для построения графиков; LABEL   Метки,  CONST  константы,  TYPE     типы и переменные, используемые VAR       в основном блоке программы; BEGIN    Основной блок программы (операторы) END.

10) Простой тип данных (англ. plain old dataPOD) — в современных языках программирования высокого уровня тип данных, не требующий автоматического управления. Переменные такого типа можно копировать простыми процедурами копирования участков памяти наподобие memcpy.

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

В программировании переменная — это идентификатор, определяющий данные. Обычно это бывает имя, скрывающее за собой область памяти с хранящимися там данными. Переменная может иметь тип, характеризующий множество значений, которые она может принимать. В программировании, переменные, как правило, обозначаются одним или несколькими словами или символами, такими, как «time», «x», «foo» и тому подобное.

Конста́нта в программировании — способ адресования данных[прим. 1], изменение которых рассматриваемой программой запрещено.

Использование констант, особенно, именованных — мощный инструмент, повышающий надёжность и безошибочность программ.[1][прим. 2]

Сначала константы просто вписывались в текст программ в качестве аргументов операторов.

Например, mvi A, 0 , где 0 является числовой константой.

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

11)

В системе программирования Turbo Pascal существует возможность составлять алгоритмы нелинейной структуры. Для этого предусмотрены специальные средства, так называемые "управляющие конструкции". Самым простым нелинейным алгоритмом является алгоритм организации ветвлений. Вычислительный процесс (алгоритм) называется разветвляющимся, если в зависимости от выполнения определённых условий он реализуется по одному из нескольких, заранее предусмотренных направлений. Каждое отдельное направление называется ветвью вычислений. Выбор той или иной ветви осуществляется уже при выполнении программы в результате проверки некоторых условий. Управляющая конструкция для программной реализации таких алгоритмов называется условным оператором.

Условный оператор.

Условный оператор реализует алгоритмическую конструкцию "развилка" (ветвление) и изменяет порядок выполнения операторов в зависимости от истинности или ложности некоторого условия. Существует два варианта оператора.

Полная форма:

if <условие> then <оператор 1>

else <оператор 2>;

и краткая форма:

if <условие> then <оператор 1>;

В этих операторах: <условие> - некоторое логическое выражение, истинность которого проверяется; <оператор 1> - оператор, который выполняется, если логическое выражение <условие> истинно. <оператор 2> - оператор, который выполняется, если логическое выражение <условие> ложно.

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

Ограничение.

Оператор, который располагается после служебного слова then не может быть условным. Без этого ограничения пришлось бы рассматривать операторы вроде следующего:  

if a>0 then if a<2 then a:=2 else a:=3;

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

Важное замечание.

Так как условный оператор IF является самостоятельным, единым оператором (предложением), ни перед then, ни перед else точку с запятой ставить нельзя.

Примеры использования условного оператора:

if x<0 then x:=-y;

if x<1.5 then z:=x+y

else z:=1.5;

Как вы уже заметили, после служебных слов then и else может находится (выполнятся) только один оператор. Но ветви условного оператора состоящие из одного оператора встречаются довольно редко. Гораздо чаще каждая ветвь условного оператора состоит из нескольких операторов. На первый взгляд кажется, что составить условный оператор в этом случае не представляется возможным. Для реализации таких ситуаций применяют составной оператор.

Составной оператор.

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

Пример составного оператора.           Begin       Write('Текущее сообщение');       z:=1;       d:=d+1;      End;

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

Пример использования составного оператора в условном операторе.

Write('Введите контрольное число');

Readln(x);

if x>=0

then

begin

write('Контрольное число положительно');

z:=z+1;

d:=d-1;

x:=x+10;

end

else

begin

write('Контрольное число отрицательно');

z:=z-1;

d:=d+1;

x:=x-10;

end.

Пример программы.

Программа для решения квадратного уравнения.  Program kvur;

Var

a,b,c: real; {коэффициенты квадратного уравнения}

x1,x2: real; {корни квадратного уравнения}

D: real; {дискриминант квадратного уравнения}

Begin

Writeln('Решение квадратного уравнения.');

{Ввод данных}

Write('Введите коэффициент a: ');

Readln(a);

Write('Введите коэффициент b: ');

Readln(b);

Write('Введите коэффициент c: ');

Readln(c);

{Определение дискриминанта}

D:=b*b-4*a*c;

{Определение корней и вывод информации}

if D>0 then

begin

x1:=(-b+sqrt(D))/(2*a);

x2:=(-b-sqrt(D))/(2*a);

Writeln('Первый корень уравнения: ',x1);

Writeln('Второй корень уравнения: ',x2);

end;

if D=0 then

begin

x1:=-b/(2*a);

Writeln('Уравнение имеет один корень: ',x1);

end;

if D<0 then writeln('Уравнение корней не имеет.');

Readln;

End.

Безусловные конструкции.

Оператор языка представляет собой неделимый элемент программы, который позволяет выполнять определенные алгоритмические действия. Все операторы можно условно разделить на две группы: простых операторов иструктурированных операторов. К простым относятся те операторы, которые не содержат других операторов. К структурированным - те, которые состоят из других операторов.  В ТП 7.0 существует всего один оператор безусловного перехода Goto и четыре безусловных функции: Break, Continue, Exit, Halt.  Оператор безусловного перехода Goto представляет собой простой оператор, используя который можно изменять порядок выполнения операторов в программе. Общий вид оператора безусловного перехода:      goto <метка> , где <метка> - это идентификатор или целое число от 0 до 9999, объявленное в разделе меток label.  Применение оператора безусловного перехода в ТП - программе является нежелательным, т.к. его присутствие нарушает структурную целостность и наглядность. Такую программу трудно читать, отлаживать и модифицировать.  Функция Break позволяет досрочно закончить цикл.  Функция Continue - позволяет начать новую итерацию цикла, даже если предыдущая не была завершена.  Функция Exit - позволяет завершить работу текущего программного блока.  Функция Halt (n), где n - некоторое целое число - позволяет завершить работу программы с кодом завершения n. 

Оператор ввода

Readln (x1[,x2,x3,...]) - сначала идет имя процедуры Readln, затем имена переменных, которым будут присвоены значения. Их может быть несколько либо одно. Но необходимо помнить, что Readln после ввода каждой переменной требует переход на новую строку, иначе часть введенной строки отбрасывается.

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

Оператор вывода

Writeln (['Текст пояснения ',]x1[,x2,x3,...]) - сначала идет имя процедуры Writeln, затем текст, имена переменных, арифметические выражения. Их может быть несколько либо одно имя. Но необходимо помнить, что Writeln переводит курсор на новую строку в отличии от Write.  Арифметические выражения вычисляются, а затем выводятся.  При выводе вещественных чисел необходимо форматирование, иначе они будут представлены в форме с плавающей запятой.  Writeln(real2:5:2); Здесь переменная real2 выводится на экран ограниченная по ширине в 5 символов, а также с 2 знаками после запятой.

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]