Изтегли

Download Report

Transcript Изтегли

Модул I.
Основи на информатиката и компютърната техника
1. Апаратно и програмно осигуряване на компютри.
 Организация и архитектура на базова компютърна конфигурация
 Представяне на информацията в компютърните системи, кодиране
 Програмно осигуряване на компютърните системи. Базови,
Системни и Приложни програмни системи. Операционни системи и
транслатори.
2. Основни етапи от разработването на програмно
осигуряване. Алгоритмизация
 Етапи на разработването на програмно осигуряване
 Алгоритми и свойства на алгоритмите
 Базови алгоритмични структури и тяхното
представяне
програмно
1
1. Апаратно и програмно осигуряване на компютри.
Организация и архитектура на базова компютърна конфигурация
За изпълнение на необходимите задачи в състава на
компютъра се включват следните функционални
елементи:
 основна (оперативна) памет
 външна памет
 процесор
 устройства за въвеждане на информация
 устройства за извеждане на информация
 комуникационни устройства
2
1. Апаратно и програмно осигуряване на компютри.
Организация и архитектура на базова компютърна конфигурация
В зависимост от изчислителните си възможности
компютрите могат да бъдат разделени на следните
групи:
 персонални компютри;
 професионални работни станции;
 бизнес-компютри;
 суперкомпютри.
3
1. Апаратно и програмно осигуряване на компютри.
Организация и архитектура на базова компютърна конфигурация
Причините за разпространение на ПК
 относително ниските цени;
 висока надеждност, компактност и простота на експлоатация;
 ориентация към широк кръг потребители с различно ниво на
подготовка;
 възможност за бърза промяна на набора от технически
средства;
 наличие на огромно количество разнообразни програмни
средства приложими в различни области.
4
1. Апаратно и програмно осигуряване на компютри.
Организация и архитектура на базова компютърна конфигурация
5
1. Апаратно и програмно осигуряване на компютри.
Организация и архитектура на базова компютърна конфигурация
Архитектура на базова компютърна конфигурация







Основна памет (RAM)
Външна памет (HDD,FDD, CD,DVD и др.)
Процесор
Дънна платка
Входни устройства.
Изходни устройства
Комуникационни устройства
6
1. Апаратно и програмно осигуряване на компютри.
Организация и архитектура на базова компютърна конфигурация
Основна - оперативната памет (RAM)
 Използва се за кратковременно съхраняване на обработваните данни и
програми.
 С изключването на захранването данните се загубват.
Типове RAM памети според организацията и принципа на действие:
- Fast page mode –бърз страничен достъп
- Extended data out – разширен изход на данните
- Single inline memory module – модул памет с едноредово
разположение на изводите
DIMM
- Dual inline memory module – модул памет с двуредово
разположение на изводите
RIMM
- Rambus inline memory module – модул памет на Rambus
DDR
- Double data rate – двойна скорост на предаване на данните
SRAM – Static RAM – статична RAM памет
DRAM – Dynamic RAM – динамична RAM памет
SDRAM – Synchronic DRAM – синхронна динамична RAM памет
FPM
EDO
SIMM
7
1. Апаратно и програмно осигуряване на компютри.
Организация и архитектура на базова компютърна конфигурация
Външна памет
 Използва се за дълговременно съхраняване на
обработваните данни и програми.
 Цялата съхранявана информация във външната
памет е организирана в обекти наречени файлове .
Видове външни устройства






твърдия диск ( Hard Disk, HD, уинчестер ).
гъвкави магнитни носители ( Floppy Disk, FD )
компакт-дискове ( CD, Compact Disk )
FLASH Memory
Ленточетящи устройства
Карточетящи устройства
8
1. Апаратно и програмно осигуряване на компютри.
Организация и архитектура на базова компютърна конфигурация
Процесор
 Процесора е устройство което изпълнява обработката на данни
съхранявани в основната памет, в съответствие с програмата
намираща се в основната памет.
 Всяко действие на компютъра се задава от изпълняваната
програма.
 Всяка програма се състои от отделни команди ( инструкции ),
реализиращ набор от основни елементарни операции, такива
като
сумиране на две числа, избор на необходимите данни от
паметта, запис на данни в паметта, сравняване на две числа и
т.н
 Всички команди са закодирани и са понятни за процесора.
 Основна характеристика на процесора се явява неговото
