close

Вход

Забыли?

вход по аккаунту

?

901.Основы программирования. Ч

код для вставкиСкачать
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Министерство образования и науки Российской Федерации
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
«Оренбургский государственный университет»
Колледж электроники и бизнеса
Л.А. Дель, Р.Н. Салимова
ОСНОВЫ ПРОГРАММИРОВАНИЯ
Часть 1
Рекомендовано к изданию Редакционно–издательским советом
федерального государственного бюджетного образовательного учреждения
высшего профессионального образования
«Оренбургский государственный университет»
в качестве методических указаний для студентов, обучающихся по программе
среднего профессионального образования по специальности 230115 Программирование в компьютерных системах
Оренбург
2014
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
УДК 681.3.06 (075.32)
ББК 22.18я723
Д 29
Рецензент-Заведующая методическим кабинетом колледжа электроники и бизнеса Т.В.Атяскина
Д 29
Дель Л.А.
Основы программирования: методические указания к лабораторным работам. Часть 1/Л.А. Дель, Р.Н.Салимова; Оренбургский гос.ун-т - Оренбург: ОГУ, 2014. – 94 с.
Методические указания предназначены для выполнения лабораторных работ, обеспечивающих учебный процесс по дисциплине
“Основы программирования” часть 1 студентам очной формы обучения специальности 230115 “Программирование в компьютерных системах” в колледже электроники и бизнеса ОГУ для студентов 2
курса очной формы обучения.
Методические указания составлены с учетом федеральной государственого образовательного стандарта среднего профессионального образования по направлению подготовки и дипломированных специалистов,
утвержденного приказом № 696 от 23 июня 2010 года Министерства
образования и науки Российской Федерации.
УДК 681.3.06 (075.32)
ББК 22.18я723
 Дель Л.А., 2014
 Салимова Р.Н., 2014
 ОГУ, 2014
