ГОСУДАРСТВЕННЫЙ КОМИТЕТ   СВЯЗИ,  ИНФОРМАТИЗАЦИИ   И ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ  РЕСПУБЛИКИ УЗБЕКИСТАН

ТАШКЕНТСКИЙ   УНИВЕРСИТЕТ ИНФОРМАЦИОННЫХ   ТЕХНОЛОГИЙ

Факультет «Компьютер инжиниринг»

Кафедра «Информатика »

 

 

 

 

          ФАКУЛЬТЕТ  ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ

 

 

 

 

 

 

 

 

СБОРНИК ЗАДАНИЙ И МЕТОДИЧЕСКИХ  УКАЗАНИЙ

К  ЛАБОРАТОРНЫМ РАБОТАМ  ПО КУРСУ

«Основы программирования»

 

 

 

 

 

 

 

 

 

 

 

                                              Ташкент-2013

 

Под общим руководством Ш.А. Назирова

Авторы: Хайдарова М.Ю., Марышева Л.Т.,Кудратов С.Г., Ташпулатова Н.Б. «Сборник заданий и методических  указаний  к    лабораторным работам   по курсу Основы программирования /  ТУИТ. 2013. -  с.

 

Сборник предназначен для проведения лабораторных работ в первом семестре 1-го курса.

Данный  сборник  апробировался  авторами в течение 4-х лет (2009-2013г.)

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

В первом семестре 1-го курса студенты должны изучить основные понятия  общей информатики и начала программирования на С++ , как-то:

понятие и виды,  измерение, кодирование информации; архитектура, арифметические основы вычислительных машин;  алгоритмы и формы представления их  процедурное программирование на алгоритмическом  языке С++.

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

 Работа была доложена на заседании кафедры № 49 от 21 мая 2012 года,                   одобрена и рекомендована к тиражированию.

 Рецензент

 

 

 

 

Ташкентский университет информационных технологий. 2013 г.

 

 

Лабораторная работа № 1

 

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

 

Цель работы

 

         1. Ознакомится с основными устройствами компьютеров  и  их  
             назначением.

 

Задание

 

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

               Вопросы, ответы  на которые надо оформить в виде конспекта

 

1.     Классическая архитектура ЭВМ и принцип фон Неймана Основные устройства вычислительных машин

2.     Устройство управления компьютеров, состав, назначение, принцип работы,коммуникации

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

4.     Устройства ввода – вывода, виды, принцип работы каждого из видов

5.     Взаимодействие основных устройств. Программный принцип управления компьютером

6.     Типы и назначение компьютеров

    

   Содержание отчёта

 

Отчёт должен содержать:

1)   Название лабораторной работы.

2)   Задание к лабораторной работе.

3)   Конспект по теме «Основные устройства ПК».

                                        

                           Контрольные вопросы

  1. Что такое архитектура вычислительной системы.

  2. Опишите традиционную «фон-неймановскую» архитектуру компьютера.

  3.  Для чего используют сложную многоуровневую организацию памяти?

  4.  Что такое регистр?

  5.   Что такое      процессор , его назначение?

  6.  Виды периферийных  устройств , приведите примеры.

7.       Состав программного обеспечения  персонального компьютера.

8.        Состав и назначение    операционных систем для компьютеров.

9.       Поколение ЭВМ, в котором в качестве элементной базы процессора использовались транзисторы.

10.     К какому типу составной части относится монитор?

11.    Часть ЭВМ, где находится арифметико-логическое устройство(АЛУ).

12.    Составная часть ЭВМ, контролирующая действия всех устройств компьютера и координирующая выполнение программ. 

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

14.    Операционная система, которая используется на мэйнфреймах и мини-ЭВМ и является основной ОС для рабочих станций.

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

16.   Комплекс программ, предназначенных для запуска  других программ  на

     исполнение, организации диалога с пользователем, распределения
     оперативной памяти и т.д.

17.       Каково назначение кэш-памяти? Каким образом она реализуется?

18.       Назовите две основные разновидности памяти компьютера.

19.       Как формируется изображение на экране цветного монитора?

20.       Каково назначение внешней памяти? Перечислите разновидности устройств внешней памяти.

 

 

 

                                         

 

 

 

 

 

 

 

 

 

Лабораторная работа № 2

 

Методы хранения информации. Единицы измерения информации.

Представление данных на ПК. Кодирование и шифрование, защита, основные понятия антивирусной защиты.

Цель работы

 

1.Освоение  методов хранения информации.

2.Ознакомление с основными единицами информации.

3. Представление данных на ПК.

4. Освоение методов кодирования информации .

5. Освоение методов шифрования информации.

6. Освоение методов защиты информации .

8. Ознакомление с основными  понятиями антивирусной защиты.

 

                                                               Задание

Таблица1а

 

варианты

1.

 В зрительном зале две прямоугольные области зрительских кресел: одна 10 на 12,а другая 17 на 8. Какое минимальное количество бит потребуется для кодирования каждого места в автоматизированной системе?

 

2.

 Сколько существует различных последовательностей из символов «+» и «-» длиной ровно в шесть символов?

 

3.

Сколько существует различных последовательностей из символов «а» и «б» длиной ровно в десять символов?

 

4.

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

 

5.

 В кодировке Unicode на каждый символ отводится шестнадцать бит. Определите информационный объем слова из двадцати четырех символов в этой кодировке.

 

6.

 

Световое табло состоит из лампочек. Каждая лампочка может находиться в одном

из трех состояний («включено», «выключено» или «мигает»). Какое наименьшее

количество лампочек должно находиться на табло, чтобы с его помощью было передать 8 различных сигналов?

7

 

Считая, что каждый символ кодируется одним байтом, определите, чему равен информационный объем следующего высказывания Жан-Жака Руссо:

   Тысячи путей ведут к заблуждению, к истине – только один.

 

8

Считая, что каждый символ кодируется одним байтом, определите, чему равен информационный объем следующего высказывания Алексея Толстого:

   Не ошибается тот, кто ничего не делает, хотя это и есть его основная ошибка.

 

9

Считая, что каждый символ кодируется одним байтом, определите, чему равен информационный объем следующего высказывания Рене Декарта:

   Я мыслю, следовательно, существую.

 

10

Считая, что каждый символ кодируется 16-ю битами, оцените информационный объем следующей пушкинской фразы в кодировке Unicode:

Привычка свыше нам дана: Замена счастию она.

 

11

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

Певец-Давид был ростом мал, Но повалил же Голиафа!

 

12

Считая, что каждый символ кодируется одним байтом, оцените информационный объем следующего предложения:

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

 

13

Автоматическое устройство осуществило перекодировку информационного сообщения на русском языке, первоначально записанного в 8-битном коде, в 16-битную кодировку Unicode. При этом информационное сообщение увеличилось на 2048 байт. Каков был информационный объем сообщения до перекодировки?

 

14

Считая, что каждый символ кодируется 16-ю битами, оцените

 

информационный объем следующей фразы в кодировке Unicode:

В шести литрах 6000 миллилитров.

 

15

Считая, что каждый символ кодируется 16-ю битами, оцените информационный объем следующего предложения:

Блажен, кто верует, тепло ему на свете!

 

16

Считая, что каждый символ кодируется одним байтом, оцените информационный объем следующего предложения:

Белеет Парус Одинокий В Тумане Моря Голубом!

 

17

Автоматическое устройство осуществило перекодировку информационного сообщения на русском языке, первоначально записанного в 16-битном коде Unicode, в 8-битную кодировку
КОИ-8. При этом информационное сообщение уменьшилось на 800 бит. Какова длина сообщения в символах?

 

17

В таблице ниже представлена часть кодовой таблицы ASCII:

Символ

1

5

J

K

P

j

k

Десятичный код

49

53

74

75

80

106

107

Шестнадцатеричный код

31

35

4A

4B

50

6A

6B

Каков шестнадцатеричный код символа «p» ?

 

18

1)    В таблице ниже представлена часть кодовой таблицы:

Символ

С

Т

У

Я

с

т

у

Десятичный код

145

146

147

159

225

226

227

Шестнадцатеричный код

91

92

93

9F

E1

E2

E3

Каков шестнадцатеричный код символа «я» ?

 

19

Считая, что каждый символ кодируется одним байтом, определите, чему равен информационный объем следующего предложения:

   Я памятник себе воздвиг  нерукотворный!

 

20

Считая, что каждый символ кодируется одним байтом, определите, чему равен информационный объем следующего высказывания:

Римские цифры – пример непозиционной системы счисления !

 

21

Считая, что каждый символ кодируется одним байтом, оцените информационный объем следующего предложения:

Солнце светит, но не греет.

 

 

Считая, что каждый символ кодируется одним байтом, определите, чему равен информационный объем следующего предложения:

Весна – лучшее время года.

 

 

Считая, что каждый символ кодируется одним байтом, определите, чему равен информационный объем следующего предложения:

Я более всего весну люблю.

 

Считая, что каждый символ кодируется одним байтом, определите, чему равен информационный объем следующего предложения:

У семи нянек дитя без глаза.

 

Считая, что каждый символ кодируется одним байтом, определите, чему равен информационный объем следующего предложения:

Семь раз отмерь – один раз отрежь.

 

Считая, что каждый символ кодируется одним байтом, определите, чему равен информационный объем следующего предложения:

Один в поле не воин.

 

Считая, что каждый символ кодируется одним байтом, определите, чему равен информационный объем следующего предложения:

Не родись красивой, а родись счастливой.

 

Считая, что каждый символ кодируется одним байтом, определите, чему равен информационный объем следующего предложения:

Не имей сто рублей, а имей сто друзей.

 

Считая, что каждый символ кодируется одним байтом, определите, чему равен информационный объем следующего предложения:

Твори добро, оно вернётся.

 

Считая, что каждый символ кодируется одним байтом, определите, чему равен информационный объем следующего предложения:

Учиться, учиться и учиться!

 

 

Таблица1б

 

варианты

1.     

Компьютерные сети структура сети

2.     

Computer NetWork,  net - сеть,  work - работа

3.     

локальные сети (Local Area Network, LAN)

4.     

глобальные сети (Wide Area Network, WAN);

5.     

городские сети (Metropolitan Area Network, MAN).

6.     

Клиент -  объект (компьютер или программа), запрашивающий некоторые услуги.

7.     

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

8.     

сети с топологией «Общая шина»;

9.     

сети с топологией «Звезда»;

10.                        

сети с топологией «Кольцо»;

11.                        

сети с древовидной топологией

12.                        

сети со смешанной топологией

13.                        

Шинная структура сети

14.                        

Звездообразная структура сети.

15.                        

Шинная и звездообразная сеть

16.                        

Кольцевая структура сети.

17.                        

Смешанная топология

18.                        

Линия связи и интерфейсы

19.                        

Трансивер (transceiver)

 

20.                        

Повторитель (Repeater)

21.                        

Концентратор (Hub)

22.                        

