КОС по дисциплине Основы программирования


Государственное бюджетное профессиональное образовательное учреждение
«Осташковский колледж»
Комплект
контрольно-оценочных средств
учебной дисциплины
Основы программирования
основной профессиональной образовательной программы (ОПОП)
по специальности
09.02.03 Программирование в компьютерных системах
Осташков, 2015
Одобрен
цикловой комиссией
общепрофессиональных и специальных
дисциплин по специальности 09.02.03
ГБПОУ «Осташковский колледж»
Протокол № ____ от __________________
Председатель цикловой комиссии
________________Белова М.В.
Утверждаю

Заместитель директора по учебной работе
_______________________ Потоцкая Е.А.
«____»________________________ 20____ г.
Составители:
Белова М.В.., преподаватель ГБПОУ «Осташковский колледж»
Эксперты:
1. Общие положения
Контрольно-оценочные средства (КОС) предназначены для контроля и оценки образовательных достижений обучающихся, освоивших программу учебной дисциплины Основы программирования.
КОС включают контрольные материалы для проведения текущего контроля и промежуточной аттестации в форме экзамена.
КОС разработаны на основании положений:
основной профессиональной образовательной программы по специальности СПО 09.02.03 «Программирование в компьютерных системах»
программы учебной дисциплины Основы программирования.
2. Результаты освоения дисциплины, подлежащие проверке
Результаты обучения
(освоенные умения, усвоенные
знания) Формы и методы контроля и оценки результатов обучения
1 2
Знание:
этапов решения задачи на компьютере;
типов данных;
базовых конструкций изучаемых языков программирования
Умение:
работать в среде программирования Оценка устного и письменного опроса
Оценка тестирования
Оценка выполнения лабораторных работ
Оценка результатов:
лабораторных работ;
внеаудиторной самостоятельной работы (по выбору: доклад, сообщение, реферат, презентация)
Оценка контрольной работы
Знание:
принципов структурного и модульного программирования;
принципов объектно-ориентированного программирования.
Умение:
реализовывать построенные алгоритмы в виде программ на конкретном языке программирования.
Оценка устного и письменного опроса
Оценка тестирования
Оценка выполнения лабораторных работ
Оценка результатов:
лабораторных работ;
внеаудиторной самостоятельной работы (по выбору: доклад, сообщение, реферат, презентация)
3. Распределение оценивания результатов обучения по видам контроля
Наименование элемента умений или знаний Виды аттестации
Текущий контроль Промежуточная аттестация
У 1. Работать в среде программирования лабораторная работа практическое задание
экзамен
У 2. Реализовывать построенные алгоритмы в виде программ на конкретном языке программирования лабораторная работа практическое задание
экзамен
З1. Этапы решения задачи на компьютере тестирование устные ответы
экзамен
З2. Типы данных тестирование устные ответы
экзамен
З3. Базовые конструкции изучаемых языков программирования тестирование устные ответы
экзамен
З4. Принципы структурного и модульного программирования тестирование устные ответы
экзамен
З5. Принципы объектно-ориентированного программирования Выступление с сообщениями устные ответы
экзамен
4. Распределение типов контрольных заданий по элементам знаний и умений текущего контроля.
Содержание учебного материала Тип контрольного задания
У1 У2 З1 З2 З3 З4 З5
Раздел 1. Введение в языки программирования
Тема 1.1. История и классификация языков программирования. Т Тема 1.2. Структура и способы описания языков программирования высокого уровня. Методы программирования. Раздел 2. Программирование на алгоритмическом языке.
Тема 2.1. Алфавит и лексика языка Паскаль. Идентификаторы. Константы и переменные. Структура программы. ЛР Тема 2.2. Типы данных в Паскале. Скалярные типы данных. Тождественность и совместимость типов. Выражения, операции, операнды. УО
Тема 2.3. Операторы языка. Простые операторы. Структурные операторы. Синтаксис операторов: присваивания, ввода-вывода, безусловного и условного переходов, циклов. Составной оператор. Вложенные условные операторы. Циклические конструкции. Циклы с предусловием и постусловием. ЛР Тема 2.4. Структурированные типы данных массивы. Описание типа массив. Действия над массивами и над элементами массивов. Сортировка массивов. ЛР Тема 2.5. Строки и множества. Объявление строковых типов данных. Поиск, удаление, замена и добавление символов в строке. Операции со строками. Стандартные функции и процедуры для работы со строками. Объявление множества. Операции над множествами. ЛР ПК Тема 2.6. Процедуры и функции. Понятие подпрограммы. Процедуры и функции, их сущность, назначение, различие. Организация процедур, стандартные процедуры. Процедуры, определенные пользователем: синтаксис, передача аргументов. Формальные и фактические параметры. Процедуры с параметрами, описание процедур. Функции: способы организации и описание. Вызов функций, рекурсия. Программирование рекурсивных алгоритмов. Стандартные функции. ЛР ЛР Тема 2.7. Организация ввода-вывода данных. Работа с файлами. Типы файлов. Организация доступа к файлам. Файлы последовательного доступа. Открытие и закрытие файла последовательного доступа. Запись в файл и чтение из файла последовательного доступа. Файлы произвольного доступа. Порядок работы с файлами произвольного доступа. Создание структуры записи. Открытие и закрытие файла произвольного доступа. Запись и считывание из файла произвольного доступа. Использование файла произвольного доступа. Стандартные процедуры и функции для файлов разного типа. Раздел 3. Программирование в объектно-ориентированной среде
Тема 3.1. Основные принципы объектно-ориентированного программирования (ООП). История развития ООП. Базовые понятия ООП: объект, его свойства и методы, класс, интерфейс. Основные принципы ООП: инкапсуляция, наследование, полиморфизм. Событийно-управляемая модель программирования. Компонентно-ориентированный подход. Классы объектов. Компоненты и их свойства. ЛР Тема 3.2. Интегрированная среда разработчика. Требования к аппаратным и программным средствам интегрированной среды разработчика. Интерфейс среды разработчика: характеристика, основные окна, инструменты, объекты. Форма и размещение на ней управляющих элементов. Панель компонентов и их свойства. Окно кода проекта. Состав и характеристика проекта. Выполнение проекта. Настройка среды и параметров проекта. ЛР Тема 3.3. Этапы разработки приложения. Проектирование объектно-ориентированного приложения. Создание интерфейса пользователя. Программирование приложения. Тестирование, отладка приложения. Создание документации. ЛР ЛР Тема 3.4. Иерархия классов. Классы объектно-ориентированного языка программирования: виды, назначение, свойства, методы, события. Объявление класса, свойств и методов экземпляра класса. Наследование. Перегрузка методов. ЛР Т
Тема 3.5. Иерархия классов. Классы объектно-ориентированного языка программирования: виды, назначение, свойства, методы, события. Объявление класса, свойств и методов экземпляра класса. Наследование. Перегрузка методов. Условные обозначения:
УО – устный ответ
ПР – практическая работа
КР – контрольная работа
Т – тестирование
ПК – проверка конспектов
Р – подготовка сообщений и рефератов
5. Структура контрольного задания
5.1. Лабораторная работа №1 «Составление программ линейной структуры».
5.1.1. Текст лабораторной работы №1
Цель работы:
Освоение простейшей структуры программы. Получение навыков в организации ввода/вывода значений стандартных типов данных. Получение практических навыков работы в диалоговом режиме.
Пояснения к работе:
При вводе числа и символы можно набрать как на одной строке, так и на различных строках. При этом ввод со следующей строки осуществляется в том случае, если предыдущей процедурой является READLN.
Переменной логического типа можно присвоить значение либо в разделе констант, либо в операторе присваивания. Вводить значения переменных логического типа нельзя.
Перед процедурами ввода следует использовать процедуру вывода на экран приглашения – подсказки о том, что наступила время ввода информации и какой именно информации. Например: WRITELN ('ВВЕДИ ЦЕЛЫЕ ЧИСЛА (‘К, L, М').
Выводить данные следует двумя способами: в стандартной форме и с указанием ширины поля вывода, при этом выводимую информацию необходимо снабжать заголовками.
5. Пример программы.
Исходные данные: К=-73, L=12, М=21425, X=-4192.21, Y=21.345, S1='*', S2='V', S3= ‘F'.
PROGRAM INOUT;
CONST LOG=TRUE;
VAR K,L,M^ INTEGER; X,Y,: REAL; S1,S2,S3: CHAR;
BEGIN
WRITELN ('ВВЕДИ ЦЕЛЫЕ ЧИСЛА К,L,М’);
READ (К,L,М);
WRITELN (' ':30, 'СТАНДАРТНЫЙ ФОРМАТ',' ':12,'ЗАДАННАЯ ШИРИНА ПОЛЯ');
WRITELN(' ',К,L,М,' ':5,'К=',К:3,'L=',L:2,'М=',М:5); WRITELN;
WRITELN ('ВВЕДИ ВЕЩЕСТВЕННЫЕ ЧИСЛА X,У’); READLN (X,У);
WRITELN (' ':25,'ВЕЩЕСТВЕННЫЕ ЧИСЛА');
WRITELN (' ':5,'СТАНДАРТНЫЙ ФОРМАТ',' ':18,'ЗАДАННАЯ ШИРИНА ПОЛЯ');
WRITELN(‘ ‘:5,X,Y,’ ‘:10,'X=',X:8:2,’Y=',Y:6:3); WRITELN;
WRITELN ('ВВЕДИ СИМВОЛЫ S1,S2,S3:’); READLN (S1,S2,S3);
WRITELN ('ПЕЧАТЬ СИМВОЛЬНЫХ ПЕРЕМЕННЫХ С ШИРИНОЙ ПОЛЯ 5:’,S1:5,S2:5,S3:5);
WRITELN ('ЛОГИЧЕСКАЯ ПЕРЕМЕННАЯ=' ,LOG);
END.
3адание:
Организовать ввод и вывод данных заданных типов.
Содержание отчета:
1. Постановка задачи.
2. Текст программы и результаты ее выполнения
3. Выводы.
Контрольные вопросы:
Как описывается тип величины в языке Паскаль?
Где применяется булевский тип данных, какие он принимает значения?
Что такое пользовательские типы данных, чем они отличаются от стандартных типов данных?
Привести примеры данных перечисляемого и интервального типов.
Можно ли выполнять операцию деления (/) над переменными целого типа?
Как определяются типы констант?
Варианты задания:
Номер варианта Целые числа Вещественные числа Кол-во символов Значение булевской переменной
Кол-во Формат Кол-во Формат Стандарт Ширина поля Стандарт Ширина поля Кол-во знаков после запятой 1 2 + 5 4 + 6 2 4 TRUE
2 3 + 6 2 + 7 3 5 FALSE
3 3 + 6 2 + 6 3 3 TRUE
4 2 + 5 4 + 6 2 6 TRUE
5 4 + 4 3 + 7 4 4 FALSE
6 2 + 3 3 + 5 1 3 TRUE
7 3 + 2 4 + 8 3 2 TRUE
8 3 + 5 4 + 6 2 5 FALSE
9 4 + 7 3 + 5 1 6 FALSE
10 2 + 6 5 + 6 2 6 TRUE
11 2 + 6 5 + 6 2 6 TRUE
“+” означает, что требуется вывод в стандартном формате.
5.1.2. Время на выполнение: 90 минут
5.1.3. Перечень объектов контроля и оценки
Наименование объектов контроля и оценки Основные показатели оценки результата Оценка
У 1. Работать в среде программирования -Составление работоспособной программы.
У 2. Реализовывать построенные алгоритмы в виде программ на конкретном языке программирования З1. Этапы решения задачи на компьютере З2. Типы данных З3. Базовые конструкции изучаемых языков программирования З4. Принципы структурного и модульного программирования За верное выполнение работы выставляется положительная оценка –
За неверное выполнение работы выставляется отрицательная оценка – 0 баллов.
5.2. Лабораторная работа №2 «Составление программ разветвляющейся структуры».
5.2.1. Текст лабораторной работы №2
Цель работы:
Получить практические навыки реализации одной из основных алгоритмических структур – ветвления.
Задание:
Составить программу алгоритма (по вариантам).
Ввести текст программы в окне редактора.
Выполнить компиляцию программы.
Исполнить программу и просмотреть ее выполнение на экране.
Сохранить программу на диске.
Пояснения к работе:
В Паскале имеются две реализации одной из основных алгоритмических структур - ветвлеия. Это условный оператор и оператор выбора. Условный оператор имеет вид
If Boolean then statement;
где boolean представляет собой логическое выражение, которое принимает одно из двух возможных значений – «истина» (True) или «ложь» (False). В роли логического выражения обычно выступает какое-то условие, которое может выполняться (результат – «истина») либо нет (результат – «ложь»). Если логическое выражение Boolean принимает значение «истина», то выполняется оператор statement. В противном случае выполняться будет оператор, следующий за условным оператором.
Следует отметить, что согласно формальным правилам языка в условном операторе после then допускается применение только одного оператора. Если при выполнении условия следует выполнить несколько операторов языка, используется составной оператор.
Операторы if … then … можно вкладывать друг в друга. Полная версия условного оператора имеет следующий вид: If Boolean then statement1 else statement2;
Если выражение Boolean принимает значение «истина», то управление передается на оператор statement1, если же нет, то на оператор statement2.
Для ситуаций, где имеется несколько альтернатив, можно использовать оператор case. Этот оператор называется оператором выбора и имеет следующий вид:
Case expression of
List_of_values_1: statement_1;
List_of_values_2: statement_2;

List_of_values_n: statement_n;
Else statement;
End;
Здесь между зарезервированными словами case и of находится выражение expression, принимающее значение, которое может находиться в одном из списков значений List_of_values…,находящихся слева от двоеточий. Данное выражение называется селектором. Каждый оператор, идущий за двоеточием, отделяется от следующего списка значений точкой с запятой. Ветвь else, отвечающая всем неперечисленным значениям выражения expression, необязательна. При выполнении данного оператора вначале вычисляется значение селектора. Затем выбирается тот список, которому принадлежит полученное значение, и выполняется соответствующий оператор.
В списках значений оператора case допустимыми являются скалярные типы переменных, включая целые и исключая вещественные типы. Любое заданное значение селектора может входить в список значений неоднократно, но выполняться будет лишь первая подходящая ветвь. Если значение селектора отсутствует в списках значений, ни одна из альтернатив выполняться не будет. В этом случае выполняется ветвь else оператора case или (если эта ветвь отсутствует) следующий за case оператор.
Содержание отчета:
Постановка задачи.
Блок-схема алгоритма.
Текст программы.
Результаты тестирования и выводы.
Контрольные вопросы:
Особенности использования вложенных условных операторов.
Каковы отличия оператора выбора case от оператора условия if?
Какие правила должны выполняться при использовании оператора выбора case?
В чем особенности пустого оператора? Его назначение?
Варианты задания:
Составить программу, которая из двух вводимых целых чисел печатает заключение о том, какое число больше.
Напишите программу-модель анализа пожарного датчика в помещении, которая выводит сообщение «пожароопасная ситуация», если температура (вводится с клавиатуры) в комнате превысила 600С.
Рис расфасован в два пакета. Вес первого – m кг, второго – n кг. Составьте программу, определяющую: а) какой пакет тяжелее – первый или второй?
б) определите вес более тяжелого пакета.
Составьте программу, проверяющую, верно ли утверждение, что введенное вами целое число является четным.
Составьте программу, проверяющую, верно ли утверждение, что введенное вами целое число делится без остатка на 3.
Напишите программу, которая анализирует человека по возрасту и относит к одной из четырех групп: дошкольник, ученик, работник, пенсионер. Возраст вводится с клавиатуры.
Составьте программу, определяющую, входит ли введенная вами цифра в десятичную запись введенного вами трехзначного числа, и печатающую сообщение о том, входит ли эта цифра в запись числа или нет.
Составьте программу, определяющую, лежит ли точка с указанными координатами X,Y на окружности радиуса R с центром в начале координат.
Составьте программу, определяющую, пройдет ли график функции y=5x2-7x+2 через точку с координатами (a,b).
Составьте программу, которая по трем введенным вами числам определит, могут ли эти числа быть длинами сторон треугольника, и если да, то какой получится треугольник с данными длинами сторон (прямоугольный, остроугольный, тупоугольный).
Даны произвольные числа a,b и с. Если нельзя построить треугольник с такими длинами сторон, то напечатать 0, иначе напечатать 3,2 или 1 в зависимости от того, равносторонний это треугольник, равнобедренный или какой-либо иной.
5.2.2. Время на выполнение: 90 минут
5.2.3. Перечень объектов контроля и оценки
Наименование объектов контроля и оценки Основные показатели оценки результата Оценка
У 1. Работать в среде программирования -Составление работоспособной программы.
У 2. Реализовывать построенные алгоритмы в виде программ на конкретном языке программирования З1. Этапы решения задачи на компьютере З2. Типы данных З3. Базовые конструкции изучаемых языков программирования З4. Принципы структурного и модульного программирования За верное выполнение работы выставляется положительная оценка –
За неверное выполнение работы выставляется отрицательная оценка – 0 баллов.
5.3. Лабораторная работа №3 «Составление программ циклической структуры»
5.3.1. Текст лабораторной работы №3
Цель работы:
Получить практические навыки реализации одной из важнейших алгоритмических структур – цикла.
Задание:
Составить программу алгоритма (по вариантам).
Ввести текст программы в окне редактора.
Выполнить компиляцию программы.
Исполнить программу и просмотреть ее выполнение на экране.
Сохранить программу на диске.
Пояснения к работе:
Оператор цикла FOR ...DO. Оператор безусловного цикла имеет следующую структуру
FOR I:= N1 Т0 N2 DO
<Тело цикла>;
где I - переменная цикла, которая должна быть перечисляемого типа (целая, символьная и т. д.); N1 - начальное значение переменной цикла;
N2 – конечное значение переменной цикла.
Безусловный цикл выполняется заданное число раз. Чтобы прервать выполнение досрочно, необходимо увеличить I до конечного значения (I:= N2) либо использовать процедуру BREAK, которая прерывает выполнение циклов. Процедура CONTINUE начинает новую итерацию цикла, даже если предыдущая не была завершена.
При программировании может быть использован другой , безусловный оператор цикла, в котором происходит уменьшение значения переменной: FOR I:= N2 DOWNTO N1 D0 <тело цикла>;
Оператор цикла REPEAT ... UNTIL. Этот оператор называется циклом с постусловием, т. к. проверка условия осуществляется после каждого выполнения тела цикла:
REPEAT <тело цикла> UNTIL <условие>;
Цикл выполняется до тех пор, пока условие не станет истинным.
Оператор цикла WHILE ... DO. Этот цикл называется циклом с предусловием, т. к. проверка проводится до начала очередной итерации:
WHILE <условие> DO <тело цикла>;
Цикл выполняется, пока условие истинно. Как только условие нарушается, выполнение цикла завершается.
Содержание отчета:
Постановка задачи.
Блок-схема алгоритма.
Текст программы.
Результаты тестирования и выводы.
Контрольные вопросы:
Каково назначение операторов повтора (цикла)?
Какие требования предъявляются к выражениям, управляющим повторениями?
В чем отличия операторов повтора while и repeat?
В каких случаях предпочтительнее использовать для организации циклов оператор повтора for?
Какие ограничения налагаются на использование управляющей переменной (параметра цикла) в цикле for?
Варианты задания:
Составить программу, которая вычисляет сумму квадратов чисел от 1 до введенного вами целого числа n.
С помощью WHILE напишите программу определения суммы всех нечетных чисел в диапазоне от 1 до 99 включительно.
С помощью цикла while напишите программу определения идеального веса для взрослых людей по формуле: Ид.вес=рост-100. Выход из цикла: значение роста=250.
Составьте программу получения в порядке убывания всех делителей данного числа.
Составьте программу определения наибольшего общего делителя двух натуральных чисел.
Напишите программу определения наименьшего общего кратного двух натуральных чисел.
Вычислите сумму квадратов N четных натуральных чисел.
Вводятся по очереди данные о росте N студентов группы. Определить средний рост студентов.
Составить программу вычисления суммы всех двузначных чисел.
Составить программу вычисления факториала натурального числа N.
Составить программу вывода на экран всех простых чисел, не превосходящих заданного N.
5.3.2. Время на выполнение: 90 минут
5.3.3. Перечень объектов контроля и оценки
Наименование объектов контроля и оценки Основные показатели оценки результата Оценка
У 1. Работать в среде программирования -Составление работоспособной программы.
У 2. Реализовывать построенные алгоритмы в виде программ на конкретном языке программирования З1. Этапы решения задачи на компьютере З2. Типы данных З3. Базовые конструкции изучаемых языков программирования З4. Принципы структурного и модульного программирования За верное выполнение работы выставляется положительная оценка –
За неверное выполнение работы выставляется отрицательная оценка – 0 баллов.
5.4. Лабораторная работа №4 «Обработка одномерных массивов»
5.4.1. Текст лабораторной работы №4
Цель работы:
Знакомство с алгоритмами упорядочивания.
Задание:
Для конкретного варианта составить массив исходных данных.
Выбрав один из алгоритмов упорядочивания, написать программу, которая работает с любым допустимым набором данных.
Входную информацию и результаты счета вывести на экран, снабдив их соответствующими заголовками.
Пояснения к работе:
Массив – упорядоченный набор данных одинакового типа. Массив описывается при помощи задания типа его компонентов и типа индексов. Вещественный тип нельзя использовать при задании типа индексов. Тип компонентов массива может быть любым простым или сложным.
Исходные данные должны включать и положительные числа, и отрицательные, и нули.
Содержание отчета:
Постановка задачи.
Текст программы.
Тесты. Результаты отладки на тестах.
Анализ допущенных ошибок.
Варианты задания:
В массиве из 20 целых чисел найти наибольший элемент и поменять его местами с первым элементом.
В массиве из 10 целых чисел найти наименьший элемент и поменять его местами с последним элементом.
В массиве из 15 вещественных чисел найти наибольший элемент и поменять его местами с последним элементом.
В массиве из 25 вещественных чисел найти наименьший элемент и поменять его местами с первым элементом.
Упорядочить по неубыванию массив, содержащий 20 целых чисел.
Упорядочить по невозврастанию массив, содержащий 10 целых чисел.
Упорядочить по неубыванию массив, содержащий 15 вещественных чисел.
Упорядочить по невозврастанию массив, содержащий 25 вещественных чисел.
Дан массив целых чисел, содержащий 20 элементов, записать в этот же массив сначала все отрицательные числа и нули, затем все положительные, сохраняя порядок их следования.
Дан массив целых чисел, содержащий 10 элементов, записать в этот же массив сначала все положительные числа, а затем все отрицательные и нули, сохраняя порядок их следования.
Дан массив вещественных чисел, содержащий 15 элементов, записать в этот же массив сначала все отрицательные числа, а затем все положительные и нули, сохраняя порядок их следования.
Контрольные вопросы:
Что такое массив?
Как определить местоположение элемента в массиве?
Что такое индекс? Каким требованиям он должен удовлетворять?
Каким образом задается описание массива, что в нем указывается?
5.4.2. Время на выполнение: 90 минут
5.4.3. Перечень объектов контроля и оценки
Наименование объектов контроля и оценки Основные показатели оценки результата Оценка
У 1. Работать в среде программирования -Составление работоспособной программы.
У 2. Реализовывать построенные алгоритмы в виде программ на конкретном языке программирования З1. Этапы решения задачи на компьютере З2. Типы данных З3. Базовые конструкции изучаемых языков программирования З4. Принципы структурного и модульного программирования За верное выполнение работы выставляется положительная оценка –
За неверное выполнение работы выставляется отрицательная оценка – 0 баллов.
Практическая работа «Обработка массивов».
Текст практической работы.
Вариант 1.
Что такое массив?
Каким образом задаётся обращение к элементу массива?
Написать фрагмент программы для вычисления
Вариант 2.
Как определить местоположение элемента в массиве?
Что называют инициализацией массива, и зачем она применяется?
Написать фрагмент программы для вычисления
Вариант 3.
Что такое индекс? Каким требованиям он должен удовлетворять?
Каким образом задаётся описание массива, что в нём указывается?
Написать фрагмент программы для вычисления
Вариант 4.
Какие из приведённых описаний одномерных массивов являются неправильными и почему?
VAR A: ARRAY [1..20] OF REAL;
TYPE MAS=ARRAY [‘A’..’D’];
VAR A: MAS;
VAR A: ARRAY [INTEGER] OF CHAR;
Сколько элементов содержит каждый правильно описанный массив в п.1?
Программа. В массиве из 20 целых чисел найти наибольший элемент и поменять его местами с первым элементом.
Вариант 5.
Какие из приведённых описаний одномерных массивов являются неправильными и почему?
VAR MM: ARRAY [FALSE..TRUE] OF CHAR;
TYPE SS=ARRAY [-20..0] OF INTEGER;
VAR MAS: SS;
TYPE ГОРОД=(КИЕВ, МОСКВА, СОЧИ, АЖЛЕР);
VAR A: ARRAY [ГОРОД] OF REAL;
Сколько элементов содержит каждый правильно описанный массив в п.1?
Программа. В массиве из 10 целых чисел найти наименьший элемент и поменять его местами с последним элементом.
Вариант 6.
Какие из приведённых описаний одномерных массивов являются неправильными и почему?
VAR A: ARRAY [1..5, 1..7] OF REAL;
TYPE MAS=ARRAY [‘A’..’D’, -2..3] OF INTEGER;
VAR ARR: MAS;
TYPE MM=ARRAY [1..10] OF CHAR;
VAR A: ARRAY [2..7] OF MM;
Сколько компонентов содержит каждый из описанных выше массивов?
Программа. В массиве из 15 вещественных чисел найти наибольший элемент и поменять его местами с последним элементом.
Вариант 7.
Какие из приведённых описаний одномерных массивов являются неправильными и почему?
VAR W: ARRAY [5, 7] OF INTEGER;
TYPE МАСКА=(ВОЛК, ЛИСА, МЕДВЕДЬ);
A: ARRAY [МАСКА] OF ARRAY [1..5] OF CHAR;
VAR MASS: ARRAY[1..5], [1..7] OF REAL;
Сколько компонентов содержит каждый из описанных выше массивов?
Программа. В массиве из 25 вещественных чисел найти наименьший элемент и поменять его местами с первым элементом.
5.5.2. Время на выполнение: 90 минут
5.5.3. Перечень объектов контроля и оценки
Наименование объектов контроля и оценки Основные показатели оценки результата Оценка
З1. Этапы решения задачи на компьютере Составление правильного алгоритма. З2. Типы данных З3. Базовые конструкции изучаемых языков программирования З4. Принципы структурного и модульного программирования За верное выполнение работы выставляется положительная оценка –
За неверное выполнение работы выставляется отрицательная оценка – 0 баллов.
5.6. Лабораторная работа №6 «Использование стандартных функций для работы с массивами»
5.6.1. Текст лабораторной работы №6
Цель работы:
Изучение порядка действий при вычислении выражений. Приобретение навыков в записи выражений на языке Паскаль и использовании стандартных функций.
Задание:
( выполняется по вариантам)
1. Найти значение функции Y(X) при заданном Х. Используя стандартные функции, вычислить Y11=[Y], где [ ] означают целую часть числа; Y22=[Y+0.5]; Y22=[Y-0.5].
2. Записать выражение, зависящее от координат точки X1 и Y1 и принимающее значение TRUE, если точка принадлежит заштрихованной области, и FALSE, если не принадлежит. Для заданной точки вычислить это выражение и результат выдать на печать.
Пояснения к работе:
Функции, отсутствующие в списке стандартных функций языка Паскаль, следует выразить через имеющиеся.
Печать значения выражения в данной точке организовать, используя запись выражения в операторе WRITELN.
Пример программы, которая вычисляет Y(X)=3-х+1SIN(X) при заданном Х, печатает Y11, Y22 и проверяет принадлежность точки с координатами (X1, Y1) заштрихованной области. Исходные данные: X=-1.5, X1=0.5, Y1=1.2.
Y
1

0 1 X
PROGRAM FUN;
VAR X,X1,Y,Y1:REAL;
BEGIN
WRITELN ('ВВЕДИ X:’);
READLN (X);
Y:=EXP((-X+1)*LN(3))*SIN(X);
WRITELN (’ПРИ X= ’,X:8:3, ’Y=’,Y:8:4);
WRITELN (‘ Y11=‘,TRUNC(Y):4,’ Y22=‘,ROUND(Y):4);
WRITELN (‘ВВЕДИ КООРДИНАТЫ: X1,Y1’);
READLN (X1,Y1);
WRITELN ((X1>=0) AND (Y1>=0) AND (SQR(X)+SQR(Y)<=1));
END.
Содержание отчета:
Постановка задачи для конкретного варианта.
Описание используемых стандартных функций.
Текст программы и результаты ее выполнения.
Выводы.
Контрольные вопросы:
Какие стандартные функции определены для целых чисел?
Какие функции преобразуют вещественный аргумент в целое число? Чем они отличаются?
Что такое выражение, операция, операнд?
Какие операции называются операциями отношения? В чем заключаются особенности результата операций отношения?
Каковы основные правила для определения старшинства операций?
5.6.2. Время на выполнение: 90 минут
5.6.3. Перечень объектов контроля и оценки
Наименование объектов контроля и оценки Основные показатели оценки результата Оценка
У 1. Работать в среде программирования -Составление работоспособной программы.
У 2. Реализовывать построенные алгоритмы в виде программ на конкретном языке программирования З1. Этапы решения задачи на компьютере З2. Типы данных З3. Базовые конструкции изучаемых языков программирования З4. Принципы структурного и модульного программирования За верное выполнение работы выставляется положительная оценка –
За неверное выполнение работы выставляется отрицательная оценка – 0 баллов.
5.7. Практическая работа по теме «Оператор варианта»
5.7.1. Текст практической работы.
1 вариант
1. type месяц=(янв, фев, маар, апр, май, июн, июл, авг, сен, окт, ноя, дек);
день=1..31;
var d1,d2: день, m1,m2: месяц; t: Boolean;
Переменной t присвоить значение true, если дата d1, m1 предшествует (в рамках года) дате d2, m2, и значение false иначе.
2. Определить, какими будут значения переменных p и d после выполнения операторов:
p:=true; d:=1;
case k mod 10 of
3, 2, 7, 2: d:=k;
1: ;
4, 8: begin p:=false; d:=2 end;
9, 6: begin p:=false; d:=3 end
end;
если целая переменная k имеет значение 6.
3. type цвет=(чёрный, серый, белый);
var c: цвет;
Напечатать значение переменной c.
2 вариант
1. type месяц=(янв, фев, маар, апр, май, июн, июл, авг, сен, окт, ноя, дек);
день=1..31;
var m, m1: месяц; n:1..12;
Переменной m1 присвоить название месяца, следующего за месяцем m (с учётом того, что за декабрём идёт январь)
2. Определить, какими будут значения переменных p и d после выполнения операторов:
p:=true; d:=1;
case k mod 10 of
3, 2, 7, 2: d:=k;
1: ;
4, 8: begin p:=false; d:=2 end;
9, 6: begin p:=false; d:=3 end
end;
если целая переменная k имеет значение 235.
3. var k: 1..9;
Напечатать значение переменной k римскими цифрами.
3 вариант
1. type месяц=(янв, фев, маар, апр, май, июн, июл, авг, сен, окт, ноя, дек);
день=1..31;
var m, m1: месяц; n:1..12;
Переменной m1 присвоить название k-го месяца после месяца m
2. Определить, какими будут значения переменных p и d после выполнения операторов:
p:=true; d:=1;
case k mod 10 of
3, 2, 7, 2: d:=k;
1: ;
4, 8: begin p:=false; d:=2 end;
9, 6: begin p:=false; d:=3 end
end;
если целая переменная k имеет значение 71.
3. type месяц=(янв, фев, маар, апр, май, июн, июл, авг, сен, окт, ноя, дек);
var d: 28..31; m: месяц;
Переменной d присвоить количество дней в месяце m (год считать невисокосным).
4 вариант
1. type месяц=(янв, фев, маар, апр, май, июн, июл, авг, сен, окт, ноя, дек);
день=1..31;
var m, m1: месяц; n:1..12;
Переменной m1 присвоить название n-го месяца года.
2. Определить, какими будут значения переменных p и d после выполнения операторов:
p:=true; d:=1;
case k mod 10 of
3, 2, 7, 2: d:=k;
1: ;
4, 8: begin p:=false; d:=2 end;
9, 6: begin p:=false; d:=3 end
end;
если целая переменная k имеет значение 100.
3. type месяц=(янв, фев, маар, апр, май, июн, июл, авг, сен, окт, ноя, дек);
var k:1..366; d: 28..31; m: месяц;
Определить k- порядковый номер того дня високосного года, который имеет дату d, m.
5.7.2. Время на выполнение: 90 минут
5.7.3. Перечень объектов контроля и оценки
Наименование объектов контроля и оценки Основные показатели оценки результата Оценка
З1. Этапы решения задачи на компьютере Составление правильного алгоритма. З2. Типы данных З3. Базовые конструкции изучаемых языков программирования З4. Принципы структурного и модульного программирования За верное выполнение работы выставляется положительная оценка –
За неверное выполнение работы выставляется отрицательная оценка – 0 баллов.
5.8. Тест на тему «Использование стандартных функций и процедур для работы со строками»
5.8.1. Текст теста.
Каков будет результат выполнения программы:
var s1, s2, s3: string;
begin
s1:=’паро’; s2:=’воз’;
s3:=concat(s1, s2);
writeln(s3);
end.
1) пар и воз 2) парвз 3) 7 4) паровоз
Каков будет результат выполнения программы:
var s1, s2: string;
begin
s1:=’информатика’; delete(s1, 3, 4);
writeln(s1); end.
инатика 2) форма 3) инф 4) инфо
Каков будет результат выполнения программы:
var s1, s2: string;
begin
s1:=copy(’крокодил’,4,3); writeln(s1); end.
крок 2) одил 3) код 4) кродил
Каков будет результат выполнения программы:
var s: string;
begin s:=length(’каникулы’); end.
s=0 2) s=1 3) s=8 4) s=true
Каков будет результат выполнения программы:
var r: real;
begin
r:=4.869; t:=trunc(r); end.
t=23.07 2) t=2.207 3) t=5 4) t=4
Какая из данных программ записана без ошибок:
var b:Boolean; begin b:=7; writeln (‘результат: ’, b); end.
var b:Boolean; begin b:=false; if not b then writeln (‘Ура!’); end.
var b:Boolean; begin b:=’Hello, World’; writeln (b); end.
var b:Boolean; c: real; begin c:=sqr(b); writeln (‘результат: ’, c); end.
Какая из данных программ на Паскале правильная:
var r:string; begin r:=true; if r then halt; end.
var r:string; c:char; begin r:=4/c; end.
var r:string; begin r:=’Hello World!’; writeln (r); end.
var r:string; begin r:=Hi, friend; writeln (r); end.
Выберите правильный результат действия программы на Паскале:
const n=2;
var k:integer; m,l: real;
begin
l:=0;
for k:=1 to 6 do
m:=k/n;
l:=l+m;
end.
l=10.5 2) l=20.5 3) l=1.5 4) l=10
5.8.2. Время на выполнение: 30 минут
5.8.3. Перечень объектов контроля и оценки
Наименование объектов контроля и оценки Основные показатели оценки результата Оценка
З1. Этапы решения задачи на компьютере Составление правильного алгоритма. З2. Типы данных З3. Базовые конструкции изучаемых языков программирования З4. Принципы структурного и модульного программирования За верное выполнение работы выставляется положительная оценка –
За неверное выполнение работы выставляется отрицательная оценка – 0 баллов.
5.9. Лабораторная работа №9 «Работа с данными типа множество»
5.9.1. Текст лабораторной работы №9.
Цель работы:
Получение навыков в задании переменных множественного типа и выполнении простейших операций над ними.
Знакомство с задачами, в которых целесообразно использовать переменные множественных типов.
Задание:
Составить программу алгоритма (по вариантам).
Ввести текст программы в окне редактора.
Выполнить компиляцию программы.
Исполнить программу и просмотреть ее выполнение на экране.
Сохранить программу на диске.
Пояснения к работе:
Множественный тип данных S строится на основе некоторого базового типа BS, в качестве которого используется любой ограниченный или скалярный тип, кроме неограниченного целого и вещественного типов.
В общем виде множественный тип данных задается следующим образом: TYPE S = SET OF BS. Базовый тип BS определяет конечное множество значений множественного типа S. Любые подмножества базового множества могут являться значениями переменных множественного типа S. Они образуются перечислением через запятую элементов базового множества или выражений базового типа и заключаются в квадратные скобки. Множество, не содержащее элементов, называется пустым и обозначается как [ ].
Содержание отчета:
Постановка задачи.
Текст программы.
Тесты. Результаты отладки на тестах.
Анализ допущенных ошибок.
Варианты задания:
Дана непустая последовательность символов. Требуется построить и напечатать множество, элементами которого являются встречающиеся в последовательности:
цифры от ‘0’ до ‘9’;
буквы от ‘A’ до ‘F’ и от ‘X’ до ‘Z’;
буквы от ‘G’ до ‘N’ и цифры от ‘0’ до ‘9’;
знаки препинания;
буквы от ‘A’ до ‘Z’ и цифры от ‘0’ до ‘5’;
буквы от ‘T’ до ‘X’ и знаки препинания;
цифры от ‘5’ до ‘9’ и знаки арифметических операций;
знаки арифметических операций и знаки препинания;
цифры и знаки арифметических операций;
знаки препинания и буквы от ‘E’ до ‘N’;
знаки операций отношения.
Контрольные вопросы:
Какие типы данных используются в качестве базовых при построении множественных типов?
Какие операции определены над переменными множественного типа и каков их приоритет?
5.9.2. Время на выполнение: 90 минут
5.9.3. Перечень объектов контроля и оценки
Наименование объектов контроля и оценки Основные показатели оценки результата Оценка
У 1. Работать в среде программирования -Составление работоспособной программы.
У 2. Реализовывать построенные алгоритмы в виде программ на конкретном языке программирования З1. Этапы решения задачи на компьютере З2. Типы данных З3. Базовые конструкции изучаемых языков программирования З4. Принципы структурного и модульного программирования За верное выполнение работы выставляется положительная оценка –
За неверное выполнение работы выставляется отрицательная оценка – 0 баллов.
5.10.Лабораторная работа №10 «Разработка программ со структурированными типами данных»
5.10.1. Текст лабораторной работы №10
Цель работы:
Получить практические навыки обработки данных комбинированных типов.
Пояснения к работе:
Запись — это структура данных, доступ к элементам которой осуществляется по имени (названию элемента). Элементы записи могут иметь разный тип, поэтому при описании записи надо указывать и название каждого элемента, и его тип.
Описание записи имеет следующий вид:
type название-типа-записи = record
название-элемента: тип-элемента;
end;
В качестве названий элементов выступают обычные идентификаторы Паскаля -так же, как при описании переменных. Например, описание записи, характеризующей футбольную команду (содержащую название команды, города, страны и гол создания) может выглядеть так:
type TFootballTearrtRecord = record
Нате: TFootballTeam;
City, Country: String;
Year: 1800..3000; end;
Элемент записи Year (год) можно описать как имеющий тип integer, но более корректно явно указать его допустимый диапазон значений.
Для обращения к элементу записи сначала указывается имя переменной, затем точка и название соответствующего элемента.
var T: TFootballTeamRecord;
begin
Т.Name := Spartak;
Т.City := 'Москва';
Когда надо задать значения большому числу элементов переменной-записи, каждый раз предварительно указывать ее имя неудобно. В Паскале имеется ключевое слово with, которое позволяет опускать имя переменной в логическом блоке. При этом перед каждым упоминанием элемента в этом блоке имя переменной будет ставиться автоматически.
with T do begin
Name := Spartak; City :- 'Москва'; end;
Если в логическом блоке, охваченном словом with, требуется использовать также переменную, имя которой совпадает с названием одного из элементов записи, перед
ней необходимо указать название модуля (или программы), в котором эта пере-
менная описана.
var T; TFootballTeamRecord;
Name: string;
begin
Name := 'Москва';
with T do
begin
Name := Spartak;
City := Projectl.Name;
end;
ЗАПИСИ С ВАРИАНТАМИ
Записи, представленные выше, имеют строго определенную структуру. В некоторых случаях это резко ограничивает возможности их применения. Поэтому в языке Паскаль имеется возможность задать тип записи, содержащий произвольное число вариантов структуры. Такие записи называются записями с вариантами. Записи с вариантами обеспечивают средства объединения записей, которые похожи, но не идентичны по форме. Они состоят из фиксированной и вариантной частей.
Использование фиксированной части не отличается от описанного ранее. Вариантная часть формируется с помощью оператора case. Он задает особое поле записи— поле признака, которое определяет, какой из вариантов в данный момент будет активизирован. Значением признака в каждый текущий момент выполнения программы должна быть одна из расположенных далее констант. Константа, служащая признаком, задает вариант записи и называется константой выбора.
Формат:
Type Rec = record case <поле признака>: <имя типа >of
<константа выбора1>:(поле, …:тип );