9
бързодействие, т.е. брой изпълнени операции за единица
1. Апаратно и програмно осигуряване на компютри.
Организация и архитектура на базова компютърна конфигурация
Дънна платка
 Дънна платка – MotherBoard, е основната платка, върху която се
монтират повечето от останалите елементи.
 Всички задължителни елементи без периферията се монтират върху
дъното.
 Самата дънна платка може да поддържа различни системни честоти.
 Една дънна платка може да поддържа различни процесори, но винаги
от
един и същи тип.
 Всяко дъно има различни слотове за поставяне на платки. Това са един
или два слота тип ISA (много остарял, но все още се поддържа и в
найсъвременните дъна с цел съвместимост, все още се ползва само от
аудио и мрежови карти, и то рядко), няколко слота PCI (каквито са
повечето карти), и (в по-новите дъна) един слот AGP (той е
специализиран за графични карти).
10
 Управлението на отделните компоненти се осъществява от чипсета.
Организация на дънна платка
11
Дънна платка
12
1. Апаратно и програмно осигуряване на компютри.
Структура на програмното осигуряване
13
Еднозадачни и еднопотребителски ОС
Операционни системи (ОС)
Многозадачни и еднопотребителски ОС
Многозадачни и многопотребителски
ОС
Интерпретатори и компилатори
на програмни езици от високо ниво
Програмни системи за създаване на
потребителски програми
Текстови редактори
Свързващи редактори
Средства за настройка на програми
Мрежи с шинна топология
Базово ПО
Мрежово програмно осигурване
Мрежи с кръгова топология
Мрежи със звездообразна топология
За връзка с СМ ЕИМ
Комуникационно програмно
осигурване
За връзка с ЕС ЕИМ
За връзка със съобщителни
линии и канали за връзка
За връзка с ПК
ПО за ПК
Система за управление на
база от данни (СУБД)
Системи за управление
на бази данни (СУБД)
Програмируеми СУБД
Библиотеки за създаване на СУБД
Програмни системи за текстообработка
Многофункционални приложни
програмни пакети
Електронни таблици
Програмни системи за оптимизация
Програмни системи за делова графика
Приложно ПО
За автоматизация на проектирането (САПР)
За информационни системи
Програмни пакети за
конкретни приложения
За административни системи
За системи за обучение
14
1. Апаратно и програмно осигуряване на компютри.
Операционни системи (ОС)
Операционната система е набор от програми, както
обикновени така и микропрограми, които обезпечават
възможността за използване на апаратурата на компютъра
Функции на ОС
1. Определя “интерфейса с потребителя”;
2. Обезпечава разделни апаратни ресурси между потребителите;
3. Дава възможност за работа с общи данни в режим на колективно
ползване;
4. Планира достъпа на потребителя към общите ресурси;
5. Обезпечава ефективно изпълнение на операциите по вход и
изход;
6. Осъществява възстановяване на информацията и изчислителните
процеси в случай на грешка.
15
1. Апаратно и програмно осигуряване на компютри.
Ресурси под управлението на ОС
1. Управление на централния процесор (процесори) чрез
планиране на времето за съвместно използуване от
потребителските и системните програми;
2. Обработка на прекъсванията и синхронизация на достъпа до
ресурсите на изчислителната система;
3. Управление на паметта чрез разпределение на необходимата
памет за програмите по време на изпълнението им;
4. Управление на входно-изходните операции;
5. Управление на данните и задачите за изпълнение.
16
1. Апаратно и програмно осигуряване на компютри.
Видове структури на Операционни Системи
Ниво 3
Ниво 2
Ниво 1
Ниво 0
Реална
машина
ОС с йерархическа структура
Ниво
3
2
1
0
Функция
Управление на файлове
Управление на паметта
Управление на вход-изход
Диспечеризация и управление на ресурсите
17
1. Апаратно и програмно осигуряване на компютри.
Видове структури на Операционни Системи
Виртуална машина
П
1
тестов
потребител
П П
2 3
П
4
операцонна
с-ма
ОС1
ОС3
(тест)
ОС2
Потребител 5 (Автономна програма)
монитор виртуална машина (МВМ)
реална машина
18
1. Апаратно и програмно осигуряване на компютри.
Видове структури на Операционни Системи
Мултипроцесорни системи
файл
ЦП
ЦП
ОС
ОС
памет
памет
файл
ЦП
файл
ОС
пам ет
19
1. Апаратно и програмно осигуряване на компютри.
Видове структури на Операционни Системи
а) Мултипроцесорни системи реализиран принципа главен-подчинен
б) Мултипроцесорни системи реализиран принципа главен-подчинен
ЦП
OC
ОС
ЦП
фай
л
ЦП
ЦП
памет
фай
л
ЦП
памет
ЦП
a)
б)
20
1. Апаратно и програмно осигуряване на компютри.
Обзор на съществуващите програмни системи за транслиране
 Транслатор се нарича програмна система, която преобразува (превежда) текстове от даден формален