Мост (Bridge)

23.                        

Коммутатор (Switch)

24.                        

Маршрутизатор (Router)

25.                        

Кабельные линии связи

26.                        

Беспроводные линии связи

27.                        

Сетевая карта

28.                        

SMTP (Simple Mail Protocol)

29.                        

TCP IP протокол


Методические указания к выполнению заданий из таблицы 1б

 

Особую роль в сохранении тайны сыграл способ шифрования, предложенный Юлием Цезарем и изложенный им в "Записках о галльской войне" (I в. до н.э.).Вот что пишет о нем Гай Светоний: "...существуют и его письма к Цицерону и письма к близким о домашних делах: в них, если нужно было сообщить что-нибудь негласно, он пользовался тайнописью, то есть менял буквы так, чтобы из них не складывалось ни одного слова. Чтобы разобрать и прочитать их, нужно читать всякий раз четвертую букву вместо первой, например, D вместо А и так далее". Таким образом, Цезарь заменял буквы в соответствии с подстановкой, нижняя строка которой представляет собой алфавит открытого текста, сдвинутый циклически на три буквы влево.

Зашифруем слово INFORMATIKA с помощью метода Цезаря со сдвигом на три позиции. СловуINFORMATIKAпо таблице ANCII(см приложение 1) кода соответствует  числовая последовательность  (73,78,70,79,82,77,65,84,73,75,65).  Каждому числу прибавляем число 3, получаем числовую последовательность (76,81,73,82,85,80,68,87,76,78,68). Этим числам по таблице ANCII кодасоответствует зашифрованное слово LQIRUPDWLND.

Теперь пусть задано зашифрованное слово  XQLYHUVLWHW. Этому слову по таблице ANCII кода соответствует  числовая последовательность  (88,81,76,89,72,85,86,76,87,72,87). С каждого числа отнимем число 3. Получаем  числовую последовательность  (85,78,73,86,69,82,83,73,84,69,84). По таблице ANCII кода находим исходное слово UNIVERSITET. Данный процесс называется дешифрованием.


 

Лабораторная работа №3

Арифметические основы  компьютера. Системы счисления (2,8,16), действия в них. Выполнение   заданий  лабораторной  работы.

                                                           Цель работы

 

              1.  Изучить арифметику в 2-ой, 8-ой и 16-ой системах счисления.

              2. Научиться осуществлять переводы в системах счисления.

                                                           

                                                               Задание

 

2.  Используя полученную на лекционных и практических занятиях информацию, выполнить следующее: для  своего  варианта

а) выписать задания  из Таблицы 1, выполнить арифметические действия (+, -, *, /) в двоичной системе счисления (а), и в восьмеричной системе счисления (б);

б) выписать задания  из Таблицы 2, выполнить переводы :

·        заданное двоичное число Х2 перевести в 10, 8 и 16 ,2 системы счисления по правилам позиционности, деления и специальному правилу;

·        десятичное число У10 перевести в 2, 8 и 16 системы счисления по правилам позиционности и деления.

 

Содержание отчёта

 

Отчёт должен содержать:

1)   Название лабораторной работы.

2)   Задание к лабораторной работе.

3)   Выполненное задание из таблицы 1 (арифметика в 8-ой и 2-ой системах   счисления).

4)   Выполненное задание из таблицы 2 (переводы в системах счисления).

5)   Подготовиться к собеседованию по контрольным вопросам

 

Варианты заданий к лабораторной работе №1

 

Таблица 1

 

Задания

1.

а)

                                 

 

б)

                 

         

2.

а)

                                                 

б)

                               

 

3.

а)

                               

 

б)

                     

 

4.

а)

                               

 

б)

             

 

 

                                                                  Продолжение таблицы 1


 

 

 

5.

 

 

а)      

                                        

б) 

                       

 

6.

а)

                               

 

б)

                

 

7.

а)

                               

 

б)

                

 

8.

а)

                               

 

б)

               

Продолжение таблицы 1

9.

а)

                                                      

 

 

 

б)

                                          

         

10.

а)

                                

       

б)

         

 

11.

а)

                        

 

б)

         

 

12.

а)

                               

 

б)

                

 

 


Продолжение таблицы 1

13.

а)

                               

 

б)

            

 

 

 

 

 

14.

 

 

 

 

а)

                               

 

б)

                     

 

15.

а)

                               

 

б)

                   

 

16.

а)

                               

 

б)

                     


Продолжение таблицы 1

17.

а)

                               

 

б)

                    

 

18.

а)

                               

 

б)

              

 

19.

а)

                               

 

б)

                         

 

20.

а)

                               

 

б)

                  

 

 


Продолжение таблицы 1

21.

а)

                               

 

б)

                

 

22.

а)

                               

 

б)

               

 

 

 

 

23.

 

 

 

а)

                               

 

б)

                   

 

24.

а)

                               

 

б)

                    

 

 


Продолжение таблицы 1

25.

а)

                               

 

б)

                     

 

26.

а)

                               

 

б)

                 

 

27.

а)

                               

 

 

б)

                 

 

28.

а)

                               

 

б)

                 

 

 


Продолжение таблицы 1

29.

а)

                               

 

б)

                 

 

30.

а)

                               

 

б)

                

 

 


                                                                            Таблица 2

 

X2

Y10

1.      

100011,01

409,7

2.      

110011,01

2041,2

3.      

1010110,11

408,6

4.      

1011,01

250,3

5.      

100001,10

179,8

6.      

101101,11

405,1

7.      

111111,11

364,3

8.      

10001,10

198,1

9.      

101100,11

273,1

10.            

111110,11

157,3

11.            

1011001,11

126,08

12.            

100101,11

441,03

13.            

101011,10

251,6

14.            

101111,11

102,5

15.            

1011011,10

205,1

16.            

1011011,01

409,6

17.            

1011110,01

307,9

18.            

101000,11

126,03

19.            

110001,01

226,08

20.            

111101,11

493,01

21.            

1011011,01

199,6

22.            

101101,11

375,3

23.            

101001,11 

266,8

24.            

111101,11

399,3

25.            

110101,11 

181,01

26.            

110100,01

411,03

27.            

1110111,11

299,06

28.            

1101101,011

198,0325

29.            

1000111,001 

997,1

30.            

1001001,11

203,7

 

 


Таблица 2А

варианты

1.     

Какие целые числа следуют за числами: а) 12;    в) 18;  с) F16

2.     

Выпишите целые числа:

o         от 1011012 до 1100002 в двоичной системе;

 

3.     

Какой цифрой заканчивается четное двоичное число?

 

4.     

Составьте таблицы сложения однозначных чисел в троичной и пятеричной системах счисления

 

5.     

В каких системах счисления выполнены следующие сложения? Найдите основания каждой системы:

6.     

Выпишите целые числа:

o        б) от 2023 до 10003 в троичной системе;

 

7.     

В каких системах счисления выполнены следующие сложения? Найдите основания каждой системы:

8.     

Какой цифрой заканчивается нечетное двоичное число?

 

9.     

Расположите следующие числа в порядке возрастания:

o        а) 748, 1100102, 7010, 3816;

 

10.                        

Составьте таблицы умножения однозначных чисел в троичной и пятеричной системах счисления.

11.                        

Какие целые числа следуют за числами: а) 1012;     в)78;  с) 1F16;

 

12.                        

Вычислите значения выражений:

o        а) 2568 + 10110,12 . (608 + 1210) - 1F16;

o        б) 1AD16 - 1001011002 : 10102 + 2178;

 

13.                        

Какое наибольшее десятичное число можно записать тремя цифрами:

o        а) в двоичной системе; в) в шестнадцатеричной системе?

14.                        

Расположите следующие числа в порядке убывания:

o        а) 748, 1100102, 7010, 3816;

 

15.                        

Расположите следующие числа в порядке возрастания:

o        б) 6E16, 1428, 11010012, 10010;

 

16.                        

Выпишите целые числа:

o        в) от 148 до 208 в восьмеричной системе;

17.                        

 Используя Правило Счета, запишите первые 20 целых чисел в десятичной, двоичной, троичной, пятеричной и восьмеричной системах счисления.

18.                        

В каких системах счисления выполнены следующие сложения? Найдите основания каждой системы:

19.                        

В какой системе счисления 21 + 24 = 100?

20.                        

Какие целые числа следуют за числами: а) 1112;      в) 378;    с) FF16;

 

21.                        

Расположите следующие числа в порядке возрастания:

o        г) 10010, 11000002, 6016, 1418.

 

22.                        

Выпишите целые числа:

o        г) от 2816 до 3016 в шестнадцатеричной системе.

23.                        

В какой системе счисления справедливо следующее:

o        а) 20 + 25 = 100;

o        б) 22 + 44 = 110?

 

24.                        

Какие целые числа следуют за числами: а) 11112;  в) 1778; с) 9AF916;

 

25.                        

Какими цифрами может заканчиваться четное троичное число?

 

26.                        

Десятичное число 59 эквивалентно числу 214 в некоторой другой системе счисления. Найдите основание этой системы.

27.                        

o        Какое наибольшее десятичное число можно записать тремя цифрами:   а)в восьмеричной системе;

o        В)в двоичной системе;

o         

28.                        

Десятичное число 59 эквивалентно числу 214 в некоторой другой системе счисления. Найдите основание этой системы.

 

29.                        

Какие целые числа следуют за числами: а)1010112;  В)77778; С)CDEF16

30.                        

Расположите следующие числа в порядке возрастания:

o        в) 7778, 1011111112, 2FF16, 50010;

 


Методические указания к выполнению заданий из таблицы 1

Какие системы счисления используют специалисты для общения с компьютером?

Кроме десятичной широко используются системы с основанием, являющимся целой степенью числа 2, а именно:

·        двоичная (используются цифры 0, 1);

·        восьмеричная (используются цифры 0, 1, ..., 7);

·        шестнадцатеричная (для первых целых чисел от нуля до девяти используются цифры 0, 1, ..., 9, а для следующих чисел — от десяти до пятнадцати — в качестве цифр используются символы A, B, C, D, E, F).

Полезно запомнить запись в этих системах счисления первых двух десятков целых чисел. Таблица соответствия в  двоичной, восьмеричной, десятичной, шестнадцатеричной системах счисления представлены в таблице 3.

Таблица 3

10-я

2-я

8-я

16-я

0

0

0

0

1

1

1

1

2

10

2

2

3

11

3

3

4

100

4

4

5

101

5

5

6

110

6

6

7

111

7

7

8

1000

10

8

9

1001

11

9

10-я

2-я

8-я

16-я

10

1010

12

A

11

1011

13

B

12

1100

14

C

13

1101

15

D

14

1110

16

E

15

1111

17

F

16

10000

20

10

17

1000

21

11

18

10010

22

12

19

10011

23

13

 

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

Как производятся арифметические операции в позиционных системах счисления?

С л о ж е н и е

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

 Таблица 4

Сложение в двоичной системе

