+ All Categories
Home > Documents > ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web...

ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web...

Date post: 19-Jul-2020
Category:
Upload: others
View: 7 times
Download: 0 times
Share this document with a friend
141
Тольяттинский государственный университет Автомеханический институт Кафедра «Компьютерные технологии и обработка материалов давлением» Ахмедханлы Д.М., Панюкова Е.В. УЧЕБНО-МЕТОДИЧЕСКОЕ ПОСОБИЕ по курсу «Информатика 1» для студентов инженерных специальностей очной формы обучения
Transcript
Page 1: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

Тольяттинский государственный университетАвтомеханический институт

Кафедра «Компьютерные технологии и обработка материалов давлением»

Ахмедханлы Д.М., Панюкова Е.В.

УЧЕБНО-МЕТОДИЧЕСКОЕ ПОСОБИЕ

по курсу «Информатика 1»для студентов инженерных

специальностей очной формы обучения

Page 2: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

Тольятти 2008

2

Page 3: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

УДК 532.5 (533.6)

Содержание ГОС по дисциплине «Информатика» для инженерных специальностей:

№ Разделы ГОС В рамках какого курса изучается Примечание

1

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

«Основы компьютерной грамотности» БФГ

2

общая характеристика процессов сбора, передачи, обработки и накопления информации;

«Информатика 1» Модуль 1

3

алгоритмизация и программирование; языки программирования высокого уровня; программное обеспечение и технологии программирования;

«Информатика 1» Модуль 2

4

модели решения функциональных и вычислительных задач;базы данных;

«Информатика 2» Модуль 3

5 компьютерная графика «Информатика 2» Модуль 4

6

основы защиты информации и сведений, составляющих государственную тайну; методы защиты информации;

«Информатика 2» Модуль 4*

7 локальные и глобальные сети ЭВМ. «Основы работы в Интернет» БФГ

3

Page 4: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

Учебно-методическое пособие содержит два Модуля.В Модуле 1 изложены основы алгебры логики, принципы работы логических и

арифметических устройств ЭВМ, рассмотрены системы счисления и принципы перевода чисел из одной системы счисления в другую.

В Модуле 2 изложены материалы по теме «Алгоритмические языки и программирование», приведены теоретические сведения, примеры программ и варианты индивидуальных заданий.

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

Для самостоятельной проверки знаний необходимо пользоваться интерактивным тренингом.

Электронный адрес сайта кафедры для прохождения тренинга:http://inf.tltsu.ru/res/strogov/

Составители: Ахмедханлы Д.М., Панюкова Е.В.

© Тольяттинский государственный университет, 2008

4

Page 5: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

Содержание

Маршрутная карта изучения дисциплины по Модулю 1...............................................................................................71. Логические и арифметические основы ЭВМ...............................................................................................................8

1.1. Десятичная система счисления............................................................................................................................91.2. Двоичная система счисления..............................................................................................................................101.3. Восьмеричная и шестнадцатеричная системы счисления...............................................................................111.4. Перевод чисел из любой системы счисления в десятичную...........................................................................111.5. Перевод чисел из десятичной системы счисления в любую другую.............................................................12Вопросы для самоконтроля.......................................................................................................................................13Методические указания для выполнения практического задания №1. «Системы счисления»..........................13

Приложение 1. Таблица вариантов заданий..................................................................................................................142. Алгебра логики.............................................................................................................................................................20

2.1. Логические операции..........................................................................................................................................22Инверсия................................................................................................................................................................24Конъюнкция..........................................................................................................................................................24Дизъюнкция...........................................................................................................................................................24Эквиваленция (равнозначность)..........................................................................................................................24Импликация...........................................................................................................................................................24Антиконъюнкция..................................................................................................................................................24Антидизъюнкция...................................................................................................................................................25

2.2. Нормальные формы.............................................................................................................................................26Конъюнктивная нормальная форма....................................................................................................................26Дизъюнктивная нормальная форма.....................................................................................................................26

3. Применение средств алгебры логики для описания функционирования устройств компьютера.......................26Логические схемы.......................................................................................................................................................28Пример решение логических задач средствами алгебры логики...........................................................................29Методические указания для выполнения практического задания №2. «Алгебра логики». Построение таблиц истинности...................................................................................................................................................................29Пример построения логических схем.......................................................................................................................29Методические указания для выполнения практического задания №3. «Алгебра логики». Построение логических схем..........................................................................................................................................................31

Приложение 2. Таблица вариантов заданий..................................................................................................................314. Индивидуальное задание. Модуль 1. «Построение логических схем по заданным булевым выражениям»......33Приложение 3. Таблица вариантов индивидуального задания....................................................................................33Приложение 4. Титульный лист ИДЗ.............................................................................................................................35Маршрутная карта изучения дисциплины по Модулю 2.............................................................................................365. Введение в алгоритмизацию.......................................................................................................................................376. Знакомство со средой Турбо Паскаль........................................................................................................................38

6.1. Общие сведения...................................................................................................................................................386.2. Запуск Турбо-Паскаля на выполнение..............................................................................................................386.3. Назначение функциональных клавиш системы Турбо-Паскаль.....................................................................396.4. Работа с текстовым редактором Турбо-Паскаля..............................................................................................40

Клавиши перемещения курсора...........................................................................................................................40Работа с блоками текста.......................................................................................................................................41

7. Основы алгоритмизации..............................................................................................................................................427.1. Алгоритм..............................................................................................................................................................427.2. Алгоритмические структуры..............................................................................................................................43Самоконтроль..............................................................................................................................................................46

8. Программирование на языке Pascal............................................................................................................................46

5

Page 6: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

8.1. Алфавит языка......................................................................................................................................................478.2. Арифметические выражения и правила их записи...........................................................................................47

Знаки операций......................................................................................................................................................47Операции div и mod..............................................................................................................................................47

8.3. Типы данных........................................................................................................................................................48Целые типы............................................................................................................................................................48Логический тип.....................................................................................................................................................48Символьный тип....................................................................................................................................................49Строковый тип.......................................................................................................................................................49Вещественный тип................................................................................................................................................49

8.4. Стандартные функции.........................................................................................................................................498.5. Структура программы на языке Паскаль..........................................................................................................508.6. Описательная часть программы.........................................................................................................................508.7. Исполнительная часть программы.....................................................................................................................518.8. Оператор присваивания......................................................................................................................................518.9. Операторы ввода-вывода....................................................................................................................................52

Оператор ввода......................................................................................................................................................52Оператор вывода...................................................................................................................................................52

8.10. Комментарии в программе................................................................................................................................52Пример программы линейной структуры................................................................................................................53Вопросы для самоконтроля.......................................................................................................................................548.11. Методические указания для выполнения практического задания №4. «Следования»...............................54

Приложение 5. Таблица вариантов заданий..................................................................................................................549. Ветвления......................................................................................................................................................................56

9.1. Операторы условия и перехода..........................................................................................................................56Логический оператор............................................................................................................................................57Операции отношения............................................................................................................................................57Логические операции............................................................................................................................................57

9.2. Оператор выбора..................................................................................................................................................58Пример программы разветвленной структуры........................................................................................................59Вопросы для самоконтроля.......................................................................................................................................609.3. Методические указания для выполнения практического задания №5. «Ветвления»...................................60

Приложение 6. Таблица вариантов заданий..................................................................................................................6010. Циклические вычислительные процессы.................................................................................................................62

10.1. Оператор цикла с параметром..........................................................................................................................6210.2. Оператор цикла с постусловием.......................................................................................................................6310.3. Оператор цикла с предусловием......................................................................................................................6310.4. Вложенные циклы..............................................................................................................................................6410.5. Оператор прерывания цикла.............................................................................................................................65Пример программы циклической структуры...........................................................................................................65Вопросы для самоконтроля.......................................................................................................................................6610.6. Методические указания для выполнения практического задания №6. «Циклы».......................................66

Приложение 7. Таблица вариантов заданий..................................................................................................................6611. Операции с индексированными переменными.......................................................................................................69

11.1. Массивы одномерные........................................................................................................................................6911.2. Описание массивов............................................................................................................................................69

Ввод элементов массива.......................................................................................................................................70Вывод элементов массива....................................................................................................................................70

11.3. Обработка одномерных массивов....................................................................................................................70Пример программы обработки одномерного массива............................................................................................73Вопросы для самоконтроля.......................................................................................................................................74

6

Page 7: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

11.4. Методические указания для выполнения практического задания №7. «Операции с индексированными переменными».............................................................................................................................................................74

Приложение 8. Таблица вариантов заданий..................................................................................................................7412. Двумерные массивы...................................................................................................................................................76

12.1. Матрицы.............................................................................................................................................................7612.2. Описание двумерного массива.........................................................................................................................77

Ввод элементов двумерного массива..................................................................................................................78Вывод элементов двумерного массива...............................................................................................................78

12.3. Обработка двумерных массивов......................................................................................................................78Пример программы обработки двумерного массива..............................................................................................83Вопросы для самоконтроля.......................................................................................................................................8412.4. Методические указания для выполнения практического задания №8. «Матрицы»...................................84

Приложение 9. Таблица вариантов заданий..................................................................................................................8413. Подпрограммы............................................................................................................................................................86

13.1. Функции и процедуры.......................................................................................................................................87Структура программы, содержащей процедуру (функцию).............................................................................87

13.2. Процедуры..........................................................................................................................................................8713.3. Вложенные процедуры......................................................................................................................................88

Директива forward.................................................................................................................................................8813.4. Функции..............................................................................................................................................................89Пример программы с использованием подпрограмм.............................................................................................90Вопросы для самоконтроля.......................................................................................................................................91Методические указания для выполнения практического задания №9. «Подпрограммы»..................................92

Приложение 10. Таблица вариантов заданий................................................................................................................9214. Обработка строк текста..............................................................................................................................................95

14.1. Символьные переменные..................................................................................................................................95Фрагмент таблицы ASCII-кодов букв латинского алфавита............................................................................95Фрагмент таблицы ASCII-кодов букв русского алфавита................................................................................95

14.2. Функции обработки символьных переменных...............................................................................................9514.3. Строковые переменные.....................................................................................................................................9614.4. Функции обработки строковых переменных..................................................................................................9714.5. Процедуры обработки строковых переменных..............................................................................................9814.6. Примеры обработки строковых переменных..................................................................................................99Вопросы для самоконтроля.....................................................................................................................................101

15. Структурированные типы данных..........................................................................................................................101Записи........................................................................................................................................................................101Пример программы использования массива записей............................................................................................103Вопросы для самоконтроля.....................................................................................................................................105Методические указания к выполнению индивидуального задания по Модулю 2. «Массивы записей».........105

Приложение 11. Таблица вариантов индивидуального задания................................................................................105

7

Page 8: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

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

№ н

едел

и Наименование учеб. мероприятия

(под руководством)

Тема учебного мероприятия

1Консультация

(тьютор)Получение личных логинов и паролей. Знакомство с образоват. порталом, маршрутной картой по Модулю 1.

1Самостоятельное

изучение материала

Подготовка к практическому занятию. Изучение теоретического материала: Раздел 1. «Логические и арифметические основы ЭВМ. Системы счисления». Ответить на вопросы самоконтроля в конце раздела.

2Практическое

занятие(преподаватель)