<константа выбораN>:(поле, …:тип )
end;
Содержание отчета:
Постановка задачи.
Текст программы.
Тесты. Результаты отладки на тестах.
Анализ допущенных ошибок.
Варианты задания:
Во всех вариантах предусмотреть описание вариантной части записи.
Составьте программу, которая описывает массив записей—телефонный справочник— и обеспечивает ввод данных, поиск номера телефона по фамилии, подсчет и вывод списка всех абонентов по критерию «увлечение компьютерными играми». В записи о каждом однокласснике содержатся следующие сведения: фамилия, имя, телефон, хобби.
Составьте программу, которая описывает таблицу химических элементов, отображая следующую информацию: название, символическое обозначение, массу атома, заряд атомного ядра, перечень основных химических свойств. Программа должна выполнять вывод данных о химическом элементе по указанному символическому обозначению, находить элемент с самой большой массой, с самым маленьким зарядом ядра.
Опишите, используя структуру записи, вступительные экзамены, на которых абитуриенты сдавали три экзамена, а для поступления надо было набрать 12 баллов. Составьте программу, выводящую на экран следующую информацию: а) список абитуриентов, сдавших все три экзамена на 5
б) список абитуриентов, потерпевших неудачу на экзаменах
в) список абитуриентов, зачисленных в институт
Опишите, используя структуру записи, библиотеку. Запись, описывающая каждую книгу, должна содержать следующие поля: код книги, название книги, раздел, издательство, год издания и место хранения. Составьте программу, реализующую следующие функции:
а) нахождение места хранения определенной книги
б) выборка всех книг одного автора
в) выборка всех книг, изданных в определенном городе
Опишите, используя структуру записи, видеотеку. Запись, описывающая каждую кассету, должна содержать следующие поля: название фильма, жанр, исполнитель главной роли, страна, язык, длительность. Составьте программу, реализующую следующие функции:
а) выбор всех фильмов определенного жанра
б) выбор всех фильмов с определенным исполнителем главной роли
в) выбор всех фильмов длительностью менее 100 мин.
Контрольные вопросы:
Почему запись называют комбинированным типом данных?
Чем определяется объем памяти, требуемый для размещения записи?
Что такое составное имя поля записи? Из каких частей оно состоит и как записывается?
Зачем при обращении к полю записи используется предложение with?
Зачем применяются записи с вариантами? Из каких частей состоит запись с вариантами?
5.10.2. Время на выполнение: 90 минут
5.10.3. Перечень объектов контроля и оценки
Наименование объектов контроля и оценки Основные показатели оценки результата Оценка
У 1. Работать в среде программирования -Составление работоспособной программы.
У 2. Реализовывать построенные алгоритмы в виде программ на конкретном языке программирования З1. Этапы решения задачи на компьютере З2. Типы данных З3. Базовые конструкции изучаемых языков программирования З4. Принципы структурного и модульного программирования За верное выполнение работы выставляется положительная оценка –
За неверное выполнение работы выставляется отрицательная оценка – 0 баллов.
5.11. Лабораторная работа №11 «Разработка усложненных программ со структурированными типами данных»
5.11.1. Текст лабораторной работы №11
Для заданного варианта задачи написать программу с использованием массивов. Программа должна содержать необходимые комментарии и вывод на печать исходных данных и результат с поясняющим текстом.
Варианты заданий
Вариант Выражение
1 Заданы два вектора X(N) ,Y(N) и матрица А(N, N). Найти вектор Z(N), где Z=XA+YA
2 Дана последовательность чисел A(N). Сформировать вектор B(M) из чисел, принадлежащих отрезку(X, Y).
3 Заданы три матрицы А(N1, N1), В(N2, N2), С(N3, N3). Найти минимальное из трех чисел X, Y, Z – следы матриц А, В, С соответственно (следом матрицы называется сумма элементов главной диагонали).
4 Заданы две матрицы А(N1, N1), В(N2, N2). Выяснить и напечатать, сколько из них является симметричными (матрица называется симметричной, если транспонированная матрица равна исходной)
5 Заданы две матрицы А(N1,N1), В(N2,N2). Построить таблицу функции Y=CX+D при х, меняющемся от 0 до 1 с шагом 0.1, где С, D – следы матриц A, B соответственно (следом матрицы называется сумма элементов главной диагонали).
6 Заданы два вектора Х(N) ,Y(N). Найти сумму двух векторов, где C=XA, a D=YA, где А – число, введенное с клавиатуры.
7 Дана матрица A(N,N). Сформируйте два одномерных массива. В один перешлите четные, а в другой нечетные элементы матрицы. Выведите на экран все массивы.
8 Заданы три матрицы А(N1, N1), В(N2, N2), С(N3, N3). Упорядочить по убыванию три числа X, Y, Z , являющихся максимальными элементами матриц
9 Заданы два массива A(N1), B(N2). Переменной S присвоить значение –1, 0 или1, если максимальный элемент массива A меньше, равен или больше максимального элемента массива В соответственно
10 Вычислите сумму элементов двумерного массива, индексы которых составляют в сумме заданное число К
11 Из элементов массива А(N) сформировать массив В, элементы которого по модулю больше некоторого значения С
12 Определить среднее арифметическое всех элементов массива А(N), удовлетворяющих условию предыдущей задачи
13 Составить программу для подсчета числа нулевых элементов массива A(N,M). Массив заполнять случайными числами.
14 Составить программу для подсчета числа отрицательных элементов массива A(N,M). Массив заполнять с клавиатуры.
15 Составить программу для подсчета числа положительных элементов массива A(N,M). Массив заполнять случайными числами.
16 Определить среднее арифметическое всех элементов массива А(N), удовлетворяющих условию: A(I,J)>C
17 Вычислить сумму элементов массива A(N,M), значения которых по модулю лежат в данном диапазоне: B<<C
18 В массиве A(N,M) заменить числом В значения всех элементов, удовлетворяющих условию A(I,J)>В
19 Транспонировать матрицу A(N,N). Транспонированием называется замена элементов строк элементами столбцов).
20 Найти сумму минимальных элементов главной и побочной диагонали
21 Сожмите одномерный массив, удалив предшествующие минимальному элементы
22 Вычислить длину вектора Х(N). Длина вектора вычисляется по формуле
L2= Х(1)2+… Х(N)2
23 Найти сумму максимального и минимального элементов массива A(N,M).
24 Найти сумму максимального и минимального элементов массива A(N,M).
25 Определить количество положительных, отрицательных и нулевых элементов массива A(N,M)
26 Создайте матрицу из 15 строк и 15 столбцов. Вычислите произведение суммы элементов главной диагонали на сумму элементов L-й строки
27 Создайте одномерный массив, элементами которого являются суммы положительных элементов строк матрицы
28 Найдите сумму элементов столбца и строки массива, на пересечении которых находится максимальный элемент
29 Создайте массив A(N,M) и найдите в нем максимальный по абсолютному значению элемент а также укажите номер строки и столбца, содержащие этот элемент.
30 Отсортировать одномерный массив по убыванию.
31 Найдите произведение неравных нулю элементов выше главной диагонали
32 Найдите сумму элементов массива ниже главной диагонали
5.11.2. Время на выполнение: 90 минут
5.11.3. Перечень объектов контроля и оценки
Наименование объектов контроля и оценки Основные показатели оценки результата Оценка
У 1. Работать в среде программирования -Составление работоспособной программы.
У 2. Реализовывать построенные алгоритмы в виде программ на конкретном языке программирования З1. Этапы решения задачи на компьютере З2. Типы данных З3. Базовые конструкции изучаемых языков программирования З4. Принципы структурного и модульного программирования За верное выполнение работы выставляется положительная оценка –
За неверное выполнение работы выставляется отрицательная оценка – 0 баллов.
5.12. Лабораторная работа №12 «Организация процедур. Использование процедур»
5.12.1. Текст лабораторной работы №12
Цель работы:
Получить практические навыки реализации отдельных частей модульной программы, предназначенных для решения частных задач, организованных в подпрограммы.
Задание:
Составить программу :
а) упорядочить по неубыванию массивы разной длины (по вариантам) и вывести их на печать;
б) упорядоченные массивы использовать для построения нового массива с минимальной длиной, новый массив образуется путем перемножения соответствующих компонентов упорядоченных массивов.
Ввести текст программы в окне редактора.
Выполнить компиляцию программы.
Исполнить программу и просмотреть ее выполнение на экране.
Сохранить программу на диске.
Пояснения к работе:
1. Заголовок процедуры имеет следующий вид:
Procedure name_of_procedure (list_of_parameters);
Здесь list_of_parameters представляет собой список параметров процедуры. Имя процедуры не является носителем результата, поэтому тип процедуры в заголовке не описывается. Обращение к процедуре производится простым указанием ее имени в нужном месте программы (но не в составе какого-либо выражения) со списком параметров, если таковой имеется.
2. Если в качестве исходной информации в процедуру передается массив, то его следует передавать по ссылке для экономии памяти, так как в этом случае при вызове процедуры не образуется локальный массив.
3. Несмотря на то что обрабатываемые массивы имеют разную длину, они описываются в программе как массивы одного и того же типа, так как при обращении к процедуре типы соответствующих формальных и фактических параметров должны совпадать.
Содержание отчета:
Постановка задачи.
Блок-схема алгоритма.
Текст программы.
Результаты тестирования и выводы.
Контрольные вопросы:
В чем различие между стандартными и определенными пользователем подпрограммами?
Опишите последовательность событий при вызове процедуры.
Что называется параметром, и каково его назначение?
Для чего используется исполнение программы в пошаговом режиме с заходом в процедуры, и как это осуществить?
Каково особенности параметров-процедур?
Варианты задания:
Ввести и обработать два массива, содержащие соответственно 5 и 8 вещественных компонентов;
Ввести и обработать три массива, содержащие соответственно 3, 6 и 8 целых компонентов;
Ввести и обработать четыре массива, содержащие соответственно 4, 6, 3 и 10 целых компонентов;
Ввести и обработать два массива, содержащие соответственно 4 и 6 вещественных компонентов;
Ввести и обработать три массива, содержащие соответственно 5, 10 и 4 целых компонентов;
Ввести и обработать четыре массива, содержащие соответственно 3, 5, 8 и 6 вещественных компонентов;
Ввести и обработать два массива, содержащие соответственно 7 и 10 вещественных компонентов;
Ввести и обработать три массива, содержащие соответственно 5, 4 и 7 целых компонентов;
Ввести и обработать четыре массива, содержащие соответственно 7, 3, 5 и 4 целых компонентов;
Ввести и обработать два массива, содержащие соответственно 6 и 8 вещественных компонентов;
Ввести и обработать три массива, содержащие соответственно 5, 6 и 9 вещественных компонентов.
5.12.2. Время на выполнение: 90 минут
5.12.3. Перечень объектов контроля и оценки
Наименование объектов контроля и оценки Основные показатели оценки результата Оценка
У 1. Работать в среде программирования -Составление работоспособной программы.
У 2. Реализовывать построенные алгоритмы в виде программ на конкретном языке программирования З1. Этапы решения задачи на компьютере З2. Типы данных З3. Базовые конструкции изучаемых языков программирования З4. Принципы структурного и модульного программирования За верное выполнение работы выставляется положительная оценка –
За неверное выполнение работы выставляется отрицательная оценка – 0 баллов.
5.13. Лабораторная работа №13 «Организация функций. Использование функций»
5.13.1. Текст лабораторной работы №13.
Цель работы:
Получить практические навыки в написании программ с использованием функций.
Изучение механизма передачи параметров по значению.
Задание:
Составить программу, которая вычисляет сумму значений заданной в варианте функции F(x, y) в пяти различных точках. Вычисление F(x, y) оформить в виде функции.
Ввести текст программы в окне редактора.
Выполнить компиляцию программы.
Исполнить программу и просмотреть ее выполнение на экране.
Сохранить программу на диске.
Содержание отчета:
Постановка задачи.
Блок-схема алгоритма.
Текст программы.
Результаты тестирования и выводы.
Контрольные вопросы:
Чем отличаются локальные и глобальные переменные?
Для чего предназначены функции?
Что включает в себя заголовок функции?
Варианты задания:
Вычислить 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;
u + t2, если u<=0, t<=0;
f(u , t)= u – t , если u>0, t<=0;
u + t, если u<=0, t>0
а) a=2.5; b=-7.3
б) a=-0.5; b=4.2
в) a=-0.2; b=-0.42
г) a=23; b=41.2
Вычислить z-сумму значений функции
Z = f (sin a , b)+f (cos a , b)+f (sin2 a , b-1)+f (sin a – cos a , b2-1)+f (sin2 a –1, cos a + b), где

