informatics101

Методичка для первого курса, второй семестр, радиотехнических специальностей.

Язык на котором ведется изложение - С (консольные программы) Выбранный инструмент - Микрософт Визуал С 2008 Экспресс (бесплатный) русский (потому что 1)все равно 2) бесплатный 3) русская оболочка )

29 06 2009, Tish: По поводу инструмента. Прохожу встроенный туториал. Создание консольного приложения, отладка... Все как по писанному. Дошли до Развертывание программы (C++). Болт - нет пункта в меню. Проблема с русской версией: не знаю что смотреть в Интернете! Поискал поискал... Русскоязычные форумы почти пустые. Как переключиться в англоязычный? Просто поиском по МСДН... Нашел на форумах: Короче, нет там этого куска. Хуже того - даже если EXEшник сделать то на другой машине он не запустится (даже с установленными NET framework) (я так понял, но надо попробовать) Можем ли мы без этого жить? Есть какие то танцы с бубном вместо этого [|How to: Deploy using XCopy] Нужны ли нам дополнительные танцы? Подробнее почитайте тут - чего там нет и для чего оно НЕ подходит. [|VC++ Novice: What's the Visual C++ Express Edition?] (типа "при использованиее в учебном процессе готовьтесь к проблемам", список в тексте) В связи с этим - надо ли оно нам или поищем чего нибудь менее капризное?

Участники - МАТ, ТИГ и Тиш (Tish)

Рабочее название

Основы алгоритмизации
=Структура= (ай много написалось!)
 * 1) Описание языка
 * в минимальном объеме "только чтоб работало", на уровне "поверьте мне на слово, так лучше". За подробностями - в лекции и литературу.
 * 1) Структура С программы. Пример программы типа "Здравствуй, дерево". Чувствительность к регистру, точки с запятой, скобки и операторные скобки.
 * 2) все переменные необх объявлять, =>Типы данных (хотя бы какими пользуемся. То есть int long double char void и строка )
 * 3) Подключение библиотек (заголовочных файлов) - вв/выв и математика. Запись выражений, с граблями (деление нацело, переполн целого)
 * 4) Пример программы с вводом - выводом. Подробнее о форматном выводе printf. О указателях в scanf.
 * 5) Операторы управления - ветвление
 * 6) Циклы
 * 7) Массивы
 * 8) Ф-ции. Обр вн на использование указателя чтоб передать значение (брр)
 * 9) Использование указателя на ф-цию - использование QSORT
 * 10) Работа со строками
 * 11) Работа с последов. файлами


 * 1) Примеры
 * разобранные все?? 10 лабораторных работ, на уровне достаточном чтоб разобраться без лекции
 * для каждой работы:
 * 1) достаточные элементы теории (?? - или это надо дать в части Описание языка, а здесь дать ссылку на нужные пункты)
 * 2) постановка задачи
 * 3) для тех где надо - блок схема (еще не придумали каким инструментом, но лучше бы бесплатным и конечно векторным)
 * 4) программа на С
 * 5) Задания
 * таблицы с индивидуальными заданиями. Штук по 20 минимум (а может и больше, если хватит пороху)
 * 1) Приложения
 * все что не влезло в описание но хочется упомянуть ;))
 * 1) Структура стандартной библиотеки АКА "что где искать"
 * 2) стандартные (используемые) ф-ции
 * 3) стандартные грабли при записи арифм выражений

=Примерный список лабораторных работ:= ( 0.) Работа "Здравствуй дерево" - структура программы, подключение заголовочного файла, описание переменных, ввод/вывод - и вообще набрать программу и заставить ее работать в используемой оболочке
 * 1) Развтвления
 * пара вариантов, один - типа графическое задание фции или геометрич задача на попадание точки в область
 * второй - на множественный выбор (switch)
 * 1) Табулирование функций одной переменной
 * туда же идет все про набор формул и хитрости (и грабли) с ними связанные
 * плюс элементарные операции в цикле - сумма, произв, среднее, счетчик, мин, макс
 * 1) Массив
 * Комбинированные операции в цикле - результат получается как, скажем, отношение величин которые надо вычислить отдельно,
 * причем вычисление величин - это элементарная операция в цикле, но по массиву с наложенным фильтром (типа "только отрицательные")
 * (Итого задание выглядит примерно как найти "отношение суммы отрицательных к наименьшему положительному")
 * 1) Табулирование функций двух переменных
 * здесь усложненные варианты типа найти "сумму для каждого Х" или "наименьшее для каждого Y"
 * 1) Матрица
 * здесь работа с элементами матрицы - строками, диагоналями, треугольниками
 * 1) Подпрограммы1
 * (~)подпрограмма табулирует ф-цию, мы вызываем ее три раза
 * 1) Подпрограммы2
 * Подпрограмма обрабатывающая массивы (?) - мин, макс, сумма, произв. Задача с точками.
 * 1) Строки
 * 2) Сортировки (сдвинуто после строк чтоб можно было разнообразить задания)
 * сортировка пузырьком, выбором и использование библиотечного QSORT'а
 * 1) Работа с файлами (возможно будет полуобязательным заданием, для "продвинутых")
 * с последовательными файлами, как с текстом. Варианты:
 * ввод и обработка массива (расчет)
 * ввод и обработка массива (сортировка)
 * ввод и обработка текста (...)

НЕПОНЯТНО
куда девать вещи, ктоторые знать надо, но к лабораторкам которые не привязаны, в частности: (не уверен что сам это понимаю, и студентам на 1м курсе это не надо точно. А надо будет наверно в 4м семестре, на моделировании)
 * более полное изложение типов. Включая беззнаковость и создание структур.
 * указатели (а какой это С без указателей?) Хотя, оно им надо?
 * Операторы (есть подозрение что все давать не стоит, всякий там битовый сдвиг)
 * идиомы языка (ясно что "i++" объяснить надо, не ясно когда)
 * разбиение программы на отдельные единицы компиляции, видимость переменных, external и static