2
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Содержание
Введение………………………………………………………………………. 7
1 Лабораторная работа № 1. Турбо среда языка Паскаль. Главное меню.
Работа с окнами……………………………………………………………….. 9
1.1 Ход работы………………………………………………………………... 9
1.2 Содержание отчета……………………………………………………….. 10
1.3 Вопросы для допуска к лабораторной работе № 1…………………….. 10
1.4 Методические указания к лабораторной работе № 1…………………... 10
1.4.1 Запуск среды Турбо-Паскаль.…………………………………………. 10
1.4.2 Режимы работы………………………………………............................ 11
1.5 Вопросы к защите лабораторной работы № 1………………………….. 13
2 Лабораторная работа № 2. Составление и отладка программ линейной
структуры……………………………………………………………............... 14
2.1 Ход работы………………………………………………………………... 14
2.2 Содержание отчета……………………………………………………….. 14
2.3 Вопросы для допуска к лабораторной работе № 2…………………….. 15
2.4 Методические указания к лабораторной работе № 2………………...... 15
2.4.1 Структура программы………………………………………………….. 16
2.4.2 Линейные алгоритмические конструкции…………………………….. 20
2.5 Задания базового уровня…………………………………………………. 20
2.6 Задания повышенного уровня…………………………………………… 23
2.7 Вопросы к защите лабораторной работы № 2………………………….. 24
3 Домашняя работа №1. Выполнение индивидуальной работы по теме
«Линейная структура данных»………………………………………………. 26
3.1 Ход работы………………………………………………………………... 26
3.2 Содержание отчета……………………………………………………….. 27
3.3 Варианты заданий домашней работы № 1……………………………… 27
3.4 Вопросы к защите домашней работы № 1……………………………… 30
3
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
4 Лабораторная работа № 3. Составление и отладка программ разветвляющейся структуры…………………………………………………………. 30
4.1 Ход работы………………………………………………………………... 31
4.2 Содержание отчета……………………………………………………….. 31
4.3 Вопросы для допуска к лабораторной работе № 3…………………….. 31
4.4 Методические указания к лабораторной работе № 3………………….. 32
4.4.1 Ветвящиеся алгоритмические конструкции………………………….. 32
4.5 Задания базового уровня…………………………………………………. 34
4.6 Вопросы к защите лабораторной работы № 3…………………………. 38
5 Лабораторная работа № 4. Составление и отладка программы, используя поливариантные условия………………………………………………… 39
5.1 Ход работы………………………………………………………………... 39
5.2 Содержание отчета……………………………………………………….. 39
5.3 Методические указания к лабораторной работе № 4…………………... 40
5.4 Задания базового уровня ………………………………………………………… 41
5.5 Вопросы к защите лабораторной работы №4…………………………… 44
6 Домашняя работа №2. Выполнение индивидуальной работы по теме
«Разветвляющие процессы с использованием символьных переменных»
44
6.1 Ход работы………………………………………………………………... 44
6.2 Содержание отчета……………………………………………………….. 44
6.3 Варианты заданий………………………………………………………… 45
6.4 Вопросы к защите домашней работы №2……………………………….. 47
7 Лабораторная работа № 5. Составление и отладка программ циклической структуры………………………………………………………………... 47
7.1 Ход работы………………………………………………………………... 47
7.2 Содержание отчета……………………………………………………….. 48
7.3 Вопросы для допуска к лабораторной работе № 5…………………….. 48
4
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
7.4 Методические указания к лабораторной работе № 5…………………... 48
7.4.1 Операторы цикла с параметрами………………………………………. 48
7.4 2 Операторы цикла с постусловием……………………………………... 52
7.4.3 Операторы цикла с предусловие………………………………………. 54
7.4.4 Пустой оператор………………………………………………………… 55
7.5 Задания базового уровня…………………………………………………. 55
7.6 Задания повышенного уровня…………………………………………… 57
7.7 Вопросы к защите лабораторной работы № 5…………………………. 60
8 Лабораторная работа № 6. Составление и отладка программ с использованием процедуры и функции……………………………………………...
60
8.1 Ход работы………………………………………………………………... 60
8.2 Содержание отчета……………………………………………………….. 61
8.3 Вопросы для допуска к лабораторной работе № 6…………………….. 61
8.4 Методические указания к лабораторной работе № 6………………….. 62
8.5 Задания базового уровня ………………………………………………… 63
8.6 Вопросы к защите лабораторной работы № 6………………………… 66
9 Домашняя работа № 3. Выполнение индивидуального задания по темам «Циклические структуры», «Процедуры и функции»…………………
67
9.1 Ход работы………………………………………………………………... 67
9.2 Содержание отчета……………………………………………………….. 67
9.3 Варианты заданий………………………………………………………… 68
9.4 Вопросы к защите домашней работы № 3………………………………. 69
10 Лабораторная работа № 7. Составление и отладка программ на одномерные и двумерные массивы……………………………………………….
70
10.1 Ход работы…………………………………………………………………………. 70
10.2 Содержание отчета……………………………………………………… 70
10.3 Вопросы для допуска к лабораторной работе № 7……………………. 71
10.4 Методические указания к лабораторной работе № 7…………………. 71
10.5 Задания базового уровня………………………………………………... 73
10.6 Вопросы к защите лабораторной работы № 7……………………….. 78
5
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
11 Лабораторная работа № 8. Составление и отладка программ со строковыми типами данных……………………………………………………….
79
11.1 Ход работы………………………………………………………………. 79
11.2 Содержание отчета……………………………………………………… 79
11.3 Вопросы для допуска к лабораторной работе № 8…………………… 80
11.4 Методические указания к лабораторной работе № 8………………… 80
11.5 Задания базового уровня……………………………………………….. 82
11.6 Вопросы к защите лабораторной работы № 8……………………….. 84
12 Домашняя работа № 4. Выполнение индивидуального задания по теме
«Одномерные и двумерные массивы», «Строковый тип данных»………...
84
12.1 Ход работы………………………………………………………………. 85
12.2 Содержание отчета……………………………………………………… 85
12.3 Варианты заданий……………………………………………………….. 85
12.3.1 Задачи на одномерные и двумерные массивы………………………. 85
12.3.2 Задачи на строковый тип данных……………………………………. 89
12.4 Вопросы к защите домашней работы № 4……………………………... 92
Список использованных источников………………………………………... 94
6
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Введение
Предмет «Основы программирования» является общепрофессиональной
дисциплиной, устанавливающей базовый уровень знаний для освоения других
общепрофессиональных и специальных дисциплин.
В результате освоения дисциплины студент должен:
иметь представление:
- о методах структурного и модульного программирования;
- абстракциях основных структур данных (множества, записи и т.п.) и
методах их обработки и способах реализации;
- методах и технологиях программирования;
знать:
- этапы решения задачи на компьютере;
- типы данных;
- базовые конструкции изучаемых языков программирования;
- принципы структурного и модульного программирования;
- принципы объектно-ориентированного программирования;
уметь:
- работать в среде программирования;
- реализовывать построенные алгоритмы в виде программ на конкретном
языке программирования;
иметь навыки:
- описания структур данных;
- описания основных базовых конструкции;
- программирования на языках высокого уровня;
- работы в различных средах программирования.
Предшествующие курсы, на которых непосредственно базируется дисциплина «Основы программирования» являются:
- информационные технологии,
- операционные системы и среды,
7
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
- теория алгоритмов.
Вместе с тем курс «Основы
программирования» является общепро-
фессиональным, устанавливающим базовый уровень знаний для освоения других
общепрофессиональных и специальных дисциплин таких, как «Технология разработки программного обеспечения», «Основы объектно-ориентированного
программирования».
Курс рассчитан на 72 часа лекций, 52 часа лабораторно-практических занятий. Промежуточная оценка знаний и умений студентов проводится с помощью контрольных работ, которые включают в себя основные проблемы курса.
Итоговый контроль в виде экзамена предусмотрен на втором курсе.
8
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
1 Лабораторная работа № 1. Турбо среда языка Паскаль.
Главное меню. Работа с окнами
Цель работы. Изучить главное меню Турбо среды. Научиться набирать
и редактировать программы, сохранять программы на диск, выводить на печать, работать с окнами в Турбо Паскале.
1.1 Ход работы
1) Изучить главное меню Турбо среды.
2) Составить программу вывода на экран предложенного текста.
3) Ввести текст программы.
4) Используя команды редактора текста, отредактировать программу.
5) Сохранить программу на диске А под именем lab1_1.pas.
6) Запустить программу на выполнение.
7) Распечатать текст программы.
8) Внести изменения в программу, используя основные команды работы с
текстовыми блоками.
9) Сохранить изменённый файл на диске А под именем lab1_2.pas.
10) Работа с буфером обмена.
10.1 Выделить программу.
10.2 Скопировать в буфер.
10.3 Открыть новое окно.
10.4 Поместить в новое окно фрагмент из буфера.
11) Открыть созданные файлы в разных окнах и показать работу с окнами
в Турбо среде.
11.1 Расположить окна в каскадном виде.
11.2 Изменить размер окна.
11.3 Удалить окно.
11.4 Удалить все окна.
9
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
12) Составить отчёт по работе.
13) Защитить работу.
1.2 Содержание отчёта
Отчет по лабораторной работе должен содержать:
1) тему работы;
2) цель работы;
3) ход работы;
4) постановку задачи;
5) распечатку программы;
6) результаты работы программы.
1.3 Вопросы для допуска к лабораторной работе № 1
1) Что такое языки программирования? Их классификация.
2) Язык программирования Паскаль, его особенности.
3) Зачем нужны трансляторы? Что такое компилятор, чем он отличается
от интерпретатора?
4) Каковы возможности и в чем преимущества интегрированной среды
программирования?
5) Перечислите основные файлы среды программирования Турбо Паскаль
и их назначение.
1.4 Методические указания к лабораторной работе № 1
1.4.1 Запуск среды Турбо-Паскаль
Для вызова Турбо Паскаля необходимо отыскать в древовидной
структуре каталогов ПК каталог PASCAL и в нем файл turbo.exe. В таблице 1
можно посмотреть назначение всех функциональных клавиш.
10
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Таблица 1 – Функциональные клавиши и их назначение
Функциональные
клавиши
1
F1
F2
F3
F4
F5
F6
F7
F8
Alt-F9
F10
Ctr-F9
Alt-F5
Alt-X
Назначение
2
Справка
Запись редактируемого текста в файл на диске
Прочитать текст с диска
Отладочный режим
Увеличивает окно отладки на весь экран
Смена окна редактора на отладочное
Используется в отладочном режиме для выполнения следующей
строки программы; если в строке есть обращение к процедуре
(функции), то входит в эту процедуру и останавливается перед
исполнением первого ее оператора
Используется в отладочном режиме, т.е. выполняет следующую
строку программы; если в строке есть обращение к процедуре
(функции), исполняет ее и не прослеживает ее работу
Компиляция программы
Перейти к диалоговому выбору режима работы с помощью
главного меню
Компиляция и выполнение программы
Сменить окно редактора на окно вывода результатов работы программы
Выход из среды Турбо-Паскаля
1.4.2 Режимы работы
После запуска среды программирования Турбо Паскаля в верхней части
экрана выводится меню, состоящее из 10 пунктов:
1) File – режим работы с файлом:
а) New – создать новый файл;
б) Open – открыть ранее созданный файл;
в) Save – сохранить на диске под текущим именем;
г) Save as – сохранить на диске, с указанием маршрута файла;
2) Edit – редактирование файла:
а) Undo – отменить;
11
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
б) Redo – отменить последнюю команду Undo в строке;
в) Cut – вырезать;
г) Copy – копировать;
д) Paste – вставить;
ж) Clear – очистить;
з) Show Clipboard – открыть карман;
3) Search – поиск файла;
4) Run – запуск программы на выполнение;
а) Step Over – выполнять команды построчно (пошагово);
б) Trace into – трассировать команды;
в) Go to cursor – перейти на курсор;
г) Program reset – сброс программы;
д) Parametr – параметры;
5) Compile – компиляция программы;
а) Make – сборка;
б) Build – полная сборка;
в) Destination Memori – назначение;
г) Primari file – основной файл;
д) Clear primari file – отменить выбор файла;
ж) Information – информационное окно;
6) Debug – режим отладки:
а) Breakpoint – точка прерывания;
б) Callstacr – окно последовательности процедур;
в) Register – регистр центрального процессора;
г) Watch – открыть окно наблюдения;
7) Tools – инструменты;
8) Options – опции;
9) Window – окно;
10) Help – помощь.
12
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Открыть окно Help-помощи можно не только из меню. В таблице 2 показаны
клавиши справочной службы.
Таблица 2 – Справочная служба Турбо Паскаля
Клавиша
F1
Shift + F1
Ctrl + Fl
Alt + Fl
Назначение
Получение контекстно-зависимой поправки
Выбор справки из списка доступных справочных сообщений
Получение справки о нужной стандартной процедуре, функции,
о стандартной константе или переменной
Получение предыдущей справки
1.5 Вопросы к защите лабораторной работы № 1
1) Как запустить среду программирования Турбо Паскаль?
2) Перечислите основные компоненты окна редактирования программ
среды программирования Турбо Паскаль. В чем их назначение?
3) В чем заключается назначение пунктов File, Edit, Run, Compile главного меню среды программирования Турбо Паскаль?
4) В чем заключается назначение следующих опций пункта меню File:
Open, Save As, New, Save, Exit?
5) Опишите значение информации в строке статуса окна редактирования
интегрированной среды программирования: F1 Help; F2 Save; F3 Open; Alt+F9
Compile; F9 Make; Alt+F10 Local menu.
6) Что такое локальное меню, какие локальные меню имеются в интегрированной среде программирования? Как их вызывать?
7) Как откомпилировать файл программы?
8) В чем отличие пункта Run от пункта Compile главного меню интегрированной среды программирования?
9) Как посмотреть результаты выполнения программы в окне пользователя?
13
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
10) Каково назначение информационно-справочной системы среды программирования
Турбо
Паскаль?
Почему
ее
называют
контекстно-
ориентированной? Как осуществляется управление системой помощи?
2 Лабораторная работа № 2. Составление и отладка
программ линейной структуры
Цель работы. Научиться составлять и редактировать программы линейной структуры на языке Turbo Pascal в режиме диалога, записывать алгоритм
решения задач своего варианта. Познакомиться с диагностическими сообщениями компилятора об ошибках при выполнении программ.
2.1 Ход работы
1) Изучить теоретический материал по теме лабораторной работы (лекции, учебники).
2) Составить программы по заданиям своего варианта.
3) Запустить программы на выполнение.
4) Отредактировать программы и сохранить их на диске А под именами
lab2_1.pas, lab2_2.pas, lab2_3.pas.
5) Распечатать результаты работы программ.
6) Составить отчёт по работе.
7) Защитить работу.
2.2 Содержание отчёта
Отчет по лабораторной работе должен содержать:
1) тему работы;
2) цель работы;
3) ход работы;
4) постановку задачи;
14
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
5) распечатку программы;
6) результаты работы программы.
2.3 Вопросы для допуска к лабораторной работе № 2
1) Что такое переменная?
2) Как ввести строку программы в память ЭВМ?
3) Какова структура программы в Turbo Pascal?
4) В каком порядке выполняются строки программы?
5) Какая команда запускает программу на выполнение?
6) Что такое программа линейной структуры?
7) Типы данных в Turbo Pascal.
2.4 Методические указания к лабораторной работе № 2
Правила языка:
- использовать буквы латинского алфавита;
- выделять в операторные скобки несколько операторов для одновременного их выполнения;
- в конце оператора ставить точку с запятой;
- смысловые части выделять одинаковым отступлением от начала строки.
Данные:
- константы (не изменяются в процессе выполнения программы);
- переменные (значения возникают и могут изменяться в процессе выполнения программы).
Типы данных – множество величин, объединенных определенной совокупностью допустимых операций. В таблице 3 представлены простые типы переменных.
15
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Таблица 3 – Простые типы переменных
Тип
переменных
1
Integer
Real
Char
String
Boolean
Требуемая память (байт)
2
Целочисленные данные, во внутреннем представлении занимают 2 байта
Вещественные данные, занимают 6 байтов
Символ, занимает 1 байт
Строка символов, занимает МАХ+1 байт, где МАХ – максимальное число символов в строке
Логический тип, занимает 1 байт и имеет два значения: false
(ложь) и true (истина)
Целый тип переменных
Описывается – Integer.
Целой считается переменная, которая удовлетворяет условию: -32768 <=
N<= 32767
Если целое число превышает эти значения, то оно воспринимается компьютером как вещественное и должно быть описано Real.
2.4.1 Структура программы
Заголовок
program NAME_Z (input, output);
Раздел описания
label;
const;
type;
var;
procedure, function;
Блок основных операторов
begin
раздел операторов
end.
Заголовок содержит служебное слово program NAME_Z;
Тело программы состоит из 6 разделов, которые должны следовать в
строго определенном порядке:
16
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
1) раздел модулей – uses
Данный раздел подключает к программе системные модули из библиотек.
Uses <список имен модулей через запятую>;
Например: Uses Crt, Graph;
2) раздел меток – label
Любой оператор в программе может быть выделен среди остальных операторов. Записав перед ним через двоеточие метку – такой оператор называется помеченным оператором.
Пример:
25:
х:= х + 25;
В Паскале в качестве меток используются натуральные числа от 0 до
9999.
Пример:
label 78, 25, 9;
В разделе меток объявляемые метки могут быть перечислены в произвольном порядке независимо от того, в каком порядке эти метки встречаются в
разделе операторов, при этом любая метка в разделе операторов может быть
указана только один раз;
3) раздел констант – const
Константа – переменная, которая не изменяется в процессе выполнения
программы.
В Паскале предусмотрена возможность константе дать определенное имя
и использовать его в качестве синонима этой константы.
Пример:
Const N=10; pi=3.14159265; pin=-pi;
4) раздел типов – type
В Паскале существуют стандартные типы, которые описывать не надо
(они считаются уже описанными: integer, real, char, boolean и т.д.).
В Паскале есть возможность создать свой новый тип данных;
17
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
5) раздел переменных – var
Переменная – это величина способная изменяться в процессе выполнения
программы. Каждая переменная, до работы с ней должна быть описана, т.е.
указан тип переменной.
Попытка в процессе выполнения программы присвоить переменной значение иного типа расценивается как ошибка в программе.
Пример:
Var i, j, r: integer;
x, h, sum: real;
d, 1, r: string;
6) раздел процедур и функций – procedure or function
Раздел процедур и функций не начинается каким-то специальным служебным словом. Начало данного раздела легко определяется по служебным
словам procedure или function;
7) раздел операторов
Это основной раздел программы. Именно здесь задаются те действия, которые должны быть выполнены по данной программе.
Выполнение программы сводится к выполнению раздела операторов, т.е.
к выполнению последовательности операторов, заключенных в операторные
скобки:
begin
оператор 1;
оператор 2;
……………..
оператор N
end.
Составной оператор
Составной оператор – последовательность произвольных операторов программы, заключаемых в операторные скобки:
begin.... end
18
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Составные операторы дают возможность писать программы по современной технологии структурного программирования (без операторов перехода
GOTO).
Допускается произвольная глубина вложения составных операторов. Весь
раздел операторов представляет собой один составной оператор
begin
begin
begin
begin
begin
end
end
end
end
end.
{начало раздела операторов}
{конец программы}
Оператор ввода
Для ввода данных предназначен оператор:
- read (a1,a2,a3,...,an), где a1...an – переменные, которые последовательно
принимают значения, вводимые с клавиатуры;
- readln (a1,a2,a3,...,an); где a1...an – переменные, которые последовательно принимают значения, вводимые с клавиатуры, и после этого происходит переход на новую строку;
- readln – переход на новую строку.
Оператор вывода
Для вывода данных предназначен оператор:
- write (b1,b2,b3,...,bn), где (b1,b2,b3,...,bn) – выводятся на экран значения
переменных;
- writeln (b1,b2,b3,...,bn) – выводятся на экран значения переменных и после этого переход на новую строку;
- write (b1:m:n) – выводятся на экран значения переменных в зонном формате; m – количество символов, отводимое под все число, n – количество символов, отводимое под дробную часть числа;
19
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
- writeln – осуществляется переход на новую строку.
Оператор присваивания
В операторе присваивания используется знак присваивания :=
Пример:Переменной А присвоить значение выражения сos2L+sin L2
A:=cos(L)*cos(L)+sin(L*L);
2.4.2 Линейные алгоритмические конструкции
В линейной алгоритмической конструкции операторы выполняются последовательно друг за другом. Используются три оператора: оператор ввода,
присваивания и оператор вывода информации.
Примеры: Вычислить площадь треугольника по формуле Герона.
program ABS;
{вычисление площади по формуле Герона}
var s, a, b, c, p : real;
begin
writeln ('ввести значение а, b, с');
readln (a, b, c);
p: = (a+b+c)/2; s: = sqrt (p* (p-a) * (p-b) * (p-c) );
writeln('Площадь треугольника s=', s:m:n);
end.
2.5 Задания базового уровня
Задание № 1
Определить декларативную часть предложенной программы. Набрать
программу в среде программирования Турбо Паскаль. Варианты индивидуальных заданий указаны в таблице 4.
20
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Таблица 4 – Индивидуальные варианты к заданию № 1
1. Q=5
Z=Q+8
Writeln (Q,Z)
2. L=9
X=L*L+4
Writeln (L,X)
3. A=9
D=36-A
Writeln (A,D)
4. C=8
H=C/8
H=H*H
Writeln (C,H)
5. P=3
H=P+7
H=H/2
Writeln (P,H)
6. R=16
Writeln(R)
R=R/8
Writeln(R)
7. F=2
P=3
P=P+3
F=P+F
Writeln(P,F)
8. L=3
L=L+2
P=L*L
Writeln(L,P)
11. A=1.5
B=A/3+1
Writeln(B,A)
12. H=15
P=9
H=H+P
Writeln(P,H )
13. A=5
A=A+B
A=A+76
Writeln(A)
14. P=2
P=P-P
Writeln(P)
P=P+6
Writeln(P)
15. X=10
Y=15
X=(X+Y)/2
Writeln(Y,X)
16 .A=3
B=5
A=A*2
B=B*A
Writeln(A,B)
17. R=6
D=R*4
Writeln(R,D)
21. Q=53
L=Q+4
Writeln(Q,L)
22. D=31
S=D+9
S=S-30
Writeln(D,S)
23. D=4
M=3
M=M*D+D
Writeln(M,D)
24. S=2
S=S-1
S=S*20
Writeln(S)
18. H=12
H=H+5
F=H*2
Writeln(H,F)
28. X=5.4
Z=(X+3)*5
Writeln(X,Z)
25. H=5.5
T=(H-44)*2
Writeln(H,T)
26. D=2.5
D=D*2
S=D*D
Writeln(D,S)
27. V=4.2
V=V*5+10
Writeln(V)
21
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Продолжение таблицы 4
9. F=4
F=F+23
Writeln(F)
10. T=0
L=T+3
Writeln(T,L)
19. T=2
K=23
K=K*T
Writeln(T,K)
20. F=5
F=F+F
Writeln(F)
Y=F*3
Writeln(Y)
29. R=5
K=R*2
K=K*K
Writeln(R,K)
30. H=6
K=3
K=K+H*2
Writeln(H,K)
Задание № 2
Составить программу для вычисления значения функции Y при заданном
значении аргумента X. Варианты индивидуальных заданий указаны в
таблице 5.
Таблица 5 – Индивидуальные варианты к заданию № 2
1. Y=X+1/3+2(X+1)2
X= 5
2. Y=X+2/3+4X2
X= 6
3. Y=X2/2+3(X2-1)
X= 4
4. Y=(X+1)2+2(X+1)/4
X= -3
5. Y=X/3+(X/3)2-1
X=-6
6. Y=X2+1/2-27/X
X=3
7. Y=3(X+1)2+2(X2+1)+2
X=2
8. Y=X/2+(X/2)2+5
X= -4
9. Y=4X2+2(X2+1)
X=3
10. Y=2(X+3)+3(X+3)2
X= -2
11. Y=6X2+3(X2+1)
X= -4
22
16. Y=2X2-8X+9
X= -1
17. Y=5/X+(X2-4)
X=5
18. Y=X2(X+1)+(X2+2)
X= -4
19. Y=X2-4(X-1)(X-2)
X= -3
20. Y=(X-4)X2+X/2
X= -2
21. Y=4X2+4X+4
X=1
22. Y=X2/2+4X-3
X=-6
23. Y=3X2/2-4(X-3)
X=4
24. Y=(X-3)2+4(X+5)
X=3
25. Y=5X-3(X-4)2
X= -5
26. Y=3X2-4(2-X)+5
X=2
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Продолжение таблицы 5
12. Y=2(X+1)+3(X2+1)2
X= -2
13. Y=X2(X+1)2
X= 6
14. Y=X2+2X+3
X= 4
15. Y=X/2+(X/2)2
X= 8
27. Y=X2/4+5X-6
X=6
28. Y=2(X+6)-(4-X)2
X= -3
29. Y=4(5-X)2+3X-1
X=3
30. Y=5X-3(X+4)-X2
X= -2
2.6 Задания повышенного уровня
Составить программу по заданию своего варианта:
1) Дано cos α. Найти значения остальных тригонометрических функций.
2) Вычислить количество теплоты, полученного при сгорании Х грамм
керосина, если его теплота сгорания q.
3) Вычислить длину окружности и площадь круга по заданному радиусу.
4) Найти среднее арифметическое и среднее геометрическое трёх натуральных чисел.
5) Вычислить периметр и площадь треугольника с заданными сторонами.
6) Вычислить периметр квадрата, если дана его площадь.
7) Найти периметр и площадь прямоугольного треугольника с заданными
катетами.
8) Вычислить объём и площадь полной поверхности куба, если дано его
ребро.
9) Найти периметр треугольника заданного координатами своих вершин.
10) Найти площадь треугольника заданного координатами своих вершин.
11) Вычислить объём и площадь боковой поверхности цилиндра, если даны радиус основания и высота цилиндра.
12) Найти сумму, разность, произведение и частное двух ненулевых чисел.
13) Даны два числа. Найти среднее арифметическое их квадратов и среднее арифметическое их модулей.
23
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
15) Скорость лодки в стоячей воде V км/ч, скорость течения реки U
км/ч(U<V). Время движения лодки по озеру Т1 ч, а по реке (против течения) –
Т2 ч. Определить путь S, пройденный лодкой.
14) Найти площадь кольца, внутренний радиус которого равен R1, а
внешний радиус равен R2 (R1<R2).
15) Найти площадь и радиусы вписанной и описанной окружностей для
равностороннего треугольника.
16) Дана длина окружности. Найти площадь круга, ограниченного этой
окружностью.
17) Дана площадь круга. Найти длину окружности, ограничивающей этот
круг.
18) Найти периметр и площадь равнобедренной трапеции с основаниями
a и b(a>b) и острым углом α при большем основании.
19) Найти периметр и площадь прямоугольной трапеции с основаниями a
и b(a>b) и острым углом α.
20) Даны координаты трёх вершин треугольника (x1,y1), (x2,y2), (x3,y3).
Найти его периметр и площадь.
21) Найти корни квадратного уравнения заданного своими коэффициентами А, В, С (коэффициент А не равен 0), если известно, что дискриминант
уравнения неотрицателен.
22) Дан радиус шара. Найти объём шара и площадь полной поверхности
шара.
23) Дано sinα. Найти значения остальных тригонометрических функций.
24) Дан диаметр шара. Найти объём шара и площадь полной поверхности
шара.
25) Найти объём и площадь полной поверхности конуса, зная радиус и
высоту.
26) Вычислить площадь и периметр прямоугольника с заданными сторонами.
24
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
27) Найти объём и площадь полной поверхности цилиндра, зная радиус и
высоту.
28) Найти объём и площадь полной поверхности пирамиды, зная высоту.
29) Дан радиус шара. Найти объём шара и площадь полной поверхности
шара.
2.7 Вопросы к защите лабораторной работы № 2
1) Укажите буквы, символы, составные символы: Y, <>, +, *, R, к, $, !.
2) Что в списке можно рассматривать как идентификаторы: FIO, ФИО,
22222, X, Y, >=, &, $, Summa, Rezult.
3) Укажите идентификаторы, которые проще воспринимаются при чтении, объясните причину: klassl; Klass1; summadoxoda; SummaDoxoda; nomerdoma; NomerDoma.
4) Сколько в следующем списке зарезервированных слов: X, Program, Y,
Summa, MyMoney, Произведение, Vova, begin, end, if, repeat, Read?
5) В каких случаях надо использовать переменные:
а) если в программе используется какое-то число?
б) если в вычислениях какой-то операнд постоянно меняет свое значение?
в) если операнд в выражении хотя бы один раз меняет значение?
6) Какие заголовки программ правильны: program Zarplata? program Сумма? program Summa Nalogov? программа TeachKurs? program 12Kurs2? program
SummaElementov?
7) Какая структура программы правильна:
а) рrogram MyProgram;
begin
Writeln('Привет');
end.
б) program MyFirst;
begin
X:=Y+100;
end.
8) Какой из перечисленных разделов обязателен в программе: var; const;
type; begin .. end; label?
25
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
9) Какие из комментариев неправильны:
а) { Программа вычисляет логарифм введенного числа };
б) (* Это тоже комментарий *);
в) {{ Комментарий в комментарии }};
г) (* { И это комментарий в комментарии } *);
д) {(* Еще один вариант *)};
е) (*(* Самый последний вариант *)*).
10) Есть
ли
причины
к
невыполнению
следующей
программы:
program Test;
begin
end.
11) Для чего используется слово uses?
а) такого слова нет в языке Турбо Паскаль;
б) это какой-то пользовательский идентификатор;
в) с его помощью подключают стандартные библиотеки;
г) это стандартная константа, равная 3,14;
д) это логическая операция.
12) В разделе процедур и функций описываются только стандартные процедуры?
а) да, только стандартные;
б) нет, только пользовательские;
в) и стандартные, и пользовательские;
г) такого раздела вообще не может быть в программе.
3 Домашняя работа №1. Выполнение индивидуальной
работы по теме «Линейная структура данных»
Цель работы. Обобщить знания студентов по теме: «Линейная структура
данных». Научиться составлять и редактировать программы линейной структуры на языке Turbo Pascal.
26
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
3.1 Ход работы
1) Изучить теоретический материал по теме «Линейная структура данных» (лекции, учебники).
2) Составить программу по заданию своего варианта.
5) Запустить программу на выполнение.
6) Отредактировать программу и сохранить её на диске А под именем
dom1.pas.
7) Распечатать результат работы программы.
8) Составить отчёт по работе.
9) Защитить работу.
3.2 Содержание отчёта
Отчет по домашней работе должен содержать:
1) тему работы;
2) цель работы;
3) ход работы;
4) постановку задачи;
5) распечатку программы;
6) результат работы программы.
3.3 Варианты заданий домашней работы № 1
Составить программу вычисления значения выражения:
1) y 
(a  1/ ln sin x  cos(ln ax  b ) ) 2
tg 2 (ln 2 2 x)
;
27
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
2)
3)

