Переменные. В алгоритмических и объектно-ориентированных языках программирования (в частности, в языке Visual Basic) переменные играют важнейшую роль. Они предназначены для хранения и обработки данных в программах. Переменные задаются именами, определяющими области памяти, в которых хранятся их значения. Значениями переменных могут быть данные различных типов (целые или вещественные числа, последовательности символов, логические значения и т. д.). Тип переменных задается типом данных, которые могут быть значениями переменных. Значениями переменных числовых типов (Byte, Integer, Long, Single, Double) являются числа. Логические переменные (Boolean) могут принимать значения True или False. Значениями строковых переменных (String) являются последовательности символов и т. д. Над различными типами данных, а следовательно, переменными допустимы различные операции. Так, над числовыми переменными возможны арифметические операции, над логическими переменными — логические операции, над строковыми — операции преобразования символьных строк и т. д. Различные типы данных требуют для своего хранения в оперативной памяти компьютера разное количество ячеек (байт). Так, для хранения целого числа в интервале от 0 до 255 в переменных типа Byte достаточно одной ячейки памяти (одного байта), для хранения вещественного числа с двойной точностью в переменных типа Double требуется уже восемь ячеек (восемь байт), а для хранения символьных строк в переменных типа String — одна ячейка на каждый символ. Имя любой переменной (идентификатор) уникально и не может меняться в процессе выполнения программы. Имя переменной может состоять из различных символов (латинские и русские буквы, цифры и т. д.), но должно обязательно начинаться с буквы и не включать знак «.» (точку). Количество символов в имени не может быть более 255. Например, числовую переменную можно назвать А или Число, а строковую — А или Строка. Простейший способ задания типа переменной (ее объявления) состоит в приписывании к имени переменной определенного суффикса. Например, числовую переменную типа Integer можно задать как А%, а строковую переменную типа String — как А$. Переменная может получить или изменить значение с помощью оператора присваивания: [Let] ИмяПеременной = Выражение Ключевое слово Let в большинстве случаев не используется. Переменная получает значение, равное значению выражения (арифметического, строкового или логического). Например, после выполнения фрагмента программы intA = 3 intB = 4 intC = intA^2 + intB^2 целочисленная переменная intC примет значение, равное числу 25. Массивы. Массивы являются набором однотипных переменных, объединенных одним именем. Массивы бывают одномерные, которые можно представить в форме одномерной таблицы, и двумерные (они представляются в форме двумерной таблицы). Массивы могут быть разных типов: числовые, строковые и т. д. Массив состоит из пронумерованной последовательности элементов. Номера в этой последовательности называются индексами. Каждый из этих элементов является переменной, т.е. обладает именем и значением, и поэтому массив можно назвать переменной с индексом. Индекс может принимать любые целочисленные значения (в данном случае от 1 до 33). Обращение к элементу массива производится по его имени, состоящему из имени массива и значения индекса, например strA(5). Каждый элемент массива может обладать собственным значением. Так, значением элемента рассмотренного выше строкового массива strA (5) является строка д. Основы алгоритмизации и программирования Краткая аннотация Знания и умения Полная программа Предварительные требования Предварительное тестирование Продолжительность 64 ак.часа (16 занятий) Преподаватели Щукин Александр Валентинович Аннотация Современный специалист в области компьютерных технологий должен владеть фундаментальными знаниями в области алгоритмизации и программирования. Под этим мы понимаем и системный подход к решению информационных задач, алгоритмическое мышление, знание терминологии и современных средств разработки программного обеспечения. В настоящее время существует большое количество разнообразных языков программирования, с помощью которых можно эффективно решать широкий круг задач. Но залогом успешной разработки программного обеспечения на любом языке программирования было и остается знание основных принципов алгоритмизации, понимание процесса работы программы, обработки компьютером данных.Это является базисом для программиста любого профиля и поэтому изучается на данном курсе. Отдельное внимание на занятиях уделяется различным способам организации данных в программе, решению стандартных алгоритмических задач. В прежнее время программирование было уделом математиков и системных инженеров. В на-стоящее время темы, рассматриваемые в курсе нужны компьютерным специалистам разного профиля: начиная от пользователей офисных пакетов, которые пишут макросы для автоматизации своей работы или WEB-дизайнеров и заканчивая системными программистами. Курс ориентирован на тех пользователей, кто не имеет никаких знаний по алгоритмизации и программированию или является начинающим программистом. Даже если Вы не собираетесь работать программистом, данный курс научит Вас системно подходит к решению задач, научит грамотно формулировать техническое задание и описывать способы решения при составлении технического задания программистам. Примеры и упражнения приводятся с применением современного языка Microsoft Visual Basic, но все изучаемые темы распространяются на любые средства программирования высокого уровня. Курс будет полезен не только будущим программистам, но и желающим освоить такие специальности как разработчик WEB-узлов, администратор баз данных, разработчик макросов для различных пакетов. Также данный курс можно рассматривать как подготовительный для поступающих на второе высшее образование. На данном курсе применяется три формы проведения занятий: Лекции, на которых излагается теоретический материал, рассматриваются общие вопросы решения алгоритмических задач, приводятся многочисленные примеры, советы и рекомендации. Упражнения – слушатели самостоятельно или совместно с преподавателем решают разнообразные задачи по алгоритмизации и программированию. Часть заданий слушатели курса должны решить дома. Проверенные задания обсуждаются в классе. Всего разбирается более 70 примеров. Практика – занятия в компьютерном классе, на которых слушатели закрепляют пройденный материал, реализуют на компьютере рассмотренные ранее задачи. Документы об окончании обучения Удостоверение о краткосрочном повышении квалификации Знания и умения, полученные в результате обучения В данном курсе рассматриваются общие вопросы, касающиеся двух фундаментальных понятий: алгоритмизации и программирования. Под алгоритмизацией понимается умение свои идеи представлять в формализованном виде, воплощать в форму, доступную для автоматизации, например на компьютере, умение логически мыслить, формализовать постановку задачи и цели алгоритмов, решать типовые алгоритмические задачи. Программирование подразумевает практическую реализацию алгоритмов на определенном языке программирования, знание конструкций языка, технологии программирования. Слушатель познакомится с основополагающими понятиями: оператор, переменная, процедура, функция, тип данных и т.д. Научится применять основные операторы языка программирования высокого уровня: условие, различные виды циклов, выбор. Научится строить блок-схемы алгоритмов и производить по ним разработку программ. Сможет грамотно проектировать и реализовывать подпрограммы (процедуры и функции). На курсе рассматриваются основные формы представления данных: строки, структуры (пользовательские типы данных), массивы (одномерные и многомерные), списки. Отдельные темы посвящены созданию широко распространенных алгоритмов сортировки, поиска минимального, максимального значения в массиве, реализации задач по обработке строк. Рассматриваются итерационные и рекурсивные алгоритмы. Объясняются основные принципы объектно-ориентированного программирования. Курсы, в освоении которых помогут приобретенные знания: DEV-C10. Процедурное программирование. Языки С/C++ DEV-C20. Объектно-ориентированное программирование. Базовый уровень. Язык С++ Требования к начальному уровню знаний Данный курс предназначен для слушателей, которые либо не имели совсем, либо имели небольшой опыт программирования. Курс ориентирован на квалифицированных пользователей, имеющих опыт работы в MS Windows, практические навыки работы в Microsoft Word. Знание английского языка облегчает усвоения материала курса. Предварительное тестирование Тест №ВКТ-113.2 Операционная система MS Windows Понятие об операционных системах. Функции и классификация операционных систем. Состав MS Windows. Требования к аппаратной части. Понятие об оригинальной и локализованной версиях программы. Раскладка клавиатуры. Переключение языка. Работа с мышью в MS Windows: указатели и типы операций. Интерфейс MS Windows. Основные элементы. Элементы окон в MS Windows. Режимы отображения окна, операции с окнами. Виды окон. Запуск, завершение приложений, переключение между ними. Элементы диалоговых окон, заполнение полей в диалоговых окнах. Операции с пиктограммами. Виды пиктограмм. Типы меню и команд. Способы выполнения команд. Главное меню. Разделы Главного меню. Завершение работы с MS Windows. Перезагрузка системы. Стандартные приложения MS Windows: графический редактор Paint, текстовый редактор Word, Калькулятор. Стандартные кнопки в приложениях. Открытие и сохранение документов Буфер Обмена. Копирование и перемещение данных через Буфер Обмена. Ярлыки: определение, виды, способы создания, операции. Файловая система. Пространство имен. Приложение "Мой компьютер (Компьютер)": переход на нужный диск и в нужную папку; режимы просмотра; создание и переименование папок; выделение, копирование, перемещение и удаление объектов; отмена последнего действия; изменение свойств и установка параметров. Поиск файлов и папок. Панель задач: назначение, настройка Рабочий стол: назначение, настройка. Упорядочение окон и пиктограмм. Настройка Главного меню. Настройка Панели Управления: Дата/время, Клавиатура, Мышь, Принтеры, Шрифты, Экран. Программа курса Программа курса Лекции Раздел 1 Вводная часть. Программное и аппаратное обеспечение. Языки программирования: уровень и тип языка программирования, характеристики. Краткий обзор парадигм программирования: процедурные языки, объектно-ориентированные языки. Этапы разработки программного обеспечения. Жизненный цикл программного продукта. Характеристики разрабатываемой программы. Основные принципы обработки команд программы исполнителем (компьютером). Организация ЭВМ. Принципы построения ЭВМ, машина Фон Неймана. Раздел 2 Понятие Данные. Понятие данные, информация. Свойства информации. Представление данных разного типа в компьютере: целочисленные данные и числа с плавающей точкой, строки фиксированной и переменной длины, символы, логические значения, даты. Различные варианты кодировки символов. Сравнение данных разных типов. Системы счисления. Общие понятия и конкретные системы: десятичная, двоичная, шестнадцатеричная, восьмеричная. Правила перевода числа из одной системы в другую. Устройство памяти. Адресация. Понятие переменная. Объявление (декларация) и инициализация переменных. Правила именования. Раздел 3 Понятие Программа. Понятие программа, алгоритм, исполнитель. Типы программного обеспечения: системное, прикладное, инструментальное (средства разработчика). Трехуровневая модель программного продукта. Свойства алгоритмов. Формы представления алгоритмов: естественный язык, блоксхема, формальный язык. Составление блок-схем алгоритмов. Иерархическая организация программы, модульность. Область видимости и время жизни. Секции программного модуля. Понятия транслятор, компилятор, интерпретатор. Статическая и динамическая компиляция. Раздел 4 Понятие Интерфейс. Варианты интерфейсов: UI, GUI и др. Важность правильной разработки интерфейса. Различные методы построения диалога с пользователем. Раздел 5 Язык программирования. Переменные. Состав и структура языка программирования. Понятия алфавита, синтаксиса и семантики. Комментарии. Переменные. Определение имени переменной. Объявление переменной. Инициализация переменной по умолчанию и из кода. Область видимости и время жизни переменных. Затенение имен. Оператор присваивания. Типы переменных. Преобразование типов явное и неявное. Стандартные операции с переменными. Константы. Указатель или ссылка на переменную. Раздел 6 Язык программирования. Операторы. Понятие оператора. Запись операторов. Многострочные операторы, понятие блока. Оператор условия. Составления условия: сравнение числовых значений, дат, строковых и логических значения. Составление сложных условий: использование логических операций OR, AND, XOR, NOT. Приоритет операций. Вложенные операторы. Оптимизация условий. Оператор выбора. Оптимизация оператора выбора. Оператор цикла: циклы с предусловием, с постусловием, с параметром. Цикл для обхода элементов группы. Понятия: тело цикла, условие цикла, счетчик, итерация. Использование счетчика цикла. Оператор досрочного выхода из цикла. Раздел 7 Процедуры и функции. Декомпозиция задачи на подзадачи. Программирование сверху вниз и снизу вверх. Парадигма черного ящика. Входные и выходные данные подпрограммы. Понятия подпрограмма, процедура, функция. Процедуры стандартные, пользовательские, обработки событий. Описание, объявление, вызов процедуры. Библиотеки функций. Вызов процедуры и функции. Аргументы формальные и фактические. Тип аргумента. Передача аргументов по значению и по ссылке. Значение, возвращаемой функцией. Способы взаимодействия различных фрагментов программы. Структурная декомпозиция. Раздел 8 Способы организации данных. Роль организации данных в программе. Понятие массива. Массивы одномерные и многомерные. Понятие индекса и элемента массива. Подсчет объема памяти занимаемой массивом. Типовые задачи с массивами: доступ к элементу, обход элементов, инициализация элементов. Представление текстовой информации. Понятие строка. Различные способы организации строковых данных. Работа с отдельными символами. Наиболее употребительные функции для работы со строками. Пользовательский тип данных (структура). Объявление и использование пользовательского типа. Совместное использование пользовательских типов данных и массивов. Применение списков и файлов. Однонаправленный, двунаправленный, кольцевой списки. Организация стеков различных типов. Раздел 9 Решение общих алгоритмических задач. Поиск элемента в массиве: линейный, двоичный и интерполяционные алгоритмы. Поиск наибольшего и наименьшего элемента в массиве. Различные способы сортировки элементов массива: метод прямого выбора, метод вставки, пузырьковая сортировка. Оценка сложности алгоритма и сравнение алгоритмов. Алгоритмы работы со строками. Разбиение и объединение строк, поиск и извлечение подстроки, удаление подстроки, синтаксический анализ текста. Рекурсивные и итерационные алгоритмы. Рекурсивные математические функции на примере вычисления факториала. Раздел 10 Объектно-ориентированное программирование. Преимущества применения объектно-ориентированного подхода в программировании. Понятия класс, объект, свойство, метод, событие. Основные характерные черты объектно-ориентированного подхода (обзорно): инкапсуляция, наследование, полиморфизм.