u + sin t, если u>0;
f (u, t)= u +t, если u<=0

а) a= PI / 18; b = -2.1
б) a= 2.3; b = 21.3
в) a= -PI / 14; b= -0.2
г) a= -PI / 10; b= 31.2

Вычислить 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

а) x= PI / 4; y= 0.41; a= 0.1; b = -2.1
б) x= 0.32; y= PI/10; a= -0.21; b = 4.2
в) x= 19.2; y= 0.48; a= -4.3; b= -6.1
г) x= 0.2 PI y= 2/3; a= 17.1; b= 0.2
5.13.2. Время на выполнение: 90 минут
5.13.3. Перечень объектов контроля и оценки
Наименование объектов контроля и оценки Основные показатели оценки результата Оценка
У 1. Работать в среде программирования -Составление работоспособной программы.
У 2. Реализовывать построенные алгоритмы в виде программ на конкретном языке программирования З1. Этапы решения задачи на компьютере З2. Типы данных З3. Базовые конструкции изучаемых языков программирования З4. Принципы структурного и модульного программирования За верное выполнение работы выставляется положительная оценка –
За неверное выполнение работы выставляется отрицательная оценка – 0 баллов.
5.14. Лабораторная работа №14 «Построение графиков функций».
5.14.1. Текст лабораторной работы №14
Перед выполнением заданий необходимо изучить как осуществляется инициализация графического режима, стандартные процедуры и функции модуля GRAPH.
Экран дисплея компьютера в текстовом режиме имеет 25 строк по 80 символов в каждой строке, а в графическом 640 точек по вертикали и 480 по горизонтали. Точки на экране образуют прямоугольную матрицу из горизонтальных строк и вертикальных столбцов. Точки экрана нумеруются слева направо и сверку вниз. Координаты точки на экране задаются номером столбца и номером строки.
Алгоритм построения графика функции f(X) в графическом режиме заключается в.следующем:
Открывается окно на экране, в которой будет строиться график (рисунок 7а);
(XO,YO)(X1-X0,Y0)
(X0,Y1-Y0)(X1,Y1)
Рисунок 7а
(X(1),Ymax)(X(N)-X(1)<Ymax)
(X(1),Ymin)(X(N)-X(1),Ymin)
Рисунок 7б
Область изменения Х разбивается на определенное количество интервалов N и, если есть необходимость, вычерчивается сетка графика;
Формируются массивы X(N) значений аргумента функций (абсцисс) и Y(N) – значений самой функции (ординат) в каждой точке разбиения;
Определяются масштабные коэффициенты по оси X:
КХ = (X1 – X0)/(X(N) – X(1))
И по оси Y:
KY = (Y1 – Y0)/(YMAX – YMIN).
гдеYMAX – максимальное значение;
YM1N – минимальное значение ординаты функции, график которой строится.
Для перевода истинных величин Х и Y в масштаб экрана (количество точек экрана, соответствующее каждой величине) все элементы массивов X(N) и Y(N) помножаются на соответствующие масштабные коэффициенты, а для перевода системы координат экрана в привычную декартову систему координат можно воспользоваться следующими зависимостями:
Х(1) = XD – (X(1) + X(I))*KX – значение абсциссы Iтой точки;
Y(1) = (Y1 – Y0) + (YMIN – Y(1))*KY – значение ординаты Iтой точки.
Для построения простейшего графика необходимо соединить полученные точки линиями ломаной, т.е. текущая точка соединяется с последующей ( Iтая с I+1ой).
Постановка задачи
Написать подпрограмму построения графиков функций по вариантам задач с использованием графических операторов.
Входными параметрами для этой подпрограммы являются:
N – количество точек, по которым строятся графики функций;
М – количество графиков;
X(N) – массив значений аргумента (абсцисса графиков функций);
D(M,N) – массив значений функций (ордината графиков функций).
Результатом работы подпрограммы должны быть графики функций, построенные в графическом режиме.
Варианты заданий
Вариант Функции
1 y = sin(x)
2 y = ln(x)
3 y = x2+1
4 y = (x+10)2
5 y = x3 – 8
6 y = cos(x)
7 y = 10x –100
8 y = tg(x)
9 y = 20x3
10 y = x3 + 8
11 y = 100x2+5
12 y = (x2-1)/10
13 y = 100 – x2
14 y = (x -10)5
15 y = x5+32
16 y = cos(4x)
17 y = x4 – 16
18 y = x4 –100
19 y = x2-12
20 y = 50- 10
21 y = ex-15
22 y = x5+4
23 y =
24 y = 100(x2 – 25)
25 y = x3+ 125
26 y = x3 – 216
27 y = x6 – 64
28 y = 2x2 – 15
29 y = x3+1
30 y = x4 – 1
31 y =x8-1
32 y = x5+25
5.14.2. Время на выполнение: 90 минут
5.14.3. Перечень объектов контроля и оценки
Наименование объектов контроля и оценки Основные показатели оценки результата Оценка
У 1. Работать в среде программирования -Составление работоспособной программы.
У 2. Реализовывать построенные алгоритмы в виде программ на конкретном языке программирования З1. Этапы решения задачи на компьютере З2. Типы данных З3. Базовые конструкции изучаемых языков программирования З4. Принципы структурного и модульного программирования За верное выполнение работы выставляется положительная оценка –
За неверное выполнение работы выставляется отрицательная оценка – 0 баллов.
5.15. Лабораторная работа №15 «РЕШЕНИЕ НЕЛИНЕЙНЫХ УРАВНЕНИЯ МЕТОДОМ ПОЛОВИННОГО ДЕЛЕНИЯ».
5.15.1. Текст лабораторной работы №15
Существует ряд численных методов решения нелинейных трансцендентных уравнений. Одним из наиболее простых и наглядных в этом ряду является метод половинного деления, который в некоторой литературе носит название метода вилки или дихотомии. Суть этого метода пояснена ниже.
Пусть f[a,b]; f(a)*f(b)<0 и известно, что уравнение f(x) = 0 имеет единственное решение (единственный корень) X[a,b].
Полагаем c=(a+b)/2, т.е. .с – середина отреза [а,b]. Вычисляем f(c). Если f(c) = 0, то х = с и вычисления на этом заканчиваются. Если f(с)0, то знак f(c) совпадает либо со знаком f(a), либо со знаком f(b), т.к. f(а)*f(b)<0.
Таким образом, на концах одного из двух отрезков [а,с] или [c,b] функция f имеет одинаковые знаки, а на концах другого – разные. Сохраняем отрезок, на концах которого f имеет противоположные знаки, а другой отрезок, как не содержащий корень х, отбрасываем. Далее поступаем аналогично. Допустим, что уже найден некоторый отрезок [а.b], на концах которого функция f имеет противоположные знаки и, следовательно, он содержит искомый корень x.
Находим середину отрезка [a, b]: с = (а + b)/2.
Вычисляем f(с). Если f(c) = 0, то х = с. Вычисления заканчиваются. Если f(с) 0, то полагаем
a = a, b = c,если f(a)*f(c)<0 и a = c, b = b,если f(c)*f(b)<0
Этот процесс может быть конечным, если середина отрезка полученного на некотором шаге. совпадает с искомым корнем х, либо этот процесс бесконечный и для его окончания надо задаваться точностью вычисления корня . Если задана требуемая точность > 0 то, чтобы ее достигнуть, достаточно сделать число шагов N, удовлетворяющее условию
N > ln(b–a)/
На рисунке 8 показано несколько начальных шагов. Изложенный метод является типично машинным, так как вычисления по формулам очень простые и цикличные. Он обладает достаточно быстрой сходимостью.
Рисунок 8