език на друг формален (компютърен) език.
 Езикът, от който се извършва превод, се нарича входен език на транслатора, а езикът, на който се прави
превод - изходен за транслатора. Ако изходният език представя програма, годна за изпълнение, той се
нарича още обектен език.
 Когато входният език е от високо ниво (ПАСКАЛ, АДА, С), а изходният е от ниско ниво (асемблер,
машинен език), транслаторът най-често се нарича компилатор
 Специален вид транслатори са асемблерите. Входният език на асемблера се нарича символичен език
(асемблерен код, автокод и др.), а изходният му език е машинен код в абсолютна или преместваема
форма.
 Транслатори, които превеждат от един език от високо ниво на друг език от високо ниво, се наричат
конвертори.
 Интерпретаторът може да работи по два основни начина:
а. Да обработва и изпълнява направо (директно) входния текст на програмата. В такъв случай периодът на
транслация и периодът на изпълнение не са разграничени - те протичат едновременно.
б. Да изпълнява програма на междинен език, получена в резултат на транслация (компилация). В този
случай периодът на транслация и периодът на изпълнение са разграничени. Този подход към
реализацията на програмния език се нарича полуинтерпретация.
21
1. Апаратно и програмно осигуряване на компютри.
Текст на входен език
Текст на входен език
Текст на входен език
Транслатор
Транслатор
Интерпретатор
Обектен код
Междинен код
Процесор
в)
Процесор
Интерпретатор
а)
Процесор
б)
Фиг..1 Видове транслатори. а) Компилатор;
б) Транслатори с вградени интерпретатори в) Интерпретатор22
Представяне на информацията в
компютърните системи, кодиране
 Компютрите могат да обработват данни, които се представят в
специален вид – само с нули и единици.
 Всяка 0 или 1 се нарича бит.
 Един бит - е минималната единица информация, описва се с 2
възможни състояния.
 Осем бита се обединяват в байт: 00101011, 00000000, 11111111,
10101010.
 Байт - основна единица за представяне на информацията в
компютрите.
 Цялата информация в компютрите се представя посредством нули и
единици,
организирани
в
байтове.
Такова
представяне
на
информацията се нарича цифрова или двоична.
 Обработката на
двоичните данни се изпълняват с помощта на
специални правила, познати като двоична аритметика.
 В зависимости от решаваните задачи в един байт може да се съдържа
закодирано представяне на различни типове данни.
 Най-простото и исторически първи се явява кодирането на цели числа.
23
Бройни системи
 Под бройна система се разбира начинът за представяне на числата с
краен брой символи, имащи количествени стойности.
 Символите, с които се представят числата, се наричат цифри.
 В компютърната техника се използуват позиционни бройни системи.
 Позиционна е бройната система, в която числовата стойност на
цифрата зависи не само от нейния символ, но и от нейното място
(позиция) в записа на числото.
 Броят на различните цифри, които се използуват за представяне на
числата в позиционна бройна система, се нарича основа на бройната
система.
 В позиционна бройна система числата се записват като
последователност от цифри.
Например числото А в позиционна система с основа p се записва по
следния начин
A(p)=am-1 am-2... ak… a1 a0 a-1 a-2… a-i…. a-n
 Номерът на дадена позиция по отношение на десетичната запетая
се нарича разред на числата.
 Числото А(p) може да се представи и с полинома
