- •Государственное образовательное учреждение высшего профессионального образования «Тульский государственный университет»
- •Конспект лекций
- •Информатика
- •Содержание
- •Системы счисления. Позиционные и непозиционные системы
- •2.1. Кодирование текста
- •2.2. Растровая и векторная графика
- •2.3. Представление цвета
- •2.4. Представление звука. Ацп. Цап
- •3.1. Принцип фон Неймана
- •3.2. Общая структурная схема процессора
- •3.3. Арифметико-логическое устройство (алу)
- •3.4. Адрес ячейки памяти
- •3.5. Регистры процессора
- •3.6. Как процессор складывает два числа
- •4.1. Эволюция средств вычислений
- •4.2. Эволюция эвм
- •4.3. Поколения эвм
- •5.1. Эволюция персональных эвм
- •5.2. Классификация эвм
- •6.1. Программное обеспечение
- •6.2. Функции ос
- •6.3. Трансляция программ
- •6.5. Декомпозиция
- •6.6. Объектно-ориентированное программирование
- •7.1. Понятие алгоритма. Свойства алгоритма
- •7.2. Способы записи алгоритма: псевдокод, блок-схема
- •7.3. Преобразование программы в машинные коды. Интерпретаторы и компиляторы
- •7.4. Оптимизация кода для повышения эффективности
- •7.5. Структура ide. Отладка программ
- •8.1. Описание структуры проекта
- •8.2. Описание структуры модуля
- •8.3. Описание элементов программ
- •8.4. Алфавит языка программирования
- •8.5. Идентификаторы, константы, выражения
- •9.1. Целая и вещественная арифметика
- •9.2. Приоритет операций
- •9.3. Встроенные функции. Построение сложных выражений
- •10.1. Встроенные типы данных. Целые типы. Представление знака числа. Арифметическое переполнение
- •10.1.1. Встроенные типы данных
- •10.1.2. Целые типы
- •10.1.3. Представление знака числа
- •10.1.4. Арифметическое переполнение
- •10.2. Вещественные типы. Сопроцессор
- •10.3. Текстовые типы
- •10.4. Логический тип
- •10.5. Оператор присваивания. Совместимость типов по присваиванию
- •11.1. Устройства вывода
- •11.2. Объекты, обеспечивающие вывод данных на экран
- •11.2.1. Перечень компонентов ввода и отображения текстовой информации
- •11.2.2. Отображение текста в надписях компонентов Label, StaticText и Panel
- •11.2.3. Окна редактирования Edit и MaskEdit
- •11.2.4. Многострочные окна редактирования Memo и RichEdit
- •11.2.5. Группа радиокнопок – компонент RadioGroup
- •Ввод и отображение целых чисел — компоненты UpDown и SpinEdit
- •11.2.6. Компоненты выбора из списков — ListBox, CheckBox, CheckListBox и ComboBox
- •11.2.7. Таблица строк — компонент StringGrid
- •11.2.8. Функция InputBox
- •11.2.9. Процедура ShowMessage
- •11.3. Вывод в текстовый файл
- •11.3.1. Объявление файла
- •Назначение файла
- •11.3.2. Вывод в файл
- •11.3.3. Открытие файла для вывода
- •11.3.4. Ошибки открытия файла
- •11.3.5. Закрытие файла
- •11.4. Устройства ввода. Ввод с клавиатуры. Реакция на действия пользователя
- •11.4.1. Устройства ввода
- •11.5. Ввод из файла
- •11.5.1. Открытие файла
- •11.5.2. Чтение данных из файла
- •11.5.3. Чтение чисел
- •11.5.4. Чтение строк
- •12.1. Ветвление
- •12.2. Логические (булевские) операции
- •12.3. Составной оператор
- •12.4. Оператор ветвления if
- •12.5. Оператор ветвления case
- •12.6. Исключительные ситуации
- •13.1. Функции цикла в программе. Циклы с пред- и постусловием
- •13.2. Оператор While. Вечные циклы
- •13.3. Вечные циклы
- •13.4. Оператор repeat. Процедуры inc и dec
- •13.5. Цикл с переменной for
- •13.6. Команды break и continue
- •13.7. Вложенные циклы
- •13.8. Примеры задач с циклами
- •14.1. Объявление массива
- •14.2. Операции с массивами
- •14.2.1. Вывод массива
- •14.2.2. Ввод массива
- •14.2.3. Поиск минимального (максимального) элемента массива
- •14.2.4. Поиск в массиве заданного элемента
- •14.3. Ошибки при использовании массивов
- •15.1. Создание пользовательских функций. Передача аргументов
- •15.2. Глобальные и локальные переменные
- •15.3. Примеры написания пользовательских функций
- •15.4. Процедуры
- •15.5. Процедуры программиста
- •15.6. Передача параметров по ссылке и значению
- •15.7. Перегрузка процедур и функций
- •15.8. Упреждающее объявление процедур и функций (forward)
- •16.1. Основные понятия компьютерной графики
- •16.2. Получение сведений о режимах экрана. Эффекты прозрачности
- •16.3. Графические построения
- •16.4. Построение графиков функций
- •16.5. Использование компонента tChart
- •16.6. Обновление изображения
- •17.1. Анимация на основе операции xor
- •17.2. Буферизация фона
- •17.3. Работа с таймером
- •18.1. Виды диалога
- •18.2. Стандарты пользовательского интерфейса
- •18.2.3. Размеры окон
- •18.2.2. Размеры элементов управления
- •Надписи на элементах управления:
- •18.2.4. Схема расположения
- •19.1. Технология mmx
- •19.2. Мультимедийные аппаратные интерфейсы
- •20.1. Тест Тьюринга
- •20.2. Представление знаний и вывод на знаниях
- •20.3. Модели представления знаний
- •20.4. Вывод на знаниях
- •21.1. Основы телекоммуникаций и распределенной обработки информации
- •21.2. Каналы связи
- •21.2.1. Аналоговые и цифровые каналы
- •21.2.2. Коммутируемые и выделенные каналы
- •21.2.3. Двух- и четырехпроводные каналы
- •21.3. Семиуровневая модель osi
- •21.3.1. Физический уровень
- •21.3.2. Канальный уровень
- •21.3.3. Верхние уровни osi
- •21.4. Управление потоком
- •21.5. Технология "клиент-сервер"
- •22.1. Методы защиты информации
- •22.2. Основы криптографии
- •22.3. Симметричные криптосистемы
- •22.3.1.Моно- и многоалфавитные подстановки
- •22.3.2. Перестановки
- •22.3.3. Гамирование и блочные шифры
- •22.4. Алгоритмы цифровой подписи
- •22.5. Сжатие данных
- •22.5.1. Методы сжатия изображений
- •22.6. Понятие об экономических и правовых аспектах информационных технологий
15.2. Глобальные и локальные переменные
Подпрограммы могут возвращать результат в основную программу не только при помощи параметров – переменных и выходных параметров, но и непосредственно изменяя глобальные переменные. Переменные, описанные в основной программе, являются глобальными по отношению к внутренним процедурам и функциям. Это означает, что они доступны в подпрограммах, описанных внутри основной программы. Описанные внутри процедур и функций, называются локальными переменными. Они порождаются при каждом входе в подпрограмму и уничтожаются при выходе из этой подпрограммы, т.е. локальные переменные существуют только при выполнении подпрограммы и недоступны в основной программе.
Пример использования:
Вычислить: .
Из общей задачи вычленим подзадачу вычисления суммы
,
Зависящей от трех параметров . Оформим решение этой подзадачи в виде процедуры. Если бы мы решили воспользоваться механизмом параметров для обмена
Данными между основной программой и процедурой, то наша процедура имела бы четыре параметра: три для передачи исходных данных и один для возврата результата. В программе, приведенной ниже, для обмена данными между основной программой и процедурой используется механизм глобальных параметров. Поэтому процедура s вообще не имеет параметров.
program р1_33;
Var iO,ik:integer;
alfa,beta,x,z,zl,z2,f:real;
function s;
var i:integer;
sum:real;
begin
sum:=0;
for i:=i0 to ik do
sum:=sum+exp(i*ln(sqr(sin(x))))+cos(x);
z:=sum
end;
begin
writeln('Enter alfa,beta');
readln(alfa,beta);
i0:=1; ik:=10; x:= alfa;
s;
z1:=z;
i0:=5; ik:=20; x:= beta;
s;
z2:=z;
f:=zl+z2;
writeln(“f=”, f);
readln
end.
В этом примере глобальными являются переменные io, ik, alfa, bata, x, z, z1, z2, f. Локальными являются переменные: i, sum.
Заметим, что если имя локальной переменной совпадает с именем глобальной переменной, то при выполнении подпрограммы такая глобальная переменная становится недоступной, т.е. «закрывается» локальной переменной.
В Delphi имеются параметры, значения которых можно не указывать при вызове процедуры или функции. Их называют параметрами со значениями по умолчанию, или, короче, умалчиваемыми параметрами. В списке параметров в общем виде они описываются следующим образом:
< имя параметра >:< тип > = < значение > .
Умалчиваемые параметры должны находится в конце списка формальных параметров. Если при вызове процедуры или функции фактический параметр, соответствующий умалчиваемому параметру, не указан, то в подпрограмму передается заданное для умалчиваемого параметра < значение >. Если в подпрограмме имеется несколько умалчиваемых параметров и для части из них заданы фактические значения, а для части – нет, то последние должны располагаться в конце списка формальных параметров. Иными словами, при вызове подпрограммы фактические параметры должны располагаться подряд, без пропусков.
Пример использования: составить программу для нахождения максимального значения для положительных чисел, количество которых не превышает 5.
В процедуре для поиска максимального значения опишем пять умалчиваемых значений. В качестве значения по умолчанию примем 0.
program pl_34;
var x,y,z,w,v,m:real;
procedure p(var max:real; a:real=0; b:real=0; c:real=0; d:real=0;
e:real=0);
begin
max:=a;
if max<b then max:=b;
if max<c then max:=c;
if max<d then max:=d;
if max<e then max:=e;
end;
begin
writeln(‘Enter x,y,z,w,v’);
readln(x,y,z,w,v);
P(m,x,y);
writeln('max=',m:3:0) P(m,x,y,z);
writeln('max=',m:3:0); Р(m,x,y,z,w);
writeln('max=',m:3:0) P(m,x,y,z,w,v);
writeln(‘max=’,m:3:0);
readln
end.
В Delphi имеется возможность использовать подпрограммы с одинаковыми именами, но отличающиеся количеством и типом параметров. В заголовках таких подпрограмм должно быть указано зарезервированное слово overload. При вызове таких подпрограмм компилятор анализирует количество и тип фактических параметров и вызывает соответствующую им подпрограмму.
Пример использования:
Составить программу для нахождения минимального из двух чисел и минимального порядкового номера для двух символов.
В программе будем использовать две функции с именем mm. Первая для нахождения минимального числа, вторая - для определения минимального порядкового номера для двух символов.
program pl_35;
var
x,y:real;
s,v:char;
function min(a,b:real):real;overload;
begin
if a>b then result :=b else result :=а end;
function min(a,b:char):char;overload; begin
result :=a;
if a>b then result :=b; end; begin
writeln(‘Enter two numbers');
readln(x,y);
writeln('min=',min(x,y):3:0);
writeln('Enter two characters');
readln(s,v);
writeln('min=',min(s,v));
readln
end.
При обращении к функции min(x,y) вызывается функция, определенная для вещественных аргументов, при обращении min(s,v) - для символьных аргументов