Фрагмент программы, реализующей метод половинного деления
Var a,b,n,toch,c:real;
Function f(x:real):real;
begin
f:=sin(x)
end;

Write(‘Левая граница a: ’); readln(a);
Write(‘Правая граница b: ’); readln(b);
Write(‘Количество точек вычисления n: ’); readln(n);
Write(‘Введите точность’); readln(toch);

c:=(a+b)/2;
While (abs(b-a)>toch) and (f(c)<>0) do
begin
if f(a)*f(c)<=0 then b:=c else
if f(c)*f(b)<=0 then a:=c; else ng:=1;
c:=(a+b)/2;
end;
if ng=0 then {Выдать C} else {Корней нет}

Постановка задачи
Написать программу вычисления корней заданного уравнения методом вилки с графической иллюстрацией процесса вычисления по типу рисунка 2. В программе предусмотреть ввод значений границ отрезка [a,b] в диалоговом режиме и их переопределение с выводом соответствующего сообщения в случае отсутствия корней.
Для графической иллюстрации воспользоваться программой построения графиков функций. Полученный результат вывести на печать и проверить на калькуляторе.
Варианты заданий
По номеру варианта выбрать функцию f(x) из лабораторной работы 14 и решить уравнение f(x)=0.
5.15.2. Время на выполнение: 90 минут
5.15.3. Перечень объектов контроля и оценки
Наименование объектов контроля и оценки Основные показатели оценки результата Оценка
У 1. Работать в среде программирования -Составление работоспособной программы.
У 2. Реализовывать построенные алгоритмы в виде программ на конкретном языке программирования З1. Этапы решения задачи на компьютере З2. Типы данных З3. Базовые конструкции изучаемых языков программирования З4. Принципы структурного и модульного программирования За верное выполнение работы выставляется положительная оценка –
За неверное выполнение работы выставляется отрицательная оценка – 0 баллов.
Лабораторная работа №16 «Интерполяция таблично заданных функций».
5.16.1. Текст лабораторной работы №16.
Интерполяция функции, заданной таблично, заключается в нахождении промежуточных значений функции с помощью некоторой аппроксимирующей зависимости.
Задачи интерполяции возникают при использовании ряда специальных функций, при численном интегрировании, при обработке экспериментальных данных, при описании геометрических обводов летательных аппаратов и т.д.
При решении задачи интерполяции считаются заданными количество узлов (точек), значения аргумента и функции в этих точках, погрешности интерполяции.
Для замены исходной функции f(x) часто используется полином степени n:
Ln(x) = anxn +an-1 xn-1 + …. + a1 x+a0
где а – коэффициент полинома.
По степени полинома интерполяция может быть нулевого порядка, линейной, квадратичной и т.д. Использование полиномов очень высоких степеней нецелесообразно вследствие возрастания погрешности.
Таким образом интерполяцию можно определить еще как приближенное восстановление функции f(x) по формуле
f(X) = Ln(X)
Если х расположен вне минимального отрезка, содержащего все узлы интерполяции, то замену функции f(x) по приведенной формуле называют также экстраполяцией.
Всегда существует только один интерполяционный полином, который может быть представлен в различной форме.
Наиболее универсальной, наглядной и удобной для машинных вычислений является форма Лагранжа:
Yi Li (x),
Степень полинома на единицу меньше количества узловых точек n = k – 1.
Постановка задачи
В соответствии с вариантом выбрать одну из функций (F1, F2, …, F6) и степень интерполяционного полинома n по таблице.
Значения функций определены только в узловых точках, координаты которых выбираются по таблице 7.
Значения функций вычислить для следующих промежуточных значений аргумента:
X = 1.5 при n = 4;X = 2.5 при n = 3;X = 3.5 при n = 2;Х = 4.5 при n = 1.
Выбор точек, используемых для расчета, определяется значением аргумента и степенью интерполяционного полинома Лагранжа.
Исходные данные и результаты расчета вывести на печать. Для графической иллюстрации использовать подпрограмму построения графиков, преобразовав ее соответствующим образом.
Варианты заданий

