Информатика (Pascal) I, II семестр
Программа практических занятий по курсу: "Информатика" (Pascal I-семестр)
Учебник по информатике: http://dssp.karelia.ru/web/tutorials.shtml
Занятие N1
Работа в Microsoft Word (текстовый редактор)
1) Компьютер, общие сведения. Устройство компьютера, материнская плата, процессор, память, клавиатура мышь, монитор.
2) Правила по работе с компьютерами в компьютерном классе.
3) Работа в операционной системе Windows, интерфейс, "Рабочий стол", запуск программ. Работа с файлами в Windows (выбрать диск, отметить файл(ы), копировать, поиск, посмотреть, редактировать).
4) Найти на дисках папку User, Users, Student или Students и создать в ней папку с номером группы и подгруппы.
Все рабочие файлы сохранять только в этой папке!
5) Открыть Microsoft Word и написать информацию о себе:
Номер компьютера
ФИО
Специальность
Номер группы (21106)
Исправить поля так, чтобы правое поле было 1см, остальные 2см.
Сохранить документ с именем равным номеру компьютера.
6) Создать Tаблицу 1 с помощью табуляторов:
Tаблица 1
Столбец 1 Столбец 2 Столбец 3 Столбец 4
A 1 2 3
B 2 3 4
C 3 4 5
7) Создать Tаблицу 2 стандартными средствами Word:
Tаблица 2
Столбец 1 | Столбец 2 | Столбец 3 | Столбец 4 |
A | 1 | 2 | 3 |
B | 2 | 3 | 4 |
C | 3 | 4 | 5 |
8) Вставить любой рисунок (Вставка/Рисунок/[Картинки:/Из файла:]), изменить формат рисунка, растянуть, уменьшить рисунок.
9) Вставить формулу (Вставка/Объект/Microsoft Equation 3.0) , убрать галочку Поверх текста:
Работа в Microsoft Excel (электронные таблицы)
1) Электронные таблицы необходимы при обработке больших массивов данных.
Ячейки в Excel нумеруются, как (имя столбца, номер строки)
Например: A1, F12
Выделение ячеек делается мышью или курсором (Shift + стрелки).
2) Устанавливаем в ячейку A1 - значение 1, выделяем мышью с ячейки A1 по ячейку A23, далее:
Правка/Заполнить/Вниз (происходит заполнение 1)
выделяем мышью с ячейки A1 по ячейку A23, далее:
Правка/Заполнить/Прогрессия/По столбцам, арифметическая, шаг 1 (происходит заполнение от 1 до 23)
3) Предположим в столбце B мы хотим получить квадрат чисел столбца A:
Устанавливаем курсор в ячейку B1, нажимаем = (или Вставка/Функция), выбираем функцию СТЕПЕНЬ() указываем над какой ячейкой делать операцию (устанавливаем курсор на клетку A1), степень указываем 2
скопируем формулу в ячейке B1 - Ctrl+Insert
вставляем формулу в ячейку B2 - Shift+Insert
выделяем ячейки с B3 по B23 и копируем туда формулы - Shift+Insert
скопируем формулу в ячейке B1 - Ctrl+Insert
вставляем формулу в ячейку C1 - Shift+Insert
выделяем ячейки с C2 по C23 и копируем туда формулы - Shift+Insert
заменим СТЕПЕНЬ(B1;2), в ячейке C1 на СТЕПЕНЬ($A$1,2)
СТЕПЕНЬ(A1,2) - A1 - это относительная ссылка
СТЕПЕНЬ($A$1,2) - $A$1 - это абсолютная ссылка
скопируем формулу в ячейке C1 - Ctrl+Insert
выделяем ячейки с D1 по D23 и копируем туда формулы - Shift+Insert
4) Построение графика:
Выделяем область данных с A1 по B23 и нажимаем иконку ДИАГРАММА (или Вставка/Диаграмма), выбираем "Точечная", Далее, Готово.
Если ткнуть мышкой на область графика, то можно увидеть выделенную область данных, по которым построен данный график.
5) Перенос данных из текстового файла:
Создаем текстовый файл (Far - Shift+F4), имя например: data.txt - 1-й столбец - значения от 1 до 6, 2-ой столбец (отделяется от первого Tab'ом) - квадрат этих чисел, сохраняем, переходим в Excel.
Далее: Файл/Открыть/Текстовые файлы (выбираем наш файл data.txt - открыть).
Формат данных ставим С разделителями, Далее, Символом-разделителем является - поставить галочку напротив Символ табуляции, Далее, Формат данных столбца - выбираем общий.
6) Задание 1: построить график этих данных - зависимости первого столбца, от второго.
7) Задание 2: заполнить ячейки с B1 по B21, значениями от 0 до 20, в столбце С получить COS от этих значений,
построить график зависимости значений в столбце В, от значений в столбце С (для этого в Диаграмме нужно заменить Ряды данных).
Графический редактор Paint
1) Панель редактирования (Набор инструментов) изображения: Карандаш, Выделение, Ластик/Цветной ластик, Заливка, Масштаб, Кисть, Линия, Прямоугольник, Эллипс.
2) Изменение параметров: Меню/Рисунок: Отразить/повернуть... , Растянуть/наклонить... , Обратить цвета.
Занятие N2
Работа в оболочке: Norton Commander (на примере программы FAR)
1) Запустить программу Far
выбрать диск: Alt + F1, Alt + F2
создать директорию (папку) F7
создать файл: Shift + F4
посмотреть: F3
редактировать: F4
отметить файл(ы): Insert
копировать отмеченные файлы (или файл под курсором): F5
переименовать: Shift + F6
сменить кодировку: Shift + F8 (или F8)
окно вывода Ctrl + O
удаление директории (папки) F8
поиск файлов (содержания): Alt + F7
2) Операции с блоками в FAR (в Turbo Pascal - тоже самое)
Написать небольшой текст (3 - строчки) на английском:
Курсор в начало строки: Home
Курсор в конец строки: End
Выделение блока: Shift + стрелки (клавиши управления курсором)
Выделение блока до конца строки: Shift + End
Выделение блока от начала строки: Shift + Home
Копирование выделенного блока: Ctrl + Insert
Вставка скопированного блока: Shift + Insert
Удаление выделенного блока: Shift + Delete
Работа в командной строке (DOS). Архиваторы.
3) Операционные системы: DOS, OS/2, Windows NT/95/98/ME/2000/XP/VISTA, UNIX/Linux - хар-ки и отличия.
4) Работа в командной строке, команды:
DIR - вывод списка файлов и подпапок из указанной папки
CD - смена текущей папки
MD - создание папки
RMDIR - удаление папки
REN - переименование файлов и папок
DEL - удаление одного или нескольких файлов
ECHO - вывод сообщений и переключение режима отображения команд на экране
VER - вывод сведений о версии DOS, Windows
SET - вывод, установка и удаление переменных среды
COPY - копирование одного или нескольких файлов в другое место
Примеры:
MD D:\VC
SET NEWVAR=VALUE
COPY /B A:\VC\*.* D:\VC
RMDIR D:\VC
REN *.TXT *.BAK
DEL *.BAK
5) Архиваторы: pkzip.exe, pkunzip.exe, WinZip, RAR.exe, WinRAR.
Примеры: заархивировать в FAR - Shift+F1.
pkzip.exe archive.zip data.txt - заархивировать файл data.txt
pkunzip.exe archive.zip data.txt - разархивир. файл data.txt (если не указыв. файл (data.txt), то разархив. все файлы)
rar.exe a archive.rar data.txt - заархивировать файл data.txt
rar.exe x archive.rar data.txt - разархивировать файл data.txt
6) Открыть Internet Explorer, Mozilla Firefox или Opera в поле Адрес ввести: www.rambler.ru , в окне, в поле Поиск ввести: "киисифэ".
Поисковые сайты:
www.rambler.ru, www.ya.ru, www.google.com, www.yahoo.ru
Учебники по информатике: http://dssp.karelia.ru/web/tutorials.shtml
Занятие N3
Введение в язык программирования Pascal
1. Запуск Pascal (сделать поиск файла: turbo.exe), создание окна с новой программой: F10, а затем File\NEW.
2. Структура языка Pascal - по примеру ниже.
3. Основные типы переменных в Pascal: Integer (целый), Real (дробный, с плавающей точкой), Boolean ( True (Истина), False (Ложь) ), String (строковый - набор символов). Описание констант, новых типов, переменных - по примеру, ниже. Объявление массива: Var Ar:Array[3..86] of Real;
4. Как начинается и заканчивается программа: Begin ... End.
5. Присваивание: X:=40, ввод с клавиатуры: readln(x), вывод на экран: write(x).
6. Несколько операторов помещаются внутрь следующей конструкции: Begin ... End (логические скобки в Pascal), операторы отделяются ";".
7. Как и зачем подключаются модули. Часто используемые модули Crt и Graph.
ClrScr - очистка экрана {модуль CRT}.
8. Условия в Pascal: If условие Then ... Else ...
условия можно объединять с помощью логических конструкций - OR ("ИЛИ") или AND ("И").
Пример: If (a>b) AND (x>10) Then WriteLn('a>b и x>10');
9. Цикл FOR.
10. {Комментарий внутри этих скобок}
11. Правила оформления программ - смотреть на: zed.karelia.ru (/Студентам/Оформление программ/Правила)
http://zed.karelia.ru/go.to/for.students/coding.rules/rules
12. Работа в оболочке Turbo (Borland) Pascal:
F10 - выход в Menu
Ctrl+F1 - помощь по текущей команде (Help - русский)
Ctrl+F9 - компиляция и запуск программы
Break, Ctrl+Break или Ctrl+C(во Free Pascal) - прервать программу
Alt+F5 - посмотреть окно вывода
Редактирование такое же, как и в Бейсике.
13. Отличие языка Pascal от QBasic:
Операции | Pascal | QBasic |
Присвоение значения к переменной | A:=15; X:='Hello!'; | A=15: X$="Hello!" |
Объявление массива | Var Arr:Array[0..99] of Real; | DIM ARR(100) |
Присвоение значения к элементу массива | Arr[3]:=5; | ARR(3)=5 |
Вывод на экран | WriteLn('Hello!',X); | PRINT "Hello!",X |
Ввод с клавиатуры | ReadLn(n); | INPUT N |
Цикл For | For I:=1 To 10 Do оператор | FOR I=1 TO 10 оператор NEXT I |
Очистка экрана | ClrScr; | CLS |
Вывод текста в указанную позицию | GotoXY(X,Y); Write('Hello!'); | LOCATE Y,X: PRINT "Hello!" |
Получить символ нажатой клавиши | If KeyPressed Then Ch:=ReadKey Else Ch:='' | CH=INKEY$ |
Примеры:
Program Ex3_WriteLn_ReadLn;
Uses Crt, Graph;
Type MAS=Array[1..100] Of Integer;
Const X=40; Y=14; St='Hello!';
Var A,I:Integer;
R:Real;
MS:MAS;
Begin
ClrScr;
WriteLn('Hello Student! ',St);
Write(Y,';');WriteLn(X);
ReadLn(A);
Write(A);
End.
For...To, For...DownTo (зарезервированные слова)
Оператор For вызывает оператор, находящийся после слова Do, по одному разу для каждого значения в диапазоне от начального до конечного значений.
For переменная:=начальное To (или DownTo для уменьшения) конечное Do оператор
Program Ex3_For;
Var I:Integer;
MS:Array[1..100] Of Integer;
Begin
WriteLn('Vvedite chisla:');
For I:=1 To 5 Do ReadLn(MS[I]);
WriteLn('Chisla:');
For I:=1 To 5 Do WriteLn(MS[I]);
ReadLn
End.
Задание N1:
Подсчитать корни квадратного уравнения, с проверкой на существование корней и на существование только одного корня, соответственно вывести результат.
Задание N2:
Произвести сортировку чисел в массиве, расставив их по возрастанию. Результат вывести на экран.
Занятие N4
Трассировка программ:
Меню Debug:
Add breakpoint... - добавить точку останова программы (Breakpoint во Free Pascal)
Breakpoints - выдает список установленных точек останова (Breakpoint List во Free Pascal)
Evaluate/Modify... - Ctrl+F4 - вычислить/изменить значения (можно наблюдать за значениями
переменных, изменять их значения и вычислять выражения с несколькими переменными)
Add watch... - Ctrl+F7 - добавление переменных для наблюдения в отдельном окне наблюдений
Горячие клавиши для трассировки:
F7 - Trace - трассировка со входом в функции и процедуры
F8 - Step - трассировка с пропуском функций и процедур
Ctrl+F2 - сброс трассировки
Задание N3:
Изменить программу, выполненную по заданию N1 так, чтобы она вводила указанное количество коэффициентов a, b и c, и лишь после этого выполняла расчеты корней квадратного уравнения и выводила результаты. Результаты выводить на экран в виде таблицы. В первом столбце таблицы значения X1, во втором X2, если корней нет, то написать в соответствующей строчке: "Корней нет".
Задание N4:
Изменить программу, выполненную по заданию N3 так, чтобы при выводе результаты были отсортированы по возрастанию значения X1. Решения, у которых нет корней, должны быть выведены в конце таблицы.
Занятие N5
Оформление отчетов в Microsoft Word
1) Ссылки по правилам оформления отчетов:
http://dfe.karelia.ru/koi/teaching/rules.html
http://dfe.karelia.ru/koi/teaching/soft_rules.html
2) Структура отчета:
Титульный лист
Содержание
Введение
1. Глава такая-то.
2. Глава вот такая.
2.1. Подглава вот такая.
...
Заключение
Список использованных источников
Приложение А
Приложение Б
...
3) Основные моменты при оформлении отчетов:
- "Титульный лист" оформляется по правилам оформления отчетов;
- в "Содержании", отдельно в каждой строчке, указываются все разделы отчета и номера страниц на которых они расположены;
- во "Введении" излагается цель и назначение работы, обосновывается ее актуальность, дается оценка современного состояния решаемой проблемы, указывается на возможные области внедрения;
- в тексте, все рисунки, таблицы и формулы должны быть пронумерованы;
- в "Заключении" кратко излагаются основные результаты работы, оценивается степень достижения поставленной цели. Могут даваться рекомендации по дальнейшему развитию работы и возможным применениям полученных результатов. Из "Заключения" читатель должен увидеть объем проделанной работы и ее ценность;
- в "Приложения" выносятся громоздкие по объему материалы, наличие которых в основном тексте затруднило бы его восприятие:
- таблицы промежуточных результатов и других вспомогательных данных,
- рисунки, если количество их велико,
- подробные электрические схемы, блок-схемы (примеры, основные элементы схем алгоритма),
- тексты и описания программ для ЭВМ.
- правильно и в нужном месте расставить номера страниц;
- правильно установить поля.
Задание N5
Оформить отчет (по стандартам для оформления отчетов) по программе, сделанной по заданию N4, в программе Microsoft Word (сдавать в электронном виде, сохранять в формате совместимости Word 97-2003). В отчете обязательно должно быть описание программы, отдельных ее частей и т.д., а также представлена блок-схема программы и рисунки с изображением ее работы. Для оформления отчета дома необходимо отправить себе на почту все необходимое - текст программы, рисунки и т.д.
Занятие N6
Вывод в заданные координаты
GotoXY(X,Y); - помещение курсора в заданные координаты {модуль CRT}
GotoXY(X,Y); Write('Hello!'); - вывод текста в заданные координаты
Delay(1000); - задержка в ms {модуль CRT}
Пример:
Program Ex6_Helix;
Uses Crt;
Const X=40;Y=14;
Var I:Integer;
Begin
ClrScr;
For I:=0 To 200 Do
Begin
GotoXY(X+Round(Cos(I/9)*I/9),Y-Round(Sin(I/9)*I/15));
Write('*');
Delay(1000);
End;
ReadLn
End.
Задание N6:
Используя GotoXY(X,Y) для вывода текста в заданные координаты и с использованием циклов, нарисовать цифру, соответствующую номеру компьютера из "*", в заданных координатах.
Занятие N7
Операторы цикла
For...To, For...DownTo (зарезервированные слова)
Оператор For вызывает оператор, находящийся после слова Do, по одному разу для каждого значения в диапазоне от начального до конечного значений.
For переменная:=начальное To (или DownTo для уменьшения) конечное Do оператор
While условие выполнения цикла Do оператор
Оператор после Do будет выполняться до тех пор, пока булево выражением является истинным (True).
Repeat
операторы
...
Until условие выхода из цикла
Операторы между словами Repeat и Until повторяются до тех пор, пока булево выражение является Истинным (True).
ReadKey - функция приостанавливает выполнение программы, ожидая нажатия клавиши, читает символ из буфера клавиатуры, соответствующий нажатой клавише {модуль Crt}
KeyPressed - функция определяет, была ли нажата клавиша на клавиатуре (True - нажата, False - нет) {модуль Crt}
If KeyPressed Then Ch:=ReadKey - позволяет проверять на нажатую клавишу только в случае нажатия клавиши, иначе продолжается выполнение программы.
Примеры:
Program Ex7_While;
Uses Crt;
Var Ch:Char;
Begin
Ch:=Chr(0);
While Ch<>'j' Do
Begin
Ch:=ReadKey;
Write(Ch);
End
End.
Program Ex7_Repeat;
Uses Crt;
Var Ch:Char;
Begin
Repeat
Ch:=ReadKey;
Write(Ch);
Until Ch='j'
End.
Задание N7:
Используя еще один цикл заставить фигуру из задания N6 двигаться.
Задание N8:
Организовать движение фигуры из задания N6 по кругу с помощью циклов While или Repeat ... Until до нажатия клавиши, соответствующей номеру компьютера - при нажатии этой клавиши, должен происходить выход из программы. Для вычисления координат точки на окружности - использовать тригонометрические функции: Xi=R*COS(Ai), Yi=R*SIN(Ai) (где Ai это угол i-ой позиции точки, выраженный в радианах, а Xi,Yi, координаты этой точки).
Занятие N8
Работа со строками
Строки в Pascal имеют тип String и представляют из себя массив символов типа char, доступ к каждому из символов строки так же, как и к элементу массива, через [ ].
Пример:
Ch:=S[2]; {если S:='Hello!', то Ch='e'}
Str(X[:Width[:Decimals]]; var S:string) - Преобразовывает числовое значение X (Real, Integer) в строковое представление этого числа S. (Width - количество символов в результирующей строке, Decimals - количество знаков после запятой).
Пример:
Str(X:3:2,S);
Val(S; Var V; Var Er:Integer) - Преобразовывает строковое значение S в его числовое представление V.
S - переменная строкового типа. Должна представлять последовательность символов, формирующих число. V - результат - переменная типа Real или Integer. Er - код ошибки - переменная типа Integer.
Пример:
Val(S,V,Er);
Pos(Substr:String; S:String) - Ищет подстроку в строке.
Параметры Substr и S - строковые выражения. Pos ищет первое вхождение строки Substr в строку S и возвращает целочисленное значение, которое является индексом первого символа Substr внутри S. Если строка Substr не найдена, то Pos возвращает нуль.
Пример:
n:=Pos(SubStr,S); {если SubStr:='e', а S:='Hello!', то n=2}
Delete(Var S:String; Index:Integer; Count:Integer) - Удаляет из строки ее часть.
Параметр S - переменная со строковым типом. Index и Count - целочисленные выражения. Delete удаляет Count символов из строки S, начиная с позиции Index. Если значение Index больше, чем длина S, то никакие символы не удаляются. Если Count определяет большее количество символов, чем остается в строке с позиции Index до конца строки, то удаляется остаток строки.
Пример:
Delete(S,3,2); {если S:='Hello!', то в результате выполнения этой команды S='Heo!'}
Insert(SubStr:String; Var S:String; Index:Integer) - Вставляет подстроку SubStr в строку S.
Параметр S - исходная строка, SubStr - подстрока, вставляемая в строку S. Index - позиция, с которой подстрока SubStr вставляется в строку S. Если в результате строка длиннее 255-и символов, то она усекается до 255 символов.
Пример:
Insert('Student',S,4); {если S:='Hello!', то в результате выполнения команды S='HelStudentlo!'}
Copy(S:String; Index:Integer; Count:Integer) - Возвращает подстроку строки (копирует часть строки).
S - исходная строка, Index - позиция, с которой начинается копирование, Count - количество копируемых символов.
Пример:
S2:=Copy(S,2,4); {если S:='Student', то в результате выполнения команды S2='tude'}
Length(S : String) - Возвращает динамическую длину строки (количество символов в строке).
Пример:
n:=Length(S); {если S:='Hello!', то в результате выполнения команды n='6'}
GetTime(Var Hour, Minute, Second, Sec100 : Word) - возвращает текущее время, установленное в операционной системе (Unit DOS)
Пример:
GetTime(HH, MM, SS, S100); {параметры: HH, MM, SS, S100 - типа Word}
Объединение строк:
Пример:
S:=S1+' Student '+S2; {если S1:='Hello', а S2:='PetrSU!', то S='Hello Student PetrSU!'}
Задание N9:
Заменить все символы "," на ";" в заданной с клавиатуры строке. Результат вывести на экран.
Задание N10:
Используя операторы работы со строками, преобразовать время, полученное с помощью процедуры GetTime (Unit DOS) в строковую переменную в формате: "Текущее время: HH-часов, MM-минут, SS-секунд" и вывести значение этой переменной в заданные координаты на экран.
Задание N11:
Используя операторы работы со строками и вывода на экран текста в заданные координаты с помощью GotoXY, написать программу "бегущая строка". Строка вводится с клавиатуры и должна циклически двигаться справа налево.
II-семестр
Занятие N9
Подпрограммы. Процедуры и функции.
Procedure идентификатор(параметры);
Var описание локальных переменных;
Begin
End;
Function идентификатор(параметры):тип;
Var описание локальных переменных;
Begin
идентификатор:=результат;
End;
Пример:
Program Ex9_Procedure_Function;
Uses Crt;
Var R:Real;
n,X1,Y1:Integer;
Procedure WriteXY(Var X,Y:Integer;M:Real);
Begin
GotoXY(X,Y); Write(M);
X:=WhereX;
Y:=WhereY;
End;
Function XStepN(X:Real;N:Integer):Real;
Var I:Integer;
Y:Real;
Begin
Y:=1;
For I:=1 To N Do Y:=Y*X;
XStepN:=Y;
End;
Begin
X1:=1; Y1:=5;
R:=XStepN(3,4); WriteXY(X1,Y1,R);
R:=XStepN(2,3); WriteXY(X1,Y1,R);
End.
Задание N12:
Переделать задание N11 так, чтобы вращение "бегущей строки" (сдвиг на один символ) осуществлялось в подпрограмме. Пример вызова процедуры: ShiftStr(S) .
Задание N13:
Организовать подпрограммы рисующие цифры от '0' до '9' в заданных координатах (левый верхний угол цифры), в текстовом режиме (подобно заданию N6) и выполнить их вызов в основной программе так, чтобы получилось какое-то число. Пример вызова процедуры: Number0(X,Y); Number9(X,Y); .
Занятие N10
Оператор выбора Case
Оператор выбора Case состоит из выражения (селектора) и списка операторов, каждый из которых выполнится в определенном случае.
Case выражение Of
вариант: оператор;
...
вариант: оператор;
Else оператор
End
Часть "Else" является необязательной.
"вариант" состоит из одной или большего количества констант или диапазонов, разделенных запятыми.
Примеры:
Case Ch Of
'A'..'Z', 'a'..'z': WriteLn('Буква');
'0'..'9' : WriteLn('Цифра');
'+', '-', '*', '/': WriteLn('Оператор');
Else WriteLn('Специальный символ')
End;
Program Ex10_Case;
Uses Crt;
Var Ch:Char;
Begin
Repeat
Ch:=ReadKey;
Case Ord(Ch) Of
72:WriteLn('Вверх');
77:WriteLn('Вправо');
80:WriteLn('Вниз');
75:WriteLn('Влево');
End;
Until Ch='q'
End.
Задание N14:
Организовать подпрограмму, которой в качестве параметров подаются координаты вывода и строка, состоящая из цифр, которые нужно вывести. С помощью этой подпрограммы, используя оператор выбора Case, необходимо сделать вывод этой строки цифр, цифрами из задания N13. Пример вызова процедуры: BigNumb(X,Y,'60279431581'); .
Занятие N11
Генератор случайных чисел
Random(Range) - возвращает случайное число.
Если параметр Range не определен, то результатом будет случайное число типа Real в диапазоне 0 <= X < 1.
Если параметр Range определен, то результатом будет случайное число в диапазоне 0 <= X < Range.
Пример:
Write(Random);
Write(Random(100));
Randomize - Инициализирует встроенный генератор случайных чисел с произвольным значением (полученным из системных часов).
Задание N15:
Написать программу "Хранитель экрана". Организовать вывод текущего времени числами из задания N14, при этом необходимо добавить подпрограмму, выводящую разделитель часов, минут и секунд ":". Время должно периодически выводиться в произвольные координаты экрана. Выход из программы должен происходить при нажатии на любую клавишу.
Занятие N12
Работа с файлами
Assign(Fil, FileName); - процедура, назначает файловой переменной имя внешнего файла.
Параметр Fil - переменная файлового типа - File (например: File of Integer) или Text. Параметр FileName - тип String, состоит из пути и имени файла: Примеры имен файла: 'FileName.txt' или 'C:\BP\FileName.txt'.
Close(Fil); - закрывает ранее открытый файл.
Procedure Reset(Var Fil :File [; Recsize :Word]); - открывает существующий файл.
Параметр Fil - файловая переменная любого файлового типа - File (например: File of Integer) или Text.
Параметр RecSize - необязательный параметр, который может быть определен только, если Fil - нетипизированный файл. В этом случае, RecSize определяет размер блока, который нужно использовать при передаче данных. Если RecSize опущен, принят заданный по умолчанию размер блока в 128 байт.
Пример:
Reset(Fil); {открывает существующий файл (для чтения из него) }
Procedure ReWrite(Var Fil :File [; Recsize :Word]); - создает и открывает новый файл.
Пример:
ReWrite(Fil); {создает и открывает новый файл (для записи в него) }
Append(Fil); - процедура, открывает существующий файл для продолжения записи в файл.
Пример считывания и записи данных в файл:
ReadLn(Fil,s); {считывает из файла строку в переменную s}
WriteLn(Fil,s); {записывает в файл содержимое строки s}
EOF(Fil) - возвращает True если достигнут конец файла и False в противном случае.
Not - операция отрицания или инверсия.
В режиме {$I-} функция IOResult вернет 0, если операция была успешна, иначе, она возвращает отличный от нуля код ошибки.
Пример:
перед запуском примера, необходимо создать простой текстовый файл, состоящий из нескольких строк, английскими буквами (например: фамилии или имена на английском), имя файла должно быть до 8 символов на английском и без использования специальных символов, расширение у файла должно быть .txt
Program Ex12_File_SortString;
Var Fil:Text;
Nam:String;
SA:Array [0..100] of String[60];
I,N:Integer;
Begin
N:=0;
ReadLn(Nam); Assign(Fil,Nam); Reset(Fil);
While Not EOF(Fil) Do
Begin ReadLn(Fil,SA[N]); N:=N+1 End;
Close(Fil);
For I:=0 To N-1 Do WriteLn(SA[I]);
Assign(Fil,'namesort.txt'); ReWrite(Fil);
For I:=N-1 DownTo 0 Do WriteLn(Fil,SA[I]);
Close(Fil)
End.
Задание N16
Написать программу, считывающую файл и записывающую в другой файл, только те строки, в которых содержится ключевое слово, которое нужно ввести с клавиатуры.
Задание N17
Написать программу, считывающую текстовый файл и осуществляющую скроллинг его содержимого по экрану вперед и назад при нажатии определенных клавиш.
Занятие N13
Работа с графикой
(для работы с графикой в Pascal под Windows 7 и под Remote Desktop использовать Free Pascal или DOSBox)
Архиватор RAR
При использовании операторов ввода с клавиатуры в графическом окне во Free Pascal, вместо модуля CRT необходимо использовать WinCRT.
для установки DOSBox, сначала:
- скачайте DOSBox и архиватор RAR, нажав на соответствующее имя в заголовке этого занятия,
- затем откройте папку с закаченными файлами (DOSBox-0.65.rar и rar.exe) и скорпируйте их в свою домашнюю папку,
- затем запустите Far Manager, перейдите в свою домашнюю папку и откроете ее так, чтобы она была на обоих панелях Far Manager,
- зайдите внутрь архива - DOSBox-0.65.rar (для этого поместите на него курсор и нажмите Enter) и скопируйте папку DOSBox-0.65 на противоположную панель (используя F5)
- зайдите внутрь этой РАЗАРХИВИРОВАННОЙ папки и скопируйте из нее папку VC на диск C:\ (в корень диска),
- скопируйте с сайта пример работы с графикой (тот, что ниже по тексту после "Пример:")
- используя Far Manager создайте в своей домашней папке новый файл (Shift + F4) с именем gr10.pas ,
- запустите эмулятор DOS - (DOSBox.exe) из разархивированной папки - DOSBox-0.65 (при этом должен запуститься и VC - аналог Far Manager), по умолчанию в DOSBox сочетание Ctrl + F9 используется для выхода из DOSBox - удалите это сочетание клавиш и сохраните!
- запустите из DOSBox - Pascal (C:\BP\BIN\turbo.exe)
- установите настройки пути для модуля graph.tpu , для этого зайдите в Options/Directories и там, где Unit directories установите путь к модулям (C:\BP\UNITS),
- откройте сохраненный пример gr10.pas и запустите его (если на экране появятся различные графические фигуры, значит настройки сделаны верно!),
- закройте все окна - так чтобы осталось только одно чистое окно для написания программы (для закрытия окон щелкните мышкой, на зеленом квадратике в левом - верхнем углу окна с программой или другом каком-то окне, которое необходимо закрыть; для создания нового окна выберете File/New),
- для сохранения установленных путей и настроек Pascal с чистым окном зайдите в Options и выберете Save.
В следующий раз, при использовании в своих программах графического режима, открывайте Pascal только из DOSBox, запустив его из своей домашней папки, куда вы его разархивировали (если нужно открыть уже готовую программу, то открывать DOSBox нужно после создания соответствующего файла на диске, т.к. DOSBox не обновляет папки с файлами в процессе своей работы).
Модуль Graph:
Uses Graph - подключение графического модуля
InitGraph(GD,GM,Pat) - Инициализирует графическую систему и переводит видеокарту в графический режим, соответствующий параметрам GD-"графический драйвер" и GM-"графический режим", информация по этим параметрам - в разделе "Помощь" по модулю Graph - "Константы и типы GRAPH.TPU".
CloseGraph - Закрывает графическую систему.
SetColor(Color) - Устанавливает текущий цвет, используя палитру.
SetBkColor(Color) - Устанавливает текущий цвет фона.
Line(X1,Y1,X2,Y2) - Рисует линию от точки с координатами (X1, Y1) до точки с координатами (X2, Y2).
MoveTo(150,150) - Перемещает текущий указатель (CP) в точку с координатами (X, Y).
LineTo(X,Y) - Рисует линию от текущего указателя (CP) до (X,Y).
Rectangle(X1,Y1,X2,Y2) - Рисует прямоугольник, используя текущий тип и цвет линии.
Circle(X,Y,R) - Рисует окружность текущим цветом, используя точку (X, Y) как центр.
SetFillPattern(Pattern,10) - Устанавливает определяемый пользователем шаблон закраски.
SetFillStyle(Pattern,13) - Устанавливает цвет и стиль закраски.
Bar(110,80,150,95) - Рисует закрашенный прямоугольник, используя текущие стиль и цвет закраски.
Bar3D(80,30,120,60,10,TopOn) - Рисует параллелепипед, используя текущий стиль и цвет закраски.
OutTextXY(X,Y,TextString) - Отображает TextString в координатах (X, Y), текущим цветом.
PutPixel(X,Y,Color) - Ставит точку в координатах (X, Y), цветом Color.
GetMaxX и GetMaxY - Возвращают текущее разрешение по горизонтали: GetMaxX и вертикали: GetMaxY.
ClearDevice - Очищает графический экран, используя цвет фона, установленный SetBkColor.
Пример:
Program Ex13_Graph;
Uses Crt, Dos, Graph;
Const Pat='C:\BP\BGI';
Patt:FillPatternType=(128,64,32,16,8,4,2,1);
Var GD,GM:Integer;
Begin
GD:=VGA; GM:=VGAHi; {For VGALo}
InitGraph(GD,GM,Pat);
SetColor(Green); Line(0,0,150,150);
MoveTo(150,150); LineTo(170,90);
SetColor(Red); Circle(50,50,20);
SetColor(Yellow); Rectangle(40,20,70,70);
SetFillPattern(Patt,10); {SetFillStyle(1,13);}
Bar(110,80,150,95);
Bar3D(80,30,120,60,10,TopOn); {TopOff}
ReadLn;
CloseGraph
End.
Задание N18
Написать процедуру рисования машинки в заданных координатах, с помощью линий, кружков и прямоугольников. Пример вызова процедуры: CarNissanPatrol(10,10) .
Задание N19
Заставить двигаться машинку из задания N18 от края, до края экрана. При достижении края экрана, заставить ее двигаться в обратном направлении, выход из программы по нажатию клавиши "q".
Задание N20
Закодировать в текстовом файле координаты произвольной фигуры, состоящей из линий и вывести ее на графический экран.
Занятие N14
Генерация звуковых сигналов
Пример:
Program Ex14_Sound;
Uses Crt;
Var I:Integer;
Begin
For I:=0 To 80 Do
Begin
Sound(200); {Звук с частотой 200 Гц}
Delay(1000); {На 200 миллисекунд}
NoSound; {Выключаем динамик}
End;
End.
Задание N21
Заставить фигуру из задания N20 циклически двигаться от края до края экрана. При достижении краев экрана проигрывать мелодию или звуковой сигнал. Выход из программы по нажатию клавиши "Esc".
Отображение графиков функций
Задание N22
Отобразить график функции: y=a*x*x+b*x+c (в заданном диапазоне значений [X1,X2] и с заданным шагом dX), где a, b, c, константы, заданные произвольно с клавиатуры. Начало диапазона X1 должно соответствовать левому краю экрана, в конец диапазона X2 правому краю экрана. Отдельные точки графика должны быть соединены линиями. Перед рисованием графика отобразить и подписать оси X и Y.
Занятие N15
Записи
Запись - это структура, состоящая из фиксированного числа компонент, называемых полями. Данные одного поля разных записей имеют один и тот же тип, а разных полей могут иметь разные типы.
Общий вид описания типа record:
type t = record
id11, id12, ... :type1;
id21, id22, ... :type2;
...
end;
здесь id11, id12, ..., id21, id22, ... - идентификаторы полей; type1, type2, ... - типы полей; t - имя типа (записи).
Пример:
Program Ex15_Record;
Uses Crt;
Type
rec = record
FirstName:String;
LastName :String;
Age :Byte;
end;
Var
Baza: Array[0..100] Of rec;
I: Integer;
begin
For I:=0 To 4 Do
Begin
Write('FirstName='); ReadLn(Baza[I].FirstName);
Write('LastName='); ReadLn(Baza[I].LastName);
Write('Age='); ReadLn(Baza[I].Age);
End;
WriteLn('FirstName LastName Age');
For I:=0 To 4 Do
WriteLn(Baza[I].FirstName,' ',Baza[I].LastName,' ',Baza[I].Age);
End.
Задание N23
Написать программу для воспроизведения рисунка, записанного в специальном формате в файле с расширением "vec". Рисунок поместить в центр экрана. Под рисунком вывести имя файла, включая путь.
Графическое изображение представляет собой набор графических примитивов: точек, отрезков, прямоугольников и эллипсов различных цветов. Прямоугольники и эллипсы могут иметь заливку. Изображение имеет 16 цветов (коды цветов 0-15).
Файл содержит записи, каждая из которых состоит из фиксированного набора полей, описывающих графический примитив. Все координаты указываются в пикселях относительно левого верхнего угла изображения, имеющего координаты (0,0). Оси направлены: 0X - вправо, 0Y - вниз. Графические примитивы отображаются относительно текущей позиции курсора, которая может быть изменена специальной командой.
Формат записи:
1.Поле Operation типа Byte. Содержит код операции в соответствии с Табл.1.
2.Поле X типа Integer. Содержит значение координаты по оси X.
3.Поле Y типа Integer. Содержит значение координаты по оси Y.
4.Поле Color типа Byte. Поле содержит цвет графического примитива. Это битовое поле, т.е. в нем имеют значение отдельные биты и группы битов. Обычно биты нумеруются с нуля (младший бит). Бит считается установленным, если содержит 1, и сброшенным (не установленным), если содержит 0. Для выделения нужной группы битов используют битовые маски и операцию логического умножения AND, а также операции логического сдвига вправо (SHR) и влево (SHL).
Таблица 1. Содержимое поля Operation.
Код операции | Вид операции |
0 | Запись содержит указание размера рисунка в пикселях (в полях X и Y). Если 7 бит поля Color установлен, то рисунок имеет заливку фона, код цвета которого указан в битах 0-3. |
1 | Указание позиции курсора (X,Y) относительно левого верхнего угла рисунка. Поле Color не несет полезной информации. |
2 |
Рисование пикселя в позиции (X,Y). Цвет пикселя задан в младших 4-х битах (0-3) поля Color. |
3 | Рисование отрезка из текущей позиции курсора в точку (X,Y). Цвет задан в битах 0-3 поля Color. Позиция курсора изменяется на (X,Y). |
4 | Рисование прямоугольника, два диагональных угла которого заданы текущей позицией курсора и точкой (X,Y). Цвет задан в битах (0-3) поля Color. Признак заливки - бит 7 установлен в 1. |
5 | Рисование эллипса с центром в текущей позиции курсора, и радиусами, заданными в полях X и Y. Цвет задан в битах (0-3) поля Color. Признак заливки - бит 7 установлен в 1. |
6 | Заливка области, ограниченной контуром, начиная с точки (X,Y). Цвет контура задан в битах 0-3, а цвет заливки - в битах 4-7 поля Color. |
Примечания:
1. Запись с кодом 0 является первой и единственной в файле.
2. Позиция курсора изменяется на (X,Y) только в операциях с кодами 1 и 3.
Кодировка цвета:
Цвет | Код |
Black | 0 |
Blue | 1 |
Green | 2 |
Cyan | 3 |
Red | 4 |
Magenta | 5 |
Brown | 6 |
LightGray | 7 |
DarkGray | 8 |
LightBlue | 9 |
LightGreen | 10 |
LightCyan | 11 |
LightRed | 12 |
LightMagenta | 12 |
Yellow | 14 |
White | 15 |
Занятие N16
Разработка программы: "Стрелочные часы с будильником"
1) Расчет координат стрелок стрелочных часов: Xi=R*COS(Ai), Yi=R*SIN(Ai),
где:
R - радиус определенной стрелки (часовая, минутная, секундная и стрелка будильника разной длины).
Ai - угол (выраженный в радианах), связанный определенным образом с текущим системным временем (рассчитывается отдельно для каждой стрелки: часовой, минутной, секундной, а также для стрелки будильника).
Xi(Ai,R) - координата X от центра стрелочных часов, в зависимости от угла и радиуса стрелки.
Yi(Ai,R) - координата Y от центра стрелочных часов, в зависимости от угла и радиуса стрелки.
Задание N24
Разработать программу "Стрелочные часы с будильником" (в графическом режиме), позволяющую выводить циферблат стрелочных часов (с цифрами от 1 до 12), стрелки отображающие текущее время: часы, минуты, секунды, а также устанавливать на определенное время сигнал оповещения и выводить соответствующую стрелку будильника. Рисование всех стрелок должно быть выполнено в одной процедуре, которой на вход подаются: координаты вывода (координаты центра часов), цвет и радиус (длина) стрелки. Цвет и радиус должны быть разные, в зависимости от того, какая стрелка должна быть отображена, часовая, минутная, секундная или стрелка будильника. Рисование циферблата должно быть выполнено в отдельной процедуре.
Занятие N17
Множества
Множество - набор однотипных элементов, не организованных в порядке следования и рассматриваемых как единое целое. В Паскале могут быть только конечные множества. В Турбо Паскале множество может содержать от 0 до 255 элементов.
В качестве базовых типов могут использоваться: перечислимые типы данных, символьный и байтовый типы или диапазонные типы на их основе.
Множество имеет зарезервированное слово set of и вводится следующим описанием:
Type
<имя типа>=set of <имя базового типа>;
Var
<идентификатор,...>:<имя типа>;
Объединение множеств (+):
a:=a+['c'];
Разность множеств (-):
b:=b-['d'];
Для включения элемента в множество:
Include(Var S: set of T; Element:T);
Для исключения элемента из множества:
Exclude(Var S:set of T; Element:T);
где S - множество элементов типа Т, а Element - включаемый (или исключаемый) элемент.
Пересечение множеств (*):
c:=a*b;
Пример:
Program Ex18_Mnogestva;
uses crt;
var
s,m,k: set of byte;
i,n:byte;
Begin
clrscr;
m:=[6,4];
i:=9;m:=m+[i];i:=13;Include(m,i);
s:=[15,17,9];
k:=m-s;
for i:=1 to 100 Do
if i in k then write(i,', ');
End.
Занятие N18
Динамические переменные
Статической переменной (статически размещенной) называется описанная явным образом в программе переменная, обращение к ней осуществляется по имени. Место в памяти для размещения статических переменных определяется при компиляции программы.
В отличие от таких статических переменных в программах, написанных на языке Pascal, могут быть созданы динамические переменные. Основное свойство динамических переменных заключается в том, что они создаются и память для них выделяется во время выполнения программы.
Размещаются динамические переменные в динамической области памяти (heap-области).
Динамическая переменная не указывается явно в описаниях переменных и к ней нельзя обратиться по имени. Доступ к таким переменным осуществляется с помощью указателей и ссылок.
Работа с динамической областью памяти в Turbo Pascal реализуется с помощью процедур и функций New, Dispose, GetMem, FreeMem, Mark, Release, MaxAvail, MemAvail, SizeOf.
New(var p:Pointer); - выделяет место в динамической области памяти для размещения динамической переменной p^ и ее адрес присваивает указателю p.
Dispose(var p:Pointer); - освобождает участок памяти, выделенный для размещения динамической переменной процедурой New, и значение указателя p становится неопределенным.
GetMem(var p:Pointer; size:Word); - выделяет участок памяти в heap-области, присваивает адрес его начала указателю p, размер участка в байтах задается параметром size.
FreeMem(var p:Pointer; size:Word); - освобождает участок памяти, адрес начала которого определен указателем p, а размер - параметром size. Значение указателя p становится неопределенным.
Mark(var p:Pointer); - записывает в указатель p адрес начала участка свободной динамической памяти на момент ее вызова.
Release(var p:Pointer); - освобождает участок динамической памяти, начиная с адреса, записанного в указатель p процедурой Mark, то есть, очищает ту динамическую память, которая была занята после вызова процедуры Mark.
MaxAvail:Longint; - возвращает длину в байтах самого длинного свободного участка динамической памяти.
MemAvail:Longint; - полный объем свободной динамической памяти в байтах.
SizeOf(X):Word; - возвращает объем в байтах, занимаемый X, причем X может быть либо именем переменной любого типа, либо именем типа.
Примеры:
var
p1, p2: ^Integer;
Здесь p1 и p2 - указатели или переменные ссылочного типа.
p1:=NIL; p2:=NIL;
После выполнения этих операторов присваивания указатели p1 и p2 не будут ссылаться ни на какой конкретный объект.
New(p1); New(p2);
Процедура New(p1) выполняет следующие действия: - в памяти ЭВМ выделяется участок для размещения величины целого типа; - адрес этого участка присваивается переменной p1.
После выполнения операторов присваивания:
p1^:=2; p2^:=4;
в выделенные участки памяти будут записаны значения 2 и 4 соответственно.
Занятие N19
Visual Basic
Function (функция) - выполняет действия и возвращает значение (значение функции) - как правило одно, являющееся результатом этих действий (например вычисления)
Sub (подпрограмма) - выполняет действия, но значения, ассоциированного со своим именем не возвращает, хотя может возвращать значения нескольких переменных. (например действия ввода-вывода, изменения свойств и т.п.).
Открыть Microsoft Excel 2010.
Если в меню Excel отсутствует вкладка "Разработчик", то нужно проделать следующие действия:
Файл/Параметры/Настройка ленты/Настройка ленты (Основные вкладки): Поставить галочку: "Разработчик"
Открытие редактора Visual Basic'а: Разработчик/Visual Basic
Пример N1:
- создайте форму - для этого выполните: Insert\UserForm
- установите на форму, друг за другом, три текстовых поля TextBox1, TextBox2 и TextBox3 и две кнопки CommandButton1 и CommandButton2 .
- далее нужно двойным нажатием мыши кликнуть на определенные элементы формы и указать действия, которые будут выполняться при нажатии на них во время работы программы, для этого нужно разместить код, выполняющий эти действия, между Private Sub и End Sub .
- двойным нажатием мыши кликнуть на CommandButton1 и поместить туда строчку:
TextBox3.Text = Str(Val(TextBox1.Text) + Val(TextBox2.Text))
- двойным нажатием мыши кликнуть на CommandButton2 и поместить туда строчку:
End
Двойным нажатием мыши кликнуть на саму форму и поместить в нее следующий код:
UserForm1.Caption = "MyProgram"
CommandButton1.Caption = "Sum"
CommandButton2.Caption = "Exit"
В результате должно получиться следующее:
Private Sub CommandButton1_Click()
TextBox3.Text = Str(Val(TextBox1.Text) + Val(TextBox2.Text))
End Sub
Private Sub CommandButton2_Click()
End
End Sub
Private Sub UserForm_Click()
UserForm1.Caption = "MyProgram"
CommandButton1.Caption = "Sum"
CommandButton2.Caption = "Exit"
End Sub
- сохранить программу из Microsoft Excel, выбрав при этом Книга Excel с поддержкой макросов и закрыть программу.
- открыть сохраненный файл. При открытии сохраненного файла может появиться сообщение:
Предупреждение системы безопасности Запуск макросов отключен (Включить содержимое) ). Нужно нажать на кнопку Включить содержимое.После этого можно запустить программу, нажав F5.
Пример N2:
Function GetFilePath(Optional ByVal Title As String = "Выберите файл для обработки", _
Optional ByVal InitialPath As String = "c:\", _
Optional ByVal FilterDescription As String = "Текстовый файл", _
Optional ByVal FilterExtention As String = "*.txt") As String
' функция выводит диалоговое окно выбора файла с заголовком Title,
' начиная обзор диска с папки InitialPath, возвращает полный путь к выбранному файлу, или пустую строку в случае отказа от выбора
' для фильтра можно указать описание и расширение выбираемых файлов
On Error Resume Next
With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = False
.ButtonName = "Выбрать": .Title = Title: .InitialFileName = InitialPath
.Filters.Clear: .Filters.Add FilterDescription, FilterExtention
If .Show <> -1 Then Exit Function
GetFilePath = .SelectedItems(1)
End With
End Function
Sub ExportAsText(ByVal nRow As Integer) 'процедура сохраняющая в текстовый файл данные
Dim Row As Integer
Dim fTXT As String
fTXT = Application.GetSaveAsFilename(fTXT, FileFilter:="Текстовый файл (*.txt), *.txt", Title:="Выберите файл для записи") 'Выбираем путь и имя файла для сохранения
If fTXT = "" Then
MsgBox "Файл не выбран.", vbCritical, "Error" 'в случае отказа выдается ошибка
End 'завершение работы
Else
Open fTXT For Output As #1 'Открываем файл для сохранения
Print #1, "Data:"
For Row = 1 To nRow
If Selection.Cells(Row, 1) > 0 Then
Print #1, Selection.Cells(Row, 1) 'Записываем данные которые > 0 из таблицы в файл
End If
Next Row
Close #1 'закрываем файл
End If
End Sub
Sub ExampleVB()
'описание переменных
Dim Dat(20) As Double 'объявляет массив данных на 20 элементов
Dim n As Integer
Dim TxData As String
Dim fNAM As String
Worksheets("Лист1").Columns("A:D").Delete 'удаляем столбцы с A по J
Worksheets("Лист1").Rows("1:10").Delete 'удаляем строки с 1 по 10
fNAM = GetFilePath("Выберите файл для обработки", "C:\", "Текстовый файл", "*.txt") 'выбираем путь и имя файла с диска
If fNAM = "" Then
MsgBox "Файл не выбран.", vbCritical, "Error" 'в случае отказа выдается ошибка
End 'завершение работы
End If
Worksheets("Лист1").Activate
Open fNAM For Input As #1 'открываем файл для чтения данных
n = 0
Do Until EOF(1)
Line Input #1, TxData 'построчно считываем данные из текстового файла в строковую переменную
Dat(n) = Val(TxData) 'преобразуем строковую переменную в числовое значение и помещаем в соотв. эл-нт массива
n = n + 1 'подсчитываем количество данных
Loop
Close #1 'закрываем файл
Worksheets("Лист1").Columns("A:D").ColumnWidth = 6 'устанавливаем ширину ячеек
For nRow = 1 To n
Worksheets("Лист1").Cells(nRow, 1).Font.Size = 8 'устанавливаем размер шрифта в ячейках
Worksheets("Лист1").Rows(nRow).RowHeight = 10 'устанавливаем высоту ячеек
Worksheets("Лист1").Cells(nRow, 1) = Dat(nRow - 1) 'заполняем ячейки данными из массива
If Dat(nRow - 1) < 0 Then
Worksheets("Лист1").Cells(nRow, 1).Interior.Color = RGB(255, 0, 0) 'подкрашиваем красным ячейку с отрицательным значением
End If
Next
Cells(1, 1).Select
MsgBox "Данные загружены!", , "Ready" 'окно с сообщением
ExportAsText (n) 'вызов процедуры записи в файл
End Sub
- открыть редактор Visual Basic и в окне Project - VBA Project ткнуть на "ЭтаКнига".
- скопировать Пример N2 в появившееся окно редактора.
- сохранить программу из Microsoft Excel, выбрав при этом сохранить Книгу Excel с поддержкой макросов и закрыть программу.
- открыть сохраненный файл. При открытии сохраненного файла может появиться сообщение:
Предупреждение системы безопасности Запуск макросов отключен (Включить содержимое) ). Нужно нажать на кнопку Включить содержимое.
После этого можно запустить программу, нажав F5.
Или запустить макрос (программу на Visual Basic): Вид\Макросы\Выполнить или Разработчик\Макросы\Выполнить
Установить макрос для запуска по сочетанию клавиш:
Вид\Макросы\Параметры или Разработчик\Макросы\Параметры: указать сочетание клавиш для запуска макроса.
Литература
1. Учебные и методические пособия [Электронный ресурс] - Режим доступа: http://dssp.karelia.ru/ivk-stud/moodle/, http://dssp.karelia.ru/web/tutorials.shtml
2. С.В. Мациевский, С.А. Ишанов, С.В. Клевцур, ИНФОРМАТИКА / Учебное пособие / Издательство: Калининградского государственного университета.- 2003г.