0 + 0 = 0

0 + 1 = 1

1 + 0 = 1

1 + 1 = 10

 

Сложение в восьмеричной системе

 

  Пример 1. Сложим числа 15 и 6 в различных системах счисления.

Десятичная: 1510 + 610      Двоичная: 11112 + 1102   Восьмеричная: 178 + 68

 

              

 

  Пример 2. Сложим числа 141,5 и 59,75.

Десятичная: 141,510 + 59,7510    Двоичная: 10001101,12 + 111011,112

     

Ответ: 141,5 + 59,75 = 201,2510 = 11001001,012 = 311,28 = C9,416

В ы ч и т а н и е

Пример 3. Вычтем единицу из чисел 102, 108 и 1016

Двоичная: 102-12  Восьмеричная: 108 + 18 Шестнадцатеричная: 1016-116

Пример 4.  Вычтем единицу из чисел 1002, 1008 и 100 16.

Двоичная: 1002 - 12   Восьмеричная: 1008 + 18  Шестнадцатеричная: 10016 -116

  Пример 5. Вычтем число 59,75 из числа 201,25.

 

Десятичная: 201,2510 – 59,7510       Двоичная: 11001001,012 – 111011,112

 

 

Восьмеричная: 311,28 + 73,68        Шестнадцатеричная:  С9,416 – 3В,С16

 

 

Ответ: 201,2510 - 59,7510 = 141,510 = 10001101,12 = 215,48 = 8D,816.

 

У м н о ж е н и е

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

Таблица 5

Умножение в двоичной системе

0 * 0 = 0

0 * 1 = 0

1 * 0 = 0

1 * 1 = 1

 

Умножение в восьмеричной системе

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

Десятичная:       Двоичная:     Восьмеричная:

 

Ответ:

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

 

  Пример 7. Перемножим числа 115 и 51.

Десятичная:       Двоичная:     Восьмеричная:

Ответ: 115 . 51 = 586510 = 10110111010012 = 133518

Д е л е н и е

Деление в любой позиционной системе счисления производится по тем же правилам, как и деление углом в десятичной системе. В двоичной системе деление выполняется особенно просто, ведь очередная цифра частного может быть только нулем или единицей.
 
  Пример 8. Разделим число 30 на число 6.

Десятичная:       Двоичная:     Восьмеричная:

Ответ:  

 Пример 9. Разделим число 5865 на число 115.

 Десятичная:       Двоичная:   

Восьмеричная: 133518 :1638


Ответ: 5865 : 115 = 5110 = 1100112 = 638.
Проверка. Преобразуем полученные частные к десятичному виду:
1100112 = 25 + 24 + 21 + 20 = 51; 638 = 6 . 81 + 3 . 80 = 51.

 

  Методические указания к выполнению заданий из таблицы 2

 

         При работе над этим заданием следует использовать следующие правила перевода: «специальное правило», «правило деления» и «правило позиционности».

    Специальное правило .Это правило применимо лишь для тех систем счисления у которых основание одной из них является целой степенью основания другой, например, 8=23 ,16=24 ,т.е. для двоичной, восьмеричной и шестнадцатеричной систем. Правило заключается в последовательной замене каждой восьмеричной цифры тремя (триада) , а каждой шестнадцатеричной цифры- четырьмя (тетрада) соответствующими двоичными числами. Обратный перевод тоже верен (пример 10).

 

Пример 10

 

   

 

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

 

Пример 11

 

1) перевод 1101111001.11012    в восьмеричную сист. счисчения

 

      

2) перевод 11111111011.1001112 в шестнадцатеричную сист. счисчения

 

 

  Правило позиционности. В позиционной системе счисления любое число можно разложить по степеням основания системы (пример12).

 

Пример 12

 

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

 

 

Пример 13

 

 

Перевод трёх чисел из 2, 8, 16-ой  систем счисления в 10-ую систему счисления показан в примере 14.

Примеp 14


 

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

 

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

 

Пример 15

 

 

Пример 16

 Переведем число 75 из десятичной системы в двоичную, восьмеричную и шестнадцатеричную по правилу деления:

Ответ: 7510 = 1 001 0112   =  1138  =  4B16

      Пример 17

 Переведем число 0,36 из десятичной системы в двоичную, восьмеричную и шестнадцатеричную:

 

Сводная таблица переводов в 2, 8, 10, 16-ой системах счисления по правилам позиционности, деления и спец. правилу представлена на странице 21 (Таблица 6).

 

 

 


Сводная таблица переводов целых чисел

Таблица 6

 

 


 

Особую роль в сохранении тайны сыграл способ шифрования, предложенный Юлием Цезарем и изложенный им в "Записках о галльской войне" (I в. до н.э.).Вот что пишет о нем Гай Светоний: "...существуют и его письма к Цицерону и письма к близким о домашних делах: в них, если нужно было сообщить что-нибудь негласно, он пользовался тайнописью, то есть менял буквы так, чтобы из них не складывалось ни одного слова. Чтобы разобрать и прочитать их, нужно читать всякий раз четвертую букву вместо первой, например, D вместо А и так далее". Таким образом, Цезарь заменял буквы в соответствии с подстановкой, нижняя строка которой представляет собой алфавит открытого текста, сдвинутый циклически на три буквы влево.

Зашифруем слово INFORMATIKA с помощью метода Цезаря со сдвигом на три позиции. СловуINFORMATIKAпо таблице ANCII кода соответствует  числовая последовательность  (73,78,70,79,82,77,65,84,73,75,65).  Каждому числу прибавляем число 3, получаем числовую последовательность (76,81,73,82,85,80,68,87,76,78,68). Этим числам по таблице ANCII кодасоответствует зашифрованное слово LQIRUPDWLND.

Теперь пусть задано зашифрованное слово  XQLYHUVLWHW. Этому слову по таблице ANCII кода соответствует  числовая последовательность  (88,81,76,89,72,85,86,76,87,72,87). С каждого числа отнимем число 3. Получаем  числовую последовательность  (85,78,73,86,69,82,83,73,84,69,84). По таблице ANCII кода находим исходное слово UNIVERSITET. Данный процесс называется дешифрованием.

 

 

 

 

 

 

Контрольные вопросы

 

1.  Что называют системой счисления?

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

3.Специальное правило,  для каких систем оно пригодно, приведите примеры.

4.Как переводятся дробные числа в другие системы счисления :

  а) по правилу умножения (деления)

 б) по правилу позиционности

 в) по специальному правилу

5.Переведите 1643 10- >2 ;  34.27 8 - >2 - >16 ;   1ADF16 - >2 - >8 ; 101110112 - >16 .

 

 

 

 

 


 

Лабораторная работа №4

 

Алгоритмы различной структуры

 

Цель работы

 

1. Ознакомиться с различными видами алгоритмов.

2. Научиться составлять алгоритмы различных структур (линейной, разветвляющейся, циклической).

3. Уметь формулировать математическую постановку задачи.

4. Научиться  формализовывать задачу.

Задание

 

1.     Выписать задание по номеру своего варианта из таблиц 9, 10 (номера таблиц задаёт преподаватель), для данных заданий составить

1) математическую постановку задачи;

2) алгоритмы линейной структуры:

а) блок – схему;

б) псевдокод

в)диаграмму Насси.

 

2.     Выписать задание по номеру своего варианта из таблиц № 11, 12. (номера таблиц задаёт преподаватель), для данных заданий составить

1) математическую постановку задачи;

2) алгоритмы разветвляющейся структуры:

а) блок – схему;

б) псевдокод

в)диаграмму Насси.

 

3.     Выписать задание по номеру своего варианта из таблиц № 13-18. (номера таблиц задаёт преподаватель), для данных заданий составить

1) математическую постановку задачи;

2) алгоритмы циклической структуры:

а) блок – схему;

б) псевдокод

в)диаграмму Насси.

 

 

 

 

 

 

 


Определение алгоритма

Алгори́тм — набор инструкций, описывающих порядок действий исполнителя для достижения результата решения задачи за конечное число действий. В старой трактовке вместо слова «порядок» использовалось слово «последовательность», но по мере развития параллельности в работе компьютеров слово «последовательность» стали заменять более общим словом «порядок». Это связано с тем, что работа каких-то инструкций алгоритма может быть зависима от других инструкций или результатов их работы. Таким образом, некоторые инструкции должны выполняться строго после завершения работы инструкций, от которых они зависят. Независимые инструкции или инструкции, ставшие независимыми из-за завершения работы инструкций, от которых они зависят, могут выполняться в произвольном порядке, параллельно или одновременно, если это позволяют используемые процессор и операционная систем

Формальные свойства алгоритмов

Различные определения алгоритма в явной или неявной форме содержат следующий ряд общих требований:

Виды алгоритмов

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

Механические алгоритмы, или иначе детерминированные, жесткие (например, алгоритм работы машины, двигателя и т. п.);

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

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

Эвристический алгоритм (от греческого слова «эврика») — это такой алгоритм, в котором достижение конечного результата программы действий однозначно не предопределено, так же как не обозначена вся последовательность действий, не выявлены все действия исполнителя. К эвристическим алгоритмам относят, например, инструкции и предписания. В этих алгоритмах используются универсальные логические процедуры и способы принятия решений, основанные на аналогиях, ассоциациях и прошлом опыте решения схожих задач.

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

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

Циклический алгоритм — алгоритм, предусматривающий многократное повторение одного и того же действия (одних и тех же операций) над новыми исходными данными. К циклическим алгоритмам сводится большинство методов вычислений, перебора вариантов. Цикл программы — последовательность команд (серия, тело цикла), которая может выполняться многократно (для новых исходных данных) до удовлетворения некоторого условия.

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

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

Можно встретить даже такое утверждение: "Внешне алгоритм представляет собой схему — набор прямоугольников и других символов, внутри которых записывается, что вычисляется, что вводится в машину и что выдается на печать и другие средства отображения информации ".

Приведём примера алгоритмов:

Наибольший общий делитель и наименьшее общее кратное

   Каждый из нас в школе изучал, что такое наибольший общий делитель (далее НОД) двух чисел a и b. Конечно же, это наибольшее целое число d, на которое a и b делятся без остатка. Без труда каждый ученик может сказать, например, что НОД(12, 18) = 6. Но что если одно из чисел равно 0? А если a или b отрицательно? Над этим вопросом на школьных уроках, наверное, не каждый из нас задумывался. Для того чтобы ответить на поставленные вопросы, приведем определение – что же такое наибольший общий делитель.