Функция n = 1 n = 2 n = 3 n = 4
F1
F2
F3
F4
F5
F6
F7
F8 1
5
9
13
17
21
25
29 2
6
10
14
18
22
26
30 3
7
11
15
19
23
27
31 4
8
12
16
20
24
28
32
Координаты узловых точек
Ординаты функций Абсциссы
0 1 2 3 4 5
F1 0 0.1 0,3 0.8 0.4 0,2
F2 0.1 1,0 1.5 1.3 1.2 1.15
F3 0,2 0.4 0,8 0.l6 0.32 0,64
F4 0.3 0.5 0.3 0,5 0.3 0.5
F5 0.4 0.25 0.2 0.22 0.35 0,8
F7 0,5 0.48 0.42 0.3 0.15 0.01
F8 1 1.5 1.8 2.5 3.0 3.5
Контрольные вопросы
1. Что такое интерполяция ?
2. Чем отличается интерполяция от экстраполяции ?'
3. Для чего применяются интерполяция и экстраполяция ?
4. Что такое таблично заданная функция ?
5. Общий вид интерполяционного полинома Лагранжа ?
6. От чего зависит степень интерполяционного полинома ?
7. Что такое линейная и квадратичная интерполяция ?
5.16.2. Время на выполнение: 90 минут
5.16.3. Перечень объектов контроля и оценки
Наименование объектов контроля и оценки Основные показатели оценки результата Оценка
У 1. Работать в среде программирования -Составление работоспособной программы.
У 2. Реализовывать построенные алгоритмы в виде программ на конкретном языке программирования З1. Этапы решения задачи на компьютере З2. Типы данных З3. Базовые конструкции изучаемых языков программирования З4. Принципы структурного и модульного программирования За верное выполнение работы выставляется положительная оценка –
За неверное выполнение работы выставляется отрицательная оценка – 0 баллов.
5.17. Лабораторная работа №17 «Численное интегрирование»
Методические указания
На практике в редких случаях удается вычислить определенный интеграл или проинтегрировать обыкновенное дифференциальное уравнение. Поэтому для приближенного вычисления определенных интегралов широкое применение нашли квадратные формулы.
Квадратной формулой с весами qi и узлами xi, где qi – некоторые числа, а xi – некоторые точки отрезка [a,b], называется приближенное равенство

