ГОСУДАРСТВЕННЫЙ КОМИТЕТ СВЯЗИ, ИНФОРМАТИЗАЦИИ И ТЕЛЕКОММУНИКАЦИОННЫХ ТЕХНОЛОГИЙ РЕСПУБЛИКИ УЗБЕКИСТАН
ТАШКЕНТСКИЙ УНИВЕРСИТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ
Факультет «Компьютер инжиниринг»
Кафедра «Основы информатики »
СБОРНИК ЗАДАНИЙ И МЕТОДИЧЕСКИХ УКАЗАНИЙ
К ЛАБОРАТОРНЫМ РАБОТАМ ПО КУРСУ
«Основы программирования»
(1 часть)
Ташкент-2013
Под общим руководством заведующего кафедрой «Основы информатики» проф. Ш.А. Назирова.
Авторы: Хайдарова М.Ю., Марышева Л.Т.,Кудратов С.Г., Ташпулатова Н.Б.,Д.З.Ганиходжаева. «Сборник заданий и методических указаний к лабораторным работам по курсу Основы программирования ” ,- Ташкент: ТУИТ. 2013. -__ с.
Сборник предназначен для проведения лабораторных работ в первом семестре 1-го курса.
Данный сборник апробировался авторами в течение 4-х лет (2009-2013г.)
на соответствующих занятиях для
первокурсников факультета
информационных технологий, содержит задания для 7 лабораторных работ,
охватывающих весь теоретический материал первого семестра.
В первом семестре 1-го курса студенты должны изучить основные понятия общей информатики и начала программирования на С++ , как-то:
понятие и виды, измерение, кодирование информации; архитектура, арифметические основы вычислительных машин; алгоритмы и формы представления их процедурное программирование на алгоритмическом языке С++.
В рассматриваемом сборнике каждая лабораторная работа посвящена определённой теме, снабжена методическими указаниями и примерами выполнения, программами, что поможет, по мнению авторов, качественно самостоятельно усваивать прорабатываемый материал. Кроме того, в сборнике содержатся и отдельные задания для одарённых студентов.
Работа была доложена на заседании кафедры от 8 апреля 2013 года, одобрена и рекомендована к тиражированию.
(№____________________приказ_________________2013г.)
Рецензент
Доцент кафедры АТДТ и
К.т.н. Латипова Н.
Ташкентский университет информационных технологий. 2013 г.
ВВЕДЕНИЕ
Особое внимание развитию информационных технологий уделяется в Республике Узбекистан за годы независимости. Для всех ступеней системы образования утверждены новые образовательные стандарты, что служит гарантом качества учебного процесса.
В данном методическом пособии на основе соответствующей учебной программы по дисциплине «Основы программирования» приведены указание для проведения лабораторных работ 8ми по кафедре «Основы Информатики» и рассчитанных на 54 часа учебной нагрузки. Лабораторные работы включают в себя следующие разделы:
- архитектура персонального компьютера;
- методы хранения информации, единицы измерения информации,кодирование, шифрование и защита информации;
- основные функции алгебро логики;
- системы счисления;
- алгоритмы различной структуры(линейной, циклической, разветвляющейся);
- программы на языке С++ различной структуры(линейной, циклической, разветвляющейся);
- методы обработки массивов на языке С++ (одномерных).
Внедрение предлагаемого методического пособия в учебный процесс для студентов первого курса Университета информационных технологий всех направлений способствует претворению в жизнь целей «Национальной программы по подготовке кадров».
Лабораторная работа № 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. Освоение методов защиты информации .
7. Ознакомление с основными понятиями антивирусной защиты.
Задание
Таблица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-битную кодировку
|
||||||||||||||||||||||||
18 |
В таблице ниже представлена часть кодовой таблицы ASCII:
Каков шестнадцатеричный код символа «p» ?
|
||||||||||||||||||||||||
19 |
1) В таблице ниже представлена часть кодовой таблицы:
Каков шестнадцатеричный код символа «я» ?
|
||||||||||||||||||||||||
20 |
Считая, что каждый символ кодируется одним байтом, определите, чему равен информационный объем следующего предложения: Я памятник себе воздвиг нерукотворный!
|
||||||||||||||||||||||||
21 |
Считая, что каждый символ кодируется одним байтом, определите, чему равен информационный объем следующего высказывания: Римские цифры – пример непозиционной системы счисления !
|
||||||||||||||||||||||||
22 |
Считая, что каждый символ кодируется одним байтом, оцените информационный объем следующего предложения: Солнце светит, но не греет.
|
||||||||||||||||||||||||
23 |
Считая, что каждый символ кодируется одним байтом, определите, чему равен информационный объем следующего предложения: Весна – лучшее время года.
|
||||||||||||||||||||||||
24 |
Считая, что каждый символ кодируется одним байтом, определите, чему равен информационный объем следующего предложения: Я более всего весну люблю. |
||||||||||||||||||||||||
25 |
Считая, что каждый символ кодируется одним байтом, определите, чему равен информационный объем следующего предложения: У семи нянек дитя без глаза. |
||||||||||||||||||||||||
26 |
Считая, что каждый символ кодируется одним байтом, определите, чему равен информационный объем следующего предложения: Семь раз отмерь – один раз отрежь. |
||||||||||||||||||||||||
27 |
Считая, что каждый символ кодируется одним байтом, определите, чему равен информационный объем следующего предложения: Один в поле не воин. |
||||||||||||||||||||||||
28 |
Считая, что каждый символ кодируется одним байтом, определите, чему равен информационный объем следующего предложения: Не родись красивой, а родись счастливой. |
||||||||||||||||||||||||
29 |
Считая, что каждый символ кодируется одним байтом, определите, чему равен информационный объем следующего предложения: Не имей сто рублей, а имей сто друзей. |
||||||||||||||||||||||||
30 |
Считая, что каждый символ кодируется одним байтом, определите, чему равен информационный объем следующего предложения: Твори добро, оно вернётся. |
||||||||||||||||||||||||
31 |
Считая, что каждый символ кодируется одним байтом, определите, чему равен информационный объем следующего предложения: Учиться, учиться и учиться! |
Таблица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. Данный процесс называется дешифрованием.
Контрольные вопросы
1.Способ шифрования, предложенный Юлием Цезарем.
2.Зашифруйте свою фамилию с помощью метода Цезаря.
3.Дешифруйте слово «информационная технология».
4. Определите информационный объем слова из двадцати четырех символов.
5. Кодирование.Основные назначения.
Лабораторная работа №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 В)в двоичной системе; |
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
|
|
Из всех систем счисления особенно проста и поэтому интересна для технической реализации в компьютерах двоичная система.
Таблицы сложения легко составить, используя Правило Счета. Правила сложения в двоичной и восьмеричной системах счисления представлены в таблице 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.
Методические указания к выполнению заданий из таблицы 3
При работе над этим заданием следует использовать следующие правила перевода: «специальное правило», «правило деления» и «правило позиционности».
Специальное правило .Это правило применимо лишь для тех систем счисления у которых основание одной из них является целой степенью основания другой, например, 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
Контрольные вопросы
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 можно представить в виде произведения простых чисел:
Такое разложение натурального числа называется каноническим. Из него следует, что если
то
Пример 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. Следовательно, их разница a – b также делится на d. Имеет место следующее рекуррентное соотношение для вычисления НОД:
Пример 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 операций вычитания. Для ускорения вычисления НОД операцию вычитания заменим операцией взятия остатка от деления:
Пример 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
Упростим приведенную выше рекуррентность, сократив количество условий до двух:
Если 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
fori
inxrange(
2, n+
1):
# пробегаем все числа от 2 до текущего
for
j
inxrange(
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 = []
fori
inxrange(
2, n+
1):
for
j
inxrange(
2, i):
if
i % j ==
0:
# если делитель найден, число не простое.
break
else
:
lst.append(i)
print lst
Конструкция break позволяет нам завершить выполнение внутреннего цикла и
перейти к следующей итерации внешнего.
Далее возникает вопрос: «а зачем делить на 4, если на 2 число не делится?».
Приходим к выводу, что искать делители нужно только среди простых чисел не
превышающих делимое. Наш алгоритм превращается в… см. Листинг 3.
# Листинг 3
n = input(
"n=")
lst=[]
fori
inxrange(
2, n+
1):
# пробегаем по списку (lst) простых чисел
for
j
inlst:
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
frommath
importsqrt
n = input(
"n=")
lst=[]
fori
inxrange(
2, n+
1):
for
j
inlst:
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=[]
fori
inxrange(
2, n+
1):
if
(i >
10):
if
(i%
2==
0)
or(i%
10==
5):
continue
for
j
inlst:
if
j > int((sqrt(i)) +
1):
lst.append(i)
break
if
(i % j ==
0):
break
else
:
lst.append(i)
print lst
В следствии незначительного изменения Листинга 5 получаем небольшую прибавку в
скорости:
# Листинг 6
frommath
importsqrt
n = input(
"n=")
lst=[
2]
fori
inxrange(
3, n+
1,
2):
if
(i >
10)
and(i%
10==
5):
continue
for
j
inlst:
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]
fori
inxrange(
3, n+
1,
2):
if
(i >
10)
and(i%
10==
5):
continue
for
j
inlst:
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
inxrange(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:
Таким образом, обратная матрица равна:
Контрольные вопросы
1. Виды алгоритмов.
2. Составьте программу с помощью с оператором break.
3. Алгоритм нахождения простых чисел
4. Алгоритмы разветвляющейся структуры.
Лабораторная работа №5
Программы линейной структуры. Правила работы в Интегрированной среде Borland C++ Builder 6.
Цель работы
1. Уметь формулировать математическую постановку задачи.
2. Научиться составлять простейшие программы линейной структуры.
Задание
1.Ознакомиться со средой программирования С++ , записать в тетрадь назначение основных команд меню (выполняется на лабораторном занятии).
2.Составить программы на С++, для заданий из таблиц 7 , 8, 9, 10 (по указанию преподавателя) отладить на ПК, получить результаты, показать преподавателю и получить подпись.
Содержание отчёта
Отчёт должен содержать:
1. Название лабораторной работы.
2. Задание к лабораторной работе.
3. математическую постановку задачи, алгоритмы в трёх видов.
4. Описание назначения основных команд меню в среде С++.
5. Одну программу линейной структуры, с результатами.
Номер варианта |
Формулы для Aи B |
Таблица 7
x, y |
1 |
2 |
3 |
Номер варианта |
Формулы для 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 |
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 |
Продолжение таблицы 7 |
||
24 |
A= B= |
x=12,4 y=18,6 |
25
|
A=ln( B= |
x=1,5 y=2,83
|
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. |
|
|
|
3. |
|
|
|
4. |
|
|
|
5. |
|
|
|
6. |
|
|
|
7. |
|
|
|
1 |
2 |
3 |
|
8. |
|
|
|
9. |
|
|
|
10. |
|
|
|
11. |
|
|
|
12. |
|
|
|
13. |
|
|
|
14. |
|
|
|
15. |
|
|
|
16. |
|
|
|
17. |
|
|
|
18. |
|
|
|
19. |
|
|
|
20. |
|
|
|
21. |
|
|
|
22. |
|
|
|
23. |
|
|
|
24. |
|
|
|
25. |
|
|
|
26. |
|
|
|
27. |
|
|
|
28. |
|
|
|
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 и площадь описанного вокруг квадрата круга.
|
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. Какова его кинетическая энергия в момент соприкосновения с землей.
|
|
Продолжение таблицы 9 |
20 |
Заданы две прямые: первая имеет уравнение y=kx+b, а вторая проходит через точки (x1,x2) и (y1,y2). Найти точку пересечения прямых.
|
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 |
||
24 |
|
|
25 |
|
|
26 |
|
|
27 |
|
|
28 |
|
|
29 |
|
|
30 |
|
|
Методические указания к лабораторным работам 4,5
Алгоритм можно представить в текстуальной форме, в графической форме в виде блок – схемы или диаграммы (см. конспект лекций).
Пример выполнения задачи из Таблицы 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); //Расчёты
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. |
Определить, попадает ли точка с координатами x0, y0 в круг радиусом r. Уравнение окружности r²=x²+y². Присвоить признаку N=1, если точка находится внутри круга, и N=0, если вне круга. |
3. |
Определить в каком квадрате находится точка с координатами x, y и вывести на печать номер квадрата. |
4. |
Даны действительные числа a, b. Удвоить эти числа, если a≥b, и заменить их абсолютными значениями, если условие не выполняется |
5. |
Даны два действительных числа a,b. Вывести первое число и текст “a больше b”, если оно больше второго, и оба числа и текст “a меньше b”, если это не так. |
6. |
Даны два действительных числа. Заменить первое число нулем, если оно меньше или равно второму, и оставить без изменения в противном случае. |
7. |
Даны три действительных числа. Выбрать из них те, которые принадлежат интервалу (І;3) |
8. |
Даны действительные числа x,y (x ≠ y). Меньшее из этих двух чисел заменить их полусуммой, а большее- их удвоенным произведением. |
9. |
Даны три действительных числа. Возвести в квадрат те из них, значения которых неотрицательны. |
10. |
Даны действительные числа a, b, c. Проверить, выполняются ли неравенство a<b<c. Если выполняются условия, то нужно напечатать “a<b<c”. В противном случае напечатать “Условия не выполняются” |
11. |
Даны три действительных a,b,c . Удвоить эти числа, если a≥b≥c, и заменить их абсолютными значениями, если это не так. |
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. Удвоить эти числа, если a≤b≤c, и заменить их квадратами если это не так. |
19. |
Даны действительные числа x,y (x≠y). Меньше из этих двух чисел заменить их суммой, а больше их утроенным произведением. |
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. |
Проверить коллинеарность векторов А=(а1,а2,а3) и 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)2+у2=4 и полосе от х=2 до х=3. |
8. |
М( х ;у) принадлежит внутренней части круга х2+у2=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 и х2+у2=4 или второй четверти. |
22. |
М(х;у) принадлежит области, заключенной между линиями у=0; у=-2; х2+у2=9 |
23. |
М(х;у) принадлежит области, ограниченной линиями х=2; х=3; х=2у2. |
24. |
М(х;у) принадлежит внутренней части круга х2+(у2+1)=9 или второй четверти. |
25. |
М(х;у) принадлежит области, ограниченной кривыми х2+у2=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. После выполнения всех пунктов задания и подготовки отчета защитить работу, получить балл.
4.
Содержание отчёта
Отчёт должен содержать:
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) |
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 |
1 |
2 |
1. |
Вычислить значения у, соответствующие каждому значению х (, шаг изменения x равен dx) по формуле . Вычислить сумму значений у, произведение отрицательных у, количество отрицательных у. Контрольный расчёт провести при a=2.17,xn=-1.5, xk=0.5, dx=0.2. |
2. |
Вычислить значения z, соответствующие каждому значению х (, шаг изменения x равен dx) по формуле . Вычислить сумму значений z, произведение отрицательных z, количество z<0.5. Контрольный расчёт провести при a=2.83, xn=1, xk=2, dx=0.1. |
3. |
Вычислить значения t, соответствующие каждому значению х (, шаг изменения x равен dx) по формуле . Вычислить сумму положительных значений t, произведение отрицательных t, количество отрицательных t. Контрольный расчёт провести при a=1.23, xn=-0.5, xk=0.5, dx=0.1. |
4. |
Вычислить значения у, соответствующие каждому значению х (, шаг изменения x равен dx) по формуле . Вычислить сумму значений у, произведение у. Контрольный расчёт провести при a=2.37, xn=1, xk=3, dx=0.2. |
5. |
Вычислить значения z, соответствующие каждому значению х (, шаг изменения x равен dx) по формуле . Вычислить , сумму значений z, произведение отрицательных z, количество вычислительных z. Контрольный расчёт провести при a=2.62, xn=-3, xk=3, dx=0.6. |
Продолжение Таблицы 20 |
|
6. |
Вычислить значения t, соответствующие каждому значению х (, шаг изменения x равен dx) по формуле . Вычислить сумму значений t³a, произведение t, количество отрицательных t³a. Контрольный расчёт провести при a=3.72, xn=1, xk=3, dx=0.2. |
7. |
Вычислить значения y, соответствующие каждому значению х (, шаг изменения x равен dx) по формуле . Вычислить сумму значений y, произведение y, количество вычисленных y. Контрольный расчёт провести при a=2.46, xn=0.5, xk=4.5, dx=0.4. |
8. |
Вычислить значения z, соответствующие каждому значению х (, шаг изменения x равен dx) по формуле Вычислить сумму значений z, произведение z, количество отрицательных z. Контрольный расчёт провести при a=4.46, b=2.16,xn=-1.5, xk=4.5, dx=0.6. |
9. |
Вычислить значения t, соответствующие каждому значению х (, шаг изменения x равен dx) по формуле . Вычислить сумму значений t, произведение t£200, количество t>200. Контрольный расчёт провести при a=6.13, b=3.42, xn=-2, xk=3, dx=0.5. |
10. |
Вычислить значения у, соответствующие каждому значению х (, шаг изменения x равен dx) по формуле . Вычислить сумму значений y, произведение отрицательных y, количество отрицательных y. Контрольный расчёт провести при a=2.89, xn=-50, xk=50, dx=10. |
11. |
Вычислить значения z, соответствующие каждому значению х (, шаг изменения x равен dx) по формуле . Вычислить сумму значений z>4, произведение z, количество z>4. Контрольный расчёт провести при a=2.94, xn=1.5, xk=5.5, dx=0.4.
|
Продолжение Таблицы 20 |
|
12. |
Вычислить значения t, соответствующие каждому значению х (, шаг изменения x равен dx) по формуле . Вычислить сумму значений t<2, произведение t>2, количество t>2. Контрольный расчёт провести при a=12.94, xn=1, xk=6, dx=0.5. |
13. |
Вычислить значения у, соответствующие каждому значению х (, шаг изменения x равен dx) по формуле . Определить количество вычисленных y и . Контрольный расчёт провести при a=2.91, b=2.41, xn=-4, xk=4, dx=0.8. |
14. |
Вычислить значения z, соответствующие каждому значению х (, шаг изменения x равен dx) по формуле . Вычислить сумму значений z, произведение z, количество z<0. Контрольный расчёт провести при a=6.13, b=4.28, xn=-3.5, xk=3.5, dx=0.7. |
15. |
Вычислить значения t, соответствующие каждому значению х (, шаг изменения x равен dx) по формуле . Вычислить сумму значений t>1, произведение t<1, количество вычисленных t>2. Контрольный расчёт провести при a=2.84, b=4.67, xn=2.5, xk=7.5, dx=0.5. |
16. |
Вычислить значения у, соответствующие каждому значению х (, шаг изменения x равен dx) по формуле . Вычислить сумму значений y, произведение отрицательных y, количество отрицательных y. Контрольный расчёт провести при a=5.41, xn=-5, xk=5, dx=1. |
Продолжение Таблицы 20 |
|
17. |
Вычислить значения z, соответствующие каждому значению х (, шаг изменения x равен dx) по формуле . Вычислить сумму значений z£0, произведение z>0, количество вычисленных z. Контрольный расчёт провести при a=4.32, b=8.13, xn=-3, xk=4, dx=0.7. |
18. |
Вычислить значения t, соответствующие каждому значению х (, шаг изменения x равен dx) по формуле . Вычислить сумму значений t, произведение t<0, количество вычисленных t<0. Контрольный расчёт провести при a=2.56, b=12.7, xn=-2, xk=2, dx=0.4. |
19. |
Вычислить значения у, соответствующие каждому значению х (, шаг изменения x равен dx) по формуле . Вычислить сумму значений y³0, произведение отрицательных y, количество отрицательных y. Контрольный расчёт провести при a=6.42, b=3.17, xn=-3, xk=3, dx=0.6. |
20. |
Вычислить значения z, соответствующие каждому значению х (, шаг изменения x равен dx) по формуле . Вычислить сумму вычисленных значений z, произведение и количество. Контрольный расчёт провести при a=3.53, b=6.12, xn=1, xk=3, dx=0.2. |
21. |
Вычислить значения t, соответствующие каждому значению х (, шаг изменения x равен dx) по формуле . Определить количество вычисленных t и . Контрольный расчёт провести при a=3.42, xn=-2, xk=2, dx=0.4. |
22. |
Вычислить значения у, соответствующие каждому значению х (, шаг изменения x равен dx) по формуле . Определить . Контрольный расчёт провести при a=2.47, b=4.82, xn=2.5, xk=5.5, dx=0.3. |
Продолжение Таблицы 20 |
|
23. |
Вычислить значения z, соответствующие каждому значению х (, шаг изменения x равен dx) по формуле . Вычислить сумму вычисленных значений z<a, произведение z и количество z<a. Контрольный расчёт провести при a=3.42, xn=-2, xk=3, dx=0.5.
|
24. |
Вычислить значения t, соответствующие каждому значению х (, шаг изменения x равен dx) по формуле . Вычислить сумму значений t³500, произведение t<500, количество вычисленных t³500. Контрольный расчёт провести при a=2.5, xn=1.5, xk=5.5, dx=0.4.
|
25. |
Вычислить значения у, соответствующие каждому значению х (, шаг изменения x равен dx) по формуле . Вычислить сумму значений y<a, произведение и количество y³a. Контрольный расчёт провести при a=2.57, xn=2, xk=5, dx=0.3.
|
26. |
Вычислить значения z, соответствующие каждому значению х (, шаг изменения x равен dx) по формуле . Вычислить сумму вычисленных значений z³0, произведение и количество z<0. Контрольный расчёт провести при a=3.49, xn=-1, xk=1, dx=0.1.
|
27. |
Вычислить значения t, соответствующие каждому значению х (, шаг изменения x равен dx) по формуле . Вычислить сумму значений t, произведение t<a, количество вычисленных t³a. Контрольный расчёт провести при a=3.24, xn=1.5, xk=3.5, dx=0.2.
|
Продолжение Таблицы 20 |
|
28. |
Вычислить значения у, соответствующие каждому значению х (, шаг изменения x равен dx) по формуле . Вычислить сумму значений y, произведение и количество. Контрольный расчёт провести при a=3.24, b=1.22, xn=-2, xk=2, dx=0.2.
|
29. |
Вычислить значения z, соответствующие каждому значению х (, шаг изменения x равен dx) по формуле . Определить , где n количество вычисленных z. Контрольный расчёт провести при a=5.27, xn=1, xk=10, dx=1.
|
30. |
Вычислить значения t, соответствующие каждому значению х (, шаг изменения x равен dx) по формуле . Определить . Контрольный расчёт провести при a=3.5, b=6.8, xn=-3, xk=3, dx=0.5. |
Таблица 21
Программирование циклов с неизвестным числом повторений.
№ |
Задание |
1. |
Дано: а =4; dа=-0.5. S вычислять по формуле: S = 2.79ln(a3+a+1). Считать S до тех пор, пока выражение под знаком логарифма больше 1. Определить k - количество вычисленных S. Вывести на экран a, S, k. |
2. |
Дано: q =3; dq=-0.2. F вычислять по формуле: . Считать до тех пор, пока подкоренное выражение больше 0. Определить k - количество вычисленных F. Вывести на экран q, F, k. |
Продолжение Таблицы 21 |
|
3. |
Дано: x=2; dx=-0.2. Z вычислять по формуле: . Считать Z до тех пор, пока выражение под знаком логарифма больше 0. Определить k - количество вычисленных Z . Вывести на экран k, Z, x. |
4. |
Дано: а = 1.2; x =1;dx= 0.5. Z вычислять по формуле: . Считать Z до тех пор, пока подкоренное выражение меньше 250. Определить k - количество вычисленных Z. Вывести на экран x, Z, k. |
5. |
Дано: а =5; dа=-0.5. Z вычислять по формуле: , где q = a2 - a. Считать до тех пор, пока q > 0. Определить k - количество вычисленных Z . Вывести на экран a, q, Z, k. |
6. |
Дано: а=3.7; x=2; dx=0.2. Z вычислять по формуле: Z=0.5cos(x)+ln(a/x3 +1/x). Считать Z до тех пор, пока выражение под знаком логарифма больше 0.3. Определить k - количество вычисленных Z. Вывести на экран x, Z, k. |
7. |
Дано: x=1; dx=0.5. Z вычислять по формуле: Z = q(cos(3x)+sin(5x)), где q = ex-1 + x. Считать до тех пор, пока q < 400. Определить k - количество вычисленных Z. Вывести на экран x, q, Z, k. |
8. |
Дано: x=1; dx=0.5. Z вычислять по формуле: , где . Считать Z до тех пор, пока y > 0.02. Определить k - количество вычисленных Z. Вывести на экран x, y, Z, k. |
9. |
Дано: x=-1.5;dx=0.5. Z вычислять по формуле:. Считать Z до тех пор, пока выражение под знаком логарифма больше 0.05. Определить k - количество вычисленных Z. Вывести на экран x, Z, k. |
10. |
Дано: b=1; db=-0.2. Z вычислять по формуле: . Считать Z до тех пор, пока подкоренное выражение больше 0. Определить k - количество вычисленных Z. Вывести на экран b, Z, k. |
11. |
Дано: x=2; dx=-0.2. Z вычислять по формуле:. Считать Z до тех пор, пока подкоренное выражение больше 0. Определить k - количество вычисленных Z. Вывести на экран x, Z, k. |
Продолжение Таблицы 21 |
|
12. |
Дано: а=5; dа=-0.5. Z вычислять по формуле: Z = ln(1+0.8a)cos(a). Считать Z до тех пор, пока выражение под знаком логарифма больше 0. Определить k – количество вычисленных Z. Вывести на экран a, Z, k. |
13. |
Дано: x=3; dx =-0.2. Z вычислять по формуле: . Считать Z до тех пор, пока подкоренное выражение больше 0. Определить k - количество вычисленных Z. Вывести на экран x, Z, k. |
14. |
Дано: x=4; dx =-0.3. Z вычислять по формуле: Z = ln(5x-5)sin(x). Считать Z до тех пор, пока выражение под знаком логарифма больше 0. Определить k - количество вычисленных Z. Вывести на экран x, Z, k. |
15. |
Дано: x =1; dx=0.2 Z вычислять по формуле: , где .Считать Z до тех пор, пока y < 150. Определить k - количество вычисленных Z. Вывести на экран x, y, Z, k. |
16. |
Дано: а=2; dа=0.5. Z вычислять по формуле: . Считать Z до тех пор, пока подкоренное выражение больше 0.03. Определить k - количество вычисленных Z. Вывести на экран a, Z, k. |
17. |
Дано: b=3; db= -0.3. Z вычислять по формуле: , где x = 0.3b3+b. Считать Z до тех пор, пока x>0. Определить k - количество вычисленных Z. Вывести на экран b, x, Z, k. |
18. |
Дано: x=2; dx=0.4. Z вычислять по формуле: . Считать Z до тех пор, пока подкоренное выражение больше или равно 0.2. Определить k - количество вычисленных Z. Вывести на экран x, Z, k. |
19. |
Дано: с =3.2; а=1; dа=0.3. Z вычислять по формуле: , где . Считать Z до тех пор, пока x < 100. Определить k - количество вычисленных Z. Вывести на экран a, x, Z, k. |
20. |
Дано: x=3; dx=-0.4. Z вычислять по формуле:. Считать Z до тех пор, пока выражение под знаком логарифма больше 0. Определить k - количество вычисленных Z. Вывести на экран x, Z, k. |
21. |
Дано: x =0; dx=0.5. Z вычислять по формуле:. Считать Z до тех пор, пока подкоренное выражение больше 0.1. Определить k - количество вычисленных Z. Вывести на экран x, Z, k. |
Продолжение Таблицы 21 |
|
22. |
Дано: а=1; dа=0.4. Z вычислять по формуле:, где x=(a2 +2a+3)-1. Считать Z до тех пор, пока x > 0.02. Определить k - кол-во вычисленных Z. Вывести на экран a, x, Z, k. |
23. |
Дано: x =6; dx=-0.5. Z вычислять по формуле: Z = cos(x)ln(x2-0.5x). Считать Z до тех пор, пока выражение под знаком логарифма больше 0. Определить k - количество вычисленных Z. Вывести на экран x, Z, k. |
24. |
Дано: x=5;.dx=-0.4. Z вычислять по формуле:. Считать Z до тех пор, пока выражение под знаком корня больше 0.02. Определить k - количество вычисленных Z. Вывести на экран x,Z,k. |
25. |
Дано: b=1; db=0.2. Z вычислять по формуле: , где . Считать Z до тех пор, пока x > 0.1. Определить k - количество вычисленных Z. Вывести на экран b, x, Z, k. |
26. |
Дано: x=1; dx=0.2. Z вычислять по формуле:Z = x2ln(1+ex). Считать Z до тех пор, пока выражение под знаком логарифма меньше 2.5. Определить k - количество вычисленных Z. Вывести на экран x, Z, k. |
27. |
Дано: а=4; dа=-0.5. Z вычислять по формуле: Считать Z до тех пор, пока подкоренное выражение больше 0. Определить k - количество вычисленных Z. Вывести на экран a, Z, k. |
28. |
Дано: x=5; dx=1. Z вычислять по формуле:, где y =e0.2x. Считать Z до тех пор, пока y < 25. Определить k - количество вычисленных Z. Вывести на экран x, y, Z, k. |
29. |
Дано: x=6; dx=-0.4. Z вычислять по формуле:. Считать Z до тех пор, пока выражение под знаком логарифма больше 0. Определить k - количество вычисленных Z. Вывести на экран x, Z, k. |
30. |
Дано: x=1; dx=0.5. Z вычислять по формуле: . Считать Z до тех пор, пока подкоренное выражение больше 0.02. Определить k - количество вычисленных Z. Вывести на экран x, Z, k. |
Таблица 22
Даны числовой ряд и некоторое число ε. Найти сумму тех членов ряда, модуль которых больше или равен ε. Общий член ряда имеет вид: |
|||
1. |
an = (-1)n-1 / nn |
7. |
an=n!/nn |
2. |
an=1/2n+1/3n |
8. |
an=2nn!/nn |
3. |
an=(2n-1)/2n |
9. |
an=3nn!/(2n)! |
4. |
an=1/((3n-2)(3n+1)) |
10. |
an=n!/3nn |
5. |
an=10n/n! |
11. |
an=n!/(2n)! |
6. |
an=n!/(2n)! |
12. |
an=2n/(n-1) |
Найти наименьший номер члена последовательности, для которого выполняется условие │an-an-1 │<ε. Вывести на экран этот номер и все элементы ai ,где i=1,2,…,n;
|
|||
13. |
an=arctg an-1+1, a1=0 |
18. |
an=(2+an-1²)/2an-1, a1=1, a2=2; |
14. |
an=2+1/an-1, a1=2 |
19. |
an=nln n/(ln n)n; |
15. |
an=1/2 tgan-1, a1=0,5 |
20. |
an=e-a -1, a1=0: |
16. |
an=1/(2n)n |
21. |
an=x/(2an-12, a1=x; |
17. |
an=1/2 cosan-1, a1=0,5 |
22. |
an=(2+an-1²)/2an-1, a1=1, a2=2; |
Найти наименьший номер элемента последовательности, для которого выполняется условие M. Вывести на экран этот номер и все элементы ai , где i=1,2,…,n. |
|||
23. |
an=1/2 (an-1+2/an-1), a1=1, M:│an²-2 │<ε |
||
24. |
an=(-1)nn/2n, M:│an│<ε |
||
25. |
an=((-1)n2n)/n!, M:│an│<ε |
||
26. |
an=1/(n+1)², M: an<ε |
||
27. |
Составить программу вычисления суммы ряда
при с точностью |
||
28. |
Составить программу вычисления суммы ряда
при с точностью |
||
29. |
Определить число слагаемых бесконечного расходящегося ряда
|
||
30. |
Составить программу вычисления суммы ряда
при с точностью |
Таблица 23
№ |
Формулы |
Параметры |
|||
a |
b |
|
|
||
1 |
|
2,8 |
-3,5 |
0,3 |
(0,3;2,9) |
2 |
|
-1,3
|
0,6 |
0,1 |
(0,3;1,5) |
3 |
|
3,4 |
-3,3 |
0,4 |
(0,1;1,8) |
4 |
|
-1,7 |
3,2 |
0,4 |
(0,4;3,2) |
5 |
|
0,7 |
-1,5 |
0,9 |
(3,5;9,8) |
6 |
|
-3,4 |
-1,2 |
0,4 |
(0,3;10)
|
7 |
|
0,5 |
-1,7 |
1,1 |
(3,1;8,8) |
8 |
|
2,4
|
-0,9 |
0,5 |
(0,2;1,7)
|
9 |
|
3,8 |
7,9 |
2,1 |
(1,4;4,1) |
10 |
|
3,8 |
-2,5 |
0,3 |
(1,5;5,7) |
Продолжение Таблицы 23 |
|||||
11 |
|
1,8 |
-3,3 |
0,2 |
(0,2;1,4) |
12 |
|
1,8 |
2,5 |
1,1 |
(3,1;8,6) |
13 |
|
-0,3 |
-4,3 |
0,1 |
(0,5;0,9) |
14 |
|
1,8 |
1,3 |
0,1 |
(1,1,;1,6) |
15 |
|
0,4 |
2,5 |
0,1 |
(0,1;0,8) |
16 |
|
7,1 |
1,8 |
0,7 |
(1,4;4,1) |
17 |
|
1,4 |
3,8 |
0,2 |
(0,5;1,7) |
18 |
|
0,4 |
0,2 |
0,2 |
(0,2;1) |
19 |
|
0,8 |
2,4 |
0,2 |
(0,1;1,1) |
20 |
|
2,4 |
8,2 |
0,9 |
(3,5;9,8) |
21 |
|
0,8 |
1,4 |
0,5 |
(0,3;2,3) |
Продолжение Таблицы 23 |
|||||
22 |
|
1,7 |
-3,1 |
0,5 |
(1,4;1,8) |
23 |
|
1,7 |
-4,1 |
0,3 |
(2,5;7,5) |
24 |
|
0,5 |
-1,3 |
0,1 |
(0,4;1,4)
|
25 |
|
-4,7 |
0,5 |
0,4 |
(0,5;8,5) |
26 |
|
7,7 |
-4,4
|
0,3 |
(0,3;6,4) |
27 |
|
1,1 |
0,7 |
0,2 |
(0,5;2,4) |
28 |
|
-1,9
|
0,7 |
0,3 |
(0,3;2,5) |
29 |
|
2,8 |
-3,6 |
0,2 |
(0,7;1,9) |
30 |
|
2,4 |
-0,9 |
0,5 |
(0,2;1,7) |
Методические указания к выполнению лабораторной работы № 7.
Перед выполнением работы прочитайте тему «Циклы» конспекта. На практических занятиях выполните тренировочные примеры под руководством преподавателя.
Приводимые ниже примеры программ помогут в выполнении работы.
Пример выполнения задания из Таблицы 18.
Составить программу для вычисления значений функции F(x) на отрезке [a,b] с шагом h. Результат представить в виде таблицы, первый столбец которой-значения аргумента, второй- соответствующие значения функции.
Функция F(x) |
Параметры |
m |
|
x/cosx |
π/2 |
π |
10 |
Программа на С/С++
#include<conio.h>
Диаграмма Насси
pi=3.1415 |
|
a=pi*0.5 |
|
b=pi |
|
m=10 |
|
h=abs(b-a)/m |
|
i=1 ; x=a |
|
Вывод h |
|
пока i £ m |
|
|
fx=x/cos(x) |
|
Вывод x , fx |
|
х = х + h |
|
i= i+ 1 |
конец |
#include<math.h>
#include<stdio.h>
void main()
{ clrscr();
float fx,x,h,pi=3.1415;
float a=pi*0.5,b=pi;
float m=10;int i;
h=abs(b-a)/m;x=a;
printf("h=%.2f\n",h);
printf(" F(x)=x/cosx\n");
printf("--------------------\n");
printf(" x | F(x)\n");
printf("--------------------\n");
for (i=1;i<=m;i++)
{fx=x/cos(x);
printf("%6.2f | %6.2f\n",x,fx);
x+=h; }
printf("--------------------\n");
getch();
}
Блок-схема
Результаты работы программы:
h=0.10
F(x)=x/cos(x)
--------------------
x | F(x)
--------------------
1.57 | 33904.47
1.67 | -16.74
1.77 | -8.92
1.87 | -6.33
1.97 | -5.06
2.07 | -4.32
2.17 | -3.84
2.27 | -3.53
2.37 | -3.30
2.47 | -3.15
--------------------
Пример вычисления функции по схеме Горнера.
Вычислить значение У : У=6.25x5 +1.85x4+2.74x3-10.5x2-10x+3;
используя схему Горнера
Y=(((6.25x+1.85)x +2.74)x -10.5)x +3;
# include<iostream.h>
# include<conio.h>
void main()
{
clrscr();
const float a[6]={6.25,1.83,2.74,-10.5,-10,3}; //koefitsienti
int i=0 ; //indeks koefits
float x,p=1.0; // p-dlia proizvedenie
cout<<"vvedi x";
cin >>x;
while(i<6)
{
p=p*x+a[i]; i++; //telo сikla
} cout<< "\n mnogochlen pri x= "<<x<<" raven="<<p<<endl;
cout<<"enter ";
getch();
}
Пример выполнения задания из Таблицы 20.
Дано: x=1; dx=0.5. Z вычислять по формуле: .
Считать Z до тех пор, пока подкоренное выражение больше 0.02. Определить k - количество вычисленных Z. Вывести на экран x, Z, k.
Программа
#include<iostream.h>
x =1 |
|
dx=0.5 |
|
R =1 |
|
k =0 |
|
пока R>0.02 |
|
|
|
|
|
|
Вывод Z |
|
k = k+ 1
|
|
х = х+dx |
Вывод k |
|
конец |
#include<conio.h>
#include <math.h>
void main ()
{float x =1, dx=0.5 ,R =1, Z ; //R=1 для начала цикла
int k =0;
while (R>0.02)
{ R=x/(pow(x,3)+1);
Z= log(x)* sqrt(R); //
cout<<“Z=“ <<Z<<endl;
k++;
x+=dx;
} cout<<” Col-vo_Z=”<<k<<endl;
getch();
}
Цикл, который нужно организовать для многократного вычисления Z по заданной формуле, должен быть итерационным, т.к. количество повторений цикла неизвестно. Используем цикл с предусловием (while).
Пример выполнения задания из Таблицы 19.
На заданном интервале значений х вычислить 10 соответствующих значений У и S ,причем , для вычисления S подготовить два варианта: а)вычислять с заданным количеством слагаемых в)с заданной точностью Е.
#include<iostream.h>
#include<conio.h>
#include <math.h>
float zy(float );// прототипы
float zs(float ,int );// 3-х
float zc(float ,float );// функций
void main()
{
clrscr(); float x=0.1,e=0.00001;
float y,s1,s2;
while(x<=1.1 )
{
y=zy(x); // Обращение к функции zy ,вычисляющей У
s1=zs(x,20); // Обращение к функции вычисляющей S (n-задано)
s2=zc(x,e); // Обращение к функции вычисляющей S (E- задано)
cout<<"x="<<x<<" fun= "<<y;
cout<<" sum="<<s1<<" sum2="<<s2<<"\t"<<endl;
x+=0.1;}
getch();}
float zy(float t) //функция zy ,вычисляет У
{float y; //cout<< exp(t); cout<< "e--"<< exp(-t)<<endl;
y=(exp(t)-exp(-t))/2; return y;}
float zs(float t,int m) // функция zs ,вычисляет S при задан. n
{ int n; float s=t;float a=t;
for(n=1;n<=m;n++)
{a=a*t*t/(2*n*(2*n+1)); s+=a;} return s; }
float zc(float t,float m) // функцие zc,вычисляющая S при
//заданной точности m.
{ int n=0; float s=t;float a=t;
while(a>m)
{ n++;
a=a*t*t/(2*n*(2*n+1)); s+=a;}
cout<<" "<<n<<endl; return s; }
Пример выполнения задания из Таблицы 18.
При выполнении задания из таб.18 надо использовать все три оператора цикла, причем, в группах В – это могут быть три отдельные программы, в группах А-это обязательно отдельные функции. Основная программа (main()) должна содержать меню для выбора соответствующей функции программы.
Вычисление каждого из двух арифметических выражений варианта в обоих группах А и В должно быть оформлено в виде функций с именами F1() и F2(). Ниже приводится программа к задаче аналогичной задачам из таблицы .
Программа будет выводить на экран: номер формулы, значения Х и У.
Ниже приводятся блок-схема и программа к данной задаче.
#include<iostream.h>
#include<stdio.h>
#include<conio.h>
#include<math.h>
float f1(float z)
{ float a=3.246;
cout<<" formula 1 ";
return z*z-а;
}
float f2(float z)
{ float b= 6.46;
cout<<" formula 2 ";
return z*z*z-b;
}
float ffor(float xn,float xk,float h)
{ float x,y;
for(x=xn;x<=xk;x+=h)
{ if (x<3.0) y=f1(x);else y=f2(x);
cout<< x<<” “<< y<<"\n" ; }
return 0;
}
void fwhile(float xn,float xk,float h)
{ float x,y;
x=xn;
while(x<=xk)
{ if (x<3.0) y=f1(x);else y=f2(x);
cout<<x<<” “<< y<<"\n" ;
x+=h;}
}
void fdo(float xn,float xk,float h)
{ float x,y;
x=xn;
do
{
if (x<3.0) y=f1(x);else y=f2(x);
cout<< x<<” “<< y<<"\n" ;
x+=h;
}
while(x<=xk);
}
void main()
{float xn,xk,h,y;
int n;
xn=1.7; xk=5.3; h=0.4;
clrscr(); puts("vvedi--1,esli for");
puts("vvedi--2,esli while");
puts("vvedi--3,esli do");
cin>>n;cout<<"\n";
if (n== 1) ffor(xn,xk,h); //сikl s parametrom
if (n== 2) fwhile(xn,xk,h); //сikl s predusloviem
if (n== 3) fdo(xn,xk,h); //сikl s postusloviem
getch();
}
Контрольные вопросы
1. Как записывается и в каком случае используется а) оператор цикла с параметром; б) оператор цикла с предусловием; в) оператор цикла с постусловием ?
2. Как в алгоритмах представляются циклы? Приведите примеры.
3. Что такое цикл в программировании?
4. Могут ли быть циклы вложенными?
5. Какова структура функций в С++?
6. Каково назначение оператора return, как определяется тип возвращаемого значения?
7. Как сформировать последовательность натуральных чисел случайным образом?
Лабораторная работа № 8
ОДНОМЕРНЫЕ МАССИВЫ. Организация новых массивов из существующих.
Ввод и удаление элементов в одномерном массиве.
Цель работы
1. Закрепить теоретический материал и получить навыки работы с массивами.
2. Научиться составлять программы к следующим задачам (задаётся преподавателем): Одномерный массив
а) табл.24 б) табл.25 в) табл.26.
* Все результаты выполнения пунктов заданий обязательно должны быть подписаны преподавателем
Задание
1. Разработать алгоритмы для заданий своего варианта из заданных таблиц . Написать программы к заданиям своего варианта из таблиц 24-26 (№ по заданию преподавателя).Отладить программы, получить решение и подпись преподавателя.
2. После выполнения всех пунктов задания и подготовки отчета защитить работу, получить балл.
Содержание отчёта
Отчёт должен содержать:
1. Название лабораторной работы.
2. Задание к лабораторной работе.
3. Алгоритмы и программы ко всем пунктам задания с ответами и подписью преподавателя о выполнении.
4.Дату и оценку после защиты с подписью преподавателя.
Таблица 24
Вариант |
Задание |
1. |
Задан массив Сформировать массив , каждый элемент которого вычисляется по формуле: Вывести на печать массив . |
2. |
В массиве есть хотя бы один отрицательный элемент. Вычислить произведение элементов массива до первого отрицательного. Исходные данные: 3,8,17,-10,-16,-1,5,8,9,10. |
3. |
Задан массив Вычислить массив , каждый элемент которого определяется по формуле
Вывести на печать таблицу значений массивов.
|
4. |
Даны два массива чисел . Найти сумму квадратов элементов нового массива с, образованного по правилу: Элементы нового массива и сумму вывести на печать.
|
5. |
Задан массив Вычислить массив, каждый элемент которого вычисляется по формуле . Вывести на печать массив в столбец |
6. |
В массиве следует определить минимальный элемент. Исходные данные: 3,-7,8,10,-75,128,7,10.
|
7. |
Задан массив . Вычислить массив , каждый элемент которого определяется по формуле . Вывести на печать массив в строку.
|
Продолжение Таблицы 24 |
|
8. |
В массиве есть хотя бы один отрицательный элемент. Вычислить суммы элементов массива до первого отрицательного. Исходные данные: 3,10,-8,7,-6,16,13,20. |
9. |
Задан в радианах массив Сформировать массив , каждый элемент которого определяется по формуле , (=1,2,…,6). Вывести на печать массив . |
10. |
В массиве,=1,…,8 есть хотя бы один нуль. Вычислить суммы элементов массива до первого нуля. Исходные данные: 1,17,2,4,-5,0,7,8. |
11. |
Задан в радианах массив Сформировать массив , каждый элемент которого определяется по формуле , (=1,2,…,6). Вывести на печать таблицу значений массивов и . |
12. |
Массив aсодержит 10 целых чисел: 1,2,3,4,5,4,9,12,8,13,17. Образовать новый массив каждый элемент которого равен произведению соответствующего элемента массиваa на номер этого элемента в массиве: , (i=1,…,10). |
13. |
Задан массив 0,5; 1,45; 7;1; -2; -3; 4,5; -0,7. Вычислить массив , каждый элемент которого определяется по формуле . Вывести на печать массив в один столбец. |
14. |
Даны два массива чиселa{5;9;-1;-8;3;-6},b{-3,4;5;7;6,8;9,3;1,2} Найти наибольший элемент в массиве c, образованного по правилу:. Массив С напечатать. |
15. |
Задан в радианах массив :2; -0,4; 3,14; -1,57; 11; 7,34; -2,6;0; -1; 2. Сформировать массив , каждый элемент которого определяется по формуле *, (i = 1,2,...,10). Вывести на печать массив . |
Продолжение Таблицы 24 |
|
16. |
В массиве = 10; -5; -8; -6; 17; 25; 31; 10; 12; 38, (j = 1,..., 10) есть отрицательные и положительные элементы. На печать вывести положительные элементы, их порядковые номера и вычислить и распечатать N(количество положительных элементов массива). |
17. |
Для заданного массива чисел (1,5; -0,8; -3,1; 10; 7,34; 0,135; 12,8),найтисреднее арифметическое значение х по формуле: (i = |
18. |
Даны два массива чисел a{-5,25,17,18, 28},b{-17, -8,10,12, 23}. Найти наименьшее число в новом массиве с, образованного по правилу: i = 1,2,...,5. Вывести на печать массив |
19. |
Даны два массива чисел a{1,2; 1,7; 3,5; 1,6; 4,9; 2,1},b{9,2; 7,8; 8,3; 3,5; 5,7; 7,3}. Организовать массив Х по формуле : где (i=1,…,6). |
20. |
Дан вектор х = {1; 0; 1,4; 2; 6; 8,4; 16,2; 9,1; -3,6; -2,8; -1,0; 0,6; -1,2}. Найти сумму компонентов вектора удовлетворяющих условию 1,5 < Хi < 3,9. |
21. |
Задан массив { Zi } :( - 0,75; 3,2; 45,8; - 28; 4,7; 28,7; - 0,5; 37 ). Вычислить массив {ai }, каждый элемент которого определяется по формуле aj = sin2 (Zi) +1(j= 1,2,..., 8). Вывести на печать массив aj в строку. |
22. |
В массиве Yj = -5,1; 18; 75; 0,1; -17; 2,5; 6,35; 17,8 есть отрицательные и положительные элементы. Вычислить произведение отрицательных элементов массива. |
23. |
Задан в радианах массив dk: (13,8;-2,3;45,17;-3,8;12;0,08;-8,3). Сформировать массив h k, каждый элемент которого определяется по формуле h k = 1 + cos dk, (i = 1,2,..., 10). Вывести на печать массив в один столбец. dk
|
24 |
В массиве Yj = -5,1; 18; 75; 0,1; -17; 2,5; 6,35; 17,8 есть отрицательные и положительные элементы. Вычислить сумму отрицательных элементов массива. |
Продолжение Таблицы 24 |
|
25. |
Вычислить и вывести на печать положительные значения функции у = sin(пх) – cos(пх) ,при п=1,...,50; х = 0,3. |
26. |
Вычислить значения функции
Если ai, элементы массива A= (-3,5; 4,25; 3,1; - 7,5; 8,3; -11,4; -13,5; 9,6). |
27. |
Вывести на печать номера элементов массива (-0,5; 3,4; 1,4; 0,35; - 7,5; 1,2; 0,25) удовлетворяющих условию 0 << 1. |
28. |
Переписать в массив Y элементы массива X (5,4; 2,3; -4,6; 7,8; -3,4; 25,6), в обратном порядке. |
29. |
Записать в массив N подряд номера положительных элементов массива (4,5;-3,1; 7,8;-5,6;-2,3; 6,8). |
30. |
Записать подряд в массив В элементы массива X (-14,5; 3,2; 6,8; - 4,3; 11,2; 5,6; - 7,8), стоящие на чётных местах, а элементы массива X стоящие на нечётных местах - в массив С.
|
Таблица 25
Вариант |
Одномерные массивы |
1 |
Задан массив U(K). Вычислить количество элементов, принадлежащих интервалу [a,b], и определить, сколько в нем пар одинаковых соседних элементов. |
2 |
Задан массив Р(N). Переписать все его элементы, за исключением максимального и минимального в массив D. |
3 |
Найти количество элементов массива X(N), больших среднего арифметического, и количество элементов массива X, меньших среднего геометрического. |
4 |
Найти сумму положительных элементов массива У(K) с нечетными индексами. |
5 |
Найти произведение отрицательных элементов массива Z(K) с четными индексами. |
6 |
Найти произведение элементов массива H(N), меньших среднего арифметического. |
7 |
Определить, какой элемент в массиве H(N) расположен раньше: наибольший или наименьший? |
8 |
Заданы два вектора X=(X1,X2,...,Xn) и Y=(Y1,Y2,...,Yn). Найти скалярное произведение векторов X и Y. |
9 |
Задан массив X(N). Упорядочить массив X по убыванию. |
10 |
Переписать положительные элементы массива X(N) в массив Y. Упорядочить массив Y по возрастанию. |
11 |
Вычислить сумму элементов массива Х(N), удовлетворяющих условию Xi>M, где М=махX - minX. |
12 |
Переписать отрицательные элементы массива Y(K) в массив X. В массиве X поменять местами минимальный и первый элемент. |
13 |
Заданы два массива X(N) и Y(K). Сформировать массив Z, куда записать положительные элементы массивов X и Y. Найти максимальный элемент массива Z и его номер. |
Продолжение Таблицы 25 |
|
14 |
Задан массив X(N).Расположить элементы в нем в обратном порядке. Найти сумму элементов с нечетными индексами. |
15 |
Задан массив X(N). Элементы с четными индексами переписать в массив Z. В массиве Z поменять местами максимальный и минимальный элементы. |
16 |
Задан массив Х(К).Переписать отрицательные элементы массива Х в массив Z. Упорядочить массив Z по убыванию. |
17 |
Задан массив Z (N). Переписать его в массив Y, таким образом, чтобы в массиве Y были расположены сначала положительные, затем отрицательные, затем нулевые элементы. |
18 |
Найти сумму и произведение отрицательных элементов массива Z. |
19 |
Все элементы массива Z(K) переписать в массив X, за исключением максимального и минимального. Найти количество элементов массива X, меньших среднего геометрического. |
20 |
Из массива X(N) все положительные элементы переписать в массив Z. Упорядочить массив Z по убыванию. |
21 |
Задан массив X(K). Сформировать массив L — номеров положительных элементов массива X. |
22 |
Переписать отрицательные элементы массивов X(N) и Y(N) в массив D. Массив D упорядочить по возрастанию. Найти сумму трех минимальных элементов. |
23 |
Заданы массивы X(N) и Y(K).Сформировать массив D, куда записать 3 наибольших элемента массива X и 4 наибольших элемента массива Y. Найти сумму и произведение элементов массива D. |
24 |
Найти максимальный по модулю элемент массива X(N) и поставить его первым. |
25 |
Найти сумму положительных и произведение отрицательных элементов массивов Х(N) и Y(N). |
Продолжение Таблицы 25 |
|
26 |
Заданы массивы Х(N) и Y(N). Сформировать массив А(N), элементы которого рассчитываются по формуле: Аi=Xi+ Yi. Определить количество элементов массива А, меньших среднего арифметического, и разность между максимальным и минимальным элементом массива А. |
27 |
Пусть массив X(N) - координаты точек на прямой. Определить, между какими двумя точками расстояние наибольшее. |
28 |
Задан массив X(N).Поменять местами элемент, наиболее отличающийся от среднего арифметического, и первый элемент массива. |
29 |
Задан массив X(N).Упорядочить его по убыванию и определить номер максимального по модулю элемента до и после упорядочивания. |
30 |
Задан массив Z(N).Упорядочить его в порядке возрастания модулей значение элементов массива.
|
Таблица 26
Вариант |
Работа с одномерными массивами (группа А) |
1. |
Записать положительные элементы массива x=(x1, x2, …, xn) подряд в массив y=(y1, y2,…,yk). Определить k - количество положительных элементов. Вычислить .
|
2. |
Записать элементы массива А = (a1, a2, …, an) с четными индексами подряд в массив В = (b1, b2,…, bk). Определить k – количество четных элементов. Вычислить . |
3. |
Записать пять первых положительных элементов массива х=(х1,…,хn) подряд в массив Y=(y1, y2, …, y5). Вычислить.
|
Продолжение Таблицы 26 |
|
4. |
Записать элементы массива х=(х1, х2,…, хn), удовлетворяющие условию xiє[1, 2], подряд в массив y =(y1, y2,…, yk). Определить k – количество таких элементов. Вычислить .
|
5. |
Записать элементы массива x =(x1, x2,…, xn) в обратном порядке в массив Y =(y1, y2,…, yn). Вычислить произведение элементов массива Y с четными индексами. |
6. |
Записать элементы массива X =(x1, x2,…, x25) с индексами 1, 4, 9, 16, 25 подряд в массив Y=(y1, y2,…, y5). Вычислить . |
7. |
Записать положительные элементы массива X=(x1,x2,…, xn) подряд в массив Y=(y1,y2,…, yk). Определить k – количество положительных элементов. Вычислить произведение элементов массива Y с четными индексами. |
8. |
Записать элементы массива X=(x1,x2,…, x16) в обратном порядке в массив Y=(y1,y2,…, y16). Вычислить S=y1+y4+y9+y16.
|
9. |
Записать элементы массива X=(x1,x2,…,x12 ) в массив Y=(y1,y2,…, y12), сдвинув элементы массива X вправо на три позиции. При этом 3 элемента из конца массива X перемещаются в начало, т.е. (y1,y2,…, y12)=(x10,x11,x12,x1,x2,…x9). Вычислить произведение элементов массива Y с четными индексами.
|
Продолжение Таблицы 26 |
|
10. |
Записать отрицательные элементы массива X=(x1,x2,…,xn) подряд в массив Y=(y1,y2,…,yk).Определить k – количество отрицательных элементов. Вычислить |
11. |
Записать элементы массива X=(x1,x2,…, xn) с нечетными индексами подряд в массив Y=(y1,y2,…, yk). Здесь k – количество нечетных элементов. Вычислить . |
12. |
Записать восемь первых отрицательных элементов массива X=(x1,x2,…,xn) подряд в массив Y=(y1,y2,…, y8). Вычислить .
|
13. |
Записать элементы массива X=(x1,x2,…, xn), удовлетворяющие условию xi є [2,3], подряд в массив Y=(y1,y2,…, yk). Определить k – количество таких элементов. Вычислить .
|
14. |
Записать элементы массива X=(x1,x2,…, xn) в обратном порядке в массив Y=(y1,y2,…, yn). Вычислить сумму элементов массива Y с нечетными индексами.
|
15. |
Записать элементы массива X=(x1,x2,…, x36) с индексами 1, 4, 9,16,25, 36 подряд в массив Y=(y1,y2,…, y6). Вычислить . |
16. |
Записать положительные элементы массива X=(x1,x2,…, xn) подряд в массив Y=(y1,y2,…, yk). Определить k – количество положительных элементов. Вычислить сумму элементов массива Y с нечетными индексами.
|
Продолжение Таблицы 26 |
|
17. |
Записать элементы массива X=(x1,x2,…, x25) в обратном порядке в массив Y=(y1,y2,…, y25). Вычислить P=y1·y4·y9 ·y16 ·y25. |
18. |
Записать элементы массива X=(x1,x2,…,x15) в массив Y=(y1,y2,…, y15), сдвинув элементы массива X влево на 4 позиции. При этом 4 элемента из начала массива X перемещаются в конец, т.е. (y1,y2,…, y15)=(x5,x6,…,x15,x1,x2,x3,x4). Вычислить сумму элементов массива Y с нечетными индексами. |
19. |
Записать положительные элементы массива X=(x1,x2,…, xn) подряд в массив Y=(y1,y2,…, yk). Определить k – количество положительных элементов, найти максимальный элемент массива Y и его номер. |
20. |
Записать элементы массива X=(x1,x2,…, xn) с четными индексами подряд в массив Y=(y1,y2,…, yk). Здесь k – количество четных элементов. Найти минимальный по модулю элемент массива Y и его номер. |
21. |
Записать семь первых положительных элементов массива X=(x1,x2,…, xn) подряд в массив Y=(y1,y2,…, y7). Найти максимальный элемент массива Y и его номер. |
22. |
Записать элементы массива X=(x1,x2,…, xn), удовлетворяющие условию xiє [1.5, 2.5], подряд в массив Y=(y1,y2,…, yk). Определить k – количество таких элементов. Найти минимальный элемент массива Y и его номер. |
23. |
Записать элементы массива X=(x1,x2,…, xn) в обратном порядке в массив Y=(y1,y2,…, yn). Найти максимальный элемент массива Y и его номер. |
24. |
Записать элементы массива X=(x1,x2,…, x16) с индексами 1, 4, 9, 16 подряд в массив Y=(y1,y2,y3,y4). Найти минимальный по модулю элемент массива Y и его номер. |
Продолжение Таблицы 26 |
|
25. |
Записать элементы массива X=(x1,x2,…, x10) в массив Y=(y1,y2,…,y10), сдвинув элементы массива X вправо на 2 позиции. При этом 2 элемента из массива X перемещаются в начало, т.е. (y1,y2,…, y10)=(x9,x10,x1,x2,…, x8). Найти максимальный по модулю элемент массива Y и его номер. |
26. |
Найти минимальный элемент массива X=(x1,x2,…,xn) и его номер. Записать элементы массива X подряд в массив Y=(y1,y2,…,yn), заменив минимальный элемент значением (-1).
|
27. |
Найти максимальный элемент массива X=(x1,x2,…, xn) и его номер. Записать элементы массива X подряд в массив Y=(y1,y2,…,yn), поменяв местами максимальный элемент и x1.
|
28. |
Найти минимальный элемент массива X=(x1,x2,…, xn) и его номер. Записать элементы массива X подряд в массив Y=(y1,y2, … yn)., поменяв местами минимальный элемент и x1. |
29. |
Записать каждый третий элемент массива X=(x1,x2,…, xn) в массив Y=(y1,y2,…yk). Вычислить . |
30. |
Записать элементы массива X=(x1,x2,…, xn), удовлетворяющие условию xi 3, в массив Y=(y1,y2,…,yk). Определить количество таких элементов. Вычислить
|
Методические указания к выполнению лабораторной работы №8.
Прочитайте тему «Массивы» в конспекте лекций и вспомните как описываются и инициализируются массивы. Например,
int a[100];
char b[40];
Индексация массива начинается с нуля т.е. в массиве a первый элемент будет a[0], а последний a[99].Бывают многомерные массивы. Например двумерный массив int v[3][7] можно представить как три массива типа int по 7 элементов в каждом. Представим это графически:
v[0] |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
v[1] |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
v[2] |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
Пример к пункту 24 задания
Записать подряд в массив В элементы массива X=(14,5; 3.2; 6.8; -4.3; 11; 2; 5.6; -7.8), стоящие на чётных местах, а элементы массива, стоящие на нечётных местах – в массив С.
#include <stdio.h>
#include <conio.h>
#define SIZE 7 // размер массива X
void main()
{ clrscr(); // очистка экрана
int X[SIZE]={_14.5, 3.2,6.8,-4.3,11.2,5.6,-7,8}; //заданный массив
int С [SIZE], В[SIZE] ;_
int m = 0, k=0; // кол-во эл-тов новых массивов
int i; // индекс
printf(“ B C ”) //заголовок
//Определение чётности индексов элементов и вывод массивов
for (i = 0; i < SIZE; i++)
if (i % 2} {C[m]=X[i] ; printf(“ %.2f \n “,C[m]); m++;
}
else
{B[k] =X[i] ;k++; printf(“ %.2f “,B[k]); }
printf("\nДля завершения нажмите <Enter>");
getch();
}
Пример к заданиям Таблицы 25
Написать программу, которая вводит с клавиатуры одномерный массив из 5 целых чисел, после чего выводит количество ненулевых элементов. Перед вводом каждого элемента должна выводиться подсказка с номером элемента.
//программа:
// Подсчет ненулевых элементов массива // (доступ к элементам по номеру)
#include <stdio.h>
#include <conio.h>
#define SIZE 5 // размер массива
void main()
{
int a[SIZE]; //массив
int n = 0; // кол-во ненулевых эл-тов
int i; // индекс
printf("\nВведите массив целых чисел.\n");
printf("После ввода каждого числа ");
printf("нажимайте <Enter>\n");
for (i = 0; i < SIZE; i++) {
printf("a[%i] ->",i+l) ;
scanf("% i", &a[i]);
if (a[i] != 0) n++; }
printf("В массиве %i ненулевых элемента.\n", n);
printf("\пДля завершения нажмите <Enter>");
getch();
}
Контрольные вопросы
1. Что общего имеют элементы массива?
2. Как называется число, используемое для обращения к отдельному элементу массива
3. Для объявления размера массива удобнее использовать ______________?
4. Найдите и исправьте ошибку в каждом из следующих фрагментов программ
а) #include <iostream.h> ;
б) arraySize = 10;// переменная arraySize была объявлена как const
в) Допустим, что int b [ 10] = { 0 };
for (int i =0; i<=10; i++) b[ I ] = 1;
г) Допустим, что a[2] [2] = { {1,2},{3 ,4 } }; a[1,1] = 5;
5. Массивы, как объявить, определить, сформировать случайным образом?
6. Индексная переменная, в каком случае используется?
Литература
1. Сборник заданий для лабораторных и арифметических работ по курсу «Информатика» 1 часть. Методическая разработка – Т.: ТЭИС, 2000.
2. Практикум работы на бейсик ДВК2-2М. методическая разработка – Т.: ТЭИС, 1989.
3. Т.А.Павловская С/С++. Программирование на языке высокого уровня.
4. Информатика. Фани бўйича лаборатория ишларини бажариш учун ўқув-услубий қўлланма 1-қисм – Т.: ТАТУ, 2009.
5. Алексеев Е. Р., Кузык И. Н., Павлыш В. Н., Чеснокова О.В., Славинская Л. В. Программирование на языке турбо паскаль сэлементами численных методов . Донецк, ДонГТУ, 2000
6. Конспект лекций по информатике. Электронная библиотека
ТАТУ.
7.Динман М.И. С++ Освой на
примерах- СПб.:БХВ, - Петербург,
2006
ОГЛАВЛЕНИЕ
Введение.............................................................................................................3
ЛАБОРАТОРНАЯ РАБОТА № 1.
Архитектура , программное обеспечение персонального компьютера...4 1.1. Задание…………..………………………………………………………….4
1.2. Методические указания к выполнению лабораторной
работы №1......…………………………… …………………………………….4
1.3. Контрольные вопросы.................................................. ……………5
2 ЛАБОРАТОРНАЯ РАБОТА № 2.
Методы хранения информации. Единицы измерения информации.
Представление данных на ПК. Кодирование и шифрование, защита, основные понятия антивирусной защиты.
2.1. Задание…………..……………………………………………………….6
Таблица 1а ………………………………………………………….6
Таблица 1б ………………………………………………………….11
2.2. Методические указания к выполнению лабораторной
работы №2......…………………………… …………………………………..13
2.3. Контрольные вопросы.................................................. …………….... 13
3 ЛАБОРАТОРНАЯ РАБОТА № 3.
Арифметические основы ЭВМ. Системы счисления (2,8,16), действия в них. Выполнение заданий лабораторной работы. Перевод чисел из одной системы в другую.
Задание…………………………………...........................................................13
Таблица 1 ……………………………………………………………15
Таблица 2…………………………………………………………….23
Таблица 3 ……………………………………………………………28
Таблица4...............................................................................................29
Таблица 5…………………………....................................................31
Таблица 6…………………………………………………………….38
3.2. Методические указания к выполнению лабораторной
работы №3…………………………………………..………………. 34
3.3. Контрольные вопросы.......................................................................39
4 ЛАБОРАТОРНАЯ РАБОТА № 4. Алгоритмы различной структуры
4.1. Задание…………………………….……………….... ………………40
4.2. Контрольные вопросы …….………………....................... ………..56
5 ЛАБОРАТОРНАЯ РАБОТА № 5.
C++.Программы линейной структуры.
5.1. Задание …..……………….……………….........................................56
Таблица 7……………………………………………………………57
Таблица 8……………………………………………… …………..62
Таблица 9……………………………………………………………65
Таблица 10………………………………………………………….68
5.2. Методические указания к выполнению лабораторной рабо-
ты № 4,5 ………………………………………………….….………70
5.3. Контрольные вопросы …………………………………………….77
6 ЛАБОРАТОРНАЯ РАБОТА № 6. Программы разветвляющейся структуры. Элементы алгебры логики.
Операторы выбора.
6.1. Задание …..……………….……………….................. ……………..78
Таблица 11………………………………………………………….73
Таблица 12 ………………………………………………………..79
Таблица 13………………………………………………………….82
Таблица 14………………………………………………………….84
Таблица 15………………………………………………………….87
6.2. Методические указания к выполнению лабораторной рабо-
ты №5 ………………………………………………………... ……..96
6.3. Контрольные вопросы …………………………………………..101
7 ЛАБОРАТОРНАЯ РАБОТА № 7.
Алгоритмы и программы циклической структуры
7.1. Задание …..……………….………………................................. ….101
Таблица 18………………………………………………….. …..103
Таблица 18А……………………………………………………..104
Таблица 19…..…..……….………………………………………108
Таблица 20….…….……………………………………….110
Таблица 21.……………………………………………..115
Таблица 22 ……………………………………………119.
Таблица 23 ………………………………………………120..
7.2. Методические указания к выполнению лабораторной рабо-
ты №7 ……………………………………………… …………124
7.3. Контрольные вопросы ……………………………………….134
8 ЛАБОРАТОРНАЯ РАБОТА
ОДНОМЕРНЫЕ МАССИВЫ. Организация новых массивов из существующих.
Ввод и удаление элементов в одномерном массиве
8.1. Задание …..……………….………………................................. 134
Таблица 24………………………………………………….. 135
Таблица 25…..…..……….…………………………………. 139
Таблица 26….…….…………………………………………141
8.2. Методические указания к выполнению лабораторной рабо-
ты №8 ……………………………………………… ………… 146
8.3. Контрольные вопросы ……………………………………….148
ЛИТЕРАТУРА …………………………………………………151
Сборник заданий и методических указаний
к лабораторным работам по курсу «Основы программирования»
Рассмотрено и рекомендовано
к изданию на заседании
научно-методического
Совета ТУИТ
от « ___ » __________2013
Протокол №________________
Составители:Хайдарова М.Ю.,Марышева Л.Т,.Кудратов С.Г,.Ташпулатова Н.Б.,Д.З.Ганиходжаева.
Ответственный редактор:
Проф. Назиров Ш.А.
Корректор: :Жалолова М.Х.
Формат 60х84 1/16
Заказ № ____ Тираж _____
Отпечатано в Издательско полиграфическом
центре «ALOQACHI» при ТУИТ
Ташкент ул. Амир Темура, 108