Операционные системы

Классификация программного обеспечениЯ

ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОЙ РАБОТЫ

9.1. Отметьте правильные команды присваивания знаком "+", а записанные неверно- знаком "-".


1. A:=15

2. "13":=x$

3. i:=300:2+5

4. "год":=M

5. 7.56+5:= NOMER

6. B$ ="пароход"

7. N:= 3b+5

8. s3 : 2*a+5*b

9. N$:= утро

10.Z5:=2,7+a


Ответ

9.2. Определите, чему будут равны величины после выполнения ряда присваиваний:

1.A:=15; A:=A*2; A:=A-A; A:=A+20; A:=A*5.

2.B:=1; B:=B+B; B:=B*B; B:=B+B; B:=B*B.

3.N:=20; N:=N+N/2 N:=N+N; N:=N/3+N/10.

4.m:=40; m:=m-10; m:=m/2+m*2; m:=100-m.

5.a:=5; B:=7; B:=A+B; A:=A+B; B:=20+A-B.

Ответ

9.3. Для приведенных ниже алгоритмов определите формы записи.

а) при m= 7; p=2

1. Спросить, чему равно число m.

2. Спросить, чему равно число p.

3. Вычесть из m 1, результат присвоить d.

4. Разделить d на p , результат присвоить А.

5. Умножить p на d , результат присвоить b.

6. Сложить A и b, результат присвоить W.

7. Сообщить результат W.

б) при х=4

№ действия Действие Величина Результат
^ x a
+ a b
- x c
/ b c d
/ c e
- d e y

в) при p=5; q=3

алг ВЗВ

арг p, q

рез y

нач

y:= ( 5*p ) / ( 2*q - p ) + ( 10*q ) / ( 3*p - 4*q )

кон

Ответ

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

Ответ

 

9.5. По блок-схемам алгоритмов определите результат их выполнения приa= 5 и b=10; Запишите данные алгоритмы в виде таблицы, на алгоритмическом языке и в словесно-пошаговой форме.  

Ответ

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

 

 

Ответ

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

а) вывод S б) от R=n до m шаг 1 в) начало г) S:=S+1 д) n<m е) S:=S*T ж) S:=1 з) от T=n до m шаг -1 и) конец к) ввод n, m Ответ 9.8. Опишите данный комбинированный алгоритм по блокам, входящим в состав его структур: а) следование: б) ветвление: в) цикл: Ответ

9.9. В банк был положен вклад в размере N рублей. Через три года он увеличился на 50%. Сколько денег получил вкладчик? Составьте алгоритм решения задачи.

Ответ

9.10.Сберегательный банк 20 месяцев хранил вклад под 2% в месяц и 16 месяцев под 5% в месяц. Определите размер вклада на момент его получения. Составьте алгоритм решения задачи.

Ответ

9.11. Для приведенных блок-схем задайте исходные условия и опишите, как будут выполняться данные алгоритмы. Запишите эти структуры в формульно-словесном виде или алгоритмическом языке.

9.12. Создайте алгоритм решения в блок-схемном и формульно-словесном виде для следующих заданий:

9.13. Определите, пройдет ли колобок с длиной "талии" L в квадратное окно со стороной А.

9.14. В кафе продают лимонад по N руб. и мороженое по T руб. Составьте алгоритм, который сообщает "возьмите сдачу", "доплатите еще" или "спасибо за покупку" при оплате покупателем за M лимонадов и R мороженых денег в размере S руб.

9.15. Успеет ли спортсмен добраться до финиша, расположенного за S км, если он a часов едет на велосипеде со скоростью V1 км/ч и b часов бежит со скоростью V2 км/ч.

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

Ответ

9.17. Составьте блок-схемы циклов, записанных на алгоритмическом языке. Какие значения принимает величина- счетчик в данных циклах? Какие результаты будут выведены (в математической записи ряда)?

1) для t=5 до 15 шаг 5 нц R:=t - 5 вывод R кц Ответ 2) для m=10 до -10 шаг -2 нц t:=m+1 вывод t кц Ответ
3) для F=5 до 10 шаг 1 нц S:=(F+1)/(F-1) вывод S кц Ответ 4) для a=2 до -2 шаг -1 нц t:=a^a+a вывод t кц Ответ
5) для M=12 до 3 шаг -3 нц F:=M*(M+5)/(M-5) вывод F кц Ответ

9.18. Определите по блок-схемам нижеприведенных структур, к какому виду циклов они относятся?Запишите данные структуры на алгоритмическом языке.

Ответ

 

9.19. Преобразуйте циклы с параметром в "цикл – до" и "цикл – пока". Запишите их в виде блок- схем. Образец:

 

 

9.20. В банк был положен вклад в размере N руб. Каждый месяц он увеличивался на 1%. Определите размер вклада через 5 лет. Запишите алгоритм задачи в блок схемном виде.

