Logo GenDocs.ru

Поиск по сайту:  


Загрузка...

Лекции - Информатика и программирование - файл 1.doc


Лекции - Информатика и программирование
скачать (194 kb.)

Доступные файлы (1):

1.doc194kb.16.12.2011 08:22скачать

содержание
Загрузка...

1.doc

Реклама MarketGid:
Загрузка...
Информатика и программирование

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

Устройство и принцип действия персонального компьютера

Устройство ЭВМ. В 1948 году барон Джон фон Нейман разработал принципы построения вычислительной машины. Согласно Нейману она должна состоять из следующих основных устройств:

  1. АЛУ - арифметико-логическое устройство – для выполнения вычислительных операций.

  2. УУ - устройство управления, управляет работой всех устройств ЭВМ, организует процесс выполнения программы.

  3. ОЗУ – оперативное запоминающее устройство или Память – для хранения данных, программ и результатов их выполнения.

  4. ВУ – внешние устройства (УВВ – устройства ввода-вывода – дисплей, клавиатура, принтер, сканер, мышь, ПЗУ – постоянное запоминающее устройство - винчестер и др.

Все устройства соединены тремя шинами: ША, ШД и ШУ – шины адресов, данных и управления (рис. 1.).

ШУ



МП

АЛУ УУ ОЗУ ВУ^ МП =АЛУ+УУ+RG

МикроЭВМ=МП+ОЗУ+ВУ

ШД

ША
Рис. 1. Устройство компьютера (основные блоки)

где

МП – микропроцессор, основное устройство компьютера, выполняющее все арифметические и логические операции;

RG – регистры СОЗУ (сверхоперативного ЗУ).

Принцип действия: Работа ЭВМ организуется по циклу "Выборка-Выполнение". Программа с помощью ВУ записывается в ОЗУ в последовательные ячейки. Затем УУ по ША находит первую ячейку, по ШД считывает первую команду (подцикл Выборка), после чего УУ соединяет между собой все устройства, необходимые для её выполнения и команда выполняется (подцикл Выполнение). Затем из следующей ячейки выбирается и выполняется следующая команда и т.д.. Таким образом организуется автоматическое выполнение программы.

^ Устройство процессора

Процессор состоит из 3-х основных частей – АЛУ, УУ и регистров (RG - являются сверхоперативным запоминающим устройством - памятью СОЗУ и служат для хранения исходных данных и внутренних промежуточных результатов; БР1,БР – буферные регистры, используются для ввода данных-операндов в АЛУ и регистр-аккумулятор, который получает результат из АЛУ и хранит его).




Сч.К

УУ RG

АЛУ

МП


БР1


БР2 ОЗУ
А
Рис. 2. Устройство микропроцессора

АЛУ соединено с регистром ^ Сч.К – счётчиком команд, содержимое которого автоматически увеличивается на 1 после считывания предыдущей команды. ОЗУ не входит в состав МП.

Пр. Сложить операнды, расположенные в ячейках 0011 и 0100, результат поместить в яч. 0111. Команда Сложить записана в яч. 0000.

Команды в процессоре выполняются следующим образом: УУ с помощью ШУ подключается к адресной шине ША и из первой ячейки ОЗУ (0000) считывает команду Сложить, содержимое счётчика команд Сч.К увеличивается на 1, т.е. указывает адрес следующей команды. Согласно команде, УУ через ШУ подключает шину данных ШД к ячейке ОЗУ 0011 и к буферному регистру БР1, содержимое ячейки ОЗУ (т.е. первый операнд) по ШД переписывается в БР1. Далее, согласно команде, УУ аналогично подключает ШД к ячейке 0100 и к БР2 и второй операнд переписывается в буферный регистр БР2.На этом подцикл Выборка завершается. Затем УУ пересылает по ШУ в АЛУ код команды Сложить и содержимое БР1 и БР2 складывается в АЛУ в двоичном коде, результат автоматически передаётся в регистр-аккумулятор А. УУ по ШУ соединяет ШД с регистром А и ячейкой ОЗУ 0111 и результат выполнения команды (арифметическая сумма в двоичном коде) переписывается в яч. 0111 – подцикл Выполнение завершён.

Регистр Сч.К уже содержит адрес следующей команды (яч. 0001 ОЗУ), УУ по ША активизирует её, считывает новую команду и цикл повторяется.
Основные блоки компьютера

Компьютер состоит из трёх основных частей:

  • Системный блок;

  • Клавиатура и

  • Монитор (дисплей).

Именно эти три блока дают им право называться компьютером. Если подсоединяется манипулятор Мышь, компьютер превращается в компьютерную систему, подключается принтер – получается компьютерная система с более развитым периферийным обеспечением (мультимедиа) и т.д.

^ Системный блок содержит материнскую плату, в которую вставляются все основные платы блока (процессор, ОЗУ, видеокарта, звуковая карта и др.), дисководы для дискет и компакт-дисков, винчестеры. К системному блоку через контроллеры (согласующие устройства) подсоединяются клавиатура, дисплей, мышь, принтер, сканер, модем, джойстик, телевизионный тюнер и др. Конструктивно системный блок может быть выполнен в горизонтальном (модель "Baby") и в вертикальном (модель "Tower") исполнениях.

Микропроцессор является "мозгом" кмпьютера, состоит из АЛУ, УУ и регистров, выполняет 10- 100 млн опер/сек в зависимости от тактовой частоты процессора (75, 100, 133, 166 МГц и т.д.). Самыми современными в настоящее время являются процессоры Pentium 5 и Pentium 6 и Celeron 1100, 1300 и др.

ОЗУ – в него переписываются все рабочие программы, при выключении питания ОЗУ очищается, а несохранённые данные теряются, именно с ОЗУ работает МП. Емкость современной оперативной памяти составляет 64, 128, 256, 512 Мб.

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

Винчестер – Постоянное запоминающее устройство (ПЗУ), жесткий диск HDD для хранения программного обеспечения ЭВМ: программ DOS, Windows, приложений (MS Office, Autocard, MathCard и др.).При сохранении документа или программы они из ОЗУ переписываются в ПЗУ и при отключении питания компьютера не пропадают. Емкость современных винчестеров составляет 1-100 Гб. Винчестерам присвоены имена "C", "D", "Е" и т.д.

Дисковод – предназначен для работы с гибкими магнитными дисками (дискетами) FDD размером 3,5' (9 см) емкостью 1,44 Мб, ему присвоено имя "А". Имя дисковода "В" использовалось, когда применялись диски и дисководы на 5,25' (15 см) емкостью до 1,2 Мб .

Монитор – устройство для вывода на экран информации, текстовой, графической и табличной. Основной тип современного монитора на кинескопе –SVGA, на жидких кристаллах – TFT. В графическом режиме разрешающая способность монитора составляет 1024*760 точек, 16-256 цветов, в текстовом – 80*25 символов, 16 цветов.

Размер точки экрана может изменяться от 0,25 до 0,38 мм и называется "пиксель"

Клавиатура является устройством ввода информации, содержит 98-104 клавиши, которые объединены в четыре блока:

  1. Блок клавиш для ввода символов русского и латинского алфавитов и цифр 0-9, расположен в центральной части клавиатуры;

  2. Вокруг центрального блока клавиш расположены служебные клавиши этого блока:

  3. Tab – табуляция (перемещение курсора на 8 позиций, смена панелей в NC;

  4. CapsLock – фиксатор верхнего регистра (прописных букв);

  5. Shift – верхний регистр;

  6. Escape (исчезать) – отмена последней команды;

  7. BackSpace – удаление символа слева от курсора;

  8. Enter – ввод команд и данных, перевод строки и др.

  9. Ctrl, Аlt - изменяют назначение других клавиш, используются в сочетании с ними.

  10. Клавиши Shift, Ctrl, Alt продублированы.

  11. Блок функциональных клавиш F1-F12, предназначен для выполнения различных специальных действий

  12. Блок клавиш управления курсором (в начало или конец файла, на экран вверх или вниз, на позицию влево-вправо, вверх-вниз, вставка, удаление);

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


^ 2 Понятие алгоритма.

Основные требования, которым должен удовлетворять алгоритм

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

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

  1. Массовость – возможность применения одного и того же алгоритма для решения целого класса однотипных задач с различными исходными данными.

  2. Детерминированность (Определённость) – процесс применения правил к исходным данным (путь решения задачи) определён однозначно.

  3. Понятность – исполнитель знает, что нужно для выполнения этого алгоритма

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

  5. Конечность – Исполнение алгоритма заканчивается после выполнения конечного числа шагов или за конечное время (не закицливается, не "зависает" – останавливается и пр.).

  6. Результативность – на каждом шаге процесса известно, что считать результатом процесса


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

^ Блок начала и конца программы обозначается овалом или

прямоугольником с округлёнными углами, в блоке могут быть слова Начало, Конец, End, Программа №…, название программы и т.п.

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

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

^ Вычислительный блок содержит формулы вычислительного процесса,
Начало и конец программы

Ввод данных и вывод результатов
Вычислительный блок
да нет Блок сравнения

с.5 Ссылка (переход) на другой блок или страницу
Рисунок 1 Основные элементы блок-схемы алгоритма
они могут быть написаны по общим правилам математики (с индексами, показателями степени, дробями, знаками ∑ , ∫ и т.п.). В тексте программы те же формулы должны быть записаны только по правилам языка программирования , т.е. в одну строку. В любом языке программирования допускается только линейная запись выражений, без индексов, показателей степени, много этажных дробей, пределов интегрирования и т.п.

^ Блок сравнения предназначен для проверки какого-либо условия, имеет два выхода – да и нет (или 1 и 0). Если условие выполняется, управление передаётся другому блоку , если нет, то следующему.

Блок Ссылка указывает номер блока, которому передаётся управление. Если он расположен на другой странице, то и номер страницы.

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

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

блок-схемы алгоритма становится необходимым, а затем каждый блок записывается в программе одним (своим) оператором.

^ Составим блок-схему алгоритма




Начало программы указывается первым

блоком - Начало.

В следующем блоке вводятся значения

неизвестных а,b и х.

В третьем блоке вычисляется функция

у = ax2 - bcos(x+340).

В четвёртом блоке значение у

выводится на экран.
Пятый блок указывает на завершение

программы.

Рисунок 2 Блок-схема алгоритма

^

3 Структурное, модульное и процедурное программирование


Программирование – это написание, корректирование и тестирование программ.

Базовые понятия программирования – операции ВВЕСТИ (input, read, scanf), Вывести (print, write, printf), ПЕРЕЙТИ К (GOTO), Если...тогда...иначе... (IF... THEN... ELSE...) операторы Циклов FOR...NEXT, DO...LOOP UNTIL..., While..., Присвоить...(a=3.14, у=a+b), функции (методы) – sin(), log(), exp(), Типы данных integer - целый, real - вещественный, float, array - массив и др.

^ Структурное программирование (СП) – это проектирование, написание, тестирование программы в соответствии с заранее определённой дисциплиной (порядком, структурой).

Главное в СП:

  • Нисходящая разработка,

  • Разработка отдельных структур (блоков) программы,

  • Сквозной структурный контроль.

Существует три способа проектирования алгоритмов и программ.

    1. Восходящее проектирование, снизу вверх, синтетическое (объединяющее).

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

  • Затем отдельные блоки соединяются в подсистемы, которые также проверяются,

  • затем они объединяются в общий алгоритм или программную систему и она проверяется в комплексе.

2. Нисходящее проектирование (сверху вниз, аналитическое). Ставится задача, затем разбивается на подзадачи, они тоже разбиваются на подзадачи и т.д.до уровня элементарных задач – элементарных шагов – базовых конструкций (input, read, goto, a+b, if a>0 then...., print) на каждом этапе разбиения работа алгоритма или программы проверяется, при этом вместо программ нижнего уровня ставятся программные заглушки. Заглушки содержат входные и выходные операторы и выдаёт сообщения о своём выполнении, они позволяют модулю верхнего уровня проверить взаимодействие с модулем нижнего уровня.

^ На практике стратегия разработки алгоритма является сочетанием восходящего и нисходящего способов.

3. Сквозной структурный контроль – это средство анализа программы для обнаружения ошибок на всех этапах проектирования. В него входят ручное просчитываение программы, отладка её отдельных модулей и др.
Программа на языке Turbo Pascal 7..0 имеет следующие разделы:

^ РАЗДЕЛ ОБЪЯВЛЕНИЙ

program

Заголовок программы

{$…}

Глобальные директивы компилятора

uses

Подключаемые библиотеки (модули)

label

Раздел объявления глобальных меток

const

Раздел объявления глобальных констант

type

Раздел объявления глобальных типов

var

Раздел объявления глобальных переменных

^ РАЗДЕЛ ПРОЦЕДУР И ФУНКЦИЙ

Procedure (function)


Заголовок процедуры (функции)

{тело процедуры}

^ РАЗДЕЛ ОСНОВНОГО БЛОКА ПРОГРАММЫ

begin

end.

Основной блок программы


Пример Вычислить площадь круга S и длину окружности L по заданному радиусу R.

Программа

program KRUG;

const P=3.14159

var

R,S,L:Real;

begin

Read(R);{ввод значения радиуса}

L:=2*P*R;

S:=P*SQR(R);

Writeln(Длина окружности = ',L,'см');

Write('Площадь круга = ',S,'кв.см');

end.

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

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

Модульное и процедурное программирование позволяют разрабатывать сложную программу по частям – различными группами программистов.

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

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

4 Объектно-ориентированное программирование (ООП)


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

Свойства ООП

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

2. Второе свойство – наследование, т.е. возможность класса использовать характеристики других классов.

Например, класс, разработанный для программы составления графика движения поездов GRAFIC может быть унаследован новым классом, который используется в программе продажи билетов BILET на разные маршруты. Программы у этих классов разные, но есть общий элемент – расписание движения поездов, точнее типы данных, которые в нём используются. Если создать новый класс (тип данных) poezd типа "структура"

На С:

Typedef struct {

Int Nomer [1000];

Char marshrut [20];

Data Data otpravleniya; // тип data имеет свой формат гггг.мм.дд

Time Vremya otpravleniya// тип time имеет свой формат чч:мм

}; // имя типа структурированных данных
Тип данных POEZD использовался в программе GRAFIC и был унаследован программой BILET при её создании.
3. Полиморфизм – использование одного и того же имени для обозначения различных методов во всей иерархии классов

5 Языки программирования высокого уровня (ЯПВУ). Их отличия от низкоуровневых языков. Универсальные и специализированные ЯП. Наиболее популярные современные ЯП


^ Основные понятия и определения.

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

Команды, поступающие в компьютер, являются электрическими сигналами, которые представляются как совокупность двух цифр : 0 и 1. Разным командам соответствует разная совокупность чисел, например, команда СЛОЖИТЬ может иметь код 0000, команда УМНОЖИТЬ – код 0101 и т.д.. Поэтому в компьютере программа представляет собой последовательность чисел, называемую машинным кодом.

Управление компьютером происходит по определенному алгоритму.

АЛГОРИТМ это последовательность операций конкретного способа решения задачи.

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

В начале всегда разрабатывается способ решения задачи и по нем определяется алгоритм действия, а затем этот алгоритм записывается на одном из языков программирования, высокого или низкого уровня, понятном человеку(Assembler, BASIC, Pascal и др.). Затем текст этой программы специальными служебными программами, которые называются ТРАНСЛЯТОРАМИ, переводится в машинный код и исполняется.

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

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

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

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

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

В реальных машинах технологии компиляции и интерпретации перемешаны или обобщены одной программой – транслятором.

Для написания программы существуют различные языки программирования, которые подразделяются на языки низкого и высокого уровня.
^ 1.2. Алгоритмические языки
Язык программирования низкого уровня близок к машинному коду и ориентирован на конкретный тип процессора. Современным языком низкого уровня является язык АССЕМБЛЕР, созданный по принципу: «одна инструкция – одна строка», т.е. он максимально приближён к машинным кодам ЭВМ.

Пример 1. Программа ввода и сложения чисел а и b, составленная на Ассемблере:

mov a,x – переместить содержимое регистра а с числом а в регистр х

mov b,y – переместить содержимое регистра b с числом B в регистр y

add x,y - сложить содержимое регистров а и b, результат поместить в регистр .b
Язык программирования высокого уровня записывается на естественном языке (в основном, английском), он ближе и понятен человеку, особенности архитектуры конкретных вычислительных систем в нем не учитываются.

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

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

Пример 1 на ЯП BASIC.

input a, b 'ввод а и b

Y = a + b 'сложение а и b, присвоение результата переменной У

print Y ' печать У

end ' конец программы

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

end

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

Пример 1 на ЯП паскаль.

program summa; {заголовок программы summa}

var {объявление переменных - var }

a,b,Y:Real; {a,b,y – переменные вещественного (Real) типа }

begin {начало тела программы}

Read(a,b); {ввод значений а и b}

Y:= a + b; {сложение а и b, присвоение результата переменной У}

Write Y; {печать у}

end. {конец программы}
C, C++ (Си, Си++) – создан был для замены ассемблера с целью создания программ независимо от типа используемого процессора, но развился в ЯПВУ, который описывает команды на естественном (английском).языке, но по максимуму учитывает устройство машинного процессора, что повышает скорость его работы. Самый мощный из современных ЯП, написание программы занимает больше времени, но это компенсируется временем её работы на ЭВМ.

Пример 1 на ЯП СМ++.

#include <stdio.h> //подключение заголовочного файла, отвечающего за ввод-вывод данных

#include <math.h> //подключение заголовочного файла, отвечающего за математические операции

Void main() // заголовок программы

{ // начало тела программы

float a,b,Y; // объявление переменных a,b,Y вещественными - float

scanf(\n %f%f, &a,&b); //ввод вещественных а и b

Y = a + b; // сложение а и b, присвоение результата переменной У

printf ("\n Y=, Y); // вывод У

} // конец тела программы
Fortran (фортран, сокращение от formula-translator) – это первый компилируемый язык, у которого удобство написание программ было принесено в жертву получения эффективного машинного кода. На нём написано большое количество различных библиотек программ, в основном, общего назначения - технических, математических и др..

Cobol (кобол) – это компилируемый язык, предназначенный для решения экономических задач. Его операторы имеют вид обычных английских фраз. На этом языке организованы программные средства работы с большими объемами данных, хранящихся на различных внешних носителях.

Algol (алгол, algoritmical Language) - компилируемый язык предназначался для замены фортрана, но из-за более солжной структуры не получил широкого распространения.
^ 1.2. Языки программирования баз данных

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

При работе с базами данных часто используются следующие операции:

1. Сохранение и удаление таблиц или их частей.

2. Поиск и сортировка записанной информации по различным признакам

  1. Изменение существующих записей.

Для работы с базами данных созданы следующие языки:

^ СУБД – система управления базами данных, предназначен для управления и эффективной обработки баз данных.

SQL - структурированный язык запросов, манипулирующий группами записей

Основные операторы:

^ CREATE TABLE создать таблицу БД

INSERT INTO...VALUES.... – ввести в таблицу значения

SELECT ...FROM.... –выбрать из таблицы данные (создание запроса)
^ 1.3. Языки программирования для Интернета

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

Примеры языков Интернета:

НТМL – Язык для оформления web-документов .

Perl – язык для работы с массивами данных и системной информацией.

^

6 Трансляторы, компиляторы и интерпретаторы


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

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

Алгоритм – последовательность действий (операций) при решении задачи.

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

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

Трансляторы бывают двух видов – интерпретаторы и компиляторы.

Интерпретатор – это программа, которая переводит исходный текст программы на языке программирования в машинные команды построчно (пооператорно) и передаёт их на выполнение. Если строка программы выполняется успешно, интерпретатор переходит к следующей строке, переводит её в машинный код и передаёт на выполнение и т.д. до конца программы. Транслятор – интерпретатор работает медленно, однако этот режим удобен при отладке программы.

Компилятор переводит весь исходный текст программы целиков и создаёт при этом новый документ – объектный код программы. При этом компилятор сначала предварительно просматривает исходную программу, выявляет повторяющиеся места (чтобы не переводить их дважды) и синтаксические ошибки – неправильно записанные слова команд и операторов (например, printe вместо print e). Логические ошибки (вроде π = 4,13, а не 3,14) может выявить только сам разработчик программы.

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

Язык С++ в настоящее время является самым распространённым в мире языком, большинство программ в России и и за рубежом создаётся именно на нём.
^ 7 Основные этапы разработки программ

1 Порядок решения задач на компьютере

Язык программирования QBASIC (QB) является языком высокого уровня и предназначен для составления программ для решения вычислительных задач на ЭВМ.

Порядок решения задачи на компьютере следующий:

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

2 Разработка схемы алгоритма.

3 Составление программы по алгоритму решения задачи

4 Ввод программы в ЭВМ и отладка её работы.

5 Решение задачи.
^ 8 Этапы прогонки программы. Назначение препроцессора, компилятора, редактора связей
Препроцессор служит для обработки исходного текста программы до её компиляции, он выявляет ошибки синтаксиса программы, подключает необходимые блоки (#include), создавая предметный файл программы. Редактор связей объединяет служебные блоки с текстом программы в одну программу, создавая объектный файл. Компилятор переводит объектный файл программы в двоичные коды, создавая исполняемый, ехе – файл и запускает программу на выполнение.
9 Составляющие ЯПВУ

  • Идентификаторы – имена переменных и функций,

  • Константы

  • Выражения

  • Типы данных – целые, строковые, массивы, вещественные

  • Операторы (выбора, цикла, передачи управления)

  • Массивы, указатели

  • Функции, процедуры

  • Классы

  • Знаки операций, алфавит, разделители, служебные слова


10 Понятие типов данных. Переменные и константы

Тип данных – это характеристика данных, которая задаёт их вид, границы изменения данных и операции над ними

Делятся на простые и структурированные.

Простые (базовые) типы данных:

  • Целый

  • Вещественный (с дробной частью)

  • Логический (Да - true или Нет - false)

  • Символьный (текст + числа)

  • Перечисляемый

  • Тип-диапазон


Перечисляемый тип задаётся упорядоченным набором идентификаторов, напр.,

Type

Color = (Red, Blue, Green, Black);

Week = Monday, Tuesday, Wensday, Thersday, Friday);
Тип-диапазон – это диапазон значений порядкового типа, указываются только начальные и конечные значения

Type

gradus = 0..100;

Week = Monday..Friday);
Структурированные типы данных:

    • Массив

    • Запись

    • Строка

    • Множество

    • файл


11 Cтандартные и пользовательские типы данных

Стандартные типы данных - см. вопрос №10, пользовательские создаются самим пользователем – см. Классы – вопрос №12.
^ 12 Понятие класса и экземпляра класса. Конструкторы и деструкторы
Класс в ЯП С++ - это абстрактный тип данных, который вместе с описанием полей содержит определения функций, предназначенных для работы с этими полями. Класс состоит из данных и методов, они называются элементами класса.

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

Пример: класс avto – для описания данных автомобиля, пригнанного в ремонтную мастерскую:

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

Определение (или описание) класса avto:

Class avto{ // класс с именем avto. Далее, в фигурных скобках – описание полей класса avto

Char model[15]; // символьное (Char) поле для модели автомобиля, массив-строка из 15 символов

Char color[10]; // символьное (Char) поле для цвета автомобиля

Char No[10]; // поле номера авто

Void avto_output(); //заголовок метода avto_output(), который работает с полями класса avto,

}; /* а именно выводит на монитор содержимое полей класса. Список параметров

*/ пуст (внутри скобок параметров нет), т.к. метод работает только с данными этого класса;

Метод класса avto:

void avto::avto_output()

{

cout<<"\n Model is"<<model;

cout<<"\n Color is"<<color;

cout<<"\n No is"<<No;

}

Знак (::) - это оператор области видимости, показывает принадлежность метода avto_output() к классу avto.

Экземпляром (или объектом) класса называется переменная, принадлежащая к классу, т.е. его конкретное значение. Например, avto bmv, honda[12] - экземпляры класса avto.

^ Bmv означает модель автомобиля, а honda [12] – что модель honda может быть описана 15-ю символами, напр., honda_civic_exi.
Конструктор – это специальный метод, который выделяет память под объект некоторого класса. Имя конструктора совпадает с именем класса, он вызывается каждый раз, когда в программе встречается описание любого объекта (переменной) класса, к которому он принадлежит. Если конструктор не указан, то он генерируется компилятором автоматически. Например, описание

avto volga;

создаст новый объект – переменную volga, для которой компилятор автоматически выделит ячейки памяти. Можно создать конструктор, который не только отведёт память под переменную, но и присвоит её полям начальные значения.

Деструктор – особый метод, предназначенный для освобождения памяти от объекта какого-либо класса. Деструктор является элементом данного класса и может быть только один в данном классе. Имя класса и деструктора совпадают, но перед деструктором ставится значок "тильда". Напр., для класса avto деструктором будет avto
^ 13 Классы памяти

Определяют размещение объекта в памяти и продолжительность его существования. Для явного задания класса памяти в описании объекта используются идентификаторы:

аuto – автоматически выделяемая, локальная память

register - автоматически выделяемая регистровая память,, использует не ОЗУ, а регистры памяти

static - приписывается переменным и функциям и доступен только в модулях программы, в которых он определён.

Extern – приписывается переменным и функциям и доступен во всех модулях программы.
^ 14 Подпрограммы. Их назначение. Типы подпрограмм в ЯП Паскаль и С\С++

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

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

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

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

Формат функции:

function <идентификатор>[(<список формальных параметров>)]: <тип результата>;

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

Описание функции приводится в разделе описаний основной программы после раздела переменных var. В теле программы функция вызывается по её имени с фактическими параметрами для вычисления.
Пример 1 Вычислить у = (х2 + 5!).

(Факториал – это произведение натуральных чисел, напр., 5! = 1*2*3*4*5)

Оформим вычисление факториала как подпрограмму-функцию:

program funct1;

var x, y: real; // начало раздела описаний программы

F: integer;

function Factоrial (N:integer): integer; //описание

// функции Factоrial типа integer с параметром N типа integer

var i, N: integer;

begin

F:= 1;

for i:=2 to N do

F:=F*1;

Factorial:= F;

End function; // конец описания функции

begin // начало тела основной программы

x:=3.45;

y:=sqr(x – Factorial(5)); // Вызов функции Factоrial с аргументом N =5 как операнда
write ('y=', y);

end. // конец тела основной программы
Параметры, описанные внутри функции (i, N) называются локальными и действуют только внутри функции. Параметры, описанные в разделе описаний программы (х, у, F) называются глобальными и действуют в самой программе и во всех её подпрограммах – функциях и процедурах, поэтому глобальную переменную F в описании функции Factоrial объявлять не надо.
Процедура - это часть программы, предназначенная для решения задачи или подзадачи. Это последовательность операторов, вычисляющая одну или несколько функций или выполняющая другую задачу (рисование рамки таблицы, оформление экрана и т.п.). Перед использованием процедуру необходимо объявить.

Формат объявления процедуры:

sub <имя процедуры>[(<список формальных параметров>)];

end sub

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

Пример Вычислить у = (х2 + 5!).

program vybor;

var y, X: real; // начало раздела описаний основной программы vybor

sub Factоrial (N:integer); // начало процедуры Factоrial

var i: integer;

begin

F:= 1;

for i:=2 to N do

F:=F*1;

end sub; // конец процедуры Factоrial

begin // начало тела основной программы

Х:= 5.1; N:= 5;

Factоrial (N); // вызов процедуры с параметрoм N

y:= X + N;

end. // конец тела основной программы







Скачать файл (194 kb.)

Поиск по сайту:  

© gendocs.ru
При копировании укажите ссылку.
обратиться к администрации
Рейтинг@Mail.ru