- •Bведение
- •1. Основы языка Basic
- •1.1. Основные структуры
- •1.2. Операторы ввода, вывода, позиционирования
- •1.3. Числа
- •1.4. Строки
- •1.5. Операторы def, dim, пользовательский тип
- •1.6. Разветвление и альтернатива
- •1.7. Циклы
- •If k then print "пароль принят" else print "ошибка пароля"
- •Input "Введите произвольный текст : ", txt
- •Input X
- •1.8. Программные стэки
- •1.9. Массивы
- •If I and jb then
- •Input n
- •1.10. Функции, подпрограммы
- •1.11. Файлы
- •1.12. Сегментирование программы
- •Input n
- •1.13. Работа с графической информацией
- •If nu then gosub Move 'перемещение рисунка
- •1.14. Звуковое воспроизведение
- •2. Элементы vba
- •2.1. Типы переменных
- •2.2. Использование массивов
- •2.3. Разветвление и циклы
- •2.4. Работа с ячейками листа
- •If y X Then
- •If Check Then
- •2.5. Элементы управления
- •If X 0 Then
- •2.6. Пользовательские классы
- •If IsEmpty(Text2) Then Exit Sub
- •2.7. Построение графиков в excel
- •2.8. Построение графиков и таблиц в word
- •3. Ключи в word
- •4. Гипертекстовая разметка
- •4.1. Основные тэги html
- •4.2. Форматирование таблиц
- •4.3. Фреймы
- •5. Основы программирования в среде MathCad
- •5.1. Особенности языка MathCad
- •5.2. Некоторые вычислительные модели
- •5.2.1. Системы уравнений
- •5.2.1.1. Системы линейных уравнений
- •Iter(a, b, e) n Last (b)
- •5.2.1.2. Нелинейные уравнения и системы
- •5.2.2. Определенный интеграл
- •5.2.3. Функции на дискретном множестве
- •5.2.4. Обыкновенные дифференциальные уравнения
- •5.2.5. Минимизация функций
- •5.2.5.1. Функции одной переменной
- •5.2.5.2. Функции многих переменных
- •5.2.6. Pазностная модель и прогноз
- •1 Otherwise (коэффициенты непрерывной модели)
- •5.2.7. Сглаживание и осреднение рядов
- •Задания
- •Литература
КАЛИНИНГРАДСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ
УНИВЕРСИТЕТ
И.А. Пахнутов
ОСНОВЫ ИНФОРМАТИКИ
с элементами
программирования
Учебно-методическое пособие для студентов
младших курсов высших учебных заведений
Калининград
Издательство КГТУ
2004
УДК 519.85:681.3.06(075)
УТВЕРЖДЕНО
Ректором Калининградского
государственного технического
университета 26 февраля 2004 г
АВТОР - Пахнутов И.А., к. ф.-м. н., доцент кафедры прикладной
математики Калининградского государственного техниче-
ского университета
Учебно-методическое пособие содержит основной материал для проведения учебных (как лекционных, так и лабораторных) занятий по курсу "Информатика", предназначено студентам младших курсов тех-нических вузов и университетов. Материал курса расчитан на два се-местра аудиторной работы и включает некоторые разделы информаци-онных технологий. Материал пособия предполагает знакомство с базо-выми понятиями предмета в объеме стандартной школьной програм-мы по информатике.
Учебно-методическое пособие рассмотрено и одобрено кафедрой прикладной математики Калининградского государственного техниче-ского университета 20 февраля 2004 г., протокол № 7
Учебно-методическое пособие рекомендоваано к изданию методичес-ким советом факультета фундаментальной подготовки 19 октября 2004 г., протокол № 2.
РЕЦЕНЗЕНТ - кафедра прикладной математики и кафедра высшей
математики Калининградского государственного
технического университета
© Калининградский государственный технический университет, 2004 г.
Bведение
Интеллектуальный и технический бум конца ХIХ - начала ХХ века породил массу новых разделов наук, так и новых наук вообще. При этом резко проявилась тенденция ученых к получению фундаменталь-ных знаний, основ, базиса, попытки найти основные кирпичики зна-ния, на которых строится (уже вследствие логики) все существующее здание науки. Нарастал информационный бум. И в этом также следо-вало разобраться. Что такое информация ? Это, скорей всего, сообще-ние об изменениях в окружающей обстановке, т.е. должен быть носи-тель информации (сообщения), источник, передатчик, приемник инфо-рмации, канал связи и т.д. Важна сравнительная оценка новизны: если не сообщается ни о каких изменениях (как было, так и есть), то не пе-редается никакой информации (хотя все этапы передачи работают).
Логики выяснили, что, в принципе, любую информацию можно получить, задавая "элементарные" вопросы, на которые достаточно от-вечать лишь "да" или "нет". Каждый такой вопрос позволяет получить минимальный объем информации, называемый битом. Наименьшее количество элементарных вопросов, позволяющее получить необходи-мую информацию, определяет объем этой информации в битах. Нап-ример, чтобы угадать любое из первых 16 натуральных чисел, доста-точно задать лишь четыре элементарных вопроса типа: "будет ли чис-ло меньше 9?". Если "нет", то "будет ли число меньше 13?" и т.д. Та-ким образом, информация о числах в этом диапазоне имеет объем 4 бит. Аналогично можно оценить объем информации о буквах, словах, цве-те, картине, поэтическом произведении и т.д.
Каждый элементарный ответ можно обозначить цифрой 0 или 1 для "нет" и "да" соответственно. Поэтому произвольную информацию можно записать последовательностью нулей и единиц, а количество занятых при этом разрядов определяет количество бит информации. Всякое целое число также представляется последовательностью нулей и единиц в соответствии с тем, есть ли в представлении этого числа необходимая степень двойки. Например, число 27 можно записать в этих терминах так:
27 = 16 + 8 + 2 + 1 = 124 + 123 + 022 + 121 + 120 ,
последовательность коэффициентов этого двоичного представления есть 11011, что и является представлением числа 27 в системе счис-ления с основанием 2. Информация о таком числе имеет объем 5 бит.
Общее число символов, используемых в повседневной практике европейца, обычно не превосходит 256, что имеет объем 8 бит. В силу
этого, либо в силу того, что первоначальные устройства обработки ин-формации работали с восемью разрядами нулей и единиц, этот объем получил отдельное название "байт", так что байт это 8 бит. В дальней-шем объем информации возрастал быстрыми темпами, так что приш-лось пользоваться единицей в 1К=1024 байт = 210 байт (килобайт), далее, в 1М = 220 (мегабайт), а также десятки, сотни и тысячи мегабайт (гигабайты).
Итак, каждое число можно заменить последовательностью ну-лей и единиц. Это дало мощный толчок к исследованию основ ариф-метических и логических операций, теории алгорифмов. Было показа-но, что алгоритмически всякое арифметическое действие сводится к последовательности логических операций над нулями и единицами и сдвигу регистра (т.е. фиксированного набора нулей и единиц). Пост и Тьюринг (США и Англия) сконструировали формально-логическую структуру, выполняющую простейший набор логических операций, в которой (привлекая теорию алгорифмов и формальных машин) можно запрограммировать любую арифметическую и логическую операцию (программы, правда, могли быть довольно длинными). К 30-м годам 20 века технология была развита достаточно для того, чтобы простей-шие операции (типа тех, что рассматривали Пост и Тьюринг) можно было легко реализовать в электронных схемах (ноль соответствует от-сутствию потенциала, единица - его наличию). Тем не менее, лишь в 40-х годах были созданы первые электронные вычислительные маши-ны (ЭВМ), которые могли выполнять около тысячи арифметических операций в секунду. Позже согласились с тем, что поскольку прос-тейшая логическая операция выполняется за один такт генератора ча-стоты ЭВМ, быстродействие машины можно оценивать частотой этого тактового генератора.
В конце 50-х годов к изготовлению блоков ЭВМ стали привле-кать полупроводники, а в конце 60-х и микросхемы. Физический объ-ем ЭВМ значительно уменьшился (при увеличившемся объеме посто-янной и оперативной памяти). В начале 80-х годов ЭВМ уже начали изготавливать на основе целых интегральных блоков – больших инте-гральных схем (БИС), что позволило создать компактные ЭВМ и пер-сональные ЭВМ. Тактовая частота таких устройств уже превосходила 500 мегагерц (5108 герц). При этом обрабатываемая информационная плотность = объем оперативной памяти на 1 см3 вычислительного устройства росла очень быстро (похоже, экспоненциально), такие же темпы сохраняются и сейчас, так что предсказание очередного этапа развития компьютерной технологии весьма затруднительно.
С точки зрения программного обеспечения прогресс происходил не менее быстро. На первых этапах при невысокой производительнос-ти ЭВМ нужно было дефицитную память использовать лишь на кон-
кретные нужды потребителя, так что приходилось программировать решение задач непосредственно в терминах машинных приказов. По-степенно оказалось возможным часть выросшей памяти отдать под разного рода "благоустройства". Появился язык команд и макроко-манд Ассемблер и Макроассемблер. Появились языки программирова-ния, позволяющие отдавать приказы машине в терминах, близких к логической структуре решения задачи и к естественному алгоритму (Фортран, Лисп, Кобол, Алгол, и т.д.), а соответствующие транслято-ры, переводя алгоритмы с языка программирования на язык кодов, не-посредственно доступных процессору ЭВМ, создавали довольно при-личные исполняющие программы, близкие к тому, что могли бы соз-дать программисты непосредственно. Оказалось возможным создать языки, позволяющие интерпретировать каждый приказ прямо в кодах ЭВМ (Бейсик и расширения), а также глубоко структурированные языки, имеющие вначале чисто учебную цель развитые в дальнейшем до профессионального уровня (Паскаль), и приспособленные для раз-личных целей системного программирования (Си, Си++ и др.) . Поя-вилась тенденция создавать программное обеспечение ЭВМ в части его взаимодействия с пользователем (интерфейс) так, чтобы от пользо-вателя требовались лишь минимальные знания в области информаци-онной культуры и практически нулевые в области программирования, при этом всякое нажатие клавиши, щелчок кнопкой "мыши", сопрово-ждается подсказкой, соответствующей строкой меню, звуковым сиг-налом и т.д., так что в некоторых случаях (к сожалению многих) уме-ние ориентироваться в этих окнах – подсказках принимается за инфор-мационную грамотность. Для будущих инженеров, экономистов и спе-циалистов других отраслей знания необходимо больше. Во-первых, никакой набор инструментальных средств не может быть универсаль-ным и всегда в практической деятельности может появиться проблема, которую (пусть с помощью компьютера) следует решать некоторым специальным образом с привлечением доступных средств программи-рования. Во-вторых, процесс использования алгоритмических языков и других средств программирования вынуждает человека к творчест-ву, активизирует умственную деятельность, "упорядочивает мозги" и с учебной целью (по крайней мере) обучение программированию весьма полезно.
В качестве начального этапа создания какой-либо программы следует назвать составление блок-схемы задачи. Эта операция помога-ет разобраться в постановке задачи и выделить основные этапы ее ре-шения. Каждый элемент блок-схемы при достаточной его очевидности может быть записан алгоритмически в каком-нибудь языке програм-мирования. В противном случае этот элемент можно представить от-дельной блок-схемой (детализация), доводя до уровня подробности, на
котором возможно программирование. Например, рассмотрим алго-ритм Эвклида нахождения наибольшего общего делителя двух много-членов: многочлен большей степени делим на другой и если остаток от деления равен нулю, то наибольший делитель найден, в противном случае многочлен-делитель делим на остаток и т.д. Блок-схему можно представить в следующем виде (см. рис. 1):
Теперь осталось позаботиться о представлении исходной информации и программировании отдельных блоков, выбрав подходящую среду программирования.
На начальном этапе обучения информатике полезно познакоми-ться с одним из наиболее простых языков программирования. Здесь будет взят для этой цели BASIC. Хотя изначально для этой цели пред-назначался PASCAL, однако, позднее он расширился по сравнению с оригинальной версией Н. Вирта до весьма структурированного про-фессионального языка программирования, приспособленного к работе в современных программных оболочках (Delphi). BASIC ( Beginner’s All-purpose Symbolic Instruction Code – язык программирования обще-го назначения для начинающих) структурно проще, тем не менее, он также имеет Visual – расширение, входит в состав программных обо-лочек Word, Excel, Acsess и др. Кроме того, некоторые средства функ-ционального и символьного программирования (MATHCAD, MAPLE и др.) весьма сходны по своей конструкции с тем, что можно найти в Бейсике и легко усваиваются на основе последнего. Поэтому струк-турно курс состоит из трех частей:
1) основы алгоритмического языка БЕЙСИК;
2) введение в Visual Basic и HTML, программирование приложений;
3) программная среда Мсad и введение в численный анализ.