Языки программирования - Учебно

Реклама
РОССИЙСКАЯ ФЕДЕРАЦИЯ
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ
Государственное образовательное учреждение
высшего профессионального образования
ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
«УТВЕРЖДАЮ»:
Проректор по учебной работе
_______________________ /Волосникова Л.М./
__________ _____________ 2011 г.
ЯЗЫКИ ПРОГРАММИРОВАНИЯ
Учебно-методический комплекс. Рабочая программа
для студентов очной формы обучения направления
090000.62 – «Информационная безопасность»,
профиль подготовки «Безопасность распределенных систем»
«ПОДГОТОВЛЕНО К ИЗДАНИЮ»:
Автор работы _____________________________/Захарова И.Г./
«20» апреля 2011 г.
Рассмотрено на заседании кафедры программного обеспечения 20.04.2011, протокол № 9.
Соответствует требованиям к содержанию, структуре и оформлению.
«РЕКОМЕНДОВАНО К ЭЛЕКТРОННОМУ ИЗДАНИЮ»:
Объем 18 стр.
Зав. кафедрой ______________________________/Захарова И.Г./
«20» апреля 2011 г.
Рассмотрено на заседании УМК ИМЕНИТ, отделение математики, физики, химии и
информационных технологий 21.04.2011, протокол № 1
Соответствует ФГОС ВПО и учебному плану образовательной программы.
«СОГЛАСОВАНО»:
Председатель УМК ________________________/Глухих И.Н./
«______»_____________2011 г.
«СОГЛАСОВАНО»:
Зав. методическим отделом УМУ_____________/Федорова С.А./
«______»_____________2011 г.
РОССИЙСКАЯ ФЕДЕРАЦИЯ
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ
Государственное образовательное учреждение
высшего профессионального образования
ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
Институт математики, естественных наук и информационных технологий
Кафедра программного обеспечения
Захарова И.Г.
ЯЗЫКИ ПРОГРАММИРОВАНИЯ
Учебно-методический комплекс. Рабочая программа
для студентов очной формы обучения направления
090000.62 – «Информационная безопасность»,
профиль подготовки «Безопасность распределенных систем»
Тюменский государственный университет
2011
ЗАХАРОВА И.Г. ЯЗЫКИ ПРОГРАММИРОВАНИЯ. Учебно-методический
комплекс. Рабочая программа для студентов направления 090000.62 –
«Информационная безопасность», профиль подготовки «Безопасность
распределенных систем» (форма обучения очная). Тюмень, 2011, 18 стр.
Рабочая программа составлена в соответствии с требованиями ФГОС
ВПО с учетом рекомендаций и ПрООП ВПО по направлению и профилю
подготовки.
Рабочая программа дисциплины опубликована на сайте ТюмГУ: Языки
программирования
[электронный
ресурс]
/
Режим
доступа:
http://www.umk3.utmn.ru., свободный.
Рекомендовано к изданию кафедрой программного обеспечения.
Утверждено проректором по учебной работе Тюменского государственного
университета.
ОТВЕТСТВЕННЫЙ РЕДАКТОР: Захарова И.Г., д.п.н., профессор.
© Тюменский государственный университет, 2011.
© Захарова И.Г., 2011.
1. Пояснительная записка
1.1.Цели и задачи дисциплины
Дисциплина «Языки программирования» имеет целью обучить студентов общим
принципам построения и использования языков программирования; средствам описания
данных; средствам описания действий; абстрактным типам данных, а также содействовать
фундаментализации образования и развитию системного мышления. Задачи дисциплины
– дать знания основ объектно-ориентированного программирования, алгоритмизации и
средств описания данных, а также технологии программирования. Данный курс также
призван расширить кругозор и сформировать основы профессиональных компетенций,
включая разработку компьютерных программ на языках высокого уровня для решения
прикладных задач на основе приобретенных практических навыков. Знания, умения и
практические навыки, полученные в результате изучения дисциплины «Языки
программирования», используются обучающимися при изучении общепрофессиональных
и специальных дисциплин, а также при разработке курсовых и выпускных
квалификационных работ.
1.2. Место дисциплины в структуре ООП бакалавриата
Дисциплина относится к профессиональному циклу и входит в базовую
(общепрофессиональную) часть. Дисциплина является базовой и ее освоение необходимо
как для изучения курсов по операционным системам, методам и технологиям
программирования. Для изучения дисциплины «Языки программирования» студент
должен успешно освоить дисциплину «Информатика» (1 семестр).
1.3. Компетенции выпускника ООП бакалавриата, формируемые в результате
освоения данной ООП ВПО.
В результате освоения ООП бакалавриата выпускник должен обладать следующими
компетенциями: способностью осознавать необходимость соблюдения Конституции
Российской Федерации, прав и обязанностей гражданина своей страны, гражданского долга
и проявления патриотизма (ОК-1); способностью к обобщению, анализу, восприятию
информации, постановке цели и выбору путей её достижения, владеть культурой мышления
(ОК-8); способностью участвовать в разработке подсистемы управления информационной
безопасностью (ПК-12);
В результате освоения дисциплины обучающийся должен:
 Знать:
о месте и роли языков программирования в информатизации общества; историю и
направление развития языков программирования во взаимосвязи с развитием аппаратного
обеспечения, а также машинной архитектуры; парадигмы языков программирования;
основные способы и принципы представления структур данных и приемы
алгоритмизации; основные этапы реализации программ на ЭВМ, включая вопросы
трансляции языка (этапы трансляции, формальные модели трансляции); возможности
инструментальных средств программирования в различных операционных средах;
функциональные возможности различных языков программирования; особенности
программирования в мультизадачной и мультипрограммной средах; современные
средства разработки и анализа программного обеспечения.

Уметь:
формализовать поставленную задачу; составлять и оформлять программы на языках
программирования;
тестировать
и
отлаживать
программы
в
современных
интегрированных средах разработки; опираясь на знания теоретических основ
программирования, оптимизировать исходный код; применять полученные знания к
различным предметным областям.
 Владеть:
навыками алгоритмизации, разработки, отладки и тестирования программ в различных
интегрированных средах, на различных аппаратных платформах, документирования
программ.
2.
Структура и трудоемкость дисциплины.
Вид учебной работы
Аудиторные занятия (всего)
В том числе:
Лекции
Практические занятия (ПЗ)
Семинары (С)
Лабораторные работы (ЛР)
Самостоятельная работа (всего)
Вид промежуточной аттестации (зачет, экзамен)
Общая трудоемкость
252 часа
7 зач. ед.
3.
Всего
часов
140
Таблица 1.
Семестры
2
3
68
72
70
34
36
70
112
34
58
зачет
126
36
54
экзамен
126
Тематический план.
4
5
6
3
Из них в интерактивной
форме
Самостоятельная
работа
2
Лабораторные
занятия
1
Лекции
Тема
Недели семестра
№
Итого часов по теме
Таблица 2.
Виды учебной работы и
самостоятельная
работа, в час.
Итог
о
коли
чест
во
балл
ов
7
8
9
Модуль 1
1.1.
Теоретические проблемы
языков программирования
разработки 1
1.2.
Язык программирования Object Pascal 2-4
(Delphi)
4
1.3.
Средства описания данных
4
5-6
2
6
8
2
0-5
4
8
16
6
0-6
8
6
18
8
0-20
Всего
10
12
20
42
16
0-31
Модуль 2
2.1.
Структурированные типы данных
7-9
6
6
6
18
6
0-10
2.2.
Процедурный тип
1013
4
4
10
18
8
0-23
10
10
16
36
14
0-33
Всего
Модуль 3
3.1.
Абстрактные типы данных
14
6
6
8
20
6
0-8
3.2.
Среды визуального программирования
1516
4
6
6
16
6
0-23
3.3.
Общая характеристика языков ассемблера
17
4
8
12
2
0-5
Всего
14
12
22
48
14
0-36
Итого по дисциплине за 2 семестр
(часов, баллов)
34
34
58
126
44
0100
Модуль 1
4.1.
Введение в С#. Система типов языка С#
1
2
2
6
10
4
0-7
4.2.
Выражения и операторы. Управление
действиями с данными
2-4
6
6
6
18
6
0-19
4.3.
Массивы
5-6
2
4
6
12
4
0-7
10
12
18
40
14
0-33
Всего
Модуль 2
5.1.
Классы. Создание и разрушение объектов
7-8
6
6
6
18
6
0-9
5.2.
Дополнительные элементы класса
9-10
4
4
4
12
4
0-8
5.3.
Наследование в С#
1112
4
4
4
12
4
0-8
5.4.
Абстрактные классы. Интерфейсы
1314
4
4
6
14
6
0-9
18
18
20
56
20
0-34
Всего
Модуль 3
6.1.
Исключения
15
2
2
8
12
4
0-14
6.2.
Делегаты и события
1617
4
4
4
12
6
0-14
6.3.
Препроцессорная обработка
18
2
4
6
2
0-5
Всего
8
6
16
30
12
0-33
Итого по дисциплине за 3 семестр
(часов, баллов)
36
36
54
126
46
0100
Курсовая работа
0100
Таблица 3.
0-1
0-1
0-3
0-5
0-4
0-5
0-5
014
Модуль 2
2.1
2.2
0-2
0-2
0-4
0-6
Всего
0-4
010
Модуль 3
3.1
3.2
0-1
0-2
0-4
0-6
3.3
Всего
0-3
Итого
3 семестр
Модуль 1
4.1
-
012
0-5
015
039
0-1
0-4
0-5
0-5
0-5
0-5
0-5
0-5
015
другие формы
Информацио
нные
системы и
технологии
электронные
практикум
комплексные
ситуационные
задания
программы
компьютерного
тестирования
Технические
формы контроля
эссе
реферат
тест
лабораторная
работа
ответ на
семинаре
собеседование
коллоквиумы
2 семестр
Модуль 1
1.1
1.2
1.3
Всего
Письменные работы
Устный опрос
контрольная
работа
№ темы
Итого количество
баллов
Виды и формы оценочных средств в период текущего контроля
0-5
0-6
0-20
0-31
0-7
0-7
0-4
010
014
0-10
0-23
0-3
010
0-8
0-23
0-33
0-5
0-36
013
034
0-2
0-100
-
0-7
4.2
4.3
Всего
Модуль 2
5.1
5.2
5.3
5.4
Всего
0-1
0-1
0-3
0-6
0-4
014
0-1
0-4
0-4
0-4
0-1
0-2
Модуль 3
6.1
6.2
6.3
Всего
0-1
0-1
Итого
0-7
0-2
012
0-6
0-6
0-5
017
043
0-6
0-6
0-2
010
0-6
0-4
0-4
-
0-4
0-4
0-4
0-4
016
0-9
0-8
0-8
0-9
0-34
0-7
0-7
0-14
0-14
0-5
0-33
014
040
010
19
0-7
0-33
0 – 100
Таблица 4.
Планирование самостоятельной работы студентов
№
Модули и темы
Виды СРС
обязательные
дополнитель
ные
Неделя
семестра
Объем
часов
Кол-во
баллов
1
6
0-5
2-4
8
0-6
5-6
6
0-20
20
0-31
7-9
6
0-10
10-13
10
0-23
2 семестр
Модуль 1
1.1
Теоретические проблемы
разработки
языков
программирования
1.2
Язык программирования
Object Pascal (Delphi)
1.3
Средства
данных
описания
Конспектирование
материала на
лекционных занятиях
Конспектирование
материала на
лекционных занятиях.
Выполнение заданий
лабораторных работ
Конспектирование
материала на
лекционных занятиях.
Выполнение заданий
лабораторных работ
Выполнение
контрольных работ
Работа с
учебной
литературой
Разработка
программ
Работа с
учебной
литературой.
Разработка
программ
Всего по модулю 1:
Модуль 2
2.1
2.2
Структурированные типы
данных
Процедурный тип
Конспектирование
материала на
лекционных занятиях.
Выполнение заданий
лабораторных работ
Конспектирование
материала на
лекционных занятиях.
Выполнение заданий
лабораторных работ
Выполнение
контрольных работ
Разработка
программ
Работа с
учебной
литературой.
Разработка
программ
Всего по модулю 2:
Модуль 3
3.1
Абстрактные
типы
данных
3.2
Среды
визуального
программирования
3.3
Общая
характеристика
языков ассемблера
Конспектирование
материала на
лекционных занятиях.
Выполнение заданий
лабораторных работ
Конспектирование
материала на
лекционных занятиях.
Выполнение заданий
лабораторных работ
Конспектирование
материала на
лекционных занятиях.
Выполнение заданий
лабораторных работ
Выполнение
контрольных работ
16
0-33
14
8
0-8
15-16
6
0-23
17
8
0-5
22
58
0-36
0-100
1
6
0-7
2-4
6
0-19
5-6
6
0-7
18
0-33
7-8
6
0-9
9-10
4
0-8
11-12
4
0-8
Разработка
программ
Работа с
учебной
литературой.
Разработка
программ
Разработка
программ
Всего по модулю 3:
ИТОГО:
3 семестр
Модуль 1
4.1
Введение в С#. Система
типов языка С#
4.2
Выражения и операторы.
Управление действиями с
данными
4.3
Массивы
Конспектирование
материала на
лекционных занятиях.
Выполнение заданий
лабораторных работ
Конспектирование
материала на
лекционных занятиях.
Выполнение заданий
лабораторных работ
Конспектирование
материала на
лекционных занятиях.
Выполнение заданий
лабораторных работ
Выполнение
контрольных работ
Разработка
программ
Работа с
учебной
литературой.
Разработка
программ
Разработка
программ
Всего по модулю 1:
Модуль 2
5.1
Классы. Создание и
разрушение объектов
5.2
Дополнительные
элементы класса
5.3
Наследование в С#
Конспектирование
материала на
лекционных занятиях.
Выполнение заданий
лабораторных работ
Разработка
программ
Конспектирование
материала на
лекционных занятиях.
Выполнение заданий
лабораторных работ
Работа с
учебной
литературой.
Разработка
программ
Конспектирование
материала на
Разработка
5.4
лекционных занятиях.
Выполнение заданий
лабораторных работ
Конспектирование
материала на
лекционных занятиях.
Выполнение заданий
лабораторных работ
Выполнение
контрольных работ
Абстрактные классы.
Интерфейсы
Всего по модулю 2:
Модуль 3
6.1
Исключения
программ
Работа с
учебной
литературой.
Разработка
программ
Конспектирование
материала на
лекционных занятиях.
Выполнение заданий
лабораторных работ
6.2
Делегаты и события
6.3
Препроцессорная
обработка
Конспектирование
материала на
лекционных занятиях.
Выполнение заданий
лабораторных работ
13-14
6
0-9
20
0-34
15
8
0-14
16-17
4
0-14
18
4
0-5
16
54
0-33
0-100
Разработка
программ
Работа с
учебной
литературой.
Разработка
программ
Конспектирование
материала на
лекционных занятиях.
Выполнение заданий
лабораторных работ
Выполнение
контрольных работ
Разработка
программ
Всего по модулю 3:
ИТОГО:
4.
Разделы дисциплины и междисциплинарные связи с обеспечиваемыми
(последующими) дисциплинами
№
п/
п
1.
2.
3.
4.
Наименование
обеспечиваемых
(последующих)
дисциплин
Операционные
системы
Разработка
Windowsприложений на
платформе
Microsoft. NET
Технологии и
методы
программирован
ия
Программирован
ие мобильных
устройств
Темы дисциплины, необходимые для изучения обеспечиваемых
(последующих) дисциплин
1.
1
1.
2
1.
3
2.
1
2.
2
3.
1
3.
2
+
+
3.
3
4.
1
4.
2
4.
3
5.
1
5.
2
5.
3
5.
4
+
+
+
+
+
+
+
6.
1
6.
2
6.
3
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
5.
Содержание дисциплины.
1.1. Теоретические проблемы разработки языков программирования. История языков
программирования. Эволюция архитектуры программного обеспечения. Парадигмы
программирования. Общие принципы построения и использования языков
программирования; средства описания данных; средства описания действий. Стандарты
языков программирования.
1.2. Язык программирования Object Pascal (Delphi). Структура программы. Объявление
типов данных, констант и переменных. Операторы языка.
1.3. Средства описания данных. Элементарные типы данных. Объекты данных (ОД),
переменные и константы. Спецификация и реализация. Типы данных, объявления.
Контроль типов и преобразование типов. Присваивание и инициализация. Скалярные
типы данных: числовые, перечислимые, булевы, символьные.
2.1. Структурированные типы данных. Спецификация и реализация типов
структурированных ОД. Объявление структурированных ОД и контроль типов. Массивы.
Записи. Строки. Указатели. Списки. Множества. Использование хэш-функций для
реализации множеств.
2.2. Процедурный тип. Управление подпрограммами. Подпрограммы вызов/возврат.
Рекурсивные подпрограммы. Общие вопросы передачи параметров. Среды ссылок.
Сопрограммы. Планируемые подпрограммы.
3.1. Абстрактные типы данных: инкапсуляция, спецификация, реализация,
параметризация, классы и объекты. Инкапсуляция при помощи подпрограмм.
Наследование. Полиморфизм.
3.2. Среды визуального программирования. Современные интегрированные среды
разработки программ; графический интерфейс пользователя. Разработка Windowsприложений в среде Borland Delphi. Библиотека визуальных компонентов. Обработка
событий. Обработка исключений.
3.3. Общая характеристика языков ассемблера. Назначение, принципы построения и
использования; структура языка, основные группы команд.
4.1. Введение в C#. Характеристика языка C#;сравнительный анализ языков C++, C#,
Pascal; структура программы на С# ; организация ввода-вывода в консольном
приложении. Система типов языка С#. Встроенные типы данных, ;преобразование типов;
типы-значения и ссылочные типы; упаковка и распаковка. Литералы и переменные.
Литералы разных типов ; переменные и их инициализация; область видимости и время
жизни переменных.
4.2. Выражения и операторы. Арифметические операторы; логические операторы;
приоритет операций; преобразование типов в выражениях. Управление действиями с
данными. Оператор присваивания; операторы условный и выбора ;операторы цикла;
операторы перехода.
4.3. Массивы. Создание и инициализация массивов; ступенчатые массивы; класс Array
(основные свойства и методы).
5.1. Классы. Классы и объекты ;классы и структуры; элементы класса; методы, параметры
методов; перегрузка методов. Создание и разрушение объектов. Конструкторы и
инициализация данных; деструкторы и алгоритм сборки мусора; методика Dispose.
5.2. Дополнительные элементы класса. Перегруженные операторы; свойства;
индексаторы.
5.3. Наследование в С#. Производные классы, конструкторы и наследование;
преобразование типов при работе с иерархией объектов; операторы проверки и
приведения типа; переопределение методов.
5.4. Абстрактные классы. Абстрактные классы и наследование; абстрактный класс
Object. Интерфейсы. Реализация интерфейсов ; интерфейсы и классы; интерфейсы и
структуры.
6.1.
Исключения.
Обработка
исключений,
генерация
исключений;
класс
Exception;исключения и наследование.
6.2. Делегаты и события. Создание и использование делегатов, групповые делегаты;
определение и использование событий; генерация событий; широковещательные события.
6.3. Препроцессорная обработка. Основные директивы препроцессора, использование
для условной компиляции.
6.
Планы семинарских занятий.
Не запланированы
7.
Темы лабораторных работ (Лабораторный практикум).
1. Разработка консольных приложений на языке программирования Object
Pascal (Delphi). Структура простой программы. Основные операторы языка.
Реализация алгоритмов обработки скалярных данных.
2. Стандартные типы данных. Переменные и константы. Типы данных,
объявления констант, переменных, типов. Преобразование типов. Скалярные
типы данных: числовые, перечислимые, булевы, символьные. Использование
данных различного типа в операторах языка.
3. Структурированные типы данных. Массивы. Записи. Строки. Множества.
Основные алгоритмы обработки массивов и строк.
4. Процедурный тип. Программа с подпрограммами. Формальные и фактические
параметры. Передача параметров. Процедуры и функции.
5. Абстрактные типы данных: Принципы ООП. Классы и объекты. Элементы
класса. Объявление классов.
6. Разработка приложений в среде визуального программирования.
Разработка Windows-приложений в среде Borland Delphi. Использование
библиотеки визуальных компонентов. Обработчики событий. Работа с файлами.
Стандартные диалоги.
7. Введение в C#. Разработка программ простой структуры на С#; ввод-вывод в
консольном приложении. Особенности использования типов языка С#.
8. Использование операторов C#. Приоритет операций и преобразование типов в
выражениях. Оператор присваивания; операторы условный и выбора;
операторы цикла; использование для программирования алгоритмов обработки
скалярных данных.
9. Массивы. Создание и инициализация массивов, основные алгоритмы
обработки массивов с использованием методов класса Array.
10. Классы. Объявление класса; элементы класса. Объявление и реализация
методов, параметры методов. Создание объектов. Объявление, реализация и
вызов конструкторов.
11. Дополнительные элементы класса. Объявление и использование
перегруженных операторов, свойств и индексаторов.
12. Реализация наследования в С#. Объявление производных классов,
использование правил преобразования типов при работе с иерархией объектов;
использование операторов проверки и приведения типа; переопределение
методов в наследуемых классах.
13. Абстрактные классы. Использование абстрактных классов на примере класса
Object. Интерфейсы. Способы реализации интерфейсов.
14. Исключения. Обработка исключений, генерация исключений; класс Exception;
программирование алгоритмов с использованием исключений.
15. Делегаты и события. Примеры создания и использования делегатов;
определение и использование событий; стандартные и пользовательские
события в приложениях.
8. Примерная тематика курсовых работ.
1. Компиляция и интерпретация. Компилируемые и интерпретируемые ЯП.
2. История языка Java и основные идеи реализации. Виртуальная машина Java.
3. Синтаксис языка программирования. Общие синтаксические критерии.
4. Модели трансляции. Структура компилятора.
5. Формальные модели трансляции.
6. Формальные грамматики.
7. Деревья грамматического разбора.
8. Однозначные и неоднозначные грамматики.
9. Расширенная НФБ-нотация. Синтаксические схемы.
10. Конечные автоматы.
11. Моделирование конечных автоматов с помощью формальной грамматики.
12. Детерминированные и недетерминированные конечные автоматы.
13. Регулярные грамматики и конечные автоматы.
14. Автоматы с магазинной памятью. Связь с НФБ-грамматиками.
15. Грамматический разбор на основе метода рекурсивного спуска.
16. Принципы функционального программирования.
17. Принципы рекурсивно-логического программирования.
18. Принципы параллельного программирования.
9. Учебно-методическое обеспечение самостоятельной работы студентов. Оценочные
средства для текущего контроля успеваемости, промежуточной аттестации по
итогам освоения дисциплины (модуля).
Дополнительные задания для самостоятельного углубленного изучения содержания
дисциплины
1. Изучение истории языков программирования на примере развития языков Pascal и С.
Изучение парадигм программирования на примере сопоставления общих приемов на
процедурном и функциональном языках.
2. Изучение современных интегрированных сред разработки программ на примере
Delphi. Изучение возможностей библиотеки визуальных компонентов.
3. Изучение основных команд языка ассемблера, принципов их построения и
использования; программирование простых алгоритмов обработки скалярных данных.
4. Использование ступенчатых массивов; изучение возможностей свойств и методов
класса Array для решения типовых задач обработки массивов.
5. Изучение свойств и методов абстрактного класса Object. Переопределение в
наследующих классах на примере метода ToString.
6. Изучение использования препроцессорной обработки в приложениях на языке C#.
Основные директивы препроцессора, примеры использования для условной компиляции
программ.
Задания для самостоятельной работы по практическому программированию и
подготовки к контрольным работам
Разработайте консольные приложения на языках Delphi, C++, C#.
1)
В одномерном числовом массиве переместить нулевые элементы в конец, сдвинув
остальные элементы влево.
2)
В двумерном числовом массиве заменить нулями все элементы, расположенные на
главной диагонали и выше ее.
3)
В квадратной матрице поменять местами строку, в которой расположен первый
максимальный элемент, со строкой, содержащей последний минимальный элемент.
4)
В одномерном числовом массиве переместить нулевые элементы в начало, сдвинув
остальные элементы вправо.
5)
В двумерном числовом массиве заменить
главной диагонали и ниже ее.
все элементы, расположенные на
6)
В квадратной матрице поменять местами строку, в которой расположен последний
максимальный элемент, со строкой, содержащей первый минимальный элемент.
7)
В одномерном числовом массиве переместить минимальные элементы в начало,
сдвинув остальные элементы вправо.
8)
В двумерном числовом массиве найти сумму элементов, расположенных на
побочной диагонали и выше ее.
9)
В квадратной матрице поменять местами столбец, в котором расположен первый
нечетный элемент, со столбцом, содержащим последний четный элемент.
10)
В одномерном числовом массиве переместить минимальные элементы в конец,
сдвинув остальные элементы влево.
11)
В двумерном числовом массиве найти произведение элементов, расположенных на
побочной диагонали и ниже ее.
12)
В квадратной матрице поменять местами столбец, в котором расположен первый
нулевой элемент, со столбцом, содержащим последний отрицательный элемент.
13)
В одномерном числовом массиве переместить максимальные элементы в начало,
сдвинув остальные элементы вправо.
14)
В двумерном числовом массиве найти
расположенных на главной диагонали и ниже ее.
максимальный
из
элементов,
15)
В квадратной матрице поменять местами первую из строк, в которой больше двух
нулей, со строкой, содержащей последний минимальный элемент.
16)
В одномерном числовом массиве переместить максимальные элементы в конец,
сдвинув остальные элементы влево.
17)
В двумерном числовом массиве найти минимальный из элементов, расположенных
на главной диагонали и выше ее.
18)
В квадратной матрице поменять местами строку, в которой расположен последний
максимальный элемент, с последней из строк, содержащей хотя бы один ноль.
19)
В одномерном числовом массиве переместить положительные элементы в начало,
сдвинув остальные элементы вправо.
20)
В двумерном числовом массиве найти сумму максимальных элементов в строках.
21)
В квадратной матрице поменять местами столбец, в котором расположен первый
нулевой элемент, со столбцом, содержащим последний четный элемент.
22)
В одномерном числовом массиве переместить положительные элементы в конец,
сдвинув остальные элементы влево.
23)
В двумерном числовом массиве найти произведение минимальных элементов в
столбцах.
24)
В квадратной матрице поменять местами столбец, в котором расположен первый
элемент с трехзначным значением, со столбцом, содержащим последний отрицательный
элемент.
25)
В одномерном числовом массиве переместить отрицательные элементы в начало,
сдвинув остальные элементы вправо.
26)
В двумерном числовом массиве найти сумму элементов строки, в которой
расположен первый максимальный элемент.
27)
В квадратной матрице поменять местами строку, в которой расположен первый
максимальный элемент, со строкой, содержащей последний из элементов,
оканчивающихся на .
28)
В одномерном числовом массиве переместить отрицательные элементы в конец,
сдвинув остальные элементы влево.
29)
В двумерном числовом массиве найти сумму элементов столбца, в котором
расположен последний максимальный элемент.
30)
В квадратной матрице поменять местами строку, в которой расположено больше
всего нулей, со строкой, содержащей первый положительный элемент.
31)
В одномерном числовом массиве переместить четные элементы в начало, сдвинув
остальные элементы вправо.
32)
В двумерном числовом массиве найти произведение четных элементов строки, в
которой расположен первый минимальный элемент.
33)
В квадратной матрице поменять местами столбец, в котором расположено меньше
всего нечетных элементов, со столбцом, содержащим последний четный элемент.
34)
В одномерном числовом массиве переместить нечетные элементы в конец, сдвинув
остальные элементы влево.
35)
В двумерном числовом массиве найти произведение нечетных элементов столбца,
в котором расположен последний минимальный элемент.
36)
В квадратной матрице поменять местами столбец, сумма элементов которого
максимальна, со столбцом, содержащим последний отрицательный элемент.
Запрограммируйте указанные действия с помощью класса String, вводя исходные данные
с клавиатуры и выводя результаты на экран:
1) Составить программу, которая считывает произвольный текст
алфавитном порядке все латинские буквы, входящие в этот текст.
и распечатывает в
2) Составить программу, которая читает построчно текст другой программы на языке С#,
обнаруживает типизированные литералы и выводит их на печать.
3) Составить программу, которая читает произвольные строки длиной до 80 символов,
разбивает их по словам (подстрока между двумя пробелами), находит максимальное слово
и выводит его на печать.
4) Дан массив строк, каждый элемент которого представляет выражение, где
складываются двоичные числа без знака. Преобразовать значения сумм в десятичную
систему счисления. Распечатать значения элементов массива до и после преобразования.
5) Составить программу, которая читает построчно текст другой программы на языке С#,
считает число символов { и }, сравнивает их и выводит на печать сообщение об ошибке,
если они не равны между собой или не сбалансированы.
6) Разработать программу, которая предназначена для зашифровки текстов, (выбор
алгоритма по Вашему усмотрению). Вывести на печать исходный текст и результат
шифровки. Текст читать построчно, хранить текст в массиве строк.
7) Составить программу, которая вводит массив строк, состоящих из слов, разделенных
пробелами, и определяет, какие из слов начинаются на букву а.
8) Составить программу, которая вводит массив строк, состоящих из слов, разделенных
пробелами, и определяет, какие из слов оканчиваются на букву а.
9) Составить программу, которая вводит массив строк, состоящих из слов, разделенных
пробелами, и определяет, какие из слов содержат букву а.
10) Разработать программу, которая проверяла бы орфографию (правильность написания)
слов в некоторой строке, сравнивая их со словами из словаря. Использовать при этом в
качестве словаря одномерный массив слов.
11) Задан одномерный массив, каждым элементом которого является строка символов,
состоящая из одних цифр. Упорядочить элементы массива по возрастанию их числовых
значений и вывести на экран. Подсчитать среднее значение всех элементов.
12) Задан одномерный массив, каждым элементом которого является строка символов.
Если строка состоит из одних цифр, то, рассматривая ее как число, определить сумму всех
значений элементов массива.
13) Задан одномерный массив, каждым элементом которого является строка символов.
Если строка состоит из одних латинских букв, нужно заменить их на соответствующие
коды и найти их среднее арифметическое.
14) Задан одномерный массив, каждым элементом которого является строка символов,
представляющая собой запись некоторого оператора С#. Найти все операторы
присваивания.
Требования к зачету
Зачет выставляется по результатам работы студента в течение семестра, включая
посещение лекций и лабораторных занятий, выполнение лабораторных работ,
контрольных работ, заданий для самостоятельной работы. Минимальная сумма баллов,
необходимая для получения зачета – 61 балл.
Вопросы к экзамену
1. Структура программы на С#
2. Встроенные типы данных
3. Преобразование типов
4. Типы-значения и ссылочные типы, упаковка и распаковка
5. Переменные и их инициализация, область видимости и время жизни переменных
6. Арифметические операторы, логические операторы
7. Приоритет операций, преобразование типов в выражениях
8. Оператор присваивания
9. Операторы условный и выбора
10. Операторы цикла
11. Операторы перехода
12. Создание и инициализация массивов, ступенчатые массивы
13. Класс Array
14. Классы и объекты, элементы класса
15. Методы, параметры методов
16. Перегрузка методов
17. Конструкторы и инициализация данных
18. Деструкторы и алгоритм сборки мусора
19. Перегруженные операторы
20. Свойства
21. Индексаторы
22. Производные классы
23. Конструкторы и наследование
24. Преобразование типов при работе с иерархией объектов, операторы проверки и
приведения типа
25. Переопределение методов
26. Абстрактные классы и наследование
27. Абстрактный класс Object
28. Реализация интерфейсов, интерфейсы и классы, интерфейсы и структуры
29. Обработка исключений, генерация исключений
30. Класс Exception, исключения и наследование
31. Создание и использование делегатов, групповые делегаты*
32. Определение и использование событий, генерация событий, широковещательные
события
33. Использование пространств имен
34. Основные директивы препроцессора
10. Образовательные технологии.
Сочетание традиционных и новых образовательных технологий в ходе проведения
лекций, компьютерных лабораторных работ и контрольных мероприятий (контрольных
работ, промежуточного тестирования, зачета и экзамена).