Определение 1. Наибольшим общим делителем (далее НОД) двух целых чисел a и b, одновременно не равных нулю, называется такое наибольшее целое число d, на которое a и b делятся без остатка. Этот факт обозначается так: d = НОД(a, b). Если оба числа равны нулю, то положим НОД(0, 0) = 0.

   Исходя из определения, имеют место следующие равенства:

   НОД(a, b) = НОД(b, a),

   НОД(a, b) = НОД(-a, b)

   НОД(a, 0) = |a|

   Почему, скажете вы, НОД(-12, 18) равен 6, а не -6? Ведь и -12, и 18 делятся нацело на 6 и на -6. Ответ прост: ведь НОД – это же наибольший общий делитель, а число 6 больше -6.

   С понятием наибольшего общего делителя тесно связано понятие наименьшего общего кратного.

   Определение 2. Наименьшим общим кратным (далее НОК) двух целых чисел a и b называется наименьшее положительное целое число, кратное как a, так и b.

   Основная теорема арифметики утверждает, что любое натуральное число n можно представить в виде произведения простых чисел:

medv_gcd_02

   Такое разложение натурального числа называется каноническим. Из него следует, что если

medv_gcd_03

то

medv_gcd_04

   Пример 1. Рассмотрим числа a = 24 и b = 18. Разложим их на простые множители: 24 = 23·3, 18 = 2·32. Следовательно

   НОД(24, 18) = 2min(3,1) · 3min(1,2) = 21 · 31 = 6,

   НОК(24, 18) = 2max(3,1) · 3max(1,2) = 23 · 32 = 8 · 9 = 72

   Именно такой метод, с использованием канонического разложения чисел, мы изучали в школе для нахождения НОД и НОК. Однако этот метод не эффективен для реализации алгоритмов их вычисления.

   Рассмотрим следующий очевидный факт. Если НОД(a, b) = d, то a и b делятся на d. Следовательно, их разница ab также делится на d. Имеет место следующее рекуррентное соотношение для вычисления НОД:

medv_gcd_05

   Пример 2. Пусть a = 32, b = 12. Тогда

   НОД(32, 12) = НОД(32 – 12, 12) = НОД(20, 12) = НОД(20 – 12, 12) = НОД(8, 12) =

   = НОД(8, 12 – 8) = НОД(8, 4) = НОД(8 – 4, 4) = НОД(4, 4) = НОД(4 – 4, 4) = НОД(0, 4) = 4

   Приведенный метод вычисления не является оптимальным. Например, для нахождения НОД(1000000, 2) следует выполнить 500000 операций вычитания. Для ускорения вычисления НОД операцию вычитания заменим операцией взятия остатка от деления:

medv_gcd_06

    Пример 3. Пусть a = 78, b = 14. Тогда

   НОД(78, 14) = НОД(78 mod 14, 14) = НОД(8, 14) = НОД(8, 14 mod 8) = НОД(8, 6) =

   = НОД(8 mod 6, 6) = НОД(2, 6) = НОД(2, 6 mod 2) = НОД(2, 0) = 2

    Упростим приведенную выше рекуррентность, сократив количество условий до двух:

medv_gcd_07

   Если a < b, то НОД(a, b) = НОД(b, a mod b) = НОД(b, a), то есть аргументы функции переставляются. При последующих вызовах функции НОД первый аргумент всегда больше второго. Нулем может стать только второй аргумент b.

Пример 4. Пусть a = 14, b = 78. Тогда

   НОД(14, 78) = НОД(78, 14) = НОД(14, 8) = НОД(8, 6) = НОД(6, 2) = НОД(2, 0) = 2

    Реализуем на языке программирования Си функцию gcd (Greatest Common Divisor) вычисления НОД, используя последнюю рекуррентность. Знак % в Си обозначает операцию взятия остатка от деления.

int gcd(int a, int b)

{

  if (b == 0) return a;

  return gcd(b, a % b);

}

   Напомним, что условный оператор в Си имеет следующий синтаксис:

if (<условное выражение>) <выражение 1>; else <выражение 2>;

Если <условное выражение> истинно, то выполняется <выражение 1>, иначе выполняется <выражение 2>.

   Тернарный условный оператор имеет синтаксис:

<условное выражение > ? <выражение 1> : <выражение 2>;

и семантически немного отличается от оператора if..then..else. Если <условное выражение> истинно, то оператор возвращает значение, которое возвращает <выражение 1>, иначе возвращается значение выражения <выражение 2>.

   Используя тернарный оператор, функцию gcd можно записать следующим образом:

int gcd(int a, int b)

{

  return (!b) ? a : gcd(b, a % b);

}

   Теорема. Между НОД и НОК двух чисел имеет место соотношение:

a · b = НОД(a, b) · НОК(a, b)

Функция lcm (Lowest Common Multiple) вычисления НОК имеет вид:

int lcm(int a, int b)

{

  return a / gcd(a, b) * b;

}

   Заметим, что при вычислении выражения a * b / gcd(a, b) может возникнуть переполнение, а при a / gcd(a, b) * b нет. Здесь подразумевается, что значения a, b и lcm(a, b) лежат в границах типа int.

Алгоритм нахождения простых чисел

2 3 5 7 11 13 17 19 23 29 31… $250.000…

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

Алгоритм приведём с примером на языке Pascal. Программа запрашивала у пользователя число N и искала все простые числа до N включительно. После первого успешного теста сразу же возникло непреодолимое желание ввести N = «много». Программа работала, но не так быстро как хотелось бы. Естественно, дело было в многочисленных проверках (порядка N*N/2), поэтому пришлось избавиться от лишних. В итоге получилось 5 похожих алгоритмов каждый из которых работал быстре предыдущего.
Продемонстрируем его в Листинге 1.

# Листинг 1
# вводим N
n = input("n=")
# создаем пустой список для хранения простых чисел
lst = []
# в k будем хранить количество делителей
k = 0
# пробегаем все числа от 2 до N
for i in xrange(2, n+1):
    # пробегаем все числа от 2 до текущего
    for j in xrange(2, i):
        # ищем количество делителей
        if i % j == 0:
            k = k + 1
    # если делителей нет, добавляем число в список
    if k == 0:
        lst.append(i)
    else:
        k = 0
# выводим на экран список
print lst


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

# Листинг 2
n = input("n=")
lst = []
for i in xrange(2, n+1):
    for j in xrange(2, i):
        if i % j == 0:
            # если делитель найден, число не простое.
            break
    else:
        lst.append(i)
print lst


Конструкция break позволяет нам завершить выполнение внутреннего цикла и перейти к следующей итерации внешнего.
Далее возникает вопрос: «а зачем делить на 4, если на 2 число не делится?». Приходим к выводу, что искать делители нужно только среди простых чисел не превышающих делимое. Наш алгоритм превращается в… см. Листинг 3.

# Листинг 3
n = input("n=")
lst=[]
for i in xrange(2, n+1):
    # пробегаем по списку (lst) простых чисел
    for j in lst:
        if i % j == 0:
            break
    else:
        lst.append(i)
print lst


А потом вспоминаем теорию чисел и понимаем, что переберать надо только числа, не превосходящие корня из искомого. К примеру, если число M имеет делитель pi, то имеется делитель qi, такой, что pi * qi = M. То есть, чтобы найти пару, достаточно найти меньшее. Среди всех пар, предполагаемая пара с максимальным наименьшим — это пара с равными pi и qi, то есть pi * pi = M => pi = sqrt(M). Смотрим Листинг 4.

# Листинг 4 
from math import sqrt
n = input("n=")
lst=[]
for i in xrange(2, n+1):
    for j in lst:
        if j > int((sqrt(i)) + 1):
            lst.append(i)
            break
        if (i % j == 0):
            break
    else:
        lst.append(i)
print lst


Код из Листинга 4 при N=10000 выполняется примерно в 1000 раз быстрее, чем самый первый вариант. Есть еще один «ускоритель», проверять только те числа, которые заканчиваются на 1, 3, 7 или 9 (так как остальные очевидно делятся на 2 или 5). Наблюдаем Листинг 5.

# Листинг 5
from math import sqrt
n = input("n=")
lst=[]
for i in xrange(2, n+1):
    if (i > 10):
        if (i%2==0) or (i%10==5):
            continue
    for j in lst:
        if j > int((sqrt(i)) + 1):
            lst.append(i)
            break
        if (i % j == 0):
            break
    else:
        lst.append(i)
print lst


В следствии незначительного изменения Листинга 5 получаем небольшую прибавку в скорости:

# Листинг 6
from math import sqrt
n = input("n=")
lst=[2]
for i in xrange(3, n+1, 2):
    if (i > 10) and (i%10==5):
        continue
    for j in lst:
        if j > int((sqrt(i)) + 1):
            lst.append(i)
            break
        if (i % j == 0):
            break
    else:
        lst.append(i)
print lst


Итого: Программа из последнего листинга выполняется, примерно, в 1300 раз быстрее первоначального варианта.
Я не ставил перед собой задачи написать программу максимально быстро решающую данную задачу, это скорее демонстрация начинающим программистам того, что правильно составленный алгоритм играет далеко не последнюю роль в оптимизации Ваших программ.

P.S.
Благодаря замечаниям получаем Листинг 7:

# Листинг 7
n = input("n=")
lst=[2]
for i in xrange(3, n+1, 2):
    if (i > 10) and (i%10==5):
        continue
    for j in lst:
        if j*j-1 > i:
            lst.append(i)
            break
        if (i % j == 0):
            break
    else:
        lst.append(i)
print lst



при N=10000, поучаем время:
time 1 = 26.24
time 2 = 3.113
time 3 = 0.413
time 4 = 0.096
time 5 = 0.087
time 6 = 0.083
time 7 = 0.053

Решето Эратосфена:

# Листинг 8
n = input("n=")
a = range(n+1)
a[1] = 0
lst = []
 
i = 2
while i <= n:
    if a[i] != 0:
        lst.append(a[i])
        for j in xrange(i, n+1, i):
            a[j] = 0
    i += 1
print lst



Результаты при n = 1 000 000:
time 7 = 7.088
time 8 = 1.143

 

Алгоритм построения обратной матрицы

Пусть А - исходная матрица, обратную к которой мы хотим найти.

n и k - кол-во строк и столбцов в ней соотвественно.

  1. Сначала проверим является ли А квадратной, т.е. совпадают ли n и k.
  2. Затем проверим равен ли определитель мартицы А нулю. Если он равен нулю, то обратной матрицы не существует.
  3. Создаем матрицу Inv равную единичной размерности nxn.
  4. А затем при помощи элементарных преобразований: сложения строк матрицы, умножения строки на число, перестановки столбцов и строк приведем матрицу A к единичной. Причем, параллельно, те же самые преобразования будем производить и с матрицей Inv (переставлять и складывать те же строки/столбцы, и умножать на это же число).
  5. В результате, матрица Inv - будет являться обратной матрицей к исходной матрице A.

Рассмотрим четвертый шаг алгоритма более подробно.