tgx  1  1 a 2  tg 2
z

arctg 


xa
x
 ln x  a 
;
 cos x  sin x 


2
ctg  cos x  e ax1, 2 


y
2
2
ln sin x  cos x  tg x  a
2
4) z  a  a  e
5) y 
1

e b
x
x bln x  a
 ln
a  b  lg x
;
a  b  tg 2 x

 b

b
x  ab   x   arctg 
 tgx   ;
x
a
 ax  e


  x  b 
 ;
 sin  lg 
 arctgx  
a  bx

 
ln x  a
6) z  2 


x 2  a 
sin 2 ln 2 x  e ax
7) y 

 x  arctg a x   a 2  x 2
3

2

 ;


 x  b 4,75  bx 
;

arctg

sin
x



8) z  b 3 ln x  e bx  arctg 2 
9) y  e x  aarctg 2ax 0,441 
10) y 

sin arctg

a 5  ln x
;
cos ax
x  0,8  ln bx 
a  b  sin 2 x  a   e ln x
 ;
 cos x  a 
;
11) z  e 3 x  

 sin( х * a ) 
12) y 
28
e
 1  3  cos 2 ax 
1  cos x
 ln
;
3
ax
b  ln a  b  cos x
cos ax  b
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

 cos x  a  x 3 x  4,2

3x
13) z  e  
x x x



 lg e ax b
x 2  e ax b
14) y 
 arctg 
 xa
2 sin  x  ab 


2
2


 ;


 ;


 e x a  cos ln x 


15) z  x  arctg 
;
2 
2
 a  cos ax  a  sin ax  


sin 2 e x  ln  ax b   arctg x  b
16) y 
;
ax  sin x  ab
17) y 
18) y 
 1  3 cos 2 ax 
;
 arctg 
2

2  cos x  ln x  ab
 4  3 sin bx 
1
x  1  ln e x  a  
1  arctgx
2

lg tg x  a 

ln x
a
;
4

arctg e
 e a b
19) z 
 a  tgx ;
1  x 2  sin 2 x  cos x 2 
 2  ln a  b 3  
2 
3
20) y 
a   a  2 ln x  
;
x  arctg ax
2 

21) z 
1  tg 2  x  b 


cos x   / 6 * 1 / 2  sin
2

1  sin 2  x  b 
22) y 
2  x  2x 

ln e  b 
x

;
 sin x ;
1
1  x ln x  b
23) z  ln y  lg ax  
2


y

;
x 
2
 x  a  sin x 

4

29
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
x3  b
24) y 
  sin  ln
cos x  a  
x
ax  b   cps x  ;


25) z 
4 a sin x 
e
a
26) y 
1
 ln tg ab    
sin ln x  b
27) z  ln
ax

 ln x 
1  tgx  lg x
cos

x  e ln x

cos 2 x  sin x 2 ;
ln x  cos x ;
sin 2 x  a

;
cos xa  x
 lg cos x  sin x
1

28) y 
 1 / 2 ln cos
21  sin ln x 
 a  cos x

29) z  ln lg x 
cos x  e x  arctg tg
30) y  ln ln  x  
ax  b
b


;


;
ax  b  arctg tg 2 x  sin x  a  .
3.4 Вопросы к защите домашней работы № 1
1. Как называются алгоритмы, в которых используется только структура
следования?
2. Каково значение процедур write и writeln?
3. Для чего в процедурах вывода write и writeln определяется ширина поля вывода?
4. Какие обозначения используются в форматах вывода?
5. Назовите процедуру ввода информации.
6. Сколько аргументов могут иметь процедуры read и readln?
7. Как набираются на клавиатуре значения переменных x1, x2, … , xn для
оператора read(x1, x2, … , xn)?
30
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
4 Лабораторная
работа
№ 3.
Составление
и
отладка
программ разветвляющей структуры
Цель работы. Научиться составлять программы решения задач на разветвляющиеся алгоритмы; научиться правильно использовать условную конструкцию if… then… else … и if… then.
4.1 Ход работы
1) Изучить теоретический материал по теме лабораторной (лекции, учебники).
2) Составить программы по заданиям своего варианта.
3) Запустить программы на выполнение.
4) Отредактировать программы и сохранить их на диске А под именами:
lab3_1.pas, lab3_2.pas.
5) Распечатать программы.
6) Распечатать результаты работы программ.
7) Составить отчет по работе.
8) Защитить работу.
4.2 Содержание отчета
Отчет по лабораторной работе должен содержать:
1) тему работы;
2) цель работы;
3) ход работы;
4) постановку задачи;
5) распечатку программ;
6) результаты работы программ.
31
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
4.3 Вопросы для допуска к лабораторной работе № 3
1) Что такое разветвляющийся алгоритм? Приведите пример разветвляющегося алгоритма из жизни.
2) Назовите известные вам виды ветвления?
3) В чем их отличие?
4) Изобразите блок–схемы для каждого из этих видов.
5) С помощью какого оператора может быть реализовано ветвление на
языке программирования Pascal?
4.4 Методические указания к лабораторной работе № 3
4.4.1 Ветвящиеся алгоритмические конструкции
Проверяется условие и в зависимости от результатов проверки выполнить
то или иное действие.
Краткая форма оператора
If <условие> then <oпepaтор 1>;
<оператор 2>;
<оператор 3>;
<oпeратор N>;
где
if - если;
<условие> - логическое выражение;
then - тогда;
<оператор 1> - оператор;
Если логическое выражение истинно, то выполняется <оператор1>, в
противном случае программа переходит к выполнению операторов, следующих
за оператором if (<оператор 2>, <оператор 3>...... <оператор N>).
Если условие ложно, то НЕ выполняется <oператор1>, а сразу выполняются следующие за ним операторы: <оператор 2>, <оператор 3>, .....,
<oператор N>.
32
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Полная форма оператора
if <условие> then < оператор1> else < оператор 2>;
< оператор 3>;
< оператор 4>;
< оператор 5>;
…
Если условие истинно, то выполняется <оператор 1>, затем последовательность операторов: <оператор 3>, <оператор 4> и т.д.
Если условие ложно, то выполняется <оператор 2>, затем выполняются
следующие по порядку операторы: <оператор 3>, <оператор 4> и т.д.
Любая встретившаяся часть ELSE соответствует ближайшей к ней "сверху" части THEN условного оператора.
Перед else не ставится точка с запятой, т.к. это один оператор if ... then ...
else .... Для наглядности программы операторы, следующие за словами else и
then можно писать на следующей строке.
Если за словами else и then необходимо выполнить группу операторов, то
тогда используются операторные скобки begin ... end.
Такая структура называется вложенной:
Begin
if <условие> then begin
< оператор 1>;
< оператор 2>;
…………
< оператор n>;
end
else begin
< оператор 1>;
< оператор 2>;
…………
< оператор n>;
end;
end.
33
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
4.5 Задания базового уровня
Задание № 1
Написать программу, вычисляющую функцию Y при заданном значении
аргумента.
k  1, если
k 1

1. y  k  12 , если 1  k  3 ;
k,
если k  3

z,
если z  3

3. y  3  z, если  3  z  0 ;

8z  z 2 , если
z0
x0
0,5x, если

2. y  2x 2 , если 0  x  2 ;
0,3x, если
x2

x 2 ,
если x  0


4. y  x3  5, если 0  x  2 ;
3x  1, если
x2


3k 3 ,
если k  2


5. y  k 2  2b, если  2  k  0 ;
5k  b, если
k0


b 2  a, если
b0

6. y  b * a, если 0  b  3 ;
 3
если b  3
b ,
a * k  1, если
k  2

7. y  k 2  b, если  2  k  0 ;
5k,
если
k0

a 2  b * x, если
x0

8. y  b * x  a, если 0  x  3 ;
b * x,
если x  3

m 2  2m  1, если
m  5

9. y  m  a,
если  5  m  2 ;
a * m  b,
если
m2

x 2 ,
если x  1

10. y  x3,
если 1  x  0 ;
2x  3, если x  0


a 2 ,
если a  0

11. y  b2  a, если 0  a  2 ;
 3
если a  2
a ,

34
a * z  b, если
z  10

12. y  a * z 2  b * z  c, если  10  z  1 ;
 3
если
z 1
z ,
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
a
если
m  2
m ,

13. y  m 2  a * m, если  2  m  5 ;
 3
если
m5
m ,

x 2  a x  c, если
x5


14. y  a 2 x  x 2 , если 5  x  10 ;

2
x  10
(x  2)  ac, если

mz 2  10,
если
z  3


15. y  (m  z)2 , если  3  z  3 ;
 2
2
z3
(z  m )/2, если

(a * b) 2  x 2 , если x  3


16. y  (a  b) 2  x , если  3  x  3 ;

5a  2b  x 2 , если
x3

 2
если
x  4
k ,

17. y  x 2  4x  k, если  4  x  2 ;
k
  x,
если
x  2
x
 x * (3a 2  2), если
x  10


18. y  2x 2  4a,
если  10  x  10 ;
 2
x  10
5x  10ax  5a, если

a x ,
если
x  2

19. y  ax 2  bx  ab, если  2  x  5 ;
3x  a,
если
x5

 kx
если x  2
 b ,

20. y  (bx  k)2 , если 2x  3 ;
5kx,
если x  3


ax 2  bx  10, если
x3

21. y  4x  a,
если 3  x  10 ;
3b  5x,
если x  10

mn  a,
если
a  5

22. y  am  an, если  5  a  2 ;
 2
am  an 2 , если
a2
3x 2  5x  8, если
x2


a
23. y  5x  ,
если  2  x  3 ;
x

4a 2  2a  x, если
x 3


2
x5
4ax  x , если

24. y  36x 2  6ax, если 5  x  20 ;

3
10a 2  , если
x  20
a

35
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

5m 2  5m, если
m  3

m m
25. y    , если 3  m  5 ;
2 4
m m
m5
 a  6 , если
(x z),
если x3
2
26. y (x z),
если 3x 7 ;
2
(x z)  (x z), если x 7
2
2

4ax 2  6x, если
x  7

27. y  3x 2 (a  b), если  7  x  10 ;
 2
 3a
x  10
 4b  x, если
 7ax 2

,
если
x  1
 m

(5m  5a)2
28. y  
x, если  1  x  3 ;
m

amx,
если
x3



 3a  m
если
m  5
 5 ,

29. y  23m2  a 2 , если  5  m  3 ;

2
m3
(m  a)  25a, если

x 2  p2  2, если
x  10


p
30. y  2x3  ,
если  x  x  3
3

5x 3  4x 2  2, если
x 3
