Аудиторные занятия:
лекционные и лабораторные занятия (разработка индивидуальных и
коллективных проектов); контроль осуществляется в ходе опроса на
лекциях, проверки конспектов, при сдаче лабораторных заданий. В течение
обучения студенты выполняют комплексы индивидуальных заданий;
активные и интерактивные формы – проблемные вопросы на лекциях,
публичные защиты проектов, дискуссии по результатам выполнения
курсовых работ, работа студенческих исследовательских групп.
Внеаудиторные занятия:
самостоятельная работа (выполнение самостоятельных заданий разного типа
и уровня сложности на лабораторных занятиях, подготовка к аудиторным
занятиям, подготовка проектов и курсовых работ, изучение отдельных тем и
вопросов учебной дисциплины в соответствии с учебно-тематическим
планом, составление конспектов, выполнение индивидуальных заданий:
докладов, сообщений, решение олимпиадных задач, выполнение
самостоятельных и контрольных работ, подготовка ко всем видам
контрольных
испытаний:
текущему
контролю
успеваемости
и
промежуточной аттестации);
индивидуальные консультации.
11. Учебно-методическое и информационное обеспечение дисциплины (модуля).
11.1. Основная литература:
1. Бобровский С.И. Delphi 7 : учебный курс. -Санкт-Петербург: Питер, 2005.-736 c
2. Вирт Н. Алгоритмы и структуры данных : с примерами на Паскале. -СанктПетербург: Невский Диалект, 2008.-352 с.
3. Давыдов В.Г. Технологии программирования: С++ -СПб.: БХВ-Петербург, 2005. 672 с.
4. Захаров А.А., Захарова И.Г. Языки и среды программирования. Учебное пособие.
Тюмень: Изд. ТюмГУ, 2006. – 288 с.
5. Лафоре Р. Объектно-ориентированное программирование в С. - СПб. : ПИТЕР,
2004. - 924 с.
6. Фаронов В.В. Delphi : программирование на языке высокого уровня. -СанктПетербург: Питер, 2005.-640 c.
11.2. Дополнительная литература:
1. Гергель В.П. Теория и практика параллельных вычислений : учеб. пособие. Москва: Интернет-Университет Информационных Технологий: БИНОМ. Лаборатория
знаний, 2007.-423 с.
2. Деменев А.Г. Программирование для параллельных вычислительных систем :
учеб.-метод. Пособие .-Пермь: Изд-во ПГУ, 2007.-128 с
3. Охотников Е.С. Языки программирования [Электронный ресурс] : лаб. практикум. Тюмень: Изд-во ТюмГУ: Виндекс, 2008.-1 o=эл. опт. диск (CD-ROM)
4. Свердлов С.З. Языки программирования и методы трансляции : учеб. пособие. Санкт-Петербург: ПИТЕР, 2007. -144 с.
5. Фленов М.Е. Библия Delphi. -Санкт-Петербург: БХВ-Петербург, 2008.-880 с.
11.3. Программное обеспечение и Интернет – ресурсы:
1. MSDN Academic Alliance. Библиотека учебных курсов [электр. ресурс]. – Режим
доступа http://www.microsoft.com/Rus/msdnaa/curricula/default.mspx свободный. - Загл. с
экрана.
2. Все о Паскале [электр. ресурс]. – Режим доступа http://forum.pascal.net.ru/index.php
свободный. - Загл. с экрана.
3. Интернет-университет информационных технологий. Языки и системы
программирования [электр. ресурс]. – Режим доступа http://www.intuit.ru/catalog/se/pl/
свободный. - Загл. с экрана.
12. Технические средства и материально-техническое обеспечение дисциплины
(модуля).
Для чтения лекций используется аудитория, оборудованная мультимедиа
проектором и персональным компьютером.
Для выполнения лабораторных работ используется компьютерное оборудование с
установленными программными продуктами Delphi (версия не ниже 7) и Microsoft Visual
Studio (версия не ниже 2010).
Скачать
Похожие карточки

Раз два три четыре пять

– Карточек Cards

Онегин, дядя

– Карточек Cards

Создать карточки