Приведем наиболее простые квадратурные формулы.
Формула прямоугольников:
hf0 , где f0 =f(0)
Формула трапеций:
, где f = f ( h )
Формула Симпсона, называется также формулой парабол:
f-1 +f0+f1 ,где f = f ( -h ).
Геометрический смысл этих формул ясен из рисунка 9 и заключается в нахождении площади криволинейной трапеции, заменяемой соответственно прямоугольником (рисунок 9а), трапецией (рисунок 9б) и параболой (рисунок 9в).

-h/2 0 h/2 Х 0 h X h D h X
Рисунок 9
На практике обычно делят заданный отрезок [a,b] на n равных отрезков, на каждом отрезке применяют какую-либо одну из квадратурных формул и суммируют полученные результаты. Построенные таким путем формулы на отрезке [a,b] называют усложненными. При применении формул прямоугольников и трапеций длину частичных отрезков удобно принять за h, а при использовании формулы Симпсона за – 2h.
Приведем усложненные квадратурные формулы с остаточными членами:
Усложненная формула прямоугольников:
h(f1/2 +…+f3/2+fn-1/2)
Усложненная формула трапеций:
h(f0/2+f1+f+2…+fn-1+fn/2)
гдеf = f(a + ih),
h = (b – a)/(2n),
Є[a,b] – некоторая точка.
Усложненная формула Симпсона:
(f0+f2n+f2i-1+f2i) – h4 f4
гдеf = f(a + ih),
h = (b – a)/(2n),
Є[ a,b ] – некоторая точка.
Точность каждой формулы определяется значением остаточного члена.
Постановка задачи
Написать программу вычисления определенного интеграла от заданной функции с графической иллюстрацией площади криволинейной трапеции. В программе предусмотреть ввод значений границ интервала [a,b] и числа разбиений n в диалоговом режиме.
Для графической иллюстрации использовать подпрограмму построения графиков функций, преобразовав ее соответствующим образом.
Варианты заданий
По вариантам лабораторной работы 15 выбрать одну из функций и интервал интегрирования [a,b]. Значением числа разбиений n задать самостоятельно.
Для первых десяти вариантов вычислить интеграл по формуле прямоугольников, для вторых десяти – по формуле трапеций, для оставшихся – по формуле Симпсона.
Контрольные вопросы
Геометрический смысл определенного интеграла.
Что такое квадратурные формулы для численного интегрирования?
Формула прямоугольников.
Формула трапеций.
Формула Симпсона.
От чего зависит точность вычисления определенного интеграла?
6. Промежуточная аттестация.
6.1. Вопросы зачётного занятия по предмету «Основы программирования»
1 вариант.
1. Что такое оператор? Чем отличаются простые и структурные операторы?
2. Зачем нужна отладка программы? Как она выполняется?
3. В чём отличия операторов повтора WHILE и REPEAT?
2 вариант.
1. Оператор присваивания, назначение и порядок выполнения.
2. Каковы отличия оператора выбора case от оператора условия if?
3. В каких случаях предпочтительнее использовать для организации циклов оператор повтора for?
3 вариант.
1. В чём особенности пустого оператора? Его назначение?
2. Какие правила должны выполняться при использовании оператора выбора case?
3. Каким образом в операторе цикла for описывается направление изменения значения параметра цикла?
4 вариант.
1. Что представляет собой составной оператор? Как ограничиваются операторы, объединённые в составной оператор?
2. Каково назначение операторов повтора (цикла)?
3. Какие ограничения налагаются на использование управляющей переменной (параметра цикла) в цикле for?
5 вариант.
1. Назначение, формы записи и порядок выполнения оператора условия if.
2. Какие требования предъявляются к выражениям, управляющим повторениями?
3. Какие правила пунктуации необходимо соблюдать при записи операторов?
6.2. Вопросы экзаменационных билетов.
Понятие алгоритма.
Записи с вариантной частью.
Свойства алгоритмов.
Понятие записи. Обращение к значению поля. Оператор WITH.
Основные алгоритмические конструкции: линейные, разветвляющиеся.
Объявление множества.
Основные алгоритмические конструкции: циклические.
Операции над множествами.
Этапы решения задачи на ЭВМ.
Операции со строками.
Понятие рекурсивных функций.
Стандартные функции и процедуры для работы со строками.
Данные и их обработка.
Объявление строковых типов данных.
Свойства алгоритмов.
Понятие записи. Обращение к значению поля. Оператор WITH.
Структурированные типы данных: массивы.
Поиск, удаление, замена и добавление символов в строке.
Структурированные типы данных: записи.
Ввод и вывод двухмерных массивов. Обработка массивов.
Структурированные типы данных: множества.
Ввод и вывод одномерных массивов. Обработка массивов.
Алфавит и словарь языка Паскаль.
Структурированные типы данных: строки.
Идентификаторы в языке Турбо Паскаль.
Массивы как структурированный тип данных. Объявление массива.
Константы и переменные в языке Турбо Паскаль.
Программирование рекурсивных алгоритмов.
Структура программы в Паскале.
Функции: способы организации и описание.
Перечень типов данных в Паскале.
Вызов функций, рекурсия.
Свойства алгоритмов.
Понятие записи. Обращение к значению поля. Оператор WITH.
Тождественность и совместимость типов в Турбо Паскале.
Процедуры, определенные пользователем: синтаксис, передача аргументов. Формальные и фактические параметры.
Выражения в Турбо Паскале.
Понятие подпрограммы. Процедуры и функции, их сущность, назначение, различие.
Операции в Турбо Паскаль. Операнды.
Циклические конструкции. Циклы с предусловием и постусловием.
Определение собственных типов данных в Турбо Паскаль.
Стандартные функции языка.
Ввод-вывод данных.
Составной оператор. Вложенные условные операторы.
Синтаксис операторов: присваивания, циклов.
Организация процедур в Турбо Паскале.
Синтаксис операторов безусловного и условного переходов.
Стандартные процедуры в Турбо Паскале.

Приложенные файлы

  • docx KOC PROGRAMM
    Размер файла: 615 kB Загрузок: 86