Задание № 2
Составить программу по заданию своего варианта:
1) Даны вещественные координаты точки, не лежащей на координатных
осях. Вывести номер координатной четверти, в которой находится данная точка.
2) Дан номер некоторого года. Вывести соответствующий ему номер столетия.
3) Даны три целых числа. Возвести в квадрат отрицательные числа и в
третью степень – положительные.
4) Даны три числа. Вычислить корень квадратный из положительных и
возвести в третью степень отрицательные.
5) Даны действительные числа x,y,z. Получить max(x+y-z; 2x-yz).
6) Даны действительные числа x,y,z. Получить min(3x+y; 5y+z).
36
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
7) Даны действительные числа x,y,z. Получить max( x2  y 2 ; x 2  z 2 ) .
8)
Даны
действительные
числа
x,y,z.
Получить
min( | x |  | y |; | y |  | z | ).
9) Даны действительные числа x,y,z. Получить max( x 2  z 2 ; y 2  z 2 ).
10) Значения переменных x,y,z поменять местами так, чтобы они оказались упорядоченными по возрастанию.
11) Даны две переменных целого типа: А и В. Если их значения не равны,
то присвоить каждой переменной сумму этих значений, а если равны, то присвоить переменным нулевые значения.
12) Даны три переменные:x,y,z. Если их значения упорядочены по возрастанию, то удвоить их; в противном случае заменить значение каждой переменной на противоположное.
13) Даны действительные числа x,y,z. Получить max(x+y-z; xyz).
14) Даны действительные числа x,y. Получить max(x2,y2).
15) Даны действительные числа x,y. Получить min(x3,y3).
16) Даны действительные числа x,y. Получить max(x,y), min(x,y).
17) Даны действительные числа x,y,z. Получить max(x2,y2,z2).
18) Даны действительные числа x,y,z. Получить min(x,y,z), max(x,y,z).
19) Даны действительные числа x,y,z. Получить max(x+y+z, xyz).
20) Даны действительные числа x,y,z. Получить min(x+y+0,5z, xyz).
21) Даны действительные числа a,b,c. Проверить, выполняется ли неравенство a<b<c.
22) Даны действительные числа a,b,c. Удвоить эти числа, если выполняется неравенство b  a  с , и заменить их абсолютными значениями, если это не
так.
23) Даны два действительных числа. Вывести первое, если оно больше
второго, или оба, если это не так.
24) Даны два действительных числа. Заменить первое из них нулем, если
оно меньше, или равно, второму, и оставить их без изменений в противном
случае.
37
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
25) Даны действительные числа x,y ( x  y ). Меньшее из этих чисел заменить полусуммой, а большее их удвоенному произведением.
26) Даны три действительных числа. Возвести в квадрат те из них, значения которых неотрицательны.
27) Даны действительные числа x,y,z. Получить max(
28) Даны действительные числа x,y,z. Получить min(
x y xy
;
)
z
z
x yz x yz
;
)
z
z
29) Даны действительные числа x,y,z. Получить max(x+y+z; xyz).
4.6 Вопросы к защите лабораторной работы № 3
1) Какие служебные слова используются при записи условного оператора?
2) Назначение, формы записи и порядок выполнения оператора условия
if.
3) Какой тип должно иметь выражение, стоящее в условном операторе
между словами if и then?
4) Пусть дана следующая последовательность операторов:
If <выражение> then <оператор1> else <оператор2>;
Установите:
а) возможность записи после слова then нескольких операторов;
б) условие выполнения оператора <оператор1>;
в) значение выражения, при котором выполняется <оператор2>;
г) может ли <выражение> содержать знаки операций сравнения;
д) могут ли быть операторы if вложенными.
5) Приведите пример составного оператора.
6) Особенности использования вложенных условных операторов.
38
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
5 Лабораторная работа № 4. Составление и отладка
программ используя поливариантные условия
Цель работы. Научиться составлять программы, используя поливариантные условия (выбор по многим направлениям) оператора выбора case.
5.1 Ход работы
1) Изучить теоретический материал по теме лабораторной (лекции +
учебники).
2) Составить программу по заданию своего варианта.
3) Запустить программу на выполнение.
4) Отредактировать программу и сохранить её на диске А под именем
lab4.pas.
5) Распечатать программу.
6) Распечатать результат работы программы.
7) Составить отчет по работе.
8) Защитить работу.
5.2 Содержание отчета
Отчет по лабораторной работе должен содержать:
1) тему работы;
2) цель работы;
3) ход работы;
4) постановку задачи;
5) распечатку программы;
6) результат работы программ.
39
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
5.3 Методические указания к лабораторной работе № 4
Оператор варианта (выбора)
Этот оператор представляет собой обобщение условного оператора:
if <условие1> then <оператор1> else
if <условие2> then <оператор2> else
if <условие N> then <оператор N>;
Оператор выбора позволяет выбрать одно из нескольких возможных продолжений программы. Параметром, по которому осуществляется выбор, служит ключ выбора – выражение любого порядкового типа.
Входить внутрь оператора варианта можно только через символ CASE.
Входить внутрь по какому-либо оператору перехода, находящемуся вне оператора варианта, запрещается.
Case <ключ выбора> of
<список вариантов>
else <оператор>
end;
где
Case – случай,
<ключ выбора> – выражение любого типа кроме типов REAL и
STRING,
of – из,
<список вариантов> – одна или более конструкций вида:
< константа выбора> : <оператор>;
ELSE – иначе,
<оператор> – произвольный оператор Турбо Паскаля,
end; – конец.
Оператор выбора работает следующим образом. В начале вычисляется
значение выражения <ключ выбора>, а затем в последовательности операторов
40
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
<список варианта> отыскивается такой, которому предшествует константа,
равная вычисленному значению. Найденный оператор выполняется, после чего
оператор выбора завершает свою работу. Если в <списке варианта> не будет
найдена константа, соответствующая вычисленному значению ключа выбора,
управление передается оператору, стоящему за словом ELSE.
Часть ELSE <оператор> можно опускать. Тогда при отсутствии в списке
выбора нужной константы ничего не произойдет и оператор выбора просто завершит свою работу.
Любому из операторов списка выбора может предшествовать не одна, а
несколько констант выбора, разделенных запятыми.
5.4 Задания базового уровня
Составить программу с использованием оператора выбора case.
1) Единицы длины пронумерованы следующим образом: 1-дециметр, 2километр, 3-метр, 4-милиметр, 5-сантиметр. Дан номер единицы длины отрезка
L в этих единицах (вещественное число). Вывести длину данного отрезка в
метрах.
2) Дан номер месяца. Вывести название соответствующего времени года.
3) Дан номер месяца. Вывести число дней в этом месяце.
4) Дано целое число от 0 до 9. Вывести строку названия соответствующей
цифры на русском языке.
5) В магазине продаются 7 книг разных авторов и разной цены. Составить
программу вывода сообщения об авторе, название и цены книги, в зависимости
от введённого порядкового номера книги.
6) Дано целое число в диапазоне 1-5 . Вывести строку – словесное описание соответствующей оценки.
7) Арифметические действия над числами пронумерованы следующим
образом: 1-сложение, 2-вычитание, 3-умножение, 4-деление. Дан номер дейст-
41
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
вия и два числа А и В (В≠0). Выполнить на числами указанное действие и вывести результат.
8) Дана стоимость килограмма овощей. В зависимости от введённого количества килограммов подсчитать какую сумму нужно заплатить.
9) Социальные слои населения пронумерованы следующим образом: 1младенец, 2-школьник, 3-студент, 4-рабочий, 5-бизнесмен, 6-пенсионер. Каждому транспорту средству (машина, газель, автобус частный, троллейбус, коляска) отдаёт предпочтение каждый из них.
10) Единицы массы пронумерованы следующим образом: 1-килограмм, 2милиграмм, 3-грамм, 4-тонна, 5-центнер. Дан номер единицы массы и масса тела М в этих единицах. Вывести массу данного тела в килограммах.
11) Стороны света “пронумерованы” следующем образом: «С»-север,
«В»-восток, «З»-запад, «Ю»-юг. В зависимости от введённого символа должно
выдаваться характерное сообщение.
12) Даны 5 исторических дат. В зависимости от введённой даты должно
выдаваться характерное сообщение.
13) На прилавке лежат 6 видов овощей в зависимости от веденной первой
буквы названия овоща выдать сообщение, описывающее данный овощ.
14) За контрольную работу выставляются оценки от 1 до 5. Выдать характерное сообщение для каждого вида оценок.
15) Даны два катета прямоугольного треугольника. Остальные элементы
треугольника пронумерованы следующим образом: 1-гипотенуза, 2-площадь, 3радиус описанной окружности, 4-радиус вписанной окружности. В зависимости
от введённого числа выдать результат вычисления.
16) Даны 5 названий профессий. По первой введённой букве названия
профессии вывести сообщение о характере данного вида деятельности.
17) Знаки зодиака пронумерованы числами от 1 до 12. По введённому
числу выдать сообщение о месяцах для данного знака.
18) В магазине продаются 5 разных фруктов. По ввёденной первой букве
названия фрукта выдать полное название фрукта и его описание.
42
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
19) Даны четыре направления (север, восток, запад, юг). По введённой
первой букве направления выдать сообщение о том, можно попасть.
20) Даны названия шести предметов изучаемых в колледже. По введённой первой букве предмета выдать сообщение о преподавателе ведущего данный предмет.
21) Месяцы пронумерованы числами от 1 до 12. По введённому числу
выдать количество выходных (суббота, воскресенье) для текущего года.
22) Завтрак, обед, полдник, ужин пронумерованы числами от 1 до 4. По
введённому числу выдать сообщение о меню.
23) Дни недели пронумерованы числами от 1 до 7. По введённому числу
выдать название дня и характерное сообщение для этого дня недели.
24) Шесть видов домашних животных пронумерованы числами от 1 до 6.
По введённому числу выдать название и описание домашнего животного.
25) Даны названия шести видов бытовой техники. По введённой первой
букве названия выдать сообщение для чего применяется данная техника.
26) Семь марок машин пронумерованы числами от 1 до 7. По введённому
числу выдать сообщение о стране-производителе.
27) Данные функции пронумерованы числами от 1 до 4 (y=kx+b,
y=ax2+bx+c, y=k/x, y=sin(x)). По введённому числу выдать сообщение о название графика функции.
28) Пять видов салатов пронумерованы числами от 1 до 5. По введённому
числу выдать сообщение о составе данного салата.
29) Дано целое число в диапазоне от 20 до 30 , определяющее возраст (в
годах). Ввести строку – словесное описание указанного возраста.
30) Единицы длины пронумерованы следующим образом: 1-дециметр, 2километр, 3-метр, 4-милиметр, 5-сантиметр. Дан номер единицы длины отрезка
L в этих единицах (вещественное число). Вывести длину данного отрезка в
метрах.
43
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
5.5 Вопросы к защите лабораторной работы №4
1) Какой формат имеет оператор case?
2) Какие различия между полной и сокращенной формой оператора case?
3) Каковы отличия оператора выбора case от оператора условия if?
4) Какие правила должны выполняться при использовании оператора
выбора case?
6 Домашняя
работа
№2.
Выполнение
индивидуальной
работы по теме «Разветвляющие процессы с использованием
символьных переменных»
Цель работы. Обобщить знания студентов по теме: «Разветвляющиеся
структуры». Научиться составлять программы с использованием операторов
if….then….else…., case….of…end.
6.1 Ход работы
1) Изучить теоретический материал по теме «Разветвляющие структуры»
(лекции, учебники).
2) Составить программу по заданию своего варианта.
5) Запустить программу на выполнение.
6) Отредактировать программу и сохранить её на диске А под именем
dom2.pas.
7) Распечатать результат работы программы.
8) Составить отчёт по работе.
9) Защитить работу.
6.2 Содержание отчёта
Отчет по домашней работе должен содержать:
44
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
1) тему работы;
2) цель работы;
3) ход работы;
4) постановку задачи;
5) распечатку программы;
6) результат работы программы.
6.3 Варианты заданий домашней работы № 2
Составить
программу с использованием символьной переменной по
заданию своего варианта.
1) Составить программу, контролирующую знание закона Ома. Обучающий вводит формулу закона Ома в символьную переменную, которая далее
сравнивается с правильным ответом, хранящимся в другой символьной переменной.
2) Составить программу для определения подходящих кандидатур для
вступления в брак, используя следующие соображения: возраст девушки равен
половине возраста мужчины плюс 7, возраст мужчины определяется соответственно как удвоенный возраст девушки минус 14. В начале выполнения программы на экране должен появиться вопрос: мужчина или женщина? Введите
М или Ж. В зависимости от ответа выводятся соответствующие рекомендации.
3) Составить программу, учёта заброшенных мячей при игре в баскетбол. После окончания игры выводиться итоговое сообщение. Предусмотреть
ввод названия команд в символьную переменную и высвечивание их на экране.
4) Дана площадь круга S1 и площадь квадрата S2. Определить, поместится ли круг в квадрат и квадрат в круг.
5) В ЭВМ поступают результаты соревнований по плаванью для трёх
спортсменов. Вывести на экран фамилии спортсменов в порядке убывания результатов, возрастания результатов.
6) Составить программу, результирующего эпизода сказки: запрос - куда
пойдёт герой (налево, направо или прямо) и печатает, что его ждёт в каждом
45
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
случае. Ответ ЭВМ присваивает символьной переменной и печатает. Текст вопросов и ответов задать самостоятельно.
7) В киоске продается газета стоимостью 3 руб. и журнал стоимостью 20
коп. Составить программу, которая спрашивает о желании покупателя (журнал
или газета?), принимает деньги (сумма денег вводиться с клавиатуры) и вычитающая сдачу. Исходные данные задать с клавиатуры.
8) В продаже книг в книжном магазине принимает участие ЭВМ. Составить программу, которая запрашивает стоимость книг, сумму денег, внесённую
покупателем, а далее определяет причитающуюся сдачу (если денег внесено
больше), печатает «спасибо», если сдача не требуется или выводиться сообщение, о недостаточности внесено суммы. Исходные данные задать самостоятельно.
9) В продаже грамм пластинок ведёт учёт ЭВМ. Составить программу,
которая запрашивает: «Какую пластинку хотите купить? Классическая музыка
по цене 150 руб., эстрадная – 200 руб., десятка – 50 руб. Сколько платите?» В
зависимости от введённой суммы выводиться сообщение, какой товар вы можете купить и какова сдача.
10) Составить программу учёта стоимости билета до определённой железнодорожной станции. Название станции определить в символьную переменную.
11) Составить программу, учитывающую заброшенные шайбы при игре в
хоккей. После окончания игры выдать итоговое сообщение. Предусмотреть
ввод команд в символьную величину и высвечивание их на экране.
12) Составить программу, которая по введенному номеру дня недели выводит на экран его название на русском языке.
13) Составить программу, которая проверяет правило деления на «5».
14) Составить программу, которая проверяет правило деления на «3».
15) Составить программу, учёта выхода на пенсию в зависимости от профессии и возраста.
46
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
6.4 Вопросы к защите домашней работы №2
1) Когда возникает необходимость в организации развилки?
2) Какая развилка называется полной? неполной?
3) Выражение, какого типа, может выступать в качестве условия при организации развилки? Какие значения принимают такие выражения?
4) Могут ли в полной развилке не выполниться операторы ни по одной
из ветвей? выполниться по обеим ветвям?
5) В каком случае целесообразно использовать оператор выбора?
6) Какого типа может быть выражение, являющееся селектором выбора?
Приведите примеры.
7 Лабораторная работа № 5. Составление и отладка
программ на циклические структуры
Цель работы. Научиться составлять программы с использованием циклических конструкций: While… do…, Repeat… Until, For… to… do… . Научиться составлять программы на вложенные циклы.
7.1 Ход работы
1) Изучить теоретический материал по теме лабораторной работы (лекции, учебник).
2) Составить программы по заданиям своего варианта.
3) Запустить программу на выполнение.
4) Отредактировать программы и сохранить их на диске А под именами:
lab5_1.pas; lab5_2.pas; lab5_3.pas.
5) Распечатать программы.
6) Составить отчёт.
7) Защитить работу.
47
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
7.2 Содержание отчёта
Отчет по лабораторной работе должен содержать:
1) тему работы;
2) цель работы;
3) ход работы;
4) постановку задачи;
5) распечатку программ;
6) результаты работы программ.
7.3 Вопросы для допуска к лабораторной работе № 5
1) Что такое циклы?
2) Формат строки цикла с параметрами?
3) Когда используется оператор цикла с параметрами?
4) Формат строки цикла с предусловием?
5) Формат строки цикла с послесловием?
7.4 Методические указания к лабораторной работе № 5
Циклические алгоритмические конструкции
В языке Паскаль имеется три различных оператора цикла, с помощью которых можно запрограммировать повторяющиеся фрагменты программы.
7.4.1 Оператор цикла с параметром
Шаг равен +1
for i:= n to m do <оператор>;
где
for – для,
i – параметр цикла,
48
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
n – начальное значение параметра цикла,
to – до,
m – конечное значение параметра цикла,
do – делать,
<оператор> – тело цикла.
При этом должно выполняться условие: n<m.
Если тело цикла состоит из нескольких операторов, то они заключаются в
операторные скобки begin ... end;
for i:=n to m do begin
<оператор 1>;
< оператор 2>;
< оператор N>;
end;
Переменная i (счетчик) увеличивается на единицу от начального значения
n до конечного значения m при каждом новом значении i исполняется оператор
внутри цикла. Параметр цикла, начальное и конечное его значения должны
быть описаны как integer.
Если n=m, то цикл выполняется один раз.
Если n>m, то цикл не выполняется ни разу.
Шаг равен -1
for i:=n downto m do <оператор>;
где
for – для,
i – параметр цикла,
n – начальное значение параметра цикла,
downto – до,
m – конечное значение параметра цикла,
do – делать,
< оператор > – тело цикла.
При этом должно выполняться условие: n> m.
49
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Примеры вычисления сумм, количеств и произведений.
Алгоритмы подсчета:
1) суммы
Первоначальное значение S:=0
Подсчет в цикле: S:=S+{текущее значение}
1.1 Вычислить: S=1+2+3+...N.
program zadacha ; { вычисление суммы натуральных чисел }
var n, s, i : integer;
begin
writeln ('введите натуральное число N=') ;
readln (n) ;
s:=0;
for i:=l to n do
s:=s+i;
writeln ( 'сумма=', s)
end.
1.2 Вычислить: S  2  2  2  .... 2
program zadacha ; { вычисление суммы }
var n, i : integer; s : real;
begin
writeln ( 'введите натуральное число N=' ) ;
readln (n) ;
s:=0;
for i:=l to n do
s :=sqrt (2+s) ;
writeln ('сумма=' , s)
50
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
end.
2) количества
Первоначальное значение k: = 0
Подсчет в цикле: k:= k + 1
2.1 Среди чисел 1 < N < 100 найти все пары чисел, для которых их сумма
равнялась бы их произведению.
program zadacha ( input, output ); {нахождение пар чисел}
var k, a, b: integer;
begin
r:=0;
for a:=l to 100 do
for b:=l to 100 do
begin
if a + b = a * b then
begin
k:=k + 1;
writein('числа',a,b);
end
end;
if k=0 then writeln ('таких чисел нет') else ('k=', k);
end.
2.2 Определить, сколько из N заданных точек принадлежат графику
у = |х|
program zadacha ; { количество точек, принадлежащих графику }
var k, i, n : integer; х, у : real;
begin
writeln ( 'введите количество точек N=');
51
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
readln (n) ;
k:=0;
for i:=1 to n do
begin
writeln ('введите координаты', i ,'-ой точки х и у') ;
readln (x,y) ;
if y=abs (x) then k:=k+l
end;
if k=0 then writeln ('таких точек нет') else writeln ('k=',k)
end.
3) произведений
Первоначальное значение р:=1
Подсчет в цикле: р:= р *{множитель}
3.1 Вычислить N!
program zadacha ; { нахождение факториала числа N }
var n, p, i : integer;
begin
writeln ('введите число n=');
readln (n) ;
p:=l;
for i:=l to n do
p:=p*i;
writeln ('факториал числа' ,n,' = ' ,p)
end.
7.4.2 Оператор цикла с постусловием
Оператор цикла с постусловием используется, если число повторений заранее неизвестно, а определяется по ходу реализации циклического процесса.
52
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Формат оператора цикла с постусловием:
repeat
<оператор 1>;
<оператор 2>;
<оператор М>
until <условие>;
где repeat – повторять;
<оператор 1>;
<оператор 2>;
<оператор N> – последовательность операторов внутри цикла (тело
цикла);
until – до;
<условие> – логическое выражение.
Этот процесс завершается, тогда когда после выполнения заданной
по-
следовательности операторов логическое выражение <условие> станет TRUE
(истинно).
Оператор for v:=E1 to E2 do S;
Эквивалентен if E2>=E1 then
begin
v:=El; repeat S; v:=succ(v); until v>E2;
end;
Пример 1. Распечатать числа Фибоначчи от 1 до N. (Каждое число в последовательности, начиная с третьего, получается сложением двух предыдущих
чисел. Например: 1, 1, 2, 3, 5, 8, 13, 21...).
program zadacha ; { числа Фибоначчи }
var a, b, c, n, i : integer;
begin
writeln ('введите число N=') ; readln (n) ; a:=l; b:=l;
53
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
writeln (a,b) ; i:=3;
repeat
c:=a+b; writeln (c) ; a := b; b := c;
until i>n
end.
Пример 2. Вычислить значение переменной у, при заданном значении n.
1 1 1
1
y    ....
1 2 3
n
program zadacha ;
var i, n : integer; у : real;
begin
writeln ('введите число N=') ; readln (n) ; y:=1; i:=y;
repeat
y:=y+1/i; i:=i+1;
until i>n;
writeln ( ' y= ' , y)
end.
7.4.3 Оператор цикла с предусловием
Формат оператора:
где
while <условие> do <оператор>;
while – пока,
<условие> – логическое выражение,
do – делать,
<оператор> – оператор внутри цикла (тело цикла).
Оператор выполняется до тех пор, пока <условие> – имеет значение истина, прекращает выполняться, если <условие> принимает значение ложь.
Оператор for v:=El to E2 do S;
Эквивалентен
54
v:=El;
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
while v<=E2 do
begin
S;
v:=succ(v)
end.
Пример 1. Подсчитать сумму всех нечетных чисел от 101 до 301.
program zadacha ; {сумма нечетных чисел}
var s, i : integer;
begin
s:=0;
while i<=301 do
begin
s:=s+i; i:=i+1;
end;
writeln ('сумма кубов нечетных чисел от 101 до 301=' ,s)
end.
7.4.4 Пустой оператор
Не задает никаких действий, кроме определения своего преемника. Если
пустой оператор фигурирует среди последовательности операторов, отделенных друг от друга ”;”, то его преемником является следующий по порядку оператор. Он полезен для упрощения описания тех или иных вычислительных
процессов, где не нужно выполнять никаких действий.
7.5 Задания базового уровня
Задание № 1
Составить программу с использованием циклических конструкций
While… do… и Repeat… Until… . По заданию своего варианта.
55
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Вычислить сумму (произведений) элементов заданного ряда.
1
n
1