Это цикл по количеству строк матрицы А. Каждая итерация цикла устроена следующим образом:

  1. На каждой итерации мы смотрим на элемент A(i,i). Если он равен нулю, то мы ищем в матрице А ненулевой элемент. Причем ищем его только в прямоугольнике (i, i, n, n) матрицы A. Если он найден, и его координаты (i2, j2), то меняем местами i-ую строку с i2-ой, и j-ый столбец с j2-ым. Те же перестановки делаем в матрице Inv.
  2. Делим i-ую строку матриц А и Inv на элемент A(i, i) (делить можно, т.к. мы на шаге 1 позаботились о том, чтобы этот элемент не был равен 0).
    Таким образом элемент A(i, i) теперь равен 1.
  3. При помощи вычитания i-й строки матрицы А, с определенным коэффициентом, из остальных ее строк зануляем все элементы стоящие выше и ниже элемента с индексом (i, i). С тем же коэфициентом вычитаем i-ую строку матрицы Inv из ее остальных строк.

Пример

Припишем справа через черту матрицу Inv:

Вычтем из второй строки первую с коэффициентом 3:

Поделим вторую строку на -2:

Вычтем вторую строку из первой с коэффициентом 2:

Таким образом, обратная матрица равна:

 


 

Лабораторная работа №5

 

 Программы линейной структуры

 

Цель работы

 

1. Уметь формулировать математическую постановку задачи.

2. Научиться составлять простейшие программы линейной структуры.

Задание

 

1.Ознакомиться со средой программирования С++ , записать в тетрадь назначение основных команд меню (выполняется на лабораторном занятии).

2.Составить программы на С++, для заданий из таблиц 7 , 8, 9, 10 (по указанию преподавателя) отладить на ПК, получить результаты, показать преподавателю и получить подпись.

 

Содержание отчёта

 

Отчёт должен содержать:

1.    Название лабораторной работы.

2.    Задание к лабораторной работе.

3.    математическую постановку задачи,  алгоритмы  в трёх видов.

4.    Описание назначения основных команд меню в среде С++.

5.    Одну  программу линейной структуры, с результатами.

 

 

 

 

 

 

 

 

 

 

Номер варианта

Формулы для Aи B

Таблица 7

 

x, y

1

2

3

1

A=

B=x(arctgA+e-(x-1))

x=3

y=-1,4

2

A=

B=1+

x=2

y=3,1

3

A=(1+y)

B=(1+)

x=-2,3

y=2,7

4

A=y+

B=

x=-5,3

y=2,5

5

A=

B=

x=1,6

y=-6,2

6

A=

B=

x=4

y=3,4

7

A=ln|(y-

B=(x+

x=3,6

y=5,5

Продолжение таблицы 7

8

A=

B=

 

x=6,3

y=1,2

9

A=

B=x(ln)

x=0,84

y=-4,2

11

A=

B=

x=1,32

y=-4,6

12

A=tg

B=Ax

x=3

y=1,24

13

 

A=

B=

x=-11,2

y=-6,3

14

A=

B=

x=-3,2

y=2,2

15

 

A=

B=

 

x=5,36

y=-2,4

16

A=ctg

B=lg||

 

x=-1,9

y=6,75

 

 

 

Продолжение таблицы 7

17

A=(lg|x|+

B=

x=10,1

y=-9,6

 

 

18

A=

B=

x=-1,7

y=-2,4

19

A=ctg(

B=

x=-1,12

y=3,17

20

A=

B=ln

x=-4,31

y=7,11

21

A=

B=lg

x=0,007

y=0,4

22

A=

B=

x=6,03

y=7,24

23

A=

B=

x=2,17

y=0,38

24

A=

B=

x=12,4

y=18,6

Продолжение таблицы7

25

 

 

 

A=ln(

B=

x=1,5

y=2,83

 

таблица7

 

26

A=

B=

 

x=-1,3

y=0,81

27

A=

B=arctg

x=0,03

y=-1,4

28

A=

B=

x=2,47

y=1,43

29

A=

B=

x=-0,31

y=2,05

30

A=

B=arctgA

x=4,3

y=-1,01

 

Вычислить y при заданных параметрах, используя введение дополнительных переменных

Таблица 8

Задание

Параметры

       1             

                                                                                                   2                                  

          3                                  

1.      

 

2.      

Продолжение таблицы 8

3.      

4.      

5.      

6.      

7.      

8.      

 


Продолжение таблицы 8

1

2

3

9.      

10.            

11.            

12.            

13.            

14.            

15.            

16.            

17.            

18.            

19.            


Продолжение таблицы 8

1

2

3

20.            

21.            

22.            

23.            

24.            

25.            

26.            

27.            

28.            

 


Продолжение таблицы 8

1

2

3

29.            

30.            

 

Таблица 9

Задание

       1             

                                                                                                                                   2                                  

1

Заданы два катета прямоугольного треугольника. Найти гипотенузу и углы треугольника.

 

2

Кирпич падает с высоты h. Какова его скорость в момент соприкосновения с землей и когда это произойдет.

 

3

Известна гипотенуза c и прилежащий угол a прямоугольного треугольника. Найти площадь треугольника.

 

4

Известна диагональ квадрата. Вычислить площадь и периметр квадрата.

 

5

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

 

6

Металлический слиток имеет форму цилиндра, площадь поверхности S, высота h, плотность r. Вычислить  массу слитка.

 

7

Кирпич имеет форму параллелепипеда. Высота h, прямоугольник в основании имеет диагональ d. Известно, что диагонали основания пересекаются под  углом a. Найти объем кирпича и площадь поверхности.

 

8

В треугольнике известен катет a и площадь S. Найти величину гипотенузы c, второго катета b и углов a и b.

 

9

Известна площадь квадрата S. Вычислить сторону квадрата a, диагональ d и площадь описанного вокруг квадрата круга.

 

Продолжение таблицы 9

10

Известна площадь квадрата S. Вычислите площади описанного и вписанного кругов.

 

11

Известен объем куба V, вычислите объем вписанного и описанного в  куб шаров.

 

12

Вычислите объем пирамиды высотой h, если в основании лежит прямоугольник диагональю d и углом между диагоналями a.

 

13

В доме 4 подъезда и K этажей. Вычислить количество квартир в доме, если известно, что в первом подъезде 3 квартиры, на площадке во втором и третьем две, а в четвертом 4.

 

14

Известен объём (V) пирамиды. Вычислите ее высоту, если известно, что в основании лежит прямоугольник с диагональю d, и диагонали основания пересекаются под углом a.

 

15

 

Между городами A и B расстояние L. Из города A в город B выехал велосипедист со скоростью V1, а из города B в город A вышел пешеход со скоростью V2. Вычислить когда они встретятся, и на каком расстоянии от города A будут находиться велосипедист и пешеход.

 

16

Между городами A и B расстояние L. Из города A в город B выехал автомобиль со скоростью V1, а из города B в противоположную сторону от города A выехал мотоциклист со скоростью V2 (V2<V1). Когда автомобиль догонит мотоцикл, и на каком расстоянии от города A они будут находиться.

 

17

Прямоугольник имеет диагональ d и известно, что угол между диагоналями равен a. Определите объем цилиндра, получаемого путем вращения прямоугольника вокруг одной из сторон.

 

18

Треугольник имеет гипотенузу с и угол a. Определите объемы конусов, которые получатся путем вращения вокруг катетов.

 

19

С высоты h падает кирпич  массой m. Какова его кинетическая энергия в момент соприкосновения с землей.

 

20

Заданы две прямые: первая имеет уравнение y=kx+b, а вторая проходит через точки (x1,x2) и (y1,y2). Найти точку пересечения прямых.

 

Продолжение таблицы 9

21

Определите площадь поверхности и объём  цилиндра. Высота цилиндра h, площадь круга, лежащего в основании S.

 

22

Решить систему уравнений:

 

23

Вычислить сумму n членов арифметической прогрессии и значение n-го члена.

24

Вычислить сумму n членов геометрической прогрессии и значение n-го члена.

 

25

В равнобедренном треугольнике известно основание и угол при нем. Найти площадь треугольника и величину боковой стороны.

 

26

С высоты h бросили кирпич с начальной скоростью V0. С какой скоростью он упадет и когда это случится.

 

27

Каков объем цилиндра, если его площадь поверхности равна  S, а длина дуги окружности  в основании равна L.

 

28

Какова площадь поверхности цилиндра, если его объем равен V, а длина дуги окружности в основании равна L.

 

29

Найти объем параллелепипеда, в основании которого лежит квадрат периметром P, а площадь поверхности равна S.

 

30

Тело массой m бросили вертикально вверх со скоростью V0 с высоты h. Найти на какую высоту она поднимется.

 

 


 

Решение треугольника

Указание: Для произвольного треугольника АВС (рис.1) введем обозначения.

 

Рис. 1.

 – длины сторон треугольника.

 – углы треугольника, лежащие против сторон  соответственно.

 – площадь и периметр треугольника.

 – радиусы описанной и вписанной окружностей.

 

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

                                                                                                       Таблица 10

Исходные данные

Рассчитываемые величины

1

2

3

4

5

6

7

Продолжение таблицы 10

8

9

 

10

 

11

12

13

14

15

16

17

18

19

20

21

22

23

Продолжение таблицы 10

1

2

3

4

5

6

7

 

 

 

 

Методические указания к лабораторным работам № 3, 4

 

 

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

 

Пример выполнения задачи из Таблицы 8

 

 

 

 

Алгоритм в текстуальной форме

 

Для решения этого примера обозначим:

  и разобъём выражение на множество простых выражений. Так как  встречается 4 раза, то обозначим его за b:

1)  Ввод А и а

2) Вычислить                    

 3)  

4)        5)

6)         7)             

8) Вывод у.

 

 

Алгоритм в  виде блок – схемы       à

 

Пусть в треугольнике АВС даны стороны a,b и площадь S. Требуется составить программу для расчета P, R, r.

 

 

Формулы

R

C

r

программа

A

B

S

G

G1

P

R

C

R1

 

Пример решения задачи из Таблицы

 

Найти значение у, проверив условие, значения a,b,c задаются самим студентом с клавиатуры:

         

 

 

 

 

 

На рисунке 3 приводятся блок – схема и диаграмма Насси для решения данной задачи.

                Блок – схема                                              Диаграмма Насси

 


Ввод  a,b,c

 

         

Вывод y

конец

Подпись: да

 

 

 

x =1

dx=0.5

R =1

k =0

пока   R>0.02

 

Подпись: Вы
пол
нять

 

Вывод Z

 

k =  k+ 1

 

 

х = х+dx

Вывод  k

конец

 

 

 

Алгоритм в виде диаграммы Нэси

 

Пример выполнения задания из  Таблицы 16.

 

Дано: x=1; dx=0.5. Z вычислять по формуле: .

Считать Z до тех пор, пока подкоренное выражение больше 0.02. Определить k - количество вычисленных Z. Вывести на экран  x, Z, k.

 

 

 

 

 

 

Для облегчения записи математических выражений при составлении программы, в Таблице 11 представлена запись на С/С++ необходимых  математических функций

 

Таблица 11

Функция

Запись на С++

Действия

pow(x,y)

Возводит число х в степень у

sqrt(x)

Вычисляет квадратный корень