9.21. Составьте алгоритмы в виде блок-схем.

9.22. Определите количество четных чисел, начиная от 1 до 157. Сколько будет таких чисел? Каких чисел будет больше: четных или нечетных? Составьте алгоритмы в виде блок-схем.

Ответ

9.23. Найдите произведение всех четных чисел от 50 до 500. Составьте алгоритмы в виде блок-схем.

9.24. В группе N учеников. Их рост заносится в ЭВМ. Рост девушек кодируется положительным числом, а юношей - отрицательным. Определите средний рост девушек. Составьте алгоритмы в виде блок-схем.

9.25. По условию предыдущей задачи определите средний рост юношей. Составьте алгоритмы в виде блок-схем.

9.26.Выдайте сообщение о том, кто выше в данном классе (сравнивая средний рост девушек и юношей). Составьте алгоритмы в виде блок-схем.

9.27. Определите значение целочисленной переменной S после выполнения операторов:

S:=128 нц для i от 1 до 4 S:=div(S,2) кц 1) S:=1; a:=1 нц для i от 1 до 3 S:=S+i*(i+1)*a a:=a+2 кц Ответ
Решение: 2) S:=1; a:=1 нц для i от 1 до 3 S := S+i нц для j oт 2 до 3 S := S+j кц кц Ответ
i S
 
128/2=64
64/2=32
32/2=16
16/2=8
Ответ: S=8
S:=0 нц для i от 1 до 2 нц для j от 2 до 3 S:=S+i+j кц кц 3) нц для i от 1 до 3 S:=0 нц для j от 2 до 3 S:=S+i+j кц кц Ответ
Решение 4) нц для i от 1 до 2 S := 0 нц для j oт 2 до 3 нц для k oт 1 до 2 S := S+i+j+k кц кц кц Ответ
i j S
   
0+1+2=3
  3+1+3=7
7+2+2=1
  11+2+3=1
Ответ: S=16
         

Ответ

9.28. Определите значение переменной S после выполнения операторов:

 

i:=0; S:=0 нц пока i<3 i:=i+1; S:=S+i*i кц .. S:=0; N:=125 нц пока N>0 S:=S+mod(N,10) | S — сумма цифр N:=div(N,10) | числа N кц
Решение Решение
Условие i < 3 i S Условие N > 0 S N
  0 0   0 125
0 < 3? да 1 0+12=1 125 > 0? да 0+5=5 12
1 < 3? да 2 1+22=5 12 > 0? да 5+2=7 1
2 < 3? да 3 5+32=14 1 > 0? да 7+1=8 0
3 < 3? нет(кц)     0 > 0? нет (кц)    
Ответ: S=14 Ответ: S=8
1) S:=0; i:=1 нц пока i>1 S:=S+1/i i:=i-1 кц 3) а:=1; b:=1; S:=0; нц пока a<=5 a:=a+b; b:=b+a; S:=S+a+b кц
2) S:=0; i:=1; j:=5 нц пока i<j S:=S+i*j i:=i+1 j:=j-1 кц 4) a:=1; b:=1 нц пока a+b<10 a:=a+1 b:=b+a кц S:=a+b
             

 

Ответ

ОТВЕТЫ К ЗАДАНИЯМ ДЛЯ САМОСТОЯТЕЛЬНОЙ РАБОТЫ[13]

9.1. Верные ответы: правильное написание: 1; 4; 6; 7; 10

неправильное написание: 2; 3; 5; 8;9.

9.2. Верные ответы: 1.A = 100; 2. В = 64; 3. N = 26; 4. m = 25; 5. A = 17,
B = 25.

9.3. Верные ответы: а) текстовая форма;

б) табличная форма;

в) алгоритмический язык.

9.4. Верные ответы: 1,2 – присваивание;

3, 4, 5 – ввод – вывод;

6, 7, 8 – ветвление;

9, 10 – цикл.

9.5. Верные ответы: t:=29.

9.6. Верные ответы: 2, 4 – следование;

1, 6, 7 – ветвление;

3, 5, 8 – цикл;

9, 10 – комбинированный.

9.7. Верные ответы: 1 – в; 2 – к; 3 – ж; 4 – д; 5 – б; 6 – г; 7 – з; 8 – е;

9 – к; 10 – и.

9.8. Верные ответы: 1, 2, 3, 9, 10 – следование;

4 – ветвление;

5, 6, 7, 8 – цикл.

9.9. Верные ответы: 1,5 * N

9.10. Верные ответы: 120%

9.16. Верные ответы: 1) 3; 6;…12; 15. 2) 10; 9;…2; 1. 3) 1; 4;…81; 100.

4) 243;…0,004115. 7) 1; 0,5;…0,111; 0,1.

8) 0,5; 0,667;…0,889; 0,9.

9.17. Верные ответы: 1) R:= 0; 5; 10. 2) t:= 11; 9;…-7; -9.