k 1 2k  12
k2
П
k 1 k 2  2k  3
n
5
n
9

p2
p 1
p
k2  k
13 
k 2 k  1
n
m2  m
17  2m  1
m2
n
2
n
1
2
6 
k  2 ( 2k )
n
10
( p  2) 2
 4
25 p 1
p
1 1
p 1
 
3 2 p
1
( 1) k 2
14 
k 1 2 k  1
n
n
1
18  m 3  m
m 1
k  2k 2
21   1
22
k 1
k 2
n
n 
1
 2  
m
m1
n
5k  1

2
k 1 3k  k  1
n
(3 p  1) 2
26 
p 1
p2
n
k (k  1) 2
30  (k  1) 2
k 2
 k 1
1 


29 k 1 
k 
n
3
k k 1
П
k 1 k  2
4
n
i 1
7 
i  2 i  0,5
i2
11 
13 i  2
n
n
3k  1
15  e k
k 1
n  1
 1  
p2  p 
n
8
( 1)( k  1)
k 2 1
k 1

n
k 1
3
12
k 1 k

n
( 1)( k  1)
16 k 1
k

n
1 1 
  2  20

19
p 
p 1  p
n

p 1
 1  4  p
p 1
n
(k  2) 2
24 
k 3 10( k  5)
n
( k  2) 2

2
k 1 k  2
k2
23  ( k  1) k
k 1
1 1 
 


27 p 1  p p 2  28
n
n
n
Задание № 2
Составить программу вычисления значений функций f(x) на отрезке [a,b]
в точках x:=x+h , где h – шаг цикла, с последующим выводом таблицы значений.
56
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Варианты индивидуальных заданий указаны в таблице 6.
Таблица 6 – Индивидуальные варианты к заданию № 2
Варианты заданий
1
1. f(x)=ex*Sinx , xЄ[0;6], h=0,5
Варианты заданий
2
2. f(x)=x2+Cos2x, xЄ[-2;0], h=0,2
3. f(x)=ex+1, xЄ[-5;5], h=0,5
4. f(x)=5x3-1, xЄ[1;4], h=0,5
5. f(x)=x*Sinx, xЄ[1;3], h=0,25
6. f(x)=5x3-1, xЄ[-5;0], h=0,5
7. f(x)=Sinx/2, xЄ[0,3;6], h=0,3
8. f(x)=ctg3x, xЄ[-П;П], h=П/4
9. f(x)=-2x2 xЄ[-4;4], h=1,5
10. f(x)=e2x+1, xЄ[0;3], h=0,4
11. f(x)=(x-1)2 xЄ[-2;5], h=1,2
12. f(x)=x3+4x2+1, xЄ[3;7], h=0,5
13. f(x)=2|x|, xЄ[-5;5], h=1
14. f(x)=5Sin(3x-П/2), xЄ[-2П;0], П/4
15. f(x)=3x+4, xЄ[-1;6], h=0,5
16. f(x)=2Cos(П/4+x), xЄ[0;4П],h=П/2
17. f(x)=lnx+1, xЄ[1;5], h=0,5
18. f(x)=tg(3x+П), xЄ[-5;5], h=П/2
19. f(x)=tg(2x), xЄ[0;2Π], h=П/4
20. f(x)=2e3x^2, xЄ[0;2], h=0,2
21. f(x)=x3+x, xЄ[-2;3], h=0,5
22. f(x)=4ln(x2+2), xЄ[1;3], h=0,4
23. f(x)=ln(2x), xЄ[2;6], h=0,4
24. f(x)=x2+3|x|-20, xЄ[-5;2], h=1
25. f(x)=1/2Cos3x, xЄ[-П/2;3П/2], h=П/2 26. f(x)=x2/2+3(x-1)/3, xЄ[-3;-1], h=0,2
27. f(x)=3x2+4x-1, xЄ[-1;4], h=1
28. f(x)=3x2+4x-5, xЄ[5;10], h=0,5
7.6 Задания повышенного уровня
Составить программу вычисления переменной X от х1 до х2 и Y от y1 до
y2, используя вложенную циклическую структуру, где X – переменная
57
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
внешнего цикла, Y – переменная внутреннего цикла. Организовать вывод
таблицы значений. Варианты индивидуальных заданий указаны в таблице 7.
Таблица 7 – Индивидуальные варианты к заданию № 3
№
С
X
x2
x1
1
1
2
y1
4
5
6
1
2
2
5
1
3
3
7
x*e y y *ex

y
x
y 2 x3 x 2 y 2



y
x
x
2
5
4
7
1
3
6
8
 1y
y  2 x / x  y 
1
1
 ln x   ln y
y
x
x 2 y 2   y  x 1
1
6
2
4
5
7
3
5
1
5
2
6
8
3 y 2  xy  2 x 2
x y
1
4
5
8
9
3
1
7
2
4
0
5
7
10
1
3
4
7
2
6
1
3
1
4
3
6
2
3
4
5
6
7
2
 4 x
 y    ln( xy )
3

 y 2 x  x3  *




e
10
11
12
13
x  y 
2

2y 
58
3
Y
y2
x y
 xy
5x2
 3x  y 2
2
5Cosx  ln x 2
y
e 3 x 
2
y
4x y *lny
2
2

e
4
x 
y
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Продолжение таблицы 7
14
x
 2xy
1
5
2
5
15
y 2  cos x  x 2  cos y
4
8
1
3
3
5
1
6
1
6
2
4
2
6
4
7
2
5
3
7
4
8
5
8
2
 y2

1
16
2 x2  e x  3 y 2  e y
17
4 cos( xy )  (5 x  2 y )
18
19
20
 3x2  4 y 2 


 x y 
3 xy 
1
2
1
e3 xy
(x  y)3 
1
x y
21
4 sin x
 ln( x  y )
3 cos x
1
3
1
7
22
e x y
y
 x y
x
e
1
4
3
5
1
5
1
3
2
4
4
8
1
4
5
8
23
24
25
( 1)
x y
 ( x  2 xy ) 1
x y
2
 1 
x
 2
  ln  
2 
x y 
 y
( x  y ) 1  xy
3
26
ln( x  y )
 xy
ln( x  y )
2
7
1
3
27
e3 x y
 xy
4x
3
8
2
4
28
4 x y
 cos2 ( xy)
3
4
6
4
8
29
1
1
 ey 
 ex