exp(x)

Возвращает степень числа е

lg x

log10(x)

Вычисляет десятичный логарифм

ln x

log(x)

Вычисляет натуральный логарифм

th x

tanh(x)

Возвращает гиперболический

ch x

cosh(x)

Возвращает гиперболический

sh x

sinh(x)

Возвращает гиперболический

tg x

tan(x)

Возвращает тангенс аргумента

cos x

cos(x)

Возвращает косинус аргумента

sin x

sin(x)

Возвращает синус аргумента

arctg x

atan(x)

Возвращает арктангенс аргумента

arcsin x

asin(x)

Возвращает арксинус аргумента

arccos x

acos(x)

Возвращает  арккосинус аргумента

fabs(x)

Возвращает модуль числа

abs(x)

Возвращает модуль целой части числа

 

fmod(x,y)

Возвращает остаток от деления х на у (целые или веществен.)

 

ceil(x)

Округляет вверх

 

floor(x)

Округляет вниз

1,3*103

1.3Е3

 

1,3*10-17

1.3Е-17

 

    

Составим программу на С++ двумя способами

 

1  способ

#include <stdio.h>                         // файл содержит функции ввода-вывода в стиле С*

#include <conio.h>                          // файл содержит функции для работы с экраном

#include <math.h>                        // стандартные математические  функции

void main ( )                                      //главная программа

float  A = -4.6;

         float  а, b, y, y1, y2, y3, y4 ;      /объявление типа переменных

            clrscr( ) ;                                                     //   очистка экрана

            printf(“а=”);                                         // выводит на экран а=

scanf(“%f”,&а);                                          //  ввести значение а

b = pow (A,2) + pow (a,2);

                   y1 = pow( (atan (a/b) + a/2 * log10 (b)), 2)   ;

                        y2 =  pow(sin(b),3) + 7.6  ;

                    y3 = ( 2.3 e5 + 2 * pow(a,2) + sqrt(b / fabs(A)) ) ;              y4 = y2/y3+A ;

                         y = y1+y4 ;

 

printf(“y=%f”,y);                                              //выводит значение у

getch( );           //  открывает окно результатов  в ожидании набора символа

 }

  Результат работы программы:                           

   a= 1.3

   y =-3.716167

 

2  способ

# include <iostream.h>        //файл содержит функции ввода-вывода в стиле С++

# include <math.h>

 

int main()

{

         float  a = 1.3, A = -4.6;

         float  b,y, y1, y2, y3, y4 ;

                   b = pow (A,2) + pow (a,2);

 

                   y1 = pow( (atan (a/b) + a/2 * log10 (b)), 2)   ;

                        y2 =  pow(sin(b),3) + 7.6  ;

                    y3 = ( 2.3 e5 + 2 * pow(a,2) + sqrt(b / fabs(A)) ) ;              y4 = y2/y3+A ;

                         y = y1+y4 ;

         cout << "y = " << y ;     //  выводит значение у

 

         return 0;

}

Результат работы  программы:           y=-3.716167

 

 

 

Пример решения задачи из Таблицы 10.

 

Пусть в треугольнике АВС даны стороны a,b и площадь S. Требуется составить программу для расчета P, R, r.

В качестве расчетных формул напомним следующие

 (1) /теорема синусов/

  (2) /теорема косинусов/

 (3) /периметр/

 (4) /полупериметр/

 (5) ;                    (6);    (7);

 (8) /формула Герона/

Составить последовательность расчетных формул.

Из формулы (7) определим

.

Тогда  и по формуле (2) вычисляем .

Следовательно , а по формулам (4), (6) находим

                

         Введем таблицу соответствия между переменными в формулах и их обозначениями в программе

 

Формулы

R

C

r

программа

A

B

S

G

G1

P

R

C

R1

 

 

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

 #include<stdio.h>

 #include<conio.h>

 #include<math.h>

 int main()

 {

 float A,B,C,S,G;  //Объявление переменных

 float G1,P,R,R1;//Объявление переменных

 printf("Введите A,B,S:");//Печатаем текст

 scanf("%f%f%f",&A,&B,&S); //Присваиваем введённые                        данные

 G=2*S/(A*B);//Расчёты

 G1=sqrt(1-G*G); //Расчёты

 C=sqrt(A*A+B*B-2*A*B*G1); //Расчёты

 P=A+B+C; //Расчёты

 R=A*B*C/(4*S); //Расчёты

Подпись: Рис. 2 R1=2*S/P; //Расчёты

 printf(" P = %.2f\n R = %.2f\n R1 = %.2f\n",P,R,R1);//Печатаем результат

getch();//Ждём нажатия клавиши

}

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

Введите A,B,S: 5 6 7

 P = 13.82

 R = 3.02

 R1 = 1.01

                                                                                 

 

 

Контрольные вопросы:

 

1. Из каких частей состоит программа на С++?

2. Чем определение отличается от объявления?

3. Перечислить этапы создания исполняемой программы на языке  С++.

4. Что такое препроцессор?

5. Что такое директива препроцессора? Привести примеры директив препроцессора.

6. Составить программу, которая печатает текст «Моя первая программа на  С++»

 7.Что такое форматная строка? Что содержит форматная строка функции printf?  Что содержит форматная строка функции scanf?

8. Что такое спецификация преобразования? Привести примеры спецификаций преобразования для различных типов данных.

9. Что будет выведено функцией

printf("\nСреднее арифметическое последовательности чисел равно: %10.5f \nКоличество четных элементов последовательности равно%10.5d ",S/n,k).

10 . Как записать вывод результатов из вопроса 3 с помощью операции << ?

11 . Как выполнить ввод переменных  х и у, где  x типа long int, а у -типа double, с помощью функции scanf? С помощью операции >> ?

 

 

 

 

 

 

 

 

 

Лабораторная работа № 6

Программы разветвляющейся структуры. Элементы алгебры логики.

Операторы  выбора.

 

Цель работы

 

1. Научиться составлять программы разветвляющейся структуры.

2. Знакомство с конкретным представлением изучаемого языка и изучение управляющих конструкций языка.

3. Научиться составлять программы, используя оператор выбора.

 

 

Задание

 

1)    Составить программы и получить результаты на ПК, для задач (таблицы  № 12,13 или № по заданию преподавателя), алгоритмы к которым вы разработали в лаб.раб. №2.

2)    Составить программы и получить результаты на ПК, для задач (таблицы  №14 или № по заданию преподавателя), алгоритмы к которым вы разработали в лаб.раб. №2.

3)    Выписать задание по номеру своего варианта из таблицы № 15 :

а) записать логический оператор присваивания для вычисления переменной Z.

б) указать порядок выполнения операций в нем.

в) вычислить значения Z для заданных значений переменных.

г) составить программу вычисления Z, получить результаты.

4)    Выписать задание по номеру своего варианта из таблицы №  16 (или 17), записать логическое выражение присваивающее логической переменной Z значения TRUE, если точка с координатами (X;Y) принадлежит заданной области.

      Область изобразить графически. Составить программу проверки принадлежности точки с координатами (X;Y) заданной области.

 

 

Содержание отчёта

 

Отчёт должен содержать:

 

1)Название лабораторной работы.

2)    Задание к лабораторной работе.

3)    Программы разветвляющейся структуры  таблицы 12-15(см. методические указания).

4)    Графическое изображение заданной области из таб. 16, логическое выражение, описывающее область, программу и результаты.

 

Таблица 12

Вычисление функции

Функции

1.

2.

3.

4.

5.

6.

7.

8.

Продолжение таблицы 12

9.

10.

11.

12.

13.

14.

15.

16.

17.

18.

19.


Продолжение Таблицы 12

20.

21.

22.

23.

24.

25.

26.

27.

28.

29.

30.


 

Таблица 13

Задание

1.      

Найти квадрат наибольшего из трех чисел a,b,c и вывести на печать признак:

N=1, если наибольшим является-a

N=2, если наибольшим является-b

N=3, если наибольшим является-c

2.      

Определить, попадает ли точка с координатами x0, y0 в круг радиусом r.

Уравнение окружности r²=x²+y². Присвоить признаку N=1, если точка находится внутри круга, и N=0, если вне круга.

3.      

Определить в каком квадрате находится точка с координатами x, y и вывести на печать номер квадрата.

4.      

Даны действительные числа a, b. Удвоить эти числа, если ab, и заменить их абсолютными значениями, если условие не выполняется

5.      

Даны два действительных числа a,b. Вывести первое число и текст “a больше b”, если оно больше второго, и оба числа и текст “a меньше b”, если это не так.

6.      

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

7.      

Даны три действительных числа.

Выбрать из них те, которые принадлежат интервалу (І;3)

8.      

Даны действительные числа x,y (y). Меньшее из этих двух чисел заменить их полусуммой, а большее- их удвоенным произведением.

9.      

Даны три действительных числа. Возвести в квадрат те из них, значения которых неотрицательны.

10.            

Даны действительные числа a, b, c. Проверить, выполняются ли неравенство a<b<c. Если выполняются условия, то нужно напечатать “a<b<c”. В противном случае напечатать “Условия не выполняются”

11.            

 Даны три действительных a,b,c . Удвоить эти числа, если abc, и заменить их абсолютными значениями, если это не так.

12.            

Даны три действительные числа. Возвести в квадрат те из  них значения которых отрицательны.

13.            

Даны действительные числа x,y,z. Найти max (x,y,z) .

14.            

Даны действительные числа x, y, z.

  Вычислить: max ( x+y+z, x×y×z)

                       min  ((x+y+z)/2, x×y×z)+1

Продолжение Таблицы 13

15.            

Если сумма трёх попарно различных действительных чисел x,y,z  меньше 1, то наименьшее из этих трех чисел заменить полусуммой двух других, в противном случае заменить меньшее из x и y полусуммой  двух оставшихся значений.

16.            

Даны действительные положительные числа a,b,c (a≠0). Выяснить, имеет ли уравнение ax²+bx²+c=0 действительные корни. Если действительные корни имеются, то найти их. В противном случае ответом должно быть сообщение, что действительных корней нет.

17.            

Даны действительные положительные числа x,y,z. Выяснить существует ли треугольник с длинами сторон x,y,z.

18.            

Даны три действительных числа a,b,c. Удвоить эти числа, если abc, и заменить их квадратами если это не так.

19.            

Даны действительные числа x,y (xy). Меньше из этих двух чисел заменить их суммой, а больше их утроенным произведением.

20.            

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

21.            

Даны три действительных числа. Выбрать из них те, которые не принадлежат интервалу (-І;5)

22.            

Заданы: площадь круга S1и квадрата S2. Определить поместится ли квадрат в круге. Площадь круга S=.

23.            

Заданы: площадь круга S1и квадрата S2. Определить поместится ли круг в квадрате.

24.            

Задана точка с координатами (х, у,z). Проверить находится ли точка внутри эллипсоида , если да, то распечатать «принадлежит», если нет, то «не принадлежит».