A(p)=am-1pm-1+am-2 pm-2+... +a1 p1+a0 p0+ a-1p-1 a-2 p-2 +…+ a-np-n
24
ПРЕДСТАВЯНЕ НА ИНФОРМАЦИЯТА В КОМПЮТЪРНАТА ТЕХНИКА
Представяне на числата в позиционни бройни системи
A(p)=am-1pm-1+am-2 pm-2+... +a1 p1+a0 p0+ a-1p-1 a-2 p-2 +…+ a-np-n
Бройни системи
Десетична
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Двоична
00000
00001
00010
00011
00100
00101
00110
00111
01000
01001
01010
01011
01100
01101
01110
01111
10000
10001
10010
10011
10100
Осмична
0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
21
22
23
24
Шестнадесетична
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
10
11
12
13
14
(2)
Преобразуване на числата от една бройна система в друга
Цялата и дробната част на всяко число А, записано в бройна
система с основа р, могат да се представят в каква да е нова
бройна система с основа q c полиноми аналогично на (2):
Aц(p)=am-1qm-1 + am-2 qm-2+... +a1 q1+a0
(3)
-2
-n
-1
Aдр(p)=a-1q + a-2q +…+ a-nq
(4)
Броят на необходимите разреди за записване на числото в
новата бройна система с основа q може да е различен от броя на
разредите на числото в изходната бройна система. Уравненията
(3) и (4) могат да се запишат още по следния начин:
Aц(p)=(…((am-1q+am-2) q+am-3)q+... +a1) q+a0
(5)
Aдр(p)= q-1(a-1 + q-1(a-2+…+q-1 (a-(n-1)+ a-nq-1)
(6)
25
Пример 1. Да се преобразуват от десетична в двоична бройна система следните числа:
а) 109,625; б) 32,724. Дробната част на второто число да се преобразува с точност до петия двоичен разред.
а)
остатък
109 : 2 = 54  1
54 : 2 = 27  0
27 : 2 = 13  1
13 : 2 = 6  1
6:2= 30
3:2= 11
1:2= 01
109(10) = 1101101(2)
109,625 = 101101,101(2)
б)остатък
32 : 2 =16 0
16 : 2 = 8 0
8:2= 40
4:2= 20
2:2= 10
1:2= 01
32(10) = 100000(2)
0,625
x 2
1,250
x 2
0,500
x2
1,000
0,625(10) = 0,101(2)
0,724
х2
1,448
х2
0,896
х2
0,724(10) = 0,10111(2)
1,792
х2
1,584
х2
1,168
32,724(10) = 100000,10111(2)
26
Пример2 Да се преобразува от десетична в
осмична бройна система числото 166,0625.
остатък
0,0625
166 : 8 = 20  6
х8
20 : 8 = 2  4
0,5000
2:8= 02
х8
4,0000
166(10) = 246(8)
0,0625(10) =0,04(8)
166,0625(10) = 246,04(8)
27
Пример 3 Да се преобразува от десетична в шестнадесетична
бройна система числото 315,03125.
остатък
315 : 16 = 19 11
19 : 16 = 1  3
1 : 16 = 0  1
315(10) = 13В(16)
315,03125(10) =.13В,08(16)
0.03125
.х 16
0,50000
.х 16
8,00000
0,03125(10) = 0,08(16)
28
Пример.4 Да се преобразува двоичното число 1101101,101
в десетично.
1101101,101(2) = 1.26 + 1.25 + 0.24 + 1.23 + 1.22 + 0.21 + 1.20+
+ 1.2-1 + 0.2-2 + 1.2-3 = 64 + 32 + 8+ 4 + 1+1/2 + 1/8
= 109,625(10)
Пример5 Да се провери дали правилно са били
преобразувани числата в примерите 2 и 3.
246,04(8) = 2.82 + 4.81 + 6.8° + 0.8-1 + 4.8-2
= 128 + 32 + 6 + 4/64 = 166.0625(10)
13В,08(16) = 1.162 + 3.161 + 11.16° + 0.16-1 +8.16-2=
= 256 + 48+11 + 8/256 = 315,03125(10)
29
Правила за преобразуване на числа от осмична и
шестнадесетична бройна система в двоична и обратно
 При преобразуването от осмична в двоична бройна
система всяка цифра на осмичното число се записва като
триразредно двоично число {триада).
 При преобразуването от шестнадесетична в двоична
бройна система всяка цифра на шестнадесетичното число се
записва като четириразредно число (тетрада).
 При обратното преобразуване двоичното число се разделя
на триади (за осмична бройна система) или на тетради (за
шестнадесетична бройна система) вляво и вдясно от
десетичната запетая и за всяка триада (тетрада) се записва
съответната осмична (шестнадесетична) цифра.
 При необходимост от ляво и дясно двоичното число може