3) S:= 7,991. 4) t:= 6; 2;…-2; -1,75.

5) F:= 29; 14;…66; -12.

9.18. Верные ответы: 2, 5 – цикл "до";

1, 3 – цикл "пока";

4 – цикл с параметрами.

9.20. Верные ответы:Nнач = 81,67%

9.22. Верные ответы: Четных чисел 78 на одно меньше чем нечетных.

9.27. Верные ответы: 1) 0; 2) 13; 3) 52; 4) 14.

 

ГЛАВА 10. ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ КОМПЬЮТЕРА[14]

Бурное развитие новой информационной технологии и расширение сферы ее применения привели к интенсивному развитию программного обеспечения (ПО). Достаточно отметить, что в 2006 г. мировым сообществом на программное обеспечение затрачено свыше 500 млрд долларов. Причем тенденции развития ПО показывают, что динамика затрат имеет устойчивую тенденцию к росту, примерно 20% в год [63].

Рис. 10. 1. Иерархия программного обеспечения

Под программным обеспечением информационных систем понимается совокупность программных и документальных средств для создания и эксплуатации систем обработки данных средствами вычислительной техники [63]. В компьютерном жаргоне часто используется слово "софт" от английского software.

По назначению программное обеспечение разделяется на системное, прикладное и инструментальное (рис.10.1 и 10.2).

Рис. 10. 2. Классификация программного обеспечения

Инструментальное ПО (среды программирования) предназначено для использования в ходе проектирования, разработки и сопровождения программ. Это: интегрированные среды разработки, SDK, компиляторы, интерпретаторы, линковщики, ассемблеры, отладчики и т.п.

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

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

 

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

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

- загрузку в оперативную память и выполнение всех программ;

- управление ресурсами компьютера (оперативной памятью, процессорным временем, файловой системой, внешними устройствами);

- управление оперативной памятью;

- управление энергонезависимой памятью (жесткий диск, компакт-диски и т.д.), как правило, с помощью файловой системы;

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

К дополнительным функциям ОС можно отнести:

- параллельное или псевдопараллельное выполнение задач (многозадачность);

- взаимодействие между процессами;

- межмашинное взаимодействие (компьютерная сеть);

- защита самой системы, а также пользовательских данных и программ от вредоносных действий пользователей или приложений;

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

Интерфейс - это совокупность средств и правил, которые обеспечивают взаимодействие устройств, программ и человека. В зависимости от объектов взаимодействия интерфейс определяют как пользовательский, аппаратный, программный. Например, интерфейс между пользователем и программно-аппаратными средствами компьютера называют пользовательским интерфейсом, а между аппаратным и программным обеспечением - аппаратно-программный интерфейс.

10.2.1. "Открытое", "закрытое" и "свободное" программное обеспечение

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

Собственническое или проприета́рное программное обеспечение (proprietary software) — это программное обеспечение, которое имеет ограничения на его использование и копирование, обычно требуемые собственником. Предотвращение использования, копирования или модификации могут быть достигнуты правовыми или техническими средствами. Технические средства включают в себя выпуск только машинно-читаемых двоичных файлов, и сокрытия читаемого человеком исходного кода. Правовые средства могут включать в себя лицензирование ПО, копирайт (copyright, ©) и патенты.

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

В семидесятых годах 20 века программное обеспечение зачастую разрабатывалось свободными объединениями программистов и бесплатно передавалось другим нуждающимся в нем пользователям. Нередко этим занимались даже крупные фирмы. К 1983 году положение изменилось - наступила эра персональных компьютеров, коммерческие программы и операционные системы (в частности, DOS от Microsoft) начали свое победное шествие по миру.

Ричард Столлмен, один из основателей ОС Unix в1983 году, основал проект GNU, целью которого было вернуть прежние взаимоотношения производителей и потребителей программного обеспечения. GNU (рекурсивный акроним от англ. GNU is Not Unix — "GNU — это не Unix") — проект по созданию свободной UNIX-подобной операционной системы.

Рис. 10. 3. Логотип проекта GNU

В рамках проекта GNU в 1988 г Столлмен совместно с юристами разработал лицензию GNU General Public License (Открытое лицензионное соглашение GNU) для программного обеспечения. Получив в пользование или купив свободную программу, вы легально, не нарушая ничьих авторских прав,можете свободно:

- читать (изучать) код;

- писать (модифицировать) код;

- распространять (публиковать, тиражировать) код.

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

Программное обеспечение с открытым исходным кодом (Open source) — способ разработки ПО, при котором создаваемый исходный код программ открыт, то есть, общедоступен для просмотра и изменения (рис. 10.4). Это позволяет всем желающим использовать уже созданный код для своих нужд и, возможно, помочь в разработке открытой программы.

Рис. 10. 4. Логотип проекта Open Source

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

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

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