25.            

Задана точка с координатами (х, у,z). Проверить находится ли точка внутри эллипса , если да, то распечатать «принадлежит», если нет, то «не принадлежит».

26.            

Задана точка с координатами (х, у,z).Проверить находится ли точка внутри сферы, если да то распечатать, если нет, то .

27.            

Даны действительные числа x,y,z. Найти min (x,y,z).

Продолжение Таблицы 13

28.            

Дано действительное число a. Вычислить и напечатать f(x) если

                                                                     

29.            

Даны три действительных числа. Выбрать f(a) и напечатать если

                                                                        

30.            

Дано действительное число. Вычислить и напечатать если

                                                                   

 

Таблица  14

Задания

1.                  

Задан круг с центром в точке О(x0, y0) и радиусом R0 и точка А(x1, y1). Определить, находится ли точка внутри круга.

2.                 

Задана окружность с центром в точке x0, y0 и радиусом R0 и прямая y=ax+b. Определить, пересекаются ли прямая и окружность. Если пересекаются, найти точки пересечения.

3.                 

Определить, пересекаются ли параболы  у=аx2+bx+с  и у=dx2+ex + ¦. Если пересекаются, найти точки пересечения.

4.                 

Между пунктами A и B расстояние L км. Из пункта A в пункт B выехал автомобиль со скоростью V0, а из пункта B в пункт A выехал автомобиль со скоростью V1. Кто из них быстрее приедет в пункт C, находящийся на расстояние S км от пункта B? (Пункт C находится между пунктами A и B).

5.                 

Пункты A, B и C находятся на одной прямой, пункт B между пунктами A и C. Расстояние между A и B равно L. Расстояние между B и C равно S. Из пункта A в пункт C выехал автомобилист со скоростью V0, а из пункта B в пункт C выехал мотоциклист со скоростью V1. Кто раньше приедет в пункт C?

6.                 

С высоты h1 падает тело. С высоты h2 (h2<h1) бросили вертикально вверх другое тело со скоростью V0. Определите, какое тело раньше упадет на землю.

7.                 

С высоты h1 падает кирпич, а с высоты h2 (h2>h1) бросили вертикально вниз другой кирпич со скоростью V0.  Определите, какой кирпич упадет раньше.

Продолжение Таблицы 14

8.                 

С высоты h1 падает кирпич. С высоты h2 (h2<h1) бросили вертикально вверх другой кирпич со скоростью V0.  Определите, у какого из кирпичей в момент соприкосновения с землей скорость будет больше.

9.                 

Определите,  пересекаются ли парабола у=cx2+dx+f  и прямая y=ax+b. Если пересекаются, то определите в каких точках.

10.            

Определите, имеет ли решение система. Если имеет, найдите корни.

11.            

Определите, совпадают ли точки пересечения кривых y=ax4+bx3+cx2+dx+f   и   y=gx4+bx3+fx2+dx+l и прямых y=ux+v и y=mx+k .

12.            

Определите, у какого из трех прямоугольных треугольников площадь больше:

·        гипотенуза c, угол a;

·        катет a , прилежащий угол b

·        высота h, угол g.

13.            

Проверить коллинеарность векторов А=(а123) и B=(b1,b2,b3). Установить, какой из них длинее и во сколько раз, как они направлены.

14.            

Определить, при каких значениях x и y векторы A=a1i+a2j+xk и B=yi+b2j+b3k коллинеарны и какой из векторов короче.

15.            

Заданы три точки A(a1,a2,a3), B(b1,b2,b3) и C(c1,c2,c3).  Определить между какими точками расстояние будет наименьшим.

16.            

Даны уравнения двух прямых  y=a1x+b1 и y=a2x+b2. Определить пересекаются ли эти прямые, совпадают или параллельны.

17.            

Задана точка M с координатами (x, y).  Определить является ли эта точка началом координат или лежит на одной из координатных осей.

18.            

Дана точка M с координатами (x, y). Определить является ли эта точка началом координат, если нет, то в каком координатном углу она расположена.

19.            

Заданы точки A(x1,y1) и B(x2,y2).  Определить лежат ли они на прямой  y=ax+b.

20.            

Известны координаты точки M(x,y). Определить принадлежит ли эта точка одной из прямых y=a1x+b1; y=a2x-b2.

 

 

Продолжение Таблицы 14

21.            

Пусть заданы две пары прямых

y = a1x + b1                 y = a3x + b3

y = a2x + b2                 y = a4x + b4

Определить, между какими прямыми угол больше?

22.            

Известны уравнения двух прямых  y=a1x+b1 и y=a2x+b2. Определить, являются ли эти прямые параллельными или перпендикулярными, если нет, то найти угол между ними

23.            

Задана функция  y=x3-3x. Определить точки экстремума функции

24.            

Известна функция  y=x4-2x2. Найти минимум и максимум для этой функции на заданном интервале [a, b].

25.            

Даны  координаты вершин двух треугольников ABC и  DFG: A(a1, a2), B(b1, b2), C(c1, c2), D(d1, d2), F(f1, f2), G(g1, g2). Определить, периметр какого треугольника больше.

26.            

Даны два параллелепипеда, каждый из которых построен на трех векторах: a (ax, ay, az),  b (bx, by, bz ),  c (cx, cy, cz) и  d (dx, dy, dz ), f (fx, fy, fz),   g (gx, gy, gz). Определить, объем какого параллелепипеда меньше.

27.            

Заданы два неколлинеарных вектора а1(x1, y1, z1) и a2(x2, y2, z2). Проверить условие перпендикулярности векторов и, если оно не выполняется, найти угол между ними.

28.            

Заданы два параллелограмма, построенные на векторах a(ax,aу) и b(bx,by), c(cx,cу) и d(dx,dy). Определите, площадь какого параллелограмма больше.

29.            

Определите, какой из квадратов больше: с диагональю d, с вписанным кругом площадью S1, с описанным кругом площадью S1;

Определите, что больше k-й член арифметической прогрессии или m-й член геометрической прогрессии. Все необходимые исходные данные ввести с экрана дисплея.

30.            

Определите, что больше k-й член арифметической прогрессии или m-й член геометрической прогрессии. Все необходимые исходные данные ввести с экрана дисплея.

 

 

 

 

 

 

 

 

 

 

Таблица 15

Задание

Параметр

1.      

2.      

3.      

4.      

5.      

6.      

7.      

8.      

9.      

10.            

11.            

12.            

13.            

14.            

 

Продолжение Таблицы 15

15.            

16.            

17.            

18.            

19.            

20.            

21.            

22.            

23.            

24.            

25.            

26.            

27.            

28.            

29.            

30.            

 

Таблица 16

Задание

1.      

M (x;y) принадлежит второй четверти единичного круга с центром в начале координат или полуплоскости, лежащей ниже прямой y=x.

2.      

M(x;y) принадлежит внутренней части единичного круга с центром в начале координат или после от y=0; y=3;

3.      

M(x;y) принадлежит внутренней части круга R=2 центром в начале координат или полуплоскости лежащей ниже пряма y=x+2.

4.      

М(x;y) принадлежит четвертой четверти или внутренней части параболы y=x2 лежащей ниже прямой у=3.

5.      

M(x;y) принадлежит полосе от x=2 до у=3 или третьей четверти.

6.      

M(x;y) принадлежит верхней половине единичного круга с центром в начале координат или области лежащей ниже графика функции .

7.      

М(х ;у) принадлежит внутренней части круга (х-2)22=4 и полосе от х=2 до х=3.

8.      

М( х ;у) принадлежит внутренней части круга х22=4 выше прямой у=х или его четвертой четверти.

9.      

М(х;у) принадлежит четвертой четверти или полуполосе от у=1 до у=3, лежащей левее на прямой у=х.

10.            

М(х;у) принадлежит внутренней части круга с радиусом 3 и центром в начале координат, и полосе от у=-2 до у=1.

11.            

М(х;у) принадлежит области, ограниченной параболой   x=y2-1 и окружностью x2+y2=4, или внешности этого круга в четвертой четверти.

12.            

М(х;у) принадлежит внешности единичного круга с центром (0;-3) или его первой четверти.

13.            

М(х;у) принадлежит области, заключенной между прямой  и  и

14.            

М(х;у) принадлежит области заключенной между прямыми у=2;х=1 и параболой у=0,5х2.

15.            

М(х;у) принадлежит области, заключенной между линиями у = cos(2x)  и  y=0,5x2.

16.            

М(х;у) принадлежит области, ограниченной линиями x = -1 ,y= - 1, x  =  y2 -1

Продолжение Таблицы 16

17.            

М(х;у) принадлежит второй четверти или области ограниченной линиями у=-х2 и  у=-3.

18.            

М(х;у) принадлежит области, ограниченной линиями у=0;   х=1; 

          х=-1;    у=cosх.

19.            

М(х;у) принадлежит внешности круга с радиусом R=2 и с центром в начале координат и полосе от

20.            

М(х;у) падает в область, ограниченную линиями у=х и у=х3 .

21.            

М(х;у) принадлежит области, ограниченной линиями у=х2-1 и х22=4 или второй четверти.

22.            

М(х;у) принадлежит области, заключенной между линиями у=0; у=-2; х22=9

23.            

М(х;у) принадлежит области, ограниченной линиями х=2; х=3; х=2у2.

24.            

М(х;у) принадлежит внутренней части круга х2+(у2+1)=9 или второй четверти.

25.            

М(х;у) принадлежит области, ограниченной кривыми х22=9 и у=х2+1.

26.            

М(х;у) принадлежит области, ограниченной кривыми у=2x, у=1; х=5.

27.            

М(х;у) принадлежит области, ограниченной линиями

28.            

М(х;у) принадлежит области, ограниченной линиями у=0,5х; у=2; у=-0,5х2.

29.            

М(х;у) принадлежит области ограниченной линиями у=2х; у=х2+5.

30.            

М(х;у) принадлежит области, ограниченной линиями у=х; у=х2; и у=3

 

 

 

 


 

Таблица 17

I.     Записать выражение, зависящее от координат точки X1 и Y1 и принимающее значение TRUE, если точка принадлежит заштрихованной области, и FALSE, если не принадлежит. Для заданной точки вычислить это выражение  и результат выдать на печать.      

1

координаты исследуемой  точки: (0.5;0,5).

2

координаты исследуемой точки:(1.5;0.5).

 

3

координаты исследуемой точки: (0.2;0.9).

4

координаты исследуемой точки: (0.75;-0,3).

 

5

 

 

координаты исследуемой точки: (0.2;0.45).

6

координаты исследуемой точки: (0.0;0.0).

Продолжение Таблицы 17

7

координаты исследуемой точки: (1.5;0.0).

8

координаты исследуемой точки: (-0.5;0.9).

 

9

 

 

 

 

координаты исследуемой точки: (0.5;-2,5).

10

координаты исследуемой точки:  (1.0;1.5).

 