да се допълни с незначещи нули.
30
Пример 6. Да се преобразува осмичното число 63,5 в двоично, а
двоичното 1101101100,101110 в шестнадесетично
63,5(8) = 110 011,101(2)
6 3
5
Равенството (съответно преобразуването) може да се провери
по следния начин:
110011,101(2) = 1.25 +1.24 +1.21+1.20+ 1.2-1 +1.2-3 =51,625(10)
 51,625(10) = 63,5(8)
0011 0110 1100,1011 1000(2) = 36С,В8(16)
31
Двоично-десетичен код (BCD)
 Всяка цифра на десетичното число се кодира с
четириразредно двоично число, като се запазва и нейното
десетично тегло.
 Комбинациите — 1010 (А), 1011 (В ), 1100 (С), 1101 (D), 1110
(Е), 1111(F), са забранени за двоично-десетичния код.
Пример 7. Да се запише десетичното число 2067 в BCD код.
2
0010
0
0000
6
0110
7
0111
десетично число
двоично-десетичен код
32
Аритметични действия с числа в двоична бройна система
Правилата за събиране, изваждане и умножение на двоичните числа са следните:
събиране
изваждане
умножение
0+0=0
0–0=0
0x0=0
0+1=1
1-0=1
0x1=0
1+0=1
1-1=0
1x0=0
1 + 1 = 10
10 - 1 = 1
1x1=1
 Събирането и изваждането на многоразредни числа се изпълнява
поразредно.
 При събиране на две единици се получава 0 за дадения разред и пренос
единица в следващия разред.
 При изваждане на 1 от кула се взема заем от по-старшия разред.
 Умножение и деление на многоразредни двоични числа се извършва,
както и умножение и деление на многоразредни десетични числа.
33
Пример 8.
а) Да се съберат числата 101101,01 и 10101,01.
б) От числото 1001101,101 да се извади 10101,011.
в) Да се умножат числата 1010,01 и 101,1.
г) Числото 101101 да се раздели на 101.
а) 101101,01
б)
1001101,101
+ 10101,01
- 10101,011
1000010,10
111000,010
в)
х
1010,01
множимо
101,1
множител
101001
+ 101001
000000
1010,01
х 101,1
множимо
множител
101001
+
000000
101001
101001 .
101001
111000,011
111000,011
34
Забележка: Умножението се извършва, като се започва с младшите
разреди на множителя в първия случай и със старшите разреди във
втория случай.
г)
101101 : 101 = 1001
-
101
000101
-
101
000
35
Пример9. Да се запишат в двоично-десетичен код и да се сумират
десетичните числа 19 и 53
0001 1001  19
+ 0101 0011  53
0110 1100
+
0110
Добавяне на числото 6
0111 0010— 72
Старши Младши
разред
разред
Забележка: Ако в процеса на сумиране на двоично-десетични числа за
даден разред се получи забранена комбинация (от 1010 до 1111).
Необходимо е към нея да се добави числото 6, за да се получи
десетичен пренос към по-старшия разред.
36
Представяне на числата в ЕИМ и аритметични действия с тях
В ЕИМ числата се представят по два начина: с фиксирана и с плаваща запетая.
 При представянето на числата с фиксирана запетая десеЗнак на числото
тичната запетая обикновено се фиксира след знаковия
1 2 3 4 ….. n
разред преди а-1 (фиг.2.16).
aзн a-1 a-2 a-3 ….
a-n
 Числата, представени с фиксирана запетая, по стойности
число A
n разреда за запис на
винаги са по-малки от единица.
двоичното число
 Числата с плаваща запетая се записват като две групи
а)
б)
разреди в разредната решетка (фиг.2б) — на мантисата и
Знак мантиса
Знак порядък
на порядъка. Стойността на дадено двоично число е А =
±М.2±Рaзн a-1 a-2 a-3 ….a-k bзн br br-1br-2 ….b0
 Запетаята на мантисата се фиксира между знаковия
мантиса
порядък
разред азн и а-1.
в)
 Числото, представено с плаваща запетая, се нарича
Фиг. 2.1 Представяне на числа в двоична бройна
нормализирано, ако цифрата а-1. на мантисата не е нула.
система: а) цяло число; б) число с фиксирана запетая;
 Знакът на представяните числа и знакът на порядъка да