Выполнить практическое задание №1 по теме «Системы счисления». Варианты заданий приведены в Приложении 1. Выполненное задание предъявить преподавателю. Пройти тренинг по теме «Системы счисления» (http://inf.tltsu.ru/res/strogov/).

2Самостоятельное

изучение материала

Подготовка к практическому занятию. Изучение теоретического материала: Раздел 2. «Алгебра логики». Ответить на вопросы самоконтроля в конце раздела.

3Практическое

занятие(преподаватель)

Выполнить практическое задание №2 по теме «Алгебра логики», построение таблиц истинности. Варианты заданий приведены в Приложении 2. Выполненное задание предъявить преподавателю.

3Самостоятельное

изучение материала

Подготовка к практическому занятию. Изучение теоретического материала: Раздел 3. «Применение средств алгебры логики для описания функционирования устройств компьютера» (стр. 27). Ответить на вопросы самоконтроля в конце раздела.

4Практическое

занятие(преподаватель)

Выполнить практическое задание №3 по теме «Применение средств алгебры логики для описания функционирования устройств компьютера», построение логических схем. Варианты заданий приведены в Приложении 2. Выполненное задание предъявить преподавателю.

5 Практическая работа

Выполнение ИДЗ №1 по теме «Логические и арифметические основы ЭВМ. Алгебра логики». Варианты заданий приведены в Приложении 3. Пример оформления титульного листа приведен в Приложении 4.

5Консультация

(тьютор)

Получение консультации у тьютора по выполнению ИДЗ №1. Подготовка к промежуточному тестированию по Модулю 1. Пройти тренинг по теме «Битовые операции»( http://inf.tltsu.ru/res/strogov/).

6Практическое

занятие(преподаватель)

Сдать преподавателю ИДЗ №1.

6

Промежуточное тестирование по

модулю №1 через ЦТ

Пройти промежуточное тестирование по Модулю 1 в центре тестирования.

8

Page 9: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

1. Логические и арифметические основы ЭВМ

Термин информатика возник в 60-х гг. во Франции для названия области, занимающейся автоматизированной обработкой информации с помощью электронных вычислительных машин. Французский термин informatique (информатика) образован путем слияния слов information (информация) и automatique (автоматика) и означает «информационная автоматика или автоматизированная переработка информации». В англоязычных странах этому термину соответствует синоним computer science (наука о компьютерной технике).

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

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

Или более простое понятие:Информатика – это наука, изучающая вопросы сбора, обработки, хранения и передачи

информации с помощью ЭВМ.В вопросах организации обработки информации с помощью ЭВМ важное место занимают

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

Информация в ЭВМ хранится и отрабатывается в определенном, закодированном виде. ЭВМ оперируется числами, представленными в некоторой системе счисления.

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

Системы счисления принято делить на: Позиционные. Непозиционные. Символические.В символических системах каждому числу ставится в соответствие свой символ. Эти

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

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

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

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

9

Page 10: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

Система представления чисел в различных системах счисленияТаблица 1

Десятичная Двоичная Восьмеричная Шестнадцатеричная0 0000 0 01 0001 1 12 0010 2 23 0011 3 34 0100 4 45 0101 5 56 0110 6 67 0111 7 78 1000 10 89 1001 11 910 1010 12 А11 1011 13 B12 1100 14 C13 1101 15 D14 1110 16 E15 1111 17 F16 10000 20 1017 10001 21 1118 10010 22 1219 10011 23 1320 10100 24 14

Наибольшее распространение для представления чисел в ЭВМ, получили двоичная, восьмеричная и шестнадцатеричная системы счисления.

1.1. Десятичная система счисленияВ этой системе число представляется в виде полинома n степени, а изображается

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

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

Основание системы счисления – число, которое является мощностью множества различных символов, допустимых в каждой позиции числа. Привычная для нас 10-я система счисления использует для записи чисел 10 цифр: 0-9. Это позиционная система счисления, т.е. значение цифры в числе зависит от положения (позиции) (в отличие от римской).

Пример 1. Число 55,5 можно представить:55,5=5*101+5*100+5*10-1

десятки единицы десятые доли единицыЕсли g принять за основание системы, то любое число можно представить как

10

Page 11: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

1 0 11 0 1 1 0 1... , ... ... ...n n m

n n m n n ma a a a a a g a g a g a g a g

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

Таким образом, однородность – одно из важных свойств позиционных систем.

1.2. Двоичная система счисленияВ двоичной системе счисления для изображения чисел используют только две цифры 0 и 1.С помощью двоичных кодов можно кодировать и хранить в памяти ЭВМ любую алфавитно-

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

Информация хранится в байтах. 1 байт = 8 бит, т.е. для кодирования используется восьмиразрядный двоичный код.

Основанием двоичной системы является число 2.Пример 2. 101(2)=1*22+0*21+1*20=4+0+1=5(10). 101(2)=>5(10).(Любое число в 0-ой степени равно 1)

Арифметические операции в двоичной системе счисленияТаблица 2

Сложение Вычитание Умножение0+0=0 0-0=0 0*0=01+0=1 1-0=1 1*0=00+1=1 0-1=1 0*1=0

1+1=10 1-1=0 1*1=1При сложении двух чисел, равных 1, в данном разряде получается 0, а 1-ца переносится в

старший разряд.Пример 3.

101 + 11 1000 ,

где 101(2)=> 5(10), 11(2)=> 3(10), 1000(2) => 8(10).Действительно: 5+3=8.При вычитании из 0 единицы, занимается единица из старшего ближайшего разряда,

отличного от 0. При этом, единица занятая в старшем разряде, даёт 2 единицы в младшем разряде и по единице во всех разрядах между старшим и младшим.

Пример 4.

101 - 11 10 ,

где 101(2)=>5(10), 11(2)=>3(10), 10(2)=>2(10).Действительно: 5-3=2.Операция умножения сводится к многократному сдвигу и сложению.

11

Page 12: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

Пример 5. 11

* 10

00

11

110 ,где 11(2)=>3(10), 10(2)=>2(10), 110(2)=>6(10).Действительно: 3*2=6.

1.3. Восьмеричная и шестнадцатеричная системы счисленияЗапись двоичных чисел достаточно длинна, операции над ними – утомительны. Для

краткости записи двоичной информации используются системы с большим основанием. Главным требованием, предъявляемым к этим системам, является то, что перевод из этих систем в двоичную и обратно, должен быть достаточно кратким, т.е. эти системы и двоичная должны быть в некотором смысле эквивалентны. Таковыми являются восьмеричная и шестнадцатеричная системы (см. таблицу 1).

В 8-ой системе для изображения чисел используют 8 цифр: 0-7. Основанием системы являются число 8. Для перевода чисел из 2-ой системы счисления в восьмеричную, достаточно разбить двоичное число на триады (по три) двигаясь влево и вправо от десятичной точки.

Пример 6: 11 110.001 01(2)=36.12(8).К крайним группам добавляются нули для дополнения их до трех разрядов.8=23 – отсюда триады.В 16-й с/с для изображения чисел используется 16 символов: 10 цифр и 6 букв латинского

алфавита: А, B, C, D, E, F. Основание системы – число 16.16=24 – для преобразования двоичного числа в 16-ричное, нужно разбить его на тетрады (по

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

Пример 7: 1111 0101.1000 111(2)=F5.8E(16).и обратно:6ЕА.4(16)=110 1110 1010.0100(2).Использование 8-ой или 16-ой систем счисления позволяет уменьшить в 3 или 4 раза

количество разрядов для записи чисел.

1.4. Перевод чисел из любой системы счисления в десятичнуюДля перевода числа из любой системы счисления в десятичную, необходимо разложить это

число по степеням основания этой системы.Пример 8:

3 2 1 0(2) (10)

1 0 1(8) (10)

1101 1 2 1 2 0 2 1 2 13

115.1 1 8 5 8 1 8 8 5 13.1258

1 0 1 1(16)

(10)

18.2 16 8 16 2 16 10 16 8 1 216

1160 8 168.1258

A A

12

Page 13: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

1.5. Перевод чисел из десятичной системы счисления в любую другую

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

Результат формируется справа налево. Деление продолжается до тех пор, пока результат деления не станет меньше делителя.

Пример 9. Перевести число 13 из десятичной системы счисления в двоичную систему: 13 2 12 6 2 1 6 3 2

0 2 1 1

13(10) => 1101(2).Пример 10. Перевести число 13 из десятичной системы счисления в восьмеричную систему:

13 8 8 1

5

13(10) => 15(8).Пример 11. Перевести число 638 из десятичной системы счисления в шестнадцатеричную

систему:

638 16 48 39 16 158 32 2 144 7 14

638(10) => 27E(16).

Остатки записываются в шестнадцатеричном виде (14 => Е).Пример 12. Сложение двоичных чисел:11011001(2)

+ 1011101(2)100110110(2).Для проверки результата сложения двоичное число нужно разбить на триады, перевести в

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

11 011 001(2)=331(8)=3*82+3*81+1*80=192+24+1=217(10).1 011 101(2)=135(8)=1*82+3*81+5*80=64+24+5=93(10).100 110 110(2)=466(8)=4*82+6*81+6*80=256+48+6=310(10).Проверка:217(10)+93(10)=310(10).

13

Page 14: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

Пример 13. Сложение шестнадцатеричных чисел:8E38C(16)

+ 5D35(16)940C1(16).Перед сложением необходимо перейти согласно таблице 1 в 10-ю систему счисления,

произвести сложение, затем опять вернуться к 16-ой системе счисления.C(16)+5(16) => 12(10)+5(10)=17(10) => 11(16).8(16)+3(16)+1(16)=12(10) => С(16).3(16)+D(16)=3(10)+13(10)=16(10) => 10(16).E(16)+5(16)+1(16)=14(10)+5(10)+1(10)=20(10) =>14(16).8(16)+1=9(10) => 9(16).

Вопросы для самоконтроля1. Что такое система счисления?2. Чем характеризуется система счисления?3. Виды систем счисления.4. Десятичная система счисления. Основание. Представление чисел.5. Двоичная система счисления. Основание.6. Восьмеричная и шестнадцатеричная системы счисления.7. Перевод чисел из любой системы счисления в десятичную.8. Перевод чисел из десятичной в любую другую систему счисления.9. Почему для машинной арифметики используется двоичная система счисления?

Методические указания для выполнения практического задания №1. «Системы счисления»

Цель работы: Ознакомиться с системами счислений. Рассмотреть систему представления чисел в памяти ЭВМ.

Задание:1. В приложении 1 выбрать вариант задания.2. Выполнить задание, пользуясь теоретическими сведениями.3. Оформить выполненное задание в тетради для практических занятий.4. Результат работы предъявить преподавателю.5. Ответить на вопросы самоконтроля.6. Защитить выполненную работу у преподавателя.

14

Page 15: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

Приложение 1. Таблица вариантов заданийВариант Задание

1

1. Выполнить действия в двоичной системе счисления: 1100 – 0111 11001*111 1111 + 1011

2. Перевести из одной системы счисления в другую: число 42 из десятичной системы счисления в 2-ную число 100111 из двоичной системы счисления в 10-ную число FA2 из шестнадцатеричной системы счисления в 5-ную

2

1. Выполнить действия в двоичной системе счисления: 1111 – 1101 1001 * 110 10111 + 1112. Перевести из одной системы счисления в другую: число 39 из десятичной системы счисления в 2-ную число 11001100 из двоичной системы счисления в 10-ную число DBC из шестнадцатеричной системы счисления в 3-ную

3

1. Выполнить действия в двоичной системе счисления: 1011 + 10111 10111 – 1111 1100101*1012. Перевести из одной системы счисления в другую: число 89 из десятичной системы счисления в 2-ную число 110100101 из двоичной системы счисления в 10-ную число 110111 из двоичной системы счисления в 6-ную

4

1. Выполнить действия в двоичной системе счисления: 10011 + 1101 11000 – 1101 1011*111

2. Перевести из одной системы счисления в другую: число 73 из десятичной системы счисления в 2-ную число 1110011 из двоичной системы счисления в 10-ную число 111101 из двоичной системы счисления в 7-ную

5

1. Выполнить действия в двоичной системе счисления: 11001 – 10101 10011 * 111 11001 + 100011

2. Перевести из одной системы счисления в другую: число 64 из десятичной системы счисления в 2-ную число 111100101 из двоичной системы счисления в 10-ную число 100101 из двоичной системы счисления в 5-ную

15

Page 16: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

6

1. Выполнить действия в двоичной системе счисления: 11011 + 11111 11101 – 1101 1011*1001

2. Перевести из одной системы счисления в другую: число 71 из десятичной системы счисления в 2-ную число 101100101 из двоичной системы счисления в 10-ную число 111101 из двоичной системы счисления в 6-ную

7

1. Выполнить действия в двоичной системе счисления: 10111 – 1101 10011 * 1010 11011 + 11111

2. Перевести из одной системы счисления в другую: число 85 из десятичной системы счисления в 2-ную число 110101 из двоичной системы счисления в 10-ную число 63D из шестнадцатеричной системы счисления в 7-ную

8

1. Выполнить действия в двоичной системе счисления: 110011 – 10001 101101 * 1101 111001 + 1101

2. Перевести из одной системы счисления в другую: число 42 из десятичной системы счисления в 2-ную число 111100001 из двоичной системы счисления в 10-ную число 4F9 из шестнадцатеричной системы счисления в 6-ную

9

1. Выполнить действия в двоичной системе счисления: 11100+10011 110101-11011 1011*1001

2. Перевести из одной системы счисления в другую: число 69 из десятичной системы счисления в 2-ную число 111100011 из двоичной системы счисления в 10-ную число 110101 из двоичной системы счисления в 3-ную

10

1. Выполнить действия в двоичной системе счисления: 110101+10011 11101-1111 1011*1001

2. Перевести из одной системы счисления в другую: число 75 из десятичной системы счисления в 2-ную число 111100111 из двоичной системы счисления в 10-ную число 423 из 5-ричной системы счисления в 7-ричную

11 1. Выполнить действия в двоичной системе счисления: 10101+10011 100111-11011 1011*1001

16

Page 17: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

2. Перевести из одной системы счисления в другую: число 312 из десятичной системы счисления в 2-ную число 111100110 из двоичной системы счисления в 10-ную число 621 из 7-ричной системы счисления в 5-ную

12

1. Выполнить действия в двоичной системе счисления: 111101+10011 11111-10111 1011*1001

2. Перевести из одной системы счисления в другую: число 251 из десятичной системы счисления в 2-ную число 111100100 из двоичной системы счисления в 10-ную число 3FD из 16-ричной системы счисления в 4-ную

13

1. Выполнить действия в двоичной системе счисления: 111001+10011 110101-11101 1011*1001

2. Перевести из одной системы счисления в другую: число 103 из десятичной системы счисления в 2-ную число 1111000001 из двоичной системы счисления в 10-ную число 565 из 7-ричной системы счисления в 3-ную

14

1. Выполнить действия в двоичной системе счисления: 111001+10011 111101-1101 1011*1001

2. Перевести из одной системы счисления в другую: число 149 из десятичной системы счисления в 2-ную число 110110111 из двоичной системы счисления в 10-ную число 332 из 4-ной системы счисления в 6-ную

15

1. Выполнить действия в двоичной системе счисления: 111001+10011 11011-1001 1011*1001

2. Перевести из одной системы счисления в другую: число 107 из десятичной системы счисления в 2-ную число 111010111 из двоичной системы счисления в 10-ную число 110101 из двоичной системы счисления в 7-ную

16

1. Выполнить действия в двоичной системе счисления: 100101+10011 111101-1111 1011*1001

2. Перевести из одной системы счисления в другую: число 143 из десятичной системы счисления в 2-ную число 111110111 из двоичной системы счисления в 10-ную число 201 из 7-ричной системы счисления в 3-ную

17

Page 18: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

17

1. Выполнить действия в двоичной системе счисления: 100101+100011 11101-1011 1011*101

2. Перевести из одной системы счисления в другую: число 65 из десятичной системы счисления в 2-ную число 111111111 из двоичной системы счисления в 10-ную число 813 из 9-ричной системы счисления в 4-ную

18

1. Выполнить действия в двоичной системе счисления: 110101+100011 110001-1101 1011*111

2. Перевести из одной системы счисления в другую: число 98 из десятичной системы счисления в 2-ную число 111110101 из двоичной системы счисления в 10-ную число 110101 из двоичной системы счисления в 7-ную

19

1. Выполнить действия в двоичной системе счисления: 111001+100011 110001-11101 111*101

2. Перевести из одной системы счисления в другую: число 155 из десятичной системы счисления в 2-ную число 111100010 из двоичной системы счисления в 10-ную число 442 из 6-ричной системы счисления в 5-ную

20

1. Выполнить действия в двоичной системе счисления: 111001+10011 111101-10011 1011*111

2. Перевести из одной системы счисления в другую: число 91 из десятичной системы счисления в 2-ную число 110100101 из двоичной системы счисления в 10-ную число 648 из 9-ричной системы счисления в 5-ную

21

1. Выполнить действия в двоичной системе счисления: 111001+10011 100110-11011 1111*1001

2. Перевести из одной системы счисления в другую: число 88 из десятичной системы счисления в 2-ную число 100111101 из двоичной системы счисления в 10-ную число 435 из 7-ной системы счисления в 9-ную

22 1. Выполнить действия в двоичной системе счисления: 111001+10011 101101-10110 1011*101

18

Page 19: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

2. Перевести из одной системы счисления в другую: число 115 из десятичной системы счисления в 2-ную число 1010101 из двоичной системы счисления в 10-ную число 306 из 7-ной системы счисления в 3-ную

23

1. Выполнить действия в двоичной системе счисления: 110101+10001 100101-11001 1111*1001

2. Перевести из одной системы счисления в другую: число 106 из десятичной системы счисления в 2-ную число 110101101 из двоичной системы счисления в 10-ную число 110101 из двоичной системы счисления в 6-ную

24

1. Выполнить действия в двоичной системе счисления: 100101+10011 110001-10101 111*1001

2. Перевести из одной системы счисления в другую: число 59 из десятичной системы счисления в 2-ную число 1101101 из двоичной системы счисления в 10-ную число 340 из 7-ной системы счисления в 5-ную

25

1. Выполнить действия в двоичной системе счисления: 110101+1001 110011-10011 1011*101

2. Перевести из одной системы счисления в другую: число 157 из десятичной системы счисления в 2-ную число 1001101011 из двоичной системы счисления в 16-ную число 142 из 9-ной системы счисления в 7-ную

26

1. Выполнить действия в двоичной системе счисления: 101101+10011 110101 - 10111 1111*101

2. Перевести из одной системы счисления в другую: число 233 из десятичной системы счисления в 2-ную число 110100111 из двоичной системы счисления в 10-ную число 110101 из двоичной системы счисления в 5-ную

27

1. Выполнить действия в двоичной системе счисления: 10001 + 11011 110101 - 11101 11101*11001

2. Перевести из одной системы счисления в другую: число 131 из десятичной системы счисления в 2-ную число 110101101 из двоичной системы счисления в 10-ную число 351 из 7-ной системы счисления в 5-ную

19

Page 20: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

28

1. Выполнить действия в двоичной системе счисления: 110101 + 10011 11101 - 1011 111 * 1001

2. Перевести из одной системы счисления в другую: число 253 из десятичной системы счисления в 2-ную число 1101101101 из двоичной системы счисления в 10-ную число 404 из 6-ной системы счисления в 7-ную

29

1. Выполнить действия в двоичной системе счисления: 110101 - 10011 101101 + 1111 1011*101

2. Перевести из одной системы счисления в другую: число 141 из десятичной системы счисления в 2-ную число 110101111 из двоичной системы счисления в 10-ную число 511 из 7-ной системы счисления в 5-ную

30

1. Выполнить действия в двоичной системе счисления: 1100 * 0111 11001+1011 111101 - 10011

2. Перевести из одной системы счисления в другую: число 147 из десятичной системы счисления в 2-ную число 110100101 из двоичной системы счисления в 10-ную число 1101010 из двоичной системы счисления в 9-ную

2. Алгебра логикиЛогика – одна из древнейших наук. Ее основателем считается древнегреческий мыслитель

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

Продолжение развития логики связано математической логикой. Основоположником математической логики считается великий математик и философ Готфрид Вильгельм Лейбниц (1646-1716). Он попытался построить первые логические исчисления: арифметические и буквенно-алгебраические. Но Лейбниц высказал только идею, а развил её окончательно англичанин Джордж Буль (1815-1864). Он вывел для логических построений особую алгебру (алгебру логики). В отличие от обычной логики, в ней символами обозначаются не числа, а высказывания. Алгебра логики (булева алгебра) изучает высказывания, рассматриваемые со стороны их логических значений (истинности или ложности), и логические операции над ними.

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

20

Page 21: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

логики (последняя четверть 19 в. – 1-я половина 20 в.) предмет алгебр логики значительно изменился. Основным предметом алгебры логики стали высказывания. Под высказыванием понимается имеющее смысл языковое выражение, относительно которого можно утверждать, что оно либо истинно, либо ложно.

Пример 1. «5 есть простое число». Это высказыванием является истинным. «4 + х = 6». Это уравнение не является высказыванием. Однако, придавая переменной х

определенное числовое значение, будет высказывание. «роза – цветок». Это высказывание является истинным. «все углы – прямые». Это высказывание является ложным. «3 + 5 = 9». Это высказывание является ложным.Высказывание считается простым, если никакая его часть не является суждением.

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

Пример 2. «Париж – столица Франции». Это высказывание простое. «Неверно, что Париж – столица Англии». Это высказывание сложное.Частные высказывания выражают конкретные факты. Общие высказывания характеризуют

свойства групп объектов или явлений.Пример 3. «Луна - спутник Земли». Это частное высказывание. «Всякий человек – млекопитающее». Это общее высказывание.Рассуждение - это цепочка взаимосвязанных высказываний, фактов и общих положений,

полученных из других высказываний по определенным правилам вывода.Пример 4. «Если треугольник равносторонний, то у него все углы равны между собой». «Если король под шахом и ему некуда ходить, то – мат».Умозаключение – прием мышления, посредством которого из исходного знания получается

новое знание; из одного или нескольких истинных высказываний, называемых предпосылками, по определенным правилам вывода можно получить заключение.

Пример 5. «Все металлы – простые вещества». «Литий – металл». Следовательно «Литий – простое вещество».

Любое правило вывода умозаключений состоит из двух высказываний (простых или сложных). Одно из них называется предпосылкой или условием, а второе – следствием, заключением или выводом.

Пример 6. «Если треугольник равносторонний, то у него все углы 60 градусов». Высказывание «У него все углы равны 60 градусов» – это заключение, а высказывание «Треугольник равносторонний» – это предпосылка.

Существуют умозаключения, осуществляемые по схемам аналогии, индукции и дедукции.Умозаключение по аналогии – это правило полученное из рассмотрения какого-либо

объекта, переносимое на менее изученный, сходный по существенным свойствам и качествам объекта.

Пример 7. Из высказывания «Солнечная система – это планеты, вращающиеся по орбитам, в центре которых находится Солнце» можно получить умозаключение по аналогии: «Атом – это электроны, вращающиеся по орбитам, в центре которых находится ядро».

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

21

Page 22: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

Пример 8. Высказывания: «кошки имеют хвост», «собаки имеют хвост», «обезьяны имеют хвост», «кошки, собаки, обезьяна – млекопитающие». Следовательно, «все млекопитающие имеют хвост». Это умозаключение ложно.

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

Дедукция – это правило вывода умозаключений при переходе от общих суждений к частным.

Пример 9. «Умные люди не делают ошибки». «Я – умный человек». Следовательно: «Я не делаю ошибок».

В математической логике не рассматривается конкретное содержание высказывания, важно только, истинно оно или ложно. Поэтому высказывания можно представить некоторой переменной величиной, значением которой может быть только «0» или «1». Если высказывание истинно, то его значение равно «1», если ложно, то равно «0».

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

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

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

Пример 10. Из высказываний «х > 2», «х < 3» при помощи связки «и» можно получить высказывание

«x > 2 и х < 3»; из высказываний «у > 10», «х < 3» при помощи связки «или» можно получить

высказывание «у > 10 или х < 3»; из высказываний «х > 2», «у < 3» при помощи связки «если..., то...» можно получить

высказывание «если x > 2, то у < 3».Истинность или ложность получаемых таким образом высказываний зависит от истинности

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

В алгебре логики логические операции чаще всего описываются при помощи таблиц истинности. В таблице 1 представлена таблица истинности для операции «отрицание» («инверсия»).

Таблица истинности для операции «отрицания»Таблица 1

А не А

0 1

1 0

В таблице 2 приведены основные бинарные логические операции и связки.22

Page 23: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

Основные бинарные логические операции и связкиТаблица 2

Обозначение логической операции

Другие обозначениялогической операции

Название логической операции и связки

Примечание(читается)

А1 А2А1 & А2А1 А2

А1А2

конъюнкция,логическое умножение,

логическое «и»А1 и А2

А1 А2 А1 + А2дизъюнкция,

логическое сложение,логическое «или»

А1 или А2

А1 А2А1 А2А1 А2

импликация,логическое следование

если А1, то А2;А1 имплицирует А2;

А1 влечет А2

А1 А2А1 + А2А1 А2А1 А2

сумма по модулю 2,разделительная

дизъюнкция,разделительное «или»

А1 плюс А2;либо А1, либо А2

А1 ~ А2А1 А2А1 А2А1 А2

эквиваленция,эквивалентность,равнозначность,тождественность

А1 тогда и только тогда, когда А2;

А1 эквивалентно А2

А1 А2 штрих Шеффера,антиконъюнкция

неверно, что А1 и А2;А1 штрих Шеффера А2

А1 А2А1 А2

А1 А2

стрелка Пирса,антидизъюнкция,функция Вебба,

функция Даггера

ни А1, ни А2;А1 стрелка Пирса А2

Примечание: А1 и А2 являются высказываниями.Связки и частица «не» рассматриваются в алгебре логики как операции над величинами,

принимающими значения 0 (ложь/false) и 1 (истина/true), и результатом применения этих операций также являются числа 0 или 1. В таблице 3 представлены все наборы значений переменных А1 и А2 и значения функций на этих наборах.

Таблица истинности для основных бинарных логических операцийТаблица 3

А1 А2 ~

0 0 0 0 1 0 1 1 1

0 1 0 1 1 1 0 1 0

1 0 0 1 0 1 0 1 0

23

Page 24: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

1 1 1 1 1 0 1 0 0

Инверсия

Отрицание высказывания А (т.е. не А) обозначается А , или А , или A~ и часто читается: «отрицание А», «не А» или «А с чертой».

Пример 11. Высказывание А=<Киев-столица Франции>, тогда сложное высказывание НЕ А означает: не верно, что А, т.е. не верно, что <Киев-столица Франции>.

КонъюнкцияРезультатом операции конъюнкции для высказывания А В будет истинна только тогда,

когда истинны одновременно оба высказывания.Пример 12. Высказывания А= «Москва – столица России» и В= «Рим – столица Италии».

Сложное высказывание А В (А & В) истинно, так как истинны оба высказывания.

ДизъюнкцияРезультатом операции дизъюнкции для высказывания А В будет истинна тогда, когда

истинно хотя бы одно высказывание, входящее в него.Пример 13. Высказывания А = «2 + 3 = 5» и В = «3 + 3 = 5». Сложное высказывание: А В

(А + В) истинно, так как истинно высказывание А.

Эквиваленция (равнозначность)Результатом операции эквиваленции для высказывания А ~ В будет истинна тогда, когда

истинны или ложны одновременно оба высказывания. Отличие эквиваленции от конъюнкции состоит в том, что вне зависимости от смысла, равнозначными являются как истинные, так и ложные высказывания.

Пример 14. Высказывания А = «2 + 2 = 7» и В = «1 – 8 = 5». Сложное высказывание А В (А ~ В) истинно, так как оба высказывания ложны.

ИмпликацияРезультатом операции импликации для высказывания А В будет ложь только тогда, когда

первое высказывание (А) истинно, а второе (В) ложно. При этом А – предпосылка, а В – следствие.

Пример 15. Высказывания А = «2 + 2 = 4» и В = «1 – 8 = 5». Сложное высказывание А В (А В) ложно, так как высказывание А истинно, а В – ложно.

АнтиконъюнкцияРезультатом операции антиконъюнкции для высказывания А В будет ложь только тогда,

когда оба высказывания истинны.Пример 16. Высказывания А= «Москва – столица России» и В= «Рим – столица Италии».

Сложное высказывание А В ложно, так как истинны оба высказывания.

АнтидизъюнкцияРезультатом операции антидизъюнкции для высказывания А В будет истинна только

тогда, когда оба высказывания ложны.Пример 17. Высказывания А= «Рим – столица России» и В= «Москва – столица Италии».

Сложное высказывание А В истинно, так как ложны оба высказывания.Основными символами алгебры логики являются: пропозициональные переменные; унарная связка и бинарные связки , , , ~; скобки ( ).

24

Page 25: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

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

Далее индуктивно вводится понятие формулы, являющееся формализацией понятия «сложного» высказывания. К формуле алгебры логики относят:

выражение, состоящее только из пропозициональной переменной (А1, В, с); выражения, состоящие из пропозициональных формул соединенных связками ( С, (А1

А2), (Н1 Н2)).Правила сокращения записей в пропозициональных формулах:

вместо А пишут А ; вместо А1 А2 пишут А1А2; приоритет применения связок возрастает в следующем порядке~ внешние скобки опускаются.Пример 18.

321321 )())(( АААААА ;

21312131 ))()(( АААААААА .Для преобразований формул в равные формулы важную роль в алгебре логики играют

следующие равенства:

1. 1221 ** АААА (закон коммутативности).

2. )*(**)*( 321321 АААААА (закон ассоциативности).

3. 1211

1211

)()(

АААААААА

(закон поглощения).

4. )()()()()()(

3121321

3121321

АААААААААААААА

(закон дистрибутивности).

5. 0

)(

)(

212121

2121

21211

21211

АААААААА

АААА

ААААА

ААААА

(закон противоречия).

6. 1 АА (закон исключенного третьего);

7. АА (закон снятия двойного отрицания);

8. 12121

12121

))(( ААААА

ААААА

(закон склеивания);

9. 2121

2121

АААА

АААА

(закон де Моргана);

10. 21211 ААААА (закон свертки).Эти равенства позволяют существенно упростить запись формул освобождением от лишних

скобок.

25

Page 26: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

2.2. Нормальные формыЭлементарной конъюнкцией называется конъюнкция нескольких переменных, взятых с

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

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

Конъюнктивная нормальная формаВсякая конъюнкция элементарных дизъюнкций называется конъюнктивной нормальной

формой, то есть КНФ.Совершенной КНФ (СКНФ) называется КНФ, в которой нет равных элементарных

дизъюнкций и все они содержат одни и те же переменные, причём каждую переменную только один раз (возможно с отрицанием).

Дизъюнктивная нормальная формаВсякая дизъюнкция элементарных конъюнкций называется дизъюнктивной нормальной

формой, то есть ДНФ.Совершенной ДНФ (СДНФ) называется ДНФ, в которой нет равных элементарных

конъюнкций и все они содержат одни и те же переменные, причём каждую переменную только один раз (возможно с отрицанием).

3. Применение средств алгебры логики для описания функционирования устройств компьютера

Для описания того, как функционируют аппаратные средства компьютера очень удобен математический аппарат алгебры логики, поскольку основной системой счисления в компьютере является двоичная, в которой используются цифры «1» и «0».

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

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

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

В логической схеме компьютера выделяют логические элементы. Логический элемент компьютера – это часть электронной логической схемы, которая реализует элементарную логическую формулу.

Логическими элементами компьютеров являются электронные схемы «И», «ИЛИ», «НЕ», «И-НЕ», «ИЛИ-НЕ» и другие (называемые также вентилями), а также триггер. С помощью этих схем можно реализовать любую логическую формулу, описывающую работу устройств компьютера.

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

Схема «И» реализует конъюнкцию двух или более логических значений. Условное обозначение на структурных схемах схемы «И» с двумя входами представлено на рис. 5.

26

Page 27: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

Рис. 5. Схема «И»На выходе схемы «И» значение «1» будет тогда и только тогда, когда на всех входах будут

«1». Когда хотя бы на одном входе будет «0», на выходе также будет «0».Операция конъюнкции на функциональных схемах обозначается знаком «&» (читается как

«амперсэнд»), являющимся сокращенной записью английского слова and.Схема «ИЛИ» реализует дизъюнкцию двух или более логических значений. Условное

обозначение схемы «ИЛИ» представлено на рис. 6.

Рис. 6. Схема «ИЛИ»Значение дизъюнкции равно «1», если сумма значений операндов больше или равна «1».

Когда хотя бы на одном входе схемы «ИЛИ» будет «1», на её выходе также будет «1».Операция дизъюнкции на функциональных схемах обозначается знаком «1».Схема «НЕ» (инвертор) реализует операцию отрицания. Условное обозначение схемы НЕ

представлено на рис. 7.

Рис. 7. Схема «НЕ»Если на входе схемы – «0», то на выходе будет «1». Когда на входе – «1», на выходе будет

«0».Схема «И-НЕ» состоит из элемента «И» и инвертора и осуществляет отрицание результата

схемы «И». Условное обозначение схемы «И-НЕ» представлено на рисунке 8. Таблица истинности схемы «И-НЕ» – это таблица 5.

Рис. 8. Схема «И-НЕ»Таблица истинности схемы «И-НЕ»

Таблица 5

х у ух

0 0 1

27

Page 28: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

0 1 1

1 0 1

1 1 0

Схема «ИЛИ-НЕ» состоит из элемента «ИЛИ» и инвертора и осуществляет отрицание результата схемы «ИЛИ». Условное обозначение схемы «ИЛИ-НЕ» представлено на рис. 9, а таблица истинности схемы ИЛИ-НЕ – это табл. 6.

Рис. 9. Схема «ИЛИ-НЕ»Таблица истинности схемы «ИЛИ-НЕ»

Таблица 6

х у ух

0 0 1

0 1 0

1 0 0

1 1 0

Логические схемыЛогическая схема – это схематическое изображение некоторого устройства, состоящего из

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

Каждый переключатель имеет только два состояния: замкнутое и разомкнутое. Переключателю Х поставим в соответствие логическую переменную х, которая принимает значение 1 в том и только в том случае, когда переключатель Х замкнут и схема проводит ток; если же переключатель разомкнут, то х равен нулю.

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

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

При рассмотрении переключательных схем возникают две основные задачи: синтез и анализ схемы.

СИНТЕЗ СХЕМЫ по заданным условиям ее работы сводится к следующим трём этапам:1. составлению функции проводимости по таблице истинности, отражающей эти условия;2. упрощению этой функции;3. построению соответствующей схемы.АНАЛИЗ СХЕМЫ сводится к:

28

Page 29: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

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

2. получению упрощённой формулы.

Пример решение логических задач средствами алгебры логикиЗадача: Составить таблицу истинности для данной формулы: (x ~ z) | ((x y) ~ (y z)).Решение: В таблицу истинности данной формулы полезно включить таблицы истинности

промежуточных функций:

xyz x ~ z x y y z (x y) ~ (y z) (x~ z)|((x y) ~ (yz)

000 1 0 0 1 0001 0 0 0 1 1010 1 0 0 1 0011 0 0 1 0 1100 0 0 0 1 1101 1 0 0 1 0110 0 1 0 0 1111 1 1 1 1 0

Методические указания для выполнения практического задания №2. «Алгебра логики». Построение таблиц истинности.

Цель работы: Ознакомиться с основными арифметическими операциями, базовыми логическими элементами (И, И-НЕ, ИЛИ, ИЛИ-НЕ, исключающее ИЛИ) и изучить методы построения на их основе таблиц истинности.

Задание:1. В приложении 2 выбрать вариант задания и составить таблицу истинности.2. Выполнить задание, используя пример решение логических задач средствами

алгебры логики.3. Оформить работу в тетради для практических работ.4. Результат работы предъявить преподавателю.5. Защитить выполненную работу у преподавателя.

Пример построения логических схемЗадача:Построить логическую схему по заданному булевому выражению:F =BA + BA + CB.Решение:Как правило, построение и расчет любой схемы осуществляется начиная с ее выхода.Первый этап: выполняется логическое сложение, логическую операцию ИЛИ, считая

входными переменными функцииB A, BA и CB:

29

Page 30: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

Второй этап: к входам элемента ИЛИ подключаются логические элементы И, входными переменными которых являются уже A, B, C и их инверсии:

1B A

F BA

À

B

A

ÂÀ

C

B

CB

Третий этап: для получения инверсийA иB на соответствующих входах ставят инверторы:

1 B A

CB

F BA

А

B

A

В

С

B

1 А

1 В

С

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

Методические указания для выполнения практического задания №3. «Алгебра логики». Построение логических схем

Цель работы: Ознакомиться с основными арифметическими операциями, базовыми логическими элементами (И, И-НЕ, ИЛИ, ИЛИ-НЕ, исключающее ИЛИ) и изучить методы построения на их основе простейших логических схем.

Задание:1. В приложении 2 выбрать вариант задания и построить логическую схему.2. Выполнить задание, используя пример построения логических схем.3. Оформить работу в тетради для практических работ.4. Результат работы предъявить преподавателю.

30

Page 31: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

5. Защитить выполненную работу у преподавателя.

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

1 )~(|)( yzxyx

( )x yz xz

2 ))~(())(( yzxzyx

)(*)( dccacdcda

3 )|())~(( yzxyzx

xdxcddc )(

4 )())(( yxzyx

)( zyxyzzy

5 ))(~( zxyzx

)( zpxzxyyx

6 )|)(()( zyxzyx

zyxzyyx )(

7 ))(~( xzyzx

)( yzyxz

8 )~()|)(( yxzxy

zyxzyx )()(

9 )(|)( xzxyyxz

)(* xyyzyx

10 )(|))(( xyyzx

)( yxyzx

11 )(|))(~( xyzyx

)(* abacba

12 )~(|))(( xzxyyzx

)( baadbab

13 )|)(()( zyxzyx

)( zyzxy

14 )))((~()( zxyzzyx

)( yxzyxxy

31

Page 32: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

15 )|)~(())|(( yzyxzxy

cacbba ))((

16 )(|))(( yzxyzx

)( xyxzy

17 ))((|)~( xzyxyx

zxzyxyx )(

18 )~(|)( yzxyx

)( yxzxyyx

19 ))~(())(( yzxzyx

zxyyzx

20 )())~(( yzxyzx

)( xzyzxxz

21 )~())(( yxzyx

)( xzxyz

22 )))((~( zxyzx

)( yxzxyxz

23 )|)(()( zyxzyx

)(|)~( yxyx

24 ))(~()( xyzzx

bacba )(

25 )()|)~(( yxzyx

)(*)( yxxzyxzyx

26 ))~((|)( zxyxyxz

)~(| zyxzyzx

27 )(|))()(( yxzyzx

zyxyx )~()(

28 ))~((|)~)(( yzxzyx

)(|)~( yxyxyx

29 ))~(|())(( zyxyzx

xzxzxyz )(

30 ))|(()( zyxzyx

32

Page 33: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

yxzxyzyx *

4. Индивидуальное задание. Модуль 1. «Построение логических схем по заданным булевым выражениям»

Задания к ИДЗ:1. В приложении 3 выбрать вариант индивидуального задания.2. Выполнить задание, пользуясь теоретическими сведениями3. Проверить логическую схему у тьютора.4. Оформить ИДЗ в формате А4, титульный лист по образцу Приложение 4.5. Результат работы предъявить преподавателю.6. Защитить выполненную работу у преподавателя.

Приложение 3. Таблица вариантов индивидуального задания

Варианты Составить таблицу истинности и логическую схему по формулам

1 BABAX

CBCAY

2 DCBX

DCBAY

3 BABAX

DACY

4 )( BAACX

ACXY

5 )( DCDX

)( BXBXY

6 ))(( BABAX

CCABAY

7 ZYXC )(

)( ZYXYXA

8 ZYXZYXA

ZYXYXC

9 )()( YXZYXA

)( YXZXXYC

10

33

Page 34: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

CBAXAY

11 YCBAX

BXAXY

12 DCBADBX )(

BACBAY )(

13 CBCABX )(

BCCAY

14 CAYBCX

ABBCY

15 )( BABBAAX

))(( CABAY

16 )( ABABACX

)( ABCAY

17 )( BAABX

BDBCBAY )(

18 BAACBAX )(

)()( CBCACAY

19 BACBAX )(

CBABACY )(

20 ))(( ACBAAX

ACDBAY

21 CBABCX

BACAABY )(

22 )( BADCDBX

)( ABADCY

23 ABCDCAX )(

BACABY )(

24 CBABACY )(

CBABDCX

25 CBABCX

34

Page 35: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

CXAXY

26 )( BACBX

ACCBBAY

27 BABAX

DCBAY

28 )( ACBCAY

CADACBAX

29 CBBAACX ))((

CBACXY

30 DCBCAX )(

ABDCBY )(

35

Page 36: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

Приложение 4. Титульный лист ИДЗ Министерство образования Российской

Федерации Тольяттинский государственный университет

Кафедра «Компьютерные технологии и обработка материалов давлением»

ИДЗ. Модуль №1. по дисциплине «Информатика»

Выполнил: Группа: Проверил:

Тольятти - 2007

36

Page 37: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

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

№ н

едел

и Наименование учебного

мероприятия(под

руководством)

Тема учебного мероприятия

7Лекция

(преподаватель)Лекция №1. «Основные конструкции языка Паскаль».

7Самостоятельное

изучение материала

Подготовка к практическим занятиям в интегрированной среде Турбо-Паскаль. Изучение теоретического материала. Раздел 6. «Знакомство со средой Турбо-Паскаль» (стр. 38).

7Косультация

(тьютор)

Знакомство с маршрутной картой Модуля 2. Получение консультации у тьютора по выполнению практических заданий. Работа в интегрированной среде Турбо-Паскаль.

8Лекция

(преподаватель)Лекция №2. «Типы вычислительных процессов».

8Самостоятельное

изучение материала

Подготовка к практическому занятию. Изучение теоретического материала: Разделы 5, 6, 7. «Основы алгоритмизации» (стр. 42). Раздел 8. «Программирование на языке Паскаль» (стр. 47). Ответить на вопросы самоконтроля в конце каждой главы.

8Практическое

занятие(преподаватель)

Выполнить практическое задание №4 по теме «Типы вычислительных процессов. Следование». Варианты заданий приведены в Приложении 5. Пройти тренинг по теме «Арифметические выражения», «Математические функции»( http://inf.tltsu.ru/res/strogov/). Выполненное задание и результаты тренинга предъявить преподавателю.

9Самостоятельное

изучение материала

Подготовка к практическому занятию. Изучение теоретического материала: Раздел 9. «Ветвления» (стр. 58). Ответить на вопросы самоконтроля в конце главы.

9Практическое

занятие(преподаватель)

Выполнить практическое задание №5 по теме «Типы вычислительных процессов. Ветвления». Варианты заданий приведены в Приложении 6. Пройти тренинг по теме «Условный оператор»(http://inf.tltsu.ru/res/strogov/). Выполненное задание и результаты тренинга предъявить преподавателю.

10Самостоятельное

изучение материала

Подготовка к практическому занятию. Изучение теоретического материала: Раздел 10."Циклические вычислительные процессы" (стр. 64). Ответить на вопросы самоконтроля в конце главы.

10Практическое

занятие(преподаватель)

Выполнить практическое задание №6 по теме «Типы вычислительных процессов. Циклы». Варианты заданий приведены в Приложении 7. Пройти тренинг по теме «Циклы».( http://inf.tltsu.ru/res/strogov/). Выполненное задание и результаты тренинга предъявить преподавателю.

10Лекция

(преподаватель)Лекция №3. «Операции с индексированными переменными».

11 Самостоятельное изучение материала

Подготовка к практическому занятию. Изучение теоретического материала: Раздел 11. «Операции с индексированными переменными. Одномерные массивы» (стр. 72). Ответить на

37

Page 38: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

вопросы самоконтроля в конце главы.

11Практическое

занятие(преподаватель)

Выполнить практическое задание №7 по теме «Операции с индексированными переменными. Одномерные массивы». Варианты заданий приведены в Приложении 8. Выполненное задание предъявить преподавателю.

11Лекция

(преподаватель)Лекция №4. «Подпрограммы. Функции и процедуры».

12Самостоятельное

изучение материала

Подготовка к практическому занятию. Изучение теоретического материала: Раздел 12. «Двумерные массивы. Матрицы» (стр. 80). Ответить на вопросы самоконтроля в конце главы.

12Практическое

занятие(преподаватель)

Выполнить практическое задание №8 по теме «Операции с индексированными переменными. Двумерные массивы. Матрицы». Варианты заданий приведены в Приложении 9. Выполненное задание предъявить преподавателю.

13Самостоятельное

изучение материала

Подготовка к практическому занятию. Изучение теоретического материала: Раздел 13. «Подпрограммы» (стр. 91). Ответить на вопросы самоконтроля в конце главы.

13Практическое

занятие(преподаватель)

Выполнить практическое задание №9 по теме «Подпрограммы. Процедуры и функции». Варианты заданий приведены в Приложении 10. Выполненное задание предъявить преподавателю.

14Самостоятельное

изучение материала

Подготовка к ИДЗ №2. Изучение теоретического материала: Раздел 14. «Обработка строк текста. Символьные и строковые переменные» (стр. 99).Раздел 15. «Структурированные типы данных» (стр. 106).Ответить на вопросы самоконтроля в конце главы.

14Консультация

(тьютор)Получение консультации у тьютора по выполнению ИДЗ №2. Утвердить у тьютора структуру записей.

15 Практическое работа

Выполнение ИДЗ №2 по теме «Массивы записей». Подготовка к сдаче ИДЗ.

15Практическое

занятие(преподаватель)

Сдача преподавателю невыполненных в срок практических заданий

16Практическое

занятие(преподаватель)

Сдать преподавателю ИДЗ №2.

16

Промежуточное тестирование по

модулю №2 через ЦТ

Пройти промежуточное тестирование по Модулю 2 в центре тестирования.

17

Итоговое тестирование по курсу через ЦТ

(экзамен)

Итоговое тестирование по курсу через ЦТ (экзамен).Оценки в зачетную книжку выставляются по ведомости центра тестирования в деканате.

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

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

38

Page 39: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

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

Алгоритмический язык Паскаль был разработан в 1973 г. швейцарским математиком Никлаусом Виртом для обучения студентов структурному программированию. Язык получил свое название в честь французского математика Блеза Паскаля (1623-1662 гг.). В 1984 г. бывший студент Никлауса Вирта, французский математик Филип Кан, основал фирму Borland International и начал продавать по почте разработанную им программу – среду программирования Turbo Pascal для ПК. Предлагаемый им продукт был настолько удачен, что только за первый месяц продаж поступили заказы общей стоимостью 150 000$. Турбо Паскаль вскоре вывел фирму Borland в ряды основных производителей программного обеспечения.

Общеизвестна роль вычислительной техники в различных сферах человеческой деятельности. Особенно популярны персональные компьютеры (ПК), обладающие высокой производительностью и не требующие от пользователя глубокого знания процессов, происходящих в компьютере во время вычислений. Без преувеличения можно сказать, что появление ПК в середине 70-х годов и бурное их распространение в наше время открыло новую эру в массовом использовании вычислительной техники людьми всех рангов и профессий. Человечество заметно переходит от экономики, основанной на тяжелой промышленности, к экономике с компьютеризированной технологией, средствами связи и услугами.

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

6. Знакомство со средой Турбо Паскаль6.1. Общие сведения

Большую часть мирового парка ПК составляют компьютеры, у которых внутренний язык микропроцессора совместим с набором команд первых персональных компьютеров фирмы IBM (IBM PC), что позволять выполнять на них одни и те же программы. Такие компьютеры называют IBM-совместимые. Их насчитывается сотни миллионов, и благодаря своей массовости они стали стандартом ПК. Массовость IBM-совместимых ПК обусловило то, что фирмы-разработчики программ стали ориентировать свою продукцию на эти компьютеры, и в результате программное обеспечение, ориентированное для использования на IBM-совместимых ПК, также стало стандартом и используется во всем мире. Примером таких программ, ставших мировым стандартом, является система программирования Турбо-Паскаль.

Поясним понятие «система программирования». Как известно, программа, написанная на каком-либо алгоритмическом языке, перед выполнением на компьютере должна быть транслирована в машинные коды, для чего используются программы-переводчики (трансляторы). В середине 80-х годов разработчики программного обеспечения перешли от создания чистых трансляторов к более удобным для пользователей системам программирования, включавшим в себя, помимо транслятора, удобные средства написания, редактирования и отладки программ. К наиболее известным системам программирования относятся Turbo Pascal, Turbo C, Turbo Basic, Quick Basic и др. Система программирования может рассматриваться как компилятор соответствующего языка, дополненный инструментальной оболочкой для быстрой разработки программ.

39

Page 40: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

6.2. Запуск Турбо-Паскаля на выполнениеТурбо-Паскаль – это многофайловая программа, состоящая из одного главного файла и

нескольких вспомогательных, подключаемых к работе по мере необходимости. Обычно все файлы, относящиеся к Турбо-Паскалю, хранятся на диске в каталоге под произвольным именем: Pascal, T_Pascal, TP55, TP70 и т.п. Файлы системы должны сохранять имена, данные им фирмой-разработчиком. Основные файлы, обеспечивающие работу Турбо-Паскаля, достаточно малы, что позволяет хранить их на одной дискете. Как минимум, требуются 2 файла – Turbo.exe и Turbo.tpl. Это базовый набор для разработки программ, не использующих графический режим. Для работы Турбо-Паскаля требуется не менее 512 Кбайт оперативной памяти.

Главный файл, TURBO.EXE, хранит ядро системы Турбо-Паскаль. Вспомогательный файл TURBO.TPL содержит резидентную библиотеку модулей.

Чтобы инициировать работу Турбо-Паскаля, надо запустить программу из файла Turbo.exe на выполнение. Это можно сделать, либо введя с клавиатуры имя TURBO в командной строке DOS, либо с помощью Norton Cоmmander'a. В последнем случае надо в текущем каталоге поместить курсор на имя файла Turbo.exe и нажать клавишу «Enter». При запуске Турбо-Паскаля, на экране появляется следующее изображение:

Вид основного экрана Турбо-ПаскаляЭкран Турбо-Паскаля содержит 4 основные части, сверху вниз: главное меню (File, Edit, Run, Compile, Options, Debug, Break/Watch); окно редактирования (Edit) со служебной информацией редактора вверху; окно просмотра (Watch) для отладки программ; строку подсказки о назначении функциональных клавиш (F1..F10).

6.3. Назначение функциональных клавиш системы Турбо-ПаскальФункциональные клавиши, помеченные надписями F1...F10, занимают на клавиатуре

верхний ряд. С каждой из этих клавиш связана определенная команда, управляющая средой (например, считывание информации с диска или запись ее на диск). Поскольку число потребных команд может быть больше имеющегося количества функциональных клавиш, назначение F-клавиш можно разнообразить при помощи двух специальных клавиш: Alt (Alternative, дополнительная) и Ctrl (Control, управление). Клавиши Alt и Ctrl используются в сочетании с функциональными клавишами подобно клавишам смены регистра: сначала нужно нажать Alt или Ctrl, а затем, не отпуская ее, нажать нужную функциональную клавишу.

Функциональные клавиши имеют следующее назначение:

40

Page 41: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

F1 – вызов подсказки (справочной программы);F2 – запись текста редактируемой программы в текущий каталог, в файл под именем,

указанным в правом верхнем углу экрана редактора EDIT;F3 – загрузка (считывание) текста программы с дискового файла в окно редактора;F4 – выполнение программы от начала до строки, на которой расположен курсор;F5 – окно редактора раскрывается на весь экран (повторное нажатие возвращает исходное

изображение);F6 – меняет окно редактора EDIT на окно отладки WATCH;F7 – трассировка программы – при каждом повторном нажатии этой клавиши выполняется

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

F8 – то же, что и F7, но при выполнении процедуры последняя будет выполняться за один шаг, как строка;

F9 – компилировать программу, текст которой находится в окне редактирования, но не выполнять ее;

F10 – переход из окна редактирования в меню Турбо-Паскаля (меню занимает верхнюю строку экрана).

6.4. Работа с текстовым редактором Турбо-ПаскаляПри запуске Турбо-Паскаля, окно редактирования EDIT может быть заполнено чьей-либо

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

войти в меню, нажав F10; выбрать клавишами управления курсором пункт меню «File» и нажать клавишу «Enter»; в развернувшемся дополнительном меню выбрать клавишами управления курсором

пункт меню «New» и нажать «Enter»; окно EDIT очистится. Признак готовности редактора к работе – мигающий курсор в верхнем левом углу окна Edit.

Окно редактора имитирует длинный широкий лист бумаги, фрагмент которого виден в окне. Если курсор доходит до нижнего края окна, то лист «прокручивается» на строку вверх. Если курсор достиг правой границы окна, окно по мере ввода последующих символов будет смещаться вправо. В текстовом редакторе Турбо-Паскаля можно набирать текст строками не длиннее 245 символов.

Вертикальный размер листа с набираемым текстом ограничивается лишь общим количеством символов в тексте, которое должно быть не более 65535. Следует помнить, что компилятор Турбо-Паскаля воспринимает строки не длиннее 126 символов, поэтому при написании программы бессмысленно набирать строки длиной более 126 символов – все лишнее будет игнорироваться.

Текст можно набирать русскими либо латинскими буквами, в виде цифр и других символов, доступных на клавиатуре. Курсор указывает место на экране, куда будет помещен очередной символ. Для удаления предыдущего введенного символа используется клавиша «←» (Backspace). Если требуется удалить символ, расположенный над курсором, надо нажать клавишу «Delete» или «Del». Наряду с видимыми символами, в текст программы вставляются невидимые символы: пробел и EOL (End Of Line – признак окончания строки, находится в конце каждой строки). Невидимые символы, как и видимые, можно стирать или забивать другими символами. При стирании EOL соседние строки сливаются в одну. При вставке символа EOL в какую-либо строку, она делится на две строки. Невидимый символ EOL помещается в текст нажатием клавиши Enter.

41

Page 42: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

Редактируя текст, можно полностью удалить строку, на которой находится курсор, нажав сочетание клавиш «Ctrl» и «Y». Восстановить только что измененную строку можно, нажав сочетание клавиш «Ctrl», «Q» и «L».

Клавиши перемещения курсора переместить курсор на символ влево – клавиша «стрелка влево»; на символ вправо – «стрелка вправо»; на строку вверх – «стрелка вверх»; на строку вниз – «стрелка вниз»; в начало строки – клавиша «Home»; в конец строки – клавиша «End»; на страницу вверх – клавиша «Page Up»; на страницу вниз – клавиша «Page Down»; в начало текста – сочетание клавиш «Ctrl» и «Page Up»; в конец текста – сочетание клавиш «Ctrl» и «Page Down».

Работа с блоками текстаРедактор Турбо-Паскаля позволяет оперировать кусками (блоками) текста: копировать,

удалять их, перемещать и т.п. Прежде чем манипулировать с блоком, его сначала надо выделить. Блок выделяется:

курсор помещается в начало выделяемого участка текста, затем нажимается сочетание клавиш «Ctrl», «K», «B»;

затем курсор помещается в конец выделяемого текста и нажимается сочетание клавиш «Ctrl», «K».

Намеченный участок текста будет выделен инверсным изображением (темные буквы на светлом фоне). Чтобы отменить выделение блока, следует нажать «Ctrl», «K», «H». После того, как блок выделен, с ним можно выполнять ряд операций:

1. Копирование блокаПоместить курсор туда, куда следует скопировать блок, нажать «Ctrl», «K», «C».2. Перемещение блокаПоместить курсор в то место программы, куда следует перенести блок, нажать «Ctrl», «K»,

«V».3. Удаление блокаНезависимо от местоположения курсора, для удаления выделенного блока надо нажать

«Ctrl», «K», «Y».Поместить курсор в нужное место текста, нажать «Ctrl», «K», «R», после чего последует

запрос об имени файла; когда имя будет указано, содержимое файла поместится в то место программы, где стоял курсор.

Основные клавиши работы с Турбо-Паскалем:F10 – начать работу с главным меню;ESC – выйти из меню обратно в окно EDIT;F2 – записать текст программы из окна EDIT в дисковый файл;F3 – загрузить текст из дискового файла в окно редактора;Ctrl/F9 (то есть одновременное нажатие клавиш «Ctrl» и «F9») – компилировать программу в

оперативной памяти, после чего запустить программу на выполнение;Alt/X – завершить работу с Турбо-Паскалем, выйти в DOS;Alt/F5 – переход в окно пользователя, повторное нажатие этих клавиш вернет окно EDIT.

42

Page 43: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

Окно пользователя (User Screen) – окно, в котором выполняется составленная пользователем программа. По завершению программы, на экране моментально высвечивается окно EDIT, которое закрывает собой User Screen с выведенными на него результатами расчета. Чтобы иметь возможность детально ознакомиться с результатами работы программы, нажимаем Alt/F5. После этого окно EDIT с текстом программы исчезнет, его заменит изображение экрана с результатами расчета. Повторное нажатие Alt/F5 вернет на экран текст программы.

7. Основы алгоритмизации7.1. Алгоритм

Понятие алгоритма такое же основополагающее для информатики, как и понятие информации. Название "алгоритм" произошло от латинской формы имени величайшего среднеазиатского математика Мухаммеда ибн Муса ал-Хорезми (Alhorithmi), жившего в 783—850 гг. В своей книге "Об индийском счете" он изложил правила записи натуральных чисел с помощью арабских цифр и правила действий над ними "столбиком", знакомые теперь каждому школьнику. В XII веке эта книга была переведена на латынь и получила широкое распространение в Европе.

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

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

доказано его отсутствие; однозначность — при повторном применении алгоритма к тем же исходным данным

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

себя как элементы языка программирования, так и фразы естественного языка, общепринятые математические обозначения и др.);

программная (тексты на языках программирования).При графическом представлении алгоритм изображается в виде последовательности

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

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

Блок Назначение

Начало, конец алгоритма

Ввод значений переменных с клавиатуры

43

Page 44: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

Блок действий, присвоение переменным вычислительных значений

Проверка условия и выбор одного из двух возможных путей дальнейшего

решения

Блок цикла

Обращение к подпрограмме

Вывод результатов на печать

Алгоритмы можно представлять как некоторые структуры, состоящие из отдельных блоков. Логическая структура любого алгоритма может быть представлена комбинацией трех базовых структур: следование, ветвление, цикл. Характерной особенностью базовых структур является наличие в них одного входа и одного выхода. При разработке блок-схемы допускается делать любые записи внутри блоков, однако эти записи должны содержать достаточно информации для выполнения очередных действий.

7.2. Алгоритмические структурыСледование – действия выполняются строго в том порядке, в котором записаны. Образуется

последовательностью действий, следующих одно за другим.Задача.

Вычислить и вывести значение функции )(cos4 2 xay . Исходные данные x и а ввести с клавиатуры.

у

а,х

начало

y:=4*cos2(a**x)

конец

44

Page 45: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

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

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

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

a,b

a,b

начало

a:=0

конец

a<=b

a:=a*2 b:=b*2

да

нет

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

Циклические структуры бывают трех типов:с параметром цикла - выполнять тело цикла для всех значений некоторой переменной

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

Составить программу расчета значений функции )2cos( xхy на интервале [a;b] в n равностоящих точках. Границы интервала и количество точек ввести с клавиатуры.

Представлены три блок-схемы:а) с параметром цикла;

45

Page 46: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

x,y

a,b,n

начало

y:=x*sin(2*pi*x)

конец

dx:=(b-a)/(n-1) x:=a

i:=1 to n

x:=x+dx

б) с предусловием;

x,y

a,b,n

начало

y:=x*sin(2*pi*x))

конец

dx:=(b-a)/(n-1) x:=a

x:=x+dx

x<=b

да

нет

в) с постусловием;

46

Page 47: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

x,y

a,b,n

начало

y:=x*sin(2*pi*x)

конец

dx:=(b-a)/(n-1) x:=a

x:=x+dx

x>b да

нет

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

Задача.Вывести на экран таблицу умножения.

i:=1 to 9

j:=1 to 9

i*j

начало

конец

Самоконтроль1. Что понимают под алгоритмом?2. Каковы способы записи алгоритмов?

47

Page 48: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

3. В чем заключаются основные свойства алгоритма?4. Перечислите основные алгоритмические структуры и опишите их.5. Каковы основные принципы разработки алгоритмов?6. Назовите основные этапы составления алгоритмов.

8. Программирование на языке PascalПрограмма – это запись алгоритма на языке программирования, приводящая к конечному

результату за конечное число шагов.Этапы создания программного продукта: постановка задачи; разработка алгоритма; запись алгоритма на языке программирования; отладка и тестирование программы.Программа — это детальное и законченное описание алгоритма средствами языка

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

Алгоритмический язык Паскаль был разработан швейцарским ученым Никлаусом Виртом в начале 70-х годов специально для целей обучения.

Основные элементы программирования: ввод информации; хранение информации; команды обработки (операции); вывод данных; проверка условий; повторные выполнения (циклы); подпрограммы (процедуры).

8.1. Алфавит языкаПрограмма на Паскале записывается в виде последовательности символов, образующих

алфавит языка. Алфавит включает: заглавные и прописные латинские буквы; арабские цифры; знаки препинания ( : ; , . ); знаки операций; некоторые спецсимволы.

8.2. Арифметические выражения и правила их записиАрифметические выражения строятся из простых операндов связанных знаками

арифметических операций:y = a + b*2

48

Page 49: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

Знаки операцийdiv – деление нацело;mod – остаток от деления;* – умножение;/ – деление;- – вычитание;+ – сложение.

Операции div и modЦелочисленное деление div отличается от обычной операции деления тем, что возвращает

целую часть частного, а дробная часть отбрасывается.Например:17 div 3 = 58 div 2 = 41 div 5 = 0Взятие остатка от деления mod вычисляет остаток, полученный при выполнении

целочисленного деления.Например:17 mod 3 = 28 mod 2 = 01 mod 5 = 1При выполнении арифметических операций соблюдаются следующие правила:1. два знака не могут следовать один за другим;2. при выполнении арифметических операций соблюдается следующая иерархия (приоритет

выполнения): стандартные функции; div, mod; *, / +, -3. изменить иерархию можно с помощью скобок.

8.3. Типы данныхПеременные на языке Паскаль задаются своими именами (63 символа).Имена переменных могут содержать малые и большие буквы латинского алфавита, арабские

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

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

Целые типы

Название целого типа Диапазон значенийПамять(байт)

Shortint -128127 1

49

Page 50: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

(короткие целые)Longint

(удвоенные целые)-231231-1 4

Integer(обычные целые)

-3276832767 2

word(целые положительные)

065535 2

Byte(целые короткие положител.)

0255 2

Верхнее граничное значение целочисленных переменных задано в Паскале как константа и имеет соответствующее имя:

Maxint = 32767 (215-1)Maxlongint = 231-1

Логический типboolean - логические переменные занимают 1 байт памяти, могут принимать 2 значения: True (истина) False (ложь)Логические переменные могут использоваться только в логических выражениях.Над данными логического типа нельзя выполнять обычные арифметические операции, для

них определены логические операции и операции сравнения.Для идентификаторов имеет место:True> FalseНад логическими переменными возможны следующие логические операции:and (и)or (или)not (не)

Символьный типChar – символьные переменные, служат для хранения одного символа (буква, цифра, знаки

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

Строковый типString – строковые переменные, служат для хранения любой цепочки символов и занимают

255 байт памяти.

Вещественный типreal – вещественные переменные, занимают 6 байт памяти (11 знаков после запятой).Вещественные числа могут быть заданы в форме: с фиксированной точкой0.5 +5.0 -133.15 с плавающей точкой3.5Е2 0.45Е-3Форма с плавающей точкой используется для изображения очень больших или очень

маленьких чисел.

8.4. Стандартные функцииИмя функции Математическая запись Тип результата

50

Page 51: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

sin (x) sin x вещ.cos (x) cos x вещ.

arctan(x) аrctgx вещ.exp (x) ex вещ.ln (x) ln x вещ.

pi 3.14 вещ.abs (x) │x│ вещ.sqr (x) x2 вещ.

sqrt (x) x вещ.

trunc (x) целая часть числа Цел.int (x) целая часть числа вещ.

round (x) ближайшее целое число (математическое округление) цел.

frac (x) дробная часть числа вещ.

random (x)генератор случайных чисел от 0 до

x; если x отсутствует – диапазон чисел 01

вещ.

odd (x) возвращает TRUE, если x – число нечетное лог.

Например:trunс(3.7) = 3trunc(3.1) = 3trunc(-3.7) = -4int (3.4) = 3int (3.7) = 3int (-3.4) = -3round (3.14) = 3round (3.74) = 4round (-3.14) = -3Аргументом стандартной функции может быть переменная, константа, выражение, стоящее

справа от имени в скобках. Для тригонометрических функций аргумент задается в радианах.При написании формул в программе на Паскале необходимо учитывать все правила записи

арифметических выражений.Например:

aacbbx

242

.

Данное выражение в программе на языке Паскаль будет выглядеть:x:= ( -b + sqrt(sqr(b)–4*a*c) )/( 2*a ).Паскаль не допускает смешенных выражений. Допустимы выражения, в которых слева от

знака присваивания – вещественная переменная, справа – целое выражение.Если в выражении есть хотя бы одна вещественная переменная, все выражение будет

вещественным.Некоторые полезные формулы

51

Page 52: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

1. Формула возведения числа в любую степень:ax=ex*ln (a)=exp(x*ln(a)).

2. Формула перевода числа из градусов в радианы:x = x * pi/180.

3. Тригонометрические функции: tg x = sin x/cos x; ctg x = cos x/ sin x.

4. Логарифмические функции:

.

5. Обратные тригонометрические функции:

21arctgarcsin x

x

x

;

xx21arctg xarccos

;

x1arctg arcctg(x)

.6. Гиперболические функции:

2x ch

xx ee

; 2x sh

xx ee

; chxshx

x th; shx

chxx cth

.

8.5. Структура программы на языке ПаскальПрограмма – это последовательность инструкций компьютеру приводящих к конечному

результату за конечное число шагов.Программа, написанная на алгоритмическом языке, переводится на язык машинных команд:program <имя>;<описательная часть>;<раздел функций и процедур>;begin<исполнительная часть>;end.Зарезервированные слова: program <имя> – необязательная строка; begin – начало; end – конец.<имя> – присваивается составителем программы (строится по правилам составления

переменных).

8.6. Описательная часть программыВсе переменные, используемые в программе, должны быть описаны.Описание начинается со служебного слова var.program ff;

52

Page 53: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

vari,n: integer;x,y,z: real;begin;...Список переменных от типа отделяется «:», одно описание от другого – «;», список

переменных перечисляется через «,». Если в программе используются метки, то они описываются с помощью служебного слова label. Метки могут быть числовые и символьные.

В программах на Паскале можно использовать константы, которые описываются с помощью служебного слова const.

constn=100;…Переменная-константа (n) более в программе не описывается, её тип определяется

присвоенным ей числовым значением.Для определения пользовательского типа данных используют служебное слово – type.typein=integer;vara,b: in;…С помощью служебного слова uses можно подключать к программе стандартные

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

Например, для использования функции очистки экрана (clrscr), к программе подключают стандартный модуль crt.

usescrt;…

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

отделяются один от другого – «;».Операторы бывают трех типов:пустой оператор;простой оператор;составной оператор.Структура составного оператора:begin<оператор 1>; <оператор 2>; …<оператор N>;end;

8.8. Оператор присваивания<переменная> := <выражения>;где «:=» – знак присваивания.

53

Page 54: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

Следующие выражения читаются одинаковоx:=2; x:= 2;y:=d+beta; y:=d+Beta;Заглавные и прописные буквы в программе интерпретируются одинаково.

8.9. Операторы ввода-вывода

Оператор вводаreadln (<список ввода>);где readln – имя оператора ввода;<список ввода> – список имен переменных, разделенных запятыми.Например:readln (a,b,c);По данному оператору с клавиатуры необходимо ввести значения переменных a, b и c.readln;По этому оператору компьютер ожидает нажатия любой клавиши. Используется как

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

Оператор выводаwriteln (<список вывода>);где writeln – имя оператора вывода;<список вывода> – список переменных вывода, разделенных запятыми.writeln;Оператор writeln без списка вывода можно использовать для пропуска пустых строк при

оформлении вывода результатов.В операторе writeln можно использовать формат вывода значений переменных.Например:writeln ( ’ a = ’, a:8:3, ’ b = ’ , b:4);Первая цифра (8) после имени переменной вещественного типа определяет количество

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

При a =341.154, b = 2 результат на экране будет выглядеть:a = _341.154 b = ___2При a = 1.3 , b = 144 результат на экране будет выглядеть:a = ___1.300 b = _144

8.10. Комментарии в программеВ любом месте программы можно записать пояснительный текст – комментарий. Он не

обрабатывается во время выполнения программы. Текст комментария ограничен символами { }.…{ Пояснения к программе – комментарии }…Комментарии удобно использовать в программе при отладке для временного исключения

группы операторов, заключив их в фигурные скобки.

Задача.54

Page 55: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

Даны два целых числа. Найти их полусумму и произведение.рrogram primer;usescrt;vara, b, p: integer;s: real;beginсlrscr; {функция очистки экрана}{вывод сообщения на экран}writeln (’ введите a, b ’);{ввод данных с клавиатуры}readln ( a, b);s: = (a + b)/2;p: = a*b;{вывод результатов}writeln (’ s = ’, x:8:3, ’ ’, ’p = ’, y:4);readln;end.Ключевые слова горят ярче, чем остальной текст программы.

Пример программы линейной структурыЗадача.Математическая формулировка задачи: Вычислить и вывести на печать значение функции y.

Исходные данные x, a и b ввести с клавиатуры.

xabbay

cos12)2(

1. Таблица идентификаторов.№ Наименование переменной Обозначения в программе1 Функция y2 Аргумент x3 Переменная 1 a4 Переменная 2 b

2. Листинг программы.рrogram lab1;usescrt;vara, b: integer;y,x: real;

55

Page 56: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

begin{оператор очистки экрана}сlrscr;{вывод сообщения на экран}writeln (’ введите x,a, b ’);{ввод данных с клавиатуры }readln ( x,a, b);y:=(a+2*b)*sqrt(a+2*b)*(1/cos(x));{вывод результатов вычисления}writeln (’ y=’, y:8:3);readln;end.

Вопросы для самоконтроля1. Что такое программа?2. Какие символы могут содержать имена переменных?3. Какие типы стандартные переменных допустимы на языке Паскаль?4. Сколько байт памяти занимают переменные типа real ?5. Из каких частей состоит структура программы на Паскале.6. Что определяет объем памяти, отводимой под каждую переменную?7. Что такое оператор?8. Какие типы операторов допустимы на Паскале?9. Как операторы отделяются друг от друга?10. Для чего используются комментарии в программе?

8.11. Методические указания для выполнения практического задания №4. «Следования»

Цель работы: Ознакомиться со структурой программы на языке Паскаль, основными операторами, алгоритмами линейной структуры..

Задание:1. В приложении 5 выбрать вариант задания.2. Выполнить практическое задание №4, используя пример программы линейной

структуры.3. Составить блок-схему алгоритма.4. Написать программу и отладить ее по заранее подготовленному тесту.5. Оформить работу в тетради для практических работ.6. Результат выполнения программы предъявить преподавателю.7. Ответить на вопросы самоконтроля.8. Защитить выполненную работу у преподавателя.

Приложение 5. Таблица вариантов заданийВычислить и вывести на печать значение функции Y. Исходные

данные x, a и b ввести с клавиатуры.

1 babax

y

sin1

56

Page 57: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

2 eabtgxay b )ln()(

3 bax

aey a ))sin(

1(

4ex

abyb

1)

)sin(1(ln

5 tgxabay b 1)(

6bbatgxy )(

7 )()ln()cos(

1 baabx

y

8 )ln()sin(

1 baex

y b

9 )ln()1( baatgxy b

10 ebax

aby b ))cos(

(

11 bx

bay lnsin

1)(

12 etgxbay b )2()1(

13 eabtgxay b )ln()(

14x

abbaycos

12)2(

15e

tgxbaya

1)(

16bxaxy)(

2sin

17 )4sin()1( xey ab

18 xeby a 2sin22

19 )2cos()1( 5.0 xeby a

20 exxy ab )2cos()2sin1(

21 )(cos4 25.0 xaey b

22a

xyb

1

2sin

57

Page 58: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

23 eabtgxay b )ln()(

24 bax

aey a ))sin(

1(

25 )ln()sin(

1 baex

y b

26bbatgxy )(

27 etgxbay b )2()1(

28 )ln()1( baatgxy b

29 )()ln()cos(

1 baabx

y

30 tgxabay b 1)(

9. ВетвленияОчень часто встречаются ситуации, когда требуется выбрать между двумя или более

вариантами действий в зависимости от заданного условия. Такая алгоритмическая конструкция называется ветвлением.

9.1. Операторы условия и переходаСтроки программы на Паскале не нумеруются. Отдельные строки в программе могут иметь

метки, к которым можно переходить.Метки должны быть описаны в программы с помощью ключевого словаlabelN1, N2 …;где N1, N2, … – метки.Метками могут быть идентификаторы или целые числа (положительные) в диапазоне 0

9999.Оператор перехода по метке:goto N;где N – метка.Фрагмент программы с использованием меток:program pr;label 3;varx, y: real;begin3: readln (x, y);...goto 3;...

58

Page 59: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

end.

Логический операторif < условия > then P1 [else P2 ];(если) (то) (иначе)[ else P2 ] – необязательная часть оператора.Где <условие> – логическое выражение;P1, P2 – простые или составные операторы.По этому оператору:если <условие> – «истинно» (true), то выполняется P1, если – «ложно» (false), то

выполняется P2. Перед структурой else «;» не ставится.Если else отсутствует и <условие> «ложно», то управление передается следующему

оператору.Приведем примеры использования оператора:1. наибольшее из значений двух переменных вывести на печать:if a>b then writeln(‘a=’,a) else writeln(‘ b=’,b);2. в зависимости от значения переменной, вычислить значение функции по одной из

формул:If x>=0 then y:= sin(x) else y:= -sin(x);3. в зависимости от значения переменной, выполнить определенные действия:if a<0 thenbeginb:=2*a;writeln(b);endelsebeginb:=a/2;goto 3;end;

Операции отношенияОперация Название

= Равно<> Не равно> Больше< Меньше>= Больше или равно<= Меньше или равно

Логические операцииОперация Название

and Иor Или

В операторе if можно одновременно проверять несколько условий.Например:

59

Page 60: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

if (a>b)and(a>c) then writeln(’a – max’);При проверке нескольких условий в одном операторе, каждое условие записывается в

скобках.Паскаль допускает вложенность операторов if.Например:if n>0 thenif (m div n)>n then m:= m - nelse m:= m + n;Структура else всегда относится к ближайшему оператору if.Если n>0 и (m div n)>n будет выполнено m:= m-n.Если n>0, но (m div n)≤n будет выполнено m:= m + n.Если n≤0 – переход к следующему оператору.Задача.Найти максимальное число из трех вещественных чисел.program max;vara, b, c: real;beginwriteln (’введите a, b, c’); readln (a, b, c);if a>=b thenif a>=c then writeln (’max - a’)else writeln (’max - c’)elseif b<=c then writeln (’max - b’)else writeln (’max - c’) ;readln;end.Второй способ решения этой задачи:program max_1;vara, b, c: real;beginwriteln (’введите a, b, c’);readln (a, b, c);if (a>=b) and (a>=c) then writeln (’max-a’);if (b>=a) and (b>=c) then writeln (’max-b’);if (c>=a) and (c>=b) then writeln (’max-c’);readln;end.Если a=b=c - то все три оператора if будут выполнены.

9.2. Оператор выбораЭтот оператор предназначен для замены конструкций из вложенных if.Структура:case N of

60

Page 61: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

N1: P1;N2: P2;NN: PN;[else P;]end;[else P;] – необязательная часть оператора.где N – целочисленная переменная, или выражение целого типа;N1, N2 , … NN – возможные значения переменной N;P, P1, P2, … PN – простые или составные операторы.По этому оператору:если значение N = N1, то выполняется P1 (после чего управление передается оператору,

следующему за оператором case...of);если значение N = N2, то выполняется P2, (после чего управление передается оператору,

следующему за оператором case...of);…если N не принимает ни одного из перечисленных значений, управление передается

оператору P;если структура else отсутствует и N не принимает ни одного из перечисленных значений,

управление передается следующему за case...of оператору.Например:case N of1, 2, 5: writeln (’a’);7 .. 10: writeln (’b’);end;1, 2, 5 – перечисляемые значения разделяются « , » .7 .. 10 – интервал задается начальными и конечными значениями через «..».

Пример программы разветвленной структурыЗадача.1. Вычислить значение функции:

y=

0,0900,sin

xxx

.Значение аргумента х в градусах ввести с клавиатуры.2. Таблица идентификаторов

№ Наименование переменной Обозначения в программе1 Функция y2 Аргумент x

3. Листинг программы.program lab2;usescrt;varx, y: real;beginclrscr;

61

Page 62: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

writeln (’Введите x’);readln (x);if x>90 then writeln(’функция не определена’)else{составной оператор}beginif x<0 then y: = 0else y: = sin (x*pi/180);writeln (’y = ’,y:8:3);end;readln;end.

Вопросы для самоконтроля1. Какие алгоритмические конструкции называются ветвлениями?2. Для чего используют оператор goto?3. Почему при использовании нескольких условий в одном операторе if … then … else,

каждое условие заключается в круглые скобки?4. Перечислите основные логические операции.5. Перечислите основные операции отношения.6. В каких случаях прибегают к использованию оператора case … of ?

9.3. Методические указания для выполнения практического задания №5. «Ветвления»

Цель работы: Ознакомиться с алгоритмами разветвленной структуры, логическим оператором, оператором выбора.

Задание:1. В приложении 6 выбрать свой вариант задания.2. Выполнить практическое задание №5, используя пример программы разветвленной

структуры.3. Составить блок-схему алгоритма.4. Написать программу и отладить ее по заранее подготовленному тесту.5. Оформить задание в тетради для практических занятий.6. Результат выполнения программы предъявить преподавателю.7. Ответить на вопросы самоконтроля.8. Защитить выполненную работу у преподавателя.

Приложение 6. Таблица вариантов заданийВариант Задание

1 Переменной k присвоить номер четверти плоскости, в которой находится точка с координатами x и y (xy=0).

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

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

62

Page 63: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

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

6 Даны действительные числа х, у, и z. Вычислить max (x + y + z, xyz).

7 Поменять местами значения переменных a, b, c не равных между собой таким образом, чтобы а > b > c.

8 Меньшее из двух значений переменных вещественного типа заменить нулем, а в случае их равенства – заменить нулями оба.

9

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

10 Наибольшее из трех различных значений переменных целого типа х, у и z уменьшить на 3.

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

12Если значение не равно 0 и при этом котангенс от меньше 0.5, тогда поменять знак у , а если значение равно 0, тогда присвоить значение 1.

13 Даны действительные числа х, у и z. Получить min (x,y,z).

14 Две точки плоскости заданы своими координатами. Определить, лежат ли они в одной или разных координатных плоскостях.

15 Даны действительные числа х, у, и z. Вычислить min2 (x + y + z / 2, xyz) +1.

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

17 Известно, что из четырех чисел одно отлично от трех других, равных между собой. Присвоить номер этого числа переменной n.

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

19

Даны действительные числа x и y. если x и y отрицательны, то каждое значение заменить его модулем; если отрицательно только одно из них, то оба значения увеличить на 0.5, в противном случае извлечь из каждого квадратный корень.

20Две точки плоскости заданы своими координатами. Определить, лежат ли они в одной (распечатать ее номер) или разных координатных четвертях.

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

22

Даны действительные числа a, b, c, d. Если a < b < c < d, то каждое число заменить небольшим из них; если a > b > c > d, то числа оставить без изменения; в противном случае все числа заменить их квадратами.

23 Даны действительные числа х, у и z. Получить min (x,y,z).

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

63

Page 64: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

25 Меньшее из двух значений переменных вещественного типа заменить нулем, а в случае их равенства – заменить нулями оба.

26 Даны действительные числа х, у и z. Обнулить отрицательные числа.

27 Известно, что из трех целых чисел одно отлично от трех других, равных между собой. Присвоить номер этого числа переменной n.

28Наименьшее из трех различных значений переменных целого типа х, у и z увеличить на 3.

29

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

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

10. Циклические вычислительные процессы10.1. Оператор цикла с параметром

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

При организации циклов необходимо: определить параметр цикла и его начальное значение; изменять значение параметра цикла на каждом шаге итерации; организовать проверку на выход из цикла.for i:=N to K do P;(для) (до) (выполнять)где i – параметр цикла;N, K – его начальное и конечное значение;P – простой или составной оператор;i,N,K – переменные или константы целого типа.Шаг изменения i равен 1.Если K<N, т.е. имеем дело с циклом с отрицательным шагом: (-1)for i:=N downto K do P;Оператор цикла с параметром автоматически устанавливает начальное значение параметра

цикла, изменяет значение параметра на шаг (+1 или -1), организовывает проверку на выход из цикла.

Задача.Вычислить сумму рядаS= 1+1/2+1/3+ … +1/50Выделим переменную для накапливания суммы – sum. Значение этой переменной

необходимо предварительно обнулить.program cikl;vari: integer;sum: real;begin

64

Page 65: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

sum: =0;for i: = 1 to 50 dosum: = sum + 1/i;Writeln (' сумма = ', sum);end.Оператор for применяют в тех случаях, когда значения параметра цикла целые и меняются с

шагом +1, -1.

10.2. Оператор цикла с постусловиемrepeatp1;p2 ;…pn ;until <условие>;где p1; p2 ; … pn; – любые операторы, образующие тело цикла.По этому оператору выполняется «тело цикла», а затем проверяется <условие>, если оно не

выполнилось, цикл повторяется. И так до тех пор, пока <условие> не будет выполнено. Необходимо помнить: если <условие> выполнилось c первого раза, цикл будет пройден один раз.

Задача.Вычислить значение функции:

y = a sin(x) , При x = 1.0 , с шагом x =0.2.program cikl_1;vary,a,x:real;beginwriteln(‘Введите а’);read(a);x:=0; repeaty:=a*sin (x); writeln (‘y=’,y:8:3,’ x=’,x:8:3); x:=x+0.2;until x>1;end.Действия, которые подчеркнуты, необходимы для организации цикла. Для организации

цикла необходимо выполнить три действия: восстановить начальное значение параметра цикла; сформировать текущее значение параметра цикла; организовать проверку на выход из цикла.В операторе for … to … do перечисленные действия выполняются автоматически. В

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

10.3. Оператор цикла с предусловиемwhile <условие> do P;где P – простой или составной оператор.По этому оператору проверяется <условие> и, если оно выполняется, то выполняется - P,

после чего опять проверяется <условие> и т.д.Итак, P выполняется до тех пор, пока выполняется <условие>.Если условие ни разу не выполнилось, P игнорируется, управление передается следующему

оператору.

65

Page 66: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

Задача.Вычислить сумму ряда:

,

где n! = 1*2*…*n.Значение аргумента х и количество итераций n ввести с клавиатуры.Введем дополнительную переменную для вычисления n! – f.program cikl_2;usescrt; var x,y : real; i,n,f : integer;begin writeln (' введите x, n '); read (x, n);y: =0; f: =1; i:=1;while i<=n do{ составной оператор }beginf:=f*I;y:=y+sin(i*x)/f;i:=i+1;end;writeln (' y = ', y:8:3);readln;end.

10.4. Вложенные циклыВ теле любого оператора цикла могут находиться другие операторы цикла. При этом цикл,

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

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

vari,j : byte;beginwriteln(‘ Таблица умножения ’);for i:=1 to 9 dobeginfor j:=1 to 9 dowriteln( i , ‘ * ‘ , j ,‘ = ’, i*j );writeln;end;readln;end.При организации вложенных циклов необходимо помнить, что параметр внешнего цикла

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

66

Page 67: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

10.5. Оператор прерывания циклаДля досрочного прерывания цикла можно использовать оператор goto или стандартную

процедуру break.Рассмотрим фрагмент:…for i:=1 to n do beginp:=p* i;if p>100 then break ;writeln(‘p=’, p);end;…Цикл будет прерван при достижении условия p>100 по процедуре break.

Пример программы циклической структурыЗадача.1. Формулировка задачи:Составить программу расчета таблицы значений функции f(x) на интервале a<=x<=b в n

равностоящих точках. Границы интервала a, b и количество точек n ввести с клавиатуры. Результаты вывести на печать.

)4sin()1()( xexf x

Найти сумму положительных значений функции f(x) на заданном интервале. Формула для расчета шага изменения аргумента:

dx = (b-a)/(n-1)2. Таблица идентификаторов

№ Наименование переменной Обозначения в программе1 Функция y2 Аргумент x3 Количество точек n4 Начальное значение x a5 Конечное значение x b6 Шаг изменения аргумента dx7 Сумма s

3. Листинг программыprogram cikl_3;usescrt;vary,x,a,b,dx,s : real;I,n : integer;beginclrscr;writeln(‘Введите a,b,n’);readln(a,b,n);{шаг изменения аргумента}dx:=(b-a)/(n-1);

67

Page 68: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

s:=0;x:=a;for i:=1 to n dobeginy:=(1-exp(-x)) * sin(4*pi*x);writeln(‘y=’,y:8:3);x:=x+dx;if y>0 then s:=s+y;end;writeln(‘Сумма положительных значений s=’,s:8:3);readln;end.

Вопросы для самоконтроля1. Что такое цикл?2. Какие циклы можно организовать на языке Паскаль?3. В каких случаях предпочтительней использовать оператор for …to … do для

организации циклов?4. Какой тип должна иметь переменная, которая является параметром цикла в операторе for

…to … do ?5. Сколько циклов будет пройдено, если в операторе while … do условие не выполнилось с

первого раза?6. Сколько циклов будет пройдено, если в операторе repeat … until условие выполнилось с

первого раза?7. Что такое вложенные циклы?8. Как можно досрочно прервать цикл?

10.6. Методические указания для выполнения практического задания №6. «Циклы»

Цель работы: Ознакомиться с алгоритмами циклической структуры, операторами цикла с параметром, с предусловием, с постусловием.

Задание:1. В приложении 7 выбрать вариант задания.2. Выполнить практическое задание, используя пример программы циклической

структуры.3. Составить блок-схему алгоритма.4. Написать программу и отладить ее по заранее подготовленному тесту.5. Оформить задание в тетради для практических заданий.6. Результат выполнения программы предъявить преподавателю.7. Ответить на вопросы самоконтроля.8. Защитить выполненную работу у преподавателя.

Приложение 7. Таблица вариантов заданийВыбрать функцию по варианту из таблицы.Составить программу расчета таблицы значений функции f(x) на интервале a<=x<=b в n равностоящих точках. Границы интервала a, b и количество точек n ввести с клавиатуры. Результаты вывести на

68

Page 69: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

печать.Вариант Функция

1)2cos()1(5)( 5.0 xexf x

Найти сумму всех положительных значений функции f(x) в расчетных точках.

2)cos(4)( 5.0 xexf x

Найти сумму всех отрицательных значений функции f(x) в заданном интервале.

3)sin(5)( 5.0 xexf x

Найти произведение вычисленных значений функции f(x), целая часть которых кратна 2.

4)4sin()1()( xexf x

Найти среднее арифметическое положительных значений функции f(x).

5)2sin(1)( xxf

Найти количество положительных значений функции f(x) на заданном интервале.

6)cos(4)( 5.0 xexf x

Найти произведение всех отрицательных значений функции f(x) на заданном интервале.

7)2cos()1(5)( 5.0 xexf x

Найти произведение всех положительных значений функции f(x) на заданном интервале.

8)4sin()1()( xexf x

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

9 xxxf

12sin1)(

Найти среднее арифметическое отрицательных значений функции f(x).

10 xxxf

21)4cos()(

Найти сумму вычисленных значений функции f(x), дробная часть которых > 0.5 .

11)2sin(1)( xxf

Найти количество положительных значений функции f(x).

12 xx

xf21

)4cos()(

Найти сумму вычисленных значений функции f(x), дробная часть которых < 0.5

69

Page 70: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

13)2cos()1(5)( 5.0 xexf x

Найти произведение вычисленных значений функции f(x), абсолютные значения которых > 1.

14)2cos()1(5)( 5.0 xexf x

Найти сумму вычисленных значений функции f(x).

15 xxxf21

4sin)(

Найти произведение вычисленных значений функции f(x).

16 xxxf

12sin)(

Найти произведение вычисленных значений функции f(x), дробная часть которых < 0.5

17 xxxf

214cos)(

Найти сумму вычисленных значений функции f(x), дробная часть которых > 0.5

18)(cos)( 25.0 xexf x

Найти количество положительных значений функции f(x), на заданном интервале.

19)(cos)( 25.0 xexf x

Найти количество значений функции f(x), абсолютная величина целой части которых > 1.

20)2sin()( 2 xexf x

Найти наибольшее значение функции f(x), на заданном интервале.

21)2sin()( xxxf

Найти среднее значение функции f(x).

22)cos()sin()( xxxf

Найти сумму значений функции f(x), абсолютная величина целой части которых < 1.

23)2cos()1()( 5.0 xexf x

Найти произведение вычисленных значений функции f(x), абсолютные значения которых >1.

24)sin(5)( 5.0 xexf x

Найти произведение вычисленных значений функции f(x), целая часть которых кратна 2.

25)4sin()1()( xexf x

Найти наименьшее значений функции f(x) на заданном интервале.

70

Page 71: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

26 xxxf

12sin)(

Найти произведение значений функции в расчетных точках с четными номерами.

27)2cos()1(5)( 5.0 xexf x

Найти сумму значений функции в расчетных точках с нечетными номерами.

28

)2sin(1)( xxf Найти наименьшее значений функции f(x) на заданном интервале в расчетных точках с четными номерами.

29)4sin()1()( xexf x

Подсчитать количество отрицательных значений функции на заданном интервале.

30)cos(4)( 5.0 xexf x

Вычислить произведение положительных значений функции в расчетных точках с нечетными номерами.

11. Операции с индексированными переменными11.1. Массивы одномерные

Массив – это поименованный набор однотипной информации.Массив объединяет элементы одного типа данных. Всему набору данных присваивают

общее имя – имя массива. Каждый элемент массива определяется с помощью индекса, определяющего место этого элемента в общем наборе.

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

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

индексом.

11.2. Описание массивовДля одномерного массива:vara: array[1…n] of <тип>;где a – имя массива;n – максимальное количество элементов массива;<тип> – тип элементов массива.Например:varmas: array [1…10] of real;

71

Page 72: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

begin...Описан массив mas, содержащий 10 элементов вещественного типа.Каждый элемент массива определяется с помощью индекса, стоящего справа от имени в

квадратных скобках.a [i], a [i+2], a [9]Индекс может быть переменной, константой, арифметическим выражением целого типа.Размер массива должен быть задан в явном виде (как в предыдущем фрагменте), или через

const.Например:constn = 10;varmas: array [1…n] of real;begin…

Ввод элементов массива…for i:=1 to n doreadln( a[ i ] );…Каждое прохождение через цикл соответствует вводу одного элемента массива.

Вывод элементов массива…for i:=1 to n dowriteln( a[ i ] );…Каждое прохождение через цикл соответствует выводу одного элемента массива.

11.3. Обработка одномерных массивовРассмотрим типовые задачи обработки одномерных массивов.Задача.Составить программу подсчета суммы и произведения элементов одномерного массива

вещественных чисел.Таблица идентификаторов

№ Наименование переменной Обозначения в программе1 Имя массива a2 Размер массива n3 Индекс массива i4 Сумма элементов S5 Произведение элементов p

program mas_1;usescrt;

72

Page 73: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

vara : array [1..100] of real;n, I : integer;p, s : real;beginclrscr;{подготовить переменные для суммы и произведения}s: = 0; p: =1;writeln ('введите размер массива n<=100');readln (n);writeln ('введите элемент массива');for i:=1 to nk doreadln (a[i] );for i:=1 to nk dobegins:= s + a[ i ];p:= p * a[ i ];end;writeln ('Сумма = ',s:8:3,'Произведение =',p:8:3);readln;end.

При накапливании суммы переменную необходимо обнулить, а при накапливании произведения – присвоить 1.

Задача.Дан массив a(n). Найти максимальный элемент массива и определить его номер.Таблица идентификаторов

№ Наименование переменной Обозначения в программе1 Имя массива a2 Размер массива n3 Индекс массива i4 Максимальный элемент max5 Номер максимального элемента nmax

program mas_2;vara: array [1..100] of real;i,n,nmax: integer;max: real;beginwriteln ('введите размер массива n<=100');readln (n);writeln ('введите элементы массива');for i:=1 to n doreadln (a[ i ] );{за максимальный принимается первый элемент массива}

73

Page 74: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

max:=a[1]; nmax:=1;for i:=1 to n doIf a[i]>max thenbeginmax:=a[i];nmax:=i;end;writeln ('max =', max, ' N=', nmax);readln;end.

Задача.Задан массив целых чисел. Отсортировать элементы одномерного массива по возрастанию.Существует много способов сортировки элементов массива

Таблица идентификаторов

№ Наименование переменной Обозначения в программе

1 Имя массива a2 Размер массива n3 Индекс массива i4 Флажок flag

5 Дополнительная переменная для обмена местами соседних элементов p

program mas_3;usescrt;vara: array [1..100] of integer;f, n, i, p : integer;beginclrscr;writeln ('введите размер массива n<=100');readln (n);writeln ('введите элементы массива');for i:=1 to n doreadln (a[i]);repeatf:=0;for i:=1 to n-1 doif a[ i ]>a[i+1] thenbeginp:=a[ i ];a[ i ]:=a[i+1];a[i+1]:=p; f:=1;end;

74

Page 75: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

until f=0;for i:=1 to n do writeln (a[ i ]);readln;end.

В данном алгоритме используются вложенные циклы.Внутренний цикл (for…to…do) – позволяет один раз пройтись по массиву, сравнивая

соседние элементы. В случае, если предыдущий элемент (a[ i ]) окажется больше последующего (a[i+1]), элементы меняются местами через дополнительную переменную p.

Внешний цикл(repeat…until) – повторяется до тех пор, пока массив не будет упорядочен.В программе применяется переменная – флажок.f =1 – признак того, что два соседних элемента менялись местами, массив еще не

упорядочен.f =0 – признак того, что массив упорядочен.

Пример программы обработки одномерного массиваЗадача.1. Формулировка задачи:Задан одномерный массив целых чисел. Найти количество нечётных чисел среди элементов

массива.2. Таблица идентификаторов

№ Наименование переменной Обозначения в программе1 Имя массива a2 Размер массива n3 Индекс массива i4 Количество нечетных чисел kol

3. Листинг программыprogram lab5;usescrt;vara: array [1..100] of integer;n, i,kol : integer;beginclrscr;writeln ('Введите размер массива n<=100');readln (n);writeln ('Введите элементы массива');for i:=1 to n doreadln (a[ i ]);kol:=0;for i:=1 to n doif odd(a[ i ]) then kol:=kol+1;writeln(‘Количество нечетных = ’, kol);readln;end.

75

Page 76: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

Вопросы для самоконтроля1. Что такое массив?2. Будут ли сохранены данные массива в памяти компьютера после окончания работы

программы?3. Что такое индекс массива?4. Какого типа должны быть переменные, являющиеся индексами массива?5. Как можно задавать размер массива?6. Может ли реальное количество элементов в массиве быть меньше, чем указано при

описании?7. Может ли реальное количество элементов в массиве быть больше, чем указано при

описании?

11.4. Методические указания для выполнения практического задания №7. «Операции с индексированными переменными»

Цель работы: Ознакомиться со способом хранения однотипной информации в поименованном наборе, массиве,

Задание:1. В приложении 8 выбрать вариант задания.2. Выполнить практическое задание №7, используя пример программы обработки

одномерного массива.3. Составить блок-схему алгоритма.4. Написать программу и отладить ее по заранее подготовленному тесту.5. Оформить задание в тетради для практических работ.6. Результат выполнения программы предъявить преподавателю.7. Ответить на вопросы самоконтроля.8. Защитить выполненную работу у преподавателя.

Приложение 8. Таблица вариантов заданийВариант Задание

1

Даны натуральное n, целые числа а1, … , аn, каждое из которых отлично от нуля. Если в массиве отрицательные и положительные элементы чередуются ( +, - ,+ , - … или -, +, -, +, …), то ответом должен служить исходный массив. Иначе получить все отрицательные элементы массива, сохранив порядок их следования.

2 Даны натуральное n и действительные числа a1, … , an (n - четное). Получить max (a1+ an, a2+ an-1, … , an/2+ a(n/2)+1).

3Даны натуральное число n, действительные числа a1, … , an. Найти максимальный среди отрицательных элементов имеющих четные индексы.

4Даны натуральное n, действительные числа a1, … , an. Получить числа в1, в2, … , вn, где вi – среднее арифметическое всех элементов массива а1, … , аn, кроме аi (i = 1, 2, … , n).

5

Даны натуральное n, действительные числа a1, … , an. Если в результате замены отрицательных элементов массива a1, … , an их квадратами элементы будут образовывать неубывающую последовательность, то получить сумму элементов исходного массива; в противном случае получить их произведение.

76

Page 77: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

6Даны натуральное n, m, целые числа a1, … , an, b1, … , bm. Найти сумму тех элементов массива a1, … , an, индексы которых совпадают со значением элементов массива b1, … , bm.

7Даны натуральное n, действительные числа a1, … , an (все числа попарно различны). Поменять в этом массиве местами наибольший и наименьший элементы.

8

Даны натуральное n, действительные числа a1, … , an. Получить преобразованный массив, заменяя a i нулями, если ai не равно max (a1, … , an), и заменяя a i единицей в противном случае (i = 1, 2, … , n).

9Даны натуральное n, действительные числа a1, … , an (все числа попарно различны). Поменять в этом массиве местами наименьший и последний элементы.

10Даны натуральное n, действительные числа a1, … , an, b1, … , bn. Получить новый массив с1, … , сn, каждый элемент которого сi = max (ai, bi), i = 1, 2, … , n.

11Даны натуральное n, действительные числа a1, … , an, b1, … , bn. Преобразовать b1, … , bn по правилу: если ai < 0, то bi увеличить в 10 раз. Иначе bi заменить нулем, i = 1, 2, … , n.

12

Даны натуральное n, действительные числа a1, … , an. Требуется умножить элементы массива a1, … , an на квадрат ее наименьшего элемента, если ai 0. И на квадрат ее наибольшего члена, если ai < 0.

13

Даны натуральное n, действительные числа a1, … , an. Вычислить сумму тех элементов массива, индексы которых являются степенями двойки:(1, 2, 4, 8, 16, …).

14

Даны натуральные n, m, действительные числаa1, … , an, b1, … , bm. Элементы каждого из массивов упорядочены по не убыванию. Объединить элементы этих двух массивов в один массив с1, … , сn + m так, чтобы они снова оказались упорядочены по не убыванию.

15Даны натуральные n, m, действительные числаa1, … , an и b1, … , bm. Найти наименьший среди элементов a1, … , an, который не входит в b1, … , bm.

16 Даны натуральные n, целые числа a1, … , an. Найти сумму неповторяющихся элементов массива.

17

Даны натуральные n, целые числа a1, … , an. Наименьший элемент массива a1, … , an заменить целой частью среднего арифметического всех элементов, остальные элементы оставить без изменения. Если в массиве несколько элементов со значением min (a1, … , an), то заменить последний по порядку.

18

Даны натуральные n, целые числа a1, … , an. Преобразовать массив по правилу: все отрицательные элементы перенести в его начало, а все остальные в конец, сохраняя исходное взаимное расположение как среди отрицательных, так и среди остальных элементов.

19 Даны натуральные n, действительные числа a1, … , an (n – чётное). Получить min (a1 * an, a2 * an-1, … , a[n/2] * a[n/2]+1).

20 Даны натуральные n, действительные числа a1, … , an.

77

Page 78: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

Преобразовать массив, расположив элементы в обратном порядке.

21

Даны натуральное n, действительные числа a1, … , an. Все элементы массива с четными номерами, предшествующие первому по порядку элементу со значением max (a1, … , an), умножить на max (a1, … , an).

22Даны натуральное n, целые числа a1, … , an. Найти сумму квадратов тех элементов массива, которые по модулю больше максимального элемента.

23

Даны натуральное n, действительные числа a1, … , an. Если в результате замены отрицательных элементов массива a1, … , an их квадратами элементы будут образовывать неубывающую последовательность, то получить сумму элементов исходного массива; в противном случае получить их произведение.

24Даны натуральное n, действительные числа a1, … , an. Найти максимальный элемент массива среди отрицательных элементов, имеющих четные индексы.

25Даны натуральное n, действительные числа a1, … , an. Получить преобразованный массив, заменяя ai нулями, если ai не равно max (a1, … , an), и заменяя ai единицей в противном случае.

26Даны натуральное n, действительные числа a1, … , an (все числа попарно различны). Поменять в этом массиве местами наименьший и наибольший элементы.

27Даны натуральное n, действительные числа a1, … , an. Вычислить сумму тех элементов массива, индексы которых являются степенями тройки (1, 3, 9, 27, …).

28

Даны натуральное n, действительные числа a1, … , an. Если в результате замены отрицательных элементов массива a1, … , an их квадратами элементы будут образовывать невозрастающую последовательность, то получить произведение элементов исходного массива; в противном случае получить их сумму.

29Даны натуральное число n, действительные числа a1, … , an. Найти максимальный элемент среди отрицательных элементов имеющих нечетные индексы.

30 Даны натуральное n, действительные числа a1, … , an. Найти произведение индексов отрицательных элементов массива.

12. Двумерные массивы12.1. Матрицы

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

В памяти компьютера все элементы массива занимают одну непрерывную область. Двумерный массив располагается в памяти по строкам.

Двумерный массив можно представить в виде матрицы:

333231

232221

131211

aaaaaaaaa

.

78

Page 79: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

12.2. Описание двумерного массиваДля двумерных массивов:vara : array[1..n ,1..m] of <тип>;Где a – имя массива;n, m – количество строк и столбцов в массиве;<тип> – тип элементов массива.Количество элементов в массиве - nm.Например:varmas: array [1…10,1..10] of real;begin…Описан массив mas, содержащий 100 элементов вещественного типа (10 строк и 10

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

const.Например:constn = 5, m=5;varmas: array[1…n,1..m] of real;begin…Описан массив mas, содержащий 25 элементов целого типа (5 строк и 5 столбцов).Каждый элемент массива определяется с помощью двух индексов, стоящих справа от имени

в квадратных скобках.a[i, j] – элемент стоящий на пересечении i-ой строки и j-го столбца.a[i, i] – элементы главной диагонали.a[i, 2] – элементы второго столбца.Индекс может быть переменной, константой, арифметическим выражением целого типа.Если количество строк равно количеству столбцов, матрица называется квадратной.Обработка двумерных массивов производится при изменении индексов элементов.Все элементы главной диагонали удовлетворяют условию:i=j(номер строки равен номеру столбца).Все элементы побочной диагонали удовлетворяют условию:i+j=n+1(n – количество строк и столбцов).Элементы, расположенные над главной диагональю удовлетворяют условию:i<j(номер строки строго меньше номера столбца).Элементы, расположенные под главной диагональю удовлетворяют условию:i>j(номер строки строго больше номера столбца).

79

Page 80: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

Ввод элементов двумерного массива…for i:=1 to n dofor j:=1 to m doreadln(a[i]);…Данный фрагмент позволит ввести элементы массива по строкам.Для ввода элементов массива по столбцам, достаточно в предыдущем фрагменте поменять

местами внутренний и внешний циклы.

Вывод элементов двумерного массива…for i:=1 to n dobeginfor j:=1 to n dowrite(a[I,j],‘ ‘);writeln;end;…Данный фрагмент позволит вывести элементы массива в виде матрицы.

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

циклов.Задача.Составить программу подсчета суммы и произведения элементов двумерного массива

вещественных чисел.Таблица идентификаторов

№ Наименование переменной Обозначения в программе1 Имя массива a2 Количество строк n3 Количество столбцов m4 Индексы массива I,j5 Сумма элементов s6 Произведение элементов p

program matr;usescrt;vara:array [1...10, 1...10] of real;i, j, n, m: integer;s,p :real;beginclrscr;writeln(‘ Введите n<=10 , m<=10 ’);readln (n,m);

80

Page 81: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

writeln(‘ Введите элементы массива по строкам ’);for i:=1 to n dofor j:=1 to m doreadln(a[i, j]);s:=0; p:=1;{ поиск суммы и произведения }for i:=1 to n dofor j:=1 to m dobegins:=s + a[i,j];p:=p * a[i,j];end;writeln(‘ Сумма элементов s=’,s:8:3);writeln(‘ Произведение элементов p=’,p:8:3);readln;end.

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

расположенных над главной диагональю.Таблица идентификаторов

№ Наименование переменной Обозначения в программе1 Имя массива a2 Количество строк и столбцов n3 Индексы массива I,j4 Сумма элементов над главной

диагональюs

program matr_1;usescrt;vara:array [1..10, 1..10] of real;i, j, n, m : integer;s,p : real;beginclrscr;writeln(‘ Введите n<=10 , m<=10 ’);readln (n,m);writeln(‘ Введите элементы массива по строкам ’);for i:=1 to n dofor j:=1 to m doreadln(a[i,j]);for i:=1 to 3 dofor j:=i +1 to 3 dos:=s+a[i,j];

81

Page 82: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

writeln('Сумма элементов s=', s);readln;end.

Для ввода элементов массива используются вложенные циклы с указанием номера вводимого элемента.

Для поиска суммы элементов над главной диагональю во внутреннем цикле задан закон изменения параметра внутреннего цикла:

j:=i+1.Задача.Задана целочисленная квадратная матрица. Определить является ли она симметричной

относительно главной диагонали.Таблица идентификаторов

№ Наименование переменной Обозначения в программе1 Имя массива a2 Количество строк и столбцов n3 Индексы массива I,j4 Флажок f

program matr_2;usescrt;vara : array [1..10, 1..10] of integer;i, j, n, f : integer;beginclrscr;writeln(‘ Введите n<=10 ’);readln (n,m);writeln(‘ Введите элементы массива по строкам ’);for i:=1 to n dofor j:=1 to n doreadln(a[i,j]);f:=0for i:=1 to n dofor j:=i to n doif a[i,j]<>a[j,i] then f:=1;if f=0 then writeln(‘ матрица симметрична’)else writeln (‘матрица не симметрична’);readln;end.

При решении этой задачи сравниваются элементы расположенные над главной диагональю ( a[ i,j ] ) с элементами, расположенными под главной диагональю ( a[ j,i ] ) .

Задача.Задана матрица вещественных чисел. Образовать одномерный массив, где каждый j – й

элемент равен произведению элементов j-ого столбца двумерного массива.

82

Page 83: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

Таблица идентификаторов№ Наименование переменной Обозначения в программе1 Имя двумерного массива a2 Имя одномерного массива b3 Количество строк n4 Количество столбцов m5 Индексы массива I,j

program matr_3;uses crt;vara: array [1...10, 1...10] of integer;b: array [ 1..10 ] of integer;i, j, n, f : integer;beginclrscr;writeln(‘ Введите n<=10 , m<=10 ’); readln (n,m);writeln(‘ Введите элементы массива по строкам ’);for i:=1 to n dofor j:=1 to m doreadln (a[i, j]);writeln(‘ Исходная матрица ’);for i:=1 to n dobeginfor j:= 1 to n dowrite( a[I,j] , ‘ ‘);writeln;end;writeln(‘ Образованный одномерный массив ’);for j:=1 to m dobeginb[ j ]:=1;{ накапливается произведение элементов j столбца }for i:=1 to n dob[ j ]:= b[ j ] * a[ i, j ];write( b[ j] , ‘ ‘);end;readln;end.

Задача.Задана целочисленная матрица a(m*n). Упорядочить элементы каждой строки по

возрастанию.

83

Page 84: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

Таблица идентификаторов№ Наименование переменной Обозначения в программе1 Имя двумерного массива a2 Количество строк, столбцов n, m3 Индексы массива I,j4 Флажок f5 Дополнительная переменная для

обмена соседних элементовp

program mart_4;uses crt;vara: array[1...10, 1...10] of integer;i,j,n,f : integer;begin clrscr;writeln(‘ Введите n<=10 , m<=10 ’); readln (n,m);writeln(‘ Введите элементы массива по строкам ’);for i:=1 to n dofor j:=1 to m doreadln(a[i, j]);writeln(‘ Исходная матрица ’);for i:=1 to n dobeginfor j:=1 to n dowrite(a[I,j],‘ ‘);writeln;end;{ переход от строки к строке }for i:=1 to n do{ сортировка i-ой строки }repeatf:=0;for j:=1to m-1 doif a[i,j]>a[i,j+1] thenbegin p:=a[i,j]; a[i,j]=a[i,j+1]; a[i,j+1]:=p; f:=1; end;until f=0;writeln(‘ Преобразованная матрица ’);for i:=1 to n dobeginfor j:= 1 to n dowrite( a[I,j] , ‘ ‘);writeln;end;readln;end.

84

Page 85: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

f =0 – признак того, что все элементы данной строки упорядочены.

Пример программы обработки двумерного массиваЗадача.Составить программу нахождения максимального среди элементов двумерного массива

вещественных чисел. Определить номер строки и номер столбца, на пересечении которых был найден максимальный элемент.

Таблица идентификаторов.№ Наименование переменной Обозначения в программе1 Имя двумерного массива a2 Количество строк n3 Количество столбцов m4 Индексы массива I,j5 Значение максимального элемента max6 Номер строки, где найден

максимальный элементkmax

7 Номер столбца, где найден максимальный элемент

lmax

Листинг программы.program lab6;usescrt;vara: array [1...10, 1...10] of real;i, j, n, m , kmax , lmax: integer;max :real;beginclrscr;writeln(‘ Введите n<=10 , m<=10 ’);readln(n,m);writeln(‘ Введите элементы массива по строкам ’);for i:=1 to n dofor j:=1 to m doreadln(a[i,j]);{за максимальный принимается элемент a11 }max:=a[1,1];kmax:=1;lmax:=1;for i:=1 to n dofor j:=1 to m doif a[i,j]>max thenbeginmax:=a[i,j];kmax:=i;lmax:=j;

85

Page 86: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

end;writeln(‘max=’, max:8:3);writeln(‘строка - ‘, kmax,’ столбец - ’,lmax);readln;end.

Вопросы для самоконтроля1. В чем состоит разница между одномерными и двумерными массивами?2. В каких случаях целесообразно создавать двумерные массивы?3. Как расположены элементы двумерного массива в памяти компьютера?4. Как определить количество элементов в двумерном массиве?5. Как определить размер памяти в байтах, выделенной под хранение двумерного массива?6. Какая матрица называется квадратной?7. Что характеризует элементы, расположенные на главной диагонали, над и под главной

диагональю?

12.4. Методические указания для выполнения практического задания №8. «Матрицы»

Цель работы: Ознакомиться со способом хранения информации в двумерном массиве, матрице.

Задание:1. В приложении 9 выбрать свой вариант задания.2. Выполнить практическое задание, используя пример программы обработки

одвумерного массива.3. Составить блок-схему алгоритма.4. Написать программу и отладить ее по заранее подготовленному тесту.5. Оформить задание в тетради для практических работ.6. Результат выполнения программы предъявить преподавателю.7. Ответить на вопросы самоконтроля.8. Защитить выполненную работу у преподавателя.

Приложение 9. Таблица вариантов заданийВариант Задание

1

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

2

Дана действительная матрица размером nm, все элементы которой различны. В каждой строке выбирается элемент с наибольшим значением, затем среди этих чисел выбирается наибольшее. Указать индексы элемента с найденным значением.

3

Дана целочисленная матрица размером nm. Написать программу, формирующую двумерный массив по следующему правилу: элементы первой строки – в порядке возрастания индексов столбцов, элементы второй строки – в порядке убывания индексов столбцов и т. д.

4 Дана действительная матрица размером nm. Найти среднее 86

Page 87: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

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

5Дана действительная матрица размером nm. Все элементы с наибольшим значением заменить нулями (таких элементов может быть несколько).

6Дана целочисленная матрица размером nm. Написать программу, позволяющую находить сумму наибольших значений элементов ее строк.

7

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

8Дана целочисленная квадратная матрица размером nm. Написать программу, позволяющую исключать из нее столбец, в котором расположен минимальный элемент главной диагонали.

9

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

10Задана действительная матрица размером nm. Написать программу, позволяющую заменить все элементы, наименьшие в строке, на нули.

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

12

Задана целочисленная квадратная матрица размером nn. Написать программу, преобразующую исходную матрицу по правилу: начетные столбцы разделить на среднее значение диагональных элементов матрицы, а четные оставить без изменения.

13

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

14Задана целочисленная квадратная матрица размером nn (n - четное). Написать программу, позволяющую менять местами элементы первой и второй строк, элементы третьей и четвертой строк и т. д.

15

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

16

Даны две действительные квадратные матрицы размером nn. Получить новую матрицу умножением элементов каждой строки первой матрицы на наибольшее из значений элементов соответствующей строки второй матрицы.

17 Дана целочисленная квадратная матрица размером nn. Найти номера строк, все элементы которых – нули.

18 Задан массив из целых чисел размером n и число L. Написать программу, формирующую из него матрицу, содержащую по L

87

Page 88: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

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

19

Дана целочисленная матрица размером nm (m - четное). Написать программу, позволяющую менять местами элементы первого и последнего столбцов, элементы второго и (n-1)-го столбцов и т. д. до среднего столбца (n - нечетно)

20

Дана действительная квадратная матрица размером nn (n - четное), все элементы которой различны. Найти наибольший элемент среди стоящих на главной и побочной диагоналях и поменять его местами с элементом, стоящим на пересечении с этими диагоналями.

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

22

Дана целочисленная матрица размером nm и число K. Написать программу, переставляющую строки и столбцы таким образом, чтобы максимальный по модулю элемент был расположен на пересечении K–ой строки и K–го столбца.

23Дана действительная матрица размером nm. Все элементы с наибольшим значением заменить нулями (таких элементов может быть несколько).

24

Дана целочисленная матрица размером nm. Написать программу, формирующую двумерный массив по следующему правилу: элементы первой строки – в порядке возрастания индексов столбцов, элементы второй строки – в порядке убывания индексов столбцов и т. д.

25Дана целочисленная квадратная матрица размером nn. Написать программу, позволяющую исключать из нее столбец, в котором расположен минимальный элемент главной диагонали.

26В данной действительной матрице размером nm обнулить все отрицательные элементы. Подсчитать, количество обнуленных элементов.

27 Дана целочисленная квадратная матрица размером nn. Найти номера строк, все элементы которых отрицательны.

28Задана целочисленная квадратная матрица размером nn (n - четное). Написать программу, позволяющую менять местами элементы первой и последней строк, второй и предпоследней строк и т. д.

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

30

Даны две действительные квадратные матрицы размером nn. Получить новую матрицу умножением элементов каждой строки первой матрицы на наименьшее из значений элементов соответствующей строки второй матрицы.

13. ПодпрограммыЕсли в программе имеется несколько одинаковых фрагментов, то возникает вопрос: нельзя

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

88

Page 89: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

13.1. Функции и процедурыФункции и процедуры реализуют принципы структурного программирования.К функциям и процедурам обращаются если необходимо:разбить большую задачу на несколько меньших по объему и сложности задач;уменьшить объем программы за счет выделения типовых программных действий в функции

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

Структура программы, содержащей процедуру (функцию)program <имя>;<описательная часть основной прогаммы>;procedure <имя процедуры>;(function <имя функции>;)<описательная часть процедуры/функции>;begin<исполнительная часть процедуры/функции>;end;begin<исполнительная часть основной программы>;end.Процедуры (функции) могут содержать любые операторы языка Паскаль и повторяют

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

13.2. ПроцедурыПроцедура – это независимая именованная часть программы, которую после однократного

описания можно многократно вызывать по имени.Первая строка любой процедуры:procedure <имя>(<список формальных параметров>);<имя> – уникальный идентификатор, строится по правилам составления имен простых

переменных;<список формальных параметров> – список имен переменных с указанием их типа,

передающих информацию в процедуру и возвращающих результаты в основную программу.Обращение к процедуре из основной программы:<имя> (<список формальных параметров>);<список фактических параметров> – список переменных или констант, разделенных

запятыми.Например:procedure prim(x:real; var s:integer; z,y:integer);Описан заголовок процедуры где:x, z, y передают информацию в процедуру;s передаёт информацию в процедуру и возвращает результат (можно сказать процедура

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

Чтобы формальный параметр возвращал результат, его необходимо описать с использованием служебного слова var.

Обращение к процедуре:prim (x, s, z, y); (имена фактических параметров x, s, z,y совпадают с именами формальных)

89

Page 90: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

илиprim (a, s1, b, 5); (имена фактических параметров a, s1, b не совпадают с именами

формальных, а последний фактический параметр является числовой константой)Формальные и фактические параметры должны совпадать по типу, количеству и порядку

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

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

13.3. Вложенные процедуры

Директива forwardЕсли одна подпрограмма использует другую, а та, в свою очередь, использует первую,

возникает проблема размещения этих процедур в программе. Какую из них поместить в программе первой? В этих случаях прибегают к директиве forward.

Например:procedure pp1(a,b:integer):forward;procedure pp2(c: real); {Вторая процедура}var x,y:integer;begin…pp1(x, y);end;procedure pp1; {Первая процедура}var z:real;begin…pp2 (z);end;…Задача.Задан одномерный массив вещественных чисел. Найти максимальный элемент массива и

определить его номер.Составим программу с использованием двух процедур:процедура ввода элементов массива;процедура поиска максимального элемента и определение его номера.Для передачи массива в процедуру введем пользовательский тип mas.

program PP;typemas=array[1..100] of integer; {пользовательский тип}var { глобальные переменные }a:mas;max:real;

90

Page 91: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

n,max,kmax:integer;procedure input_mas(n:integer ; var a:mas );var i:integer; {локальная переменная}beginfor i:=1 to n do readln(a[ i ]);end;procedure max_m(n:integer; a:mas; var max,kmax:integer );var i:integer;beginmax:=a[1];kmax:=1;for i:=1 to n doif a[i]>max thenbegin max:=a[i]; kmax:=i; end;end;beginwriteln(‘ Введите n<=100’) ; readln( n );writeln (‘ Введите элементы массива ‘);input_mas(n,a);max_m(n,a,max,kmax );writeln(‘max=’,max,‘kmax=’,kmax);readln;end.

13.4. ФункцииЕсли результатом подпрограммы является только одно значение, то имеет смысл оформить

такую подпрограмму в виде функции.Первая строка любой функции:function <имя >(<список формальных параметров> ):<тип>;<список формальных параметров> – список имен переменных с указанием их типа,

передающих информацию в функцию;<имя> возвращает результат в основную программу;<тип> – тип возвращаемого результата.Обращение из основной программы к функции возможно в структуре какого-либо

оператора, например оператора присваивания:<переменная>:= <имя> (список фактических параметров);Функция возвращает в основную программу только один результат через переменную,

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

Задача.Составить программу вычисления n! с использованием функции.n! = 1* 2 * 3 * …* n

program factorial;{описательная часть основной программы}varn,k:integer;

91

Page 92: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

function fun(k:integer):integer;{описательная часть подпрограммы}varp,i:integer;begin{исполнительная часть подпрограммы}p:=1;for i:=1 to k dop:=p*i;fun:=p;end;{исполнительная часть основной программы}beginwriteln('введите n');readln(n);for k: = 1 to n dowriteln(fun(k));end.n, k – глобальные переменные.p, i – локальные переменные.fun – имя функции, возвращает результат в основную программу.Имя функции в теле функции в операторах присваивания может стоять только слева от знака «:=», поэтому использована дополнительная переменная p для подсчета произведения.

Пример программы с использованием подпрограммЗадача.Задан двумерный массив целых чисел. Определить количество четных чисел в массиве.Составим процедуру ввода элементов массива;функцию подсчета количества четных чисел;процедуру вывода двумерного массива в виде матрицы.1. Таблица идентификаторов

№ Наименование переменной Обозначения в программе1 Имя массива a2 Количество строк n3 Количество столбцов m4 Индексы массива I,j

2. Листинг программы.program pp_1;typemas=array[1..10,1..10] of integer;vara:mas; n,m,i,j:integer ;{ Процедура ввода массива }procedure input_mas(n,m:integer; var a:mas);begin

92

Page 93: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

for i:=1 to n dofor j:=1 to n do readln(a[i,j]);end;{Функция подсчета количества нечетных чисел}function kol( n,m:integer; a:mas ):integer;vark:integer ;beginkol:=0;for i:=1 to n dofor j:=1 to n doif not odd( a[ i,j ] ) then k:=k+1;kol:=k;end;{Процедура вывода матрицы}procedure print_mas(n,m:integer; a:mas);beginfor i:=1 to n dobeginfor j:=1 to n do write( a[i,j],‘ ‘);writeln;end;end;{Исполнительная часть основной программы}beginwriteln(‘Введите n<=10 , m<=10’);readln (n,m);writeln(‘Введите элементы массива по строкам’);input_mas(n,m,a);writeln(‘Исходная матрица’);print_mas(n,m,a);writeln(‘Количество нечетных чисел =’,kol(n,m,a));readln;end.

Вопросы для самоконтроля1. В каких случаях прибегают к построению подпрограмм?2. В каком месте программы располагаются функции или процедуры?3. Что такое процедура?4. Какова структура процедуры?5. Как передается информация в процедуру?6. Каким образом возвращаются результаты работы процедуры в основную программу?7. Какое соответствие должно быть между формальными и фактическими параметрами?8. Какие переменные называются глобальными? Время существования глобальных

переменных?93

Page 94: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

9. Какие переменные называются локальными? Время существования локальных переменных?

10. Когда используют директиву forward?11. В каких случаях целесообразно прибегать к построению функций?12. Как передается информация в функцию?13. Каким образом возвращается результат работы функции в основную программу?

Методические указания для выполнения практического задания №9. «Подпрограммы»

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

Задание:1. В приложении 10 выбрать свой вариант задания.2. Выполнить практическое задание №9, используя пример программы с

использованием подпрограмм3. Составить блок-схему алгоритма.4. Написать программу и отладить ее по заранее подготовленному тесту.5. Оформить задание в тетради для практических работ.6. Результат выполнения программы предъявить преподавателю.7. Ответить на вопросы самоконтроля.8. Защитить выполненную работу у преподавателя.

Приложение 10. Таблица вариантов заданийСоставить программу с использованием процедуры и функции

Вариант Задание

1

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

2

Дана действительная матрица размером nm, все элементы которой различны. В каждой строке выбирается элемент с наибольшим значением, затем среди этих чисел выбирается наибольшее. Указать индексы элемента с найденным значением.

3

Дана целочисленная матрица размером nm. Написать программу, формирующую двумерный массив по следующему правилу: элементы первой строки – в порядке возрастания индексов столбцов, элементы второй строки – в порядке убывания индексов столбцов и т. д.

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

5Дана действительная матрица размером nm. Все элементы с наибольшим значением заменить нулями (таких элементов может быть несколько).

6 Дана целочисленная матрица размером nm. Написать программу, позволяющую находить сумму наибольших значений элементов ее

94

Page 95: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

строк.

7

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

8Дана целочисленная квадратная матрица размером nm. Написать программу, позволяющую исключать из нее столбец, в котором расположен минимальный элемент главной диагонали.

9

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

10Задана действительная матрица размером nm. Написать программу, позволяющую заменить все элементы, наименьшие в строке, на нули.

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

12

Задана целочисленная квадратная матрица размером nn. Написать программу, преобразующую исходную матрицу по правилу: начетные столбцы разделить на среднее значение диагональных элементов матрицы, а четные оставить без изменения.

13

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

14

Задана целочисленная квадратная матрица размером nn (n – чётное). Написать программу, позволяющую менять местами элементы первой и второй строк, элементы третьей и четвертой строк и т.д.

15

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

16

Даны две действительные квадратные матрицы размером nn. Получить новую матрицу умножением элементов каждой строки первой матрицы на наибольшее из значений элементов соответствующей строки второй матрицы.

17 Дана целочисленная квадратная матрица размером nn. Найти номера строк, все элементы которых – нули.

18Задан массив из целых чисел размером n и число L. Написать программу, формирующую из него матрицу, содержащую по L элементов в строке. Недостающие элементы заполнить нулями.

19

Дана целочисленная матрица размером nm (m – чётное). Написать программу, позволяющую менять местами элементы первого и последнего столбцов, элементы второго и (n-1)-го столбцов и т. д. до среднего столбца (n – нечётно).

95

Page 96: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

20

Дана действительная квадратная матрица размером nn (n – чётное), все элементы которой различны. Найти наибольший элемент среди стоящих на главной и побочной диагоналях и поменять его местами с элементом, стоящим на пересечении с этими диагоналями.

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

22

Дана целочисленная матрица размером nm и число K. Написать программу, переставляющую строки и столбцы таким образом, чтобы максимальный по модулю элемент был расположен на пересечении K-ой строки и K-го столбца.

23Дана действительная матрица размером nm. Все элементы с наибольшим значением заменить нулями (таких элементов может быть несколько).

24

Дана целочисленная матрица размером nm. Написать программу, формирующую двумерный массив по следующему правилу: элементы первой строки – в порядке возрастания индексов столбцов, элементы второй строки – в порядке убывания индексов столбцов и т. д.

25Дана целочисленная квадратная матрица размером nn. Написать программу, позволяющую исключать из нее столбец, в котором расположен минимальный элемент главной диагонали.

26В данной действительной матрице размером nm обнулить все отрицательные элементы. Подсчитать, количество обнуленных элементов.

27 Дана целочисленная квадратная матрица размером nn. Найти номера строк, все элементы которых отрицательны.

28Задана целочисленная квадратная матрица размером nn (n - четное). Написать программу, позволяющую менять местами элементы первой и последней строк, второй и предпоследней строк и т. д.

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

30

Даны две действительные квадратные матрицы размером nn. Получить новую матрицу умножением элементов каждой строки первой матрицы на наименьшее из значений элементов соответствующей строки второй матрицы.

14. Обработка строк текста14.1. Символьные переменные

Значением переменных символьного типа является один символ. Каждому символу соответствует код символа – целое число в диапазоне то 0 до 255. Существует международная таблица ASCII-кодов.

Для описания символьных переменных используют слово char и они занимают 1 байт памяти.

varc:char;Над символьными переменными допустимы только две операции: присвоение и сравнение.

96

Page 97: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

При сравнении символов сравниваются их коды.Символьные константы задаются в апострофах:c:=‘A’;

Фрагмент таблицы ASCII-кодов букв латинского алфавитаA 65 a 97 Коды малых букв от

заглавных отличаются на 32.B 66 b 98… … … …Z 90 z 122

Фрагмент таблицы ASCII-кодов букв русского алфавитаAB…П

128129…143

аб…п

160161…175

Коды малых букв от заглавных отличаются на 32.

P…Я

144…159

р…я

224…239

Коды малых букв от заглавных отличаются на 80.

Е 240 е 241

14.2. Функции обработки символьных переменныхchr(x:byte):char - возвращает символ, соответствующему коду x.Например:writeln(chr(65));Результат на экране:заглавная буква A латинского алфавита.ord(c:char):byte возвращает число, соответствующее коду символа c.Например:writeln(ord(‘A’));Результат на экране:число 65 – код заглавной буквы A латинского алфавита.upcase (c:char):char –преобразует малые буквы латинского алфавита в заглавные.Например:writeln( upcase(‘a’) );Результат на экране:заглавная буква A латинского алфавита.Если аргументом этой функции окажется не малая буква латинского алфавита, то эта

функция никаких действий не выполнит.pred(c:char):char –возвращает предшествующий символ.Например:writeln( pred('B') );Результат на экране:

97

Page 98: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

заглавная буква A латинского алфавита, код которой на 1 меньше кода буквы B.succ(c:char):char –возвращает последующий символ.Например:writeln( succ(‘A’) );Результат на экране:заглавная буква B латинского алфавита, код которой на 1 больше кода буквы A.Задача.Вывести на экран таблицу ASCII-кодов.program ASCII;vari: byte;beginfor i:=1 to 255 dowriteln (chr(i),'=',i);end.Тип char в программах на Паскале часто используют для хранения вводимых с клавиатуры

ответов на запросы меню.Для этого используют функцию readkey. Работу этой функции обеспечивает модуль Crt.Приведем пример использования:Program char;usescrt;beginrepeat…ch:= readkeyuntil (ch='n') or (ch='N');end.Цикл действий продолжается до тех пор, пока не будет введено с клавиатуры 'n' или 'N'.

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

255 байт памяти. Для описания строковых переменных используют служебное слово string.

а) vars:string; b) vart:string[20];По умолчанию под строковую переменную s будет отведено 255 байт памяти (вариант а), а

под строковую переменную t будет отведено 20 байт (вариант b).Строковые константы задаются в апострофах:S:=’Москва’;Ввод строковых переменных осуществляется с помощью оператора – readln, а вывод –

writeln.

98

Page 99: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

varS:string;beginreadln(s);…Ввод цепочки символов завершается нажатием Enter. Если количество введенных символов

превышает 255, то «хвост» отбрасывается, и в переменную попадают только первые 255 символов.

Над строковыми переменными допустимы три операции: присвоение, сравнение и «слияние».

Существует два способа обработки строковых переменных:обработка всей строки как единого целого;строковые переменные можно рассматривать как одномерный массив символов (элементов

типа char) и применять к ним функции символьных переменных.Операция слияния:d:= 'Москва – столица';a:= 'России';d + a 'Москва – столица России'

14.4. Функции обработки строковых переменныхlength(s:string):byte - подсчитывается фактическая длина строки, включая пробелы и знаки

препинания.Например:…s:=’Москва’;wrtiteln(length(s));Результат на экране:Число 6, количество символов в сломе Москва.copy(s:string,i,n):string –копируется фрагмент строки s.Где s – переменная, из которой копируется фрагмент;i – позиция, с которой копируется;n – количество копируемых символов.

Если i и n – вне пределов строки, сообщения об ошибке не будет.Если i>length(s) результат – строка нулевой длины.Если n >length(s ) результат – фрагмент от i до конца строки.Например:…s:='электрификация';b:=copy(s,8,3)+copy(s,12,3);writeln(s);…Результат на экране:фикция

99

Page 100: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

pos(t:string,s:string):byte –осуществляет поиск подстроки t в строке s.Результатом этой функции является позиция вхождения t в s. Если подстрока не найден -

результат 0.Например:…t:='ритм'; s:='алгоритм';k:=pos(t,s);wrieln(‘k=’,k);Результат на экране:k=5

14.5. Процедуры обработки строковых переменныхinsert(t,s,i);– вставить подстроку t в строку s начиная, начиная с позиции i.Например:…s:='ритм';insert(‘алго’,s,1);wrieln(s);…Результат на экране:алгоритмdelete(s,i,n);– удалить из строки s с позиции i n символов.Например:…s:='алгоритм';delete(s,1,4);writeln(s);…Результат на экране:ритмi,n – в процедурах insert и delete обязательно должны присутствовать в строке s. Иначе –

сообщениие об ошибке.

14.6. Примеры обработки строковых переменныхЗадача.В произвольном тексте заменить все сочетания «чя» на «ча».Таблица идентификаторов

№ Наименование переменной Обозначения в программе1 Текст Text2 Индекс массива i

Program word_text;Uses crt;

100

Page 101: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

vartext:string;i:integer;beginclrscr;writeln(‘Введите текст’);readln(text);for i:=1 to length(text)-1 doif copy(text,i,2)=‘чя’ thenbegindelete (text,i+1,1);insert (‘a’,text,i+1);end;writeln(‘Преобразованный текст’);writeln(text);readln;end.

Задача.В произвольном тексте (text) в слове word заменить первую букву на заглавную и

подсчитать количество замен (текст латинский).Таблица идентификаторов

№ Наименование переменной Обозначения в программе1 Текст text2 Слово word3 Индекс массива i4 Количество замен s

Program word_text1;Uses crt;vartext,word:string;s,i:integer;beginwriteln(‘Введите текст’);readln(text);s:=0;writeln(‘Введите слово’);readln(word);for i:=1 to length(text)-lenght(word)+1 doif copy(text,i,length(word))=word thenbegins:=s+1;text[i]:=upcase(text[i]);end;writeln (s);

101

Page 102: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

readln;end.

Задача.Заменить в произвольном тексте все слова word1 на слово word2.Таблица идентификаторов

№ Наименование переменной Обозначения в программе1 Текст text2 Слова первое word13 Слова второе word24 Индекс i

Program word_text2;vartext,word1,word2:string;i:integer;beginwriteln(‘Введите исходный текст’);readln text);writeln(‘Введите первое слово’);readln(word1);writeln(‘Введите второе слово’);readln(word2);repeati:=pos(word1,text)if i<>0 thenbegindelete(text,i,length(word1));insert(word2,text,i);end;until i=0;writeln(‘Преобразованный текст’);writeln(text);readln;end.

Вопросы для самоконтроля1. Какие типы данных используются для обработки текста?2. Сколько байт памяти занимает символьная переменная?3. Какие операции допустимы над символьными переменными?4. Перечислите функции обработки символьных переменных?5. Что такое строка?6. Сколько байт памяти занимает строковая переменная?7. Какие операции допустимы над строковыми переменными?8. Перечислите функции и процедуры обработки строковых переменных?9. Как можно обратиться к отдельным символам строки?

102

Page 103: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

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

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

ЗаписиЗаписи – это структурированный тип данных, позволяющих хранить вместе различные типы

данных.Запись состоит из нескольких полей, для каждого из которых при объявлении (описании)

указывается имя и тип.Например:typestudent = record; {запись}surname : string[20];year : integer;bal : real;end; {завершает список полей}varst:student;Сформирован пользовательский тип данных – student, он базируется на стандартных типах

(string, integer,real).Переменная st - имеет тип student (запись), состоит из 3-х полей:surname – фамилия студента;year – год рождения;bal – средний бал.Каждое поле хранит информацию разного типа. При обращении к отдельным полям

указывается имя всей записи и имя отдельного поля через точку.st.surname:='Иванов';st.year:=1905;st.bal:=4.5;Для уменьшения записи обращения к отдельным полям используют оператор with … doНапример:with st dobeginsurname:='Иванов';year:= 1905;bal:=4.5;end;Для обработки большого объема информации комбинированного типа целесообразно

строить массивы записей, где каждый элемент массива – запись, состоящая из нескольких полей разного типа.

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

typestudent = record; {запись}

103

Page 104: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

surname : string[20];year : integer;bal : real;end;varst:array[ 1..25 ] of student;st – массив записей. Каждый элемент массива(St[i])содержит информацию об одном

студенте:St[i].surname – фамилия;St[i].year – год рождения;St[i].bal – средний бал.Задача.Создать массив записей, содержащий информацию о студентах группы. Каждая запись

содержит поля – фамилия, год рождения, пол. Подсчитать средний возраст студентов мужского пола группы.

Таблица идентификаторов№ Наименование переменной Обозначения в программе1 Имя массива st2 Количество студентов n3 Индекс массива i4 Средний возраст p5 Количество мужчин k6 Текущий год t

program rec;uses crt;typestudent = record; {запись}surname : string[20];year : integer;pol : char;end;varst:array[ 1..30 ] of student;i,n,t:integer; p:real;beginclrscr;writeln(‘Введите текущий год’);readln(t)writeln(‘Введите количество студентов’);readln(n)for i:=1 to n dowith st[i] dobeginwriteln(‘Сведения о ’,i,‘ студенте’);

104

Page 105: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

writeln(‘Введите фамилию’); readln(surname);writeln(‘Введите год рождения’); readln(year);writeln(‘Введите средний бал’); readln(bal);end;p:=0;for i:=1 to n dobeginif st[i].pol=’m’ thenbeginp:=p+(t-st[i].year);k:=k+1;end;writeln(‘Средний возраст мужчин =’,(p/k):8:3 );readln;end.

Пример программы использования массива записейЗадача:Создать массив записей, содержащий сведения о сотрудниках фирмы. Каждая запись

содержит поля – фамилия сотрудника, наименование отдела, оклад, трудовой стаж. Написать программу, выдающую следующую информацию:

список сотрудников отдела Х с указанием оклада и трудового стажа; подсчитать среднюю заработную плату сотрудников отдела Х.

Название отдела Х вводится по запросу с клавиатуры.1. Таблица идентификаторов

№ Наименование переменной Обозначения в программе Тип переменной

1 Имя массива frecord

(запись)2 Количество сотрудников n integer3 Поле фамилия surname string4 Поле отдел otdel string5 Поле оклад oklad real6 Поле стаж Stag integer7 Средняя зарплата Sred real8 Отдел поиска Х X string

9 Количество сотрудников в отделе Х K integer

10 Индексы массива i integer2. Листинг программы

program rec_1;uses crt;typefirma = record; {запись}surname : string[20];

105

Page 106: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

otdel : string[20];oklad : real;Stag : integer;end;varf:array[ 1..30 ] of firma; {массив записей}X:string[20];i,n,k:integer;sred:real;beginclrscr;writeln(‘Введите n’); readln(n);writeln(‘Введите информацию о сотрудниках’);for i:=1 to n dowith f[i] dobeginwriteln(‘Введите фамилию ’); readln(surname);writeln(‘Введите отдел ’); readln(otdel);writeln(‘Введите оклад ’); readln(oklad);writeln(‘Введите стаж ’); readln(Stag);end;writeln(‘Введите название отдела’); readln(X);sred:=0; k:=0;writeln(‘Список сотрудников отдела ’,X);for i:=1 to n doif f[i].otdel=X thenbeginwriteln(f[i].surname,’ ‘,f[i].oklad:8:3);sred:=sred+f[i].oklad;k:=k+1;end;writeln(‘Средняя зарплата отдела=’,(sred/k):8:3);readln;end.

Вопросы для самоконтроля1. В чем состоит основное преимущество записи?2. Почему записи называют комбинированным типом записи?3. Чем записи отличаются от массивов?4. Что называется полем записи?5. Какие требования предъявляются к идентификаторам поля записи?6. Как определить объем памяти, требуемый для размещения записи?7. С какой целью при обращении к полю записи используется оператор with … do?

106

Page 107: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

Методические указания к выполнению индивидуального задания по Модулю 2. «Массивы записей»

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

Задание:1. В приложении 11 выбрать вариант задания.2. Выполнить индивидуальное задание по Модулю 2 , на примере программы

использования массива записей.3. Составить блок-схему алгоритма.4. Утвердить блок-схему у тьютора.5. Написать программу и отладить ее по заранее подготовленному тесту.6. Результат выполнения программы предъявить преподавателю.7. Оформить ИДЗ в формате А4, титульный лист по образцу Приложение 48. Защитить выполненную работу у преподавателя.

Приложение 11. Таблица вариантов индивидуального задания

Вариант Задание

1

Создать массив записей, содержащий сведения о месячной заработной плате рабочих завода.Каждая запись содержит поля – фамилия рабочего, наименование цеха, размер заработной платы за месяц. Необходимо:- отсортировать массив записей по полю заработная плата;- подсчитать общую сумму выплат за месяц по цеху Х. Наименование цеха Х вводится по запросу с клавиатуры.

2

Создать массив записей, содержащий сведения об участниках конференции. Каждая запись содержит поля – фамилия участника, возраст, город, из которого прибыл участник.Написать программу, выдающую следующую информацию:- список участников, приехавших из города Х с указанием возраста;- средний возраст участников конференции.Название города Х вводится по запросу с клавиатуры.

3

Создать массив записей, содержащий информацию о сотрудниках частной клиники. Каждая запись содержит поля – фамилия врача, специализация, стаж работы.Написать программу, выдающую следующую информацию:- список врачей по специализации Х с указанием стажа работы;- средний стаж сотрудников клиники.Специализация Х вводится по запросу с клавиатуры.

4 Создать массив записей, содержащий сведения об абонентах телефонной компании. Каждая запись содержит поля – фамилия абонента, год установки телефона, номер телефона. Написать

107

Page 108: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

программу, выдающую следующую информацию:- список абонентов, отсортированный по полю год установки;- по вводимой фамилии Х выдается номер телефона абонента.Фамилия Х вводится по запросу с клавиатуры.

5

Создать массив записей, содержащий сведения об ассортименте игрушек в магазине. Каждая запись содержит поля – название игрушки, цена, количество. Написать программу, выдающую следующую информацию:- стоимость самой дорогой игрушки и ее наименование;- общую стоимость всех игрушек в магазине.

6

Создать массив записей, содержащий сведения об экспортируемых товарах. Каждая запись содержит поля – наименование товара, страна, импортирующая товар, объем поставляемой партии в штуках. Написать программу, выдающую следующую информацию:- список стран, в которые экспортируется товар Х и объем его экспорта;- средний объем экспорта товара Х.Наименование товара Х вводится по запросу с клавиатуры.

7

Создать массив записей, содержащий сведения о студентах группы. Каждая запись содержит поля – фамилия студента, год рождения и оценки по трем экзаменам. Написать программу, выдающую следующую информацию:- список студентов, отсортированный по полю год рождения с указанием полученных оценок;- количество студентов, получивших неудовлетворительные оценки хотя бы по одной дисциплине.

8

Создать массив записей, содержащий сведения о городской библиотеке. Каждая запись содержит поля – шифр книги, автор, название, год издания и стоимость. Написать программу, выдающую следующую информацию:- список книг автора Х с указанием названия и года издания книги;- стоимость самой дорогой книги автора Х;Фамилия автора Х вводится по запросу с клавиатуры.

9

Создать массив записей, содержащий сведения о наличии билетов и рейсах Аэрофлота. Каждая запись содержит поля – номер рейса, пункт назначения, время вылета, стоимость билетов. Написать программу, выдающую следующую информацию:- список рейсов самолетов в город Х, с указанием времени вылета и стоимости билетов;- номер рейса в город Х, с минимальной стоимостью билета.Наименование города Х вводится по запросу с клавиатуры.

10

Создать массив записей, содержащий сведения об ассортименте товаров в магазине. Каждая запись содержит поля – артикул, наименование, стоимость единицы товара, количество. Написать программу, выдающую следующую информацию:- список товаров, отсортированный по полю стоимость товара;- общую стоимость всех товаров в магазине.

11 Создать массив записей, содержащий сведения о сессии. Каждая

108

Page 109: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

запись содержит поля – индекс группы (например ЭС-101), фамилия студента, оценки по трем экзаменам. Написать программу, выдающую следующую информацию:- фамилии неуспевающих студентов группы Х, с указанием количества задолженностей;- количество неуспевающих студентов группы Х.Наименование группы Х вводится по запросу с клавиатуры.

12

Создать массив записей, содержащий сведения об отправлении поездов дальнего следования. Каждая запись содержит поля – номер поезда, станция назначения, время отправления, стоимость билетов. Написать программу, выдающую следующую информацию:- время отправления поездов в город Х с указанием стоимости билетов;- номер поезда в город Х с минимальной стоимостью билета.Наименование города Х вводится по запросу с клавиатуры.

13

Создать массив записей, содержащий сведения о сотрудниках института. Каждая запись содержит поля – фамилия, пол, название отдела, год рождения, стаж. Написать программу, выдающую следующую информацию:- список сотрудников мужского пола отдела Х призывного возраста (старше 18 и младше 30 лет), с указанием стажа работы;- средний возраст сотрудников мужского пола отдела Х.Наименование отдела Х вводится по запросу с клавиатуры.

14

Создать массив записей, содержащий сведения о телефонах абонентов. Каждая запись содержит поля – фамилия абонента, адрес, номер телефона. Написать программу, выдающую следующую информацию:- по вводимой фамилии абонента Х и адресу Y выдается номер телефона.Фамилию абонента Х и адрес Y вводится по запросу с клавиатуры.

15

Создать массив записей, содержащий сведения о товарах некоторого склада. Каждая запись содержит поля – наименование, цена единицы товара, количество. Написать программу, выдающую следующую информацию:- список товаров, стоимость которых не превышает Х рублей с указанием количества;- общее количество товаров, стоимость которых не превышает Х.Стоимость Х вводится по запросу с клавиатуры.

16

Создать массив записей, содержащий сведения о товарах автосалона. Каждая запись содержит поля – модель автомобиля, цвет, номер двигателя, стоимость. Написать программу, выдающую следующую информацию:- список автомобилей модели Х с указанием цены, цвета и номера двигателя;- самый дорогой автомобиль модели Х.Модель автомобиля Х вводится по запросу с клавиатуры.

17 Создать массив записей, содержащий сведения о туристической фирме. Каждая запись содержит поля – наименование страны,

109

Page 110: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

наименование города, стоимость тура. Написать программу, выдающую следующую информацию:- список туров в страну Х с указанием наименования города и стоимости тура;- самый дорогой тур в страну Х.Название страны Х вводится по запросу с клавиатуры.

18

Создать массив записей, содержащий сведения о студентах группы. Каждая запись содержит поля – фамилия студента, индекс группы (например, ЭС-101) и оценки по трём экзаменам. Написать программу, выдающую следующую информацию:- список отличников группы Х;- процент отличников по отношения к общему количеству студентов группы Х.Индекс группы Х вводится по запросу с клавиатуры.

19

Создать массив записей, содержащий сведения об абонентах телефонной компании. Каждая запись содержит поля – фамилия абонента, год установки телефона, номер телефона. Написать программу, выдающую следующую информацию:- список абонентов, отсортированный по полю год установки;- количество установленных телефонов с Х года.Значение Х вводится по запросу с клавиатуры.

20

Создать массив записей, содержащий информацию о количестве изделий, собранных рабочими за месяц. Каждая запись содержит поля – фамилия сборщика, наименование цеха, количество изделий, собранных рабочим за месяц. Считая заданными значение расценок по сборке единицы изделия Х, выдать следующую информацию:- ведомость заработной платы рабочих цеха;- общую сумму выплат по цеху.Стоимость сборки единицы изделия Х вводится по запросу с клавиатуры.

21

Создать массив записей, содержащий сведения о сотрудниках таксомоторного парка. Каждая запись содержит поля – фамилия водителя, номер автомобиля, количество выездов за месяц.Написать программу, выдающую следующую информацию:- подсчитать общее количество выездов за месяц;- фамилию водителя, с наибольшим количеством выездов.

22

Создать массив записей, содержащий сведения об услугах частной клиники. Каждая запись содержит поля – название операции, стоимость операции, возрастные ограничения на каждую операцию.Написать программу, выдающую следующую информацию:- список услуг клиники, отсортированный по полю название операции;- по введенному названию операции Х распечатать стоимость и возрастные ограничения.Название операции Х вводится по запросу с клавиатуры.

23 Создать массив записей, содержащий сведения о сотрудниках

110

Page 111: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

института. Каждая запись содержит поля – фамилия сотрудника, оклад, стаж работы. Написать программу, которая должна:- начислить премию сотрудникам в размере оклада, стаж которых превышает Х лет:- распечатать список сотрудников, получивших премию с указанием размера премии.Величина Х вводится по запросу с клавиатуры.

24

Создать массив записей, содержащий сведения о товарах магазина. Каждая запись содержит поля – наименование товара, стоимость, количество.Написать программу, которая;- уменьшит стоимость товаров, количество которых не превышает Х, на 50%;- распечатать список новых цен.Количество Х вводится по запросу с клавиатуры.

25

Создать массив записей, содержащий информацию о количестве изделий, собранных рабочими цеха. Каждая запись содержит поля – фамилия рабочего, наименование цеха, количество собранных им изделий за месяц. Написать программу, выдающую следующую информацию:- список рабочих цеха, отсортированный по полю фамилия;- общее количество изделий, собранных рабочими цеха за месяц.

26

Создать массив записей, содержащий сведения о сотрудниках таксомоторного парка. Каждая запись содержит поля – фамилия водителя, номер автомобиля, количество выездов за месяц, оплата за каждый выезд.Написать программу, выдающую следующую информацию:- подсчитать общее количество выездов за месяц;- фамилию водителя, с наибольшей суммой оплат за выезды.

27

Создать массив записей, содержащий сведения о туристической фирме. Каждая запись содержит поля – наименование страны, цель поездки (например: экскурсионная, отдых), стоимость тура. Написать программу, выдающую следующую информацию:- список туров с целью поездки Х с указанием наименования города и стоимости тура;- самый дешёвый тур с целью поездки Х.Цель поездки Х вводится по запросу с клавиатуры.

28

Создать массив записей, содержащий сведения о товарах автосалона. Каждая запись содержит поля – модель автомобиля, цвет, номер двигателя, стоимость. Написать программу, выдающую следующую информацию:- список автомобилей модели Х с указанием цены, цвета и номера двигателя;- самый дешевый автомобиль модели Х.Модель автомобиля Х вводится по запросу с клавиатуры.

29 Создать массив записей, содержащий сведения о сотрудниках института. Каждая запись содержит поля – фамилия, пол, название

111

Page 112: ВВЕДЕНИЕedu.tltsu.ru/sites/sites_content/site216/html/media82528/…  · Web viewТермин «информатика» приобретает новое дыхание

отдела, год рождения, стаж. Написать программу, выдающую следующую информацию:-список сотрудников женского пола в возрасте от 18 и до 55 лет, с указанием стажа работы;-средний возраст сотрудников женского пола отдела Х.Наименование отдела Х вводится по запросу с клавиатуры.

30

Создать массив записей, содержащий сведения о товарах некоторого склада. Каждая запись содержит поля – наименование, цена единицы товара, количество. Написать программу, выдающую следующую информацию:-список товаров, стоимость которых превышает Х рублей с указанием количества;-общую стоимость товаров на складе.Стоимость Х вводится по запросу с клавиатуры.

112


Recommended