II) Изобразить область в виде логического выражения:

 

11

12

Продолжение Таблицы 17

13

14

 

15

16

17

18

Продолжение Таблицы 17

19

20

21

22

23

24

 

Продолжение Таблицы 17

 

25

26

 

27

28

 

29

30

 

 

 


 

Методические указания к выполнению лаб.работы № 6

Пример решения задачи из Таблицы 12

 

Найти значение у, проверив условие, значения a,b,c задаются самим студентом с клавиатуры:

         

На рисунке 3 приводятся блок – схема и диаграмма Насси для решения данной задачи.

                Блок – схема                                              Диаграмма Насси

Ввод  a,b,c

 

         

Вывод y

конец

Подпись: да

 

#include <stdio.h>                                 //    для ввода-вывода

#include <conio.h>                            //     для работы с экраном

#include <math.h>                            //    для использования математических функций

          void main ( )                                             //     главная программа

 float x,y,a,b,c;                                         //      объявление типа переменных

   clrscr( ) ;                                                   //         очистка экрана

 printf(“ vvedi a,b,c”);                          // вывод  на экран текста «vvedi a,b,c»

scanf(“%f%f %f ”,&a,&b,&c);                                      // ввод  значений  a,b,c

x=(pow(a,2)-b)/c;                                                                  //вычисление значения  х

     if (x<10) {y= pow(x,2)+4; printf(“x<10”);}

       else {y= pow(x,3)-7; printf(“x>=10”);}

printf(“      y=%f”,y);                                                               //   вывод у

getch( );

}

Результаты программы:

vvedi a,b,c                                     vvedi a,b,c

2 7 9                                                  9 2 4

x<10     y=4.111111                       x>=10      y=7696.734375

 

Операторы выбора - это условный оператор и переключатель.

1. Условный оператор имеет полную и сокращенную форму (к таб.      ).

if (выражение-условие ) оператор; //сокращенная форма

В качестве выражения-условия могут использоваться арифметическое выражение,

отношение и логическое выражение. Если значение выражения-условия отлично от нуля

(т. е. истинно), то выполняется оператор. Например:

if (x<y&&x<z)min=x;

if ( выражение-условие ) оператор1; //полная форма

else оператор2;

Если значение выражения-условия отлично от нуля, то выполняется оператор1, при

нулевом значении выражения-условия выполняется оператор2.Например:

if (d>=0)

{

x1=(-b-sqrt(d))/(2*a);

x2=(-b+sqrt(d))/(2*a);

cout<< “\nx1=”<<x1<<“x2=”<<x2;

}

else cout<<“\n Решения нет”;

2.Переключатель определяет множественный выбор (к таб.).

switch (выражение)

{ case константа1 :

оператор1 ;

case константа2 : оператор2 ;

. . . . . . . . . . .

[default: операторы;]

}

Пример:

#include <iostream.h>

void main()

{

int i;

cout<<"\nEnter the number";

cin>>i;

switch(i)

{ case 1:cout<<"\nthe number is one";

case 2:cout<<"\n2*2="<<i*i;

case 3: cout<<"\n3*3="<<i*i;break;

case 4: cout<<"\n"<<i<<" is very beautiful!";

default:cout<<"\nThe end of work";

}

}

Результаты работы программы:

1. При вводе 1 , при запросе программы ,будет выведено:

The number is one

2*2=1

3*3=1

2. При вводе 2 будет выведено:

2*2=4

3*3=4

3. При вводе 3 будет выведено:

3*3=9

4. При вводе 4 будет выведено:

The end of work

 

     Прочитав в конспекте тему «Элементы алгебры логики» , приступайте к выполнению задания из таблицы 15.Ниже приводим пример выполнения.

Проставим порядок выполнения операций в логическом выражении и сделаем необходимые вычисления (х=1,у=1).

 

 

 

Ответ: Z=TRUE

 

Описать с помощью логического выражения область, образованную линиями: y=2-x2 ,  y=-1; y=1, так чтобы оно было истинным, если точка М (x, y) принадлежит области, и ложным в противном случае (таб. 16).

Построим в прямоугольной системе координат заданные линии: параболу y=2-x2, прямую y=-1, прямую y=1, и заштрихуем область, которой принадлежит точка M (x, y) (рис. 1.)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


                      

 

 

Запишем логическое выражение для переменной Z, которая будет принимать значение TRUE для всех точек заштрихованной области:

                  

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


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

 

     #include<stdio.h>                                                      

     #include<conio.h>                                                       

     #include<math.h>                                                       

     void main()                                                            

     {                                                                       

     float x,y; int z;                                                      

     clrscr();

     puts("Vvedite koord. tochki M   :");                          

     printf("enter x="); scanf("%f",&x);                                     

     printf("enter y="); scanf("%f",&y);                                    

    z=(y>2-pow(x,2)&&(y>-1)&&(y<1));                                           

    if (z) {printf(" prinadlegit");}                                        

          else {printf("ne prinadlegit");}                                     

     getch();                                                               

    }

 

Результат программы:

 

Vvedite koord. tochki M   :

 

Vvedite koord. tochki M   :

 

Vvedite koord. tochki M   :

 

enter x=-1

 

enter x=0

 

enter x=-1

 

enter y=-5

enter y=0

enter y= 2

ne prinadlegit

 

 prinadlegit

 

ne prinadlegit

 

Контрольные вопросы.

 

1.Для чего предназначен оператор условного перехода?

2.Каковы формы записи оператора  условного перехода?

3.Когда и как применяется составной оператор?

4.Может ли оператор  условного перехода содержать вложенные
  операторы  условного перехода ?

5.Нарисуйте и объясните блок-схему выполнения оператора  условного
    перехода .

6. Для чего предназначен оператор выбора (переключатель)?

7. Могут ли выполнится несколько ветвей оператор выбора за один раз?

8.Сколько операторов можно записать после возможного значения переменной?

9.Расскажите об основных логических операциях.

10.Расскажите об  операциях отношения. Каков порядок действий в
       логическом выражении? 

 

        

Лабораторная работа № 7

Алгоритмы и программы циклической структуры

 

Цель работы

 

 

 1.Формулирование алгоритмов : повторение ,управляемое счетчиком;

   повторение, управляемое контрольным значением, вложенные управляющие операторы.

2. Изучить  операторы цикла .

3. Научиться составлять программы циклической структуры.

 

Задание

1.    Разработать  алгоритмы для заданий  своего варианта из заданных таблиц . Написать программы к заданиям своего варианта из  таблиц18-23 (№ по заданию преподавателя).Надо использовать все три оператора цикла, причем, в группах. В – это могут быть три отдельные программы, в группах А -это обязательно отдельные функции. Основная программа (main()) должна содержать меню для выбора соответствующей функции программы.

2.    Отладить программы, получить решение и подпись преподавателя.

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

 

       Содержание отчёта

 

Отчёт должен содержать:

1. Название лабораторной работы.

2. Задание к лабораторной работе.

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

4.Дату и оценку после защиты с подписью преподавателя.

 

Условие заданий:

 

К Таблице 18. Составить программу для вычисления значений функции F(x) на отрезке [a,b] с шагом h. Результат представить в виде таблицы, первый столбец которой- значения аргумента, второй- соответствующие значения функции.

 

 

 

 


Таблица 18

 

Номер варианта

Функция F(x)

Параметры

m

а

b

1.           

x-sin(x)

0

π/2

10

2.           

sin(x)

π/4

π/2

10

3.           

-cos(2x)

π/3

2π/3

10

4.           

tg(x)

0

π/4

10

5.           

ctg(x)

π/4

π/2

10

6.           

arcsin(x)

0

1

10

7.           

arccos(x)

0.5

1

10

8.           

arctg(x)

2

7

10

9.           

sin(x)-cos(x)

0

π/2

10

10.      

x sin(x)

0

π/3

10

11.      

sin(1/x)

π/8

π/2

10

12.      

cos(1/x)

π/4

π/2

10

13.      

sin(x2)

π/6

2π/3

10

14.      

cos(x2)

π/3

3π/2

10

15.      

sin(x)+tg(x)

0

π/4

10

16.      

cos(x)+ctg(x)

π/4

π/2

10

17.      

tg(x/2)

0

2π/3

10

18.      

tg(x/2)+cos(x)

π/2

3π/4

10

19.      

ctg(x/3)+sin(x)

π/4

π/2

10

20.      

sin(x/4)/2

π/2

π

10

21.      

sin2x

π/8

π/4

10

22.      

2cosx-1

π/4

π/2

10

23.      

ctgx+1

π/4

π/2

10

24.      

sin(1/x)+2

π/8

π/4

10

25.      

x cos(1/x)+2

π/8

π/2

10

26.      

π/6

2π/3

10

27.      

x2sin2x+1

π/2

3π/4

10

28.      

0

π/2

10

29.      

sin2x-cos2x

0

π/3

10

30.      

7sin2x-1/2cosx

π/2

3π/4

10

 

 

 

 

 


Таблица 18 А

      Варианты

1.   a) ;                    b) ;          c)

 

 


2.   a) ;            b) ;            c)  

 

 


3.   a) ;            b) ;            c)

 

 


4.   a) ;             b) ;           c)

 

 


5.   a) ;          b) ;                c)

 


6.   a) ;          b) ;              c)

 

 


7.    a) m!+7;                      b) ;               c)

 

 


8.    a) (m+1)!;                    b) ;          c)

9.     а);          b)       c)

Варианты

 


10.  a);        b)    c)

 


11.  a) ;       b);             c)

12.   а) ;         b) ;     c);

 

 


13.   a) ;      b) ;          c)

 

 


14.   a) ;       b) ;              c)

 

 


15.   a) ;      b);    c)

 

 


16.   a) b)  c)

 

 


17.   a)   ;       b);    c)

 


18.  a) ;   b)     c)

 

Варианты

 


19.     a) ;      b) ;          c)

 

 

 


20.     a) ;    b)           c)

 

 


21.  a)     b);         c)

 

 

 


22.   a) ;   b)     c)

 

 

 


23.   a)    ;      b);    c)

 

 


24.   a)       b)         c)

 

 

 


25.   a)     b)     c)

 

 

 


Варианты

 

 


26.    a)       b)     c)

 

 

 


27.      a)          b)   c)

 

 

 


28.      а)         b)      c)

 

 


29.      а)        b)        c)

 

 


30.       а) m!;                    b)         c)

 


 

 

Таблица 19

Сумма

a, b диапазон

y-функция

n

1.

10

2.

40

3.

40

4.

10

5.

40

6.

25

7.

10

8.

20

9.

30

10

25

11

s

10

12

35

13

10

14

20

15

30

16..

20

17.

20

 

 

 

Продолжение Таблицы 19

18.

50

19.

20

20.

30

21.

40

22.

35

23.

15

24.

40

25.

20

26.

20

27.

40

28.

40

29.

40

30.

20

                                                                                                                    


                                                              Таблица 20

1