в) число с променлива запетая
0  знак ()
се кодират по следния начин:
a зн , bzn  
1  знак ()
37
Прав, обратен и допълнителен код
 Ако двоичните числа са записани със знак, кодиран по описания начин,
казва се, че те са записани в прав код.
 Правият код на числата се използва при изпълнение на операциите
умножение и деление.
 Операциите събиране и изваждане се реализират, като се използува
обратен или допълнителен код на числата.
 За положителните числа правият, обратният и допълнителният код
съвпадат.
 Обратният код на отрицателно двоично число се получава, като в
знаковия разред се запише единица, а цифрите на числото се инвертират
— единиците с нули, а нулите с единици.
 Допълнителният код на отрицателно двоично число се получава, като в
знаковия разред се запише единица, а цифрите на числото се инвертират
и към най-младшия разред се прибави единица.
Пример 10: Да се запишат числата А] =+0,101101 и А2 = = -0,110101 в
прав, обратен и допълнителен код.
[А1]пр = [А1]обр = [А1]доп = 0,101101
[А2]пр = 1,110101; [А2]обр = 1,001010
[А2]доп =1,001010 + 0,000001 = 1,001011
38
Правила за сумиране и изваждане в прав и допълнителен код
 Операцията изваждане се свежда до операция сумиране в обратен или
допълнителен код А—В = [А]о6р +[-B]о6р или [А]доп + [-В]доп
 Резултатът от сумирането на числата в обратен или допълнителен код се
получава в обратен или допълнителен код.
 Ако полученият резултат е със знак плюс, той е в прав код.
 Ако полученият резултат е със знак минус, той е съответно в обратен или
допълнителен код.
 За да се получи правият код, необходимо е от получения обратен код да
се вземе обратен или от получения допълнителен код да се вземе
допълнителен: [А]пр = [[А]обр]обр или [[А]доп]доп
 При събирането на числа в обратен или допълнителен код знаковите
разреди се разглеждат като обикновени разреди на числата.
Те се сумират. Към тях се предава пренос, ако има такъв от сумирането
на най-старшите разреди на числата.
Ако възникне пренос от знаковите разреди, той се отчита по следния
начин: при събирането на числа в обратен код този пренос се сумира с
най-младшия разред на получената сума. При събирането на числа в
допълнителен код този пренос се пренебрегва.
39
Операции с прав и допълнителен код
Пример 11. Да се сумират числата А1 =0,1001101 и А2 = -0,0100011 в обратен
и допълнителен код
[А1]обр = 0,1001101
[А1]доп
= 0,1001101
+ [А2]обр = 1,1011100
[А1]доп
=
10,0101001
+
1,1011101
[А1 + А2]доп = 10,0101010 =0,0101010 = [А1+А1]пр
Първата 1 се пренебрегва
1
[А1+А1]обр=0,0101010=[А1+А1]пр
Пример 12. Да се сумират числата А1 =-0,1000101
обратен и допълнителен код.
[А1]обр = 1,0111010
[А1]доп
= 1,0111011
[А2]обр = 1,1100110
[А2]доп
= 1,1100111
11,0100000
+ 1
[А1+А1]обр = 1,0100001
[А1+А1]пр = 1,1011110
и А2
= 0,0011001 в
[А1 + А2]доп = 11,010001=1,010001= [А1+А1]пр
Първата 1 се пренебрегва
[А1+А1]пр = 1.1011110
40
Операции с прав и допълнителен код
Пример 2.. Да се сумират числата А1 0,1001101 и А2 = 0,1000000 в обратен
код, а числата А3 = -0,1000101 и А4=- 0,1100000 в допълнителен код.
[А1]обр = 0,1001101
[А3]доп = 1,0111011
[А2]обр = 0,1000000
[А4]доп = 1,0100000
1,0001101
0,1011011
грешно
грешно
Възможно е при сумирането на две положителни числа да се получи резултат
със знак минус, а при сумирането на две отрицателни числа да се получи
резултат със знак плюс. Това се получава, когато при сумирането на две
числа, по-малки от единица по абсолютна стойност, се получава резултат, поголям от единица. Този процес се нарича препълванe на разредната
решетка и ако възникне при изчисленията, работата на ЕИМ се
преустановява. За откриване на, препълване на разредната решетка се
използуват модифицирани кодове за представяне на числата — съответно
модифициран прав, обратен или допълнителен код. При модифицирания код
за кодиране на знака се използуват два разреда: знак плюс се кодира с 00, а
знак минус с ll. Ако в процеса на изчисление се получи резултат, за който
41
знаковите разреди са 01 или 10, това означава, че е настъпило препълване.
Операции с прав и допълнителен код
Пример 14 Числата в пример 13 да се сумират в модифицирани кодове.
[А1]мобр = 00,1001101
[А3]мдоп = 11,0111011
[А2]мобр = 00,1000000
[А4]мдоп = 11,0100000
01,0001101
10,1011011
Препълване 0
Препълване 1
Пример.15. Числата А1 = -0,1100110 и А2 = 0,0111000 да се сумират в
модифициран допълнителен код, а числата А3= - 0,1001000 и А4 = 0,1101101
— в модифициран обратен код.
[А1]мдоп
= 11,0011010
[А3]мобр = 11,0110111
[А2]мдоп
= 00,0111000
[А4]мобр = 00,1101101
[А1 + А2]мдоп = 11,1010010
= 100,0100100
[At + A2]np = 1,0101110
+ 1
[А3 + А4]монр = 00,0100101
[A3+ A4]np = 0,0100101
42
Символи, използувани в блоковите схеми
43
Етапи при разработване на програмата
 Анализ на задачата. Анализът има за цел да установи и постави задачата,
