
- •Данные, файлы и файловые структуры.
- •Действия с файлами
- •Атрибуты файла
- •Каталог (Папка)
- •Путь к файлу
- •Спецификация файла
- •Контрольные вопросы
- •Лекция 2 Элементы теории сигналов, передача и прием сигналов: Непрерывные сигналы и их представления, свойства сигналов; дискретные сигналы.
- •Основы хранения информации в компьютере
- •Лекция 3 Элементы теории информации. Меры информации.
- •Энтропийные меры информации (по Хартли и Шеннону).
- •Лекция 4 Вычислительные машины (вм). Микропроцессоры, персональные компьютеры, многопроцессорные комплексы. Методы классификации компьютеров.
- •Контрольные вопросы
- •Лекция 5 Состав и взаимодействие основных устройств вм при автоматическом выполнении машинных команд. Периферийное оборудование.
- •Системный блок
- •Процессор
- •Шинные интерфейсы материнской платы
- •Оперативная память
- •Микросхема пзу и система bios
- •Энергонезависимая память cmos
- •Жесткий диск
- •Дисковод гибких дисков
- •Дисковод компакт-дисков cd-rom
- •Монитор
- •Мониторы на электронно-лучевой трубке (crt)
- •Мониторы на жидких кристаллах (lcd)
- •Клавиатура
- •Устройства ввода графических данных
- •Устройства вывода данных
- •Устройства обмена данными
- •Функции операционной системы (ос), основные приложения ос Microsoft Windows,:
- •Лекция 6 Системы счислений:
- •Двоичная система счислений.
- •Перевод чисел из одной системы счисления в другую.
- •Задание 3
- •Лекция 7 Представление текстовой, цветовой и графической информации в вм.
- •Текстовая информация
- •Числовая информация
- •Графическая информация
- •Звуковая и видеоинформация
- •Лекция 8 Понятие и принципы алгоритмизации. Понятие рекуррентных алгоритмов, рекурсивные вычисления. Алгоритмические языки. Основы программирования:
- •Понятие и принципы алгоритмизации. Понятие рекуррентных алгоритмов, рекурсивные вычисления.
- •Способы описания алгоритмов
- •Структурные схемы алгоритмов
- •Объектно-ориентированное программирование
- •Логическое программирование
- •Программирование на алгоритмических языках Бейсик/Паскаль: Данные и основные операторы языка; Структура программы
- •Идентификаторы и служебные слова
- •Выражения и операции
- •Арифметические операции
- •Логические операции
- •Операции отношения
- •Побитовые операции
- •Строковые операции
- •Приоритет операций
- •Описание переменных и констант
- •Ввод и вывод. Форматы вывода
- •Операторы Оператор присваивания
- •Условный оператор
- •Составной и пустой операторы
- •Оператор выбора
- •Оператор цикла for
- •Оператор цикла while
- •Оператор цикла repeat
- •Оператор вызова процедуры
- •Операторы break, continue и exit
- •Оператор безусловного перехода goto
- •Параметры процедур и функций
- •Локальные и глобальные переменные
- •Лекция 9 Простые циклические программы. Циклические программы со счетчиком циклов. Циклические программы с разветвлением внутри цикла.
- •Л екция 10 Циклические программы на накопление, вычисление сумм и произведения рядов;
- •Лекция 11 п рограммы по работе с массивами данных.
Параметры процедур и функций
Параметры, указываемые при описании подпрограммы, называются формальными. Параметры, указываемые при вызове подпрограммы, называются фактическими.
Если формальный параметр описан со служебным словом var, то его называют параметром-переменной и говорят, что он передается по ссылке. Если же параметр описан без слова var, то его называют параметром-значением и говорят, что он передается по значению.
Если параметр передается по значению, то при вызове подпрограммы значения фактических параметров присваиваются соответствующим формальным параметрам. Например, пусть имеется следующее описание процедуры:
procedure PrintSquare(i: integer); begin writeln(i*i); end;
Тогда при вызове PrintSquare(5*a-b) значение 5*a-b будет вычислено и присвоено переменной i, после чего выполнится тело процедуры.
Если параметр передается по ссылке, то при вызове подпрограммы фактический параметр заменяет собой в теле процедуры соответствующий ему формальный параметр. В итоге любые изменения формального параметра-переменной внутри процедуры приводят к соответствующим изменениям фактического параметра. Например, если описана процедура
procedure Mult2(var a: integer); begin a:=a*2; end;
то после вызова Mult(d) значение d увеличится в 2 раза.
В качестве фактического параметра-значения можно указывать любое выражение, тип которого совпадает с типом формального параметра или неявно к нему приводится. В качестве фактического параметра-переменной можно указывать только переменную, тип которой в точности совпадает с типом формального параметра.
При передаче параметра по ссылке в подпрограмму передается адрес фактического параметра. Поэтому если параметр занимает много памяти (массив, запись), то обычно он также передается по ссылке. В результате в процедуру передается не сам параметр, а его адрес, что экономит память и время работы. Например:
procedure Print(var a: array [1..10] of integer; n: integer); var i: integer; begin for i:=1 to n do write(a[i],' '); writeln; end;
Параметр может быть также описан со служебным словом const. Это означает, что он передается по значению, но менять его в подпрограмме запрещено. Например:
procedure PrintSquare1(i: integer); begin i:=i*i; // верно writeln(i); end; procedure PrintSquare2(const i: integer); begin i:=i*i; // ошибка!!! writeln(i); end;
Локальные и глобальные переменные
Переменные, описанные в разделе описаний подпрограммы, называются ее локальными переменными. Переменные же, описанные вне подпрограммы, называются глобальными по отношению к ней.
Параметры подпрограммы считаются ее локальными переменными.
Е
сли
имя локальной переменной совпадает с
именем глобальной переменной, то
локальная переменная скрывает глобальную,
так что к глобальной переменной нельзя
обратиться внутри подпрограммы.
Например:
var i: real;
procedure p;
var i: integer;
begin
// к глобальной переменной i внутри процедуры нельзя обратиться
i:=5; // присваивание локальной переменной i; ...
end;
Пример 1.
Написать программу, рассчитывающую площадь круга и выводящую его значение на экран (рис.1)
Программа:
program S_krug;
uses CRT; // для вывода в отдельном окне
var
r,S: real;
begin
write('Введите радиус круга R = ');
readln(r);
s:= Pi*sqr(r);
write('Площадь круга S = ',S:8:2);
end.
Пример 2.
Написать программу, которая запросит число X и выведет на экран информацию о его знаке (положительное, отрицательное или нуль). (рис.2)
Программа:
program znak;
uses CRT; // для вывода в отдельном окне
var
X: real;
b
egin
write('Введите X = ');
readln(X);
if X > 0 then writeLn('X положителен')
else if X < 0 then writeLn('X отрицателен')
else writeLn('X равен нулю');
end.
Пример 3.
Написать программу, которая запросит четыре числа A, B, C, D и выведет на экран «Правда» или «Неправда» на вопрос: «Правда ли, что первое число самое большое?».
Программа:
program from4;
uses CRT; // для вывода в отдельном окне
var
A,B,C,D: real;
begin
write('Введите значения A,B,C,D = ');
readln(A,B,C,D);
if (A>B) and (A>C) and (A>D) then writeLn('Правда')
// сопоставляемые значения берутся в скобки, т.к. действие
// and имеет более высокий приоритет чем сравнение >
else writeLn('Неправда');
end.