x
y
1
4
1
6
1
x y
1
3
4
7
30
3tg ( x  y) 
59
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
7.7 Вопросы к защите лабораторной работы № 5
1) Каково назначение операторов повтора (цикла)?
2) Какие требования предъявляются к выражениям, управляющим повторениями?
3) В чем отличия операторов повтора while и repeat?
4) В каких случаях предпочтительнее использовать для организации циклов оператор повтора for? Что записывается в заголовке этого оператора?
5) Каким образом в операторе цикла for описывается направление изменения значения параметра цикла?
6) Какие ограничения налагаются на использование управляющей переменной (парада цикла) в цикле for?
7) Какие правила пунктуации необходимо соблюдать при записи операторов?
8) Что такое вложенные циклы? Какие дополнительные условия необходимо соблюдать при организации вложенных циклов?
8 Лабораторная работа № 6. Составление и отладка
программ с использованием процедуры и функции
Цель работы. Научиться составлять программы с использованием процедур и функций. Разобраться в необходимости применения подпрограмм и
формата их записи в основной программе.
8.1 Ход работы
1) Изучить теоретический материал по теме лабораторной работы (лекции, учебники).
2) Составить и откомпилировать программы.
3) Составить программу по заданию своего варианта.
60
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
4) Запустить программу на выполнение.
5) Отредактировать программу и сохранить её на диске А под именем:
lab8_1.pas.
6) Распечатать программу и результат её работы.
7) Составить отчёт по работе.
8) Защитить работу.
8.2 Содержание отчёта
Отчет по лабораторной работе должен содержать:
1) тему работы;
2) цель работы;
3) ход работы;
4) постановку задачи;
5) распечатку программы;
6) результат работы программы.
8.3 Вопросы для допуска к лабораторной работе № 6
1) Что понимают под структурным программированием? Зачем оно применяется?
2) Назовите основные логические структуры и проиллюстрируйте примерами программ. Как обеспечивается логически последовательная структура
программы?
3) Что называется подпрограммой?
4) В чем состоит сходство и различие подпрограмм-процедур и подпрограмм-функций в языке Турбо Паскаль?
5) В чем различие между стандартными и определенными пользователем
подпрограммами? Приведите примеры.
61
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
8.4 Методические указания к лабораторной работе № 6
В ТурбоПаскале имеются средства деления программы на части. На верхнем уровне это модули, на нижнем уровне деления это процедуры и функции.
Для того чтобы процедура или функция начала работать её необходимо
вызвать. Процедура или функция состоит из операторов, локальных данных и
внутренних процедур или функций.
Процедура или функция – это часть программы с одним входом и выходом. Основной файл программы содержит главный блок – основная программа,
который с необязательным заголовком, который может обращаться к вложенным в неё блокам. Каждый из подблоков подчиняется главному или старшему
блоку, в котором содержится его вызов.
Блочной называется программа, состоящая из двух блоков. Если результатом блока является одно значение, блок оформляется как функция:
Function имя функции (список формальных параметров): тип результата;
label
const
описание локальных меток, констант, переменных, типов
var
procedure
function
описание внутренних процедур и функций
Begin
…
операторы, среди которых должен быть хотя бы один,
End.
который присваивает к имени функции значение результата
Аргументы функции называют формальными параметрами, и содержатся
в списке формальных параметров. Результат функции присваивается её имени.
Результаты блока могут быть так же указаны в списке параметров, в этом
случае используется не функция, а процедура:
62
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Procedure имя функции (список формальных параметров);
label
const
описание локальных меток, констант, переменных, типов
var
procedure
function
описание внутренних процедур и функций
Begin
…
операторы, среди которых должен быть хотя бы один,
End.
который присваивает к имени функции значение результата
Имя процедуры не используется для обозначения результата, а в списке
формальных параметров имени результата предшествует слово Var.
Если результаты имеют разный тип, то в списке формальных параметров
каждому имени результата предшествует слово Var.
Обращение к процедуре является предложение языка, оно не может быть
использовано в выражениях в операторах присвоения и вывода.
8.5 Задания базового уровня
1) Напишите программу, которая по значениям двух катетов вычисляет
гипотенузу, площадь, радиусы вписанной и описанной окружностей прямоугольного треугольника.
2) Напишите программу, состоящую из трёх процедур и основной программы. Первая процедура организует ввод двух целых чисел X и Y, вторая
вычисляет их сумму, третья выводит результат.
3) Напишите программу вычисления площади поверхности и длины экватора на основе известного радиуса планет солнечной системы. Форму планет
считать шаром. Вычисление площади и длины экватора оформить отдельными
функциями.
4) Составить программу поиска большего из четырех чисел с использованием подпрограммы поиска большего из двух.
63
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
5) Вычислить сумму: 1!+2!+3!+…+n!, используя функцию вычисления
факториала числа k.
6) Вычислить сумму простых чисел, не превосходящих заданного числа
N.
7) Составьте программу вычисления сочетания из N по M. Число сочетаний определяется по формуле: N!/(M!(N-M)!). Используйте подпрограмму вычисления факториала.
8) Вычислите НОД трёх натуральных чисел.
9) Даны действительные числа s, t. Составить программу вычисления
выражения: f(t, -2S, 1.17) + f(2/2, t, S-1), где f(a,b,c)=(2a-b-Sin(c))/(5+|c|).
10) Составить программу перевода двоичной записи натурального числа в
десятичную.
11) Составить программу вычисления суммы квадратов простых чисел,
лежащих в интервале (M..N).
12) Составьте программу вывода на экран всех натуральных чисел, не
превосходящих N и делящихся на каждую из своих цифр.
13) Составить программу сравнения площадей и периметров двух параллелограммов.
14) Написать программу сравнения площадей и периметров двух прямоугольных треугольников, если заданы их катеты.
15) Упорядочить значения трех переменных a, b, c в порядке их возрастания, используя процедуру перемены местами значений двух переменных.
16) Даны координаты трех вершин треугольника. Найти длины всех его
сторон.
17) Дано натуральное число. Найти все его делители. Подсчитать их количество.
18) Составить программу нахождения наибольшего общего делителя нескольких чисел, используя функцию нахождения НОД двух чисел (алгоритм
Евклида).
64
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
19) Даны действительные числа a, b, c.
Получить (max(a, a+b) + max(a, b+c)) / (1 + max(a+bc, 15)).
20) Даны действительные числа a, b.
Получить u=min(a,b), v=min(ab, a+b2), min(u+v, 3.14).
21) Дано натуральное число n. Выяснить, имеются ли среди чисел n, n+1,
..., 2n близнецы, т.е. простые числа, разность между которыми равна двум (определить процедуру, позволяющую распознавать простые числа).
22) Даны действительные числа a1, …, an, b1, …, bn. В последовательности
a1, …, an, и в последовательности b1, …, bn все элементы, следующие за элементом с наибольшим значением (за первым по порядку, если их несколько), заменить на 0,5.
23) Даны натуральные k, m. Требуется вывести на экран рамку из звездочек
*******
*
*
*
*
*
*
*
*
*******
высота которой – k строк, ширина – m знаковых позиций. Описать процедуру
(k, m), обращение к которой дает вывод k строк и m знаковых позиций.
24) Дано натуральное число n. Найти n!. Использовать программу, включающую рекурсивную процедуру вычисления n!
25) Даны неотрицательные целые числа n, m. Вычислить A(n, m), где
m+1, если n=0,
A(n, m) = A(n-1, 1), если n<>0, m=0
A(n-1, A(n, m-1)), если n>0, m>0
26) Вычислить z-сумму значений функций Z=f(a, b) + f(a2 + b2) + f(a2 -1, b)
+ f(a-b, b) + f(a2 + b2, b2 -1).
u2 + t2, если u>0, t>0,
f(u, t) =
u + t2, если u<=0, t<=0,
u – t, если u>0, t<=0,
u + t, если u<=0, t>0,
27) Вычислить z-сумму значений функций Z=f(sin a, b) + f(cos a + b) +
65
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
f(sin2a, b-1) + f(sin a-cos b, b2-1) + f(sin2a-1, cos a +b).
f(u, t) =
u + sin(t), если u>0,
u + t, если u<=0.
28) Вычислить z-сумму значений функций Z=f(|x|, y) + f(x, y) + f(x+1, -y) +
f(|x|-|y|, x) + f(x + y, y).
f(u, t) =
u + 2t, если u>=0,
u + t, если u<=-1,
u - t, если -1<u<0.
29) Вычислить z-сумму значений функций Z=f(sin(x), cos(y,x+y)) + f(sin(x,
cos(y)) + f(x-y, x) + f(sin2(x)-2, a) + f(a+3, b+1).
u + t, если u>1,
f(u, t) =
u – t, если 0<=u<=1,
t – u, если u<0.
30) Дано натуральное число n и целые неотрицательные a1, …, an. Рассмотреть отрезки последовательности a1, …, an, состоящей из совершенных чисел. Описать процедуру, позволяющая распознавать совершенные числа.
8.6 Вопросы для защиты лабораторной работы № 6
1) Что такое подпрограмма-процедура, подпрограмма-функция? Для чего они предназначены?
2) Как в программе объявляется процедура, функция?
3) Как в программе вызывается процедура, функция?
4) Что называется параметром, и каково его назначение? Формальные,
фактические параметры, их взаимосвязь.
5) Каковы отличия параметров-значений от параметров-переменных,
особенности их описания и применения.
6) Каковы особенности параметров-процедур и параметров-функций?
7) Чем отличаются локальные и глобальные параметры? Какова область
их действия?
66
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
9 Домашняя работа № 3. Выполнение индивидуального
задания по темам «Циклические структуры», «Процедуры и
функции»
Цель работы. Обобщить знания студентов по темам: «Циклические
структуры», «Процедуры и функции». Научиться самостоятельно составлять
программы с использованием процедур и функций, а также циклических конструкций.
9.1 Ход работы
1) Изучить теоретический материал по теме лабораторных работ (лекции,
учебник).
2) Составить и откомпилировать программу.
3) Запустить программу на выполнение.
4) Отредактировать программу и сохранить ее на диске А под именем
dom3.pas.
5) Распечатать программу и результат работы программы.
6) Составить отчет по работе.
7) Защитить работу.
9.2 Содержание отчета
Отчет по лабораторной работе должен содержать:
1) тему работы;
2) цель работы;
3) ход работы;
4) постановку задачи;
5) распечатку программы;
6) результат работы программы.
67
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
9.3 Варианты заданий
Для заданной функции составить программу для построения графика
функции в заданном интервале и с заданным шагом. Предусмотреть вывод осей
координат, а также построить таблицу значений для аргумента и функций на
заданном интервале. Таблица должна содержат заголовок и шапку. При
составлении программы использовать подпрограмму вывода горизонтальной
линии. Варианты индивидуальных заданий указаны в таблице 8.
Таблица 8 – Индивидуальные варианты к заданию
№
1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
68
Функция
2
Y=2Sin3x
Y=x*cosx
Y=x2+4x
Y=x+Sinx
Y=IxI
Y=1/x
Y=3Cos2x
SinX
Н=
x
2
Н=2x +x+4
Y=-3x2+2
x
Y=Sin
3
2x
Y=3e
Y=x*Sinx
Y=2*Cos2x
Sinx
Y=
4
Y=-Sinx
Y=-x2+5
x
Y=3Cos
3
Y=Sin3x
Y=-2Cosx
1
Y=- x2+4
2
Интервал
3
[0;2П]
[0;2П]
[-5;5]
[-П;П]
[-8;8]
[0,2;2]
[-п/2;2п]
[0,2П]
Шаг
4
П/10
П/10
1
П/8
1
0,2
П/4
П/10
[-6;6]
[-4;4]
[-2,п;2п]
1
0,5
П/4
[-5;5]
[0;п]
[-п;2п]
[-2п;2п]
0,5
П/10
П/8
П/8
[-п/2;п/2]
[-3;3]
[п;3п]
П/12
0,4
П/4
[-3п;3п]
[-п;2п]
[-5;5]
П/3
П/10
0,5
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Продолжение таблицы 8
22
Y=(x-1)2-4
[-5;5]
0,5
23
Y=-2/x
(0;4]
0,4
24
Y=Cos3x
(-п;п)
П/12
25
[-2п;п]
П/8
[-п;3п]
П/4
[-5;5]
0,5
28
x
2
x
Y=2Sin
2
2
x
Y= -3
2
Y=3Sin2x
[0;3п]
П/10
29
Y=x+Cosx
[-2П;2П]
П/8
30
Y=4Cos2x
[-п;3п]
П/4
26
27
Y=Cos
9.4 Вопросы к защите домашней работы № 3
1) Какие действия выполняет оператор процедуры?
2) Возможна ли передача управления внутрь процедуры (функции) посредством оператора перехода Goto и почему?
3) Каково соответствие между формальными и фактическими параметрами?
4) Каким образом осуществляется обмен данными между основной программой и подпрограммой без параметров?
5) Каков тип выражения в операторе цикла с предусловием?
6) Как сделать, чтобы в теле цикла было несколько операторов?
7) Когда проверяется истинность выражения в операторе цикла repeat?
8) Чему равно значение параметра цикла for после завершения цикла?
9) Какой цикл называется внешним (внутренним)?
69
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
10 Лабораторная работа № 7. Составление и отладка
программ на одномерные и двумерные массивы
Цель работы. Научиться правильно описывать одномерные и двумерные
массивы, заполнять массивы элементами, распечатывать содержимое массивов;
научиться решать задачи на использование массивов.
10.1 Ход работы
1) Изучить теоретический материал по теме лабораторной работы (лекции, учебник).
2) Составить программы по заданиям своего варианта.
3) Запустить программы на выполнение.
4) Отредактировать программы и сохранить их на диске А под именами:
lab7_1.pas; lab7_2.pas.
5) Распечатать программы.
6) Составить отчёт.
7) Защитить работу.
10.2 Содержание отчета
Отчет по лабораторной работе должен содержать:
1) тему работы;
2) цель работы;
3) ход работы;
4) постановку задачи;
5) распечатку программ;
6) результаты работы программ.
70
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
10.3 Вопросы для допуска к лабораторной работе № 7
1) Что такое массив?
2) Что такое индекс?
3) Особенности расположения элементов массива в памяти ЭВМ?
4) Как объявить в программе массив (одномерный, двумерный).
5) Общие и отличительные черты одномерных, двумерных и n – мерных
массивов?
10.4 Методические указания к лабораторной работе № 7
Массив – это упорядоченная последовательность данных, состоящая из
фиксированного числа элементов, имеющих один и тот же тип, и обозначаемая
одним именем.
Название регулярный тип массивы получили за то, что в них объединены
однородные элементы, упорядоченные (урегулированные) по индексам, определяющим положение каждого элементы в массиве.
Индексы представляют собой выражения простого типа. Доступ к каждому отдельному элементу осуществляется обращением к имени массива с
указанием индекса нужного элемента:
<имя массива>[<индекс>].
Описание массива определяет его имя, размер массива и тип данных.
Общий вид описания массива:
Type <имя нового типа данных> = array [<тип индекса>] of <тип
компонентов>;
Далее, в перечне переменных указывается имя массива, и через двоеточие
указывается имя нового типа данных. Массив может быть описан и без представления типа в разделе описания типов данных:
71
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Var <имя массива> : array [<тип индекса>] of <тип компонентов>;
Чаще всего в качестве типа индекса используется интервальный целый
тип.
Линейный (одномерный) массив – массив, у которого в описании задан
только один индекс, если два индекса – то это двумерный массив и т.д. Одномерные массивы часто называют векторами, т.е. они представляют собой конечную последовательность пронумерованных элементов.
Двумерный массив – структура данных, хранящая прямоугольную матрицу. В матрице каждый элемент определяется номером строки и номером
столбца, на пересечении которых он расположен. В Паскале двумерный массив
представляется массивом, элементами которого являются одномерные массивы.
Два следующих описания двумерных массивов тождественны:
Var a: array [1..10] of array [1.. 20] of real;
Var a: array [1..10, 1..20] of real;
Чаще всего при описании двумерного массива используют второй способ.
Доступ к каждому отдельному элементу осуществляется обращением к имени
массива с указанием индексов (первый индекс – номер строки, второй индекс – номер столбца). Все действия над элементами двумерного массива
идентичны действиям над элементами линейного массива.
Только для инициализации двумерного массива используется вложенный
цикл for.
Например, For i:= 1 to 10 do
For j:= 1 to 20 do
A[i, j] := 0;
10.5 Задания базового уровня
Задание № 1
Составить программу по заданию своего варианта.
72
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
1) Дан целочисленный массив размера N. Вычислить сумму и количество
положительных, произведение и количество отрицательных элементов, произведение элементов до первого отрицательного.
2) Дан целочисленный массив размером N. Вывести его элементы в обратном порядке. Вычислить среднее арифметическое положительных элементов массива.
3) Дан массив размера N. Вывести, в начале, его элементы с четными индексами, а затем – с нечетными. Вычислить среднее арифметическое элементов
имеющих четные индексы.
4) В массиве размером N есть хотя – бы один нуль. Вычислить произведение элементов по первого нуля и сумму элементов после первого нуля.
5) Дан массив размером N. Вычислить сумму элементов стоящих на четных местах. Определить минимальный и максимальный элемент массива.
6) Дан массив a[i] размера N. Сформировать массив b[i], каждый элемент
которого вычисляется по формуле bi=ea[i]-i. Отсортировать массив b[i] по возрастанию.
7) Дан массив размера N. Подсчитать количество положительных и отрицательных элементов. Вычислить сумму положительных элементов.
8) Дан целочисленный массив Zn. Сформировать массив Yn, каждый элемент которого определяется по формуле Yn=Zn/ln Zn.Организовать вывод обоих
массивов. Сравнить максимальные и минимальные элементы массивов Zn и Yn
9) Дан целочисленный массив размером N. Отсортировать массив по
убыванию. Вычислить сумму первого и последнего элемента массива.
10) Дан массив размера N. Сформировать массив Yn, каждый элемент которого определяется по формуле Yk=K*cos (Ak). Отсортировать массив Yk по
возрастанию.
11) Дан массив размера N. Заменить в этом массиве положительные элементы на 0, отрицательные элементы на 1, вывести полученный массив на экран и подсчитать кол – во 0 и 1.
73
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
12) Дан массив размера N. Вычислить сумму элементов массива. Если
сумма больше 0, то отсортировать массив по возрастанию, если сумма меньше
0 – по убыванию.
13) Дан массив Pk размера N. Сформировать массив Zk, каждый элемент
которого определяется по формуле Zk= Pk. Найти максимальный элемент массива Zk и заменить элементы, стоящие на четных позициях в массиве Pk на максимальный элемент массива Zk.
14) Даны два массива Ak и Bk размера N. Сформировать третий массив Ck,
элементы которого получаются путем сложения соответствующих элементов
массива Ak и Bk. Отсортировать массив Ck по возрастанию и найти минимальный элемент.
15) Дан целочисленный массив размера N. Найти сумму всех элементов
массива и разделить каждый элемент исходного массива на полученное значение. Результат поместить в новый массив. Найти сумму отрицательных элементов нового массива.
16) Дан целочисленный массив размера N. Отсортировать этот массив по
убыванию. После сортировки заменить отрицательные элементы на 0, положительные на 1. Найти произведение отрицательных элементов.
17) Дан массив размера N. Сформировать новый массив, в который поместить элементы старого, начиная от k до k+7 позиции. В новом массиве найти среднее арифметическое максимального и минимального элементов.
18) При поступлении в вуз абитуриенты, получившие “2” на первом экзамене, ко второму не допускаются. В массиве записаны все оценки экзаменующихся полученные на первом экзамене. Подсчитать сколько студентов сдали
первый экзамен на “5”, на “4”, на “3”, и сколько не допущено ко второму экзамену.
19) Дан целочисленный массив Ai размера N. Сформировать новый массив Bi элементы, которого будут содержать элементы массива Ai удовлетворяющие условию Ai<i. Отсортировать массив Bi по убыванию.
74
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
20) Дан массив размера N. Подсчитать количество положительных элементов стоящих на четных местах. Вычислить произведение этих элементов.
21) Дан массив размера N. Вычислить среднее арифметическое и количество отрицательных элементов массива. Заменить в исходном массиве все нули
– “*”.
22) Дан массив размера N. Подсчитать количество и произведение элементов до первого отрицательного.
23) Дан массив Ai размера N. Сформировать массив Bi элементы, которого вычисляются по формуле Bi=(Ai)2. Отсортировать массив Bi по возрастанию.
24) Дан массив размером N. Вычислить сумму элементов стоящих на нечетных местах. Отсортировать по убыванию.
25) Дан целочисленный массив Ai размером N. Сформировать массив Bi
элементы которого вычисляются по формуле Bi=(i+1)*Ai. Для массива Bi подсчитать количество и сумму элементов до первого отрицательного.
26) Дан массив размера N. Подсчитать, сколько в нем отрицательных, положительных и нулевых элементов. Вычислить среднее арифметическое суммы
отрицательных и произведения положительных элементов массива.
27) Дан целочисленный массив размера N. Вычислить сумму тех элементов массива, которые по абсолютной величине больше заданного числа К. Подсчитать количество таких элементов.
28) Дан целочисленный массив размера N. Отсортировать массив по убыванию. Найти произведение только тех элементов массива, которые больше заданного числа Н.
29) Дан массив размера N. Если сумма элементов стоящих на четных местах массива больше суммы элементов стоящих на нечетных местах, то удалить
из массива все отрицательные элементы, в противном случае заменить отрицательные элементы их абсолютным значением.
30) Дан целочисленный массив размера N. Сформировать новый массив,
элементы которого в 3 раза больше соответствующих элементов исходного
массива. Отсортировать полученный массив по убыванию.
75
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Задание № 2
Составить программу по заданию своего варианта.
1) Дана квадратная матрица порядка N заполненная не нулевыми элементами. Заменить нулями элементы матрицы, лежащие ниже главной диагонали и
выше побочной. Сколько не нулевых элементов осталось в матрице.
2) Вычислить сумму и число положительных элементов матрицы размера
M*N, находящихся над главной диагональю.
3) Дана квадратная матрица порядка N. Сравнить сумму элементов главной и побочной диагонали.
4) Дана матрица размера M*N. Заменить нулями отрицательные элементы
матрицы и вычислить сумму положительных элементов.
5) Дана матрица размера M*N. Сравнить суммы элементов всех четных
строк с суммой элементов всех ее нечетных столбцов.
6) Дана матрица размера M*N. Упорядочить по возрастанию элементы
каждой строки.
7) Дана матрица размера M*N. Найти среднее арифметическое из минимальных значений в каждой строке и максимальных значений в каждом столбце.
8) Дана матрица размера M*N. Упорядочить по возрастанию суммы элементов каждой строки.
9) Дана матрица размера M*N. Найти в каждой строке матрицы максимальный и минимальный элемент, и поменять их местами.
10) Дана матрица размера M*N. Определить индексы наибольшего и
наименьшего элементов матрицы. Найти максимальное значение из суммы индексов.
11) Дана квадратная матрица порядка N. Получить транспонированную
матрицу. Сравнить сумму элементов главной диагонали данной матрицы с
суммой элементов главной диагонали транспонированной матрицы.
76
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
12) Дана матрица размера M*N, все элементы которой различны. В каждой строке выбирается элемент с наименьшим значением, затем среди этих чисел выбирается наибольшее. Указать индексы найденного элемента.
13) Дана целочисленная матрица размера M*N. Найти сумму всех нечетных элементов и сумму всех четных.
14) Создайте целочисленную матрицу размера M*N, значение каждого
элемента которой равно сумме номера строки и столбца, на пересечении которых находится. Вычислить сумму элементов каждой строки.
15) Дана матрица размера M*N. Найдите в ней равные элементы и выведите индексы этих элементов. Найти максимальный по абсолютному значению
элемент.
16) Дана квадратная матрица порядка N. Сформируйте два одномерных
массива. В один запишите четные, а в другой нечетные элементы матрицы.
Сравнить сумму элементов матрицы с произведением четных элементов.
17) Дана квадратная матрица порядка N. Вычислите произведение суммы
элементов главной диагонали на сумму элементов k - ой строки.
18) Дана квадратная матрица размера N. Если сумма элементов по главной диагонали больше суммы элементов на побочной диагонали, то заменить
элементы, стоящие на четных местах в строке, на “ * ”, а элементы, стоящие на
нечетных местах в строке, на ноль.
19) Дана квадратная матрица размера N. Найти сумму элементов матрицы
ниже главной диагонали, произведение не равных нулю элементов выше главной диагонали и количество элементов в главной диагонали больших N.
20) Дана квадратная матрица порядка N. Зеркально отразить ее элементы
относительно главной диагонали (побочной диагонали).
21) Дана матрица размера M*N. Сравнить произведения не нулевых элементов всех строк.
22) Дана матрица размера M*N. Упорядочить по возрастанию суммы
элементов каждого столбца.
77
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
23) Дана матрица размера M*N. Найти в каждом столбце матрицы максимальный и минимальный элемент и поменять их местами.
24) Дана квадратная матрица порядка N. Сравнить суммы элементов первого и последнего столбца.
25) Дана квадратная матрица порядка N. Сколько положительных элементов расположенных ниже главной диагонали. Заменить отрицательные элементы выше главной диагонали на 0.
26) Дана матрица размера M*N. Определить индексы нулевых элементов
и подсчитать количество нулевых элементов. Не нулевые элементы заменить на
1.
27) Дана матрица размера M*N. Сравнить произведения не нулевых элементов всех строк. Вывести номер строки, в которой произведения наибольшее
(наименьшее).
28) Дана матрица размера M*N. Заменить единицей положительные элементы матрицы, вычислить сумму и количество положительных элементов.
29) Дана матрица размера M*N. Удалить строку, которая содержит максимальный элемент всей матрицы.
30) Дана матрица размера M*N. Удалить столбец, содержащий минимальный элемент всей матрицы.
10.6 Вопросы к защите лабораторной работы № 7
1) Как определить местоположение элемента в массиве?
2) Какие действия можно производить над массивом целиком и при каких условиях?
3) Как обратится к элементу массива?
4) Какие операции можно производить над элементами массива?
5) Какими способами можно ввести (вывести) элементы массива?
6) Почему при описании массива предпочтительнее употреблять константы, а не указывать размеры массива в явном виде?
7) Какие способы сортировки массивов вы знаете?
78
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
11 Лабораторная
работа
№8.
Составление
и
отладка
программ со строковыми типами данных
Цель работы: Получение навыков в организации ввода/вывода значений
строковых типов данных. Получение практических навыков программирования
задач с использованием строк.
11.1 Ход работы
1. Составить и отладить программу, используя действия со строками и
функции Contact, Length.
2. Составить и отладить программу, используя Pos, Delete, Insert.
3. Выполнить индивидуальное задание по данной теме.
4. Запустить интегрированную среду программирования Turbo Pascal,
набрать текст программы.
5. Откомпилировать программу.
6. Сохранить файл с программой на диске А под именем lab8.pas.
7. Распечатать текст программы и результат её работы.
8. Составить отчёт.
11.2 Содержание отчета
Отчет по лабораторной работе должен содержать:
1) тему работы;
2) цель работы;
3) ход работы;
4) постановку задачи;
5) распечатку программ;
6) результаты работы программ.
79
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
11.3 Вопросы для допуска к лабораторной работе № 8
1) Что такое строка?
2) Каким идентификатором определяются данные строкового типа?
3) Какова максимально возможная длина строки? Как определить текущую длину строки?
4) Как при описании строкового типа указывается длина строки?
5) Перечислить типовые операции над строками.
11.4 Методические указания к лабораторной работе № 8
Строка – последовательность символов, кодовой таблицы ПК. Длина
строки динамически изменяется от 0 до 255.
Переменные строки должны быть описаны предложениями:
Type <имя типа> = String[max длина строки];
Var имя : <имя типа>;
Строка трактуется как цепочка символов, для строки из N символов, отводится N+1 байт.
N байт – для хранения символов в строке;
1 байт – для значения текущей длины строки.
Действия со строками:
1. Сложение (конкатенация строк изображается знаком «+», при его выполнении начало строки, идущей после знака «+», подсоединяется к концу
строки, указанной до этого знака, аналогичная операция Concat).
2. Сopy(строка, номер, количество) – возвращает подстроку, заданной
строки, начинающуюся в позиции, указанной номером и содержащую заданное
количество символов.
3. Delete(St, Poz, N) – удаление N- символов из строки St начиная с позиции Poz.
80
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
4. Insert(Str1, Str2, Poz) – замена строки Str1 строкой Str2 в указанной
позиции Poz.
5. Val(St, x, code) – преобразует значение St в величину целочисленного
или вещественного типа и помещает результат х, значение St не должно содержать незначащих пробелов в начале и в конце. Если во время операции преобразования ошибка не обнаружена, значение code равно нулю, если ошибка обнаружена – code будет содержать номер первого ошибочного символа, а значение х – не определено.
6. Str(x, st) – преобразование числового значения величины х и помещение результата в строку St, после х может записаться формат, аналогичный
формату вывода, если в формате указано недостаточное для вывода количество
разрядов, после вывода расширяется автоматически.
7. Pos(str1, str2) – обнаруживает первое появление в строке str2 подстроки str1. Результат имеет целочисленный тип и равен номеру той позиции, где
находится первый символ подстроки Str1. Если в Str2 подстроки Str1 не найдено, то результат равен нулю.
8. Length(St) – вычисляет текущую длину символов в строке St, результат
имеет целочисленный тип.
9. UpCase(ch) – преобразует строчную букву в прописную. Параметр и
результат имеет литерный результат, обрабатывает буквы только латинского
алфавита.
Порядковые типы данных
Если нужно по коду получить символ, используется функция Chr(код),
который записывается справа от «#».
Каждое значение порядкового типа связано с порядковым номером I, узнать значение I можно с помощью функции Ord.
I:=ord(z)
Говорят, что z1 и z2 порядкового типа.
Z1> если ord(z1)>ord(z2) в этом смысле ‘d’>’a’.
Для целых чисел значение функции равно аргументу Ord(5)=5.
81
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Succ(z) – даёт следующее по отношению к Z значение.
Pred(z) – предыдущее.
11.5 Задания базового уровня
1. Напишите программу, подсчитывающую количество букв во введенном
с клавиатуры слове. Ввод осуществляйте в цикле while do. Выход из программы
– строка ‘999’.
2. Напишите программу, подсчитывающую количество вхождений заданной вами буквы в введенной строке.
3. Напишите программу, которая вводит строку и выводит ее, сокращая
каждый раз на 1 символ до тех пор, пока в строке не останется 1 символ.
4. Напишите программу, определяющую число слов в строке. Одно слово
от другого отделяется 1 пробелом.
5. Составьте программу, определяющую, является ли введенное слово
числом.
6. Введите 2 целых числа. Преобразуйте числа в две строки, объедините
их в одну проку и выведите на экран результат.
7. Напишите программу, которая удаляет из введенной строки любой требуемый введенный с клавиатуры символ. Процесс удаления выделите в отдельную процедуру DelChInString, строку и символ определите как глобальные переменные. В результате у вас должна получиться программа-модель работы одного из режимов любого текстового редактора.
8. Составьте программу, удаляющую все пробелы из введенной строки.
Для удаления постройте отдельную функцию NewSt и примените в ней оператор Repeat и функцию Pos.
9. Напишите программу, сортирующую символы введенной с клавиатуры
строки в порядке возрастания их номеров в ASCII-таблице. Например, если
введено: 'СВА', в результате надо получить 'ABC'.
10. Вычислите длину самого короткого слова в предложении из трех слов,
разделенных пробелами.
82
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
11. Выясните, какая из букв первая или последняя встречается в заданном
слове чаще.
12. Задано существительное первого склонения, оканчивающееся на "а".
Напечатайте это слово во всех падежах.
13. Сколько букв "у" в слове стоит на четных местах?
14. Замените в заданном слове все буквы "о" пробелами.
15. Даны два слова. Поменяйте местами буквы этих слов, занимающие
одинаковые позиции.
16. Заданы фамилия, имя и отчество учащегося, разделенные пробелом.
Напечатайте его фамилию и инициалы.
17. Вычеркните i-ю букву слова.
18. Дан текст, в котором слова разделены пробелами.
а) сколько слов в тексте?
б) найдите самое длинное слово текста (длина текста 100 символов).
19. Задан текст, состоящий из слов, которые разделены одним или несколькими пробелами. Сформируйте новый текст, включив в него слова заданного, разделенные только одним пробелом.
20. Сложное слово состоит из двух частей одинаковой длины и соединитель-ной гласной. Найдите обе части этого слова.
21. Вычеркните из заданного слова все буквы, совпадающие с его последней буквой.
22. Вычеркните из слова X те буквы, которые встречаются в слове Z.
23. Подсчитайте число различных букв в слове.
24. Составьте программу подсчета. Сколько раз в тексте встречается заданный фрагмент (цепочка символов). Например, в тексте "банан упал на барабан" фрагмент "ба" встречает 2 раза.
25. Даны два слова. Составьте программу, определяющую можно или нет
из букв слова А составить слово В.
26. Составьте программу, вычеркивающую каждую третью букву слова X.
83
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
27. Составьте программу, выясняющую, на гласную или согласную букву
оканчивается слово X.
28. Составьте программу вычисления суммы мест, на которых в слове х
стоят буквы "в” и "п".
29. Составьте программу шифрования текстового сообщения. Можно использовать такой способ шифрования: шифровальщик задает ключ шифровки
— целое число, который определяет величину смещения букв русского алфавита, например: ключ = 3, тогда в тексте буква "а" заменяется на "г" и т. д. Используются все буквы русского алфавита. Е считается дважды.
30. Составьте программу дешифрования текстового сообщения, зашифрванного программой из задачи 29.
11.6 Вопросы к защите лабораторной работы № 8
1) Какие выражения называют строковыми?
2) Какие операции допустимы над строковыми данными?
3) Каким образом производится сравнение строк?
4) Как можно обратиться к отдельным символам строки?
5) Как производится сцепление строк?
6) Назначение специальных процедур и функций обработки данных
строкового типа. Привести примеры.
12 Домашняя работа № 4. Выполнение индивидуального
задания
по
теме
«Одномерные
и
двумерные
массивы»,
«Строковый тип данных»
Цель работы. Обобщить знания студентов по темам «Одномерные и
двумерные массивы», «Строковый тип данных». Научиться составлять программы с использованием одномерных и двумерных массивов, строковых выражений.
84
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
12.1 Ход работы
1) Изучить теоретический материал по темам лабораторных работ «Одномерные и двумерные массивы», «Строковый тип данных».
2) Составить и откомпилировать одну из 3-х предложенных программ
своего варианта.
3) Запустить программу на выполнение.
4) Отредактировать программу и сохранить ее на диске А под именем
dom4.pas.
5) Распечатать программу и результаты работы программы.
6) Составить отчет по работе.
7) Защитить работу.
12.2 Содержание отчета
Отчет по лабораторной работе должен содержать:
1) тему работы;
2) цель работы;
3) ход работы;
4) постановку задачи;
5) распечатку программ;
6) результаты работы программ.
12.3 Варианты заданий
12.3.1 Задачи на одномерные и двумерные массивы
1. Пусть дано 100 целых чисел. Распечатайте их в обратном порядке по 6
чисел в строке.
2. Пусть дано 100 чисел. Напечатайте сначала все отрицательные из них,
затем – все остальные.
85
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
3. Пусть вводится последовательность символов, длина которой не
больше наперед заданного числа n_max. Замените каждую из рядом стоящих
групп точек одной точкой. Решите эту задачу в двух вариантах:
а) полученная последовательность просто выводится на печать, а массив, в котором хранится исходная последовательность, не изменяется;
б) преобразованная последовательность должна заместить исходную в
массиве.
4. Известно, что длина последовательности символов не превышает наперед заданного числа n_max. Подсчитайте максимальное количество идущих
подряд пробелов.
5. Пусть дано натуральное число n и вещественные числа a1, …. аN. В
последовательности a1, …. аN все отрицательные члены увеличьте на 0,5, а все
неотрицательные, меньшие среднего арифметического, заменить на 0,1.
6. Пусть даны натуральное число n, целые числа a1, …., аN. Получите
сумму положительных, число отрицательных и число нулевых членов последовательности a1, …., аN.
7. С помощью следующего фрагменты программы вычислите сумму s
тех элементов массива х, индексы которых совпадают со значениями элементов
массива a (ai ≠ aj при i ≠ j).
var x: array [ l .. 100] of real;
a: array [ l .. 30] of 1 ..100;
s: array;
8. Пусть дана последовательность из 100 различных целых чисел. Найдите средние арифметическое чисел этой последовательности, расположенных
между максимальным и минимальным числами (в сумму включить и оба этих
числа).
9. Пусть дан массив из N элементов. Каждый отрицательный элемент
замените полусуммой тех двух элементов, которые стоят рядом с ним справа и
слева.
86
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
10. Пусть дана последовательность из N элементов. Увеличьте её, вставив
после минимального элемента максимальный.
11. Пусть дана последовательность из N элементов. Уменьшить её, удалив первый из отрицательных и минимальный из положительных (считайте, что
такой элемент один) и сдвинув все остальные к началу.
12. Пусть дана последовательность из N элементов. Уменьшите ее, удалив все минимальные и максимальные элементы и сдвинув все остальные к началу последовательности.
13. Пусть дана последовательность из N элементов. Увеличьте ее, вставив после каждого элемент такой же.
14. Замените каждый элемент массива средним арифметическим всех
предшествующих ему элементов.
15. Используя следующий фрагмент программы, упорядочьте массив х по
неубыванию (т.е. переставьте его элементы так, чтобы для всех k выполнялось
условие xk ≤ xk+1) в соответствии с перечисленными ниже алгоритмами сортировки (упорядочения):
Const n = 100;
var x: array [ l .. n] of real;
а) сортировка выборов – отыскивается максимальный элемент и переносится в конец массива; затем этот метод применяется ко всем элементам, кроме
последнего (он уже находится на своем месте) и т.д.;
б) сортировка обменом (пузырьковая сортировка) - последовательно
сравниваются пары соседних элементов xk и xk+1 (k = 1, 2, 3. …, n-1), и если xk
> xk+1, то они переставляются; тем самым наибольший элемент оказывается на
своем месте в конце массива; затем этот метод применяется ко всем элементам,
кроме последнего, и т.д.;
в) сортировка вставками – пусть первые k элементов массива уже упорядочены по неубыванию; берется (k+1)-ей элемент и размещается среди первых
k элементов так, чтобы упорядоченными оказались уже k+1 первых элементов;
этот метод применяется при k от 1 до n-1.
87
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
16. Пусть даны целые числа a1, a2, a3. Получите целочисленную матрицу
В размером 3 х 3, для которой bij = ai – 3aj.
17. Получите целочисленную матрицу А размером 8 х 14, для которой
aij = i+2j.
18. Получите вещественную матрицу А размером 23 х 17, для которой:
aij =
19. Все элементы с наибольшим значением в данной целочисленной
квадратной матрицы порядка 10 замените нулями, если эти элементы не принадлежат первой или последней строкам.
20. Пусть дана вещественная матрица размерами 6 х 9. Найдите среднее
арифметическое наибольшего и наименьшего значений её элементов, расположенных ниже главной диагонали.
21. Пусть дана вещественная матрица размером 18 х n. Найдите значение
наибольшего по модулю элементы матрицы и укажите его местоположение в
матрицы.
22. В данной вещественной квадратной матрице порядка n найдите сумму
элементов строки, в которой расположен элемент с наименьшим значением.
Предполагается, что такой элемент единственный.
23. В данной вещественной матрице размером 6 х 9 поменяйте местами
строку, содержащую элемент с наибольшим значением, со строкой, содержащей элемент с наименьшим значением. Предполагается, что эти элементы
единственные.
24. В данной квадратной целочисленной матрице порядка 17 укажите индексы всех элементов с наибольшим значением, не принадлежащих главной и
побочной диагоналям.
25. Пусть дана вещественная матрица размером m x n, все элементы которой различны. В каждой строке выберите элемент с наименьшим значением, затем среди этих чисел выберите наибольшее. Укажите индексы найденного элемента.
88
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
26. Пусть дана целочисленная матрица порядка 8. Найдите наименьшее из
значений элементов столбца, который обладает наибольшей суммой модулей
элементов. Если таких столбцов несколько, надо взять первый из них.
27. Пусть дана целочисленная квадратная матрица порядка n. Найдите
номера строк:
-
все, элементы которых – нули;
-
элементы, в каждой из которых, одинаковы;
-
все элементы, которых четны;
-
элементы, каждой из которых, образуют монотонную последователь-
ность (монотонно убывающую или монотонно возрастающую);
элементы которых образуют симметричные последовательности.
28. Пусть дана вещественная квадратная матрица порядка 10. В строках с
отрицательным элементом на главной диагонали найдите:
-
сумму элементов;
-
наибольший из элементов.
29. Пусть дана символьная квадратная матрица порядка 10. Замените буквой «а» все ее элементы, расположенные выше главной диагонали.
30. Используя следующий фрагмент программы, вычислите перечисленные ниже соотношения:
const n = 20;
var A, B, C : array [l..n, l..n] of real;
x, y: array [l..n] of real;
а) C=A+B;
б) Y=Ax;
в) C=A-B:
г) B=BT (транспонировать).
12.3.2 Задачи на строковый тип данных
1. Выясните, имеются ли среди вводимых символов все буквы, входящие в слово «змея».
89
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
2. Для большинства существительных, оканчивающихся на -онок и енок, множественное число образуется от другой основы. Как правило, это
происходит по образцу: цыпленок – цыплята, мышонок – мышата и т.д. (в новой основе перед последней буквой «т» пишется «а» или «я» в зависимости от
предыдущей буквы: если это шипящая, то «а», иначе – «я» ). Имеются словаисключения, из которых укажем следующие: ребенок (дети), бесенок (бесенята), опенок (опята), звонок (звонки), позвонок (позвонки), поддонок (подонки)¸колонок (колонки), жаворонок (жаворонки), бочонок (бочонки). Есть еще
рад мало употребляемых слов-исключений, которые мы не рассматриваем.
Пусть дан текст, среди символов которого имеется пробел. Группа символов,
предшествующая первому пробелу, представляет собой русское слово, оканчивающиеся на -онок и -енок. Получите это слово во множественном числе.
3. Пусть дан русский текст, слова которого разделены пробелами, запятой или точкой. Все слова, оканчивающиеся на -онок и -енок, представьте во
множественном числе.
4. Вводится строка. Если она является записью римского числа, то преобразуйте ее в целое число.
5. Напишите программу позволяющую перемещать курсор в пределах
экрана вверх – вниз, влево – вправо и допускающую ввод и отображение только
русских букв независимо от того, осуществлялось ли переключение на русскую
раскладку клавиатуры.
6. Пусть даны две строки str1 и str2. Выясните, можно ли из str1 путем
перестановки символов получить строку str2. Напишите программу, которая
решала бы указанную задачу.
7. Напишите программу сортировки строк в обратном алфавитном порядке.
8. Напишите программу, которая будет вводить значения типа string и
определять, является ли каждое из них правильным идентификатором, удовлетворяющим языка Турбо Паскаль. Напомним вкратце правило построения
имен. Всякое имя может содержать от 1 до 127 символов; Первым символом
90
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
должна быть латинская буква (строчная или прописная); любой другой символ
(начиная со второй) может быть буквой, цифрой (от 0 до 9) или знаком подчеркивания. Если обнаружена ошибка, необходимо выдать сообщение об этом.
9. Усовершенствуйте программу из предыдущей задачи, чтобы она умела распознавать служебные слова языка Турбо Паскаль и отвергать попытки их
предъявления. Для простоты ограничьте набор служебных слов, взяв за основу
только некоторые из них.
10. Пусть задан текст, представляющий собой последовательность строк.
Признак конца текста вводится пользователем. Выведите на печать количество
каждой из содержащихся в строке латинских и русских прописных букв в порядке частоты их появления.
11. Пусть задан текст, представляющий собой последовательность строк
признак конца текста вводится пользователем. Выведите на печать заданный
текст в порядке возрастания длин строк.
12. Пусть текст представляет собой последовательность строк. На каждой
строке находится имя, фамилия и отчество. Распечатайте все отчества по алфавиту, а также текст, содержащий строки, состоящие только из имен и фамилий.
13. Пусть задано десять русских имен. Проверьте, все ли эти имена написаны с прописной буквы; если нет, то исправьте ситуацию.
14. Дано слово. Определить, одинаковы ли второй и четвертый символы
в нем. Вывести на экран его последний символ. Определить количество символов в нем.
15. Даны два слова. Верно ли, что первое слово начинается на ту же букву, которой оканчивается второе слово? Определить количество символов в каждом слове. Вывести на экран слова в обратном порядке.
16. Дано слово, состоящее из четного числа букв. Вывести на экран его
первую половину. Вывести слово в обратном порядке в середине экрана.
17. Из слова "программа" путем вырезок и склеек его букв получить слова "ром" и "рампа". Из последних двух слов вывести на экран те буквы, которые стоят на чётных местах.
91
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
18. Из слова "клоун" путем вырезок и склеек его букв получить слова
"уклон", "кулон" и "колун". Из последних трёх слов вывести на экран те буквы,
которые стоят на нечётных местах.
19. Дано слово из четного числа букв. Поменять местами его половины.
Вывести на экран слова в обратном порядке, в середине экрана.
20. Дано слово из 12 букв. Поменять местами его трети следующим образом: первую треть слова разместить на месте третьей, вторую треть — на месте
первой, третью треть — на месте второй. Удалить из получившегося слова каждый третий символ.
21. Дано слово s1, Получить слово s2, образованное нечетными буквами
слова s1. Вывести на экран слова в обратном порядке.
22. Дано предложение. Вывести все буквы «м» и «н» в нем и подсчитать
их количество. Сколько слов в вашем предложении?
23. Даны два предложения. Напечатать слова, которые встречаются в
двух предложениях только один раз. Какое из предложений содержит большее
число символов?
24. Дано предложение. Определить: а) число вхождений в него буквосочетания "до"; б) число вхождений в него некоторого буквосочетания из двух
букв; в) число вхождений в него некоторого буквосочетания.
25. Дано предложение. Все его символы, стоящие на четных местах, заменить на букву "ы". Вывести в середине экрана первое и последнее слово
предложения. Какое из выведенных слов длиннее другого?
12.4 Вопросы к защите домашней работы № 4
1) Существуют ли ограничения на размерность массива?
2) Как осуществляется доступ к каждому элементу массива?
3) Обязательно ли количество элементов массива должно быть фиксированным, то есть определяется при трансляции программы?
92
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
4) Дайте определение индекса. Какие типы данных можно использовать
при описании индекса?
5) Является ли тип string структурированным типом данных? Обоснуйте
свой ответ.
6) Всегда ли фактическая длина строки равна объявленной в описании?
7) Можно ли в процессе выполнения программы изменяться фактическая
длина строки?
8) Можно ли в процессе выполнения программы фактическая длина
строки стать большим, чем объявлено в описании? Что произойдет в этом случае?
9) Если длина строки не указанно при объявлении типа string, то чему
она равна по умолчанию?
10) Верно ли, что тип string аналогичен однородному массиву символов
array [0..n] of char?
93
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Список использованных источников
1. Семагин,И.Г. Основы программирования/ И.Г. Семагин, А.П. Шестаков. – М.: Академия, 2004. – 385 c.
2. Попов,В.Б. TURBO PASCAL для школьников/ В.Б. Попов. – М.: Финансы и статистика, 2001. – 518 c.
3. Житкова,О.А. Справочные материалы по программированию на языке
Паскаль / О.А.Житкова, Е.К. Кудрявцева. – М.: Интеллект-центр, 2002. –77 с.
4. Меженный,О.А. TURBO PASCAL. Учитесь программировать / О.А.Меженный. – М.: Диалектика, 2001. – 88 с.
5. Фаронов,В.В. TURBO PASCAL 7.0 / В.В. Фаронов. – М.: Нолидж, 2000.
– 312 с.
6. Марченко,А.И. Программирование в среде TurboPascal 7.0/А.И.Марченко. – М.: Бином Универсал, 2000. – 485 с.
7. Культин,Н. Delphi Программирование на Object Pascal / Н.Культин. –
М.: BHV–Санкт-Петербург, 2002. – 297 с.
8. Зубов,В.С. Программирование на языке TP / В.С.Зубов. – М.: ТТО
«Филинъ», 2000. – 301с.
9. Васюкова,Н.Д. Практикум по основам программирования язык Паскаль
/ Н.Д.Васюкова, В.В. Тюляева. – М.: Высшая школа, 2000. – 160 с.
10. Бондарев,В.М. Основы программирования [Текст] / В.М. Бондарев,
В.И. Рублинецкий, Е.Г. Качко. – М.: ТТО «Филинъ», 2000. – 363 с.
11. Дель,Л.А. Основы алгоритмизации и программирования: методические рекомендации к лабораторным работам часть 1 / Л.А.Дель, А.А.Гурьянов; – Оренбург: ОГУ, 2006. - 58 с.
12. Дель,Л.А. Основы алгоритмизации и программирования: методические рекомендации к лабораторным работам часть 2 /Л.А.Дель, А.А.Гурьянов;
– Оренбург: ОГУ, 2008 г. - 49 с.
94
Документ
Категория
Информатика и программирование
Просмотров
378
Размер файла
624 Кб
Теги
901, основы, программирование
1/--страниц
Пожаловаться на содержимое документа