която ще решава дадената програма.
 Изработване на спецификация за програмата. Спецификацията е точно и
строго формално описание на изпълняваните от програмата функции.
 Проектиране Фазата на проектирането и следващата фаза –
програмирането, са тясно свързани помежду си.
Проектирането се състои в:
- алгоритмизация на задачата,
- избор или синтез на алгоритми
- описание на алгоритъма с помощта на алгоритмичен език, с блокови
схеми или друг метод.
 Програмиране. Програмирането (някои автори го наричат още кодиране) в
контекста на тази глава представлява изобразяване на алгоритмите със
средствата на даден програмен език.
 Тестване Методите за проверка на програмите се разделят на статични и
динамични. С първите се отстраняват грешки преди изпълнението на
програмата (върху първичния й код или даже върху блоковата схема), а с
вторите се отстраняват грешки чрез изпълнението на програмата.
 Документиране на програмата. Документацията е текстов и графичен
материал, която пояснява работата на програмата. Документация се създава и
поддържа на всички етапи от разработването на програмата. Тя трябва да
44
отразява текущото състояние на програмата.
Методи за проектиране на програми
Низходящ метод. При него задачата се разделя на подзадачи, всяка от тях —
на нова подзадача и т. н. до достигане на елементарни действия (стъпки),
които могат г на избрания език за програмиране. Низходящият метод се нарича
още метод на стъпковата детайлизация, тъй като на всяка следваща стъпка
става детайлизиране (разделяне на дадена задача на подзадачи).
Възходящ метод. При него най-напред се оформят отделните части на
програмата (подпрограми или модули, а понякога и по-дребни единици,
отделни оператори). След това тези части се свързват в по-крупни
функционални групи и най-накрая в завършена система. Този подход в
последно време се смята за ненадежден и дори тъй като функциите на частите
винаги произтичат от функциите на цялото и от там — те са тяхно следствие, а
не предпоставка.
Модулен метод. Тук подзадачите се оформят като подпрограми — модули,
които имат минимален брой връзки с останалата част от програмата
(обкръжението). Удобно е модулите да бъдат определени на функционален
принцип, т. е. да изпълняват точно определени, често използувани функции.
Главното предимство на модулите е възможността те да се програмират,
транслират и настройват отделно и независимо един от друг. Това е с
естествена връзка с възможностите на програмния език който ще се използува.
Например ФОРТРАН, АДА и МОДУЛА предлагат добри средства в това
отношение, а ПАСКАЛ, БЕЙСИК и др. нямат условия за модулно
45
програмиране.
Методи за проектиране на програми
Низходящ метод. При него задачата се разделя на подзадачи, всяка от тях —
на нова подзадача и т. н. до достигане на елементарни действия (стъпки),
които могат г на избрания език за програмиране. Низходящият метод се нарича
още метод на стъпковата детайлизация, тъй като на всяка следваща стъпка
става детайлизиране (разделяне на дадена задача на подзадачи).
Възходящ метод. При него най-напред се оформят отделните части на
програмата (подпрограми или модули, а понякога и по-дребни единици,
отделни оператори). След това тези части се свързват в по-крупни
функционални групи и най-накрая в завършена система. Този подход в
последно време се смята за ненадежден и дори тъй като функциите на частите
винаги произтичат от функциите на цялото и от там — те са тяхно следствие, а
не предпоставка.
Модулен метод. Тук подзадачите се оформят като подпрограми — модули,
които имат минимален брой връзки с останалата част от програмата
(обкръжението). Удобно е модулите да бъдат определени на функционален
принцип, т. е. да изпълняват точно определени, често използувани функции.
Главното предимство на модулите е възможността те да се програмират,
транслират и настройват отделно и независимо един от друг. Това е с
естествена връзка с възможностите на програмния език който ще се използува.
Например ФОРТРАН, АДА и МОДУЛА предлагат добри средства в това
отношение, а ПАСКАЛ, БЕЙСИК и др. нямат условия за модулно
46
програмиране.
Работната документация съдържа:
спецификация (задание) за програмата;
блокови схеми (ако се изискват от приетия метод на
разработка);
описание на алгоритмите на естествен език:
листинги на определения етап от тестването;
окончателен листинг;
носители с изходен код, обектен код и т. н.
Експлоатационната документация съдържа:
 инструкция за потребителя (като минимум);
 инструкция за оператора (ако той е отделно лице);
 инструкция за съпровождане (за системния програмист).
