СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ
Благодаря готовым учебным материалам для работы в классе и дистанционно
Скидки до 50 % на комплекты
только до
Готовые ключевые этапы урока всегда будут у вас под рукой
Организационный момент
Проверка знаний
Объяснение материала
Закрепление изученного
Итоги урока
УЧЕБНО-МЕТОДИЧЕСКИЙ КОМПЛЕКС ДИСЦИПЛИНЫ
ОП.04 ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ
Специальность 09.02.07 Информационные системы и программирование
Содержание
Нормативно-теоретический блок 4
Учебно-методический блок 15
Контрольно-оценочный блок 32
1. НОРМАТИВНО-ТЕОРЕТИЧЕСКИЙ БЛОК
1.1 РАБОЧАЯ ПРОГРАММА УЧЕБНОЙ ДИСЦИПЛИНЫ
ПАСПОРТ РАБОЧЕЙ ПРОГРАММЫ УЧЕБНОЙ ДИСЦИПЛИНЫ
ОП.04. ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ
Область применения программы
Рабочая программа учебной дисциплины является частью основной профессиональной образовательной программы в соответствии с ФГОС по специальности 09.02.07 Информационные системы и программирование.
Рабочая программа учебной дисциплины может быть использована в дополнительном профессиональном образовании в рамках реализации программ переподготовки кадров в учреждениях СПО.
Место дисциплины в структуре основной профессиональной образовательной программы.
Учебная дисциплина «Основы алгоритмизации и программирования» является обязательной дисциплиной профессионального цикла,
устанавливающей базовые знания, необходимые для получения
профессиональных умений и навыков.
Изучению данной дисциплины предшествует освоение дисциплин: Дискретная математика с элементами математической логики, Элементы высшей математики, Иностранный язык в профессиональной деятельности.
Учебная дисциплина должна изучаться перед рассмотрением материала по профессиональным модулям: ПМ.01 Разработка модулей программного обеспечения для компьютерных систем, ПМ.02 Осуществление интеграции профессиональных модулей, ПМ.03 Сопровождение и обслуживание программного обеспечения компьютерных систем, а также выполнение курсовых проектов, прохождение производственной практики, преддипломной практики, выполнение дипломных проектов.
Цели и задачи дисциплины - требования к результатам освоения дисциплины:
В результате освоения дисциплины обучающийся должен:
уметь:
разрабатывать схемы работы программы (блок-схемы);
разрабатывать программное обеспечение с помощью языков программирования;
осуществлять выбор метода отладки программ;
решать задачи тестирования и отладки программного обеспечения;
использовать инструментальные среды поддержки разработки, системы управления;
идентифицировать, анализировать и структурировать данные;
знать:
свойства алгоритма: конечность, определенность, результативность, массовость;
область определения алгоритма;
базовые структуры алгоритмов: линейные, разветвляющиеся,
циклические;
базовые и динамические структуры данных и операции над ними;
операторы языка Pascal, C, C++.
Формируемые компетенции:
ОК 1. Понимать сущность и социальную значимость своей будущей профессии, проявлять к ней устойчивый интерес.
ОК 2. Организовывать собственную деятельность, выбирать типовые методы и способы выполнения профессиональных задач, оценивать их эффективность и качество.
ОК 4. Осуществлять поиск и использование информации, необходимой для эффективного выполнения профессиональных задач, профессионального и личностного развития.
ОК 8. Самостоятельно определять задачи профессионального и личностного развития, заниматься самообразованием, осознанно планировать повышение квалификации.
ОК 9. Ориентироваться в условиях частой смены технологий в профессиональной деятельности.
ПК 1.1. Обеспечивать защиту информации в сети с использованием программно-аппаратных средств.
ПК 1.2. Администрировать локальные вычислительные сети и принимать меры по устранению возможных сбоев.
ПК 2.3. Администрировать сетевые ресурсы в информационных системах.
ПК 2.4. Обеспечивать сбор данных для анализа использования и функционирования программно-технических средств компьютерных сетей.
Количество ак.часов на освоение программы учебной дисциплины: максимальной учебной нагрузки обучающегося - 44 ак.часа; обязательной аудиторной учебной нагрузки обучающегося - 44 ак.часа; в том числе: теоретическое обучение - 30 ак.часов;
практические занятия - 14 ак.часов.
СТРУКТУРА И СОДЕРЖАНИЕ УЧЕБНОЙ ДИСЦИПЛИНЫ
Объем учебной дисциплины и виды учебной работы
| Вид учебной работы | Объем ак.часов |
| Объем образовательной программы | 44 |
| в том числе: |
|
| лабораторные занятия | - |
| практические занятия | 14 |
| теоретическое обучение | 30 |
| контрольные работы | - |
| семинары | - |
| курсовая работа(проект) | - |
| Самостоятельная работа обучающегося (всего) | - |
| Консультации | - |
| Промежуточная аттестация в форме дифференцированного зачета | |
2.2 Тематический план и содержание учебной дисциплины ОП.04 Основы алгоритмизации и программирования
| Наименование разделов и тем | Содержание учебного материала и формы организации деятельности обучающихся | Объем ак.часов | Осваиваемы е элементы компетенций | |
| РАЗДЕЛ 1 | Основные принципы алгоритмизации и программирования | 16 | ПК 1.1. ПК 1.2. ПК 2.3. ПК 2.4. | |
| Тема 1.1 Основные понятия алгоритмизации | Содержание учебного материала |
| ||
| 1. | Понятие алгоритма. Свойства алгоритмов. Формы записей алгоритмов. Общие принципы построения алгоритмов. | 2 | ||
| 2. | Основные алгоритмические конструкции: линейные, разветвляющиеся, циклические. Данные: понятие и типы. Основные базовые типы данных и их характеристика. | 2 | ||
| 3. | Практические занятия Составление блок-схем линейных алгоритмов,разветвляющихся алгоритмов Составление блок-схем циклических алгоритмов, алгоритмов сортировки данных | 4 | ||
| Тема 1.2 Логические основы алгоритмизации | Содержание учебного материала |
| ||
| 1. | Основы алгебры логики. Логические операции с высказываниями: конъюнкция, дизъюнкция, инверсия. | 2 | ||
| 2. | Законы логических операций. Таблицы истинности. | 2 | ||
| Тема 1.3 Языки и системы программирования | Содержание учебного материала |
| ||
| 1. | Эволюция языков программирования. Классификация языков программирования. Элементы языков программирования. Понятие системы программирования. Исходный, объектный и загрузочный модули. | 2 | ||
| 2. | Интегрированная среда программирования. | 2 | ||
| РАЗДЕЛ 2 | Программирование на алгоритмическом языке | 14 | ||
| Тема 2.1 | Содержание учебного материала |
| ПК 1.1. | |
| Основные элементы языка | 1. | История развития языка программирования. Структурная схема программы на алгоритмическом языке. Лексика языка. Переменные и константы. Типы данных. Выражения и операции. | 2 | ПК 1.2. ПК 2.3. ПК 2.4. | |
| 2. | Практические занятия Составление программ линейной структуры, разветвляющейся структуры. Составление программ циклической структуры, усложненной структуры. | 4 | |||
| Тема 2.2 Операторы языка, массивы | Содержание учебного материала | ||||
| 1. | Синтаксис операторов: присваивания, ввода-вывода. Синтаксис операторов: безусловного и условного переходов. Синтаксис операторов: циклов. Составной оператор. Вложенные условные операторы. Циклические конструкции. Циклы с предусловием и постусловием. | 2 | |||
| 2. | Массивы, как структурированный тип данных. Объявление массива. Стандартные функции для массива целых и вещественных чисел. | 2 | |||
| Тема 2.3 Процедуры и функции | Содержание учебного материала | ||||
| 1. | Понятие подпрограммы. Процедуры и функции, их сущность, назначение, различие. Организация процедур, стандартные процедуры. Процедуры, определенные пользователем: синтаксис, передача аргументов. | 2 | |||
| 2. | Формальные и фактические параметры. Процедуры с параметрами, описание процедур. Функции: способы организации и описание. Вызов функций, рекурсия. | 2 | |||
| РАЗДЕЛ 3 | Программирование в объектно-ориентированной среде | 14 | |||
| Тема 3.1 Основные принципы | Содержание учебного материала |
| |||
| объектноориентированного программирования | 1. | История развития ООП. Базовые понятия ООП: объект, его свойства и методы, класс, интерфейс. Основные принципы ООП: инкапсуляция, наследование, полиморфизм. Событийноуправляемая модель программирования. Компонентно ориентированный подход. Классы объектов. Компоненты и их свойства. | 2 |
| |
| 2. | Требования к аппаратным и программным средствам интегрированной среды разработчика. Интерфейс среды разработчика: характеристика, основные окна, инструменты, объекты. | 2 | |||
| 3. | Практические занятия Изучение интегрированной среды разработчика. Создание простого проекта. | 4 | |||
| Тема 3.2 Этапы разработки приложения | Содержание учебного материала | ||||
| 1. | Проектирование объектно-ориентированного приложения. Создание интерфейса пользователя. Программирование приложения. Тестирование, отладка приложения. Создание документации. Классы объектно-ориентированного языка программирования: виды, назначение, свойства, методы, события. Объявление класса, свойств и методов экземпляра класса. Наследование. Перегрузка методов. | 2 | |||
| 2. | Основные компоненты (элементы управления) интегрированной среды разработки, их состав и назначение. Дополнительные элементы управления. Свойства компонентов (элементов управления). Виды свойств. Синтаксис определения свойств. Категория свойств. Назначение свойств и их влияние на результат. Управление объектом через свойства. События компонентов (элементов управления), их сущность и назначение. | 2 | |||
| 3. | Практические занятия Объявление класса, создание экземпляров класса. Создание наследованного класса. Перегрузка методов. | 2 | |||
| Всего | 44 |
| |||
Для характеристики уровня освоения учебного материала используются следующие обозначения:
- ознакомительный (узнавание ранее изученных объектов, свойств);
- репродуктивный (выполнение деятельности по образцу, инструкции или под руководством)
- продуктивный (планирование и самостоятельное выполнение деятельности, решение проблемных задач)
УСЛОВИЯ РЕАЛИЗАЦИИ ПРОГРАММЫ ДИСЦИПЛИНЫ
Требования к минимальному материально-техническому обеспечению
Лаборатория информатики и информационных технологий в профессиональной деятельности, №11/52.
Оснащенность:
рабочее место каждого обучающегося (по количеству обучающихся в учебной группе на занятии) в составе: персональный компьютер;
рабочее место преподавателя, в составе: персональный компьютер;
локальная сеть;
подключение к сети Интернет;
мультимедийный проектор;
интерактивная доска;
принтер;
сканер.
Программное обеспечение:
Операционная система;
Браузер;
Антивирусное ПО;
Среда программирования.
Информационное обеспечение обучения.
Перечень рекомендуемых учебных изданий, Интернет-ресурсов, дополнительной литературы
Основные источники:
Семакин, И. Г. Основы программирования и баз данных: учебник для студ. учреждений сред. проф. образования / И. Г. Семакин. - М.: Издательский центр «Академия», 2014. - 224 с.
Дополнительные источники:
1 Советов, Б. Я. Базы данных : учебник для СПО [Электронный ресурс] / Б. Я. Советов, В. В. Цехановский, В. Д. Чертовской. - 2-е изд. - Электрон. дан. - Издательство Юрайт, 2017. - 463 с. - Режим доступа: https://www.biblio-online.ru/book/04AF84DF-F5EB-497A-82AA- DC17A08F7591
Черпаков, И. В. Основы программирования: учебник и практикум для СПО [Электронный ресурс] / И. В. Черпаков. - Электрон. дан. - Издательство Юрайт, 2017. - 219 с. - Режим доступа: https: //www.biblio- online.ru/book/F79BE5 5A-C6F1-439D-9ED5- 0D78A50B403F Информационные технологии (программное обеспечение и информационно-справочные материалы):
Договор от 13.06.2017 № 435/17 на предоставление доступа к электронно-библиотечной системе ООО «Издательство Лань» (https://e.lanbook.com/)
Договор от 01.03.2018 № 13 - УТ/2018 по обеспечению доступа к электронным информационным ресурсам ФГБНУ ЦНСХБ
Дополнительное соглашение от 12.04.2018 № ПДД 18/19 к
Лицензионному договору от 04.07.2013 № 27 на предоставление доступа к электронно-библиотечной системе «AgriLib» ФГБОУ ВО РГАЗУ (http ://ebs.rgazu.ru/)
Контракт от 20.03.2018 №0702/2222-2018 на оказание услуг по предоставлению доступа к электронным базам данных«Национальный цифровой ресурс «Руконт» Коллекция «Базовый массив» (https://rucont.ru/)
Договор от 12.05.2017 № 2949 на оказание услуг по предоставлению доступа к ЭБС «Электронно-библиотечной системе «ЭБС ЮРАЙТ www.biblio-onlaine.ru»(www.biblio-onlaine.ru)
Программы АСТ-тестирования для рубежного контроля и промежуточной аттестации обучающихся (договор Л-21/16 от 18.10. 2016)
Программные комплексы НИИ мониторинга качества образования: «Федеральный интернет-экзамен в сфере профессионального образования (ФЭПО)» (договор №ИАС -2018/1/0205 от 15 марта 2018 г.)
Договор № 9012 /13900/ЭС поставки и сопровождения экземпляров систем Консультант Плюс от 20.02.2018
Договор № 194 - 01/2018СД на услуги по сопровождению
Электронного периодического справочника «Система ГАРАНТ» от 09.01.2018
КОНТРОЛЬ И ОЦЕНКА РЕЗУЛЬТАТОВ ОСВОЕНИЯ
ДИСЦИПЛИНЫ
Контроль и оценка результатов освоения дисциплины осуществляется преподавателем в процессе проведения лабораторных занятий, различных форм тестирования, в том числе компьютерного, а также анализа выполненных обучающимися в процессе самостоятельной работы индивидуальных заданий.
| Результаты обучения | Критерии оценки | Формы и методы оценки |
| Знание общих принципов построения алгоритмов, основных алгоритмических конструкций Знание систем программирования Знание основных элементов процедурного языка программирования, структуры программы, операторов и операций, управляющих структур, структур данных, файлы, | «Отлично» - теоретическое содержание курса освоено полностью, без пробелов, умения сформированы, все предусмотренные программой учебные задания выполнены, качество их выполнения оценено высоко. «Хорошо» - теоретическое содержание курса освоено полностью, без пробелов, | Экспертное оценивание выполнения практической и самостоятельной работы, устный опрос, тестирование Экспертное наблюдение и оценка на практических и лабораторных занятиях, выполнения работ |
| кассы памяти Знание подпрограммы, составление библиотек программ Знание объектноориентированной модели программирования, понятия классов и объектов, их свойств и методов | некоторые умения сформированы недостаточно, все предусмотренные программой учебные задания выполнены, некоторые виды заданий выполнены с ошибками. «Удовлетворительно» - теоретическое содержание курса освоено частично, но пробелы не носят существенного характера, необходимые умения работы с освоенным материалом в основном сформированы, большинство предусмотренных программой обучения учебных заданий выполнено, некоторые из выполненных заданий содержат ошибки. «Неудовлетворительно» - теоретическое содержание курса не освоено, необходимые умения не сформированы, выполненные учебные задания содержат грубые ошибки. | по учебной практике |
| Умение использовать информационнокоммуникационные технологии в профессиональной деятельности Умение организовывать собственную деятельность, выбирать типовые методы и способы выполнения профессиональных задач, оценивать их эффективность и качество |
1.2 КАЛЕНДАРНО-ТЕМАТИЧЕСКИЙ ПЛАН
Таблица 1 - Объем учебной дисциплины и виды учебной работы
| Курс, семестр | Учебная нагрузка обучающихся (час.) | |||||||
| Максимальная учебная нагрузка | Самостоятельная работа обучающегося | Консультации | Обязательная аудиторная нагрузка | |||||
| Всего часов | в т.ч. | |||||||
| теоретические занятия | лабораторные занятия | практические занятия | семинарское занятие | |||||
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 3 курс, 5 семестр | 44 | - | - | 44 | 30 | - | 14 | - |
| Всего | 44 | - | - | 44 | 30 | - | 14 | - |
Таблица 2а - Материально-техническое обеспечение занятий
| № п/п | Материально-техническое обеспечение занятий |
| 1 | 2 |
| 1. | Стенд с учебной информацией по дисциплине. |
| 2. | Комплект учебно-наглядных пособий с образцами документов по выполнению практических, контрольных и самостоятельных работ. |
| 3. | Комплект методических указаний по выполнению лабораторных работ. |
| 4. | Персональные компьютеры. |
| 5. | Принтер. |
| 6. | Сканер. |
| 7. | Проектор. |
| 8. | Мультимедийное обеспечение по содержанию дисциплины. |
| 9. | Вопросы для дифференцированного зачета. |
Информационное обеспечение обучения
Основные источники:
Семакин, И. Г. Основы программирования и баз данных: учебник для студ. учреждений сред. проф. образования / И. Г. Семакин. - М.: Издательский центр «Академия», 2014. - 224 с.
Дополнительные источники:
Советов, Б. Я. Базы данных : учебник для СПО [Электронный ресурс] / Б. Я. Советов, В. В. Цехановский, В. Д. Чертовской. - 2-е изд. - Электрон. дан. - Издательство Юрайт, 2017. - 463 с. - Режим доступа: https://www.biblio-online.ru/book/04AF84DF-F5EB-497A-82AA- DC17A08F7591
Черпаков, И. В. Основы программирования: учебник и практикум для СПО [Электронный ресурс] / И. В. Черпаков. - Электрон. дан. - Издательство Юрайт, 2017. - 219 с. - Режим доступа: https: //www.biblio- online.ru/book/F79BE5 5A-C6F1-439D-9ED5- 0D78A50B403F
2 УЧЕБНО-МЕТОДИЧЕСКИЙ БЛОК
2.1 УЧЕБНО-МЕТОДИЧЕСКИЕ МАТЕРИАЛЫ ДЛЯ ПРОВЕДЕНИЯ
ЗАНЯТИЙ
ОПОРНЫЕ КОНСПЕКТЫ
Тема занятия: Понятие алгоритма. Свойства, виды и способы
описания алгоритмов
Алгоритмом называется точное и понятное предписание исполнителю совершить последовательность действий, направленных на решение поставленной задачи.
Слово «алгоритм» происходит от имени математика Аль Хорезми, который сформулировал правила выполнения арифметических действий. Первоначально под алгоритмом понимали только правила выполнения четырех арифметических действий над числами. В дальнейшем это понятие стали использовать вообще для обозначения последовательности действий, приводящих к решению любой поставленной задачи. Говоря об алгоритме вычислительного процесса, необходимо понимать, что объектами, к которым применялся алгоритм, являются данные.
Алгоритм решения вычислительной задачи представляет собой совокупность правил преобразования исходных данных в результатные.
Основными свойствами алгоритма являются:
детерминированность (определенность). Предполагает
получение однозначного результата вычислительного процесса при заданных исходных данных. Благодаря этому свойству процесс выполнения алгоритма носит механический характер;
Понятность для исполнителя — исполнитель алгоритма должен понимать, как его выполнять. Иными словами, имея алгоритм и произвольный вариант исходных данных, исполнитель должен знать, как надо действовать для выполнения этого алгоритма.
Алгоритм должен быть формализован по некоторым правилам посредством конкретных изобразительных средств. К ним относятся следующие способы записи алгоритмов:
словесная записи алгоритмов представляет собой описание последовательных этапов обработки данных. Алгоритм задается в произвольном изложении на естественном языке.
Словесный способ не имеет широкого распространения, так как такие описания:
строго не формализуемы;
страдают многословностью записей;
допускают неоднозначность толкования отдельных
предписаний.
графическая
Блок-схемой называется графическое изображение логической структуры алгоритма, в котором каждый этап процесса обработки информации представляется в виде геометрических символов (блоков), имеющих определенную конфигурацию в зависимости от характера выполняемых операций. Перечень символов, их наименование, отображаемые ими функции, форма и размеры определяются ГОСТами.
При всем многообразии алгоритмов решения задач в них можно выделить три основных вида вычислительных процессов:
линейный;
ветвящийся;
циклический.
псевдокоды (полуформализованные описания алгоритмов на условном алгоритмическом языке, включающие в себя как элементы языка программирования, так и фразы естественного языка, общепринятые математические обозначения и др.);
программная (тексты на языках программирования).
Краткий обзор существующих алгоритмических языков
Алгоритмический язык - это язык программирования, который используется как средство общения человека с компьютером. Это специально разработанный язык, который содержит определенный набор слов (ключевых слов) и фраз.
Pascal (назван в честь Блезе Паскаля), Delphi, C++...
Контрольные вопросы к теме 1
Перечислите основные свойства алгоритма и дайте каждому из них краткую характеристику.
Перечислите способы записи алгоритмов.
Что называют блок-схемой. Перечислите основные блоки, охарактеризуйте каждый из них.
Тема занятия: Основные алгоритмические конструкции:
линейные (следование), разветвляющиеся (ветвление), циклические
(повторение)
Линейным называется такой вычислительный процесс, при котором все этапы решения задачи выполняются в естественном порядке следования записи этих этапов. Такой порядок выполнения называется естественным. Последовательность команд образует составную команду «цепочка», которая в записи блок-схемой имеет вид, приведенный на рисунке 1.
Рис.1 Блок-схема линейного алгоритма.
В математике к линейным алгоритмам относятся алгоритмы, представленные формулами. Они наиболее просты для программирования. Заметим, что естественный способ кодировки формул делает программу легкочитаемой, но нередко приводит к лишним вычислениям, поэтому, чтобы избежать повторных вычислений и сократить общее количество операций выполняйте тождественные преобразования выражений. С другой стороны, надо знать, что не всегда следует осуществлять оптимизацию, поскольку она является не правилом, а исключением. Этому есть три причины, главная из которых состоит в том, что оптимизация ухудшает наглядность программ, вторая - выгоды от оптимизации должны быть существенными и третья - современные системы, как правило, имеют удовлетворительные оптимизирующие компиляторы.
На практике линейные алгоритмы в чистом виде встречаются редко: при расчете арифметических и алгебраических выражений, при расчете по формулам, при решении ряда бытовых задач.
При исполнении алгоритмов приходится не только находить значения величин, но и анализировать их свойства, сравнивать их друг с другом и в зависимости от результата сравнения выбирать ту или иную ветвь алгоритма. Алгоритмы, имеющие несколько ветвей, называются нелинейными. К таким относятся разветвляющиеся и циклические алгоритмы. Для их записи применяются составные команды.
Ветвящийся алгоритм.
Ветвящимся называется такой вычислительный процесс, в котором выбор направления обработки информации зависит от исходных или промежуточных данных (от результатов проверки выполнения какого-либо логического условия).
Базовая структура "ветвление". Определяет выполнение действий в зависимости от выполнения условия. Каждый из путей ведет к общему выходу, так что работа алгоритма будет продолжаться независимо от того, какой путь будет выбран
После того как мы проверили условие, алгоритм разделяется на две части, первая выполняется в случае, если условие оказывается истинным, другая часть выполняется в противном случае. Но нужно четко разделять понятие записи и выполнения алгоритма. Записывая алгоритм, мы
прописываем обе ветви ветвящейся
конструкции: и то, что будет выполняться при истинном условии, и то, что будет выполняться при ложном. Однако при выполнении алгоритма исполнитель выполнит только одну из ветвей алгоритма, так как в зависимости от входных данных условие может быть либо истинным, либо ложным, но не истинным и ложным одновременно.
Именно потому что выполнение алгоритма после проверки условия разделяется на две ветви, эта конструкция и носит название ветвящейся. Мы рассмотрели конструкцию, в которой какие- либо действия необходимо выполнять и при ложном, и при истинном условии. Такое ветвление называется полным. Но не всегда надо выполнять действия, если условие не выполняется. В таком случае одна из ветвей алгоритма будет пустой, и такое ветвление называется неполным.
Полное Неполное
IF Условие THEN действия 1 ELSE IF Условие THEN действия действия 2
Циклический алгоритм.
Повторяющееся выполнение действий (групп действий), зависящее от выполнения условия, называется циклом.
Любой цикл состоит из трех частей: начала, проверки и тела цикла. Начало - всегда первая часть цикла. Главная его функция - подготовить цикл. Проверка определяет момент выхода из цикла.
Базовая структура "цикл". Обеспечивает многократное выполнение некоторой совокупности действий, которая называется телом цикла. Основные разновидности циклов представлены в таблице:
Циклом называется многократно повторяемый участок вычислений. Вычислительный процесс, содержащий один или несколько циклов, называется циклическим. По количеству выполнения циклы делятся на циклы с определенным (заранее заданным) числом повторений и циклы с неопределенным числом повторений. Количество повторений последних зависит от соблюдения некоторого условия, задающего необходимость выполнения цикла. При этом условие может проверяться в начале цикла — тогда речь идет о цикле с предусловием, или в конце — тогда это цикл с постусловием.
Разновидности циклической структуры
Задается условие продолжения/окончания повторений
Задается количество повторений
Цикл с параметром
Цикл с предусловием
Цикл с постусловием
блок-
схема
Рисунок 1с параметром Рисунок 2 с предусловием Рисунок 3 с постусловием
Контрольные вопросы к теме 2
Дайте характеристику линейного алгоритма.
Дайте характеристику ветвящегося алгоритма.
Дайте характеристику циклического алгоритма.
Выводы:
Чем отличается программный способ записи алгоритмов от других?
При записи алгоритма в словесной форме, в виде блок-схемы или на псевдокоде допускается определенный произвол при изображении команд. Вместе с тем такая запись точна настолько, что позволяет человеку понять суть дела и исполнить алгоритм.
Однако на практике в качестве исполнителей алгоритмов используются специальные автоматы — компьютеры. Поэтому алгоритм, предназначенный для исполнения на компьютере, должен быть записан на понятном ему языке. И здесь на первый план выдвигается необходимость точной записи команд, не оставляющей места для произвольного толкования их исполнителем.
Следовательно, язык для записи алгоритмов должен быть формализован. Такой язык принято называть языком программирования.
Что такое уровень языка программирования?
В настоящее время в мире существует несколько сотен реально используемых языков программирования. Для каждого есть своя область применения.
Любой алгоритм, как мы знаем, есть последовательность предписаний, выполнив которые можно за конечное число шагов перейти от исходных данных к результату. В зависимости от степени детализации предписаний обычно определяется уровень языка программирования — чем меньше детализация, тем выше уровень языка.
По этому критерию можно выделить следующие уровни языков программирования:
машинные;
машинно-оpиентиpованные (ассемблеpы);
машинно-независимые (языки высокого уровня).
Машинные языки и машинно-ориентированные языки — это языки низкого уровня, требующие указания мелких деталей процесса обработки данных. Языки же высокого уровня имитируют естественные языки, используя некоторые слова разговорного языка и общепринятые математические символы. Эти языки более удобны для человека.
Языки высокого уровня делятся на:
процедурные (алгоритмические) (Basic, Pascal, C и др.), которые предназначены для однозначного описания алгоритмов; для решения задачи процедурные языки требуют в той или иной форме явно записать процедуру ее решения;
логические (Prolog, Lisp и др.), которые ориентированы не на разработку алгоритма решения задачи, а на систематическое и формализованное описание задачи с тем, чтобы решение следовало из составленного описания;
объектно-ориентированные (Object Pascal, C++, Java и др.), в основе которых лежит понятие объекта, сочетающего в себе данные и действия над нами. Программа на объектно-ориентированном языке, решая некоторую задачу, по сути описывает часть мира, относящуюся к этой задаче. Описание действительности в форме системы взаимодействующих объектов естественнее, чем в форме взаимодействующих процедур.
В чем преимущества алгоритмических языков перед машинными?
Основные преимущества таковы:
алфавит алгоритмического языка значительно шире алфавита машинного языка, что существенно повышает наглядность текста программы;
набор операций, допустимых для использования, не зависит от набора машинных операций, а выбирается из соображений удобства формулирования алгоритмов решения задач определенного класса;
формат предложений достаточно гибок и удобен для использования, что позволяет с помощью одного предложения задать достаточно содержательный этап обработки данных;
требуемые операции задаются с помощью общепринятых математических обозначений;
данным в алгоритмических языках присваиваются индивидуальные имена, выбираемые программистом;
в языке может быть предусмотрен значительно более широкий набор типов данных по сравнению с набором машинных типов данных.
Таким образом, алгоритмические языки в значительной мере являются машинно-независимыми. Они облегчают работу программиста и повышают надежность создаваемых программ.
Какие компоненты образуют алгоритмический язык?
Алгоритмический язык (как и любой другой язык) образуют три его составляющие:
Алфавит — это фиксированный для данного языка набор основных символов, т.е. "букв алфавита", из которых должен состоять любой текст на этом языке — никакие другие символы в тексте не допускаются.
Синтаксис — это правила построения фраз, позволяющие определить, правильно или неправильно написана та или иная фраза. Точнее говоря, синтаксис языка представляет собой набор правил, устанавливающих, какие комбинации символов являются осмысленными предложениями на этом языке.
Семантика определяет смысловое значение предложений языка. Являясь системой правил истолкования отдельных языковых конструкций, семантика устанавливает, какие последовательности действий описываются теми или иными фразами языка и, в конечном итоге, какой алгоритм определен данным текстом на алгоритмическом языке.
Тема занятия: Эволюция языков программирования
В развитии инструментального программного обеспечения (т.е. программного обеспечения, служащего для создания программных средств в любой проблемной области) рассматривают пять поколений языков программирования (ЯП). Языки программирования как средство общения человека с ЭВМ от поколения к поколению улучшали свои характеристики, становясь, все более доступными в освоении непрофессионалам.
Первые три поколения ЯП характеризовались более сложным набором зарезервированных слов и синтаксисом. Языки четвертого поколения все еще требуют соблюдения определенного синтаксиса при написании программ, но он значительно легче для освоения. Естественные ЯП, разрабатываемые в настоящее время, составят пятое поколение и позволят определять необходимые процедуры обработки информации, используя предложения языка, весьма близкого к естественному и не требующего соблюдения особого синтаксиса.
Таблица 1 Поколения ЯП
| Поколения | Языки программирования | Характеристика |
| Первое | Машинные | Ориентированы на использование в конкретной ЭВМ, сложны в освоении, требу ют хорошего знании архитектуры ЭВМ |
| Второе | Ассемблеры, Макроассемблеры | Более удобны для использования, но по- прежнему машинно-зависимы |
| Третье | Языки высокого уровня | Мобильные, человеко - ориентированные, проще в освоении |
| Четвертое | Непроцедурные, объектноориентированные, языки запросов, параллельные | Ориентированы на непрофессионального пользователя и на ЭВМ с параллельной архитектурой |
| Пятое | Языки искусственного интеллекта, | Ориентированы на повышение |
экспертных систем и баз знаний, интеллектуального уровня ЭВМ и естественные языки интерфейса с языками
ЯП первого поколения представляли собой набор машинных команд в двоичном (бинарном) или восьмеричном формате, которым определялся архитектурой конкретной ЭВМ. Каждый тип ЭВМ имел свой ЯП, программы на котором были пригодны только для данного типа ЭВМ. От программиста при этом требовалось хорошее знание не только машинного языка, но и архитектуры ЭВМ.
Второе поколение ЯП характеризуется созданием языков ассемблерного типа (ассемблеров, макроассемблеров), позволяющих вместо двоичных и других форматов машинных команд использовать их мнемонические символьные обозначения (имена). Являясь существенным шагом вперед, ассемблерные языки все еще оставались машиннозависимыми, а программист все также должен был быть хорошо знаком с организацией и функционированием аппаратной среды конкретного типа ЭВМ. При этом ассемблерные программы все так же затруднительны для чтения, трудоемки при отладке и требуют больших усилий для переноса на другие типы ЭВМ. Однако и сейчас ассемблерные языки используются при необходимости разработки высокоэффективного программного обеспечения (минимального по объему и с максимальной производительностью).
Третье поколение ЯП начинается с появления в 1956 г. первого языка высокого уровня — Fortran, разработанного под руководством Дж. Бэкуса в фирме 1ВМ. За короткое время Fortran становится основным ЯП при решении инженерно-технических и научных задач. Первоначально Fortran обладал весьма ограниченными средствами обеспечения работы с символьной информацией и с системой ввода-вывода. Однако постоянное развитие языка сделало его одним из самых распространенных ЯВУ на ЭВМ всех классов — от микро- до суперЭВМ, а его версии используются и для вычислительных средств нетрадиционной параллельной архитектуры.
Вскоре после языка Fortran появились такие ныне широко известные языки, как Algol, СоЬо1, Вазхс, PL/1, Раscal, АРБ, ЛБА, С, Forth, Lisp, Модп1а и др. В настоящее время насчитывается свыше 2000 различных языков высокого уровня.
Языки четвертого поколения носят ярко выраженный непроцедурный характер, определяемый тем, что программы на таких языках описывают только что, а не как надо сделать. В программах формируются скорее соотношения, а не последовательности шагов выполнения алгоритмов. Типичными примерами непроцедурных языков являются языки, используемые для задач искусственного интеллекта (например, Prolog, Langin). Так как непроцедурные языки имеют минимальное число синтаксических правил, они значительно более пригодны для применения непрофессионалами в области программирования.
Второй тенденцией развития ЯП четвертого поколения являются объектно-ориентированные языки, базирующиеся на понятии программного объекта, впервые использованного в языке Simulа-67 и составившего впоследствии основу известного языка Smalltalk. Программный объект состоит из структур данных и алгоритмов, при этом каждый объект знает, как выполнять операции со своими собственными данными. На самом деле, различные объекты могут пользоваться совершенно разными алгоритмами при выполнении действий, определенных одним и тем же ключевым словом (так называемое свойство полиморфизма). Например, объект с комплексными числами и массивами в качестве данных будет использовать различные алгоритмы для выпол - нения операции умножения. Такими свойствами обладают объектноориентированные Pascal Basic, С++, Smalltalk, Simute, и ряд других языков программирования.
Третьим направлением развития языков четвертого поколения можно считать языки запросов, позволяющих пользователю получать информацию из баз данных. Языки запросов имеют свой особый синтаксис, который должен соблюдаться, как и в традиционных ЯП третьего поколения, но при этом проще в использовании. Среди языков запросов фактическим стандартом стал язык SQL .
И, наконец, четвертым направлением развития являются языки параллельного программирования (модификация ЯВУ Fortran, языки Оссаm, SISAL, F₽ и др.), которые ориентированы на создание программного обеспечения для вычислительных средств параллельной ар - хитектуры (многомашинные, мультипроцессорные среды и др.), в отличие от языков третьего поколения, ориентированных на традиционную однопроцессорную архитектуру.
К интенсивно развивающемуся в настоящее время пятому поколению относятся языки искусственного интеллекта, экспертных систем, баз знаний (InterLisp, ExpertLisp, IQLisp, SIAL и др.), а также естественные языки, не требующие освоения какого-либо специального синтаксиса (в настоящее время успешно используются естественные ЯП с ограниченными возможностями — Clout, Q&А, НАL и др.).
Тема занятия: Классификация языков программирования
Для того чтобы ЭВМ могла решать задачи, составленные человеком, она должна последовательно выполнять инструкции некоторой программы-алгоритма. Совокупность таких инструкций, направленных на решение конкретной задачи, называется компьютерной программой. Но это еще не все.
Компьютер не понимает естественного языка человека, а понимает только свой язык — машинный код. Что касается языка программирования, то он с помощью фиксированных систем обозначений и правил позволяет описывать алгоритмы и структуры данных, которые впоследствии будут переведены транслятором в машинный код.
Все языки программирования можно разделить на языки низкого, высокого и сверхвысокого уровней.
Языки низкого уровня — это средство записи инструкций компьютеру простыми приказами-командами на аппаратном уровне. Такой язык зависит от структуры конкретной ЭВМ и иногда называется машинно-ориентированным языком. Этот язык плохо приспособлен для использования человеком, ведь запись программы на этом языке представляет собой последовательность нулей и единиц, и мало шансов, что сложная задача будет запрограммирована безошибочно. Для упрощения программирования был разработан язык символического кодирования (автокод, или язык ассемблера). Программа, написанная на таком языке, ближе человеку, но все равно требует от программиста широких познаний в этой области.
Следующая группа — языки программирования высокого уровня. Это языки, которые допускают описание задачи в наглядном, легко воспринимаемом виде. Их отличительной особенностью является ориентация не на систему команд той или иной ЭВМ, а на систему инструкций, характерных для записи алгоритмов определенного класса. К языкам программирования высокого класса относятся Бейсик, Фортран, Алгол, Паскаль, Си и др.
К языкам программирования сверхвысокого уровня можно отнести Алгол-68, в котором сделана попытка формализовать описание языка, приведшая к появлению двух типов программ: абстрактной и конкретной. Первый тип программы — абстрактный — создается программистом, конкретный — выводится из первого. Существует предположение, что при таком подходе принципиально невозможно породить синтаксически (а на практике и семантически) неверную конкретную программу.
Изучение ЯП часто начинают с их классификации. Определяющие факторы классификации обычно жестко не фиксируются. Чтобы продемонстрировать характер типичной классификации, опишем наиболее часто применяемые факторы, дадим им условные названия и приведем примеры ЯП для каждой из классификационных групп .
Элементы языков программирования могут рассматриваться на следующих уровнях:
алфавит — совокупность символов, отображаемых на устройствах печати и экранах и/или вводимых с клавиатуры терминала.
лексика — совокупность правил образования цепочек символов (лексем), образующих идентификаторы (переменные и метки), операторы, операции и другие лексические компоненты языка. Сюда же включаются зарезервированные (запрещенные, ключевые) слова ЯП, предназначенные для обозначения операторов, встроенных функций и пр.Иногда эквивалентные лексемы, и зависимости от ЯП, могут обозначаться как одним символом алфавита, так и несколькими.
синтаксис — совокупность правил образования языковых конструкций, или предложений ЯП — блоков, процедур, составных операторов, условных операторов, операторов цикла и пр. Особенностью синтаксиса является принцип вложенности (рекурсивность) правил построения конструкций. Это значит, что элемент синтаксиса языка в своем определении прямо или косвенно в одной из его частей содержит сам себя. Например, в определении оператора цикла телом цикла является оператор, частным случаем которого является все тот же оператор цикла;
семантика — смысловое содержание конструкций, предложений языка, семантический анализ — это проверка смысловой правильности конструкции. Например, если мы в выражении используем переменную, то она должна быть определена ранее по тексту программы, а из этого определения может быть получен ее тип. Исходя из типа переменной, можно говорит о допустимости операции с данной переменной. Семантические ошибки возникают при недопустимом использовании операций, массивов, функций, операторов и пр.
Тема занятия: Трансляторы
Программа, написанная на любом языке программирования, является исходной программой. Особенность таких программ, как мы помним, заключается в том, что они состоят из инструкций, понятных человеку, но не понятных процессору компьютера. Чтобы процессор мог выполнить работу в соответствии с алгоритмом, записанным в исходной программе, эта программа должна быть переведена на машинный язык — язык команд процессора. Такой перевод программы
называется трансляцией, а выполняется он специальными программами — трансляторами.
Существует три вида трансляторов: интерпретаторы, компиляторы и ассемблеры.
Интерпретатор — транслятор, переводящий текст программы поэтапно (покомандно) и сразу же (то есть параллельно) выполняющий оттранслированную команду исходной программы.
Компилятор транслирует текст программы в модуль на машинном языке, затем программа переписывается в оперативную память и лишь после этого исполняется процессором компьютера. Именно с использованием трансляторов такого типа осуществляется перевод программы на многих языках программирования в машинный код. Поэтому рассмотрим его чуть подробнее.
Схематически работу компилятора иллюстрирует рис. 1
Цифрой 1 на схеме обозначен блок синтаксического контроля текста программы, цифрой 2 — генератор машинного кода.
Если генератор машинного кода компилятора перевел исходный текст программы в необходимую форму, значит, в тексте программы нет синтаксических ошибок, но это не говорит об отсутствии ошибок в алгоритме. Убедиться в правильности работы программы можно только при ее тестировании, то есть при обработке результатов, получаемых в процессе работы программы.
Последний вид трансляторов — ассемблеры. Они предназначены для перевода программы, написанной на языке ассемблера (автокода), в программу на машинном языке.
Все трансляторы, независимо от их вида, решают следующие основные задачи:
+ выполняют анализ и проверяют синтаксис транслируемой программы;
+ генерируют машинный код программы;
+ распределяют память для выходной программы.
Система программирования представляет собой совокупность средств разработки программ (языки программирования, текстовые редакторы, трансляторы, редакторы связей, библиотеки подпрограмм, утилиты и обслуживающие программы), обеспечивающих автоматизацию составления и отладки программ пользователя. (доклад)
Транслятор - это программа, которая переводит входную программу на исходном (входном) языке в эквивалентную ей выходную программу на результирующем (выходном) языке.
Результатом работы транслятора будет результирующая программа, но только в том случае, если текст исходной программы является правильным — не содержит ошибок с точки зрения синтаксиса и семантики входного языка. Если исходная программа неправильная (содержит хотя бы одну ошибку), то результатом работы транслятора будет сообщение об ошибке (как правило, с дополнительными пояснениями и указанием места ошибки в исходной программе). В этом смысле транслятор сродни переводчику, например, с английского, которому подсунули неверный текст.
Компилятор - это транслятор, который осуществляет перевод исходной программы в эквивалентную ей объектную программу на языке машинных команд или на языке ассемблера.
Таким образом, компилятор отличается от транслятора лишь тем, что его результирующая программа всегда должна быть написана на языке машинных кодов или на языке ассемблера. Результирующая программа транслятора, в общем случае, может быть написана на любом языке — возможен, например, транслятор программ с языка Pascal на язык С. Соответственно, всякий компилятор является транслятором, но не наоборот — не всякий транслятор будет компилятором. Например, упомянутый выше транслятор с языка Pascal на С компилятором являться не будет.
Ассемблер - компилятор, который переводит каждую команду исходной программы в одну машинную команду.
Интерпретатор — это программа, которая воспринимает входную программу на исходном языке и выполняет ее.
В отличие от трансляторов интерпретаторы не порождают результирующую программу (и вообще какого-либо результирующего кода) — и в этом принципиальная разница между ними. Интерпретатор, так же как и транслятор, анализирует текст исходной программы. Однако он не порождает результирующей программы, а сразу же выполняет исходную в соответствии с ее смыслом, заданным семантикой входного языка. Таким образом, результатом работы интерпретатора будет результат, заданный смыслом исходной программы, в том случае, если эта программа правильная, или сообщение об ошибке, если исходная программа неверна.
Тема занятия: Определение процедур и функций в Pascal
Использование подпрограмм является главной особенностью структурного программирования. По сути, подпрограмма представляет собой составной оператор, объединяющий ряд простых операторов. При этом этот «составной оператор» оснащается именем и внешне оформляется как программа. В подпрограмме бывают свои константы, переменные и другие атрибуты полноценной программы. Локальные переменные никак не связаны с одноименными глобальными переменными (относящимися к основной программе).
Зачем нужны подпрограммы? Их использование удобно, когда в программе несколько раз решается одна и та же подзадача, но для разных наборов данных. Кроме того, использование подпрограмм естественно для человека, которому проще воспринимать логически связанные объекты, чем множество разнородных данных.
Программный код подпрограммы описывается единожды перед телом основной программы, затем из основной программы можно им пользоваться многократно. Обращение к этому программному коду из тела основной программы осуществляется по его имени (имени подпрограммы).
В большинстве языков структурного программирования подпрограммы существуют только в виде функций. В Паскале же их два типа: процедуры и функции. Их заголовки выглядят соответственно так:
procedure имя (параметры);
function имя (параметры): тип результата;
Между функциями и процедурами есть существенное отличие. Значение, полученное в результате выполнения кода функции, жестко соотносится с ее именем путем присвоения этому имени конкретного
значения. Тип, который может принять вычисляемое значение, указывается в заголовке функции (тип результата). И в теле основной программы функция вызывается только в том случае, если ее имя фигурирует в каком-либо выражении. В то время как процедура вызывается отдельно.
Параметры не являются обязательным компонентом, однако их использование повышает гибкость процедуры или функции, т.к. они перестают быть привязанными к определенным данным.
Когда процедура или функция вызываются, то в скобках вместо формальных параметров, указываются фактические параметры (аргументы). Это могут быть либо конкретные значения, либо переменные из основной программы.
Тело подпрограммы, как и любого составного оператора на языке Паскаль, ограничивается скобками begin и end.
Примеры использования процедуры и функции.
procedure box (s: char; w,h: integer);
var i,j:integer;
begin
for i := 1 to h do begin
for j := 1 to w do
write (s);
writeln
end;
writeln
end;
begin
box ('+', 10, 5);
box ('r', 20, 3);
box ('|', 50, 10);
box ('$', 12, 4);
readln
end.
var num: integer;
function digits (n:integer): integer;
var i: integer;
begin
i := 0;
while n 0 do begin
n := n div 10;
i := i + 1
end;
digits := i
end;
begin
write ('Введите положительное число: ');
readln (num);
num := digits (num);
writeln ('Количество разрядов = ', num);
readln
end.
Подпрограмма в Паскаль является отдельной независимой частью программы, которая обладает той же структурой, что и основная программа.
Таким образом, подпрограмма имеет заголовок, разделы описания переменных, констант, процедур, функций и т.д.
Использование подпрограмм обусловлено несколькими причинами, среди которых:
Улучшение структуры программы, что облегчает ее понимание.
Отсутствие необходимости повторять в программе многие фрагменты.
Избавление от многих ошибок, которые мог бы допустить программист.
Основными подпрограммами в Паскаль
являются процедуры и функции.
Разделяют стандартные подпрограммы и пользовательские. Стандартные подпрограммы включены в язык Pascal (например, процедура clrscr, которая очищает экран, или функция cos, которая возвращает в качестве своего значения косинус числа). Пользовательские подпрограммы пишутся программистом как отдельная мини-программа, которая присоединяется к основной программе.
Для объединения программы и подпрограммы используется 2 метода:
Текст подпрограммы записывается в основной программе в соответствующем разделе (для процедур этот раздел называется Procedure, для функций - Function).
Текст подпрограммы записывается в отдельном файле (модуле), а затем подключается к основной программе.
Первый способ применяется, в том случае, если программа не очень большая, а подпрограмма не будет использоваться в других программах. Если же вы планируете использовать подпрограмму в других программах необходимо использовать 2-й способ.
Как уже было сказано, подпрограмма обладает той же структурой что и основная программа. Здесь следует лишь запомнить, что подпрограмма имеет заголовок, который должен отличаться от заголовка основной программы. Кроме того, подпрограмма заканчивается не точкой, а точкой с запятой.
Подпрограмма начинает работать после вызова ее из основной программы. Вызов происходит путем указания в программе заголовка подпрограммы. При этом действие основной программы приостанавливается, и начинает работать подпрограмма. После выполнения всех операторов подпрограммы управление передается основной программе.
Любая подпрограмма должна быть описана до того как она будет использована в программе. Переменные, которые используются подпрограммой, бывают 2-х видов:
Локальные переменные описываются в разделе Var подпрограммы и могут использоваться только этой подпрограммой.
Глобальные переменные описываются в разделе Var основной программы и могут использоваться как основной программой, так и подпрограммой, за исключением тех случаев, когда имена глобальных и локальных переменных совпадают. В этом случае подпрограмма будет использовать локальные переменные.
Для локальных переменных выделяется память в специальной области, которая называется стеком. После выполнения подпрограммы память освобождается, и результаты ее выполнения исчезают.
Как уже было сказано существует 2 вида подпрограмм, процедуры и функции. Основное отличие их друг от друга в том, что процедура выполняет какие-либо действия и не возвращает результатов этих действий. Функция, после выполнения каких-либо действий, возвращает результат. Например, процедура CLRSCR очищает экран, а функция ABS (-2) подсчитывает модуль числа -2 и возвращает в качестве значения число 2.
Процедуры в Паскале
Подпрограмма — это фрагмент кода, который имеет свое имя и создается в случае необходимости выполнять этот код несколько (много) раз. Подпрограмма описывается единожды перед началом основной программы (до begin). Компилятор пропускает данный фрагмент кода, пока в основной программе не встретит «вызов» подпрограммы, который выглядит как обращение к ней по имени (возможно, имени с аргументами, указанными в скобках).
Во многих языках программирования подпрограммы существуют только в виде функций. Однако в Паскале подпрограмма — и функция и процедура. Разница между ними станет очевидна в данном уроке.
Итак, рассмотрим синтаксис объявления и описания процедуры в Паскале
var ...'{область объявления глобальных переменных}
procedure название (параметры); {начало процедуры}
var ...'{объявлениелокальных переменных}
begin
... {тело процедуры}
еп^,{конец процедуры}
begin
... {основная программа}
end.
Пример: Процедура без параметров, которая печатает 60 звездочек, каждую с новой строки
procedure pr;
var i: integer;
begin
for i:=1 to 60 do begin {тело подпрограммы}
write('*');
writeln;
end;
end; {конец подпрограммы}
begin
pr; {вызов процедуры}
0 end.
1
В данном примере работы с процедурой в Паскале очевидно, что компилятор пропустит блок описания процедуры и дойдет до основной программы (9 строка кода). И только после того, как встретится вызов процедуры (10 строка), компилятор перейдет к ее выполнению, вернувшись к строке 1.
3. КОНТРОЛЬНО-ОЦЕНОЧНЫЙ БЛОК
3.1. ФОНД ОЦЕНОЧНЫХ СРЕДСТВ
Паспорт фонда оценочных средств
В результате освоения учебной дисциплины «Основы алгоритмизации и программирования» обучающиеся должны обладать предусмотренными ФГОС специальности 09.02.06 Системное и сетевое администрирование (базовая подготовка) следующими умениями, знаниями, которые формируют профессиональные и общие компетенции:
У1. Работать в среде программирования.
У2. Реализовывать построенные алгоритмы в виде программ на конкретном языке программирования.
Знания:
Этапы решения задачи на компьютере.
Типы данных.
Базовые конструкции изучаемых языков программирования.
Принципы структурного и модульного программирования.
Принципы объектно-ориентированного программирования.
Общие компетенции
ОК 1. Понимать сущность и социальную значимость своей будущей профессии, проявлять к ней устойчивый интерес.
ОК 2. Организовывать собственную деятельность, выбирать типовые методы и способы выполнения профессиональных задач, оценивать из эффективность и качество:
организует собственную деятельность;
осуществляет выбор типового метода решения задачи;
решает задачу выбранным методом;
оценивает эффективность и качество выпяленного решения.
ОК 3. Принимать решения в стандартных и нестандартных ситуациях и нести за них ответственность.
ОК 4. Осуществлять поиск и использование информации, необходимой для эффективного выполнения профессиональных задач, профессионального и личностного развития.
ОК 5. Использовать информационно - коммуникационные технологии в профессиональной деятельности
владение персональным компьютером;
осуществление поиска информации в сети интернет и различных электронных носителях
использование программного обеспечения в решении профессиональных задач;
использование средств ИТ для обработки и хранения информации;
создание презентации в различных формах.
ОК 8. Самостоятельно определять задачи профессионального и личностного развития, заниматься самообразованием, осознанно планировать повышение квалификации.
ОК 9. Ориентироваться в условиях частой смены технологий в профессиональной деятельности; использовать актуальный ГОСТ на разработку блок-схем алгоритмов.
Профессиональные компетенции
ПК 1.1. Выполнять разработку спецификаций отдельных компонент:
определять необходимость использования базовых алгоритмических конструкций для разработки спецификаций отдельных компонент;
записывать алгоритмы работы отдельных компонент на языке блок- схем.
ПК 1.2. Осуществлять разработку кода программного продукта на основе готовых спецификаций на уровне модуля.
устанавливает соответствие спецификации базовых алгоритмических конструкций требованиям разработки.
ПК 1.3. Выполнять отладку программных модулей с использованием специализированных программных средств.
ПК 1.4. Выполнять тестирование программных модулей.
ПК 1.5. Осуществлять оптимизацию программного кода модуля.
ПК 3.1. Анализировать проектную и техническую документацию на уровне взаимодействия компонент программного обеспечения.
Результаты освоения учебной дисциплины, подлежащие проверке
2.1. В результате аттестации по учебной дисциплине осуществляется комплексная проверка следующих умений и знаний:
Таблица 1.1
| Результаты обучения: умения, знания | Показатели оценки результата | Форма контроля и оценивания |
| Уметь: |
|
|
| У1. Работать в среде программирования | Составлять программы линейной и разветвленной структуры, применять операторы множественного выбора, составлять программы с помощью операторов цикла, решать задачи анализа и выполнения, перестановки и сортировки; | систематическое наблюдение за деятельностью обучающегося в процессе практической работы, практическая проверка, тестирование, проверка выполнения самостоятельных работ, зачет |
| У2. Реализовывать построенные алгоритмы в виде программ на конкретном языке программирования | Работать с общими принципами построения алгоритмов, составлять основные алгоритмические конструкции, работать в системах программирования |
|
В результате аттестации по учебной дисциплине осуществляется проверка динамики формирования общих компетенций:
Таблица 1.2
| Общие компетенции | Показатели оценки результата |
| ОК 1. Понимать сущность и социальную значимость своей будущей профессии, проявлять к ней устойчивый интерес | участие во внеурочной деятельности (олимпиадах, конкурсах, неделях ЦМК, празднике «Студенческая весна»); систематическая подготовка к практическим занятиям; оформление портфолио |
| ОК 2. Организовывать собственную деятельность, выбирать типовые методы и способы выполнения профессиональных задач, оценивать их эффективность и качество | точное выполнение требований преподавателя; рациональное планирование этапов деятельности; оптимальный выбор методов и способов выполнения практических и самостоятельных работ |
| ОК 3. Принимать решения в стандартных и нестандартных ситуациях и нести за них ответственность. | определяет задачу как стандартную или нестандартную; выполняет постановку нестандартной задачи; |
| ОК 4. Осуществлять поиск и использование информации, необходимой для эффективного выполнения профессиональных задач, профессионального и личностного развития | - целесообразное использование разнообразных источников информации, включая Интернет, при подготовке к практическим занятиям, написании докладов, сообщений и т.д. |
| ОК5. Использовать информационно - коммуникационные технологии в профессиональной деятельности | владение ПК; осуществление поиска информации в сети интернет и различных электронных носителях; использование программного обеспечения в решении профессиональных задач; |
| Общие компетенции | Показатели оценки результата |
| ОК 8. Самостоятельно определять задачи профессионального и личностного развития, заниматься самообразованием, осознанно планировать повышение квалификации | презентации исследовательских проектов; оформление презентаций; оформление результатов работы в виде газет, сборников задач; открытая защита творческих и проектных работ; взаимооценка и самооценка работ обучаю щимися |
| ОК 9. Ориентироваться в условиях частой смены технологий в профессиональной деятельности | разработка и защита докладов, сообщений, презентаций в соответствии с изменяющимися технологиями; участие в фестивалях творческих проектов; участие в конкурсах, олимпиадах; участие в месячнике специальности |
Оценка освоения учебной дисциплины:
Формы и методы оценивания
Предметом оценки служат умения и знания, предусмотренные ФГОС специальности 09.02.06 Системное и сетевое администрирование (базовая подготовка) по дисциплине «Основы алгоритмизации и программирования», направленные на формирование общих и профессиональных компетенций.
Текущий контроль знаний и промежуточная аттестация является основным механизмом оценки качества подготовки обучающихся. Текущий контроль успеваемости обучающихся представляет собой объективную оценку степени и качества освоения программы дисциплины. Цель текущего контроля успеваемости:
обеспечение максимальной эффективности образовательного процесса;
оценка уровня освоения дисциплин, междисциплинарных курсов;
оценка компетенций обучающихся;
стимулирование деятельности обучающихся;
систематизация контроля за качеством подготовки специалистов;
подготовка к промежуточной аттестации.
Текущий контроль успеваемости проводится на любом из видов учебных занятий, в пределах учебного времени, отведенного на дисциплину.
Основными формами текущего контроля являются:
устный опрос на теоретических и практических занятиях;
проверка выполнения письменных домашних заданий и расчетнографических работ;
контрольные и самостоятельные работы;
тестирование по разным уровням сложности;
контроль самостоятельной работы (в письменной или устной форме);
другие активные и интерактивные формы и методы контроля.
Формы текущего контроля выбираются, исходя из специфики учебной группы, темы и типа занятия.
Результаты оцениваются по 5-бальной системе: 5 (отлично), 4 (хорошо), 3 (удовлетворительно), 2 (неудовлетворительно).
Оценка освоения дисциплины предусматривает использование рейтинговой системы оценивания. Модульно-рейтинговая система обучения и оценки успеваемости обучающихся представляет собой комплексную систему поэтапного оценивания уровня освоения основной образовательной программы по специальности. При функционировании модульнорейтинговой системы обучения проводится регулярная оценка знаний и умений обучающихся в течение семестра. При функционировании модульно-рейтинговой системы обучения все знания, умения и навыки, приобретаемые обучающихся в процессе изучения дисциплины, оценивается в рейтинговых баллах. Рейтинговые баллы набираются в течение всего периода обучения по дисциплине и фиксируются путем занесения в единую экзаменационно - зачетную ведомость при рубежном и итоговом контроле. Промежуточный рейтинг дисциплины составляет 50 баллов.
Промежуточный рейтинг включает в себя:
рейтинг обучающегося за 1 модуль - 20 баллов;
рейтинг обучающегося за 2 модуль - 20 баллов;
рейтинг поощрительный (творческий балл) - 10 баллов.
Рубежный (модульный) контроль по дисциплине проводится в форме контрольной работы.
По окончании каждого семестра на основании оценок текущего контроля знаний и умений по учебной дисциплине выставляются итоговые оценки успеваемости, которые являются основанием для допуска к зачету.
| Элемент учебной дисциплины | Формы и методы контроля | |||||
| Текущий контроль | Рубежный контроль | Промежуточная аттестация | ||||
| Форма контроля | Проверяемые ОК, У, З | Форма контроля | Проверяемые ОК, У, З | Форма контроля | Проверяемые ОК, У, З | |
| Раздел 1. Основные принципы алгоритмизации и программирования |
|
| Устный опрос | У1, З1, З2, З3 ОК 1, ОК 2, ОК 4 | тестирование | У1, З1, З2, З3 ОК 1, ОК 2, ОК 4 |
| Тема 1.1. Основные понятия алгоритмизации | Устный опрос Тестирование Самостоятельная работа Практические занятия Составление блок-схем линейных алгоритмов Составление блок-схем разветвляющихся алгоритмов Составление блок-схем циклических алгоритмов Составление блок-схем алгоритмов сортировки данных | У1, З1, З2, З3 ОК 1, ОК 2, ОК 4 |
| У1, З1, З2, З3 ОК 1, ОК 2, ОК 4, ОК 8, ОК 9 |
| У1, З1, З2, З3 ОК 1, ОК 2, ОК 4, ОК 8, ОК 9 |
| Тема 1.2 Логические основы алгоритмизации | Устный опрос Тестирование Самостоятельная работа Практическое занятие Составление таблиц истинности | У1, З1, З2, З3 ОК 1, ОК 2, ОК 4 |
| У1, З1, З2, З3 ОК 1, ОК 2, ОК 4 |
| У1, З1, З2, З3 ОК 1, ОК 2, ОК 4, ОК 8, ОК 9 |
| Тема 1.3 Языки и системы программирования | Устный опрос Тестирование Самостоятельная работа | У1, З1, З2, З3 ОК 1, ОК 2, ОК 4 |
| У1, З1, З2, З3 ОК 1, ОК 2, ОК 4 |
| У1, З1, З2, З3 ОК 1, ОК 2, ОК 4, ОК 8, ОК 9 |
| Тема 1.4 Методы программирования | Устный опрос Тестирование | У1, З1, З2, З3 ОК 1, ОК 2 |
| У1, З1, З2, З3 ОК 1, ОК 2, |
| У1, З1, З2, З3 ОК 1, ОК 2, ОК 4, ОК 8, ОК 9 |
| Раздел 2. Программирование на |
|
| Контрольная работа | У1, З1, З2, З3 ОК 1, ОК 2, | тестирование | У1, З1, З2, З3 ОК 1, ОК 2, ОК 4, |
Контроль и оценка освоения учебной дисциплины по темам (разделам)
Таблица 2.2
| алгоритмическом языке |
|
|
| ОК 4, ОК 8, ОК 9 |
| ОК 8, ОК 9 |
| Тема 2.1 Основные элементы языка | Устный опрос Тестирование Самостоятельная работа Практические занятия Составление программ линейной структуры. Составление программ разветвляющейся структуры. Составление программ циклической структуры. Составление программ усложненной структуры. | У1, З1, З2, З3, ОК 1, ОК 2, ОК 4, ОК 8, ОК 9 |
| У1, З1, З2, З3 ОК 1, ОК 2, ОК 4, ОК 8, ОК 9 |
| У1, З1, З2, З3 ОК 1, ОК 2, ОК 4, ОК 8, ОК 9 |
| Тема 2.2 Операторы языка | Устный опрос Самостоятельная работа | У1, З1, З2, З3, ОК 1, ОК 2, ОК 4, ОК 8, ОК 9 |
| У1, З1, З2, З3 ОК 1, ОК 2, ОК 4, ОК 8, ОК 9 |
| У1, З1, З2, З3 ОК 1, ОК 2, ОК 4, ОК 8, ОК 9 |
| Тема 2.3 Массивы | Устный опрос Тестирование Самостоятельная работа | У1, З1, З2, З3, ОК 1, ОК 2, ОК 4, ОК 8, ОК 9 |
| У1, З1, З2, З3 ОК 1, ОК 2, ОК 4, ОК 8, ОК 9 |
| У1, З1, З2, З3 ОК 1, ОК 2, ОК 4, ОК 8, ОК 9 |
| Тема 2.4 Строки и множества | Устный опрос Тестирование Практические занятия Работа со строковыми переменными. Использование стандартных функций и процедур для работы со строками. Работа с данными типа множество. Разработка программ со структурированными типами данных. | У1, З1, З2, З3, ОК 1, ОК 2, ОК 4, ОК 8, ОК 9 |
| У1, З1, З2, З3 ОК 1, ОК 2, ОК 4, ОК 8, ОК 9 |
| У1, З1, З2, З3 ОК 1, ОК 2, ОК 4, ОК 8, ОК 9 |
|
| Разработка усложнены ых программ со структурированными типами данных. |
|
|
|
|
|
| Тема 2.5 Процедуры и функции | Устный опрос Тестирование Практические занятия Организация процедур. Использование процедур. Организация функций. Использование функций. Применение рекурсивных функций. Использование процедур и функций. | У1, 31, 32, 33, ОК 1, ОК 2, ОК 4, ОК 8, ОК 9 |
| У1, 31, 32, 33, ОК 1, ОК 2, ОК 4, ОК 8, ОК 9 |
| У1, 31, 32, 33, ОК 1, ОК 2, ОК 4, ОК 8, ОК 9 |
| Тема 2.6 Организация ввода-вывода данных | Устный опрос Тестирование Практические занятия Выполнение операций с файлом последовательного доступа. Выполнение операций с файлом произвольного доступа. Разработка программ с чтением и записью файлов разных типов. Использование стандартных процедур и функций для работы с файлами. | У1, 31, 32, 33, ОК 1, ОК 2, ОК 4, ОК 8, ОК 9 |
| У1, 31, 32, 33, ОК 1, ОК 2, ОК 4, ОК 8, ОК 9 |
| У1, 31, 32, 33, ОК 1, ОК 2, ОК 4, ОК 8, ОК 9 |
| Раздел 3. Программирование в объектно-ориентированной среде |
|
| Контрольная работа | У1, 31, 32, 33 ОК 1, ОК 2, ОК 4, ОК 8, ОК 9 | тестирование | У1, 31, 32, 33 ОК 1, ОК 2, ОК 4, ОК 8, ОК 9 |
| Тема 3.1 Основные принципы объектно ориентированного программирования | Устный опрос Тестирование Самостоятельная работа Практические занятия Изучение интегрированной среды разработчика. Создание простого проекта. | У1, З1, З2, З3, ОК 1, ОК 2, ОК 4, ОК 8, ОК 9 |
| У1, З1, З2, З3 ОК 1, ОК 2, ОК 4 |
| У1, З1, З2, З3 ОК 1, ОК 2, ОК 4, ОК 8, ОК 9 |
| Тема 3.2 Этапы разработки приложения | Устный опрос Тестирование Самостоятельная работа Практические занятия Объявление класса, создание экземпляров класса. Создание наследованного класса. Перегрузка методов. | У1, З1, З2, З3 ОК 1, ОК 2, ОК 4, ОК 8, ОК 9 |
| У1, З1, З2, З3 ОК 1, ОК 2, ОК 4, ОК 8, ОК 9 |
|
|
| Тема 3.3 Визуальное программирование | Устный опрос Тестирование Самостоятельная работа Практические занятия Создание проекта с использованием кнопочных компонентов. Создание проекта с использованием компонентов для работы с текстом. Создание проекта с использованием компонентов ввода и отображения чисел, дат и времени. Создание проекта с использованием компонентов стандартных диалогов и системы меню. | У1, З1, З2, З3, ОК 1, ОК 2, ОК 4, ОК 8, ОК 9 |
| У1, З1, З2, З3 ОК 1, ОК 2, ОК 4, ОК 8, ОК 9 |
| У1, З1, З2, З3 ОК 1, ОК 2, ОК 4, ОК 8, ОК 9 |
|
| Разработка оконного приложения. Разработка оконного приложения с несколькими формами Разработка многооконного приложения. Создание программного продукта: график функции. Создание программного продукта: обучающее - контролирующая программа. |
|
|
|
|
|
Типовые задания для оценки освоения учебной дисциплины
3.2.1. Задания для подготовки обучающихся к дифференцированному
зачету
Вопрос 1.
Перечислите составляющие единицы алфавитов языков программирования. Опишите структуру программы на языке программирования Паскаль.
Опишите структуру программы на языке программирования С. Приведите примеры директив препроцессора языка программирования С, поясните их назначение и порядок работы в программе.
Дайте определение понятия «тип данных». На какие группы делятся все типы данных? Перечислите типы данных относящиеся к группе простых типов. Перечислите простые типы данных языка программирования Паскаль.
Дайте определение понятия «тип данных». На какие группы делятся все типы данных? Перечислите типы данных относящиеся к группе простых типов. Перечислите простые типы данных языка программирования С.
Дайте определение понятия «тип данных». Опишите правила
построения символьных данных в языках программирования Паскаль и С.
Дайте определение понятия «тип данных». Опишите порядок
использования вещественных типов данных в языках программирования Паскаль и С.
Дайте определение понятия «тип данных». Опишите использование логических данных в языках программирования Паскаль и С.
Опишите порядок использования оператора присваивания и правила построения выражений в языках Паскаль и С. Назовите операции над данными простых типов в языках Паскаль и С.
Расскажите, как построен ввод и вывод данных в языке программирования Паскаль.
Расскажите, как построен ввод и вывод в языке программирования С.
Опишите правила реализации конструкции ветвления в языке
программирования Паскаль.
Опишите правила реализации конструкция ветвление в языке
программирования С.
Опишите правила реализации циклов с неизвестным числом повторов в языке программирования Паскаль.
Опишите правила реализации циклов с неизвестным числом повторов в языке программирования С.
Опишите правила реализации циклов с параметром в языке
программирования Паскаль.
Опишите правила реализации циклов с параметром в языке
программирования С.
Дайте определение структуры данных - массив. Опишите правила реализации массивов в языке Паскаль.
Дайте определение структуры данных - массив. Опишите правила реализации массивов в языке С.
Дайте определение структуры данных строка. Опишите правила
реализации строк в языке Паскаль.
Дайте определение структуры данных строка. Опишите правила
реализации строк в языке С.
Дайте определение структуры данных файл. Опишите правила
реализации файлов в языке Паскаль.
Дайте определение структуры данных файл. Опишите правила
реализации файлов в языке С.
Перечислите принципы объектно-ориентированного
программирования. Опишите возможности среда разработки Delphi.
Приведите примеры визуальных компонент среды Delphi. Поясните порядок работы с ними.
Вопрос 2.
Решите предложенную задачу. Реализуйте решение в виде программы на языке программирования Паскаль. Подтвердите правильность решения тестированием.
Дано число k (0
Дана таблица размера 5x9 заполненная целыми числами. Найти суммы элементов в каждой четной строке и каждом четном столбце.
Дана таблица размера 5 x 10 заполненная целыми числами. Найти минимальное и максимальное значение в каждой строке.
Дана таблица размера 5 x 10 заполненная целыми числами. В каждой строке найти среднее арифметическое всех элементов этой строки.
Дана таблица размера 5 x 10 заполненная целыми числами. Преобразовать эту таблицу, поменяв местами минимальный и максимальный элемент в каждой строке.
Дана таблица размера 5 x 10 заполненная целыми числами. Найти минимальное значение среди сумм элементов ее строк и столбцов и номер строки (столбца) с этим минимальным значением.
Дана таблица размера 5 x 10 заполненная целыми числами. Найти минимальное значение среди максимальных элементов каждой строки и столбца.
Дана таблица размера 6 x 10 заполненная целыми числами. Найти количество ее столбцов, все элементы которых различны.
Дана таблица размера 4 x 9 заполненная целыми числами. Вывести номера строк, содержащих одинаковые элементы.
Дана квадратная таблица порядка 5 заполненная целыми числами. Найти суммы элементов расположенных на главной и побочной диагонали.
Дана квадратная таблица порядка 5 заполненная целыми числами. Заменить нулями элементы матрицы, лежащие ниже главной и выше побочной диагонали.
Дана квадратная таблица порядка 5 заполненная целыми числами. Заменить нулями элементы, лежащие одновременно выше главной диагонали (включая эту диагональ) и выше побочной диагонали (также включая эту диагональ).
Дана таблица размера 5 x 10 заполненная целыми числами. Вывести номера строк, элементы которых монотонно возрастают.
Дана таблица размера 5 x 10 заполненная целыми числами. Найти минимальный среди элементов тех строк, которые упорядочены либо по возрастанию. Если такие строки отсутствуют, то вывести 0.
Даны два числа k1 и k2 и таблица размера 4 x 10 заполненная целыми числами. Поменять местами строки таблицы с номерами k1 и k2.
Дана таблица размера 5 x 10 заполненная целыми числами. Поменять местами строки, содержащие минимальный и максимальный элементы таблицы.
Дана таблица размера 5 x 10 заполненная целыми числами. Поменять местами столбец с номером 1 и первый из столбцов, содержащих только положительные элементы.
Дано число k и таблица размера 4 x 10 заполненная целыми числами. Удалить строку таблицы с номером k.
Дана таблица размера 5 x 10 заполненная целыми числами. Удалить столбец, содержащий минимальный элемент таблицы.
Дана таблица размера 5 x 10 заполненная целыми числами. Удалить первый столбец, содержащие только положительные элементы.
Дано число k и таблица размера 4 x 9 заполненная целыми числами. Перед строкой таблицы с номером k вставить строку из нулей.
Дана таблица размера 4 x 9 заполненная целыми числами. Продублировать строку таблицы, содержащий ее минимальный элемент.
Дана таблица размера 5 x 9 заполненная целыми числами. Перед столбцом, содержащим минимальный элемент, добавить столбец, состоящий из единиц.
Дана таблица размера 5 x 10 заполненная целыми числами. Вывести номера строк, элементы которых монотонно убывают.
Вопрос 3.
Решите предложенную задачу. Реализуйте решение в виде программы
на языке программирования С. Подтвердите тестированием.
1. Вычислите функцию z = ex, и
х х2 — н +
сумму
, П
членов
правильность решениясоответствующего ейряда Тейлора у = 1+^2! п! . Число слагаемых
следует ограничить некоторым заранее заданным числом М (М=50).
10 строк и включающую
Выведите на экран таблицу, состоящую из следующие графы:Значение Значение Значение Разность
х z(x) y(x) Z[X- yfx’l
где х меняется пределах отрезка [1;2]. ех + е~х
Вычислите функцию z , и сумму членов
х2 х4 х2л
соответствующегоей ряда Тейлора y=1+2! l! (J"’’. Число слагаемых
следует ограничить некоторым заранее заданным числом М (М=50).
10 строк и включающую
Выведите на экран таблицу, состоящую из следующие графы:Значение Значение Значение Разность
х z(x) y(x) z(x)~ ytx,l
где х меняется пределах отрезка [0,1 ;1].
Вычислите функцию z= e2x, и сумму членов
2х | (2х)2 [ | (2х)п
соответствующего ейряда Тейлора y = 1+В 2! п! . Число
слагаемых следует ограничить некоторым заранее заданным числом М (М=50). Выведите на экран таблицу, состоящую из 10 строк и включающую следующие графы:
Значение Значение Значение Разность
х z(x) y(x) zlX)- yfx’l
где х меняется пределах отрезка [0,1;1].
при
Дана строка - предложение, содержащая избыточные пробелы. Преобразовать ее так, чтобы между словами был ровно один пробел.Вычисления значения функции любых значениях аргументов.
при любых
значения
функции аргументов.
при любых
7. Вычисления
значениях
значения
функции аргументов.
при
8. Вычисления
любых
значениях
9.
Вычислите сумму десяти первых элементов ряда
10.
Вычислите сумму десяти первых элементов ряда
11.
Вычислите сумму десяти первых элементов ряда
п!
12.
а
Вычислите сумму десяти первых элементов
13.
Вычислите сумму десяти первых элементов ряда
ЗпП
Вычисления значения функции значениях аргументов.
Введена последовательность целых чисел. Признаком конца ввода является введение числа 0. Вычислите сумму элементов этой последовательности, найдите минимальный элемент в этой последовательности и количество элементов последовательности, сумма цифр которых делиться на пять.
Введена последовательность целых чисел. Признаком конца ввода является введение числа 0. Вычислите сумму элементов этой последовательности, найдите минимальный элемент в этой последовательности и количество элементов последовательности, состоящих только из нечетных цифр.
Введена последовательность целых чисел. Признаком конца ввода является введение числа 0. Вычислите сумму элементов этой последовательности, найдите минимальный элемент в этой последовательности и количество элементов последовательности не содержащих цифр 4.
Введена последовательность целых чисел. Признаком конца ввода является введение числа 0. Вычислите сумму элементов этой последовательности, найдите минимальный элемент в этой последовательности и количество элементов последовательности, последняя цифра которых делиться на первую без остатка.
Критерии оценивания заданий
Вопрос /.ТЕОРЕТИЧЕСКОЕ ЗАДАНИЕ (max 20 баллов)
18-20 баллов (к = 0,9-1,0) ставится от максимального количества баллов, если обучающийся:
полно раскрыл содержание материала в объеме, предусмотренном рабочей программой,
изложил материал грамотным языком в определенной логической последовательности, точно используя специальную терминологию;
правильно выполнил рисунки, чертежи, сопутствующие ответу;
отвечал самостоятельно без наводящих вопросов преподавателя. Возможны одна - две неточности при освещении второстепенных вопросов или в выкладках, которые студент легко исправил по замечанию преподавателя.
15-17 баллов (к = 0,75-0,85) ставится, если ответ удовлетворяет
основным требованиям, но при этом имеет один из недостатков:
в изложении допущены небольшие пробелы, не исказившие содержание ответа;
допущены один - два недочета при освещении основного содержания ответа, исправленные по замечанию преподавателя;
допущена ошибка или имеется более двух недочетов при освещении второстепенных вопросов или в выкладках, легко исправленные по замечанию преподавателя.
10-14 баллов (к = 0,5-0,7) ставится в следующих случаях:
неполно или непоследовательно раскрыто содержание материала, но показано общее понимание вопроса;
имелись затруднения или допущены ошибки в определении понятий, использовании терминологии и выкладках (определениях), исправленные после нескольких наводящих вопросов преподавателя;
при знании теоретического материала выявлена недостаточная сформированность основных умений и навыков.
5-9 баллов (к = 0,25-0,45) ставится в следующих случаях:
не раскрыто основное содержание учебного материала;
обнаружено незнание или непонимание обучающимся большей или наиболее важной части учебного материала;
допущены ошибки в определении понятий, при использовании терминологии, в выкладках, которые не исправлены после нескольких наводящих вопросов преподавателя.
меньше 5 баллов (к =0-0,25) ставится, если:
обучающийся обнаружил полное незнание и непонимание изучаемого учебного материала или не смог ответить ни на один из поставленных вопросов по изучаемому материалу.
Вопрос 2 .ПРАКТИЧЕСКОЕ ЗАДАНИЕ (max 80 баллов: А - 40
баллов, В - 40 баллов)
36-40 баллов (к = 0,9-1,0) ставится если обучающийся:
полностью выполнил все требования индивидуального задания;
отвечал самостоятельно без наводящих вопросов преподавателя. Возможны одна - две неточности при освещении второстепенных вопросов или в выкладках, которые студент легко исправил по замечанию преподавателя.
31-35 баллов (к = 0,78 -0,88) ставится, если ответ удовлетворяет
основным требованиям, но при этом имеет один из недостатков:
в выполнении допущены небольшие неточности, не исказившие решение задания;
допущены один - два недочета при освещении основного содержания ответа, исправленные по замечанию преподавателя;
допущены ошибка или более двух недочетов при освещении второстепенных вопросов или в выкладках, легко исправленные по замечанию преподавателя.
26-30 баллов (к = 0,65-0,75) ставится в следующих случаях:
допущены неточности в выполнении индивидуального задания, но показано общее понимание вопроса;
имелись затруднения или допущены ошибки в выполнении индивидуального задания, но осуществлены значительные исправления после нескольких наводящих вопросов преподавателя;
20-25 баллов (к = 0,5-0,63) ставится в следующих случаях:
не в полном объеме решена поставленная задача.
ФОС для итоговой аттестации по учебной дисциплине
ФОС для итоговой аттестации по учебной дисциплине
Предметом оценки являются умения и знания. Контроль и оценка осуществляются с использованием следующих форм и методов: устный опрос, систематическое наблюдение за деятельностью обучающегося в процессе практической работы, практическая проверка, тестирование, контрольная работа, зачет, экзамен.
Оценка освоения дисциплины предусматривает использование рейтинговой системы оценивания и проведение экзамена.
Начисление баллов итогового рейтинга осуществляется по результатам сдачи обучающимся зачета. При выставлении балла экзаменационного рейтинга преподаватель руководствуется следующей шкалой соответствия:
0 - 17 баллов соответствуют 0 - 34% положительного ответа на
предложенное задание (билет);
18-24 балла соответствуют 35% - 49% положительного ответа на предложенное задание (билет);
25 - 37 балла соответствуют 50% - 74% положительного ответа на предложенное задание (билет);
38 - 50 баллов соответствуют 75% - 100% положительного ответа на предложенное задание (билет).
Итоговая оценка знаний обучающихся по дисциплине определяется на основании перевода итогового рейтинга (сумма промежуточного и экзаменационного рейтингов) в 5-балльную оценку по следующей шкале:
оценка «удовлетворительно» - от 35 до 49 баллов;
оценка «хорошо» - от 50 до 74 баллов;
оценка «отлично» - от 75 до 100 баллов.
Получение обучающимися итогового рейтинга ниже 35 баллов соответствует оценке «неудовлетворительно».
Методические указания к выполнению самостоятельных работ
Самостоятельная работа имеет своей целью углубление знаний обучающихся по изучаемой дисциплине.
Текущая самостоятельная работа предусматривает следующие виды:
работа с лекционным материалом;
подготовка к практическим занятиям, оформление отчетов по
выполненным практическим занятиям, подготовка к защите;
подготовка к различным формам промежуточной аттестации (к
тестированию);
изучение рекомендованной литературы (основной и дополнительной),
работа с библиотечным каталогом, самостоятельный подбор необходимой литературы;
поиск необходимой информации через Интернет;
изучение тем, вынесенных на самостоятельную проработку;
изучение программных продуктов;
работа со встроенными справочными системами программных
продуктов;
работа с техническими справочниками (англо-русский);
выполнение тестовых заданий;
подготовка к экзамену.
Творческая проблемно-ориентированная самостоятельная
работа включает следующие виды:
поиск, анализ, структурирование информации по темам, выносимым на самостоятельное изучение;
составление и разработка словаря (глоссария).
Самостоятельная работа с литературой ставит своей целью - закрепление, углубление, расширение и систематизация знаний, полученных в ходе аудиторных занятий, самостоятельное овладение новым учебным материалом описательного характера, развитие самостоятельного мышления.
Домашние задание - выполняется обучающимися после изучения соответствующих тем программного материала данного курса и является формой промежуточного контроля знаний обучающихся по дисциплине.
Варианты задания
В массиве из 20 целых чисел найти наименьший элемент и поменять местами первым элементом.
В массиве из 10 целых чисел найти наименьший элемент и поменять его местами с последним элементом.
В массиве из 15 вещественных чисел найти наибольший элемент и поменять его местами с последним элементом,
В массиве из 25 вещественных чисел найти наименьший элемент и поменять его местами с первым элементом.
Упорядочить по неубыванию массив, содержащий 20 целых чисел.
Упорядочить по невозрастанию массив, содержащий 25 вещественных чисел.
Упорядочить по неубыванию массив, содержащий 15 вещественных чисел.
Упорядочить по невозрастанию массив, содержащий 25 вещественных чисел.
Вычислить сумму и количество элементов массива Х(100) для 0
Вычислить среднее арифметическое значение элемента положительного массива А(80).
Переписать элементы массива Х(70) в массив Y и подсчитать их количество, (-1
Определить максимальный элемент массива В(50) и его порядковый номер.
Вычислить минимальный элемент массива С(40) и его порядковый номер.
Найти максимальный и минимальный элементы массива D(80) и поменять их местами,
Вычислить среднее геометрическое элементов массива Y(20).
Расположить в массиве R сначала, положительные, а затем отрицательные элементы массива Z (30).
В массиве N(50) определить сумму и количество элементов массива, кратным трём.
Вычислить сумму и количество элементов массива X(N).
Найти среднее геометрическое элементов массива А, где а0, N
Переписать в массив Y подряд положительные элементы массива X(N), где Х0, N
Определить максимальный элемент массива В(к) и его порядковый номер, где Х
Определить минимальный элемент массива С(к) и его порядковый номер, где -1
В массиве F(45) подчитать количество положительных и отрицательных элементов.
В массиве Y(30) найти максимальный элемент и заменить его на 0.
В массиве А(20) найти последний отрицательный элемент и вывести его номер.
В массиве С(15) найти последний чётный элемент и поставить его на место первого элемента.
В массиве В(25) на место всех положительных элементов записать нули, а все отрицательные элементы сложить. На печать вывести новый массив и сумму отрицательных элементов.
В массиве А(10) найти минимальный и максимальный элементы, соответственно поменять с первым и последним элементами массива.
Из массива Х(20) выбрать все чётные элементы и переписать их в массив А.
Из массива Y(l5) выбрать все нечётные элементы.
Приложение 1
Вопросы к экзамену по дисциплине
«Основы алгоритмизации и программирования»
Общее понятие алгоритма.
Краткий обзор существующих алгоритмических языков.
Свойства алгоритмов и методы построения.
Формы представления алгоритмов.
Неформальный алгоритмический язык.
Основные конструкции алгоритмического языка.
Современные системы разработки эффективных программ на языке программирования высокого уровня.
Сравнительная характеристика, примеры использования.
Интегрированная среда программирования.
Составление требований к программному продукту.
Разработка программ по техническому заданию.
Теоретические предпосылки структурного программирования.
Состав и структура языка программирования.
Понятия алфавита, синтаксиса и семантики. Комментарии.
Переменные. Определение имени переменной. Объявление переменной.
Инициализация переменной по умолчанию и из кода. Область видимости и время жизни переменных.
Оператор присваивания.
Типы переменных.
Преобразование типов явное и неявное.
Стандартные операции с переменными. Константы.
Понятие оператора. Запись операторов. Многострочные операторы, понятие блока.
Оператор условия. Составления условия: сравнение числовых значений, строковых и логических значения.
Составление сложных условий: использование логических операций. Приоритет операций.
Вложенные операторы. Оператор выбора. Оптимизация оператора выбора.
Оператор цикла: циклы с предусловием.
Оператор цикла: с постусловием.
Оператор цикла: с параметром. Цикл для обхода элементов группы.
Понятия: тело цикла, условие цикла, счетчик, итерация.
Использование счетчика цикла. Оператор досрочного выхода из цикла
Проектирование программы с использованием операторов языка.
Преимущества применения объектно-ориентированного подхода в программировании.
Классы: основные понятия.
Понятие массива. Массивы одномерные и многомерные. Понятие индекса и элемента массива.
Подсчет объема памяти занимаемой массивом.
Опечатано в издательско-полиграфическом центре
ФГБОУ ВО Мичуринский ГАУ
Подписано в печать г. Формат 60х84 / Ризограф,
Бумага офсетная № 1. Усл.печ.л. 6,3 Тираж 70 экз.
Издательско-полиграфический центр
Мичуринского государственного аграрного университета
393760, Тамбовская обл., г. Мичуринск, ул. Интернациональная, 101,
тел. +7 (47545) 9-44-45
© 2020, Кизилова Евгения Александровна 2741 70