- •3. Принцип адресуемости памяти. Структурно основная память состоит из пронумерованных ячеек; процессору в произвольный момент времени доступна любая ячейка.
- •3.Представление информации в компьютере
- •1 В специальной литературе используют аббревиатуру ram - random access memory (память с произвольным доступом).
- •2 В специальной литературе используют аббревиатуру hdd - hard disk driver (устройство управления жестким диском).
- •3 В специальной литературе используют аббревиатуру fdd - floppy disk driver (устройство управления гибким диском).
- •4 Компакт-диски, а также устройства для работы с ними часто называют cd rom.
- •IPhone - компьютерный телефон, работающий через Интернет.
- •1) Прикладные программы, непосредственно обеспечивающие выполнение необходимых пользователям работ.
- •2) Системные программы:
- •3) Инструментальные программные системы, облегчающие процесс создания новых программ для компьютера.
- •1.1. Основные определения и понятия.
- •1) Переменная называется неопределенной до тех пор, пока она не получит значение:
- •2) В каждый момент времени переменная может иметь определенное значение, либо быть неопределенной;
- •3) Последующее значение уничтожает (стирает) предыдущее значение. Выбор (чтение) из переменной и ее использование не изменяют значения переменной.
- •1.2. Изобразительные средства алгоритмов.
- •1.3. Базовые канонические структуры алгоритмов.
- •1) Следование
- •2) Развилка
- •3) Повторение
- •1.1. Алфавит и словарь языка Паскаль
1.1. Алфавит и словарь языка Паскаль
Язык – совокупность символов, соглашений и правил, используемых для общения. При записи алгоритма решения задачи на языке программирования необходимо четко знать правила написания и использования языковых единиц. Основой любого языка является алфавит (набор знаков, состоящий из букв, десятичных и шестнадцатеричных цифр, специальных символов).
Алфавит Паскаля составляют:
прописные и строчные буквы латинского алфавита: A, B, C…Y, Z, a, b,c,…y, z ;
десятичные цифры: 0, 1, 2,…9;
специальные символы: + - * / > < = ; # ‘ , . : {} [] ( )
комбинации специальных символов , которые нельзя разделять пробелами, если они используются как знаки операций: «:=», «..», «<>», «<=», «>=», «{}».
Неделимые последовательности знаков алфавита образуют слова, отделенные друг от друга разделителями. Ими могут быть пробел, комментарий или символ конца строки. Словарь Паскаля можно разделить на три группы слов: зарезервированные слова, стандартные идентификаторы и идентификаторы пользователя.
Зарезервированные слова (см таб.1) имеют фиксированное написание и навсегда определенный смысл. Они не могут изменяться программистом и их нельзя использовать в качестве имен для обозначения величин.
Идентификатор – имя (identification – установление соответствия объекта некоторому набору символов). Для обозначения определенных разработчиками языка функций, констант и т.д. служат стандартные идентификаторы, например Sqr, Sqrt и т.д. В этом примере Sqr вызывает функцию, которая возводит в квадрат данное число, а Sqrt – корень квадратный из заданного числа. Пользователь может переопределить любой стандартный идентификатор, но чаще всего это приводит к ошибкам, поэтому на практике их используют без изменения. Идентификаторы пользователя – это те имена, которые дает сам программист. При записи программ нужно соблюдать общие правила написания идентификаторов:
Идентификатор начинается только с буквы (исключение составляют специальные идентификаторы меток).
Идентификатор может состоять из букв, цифр и знака подчеркивания.
Максимальная длина – 127 символов.
При написании идентификаторов можно использовать прописные и строчные буквы.
Между двумя идентификаторами должен стоять хотя бы один пробел.
Некоторые зарезервированные слова версии Турбо Паскаль
Absolute |
Абсолютный |
Library |
Библиотека |
And |
Логическое И |
Mod |
Остаток от деления |
Array |
Массив |
Not |
Логическое НЕ |
Begin |
Начало блока |
Or |
Логическое ИЛИ |
Case |
Вариант |
Of |
Из |
Const |
Константа |
Object |
Объект |
Div |
Деление нацело |
Procedure |
Процедура |
Go to |
Переход на |
Program |
Программа |
Do |
Выполнять |
Repeat |
Повторять |
Downto |
Уменьшить до |
String |
Строка |
Else |
Иначе |
Then |
То |
End |
Конец блока |
To |
Увеличивая |
File |
Файл |
Type |
Тип |
For |
Для |
Until |
До |
Function |
Функция |
Uses |
Использовать |
If |
Если |
Var |
Переменная |
Interrupt |
Прерывание |
While |
Пока |
Interface |
Интерфейс |
With |
С |
Label |
Метка |
Xor |
Исключающее ИЛИ |
Структура программы.
Любая программа на Паскале имеет определенную структуру:
program имя_программы;
uses
Подключение модулей
const
Раздел описания констант
label
Раздел описания меток
type
Раздел описания типов
var
Раздел описания переменнных
begin
Тело программы
end.
Начинается программа с заголовка. После заголовка на схеме представлены разделы описания констант, меток, типов, переменных, а также раздел, в котором подключаются используемые модули. Причем Турбо Паскаль вовсе не предписывает порядок в каком порядке должны идти эти разделы. Однако если в одном из разделов объявлен элемент программы, на который имеется ссылка в другом разделе, то описание, на которое имеется ссылка должно предшествовать ссылающему описанию. Например, если в разделе объявления переменных объявляется переменная того типа, который описывается в разделе описания типов, то сначала описывается тип, а затем переменная.
type
IntList = array[1..100] of Integer;
var
mylist : IntList;
Обязательной частью является лишь тело программы, которое начинается словом begin, а заканчивается словом end с точкой. Операторы в Паскале разделяются точкой запятой.
Процедуры ввода/вывода. Ввод и вывод данных различных типов.
Для ввода данных используются стандартные процедуры Read и ReadLn:
Read (список) - считывает одно или более значений в одну или несколько переменных
список - имена переменных, разделенные запятыми. Например:
Var a,b,c,d,e : Integer; Begin Read (a,b,c); Read (d,e) . . .
При выполнении этого фрагмента программы пользователь может вводить числовые данные произвольно, разделяя их пробелами или располагая их на любом количестве строк, например:
1 2 3 4 5
В этом случае процедура Read (a,b,c) прочтет значения переменных a и b из первой строки ввода, переменную c из второй стоки. Процедура Read (d,e) "дочитает" значения переменных d и e из второй строки.
Корректным было бы так же размещение данных для ввода следующим образом: 1 2 3 4 5
При этом чтение всех значений переменных происходило бы из одной строки.
ReadLn (список) - считывает значения переменных, а затем делает пропуск до начала следующей строки
Пример:
Var p,r,s,t,u: Integer; Begin ReadLn (p,r); ReadLn (s,t,u); . . .
Пусть данные для ввода располагаются на несколькиз строчках следующим образом: 1 2 3 4 5 6 7 8 9
В этом случае процедура ReadLn (p,r) считает значения в переменные p и r (они примут значения 1 и 2 соответственно), затем пропустит все имеющиеся на этой строке данные (3, 4 и 5 будут пропущены) и перейдет на слудующую строку. После выполнения процедуры ReadLn (s,t,u) переменные s,t,u примут значения соответственно 6, 7 и 8.
Для вывода Turbo Pascal предоставляет процедуры Write и Writeln.
Write (список) - выводит значения списка в одну строку, после вывода курсор остается в той же строке WriteLn (список) - выводит значения списка в одну строку, затем переводит курсор на новую строку
Если в операторах ввода Read и ReadLn в качестве списка допускалось указывать только имена переменных, то в операторах Write и WriteLn в список можно включать кроме переменных и константы, естественно, отделяя друг от друга запятыми. Пример:
{программа, работающая как калькулятор: компьютер ожидает ввода} {двух чисел, затем выводит их сумму}
Var a,b: Integer; Begin Write ('Введите два числа через пробел '); {вывод строковой константы} Read (a,b); {чтение значений переменных a и b} Writeln (a,'+',b,'=',a+b) {вывод переменной a, вывод константы '+', вывод переменой b, вывод константы '=', вывод значения a+b} End.
Особо следует остановится о т.н. выводе значений переменных "по формату". Для вывода целых чисел Pascal по умолчанию отводит столько позиций, сколько занимает само число. Но можно задать другое, фиксированное количество позиций. Для этого после имени переменной в списке вывода нужно указать через разделитель двоеточие и указать количество позиций вывода. Например:
Read (a,b,c); Write (a:3,b:2,c:5);
Если при выполнении этого фрагмента пользователь введет, предположим, числа 31 -450 8
, то они будут выведены как
31-450 8
Число a займет три позиции (31 будет напечатано с одним пробелом впереди), число c пять позиций (обратите на 4 пробела перед числом 8), а вот на b в программе мы отвели лишь две позиции, и пользователь ввел число, занимающее четыре позиции. Но Pascal отследил такую ситуацию и вывел все цифры числа b, включая минус. Т.е. при недостатке отведенных позиций для вывода на число отводится ровно столько позиций, сколько требуется. Обычно этим обстоятельством пользуются при необходимости напечатать вещественное значение с требуемой точностью.
Формат печати вещественных чисел содержит кроме общего количества позиций количество позиций после десятичной точки, например:
Writeln (x:7:3); {на печать числа x отводится 7 позиций, из них - 3 после запятой} Write (d-fi/4:1:2); {значение выражения d-fi/4 будет напечатано с точностью до сотых}
Если формат вывода выражения вещественного типа не задан, то оно будет напечатано в экспотенциальном виде.