В експлоатационната документация могат да бъдат включени
и други документ; като листинги, описание на основните
концепции на разработката и пр., ако това с изисква от
47
възложителя.
Пример 16: Да се състави блоковата схема на алгоритъма за
провеждане на телефонен разговор от кабина при известен номер.
Представяне на алгоритъма на естествен език:
1. Вдигнете слушалката и ако чувате сигнал „централа", пуснете жетон и
преминете към т.2. Ако няма сигнал или той е „заето", преминете към т.6.
2. Изберете желания номер.
3. Ако сигналът е „заето" или друг сигнал, преминете към т.6, а в противен
случай изпълнете т.4.
4. Изчакайте отговора на абоната. Ако абонатът отговаря, преминете към т.5,
а
в противен случай към т.6.
5. Проведете разговора.
6. Окачете слушалката.
7. При проведен разговор преминете към т.9, а в противен случай към т.8.
8. При следващ опит за връзка преминете към т.1, а в противен случай-към
т.9.
9. Край.17. Да се състави алгоритъм за определяне на χ и у от
Пример
зависимостта х+iy =(a + ib)/(c+id),
където:
х = (ас — bd)/(c2 + d2)
у = (aс — ad)/ (c2 + d2); (c2 + d2)≠0
48
Алгоритмизиране на задачи
Начало
Начало
Вдигане на
слушалката
Въвеждан
е на a,b,c,d
Сигнал
централа
P=a.a-b.b
Q=a.c-b.d
R=b.c-a.d
Не
Да
Пускане на
монета
X=Q/P
Y=R/P
Избор на
номер
Извеждане
на Х и У
Да
Сигнал
свободен
Не
Край
Фиг. 1.3
Чакане на
отговор
Абоната
отговаря
Не
Да
Провежданен
аразговор
Окачване на
слушалката
Да
Не
Проведен
разговор
Следващ
разговор
Не
Да
Край
Фиг. 1.2
49
Алгоритмизиране на цикли
Не/Да
Начало
Начало
Начало
Въвеждане
Въвеждане
Въвеждане
Подготовка
BR = 0
Подготовка
Тяло
Тяло
Тяло
Условие за
край
BR = BR +1
Модификация
Да/Не
Не
Извеждане
Условие за
край
Не/Да
Условие за
край
Да
Край
a)
Да/Не
Извеждане
Извеждане
Край
Край
б)
в)
Фиг. 1.7
При подготовката на цикъла се
задават началните стойности на някои
величини, които се изменят в процеса
на изпълнението на цикъла.
Тялото на цикъла съдържа
операцията или съвкупността от
операции, които се изпълняват
многократно. В него се променят и
стойностите на параметрите, като те
се подготвят за следващо повторение.
Проверката на условието за край
на цикъла осигурява прекратяване на
повторението, когато е изпълнено
определено
логическо
условие,
наречено условие за край на цикъла.
Условието за край на цикъла (изход
от цикъла) може да се зададе по
различни начини.
50