Информатика / Алгор-ция и програм-е
.docАЛГОРИТМИЗАЦИЯ И ПРОГРАММИРОВАНИЕ
Эт. реш-я зад. на ЭВМ
-
Пост-ка зад(форм-ка зад.начин-ся с опис-я исх-х данных).Опред-ся цель реш-я,арг-ты(входн. данные) и рез-ты(вел-ны,к-ые надо найти).
-
Постр-е мат.м-ли(требов-я к мат.м-ли:проста(решаема),адекватна(ф-лы д/опис-ть именно дан. пр-сс)
-
Выбор м-да реш-я
-
Постр-е алг-ма реш-я(определ-ся последоват-ть выполн-я д-ий;алг-м в виде блок-схемы)
-
Напис-е пр-мы,отладка(исправл-е синтакс-х и семант-х ошибок зад.)
-
Тестир-е(реш-е зад. с пом-ю пр-мы,ответ на к-ый уже известен.Тест-е проводят с нек-ым заранее продум-м набором исходных данных)
-
Реш-е зад.
-
Анализ резул-в(получ-й резул-т д/лежать в обл. реш-я дан.зад.)
-
Сопровожд-е пр-мы
Алг-м–понятн. и точн. предпис-е исполнителю совершать последоват-ть д-ий, направл-х на достиж-е указ-х целей.
В осн. постр-я алг.–принцип расчлен-я сложн. пр-сса реш-я на элемент. д-я.
Св-ва алг-ма:
-
Масс-ть(алг-м д/описывать круг однотипных задач,входн.данные к-ого измен-ся в определ-х пределах)
-
Детерминиров-ть (определ-ть).(Обусловл-ть всех шагов алг-ма потребн-ми дан. задач)
-
Понятность(все д/быть опнятно и исполн-лю и разраб-ку алг-ма)
-
Дискретность(четкое раздел-е всего пути реш-я зад. на отд.этапы,шаги)
-
Результ-ть(точн. выполн-е предписания алг-ма д/привести к рез-ту за конечн. Кол-во шагов)
Способы представл-я алг-мов:1.Опис-е с пом-ю алг.яз.(алг.яз. предст-т собой совок-ть обознач-ий и правил для единообразной записи алг-ма(яз.прогр-я). 2.Словесное опис-е алг-ма(рецепт). 3.С пом-ю блок-схем(графич-ое представл-е алг-ма).
Исполнитель–у-во,выполн-ее команды
Команда–указ-е исп-лю вып-ть нек-рые д-я.
Исполнитель д/действовать формально.
Базовые стр-ры алг-мов:1.Линейный(пр-ма,в к-ой все оп-ры выполн-ся последоват-но,в том пор-ке,в к-ом они описаны).2.Развилка(Ветвл-е).Здесь исп-ся составные команды.В-е задает выполн-е либо одного,либо др. оп-ра в завис-ти от выполн-я какого-либо усл-я.3.Цикл(задает многократное выполн-е оп-ра).Выделяют 2 цикла:цикл”пока”с предусловием и цикл”до”с постусл-м.Цикл”пока”:while<усл-е выполн-я>do<тело цикла>(Если тело цикла содержит последоват-ть оп-ров,то говорят,что оно образует составной оп-р,в нач. и в конце к-ого надо писать begin и end.Служебные слова begin и end наз-ют операт-ными скобками,к-ые объединяют неск-ко оп-ров в один составной.Если же тело цикла-1 оп-р(несоставной),то опер-ных скобок не треб-ся.Цикл”до”программ-ся оп-ром repeat<тело цикла>until<усл-е окончания>.Тело цикла м/б как одиночным,так и составным оп-ром,однако begin и end не треб-ся,поск-ку сами слова repeat и until выполняют роль опер-ных скобок.
Вел-на – мн-во информац-х объектов(числа,тексты)
При написании алг-ма для переменной вел-ны вводится обознач-е–имя переменной –идентификатор.
Постоянные вел-ны обознач-ся своими знач-ми.
С т.з. ЭВМ,вел-на есть знач-е,к-ое хранится в ячейке памяти.За кажд. вел-ой закреплена своя ячейка памяти.
Хар-ки 1. Имя. 3. Диапазон знач-ий.
вел-н: 2. Тип. 4. Мн-во допустимых о-ций.
Присваив-е знач-я перем-й,3 способа:
-
С пом-ю оп-ции присваив-я.
-
С пом-ю оп-ции ввода.
-
При передаче данных от фактич-х к формальным пар-рам при вызове вспомогат-го алг-ма.
Св-ва команды присваив-я:
-
Пока перем-й не присвоено знач-е,она остается неопредел-ой.
-
Знач-е перем-ой присваив-ся до след. переприсваив-я.
-
Нов. знач-е перем-ой уничтожает старое.
Арг-ты–исходн. данные.
Рез-ты – искомые вел-ны.
Принципы структурн. программ-я:
-
Пр-му для реш-я любой зад. можно составить только из структур следов-я, ветвл-я и цикла.Эти структуры м/соед-ся либо последоват-но,либо вложением одной в др.
-
М-д последоват-ой детализации.Задача сначала рассматрив-ся вцелом,затем разбивается на отдельн. подзадачи до тех пор,пока их нельзя б/решить с пом-ю элемент-х команд.
М-ды СП позволяют организовать работу коллективов.
ЯП – формальные,специально для общ-я чела с ПК.
Алфавит–фиксиров-й для данн. языка набор символов,допускаемых для составл-я текста пр-мы на этом языке.
Синтаксис–с-ма правил,определ-х допустимые конструкции ЯП из букв алфавита.
Семантика–с-ма правил однозначного толков-я отдельных языковых конструкций, позвол-х воспроизвести пр-сс обработки данных.
Алфавит языка:лат. буквы,арабские цифры,спец символы (+, –, /, %, !, =, ?, &),управляющие символы(\t, \n, \b).
Идентификатор–символич-ое имя определ-го программного объекта(перем-ой,константы,ф-ции).
Служебные слова:for,do,if,while,else,break,int,long,return.
Имена также называют идентификаторами.И-р. начинается только с буквы и _,м/состоять из букв,цифр, _. Пр-ма–законч-ое опис-е алг-м реш-я задачи на яз. программ-я.
Выраж-е-это правило вычисл-я знач-я.В выражении участвуют операнды,объед-ые знаками оп=ций.Операндами выраж-я м/б константы,переем-ые и вызовы ф-ций.Оп-ции выполн-ся в определ-ом пор-ке в соответствии с приоритетами,как и в мат-ке.Для измен-я пор-ка выполн-я оп-ций использ-ся круглые скобки,Ур-нь их вложенности практически неограничен.Резтом выраж-я всегда явл-ся знач-е определ-ого типа,к-ый определ-ся типами операндов.Вел-ны,участвующие в выражении,д/б совместимых типов.Ф-ции использ-ые в выражении вычисл-ся в 1-ую очередь.
Функции
Опис-е ф-ции:
Function имя[(список пар-ров)]:тип;{заголовок}
разделы описаний
begin
раздел оп-ров
имя:=выраж-е;
end;
Ф-ция вычисляет одно знач-е,к-ое перед-ся ч/имя.След-но,в заголовке д/б описан тип этого знач-я,а в теле ф-ции-оп-р,присваивающий вычисл-ое знач-е ее имени.Этот оп-р необязат-но д/наход-ся в конце ф-ции.Более того,таких оп-ров м/б неск-ко-это определ-ся алг-мом,реализов-ым в ф-ции.
Операторы
Пр-ма состоит из исполняемых оп-ров и оп-ров опис-я.Исполн-й оп-р задает законченное д-е,выполн-ое над данными.Примеры:вывод на экран,занесение числа в память,выход из пр-мы.Оп-р опис-я описывает данные,над к-ми в пр-ме выполн-ся д-я.Исполн-ые оп-ры наход-ся м/служебными словами begin и end.Оп-ры отдел-ся др.от др. ;
Типы данных.
Type Length Range |
unsigned char 8 bits 0 to 255 |
Char(литерный) 8 bits -128 to 127 |
enum 16 bits -32,768 to 32,767 |
unsigned int 16 bits 0 to 65,535 |
short int 16 bits -32,768 to 32,767 |
int 16 bits -32,768 to 32,767 |
unsigned long 32 bits 0 to 4,294,967,295 |
long 32 bits -2147483648 to 2147483647 |
float 32 bits 3.4e-38 to 3.4e+38 |
double 64 bits 1.7e-308 to 1.7e+308 |
long double 80 bits 3.4e-4932 to 1.1e+4932 |
Указатель |
Тип данных. Тип-множ-во знач-ий,к-ые могут принимать объекты пр-мы,и совок-ть оп-ций,допустимых над этими знач-ми.Все допустимые в яз.Паскаль типы подраздел-ся на 2 гр.:скалярные и структуриров-ые.Скал-ые т. подраздел-ся на стандартные и описанные пользов-лем.Структ-ые т. базир-ся на скал-ых типах и могут содержать их разл. комбинации.К стандартным скал-ым типам относ-ся данные целочисл-ого,байтого,веществ-ого,литерного и булевского типов.К структур-ым типам относятся:строки,массивы,множ-ва,записи,файлы и указатели.
Строка-последоват-ть символов,заключ-ая в апострофы.
Массив-структур-й тип данных,состоящий из фиксиров-го кол-ва Эл-тов,имеющих один и тот же тип.
Множ-во-структ-ый тип данных,представл-ий набор выбранных по какому-либо признаку или группе признаков объектов,к-ые можно рассматр-ть как единое целое.
Запись-структ-ый тип данных,состоящий из фиксиров-го числа компонентов разного типа.Определ-е типа записи начин-ся зарезервированным словом record(запись) и задает для каждого компонента,называемого полем,его тип и обозначающий это поле идент-р.
Указатель-структ-ый тип данных,состоящий из неограниченного множ-ва указывющих на однотипные Эл-ты знач-ий.Использ-ся при работе с динамич-ми стр-рами данных.
Файл-структ-ый тип данных,состоящий из последоват-ти компонентов одного типа и одной длины.
В стандартном Паскале отсутствует строковый тип.В Паскале целые и веществ-ые-это гр. Типов.Каждый тип имеет свой идентиф-р.Тип данных назыв-ся порядковым,если он состоит из счетного кол-ва знач-ий,к-ые м/пронумеровать.Отсюда следует,что на этом множ-ве знач-ий сущ-ют понятия “след-ий”,”предыд-ий”.
Оп-ции: арифметич-ие,логич-ие,битовые.
Программир-е алг-мов обработки данных:
Поиск: линейный, делением пополам.
Сортировка:
Характеризуется: кол-вом сравнений и присваив-ий.
-
Выбором
-
Обменом
-
Вставкой–массив делят на 2 части:отсортированная и нет, затем, находят место 1 элемента неотсортиров-ой части в отсортиров-ой и вставляют его. и т.д.
ООП
Принципы ООП:
1)Абстрагирование – процесс выделения абстракции предметной обл задачи. А-я – это сов сущ принципов, хар-к неj объекта. Эти хар-ки сущетвенно отл данный о-т от др о-тов
2)Огранич-е доступа – скрытие отдельных Эл-тов реал-ции абстракций. Этот принцип предпологает разграничение а-й на 2 части. В интерфейсной части размещ сов эл реал-ции а-ии, j доступны извне
3)Модульность – реал-ция проги в виде отдел частей
4)Иерархия – ранжированная ил упор сис а-й. Наслед св-в в и-ии – наслед-ся струк одной а-ии др-й
5)Типизация – огр-я, наклад-ые на св-ва о-та и препят-щие взаимод-ю о-тов разн типов. Тип может связываться с прог-ным о-том статически (на стад компил – раннее связ-е), дин о-т опр-ся на стад вып проги – позднее связ)
6)Параллелизм – неск о-т одновременно могут нах-ся в атив сост (на многопроцессорных машинах)
7)Устойчивость – а-я ожет суз во времени независ от процесса, породившего данный о-т. Бывают временные о-ты: хр-т промеж р-ты; локальные о-ты: сущ в рамках своёго блока; глоб о-ты: сущ во время раб всей проги.
[01] Формула объекта. Объекты и компоненты.
Объект – U данных с проц –ф-ми, j работают с ними. Поля – хранит данные. Методы – проц и ф-ии, j может вып объект. Св-ва – цвет, видимость, разм…, их можно читать и уст, программно это реал-ся ч/з методы. Объект – это неj сов полей данных и методов их обработки. Непосредственный доступ к полям отсут, для этого сущ методы. Компоненты – это объединение о-та с его прог-ной визуал-й на экране.
Каждый объект:
-помнит необходимую инф-цию;
-умеет делать нек-ый набор д-ий;
-характериз-ся набором св-в.
То,что объект помнит хранится в его полях;то что объект умеет делать реализовано в виде процедур и ф-ций,они наз-ся м-дами.Св-ва объектов аналогичны обычным объектам.Знач-я св-в можно устанавл-ть и читать,а программно это реализ-ся ч/поля и м-ды.
Объект–это нек-рая совок-ть полей данных и м-дов их обработки.Прямой доступ к полям данных отсутствует,для этого сущ-ют спец. м-ды.
Объекты и компоненты:С появл-м Win программиров-е пользоват-го интерфейса усложнилось.Решили объед-ть объект и его визуальное представл-е в единое целое – компонент.Комп-ты объединяют программн. часть объекта с его видимым представл-м на экране.Комп-т в Delphi явл-ся строительным кирпичиком среды визуальн. программиров-я и приспособлен к визуальн. установке св-в.Это все упростило разработку W-приложений.
Классы объектов:Каждый объект принадлежит к нек-му классу. Класс –это абстрактное,обобщ-ое опис-е мн-ва однотипных объектов.Объект явл-ся конкретным представл-м своего класса –экземпляром класса.
С пом-ю класса одновременно описыв-ся данные и м-ды,работ-ие с этими данными,а сам объект явл-ся экземпляром класса.По своей стр-ре класс напоминает стр-ру записи:
Type
<имя класса>=Class
{здесь идет опис-е полей}
<имя поля>=<тип>
<имя поля>=<тип>
{опис-е м-дов}
<м-д 1>
<м-д 2>
Иногда констр-ры и дестр-ры м/использ-ть для своих специф-х назнач-ий.Для этого в классе к-ры и д-ры д/б описаны:
Procedure Print
Construction T.Person.Create
Begin
FName:=’ ‘;
FAdress:=’ ‘;
End;
Так же можно описать д-р,но надо помнить,что его можно применить только в существ-х объектах,поэтому н/применить м-д:Free.М-д Free вначале проверяет сущ-ет ли об-т.
Пр.:
Student:=TPerson.Create
Student.Free;
Основн. принципы ООП:
– инкапсуляция–объед-я данных и оп-ций в одной стр-ре.Это сделало объекты похожими на программные модули и обеспечило сокрытие их внутр-го устр-ва.
– наследование–при создании нового класса,немногим отлич-ся от старого,нет необход-ти перепис-ть все поля и м-ды.Дост-но в новый класс добавить новые м-ды и св-ва.Пр-сс порожд-я новых классов на основе старых –наследов-е.Объявл-й новый класс явл-ся потомком(дочерним),а старый класс–предком(родительским).Наследов-е –это такое отнош-е м/объектами,когда другой объект повторяет стр-ру и повед-е другого.
– полиморфизм–можно изменять работу уже существ-их в базовом классе м-дов,т.е. это св-во разл-х объектов выполнять одно и тоже д-е по-разному.
ИДЕОЛОГИЯ ПРОГРАММИР-Я ПОД WINDOWS.
Пр-мы в DOS предст-т собой набор команд м/Begin и end.В осн. работы Win лежит пон-е события.К соб-м относ-ся д-я пользов-ля.Есть набор пр-мм,к-ые обрабатывают д-я пользов-ля –обработчики событий.Пр-ма представ-т собой набор:событие –отклик. Обработка событий происходит многоступенчато.Анализ событий при щелчке по кнопке:
-
есть ли обработчик на нажатие кнопки?
-
если обработчик соб-я есть,то выполн-ся отклик на это соб-е(окно свернулось)
-
если обработчика соб-я нет,то отклика не происходит.
-
Управл-е перед-ся окну(обработчик события по окну)
-
Если там нет отклика,управл-е перед-ся W-с-ме.
В осн. идеологии Delphi лежит технология визуально – событийного программир-я.
-
Визуальн. среда по указ-ю программиста строит форму со всеми комп-тами и формирует исходный код пр-мы.
-
Программист дописывает на языке ОР детали пр-мы.Он делает это во встроенном редакторе кода.
-
Визуальн. среда по команде программиста сама компилирует код и запускает.
Стр-ра прилож-я в Delphi: прилож-е наз-ся проектом. Проект в целом состоит из большого кол-ва файлов.Каждый файл –строго определ-ые ф-ции.Компилятор последоват-но обрабатывает все файлы и создает exe файл.Для кажд. проекта – отдельную папку.
Осн. категории Delhi:
-св-ва-атрибут объекта,к-й опред-т как объект выглядит или как он себя ведет.Left,Top,Width-опред-т вид объекта;Visible-как он себя ведет.Св-во устанавлив-ся 2-мя м-дами:set<имя св-ва>,get<имя св-ва>.Св-ва м/установить 3-мя способами:в инспекторе объектов,пр-ма,визуально.
-события-св-ва процедурного типа,предназначены для созд-я пользоват-ой р-ции на те или иные д-я.Различают события:мыши,клавы и системные события(OnActive,OnCloseQuery,OnClose).
-м-ды-процедура или ф-ция класса,определ-ая повед-е объекта.
Процедурные и непроцедурные Я.П.
С-ма предписаний для реализации данн. алг-ма. П.К. выполнит только то,что указано.
Исп-ся, когда невозможно дать четкий алг. реш-я.Это опис-е нек-рой предметной обл.,к к-ой относ-ся решаемые задачи. Опис-е состоит из данных,фактов,сведений из предметной обл. и правил истолкований этих фактов.
Фортран (Fortran) –появился первым.Предназначен для реш-я научно-тех. задач. Разработан в сер. 50-х фирмой IBM. Экономно использует память. Не структурный.
Бейсик (Basic) –потомок Ф.,был популярным.Обрабатывает не только числа,но и тексты.Появился в 60-х.
Алгол –появился в Европе в противовес Ф.Пригоден для реш-я широкого круга задач.Ему уже были присущи черты структурир-ого яз. Не получил распр-я,т.к. Ф. создан IBM.
Паскаль (Pasсal) –разработан Н. Виртом спец. для обуч-я студентов структурному програм-ю
Си –задуман как инструмент для разв-я и реализации О.С. Unix Почти единств. язык,к-ый позволяет решать задачи,требующие машинно-ориентиров-ых ассемблеров. Появился в нач. 70-х.
Кобол –ориентирован на общий бизнес.Позволяет эфф-но работать с больш. кол-вом дан. Сущ. возмож-ть поиска и сортировки инф-и. Удобен и понятен.
Лисп –ориентирован на динамическую обработку дан. Не сущ. разл-я м/д данными и лисп-прогр., все считается списками. Позволяет эфф-но обрабатывать –эти списки. Приспособлен для реш-я задач,для к-ых отсутствует четкий алг-м.Исп-ся в с-ме искусств-го интеллекта.
Пролог (Prolog) –европейский яз.Основн. концепция –перевод логической задачи в текст прогр. П.К. сам решает задачу из набора фактов и правил работы с этими фактами. Программист лишь опред-т объекты,факты и логические связи м/ними.