1.В
Турбо-Паскале
7.0
существует
тип данных
STRING
(строка), специально
предназначенный
для обработки
строк (цепочек
символов). Он
не относится
к простым типам
данных и занимает
промежуточное
место между
простыми и
структурированными
типами данных.
Переменная
типа
STRING
состоит из
цепочки символов,
т.е. элементов
типа
CHAR.
Строки могут
выводиться
на экран монитора
посредством
стандартных
процедур
Write
и
WriteLn
и вводится с
помощью стандартной
процедуры
ReadLn
или
Read.
В большинстве
случаев переменные
типа
STRING
используются
для хранения
слов и сообщений,
состоящих из
нескольких
символов.
Переменные
типа
STRING
могут быть
объявлены
следующим
образом:
VAR
Character_string_l:
STRING;
Character_string_2:
STRING[20];
Character_string_3:
STRING[255];
Переменная
типа
STRING
объявляется,
как правило,
путем указания
имени переменной,
зарезервированного
слова
STRING
и указания (в
квадратных
скобках) максимального
размера (длины)
строки, которая
может храниться
в этой переменной.
Если максимальный
размер строки
не указан, то
он автоматически
принимается
равным
255 —
максимально
возможная длина
строки.
В
ТУРБО-ПАСКАЛ
существуют
два пути обработки
переменных
типа STRING.
Первый путь
предполагает
обработку всей
строки как
единого целого,
т.е. единого
объекта. Второй
путь рассматривает
строку как
составной
объект, состоящий
из отдельных
символов, т.е.
элементов типа
CHAR,
которые при
обработке
доступны каждый
в отдельности.
Так, первый
путь предоставляет
возможность
присвоения
строчной переменной
за одну операцию
значения целой
строки символов:
Character_string_l:='
Это
—
строка
!';
Присваиваемое
значение строки,
так же как и
отдельный
символ типа
CHAR,
заключается
в апострофы.
Если апострофы
опущены, то
компилятор
рассматривает
приведенный
фрагмент текста
как числовую
величину или
как идентификатор.
Турбо
Паскаль позволяет
выполнять
операции объединения
(сцепления)
нескольких
строк в процессе
их присваивания
какой-либо
переменной:
Character_string_l:='Это'+'—'
+
'
строка '+'!';
В
результате
такой операции
в переменной
Character_string_l
будет
то же самое
содержимое,
что и в предыдущем
примере.
Второй
подход обеспечивает
доступ к отдельным
символам строки
по номеру их
позиции:
Character_string_l[1]:='
А';
{Занести
в качестве
первого символа
строки 'А'}
Character_string_l[5]:=
#49;
{Занести
в качестве
пятого символа
строки 'Г'
(ASCII-код
'Г'
соответствует
числу
49)
Для
доступа к отдельному
символу в строке
необходимо
указать имя
строки и в квадратных
скобках номер
позиции элемента
(символа) в строке.
При этом по
отношению к
отдельному
символу строки
возможны все
те же операции,
что и к переменной
типа CHAR.
В частности,
возможны взаимные
операции присвоения
значений.
ТУРБО-ПАСКАЛ
предоставляет
в распоряжение
пользователя
целый ряд функций
и процедур,
предназначенных
для обработки
строк.
Процедура
STR
(x[:w[:d]],st)
- преобразует
число x
(типа real
или
integer)
в строку символов
st;
при этом w
задает общую
ширину поля,
выделенную
под соответствующее
символьное
представление
числа x,
а d
-
количество
символов дробной
части.
Процедура
Val
(str,x,rez)-
преобразует
строку символов
st
во внутреннее
представление
целого или
вещественного
числа; параметр
rez
содержит
нуль, если
преобразование
прошло успешно,
в противном
случае он содержит
номер позиции
в строке st,
где обнаружен
ошибочный
символ.
Примеры:
x:=12.125;
str
(x:4:1,s);
writeln
(s);
{на
экран будет
выведено 12.1}
val
(s,x,rez);
writeln
(x:5:2);
{на
экран будет
выведено 12.10}
...
s:=’34w5’;
val
(s,x,rez);
writeln
(rez);
{на
экран будет
выведен номер
символа в строке,
который не
является цифрой,
т.е. 3}.
2.
При создании
программы,
которая будет
использоваться
более одного
раза, необходимо
обеспечить
защиту от
некорректного
ввода данных,
например, проверку
наличия символов
алфавита в
строке с числовыми
данными или
наличие букв
латинского
алфавита, когда
по условию
задачи необходимо
обеспечить
ввод символов
русского алфавита.
Общая
схема «безопасного
ввода» следующая:
вводиться
значение переменной,
осуществляется
его проверка
по различным
критериям,
затем, если оно
не удовлетворяет
какому-либо
критерию, выдается
сообщение об
ошибке и повторяется
ввод. Итак
продолжается
до тех пор, пока
не будет введено
правильное
значение.
Пример:
{данная
процедура
проверяет
наличие символов
латинского
алфавита}
function
chek (st:string);
var
i:integer;
begin
chek:=true;
for
i:=1 to length (st) do
if
st[i]=’A’..’Z’ then chek:=false;
end;
...
{данная
часть программы
показывает
«безопасный
ввод» слов на
русском языке}
repeat
write
(‘Введите
слово на русском
языке ’);
readln
(st);
until
chek(st);
Мурманский
кооперативный
техникум ОПС
РЕФЕРАТ
по
информатике
на
тему: «Оболочка
операционной
системы NC».
Выполнила:
студентка
группы ЗТП-3
Елисеевой
Яны Леонидовны
г. Мурманск,
2000 г.
NORTON
COMMANDER является
типичным примером
«программы-оболочки»,
т.е. надстройки
над
DOS.
Программы-оболочки
позволяют
просто и наглядно
выполнять
большинство
часто необходимых
действий:
просматривать
файлы и каталоги,
копировать
и переименовывать
файлы и т.д. Кроме
того после
запуска программы-оболочки
пользователь
по-прежнему
может вводить
любые команды
и выполнять
программы, т.е.
он сохраняет
все возможности,
предоставляемые
DOS.
NORTON
COMMANDER
позволяет:
наглядно
отображать
содержание
каталогов на
дисках;
изображать
дерево каталогов
на диске, переходить
в нужный каталог,
создавать,
переименовывать
и удалять каталоги;
удобно
копировать,
переименовывать,
пересылать
и удалять файлы;
просматривать
текстовые
файлы, сделанные
с помощью различных
редакторов
текстов
(MS WORD, MS WORKS, WINDOWS WRITE, XYWRITE
и WORDPERTECT),
таблицы табличных
процессоров
(LOTUS
1-2-3
и
SYMPHONY)
и графические
файлы в формате
PAINTBRUSH
(.PCX);
редактировать
текстовые
файлы;
выполнять
любые команды
DOS;
изменять
атрибуты файлов;
с помощью
одного нажатия
клавиши выполнять
стандартные
действия для
каждого типа
файлов;
и многое
другое.
Для
работы программы
NORTON COMMANDER требуется
190
Кбайт на диске
и
210
Кбайт свободной
оперативной
памяти.
Запись
NORTON COMMANDER
осуществляется
набором в командной
строке:
NC
После
запуска
NORTON COMMANDER
в верхней части
экрана появляются
два прямоугольных
окна, ограниченные
двойной рамкой
(далее эти окна
будут называться
панелями).
Ниже
этих панелей
располагается
обычное приглашение
DOS.
Еще ниже располагается
строка, напоминающая
значения
функциональных
клавиш
NORTON COMMANDER.
Для
выхода из
NORTON COMMANDER
надо нажать
клавишу
«F10».
В центре экрана
появится запрос
на подтверждение
того, что вы
хотите выйти
из
NORTON COMMANDER.
Чтобы
выйти, нажмите
ENTER
или
Y.
Чтобы отменить
выход, нажмите
ESC
или
N.
Для
получения
помощи по работе
с
NORTON COMMANDER
следует нажать
клавишу
«F1».
Если вы находитесь
в режиме просмотра
или редактирования
файлов, то на
экран будет
выведена справка
о назначении
клавиш. В других
случаях на
экран выводится
подсказка о
текущем режиме
работы, выделенном
пункте меню,
клавишах управления
используемой
программой
просмотра
файлов и т. д.
Например, если
Вы нажмете
клавишу
«F5»
(копирование
файлов), а затем
«F1»,
то на экран
будет выведена
справка о копировании
файлов.
Если
справка не
помещается
на одном экране,
то ее можно
«перелистывать»
с помощью клавиш
управления
курсором. HOME,
END, PgUp, PgDn.
Для выхода из
режима помощи
следует нажать
клавишу
ESC.
В нижней
части экрана
помощи располагаются
надписи [NEXT],
[PREVIOUS], [INDEX]
и
[CANCEL].
По ним можно
перемещаться
с помощью клавиш
управления
курсором влево,
вправо. Выделив
нужную надпись,
следует нажать
ENTER.
Надписи имеют
следующие
значения:
NEXT
-
перейти к следующему
экрану помощи;
PREVIOUS
-
перейти к предыдущему
экрану помощи;
INDEX
-
вывести оглавление
справочной
информации
NORTON
COMMANDER;
CANCEL
-
выйти из режима
помощи (то же,
что при нажатии
клавиши
ESC)
Можно
также выбрать
нужное действие,
нажав клавишу
с его первой
буквой
(N,P,I,
или С).
При
выборе надписи
[INDEX]
на экран будет
выведено оглавление
справочной
информации
NORTON COMMANDER.
С
помощью клавиш
управления
курсором вверх
и вниз можно
выделить нужный
пункт оглавления
и нажав
ENTER, получить
по нему справку.
Если
требуется
просмотреть
выведенные
на экран результаты
выполнения
команды (они
могут быть
закрыты панелями
NORTON COMMANDER),
нажмите
CTRL+0. Повторное
нажатие
CTRL+0
восстановить
панели на экране.
NORTON
COMMANDER
хранит информацию
о последних
10-15
введенных
командах. Чтобы
вывести в командную
строку предыдущую
выполненную
команду, нажмите
CTRL-E,
в командную
строку будет
выводиться
команда, которая
находится в
командной
строке. При
нажатии CTRL-
X
в командную
строку выводится
команда, которая
находится в
командной
строке. После
того как в командную
строку была
введена подходящая
команда, ее
можно отредактировать
и затем нажать
клавишу
ENTER
для выполнения.
Можно
вывести одну
из ранее выполненных
команд в командную
и таким способом:
набрать несколько
первых букв
этой команды
и нажать
CTRL ENTER.
Если
требуется
выполнить одну
из предыдущих
введенных
команд без
всяких изменений,
можно нажать
ALT F8, выделить
с помощью клавиш
перемещения
курсора вверх
и вниз нужную
команду и затем
нажать клавишу
ENTER
для ее выполнения.
Для
управления
панелями
NORTON COMMANDER можно
использовать
следующие
комбинации
клавиш:
CTRL
О
-
убрать обе
панели с экрана
или вывести
ианели на экран;
CTRL
P -
убрать одну
из панелей (не
текущую) с экрана
или вывести
панель на экран;
CTRL
U
-
поменять панели
местами;
CTRL
F1
-
убрать левую
панель с экрана
или вывести
левую панель
на экран;
CTRL
F2
-
убрать правую
панель с экрана
или вывести
правую панель
на экран;
ALT
F1
-
вывести в левой
панели оглавление
другого диска.
ALT
F2
-
вывести в правой
панели оглавление
другого диска.
NORTON
COMMANDER
может выводить
информацию
об оглавлении
каталога в двух
формах: полной
и краткой. При
полной выдачи
информации
справа от каждого
имени файла
выводится его
размер в байтах,
дата и время
создания или
последней
модификации
файла. Справа
от имени каждого
подкаталога
изображается
.
Самую верхнюю
строку в оглавлении
занимает ссылка
на родительский
каталог (разумеется,
для корневого
каталога диска
эта строка
отсутствует).
В поле имени
для родительского
каталога изображается
«..»,
справа от него
выводится
. При
краткой форме
выдачи информации
выводится
только имя
файла, но зато
в панели помещается
больше имен
файлов. Имена
файлов можно
отличить от
имен подкаталогов
по тому, что
имена файлов
выводятся
строчными
буквами, а имена
подкаталогов
-
прописными.
Переход
от краткой
формы информации
о файлах к полной
и наоборот. Для
того чтобы
перейти от
краткой формы
вывода информации
к полной или
наоборот, надо
нажать следующие
клавиши:
F9
L
В
-
краткая форма
оглавления
на левой панели;
F9
R
В
-
краткая форма
оглавления
на правой панели;
F9
L F
-
полная форма
оглавления
на левой панели;
F9
R F
-
полная форма
оглавления
на правой панели.
В нижней
части панели,
содержащей
оглавление
каталога, находится
строка министатуса.
Она содержит
информацию
о выделенном
файле или о
выбранной
группе файлов.
Эта информация
особенно полезна
при краткой
форме выдачи
информации
о каталоге.
NORTON
COMMANDER
может выводить
информацию
о файлах и
подкаталогах
в панели в различном
порядке. Имеются
следующие
возможности:
алфавитный
порядок имен.
Имена файлов
и подкаталогов
выводятся в
алфавитном
порядке, причем
сначала выводится
информация
о подкаталогах,
а затем о файлах;
алфавитный
порядок расширений.
Имена файлов
подкаталогов
выводятся так,
что расширение
имен файлов
и подкаталогов
оказываются
в алфавитном
порядке, причем
сначала выводится
информация
о подкаталогах,
а затем о файлах;
в порядке
убывания даты
и времени создания
или последней
модификации
файла или создания
каталога. Сначала
выводится
информация
о подкаталогах,
а затем о файлах,
причем более
новые файлы
и подкаталоги
выводятся
первыми;
сначала
выводится
информация
о подкаталогах
в алфавитном
порядке, а затем
информации
о файлах в порядке
убывания их
размера;
файлы
и подкаталоги
выводятся в
том порядке,
в котором они
записаны в
каталоге.
Для
того чтобы
изменить порядок
вывода информации
о файлах и каталогах
в панели
NORTON COMMANDER, необходимо:
нажать
клавишу
«F9»;
нажать
L
для изменения
порядка вывода
информации
о файлах и каталогах
на левой панели
или
R -
на правой панели;
нажать
одну из следующих
клавиш:
N
-
(NAME) -
сортировка
по имени;
Е
-
(EXTENSION) -
сортировка
по расширению;
Т
-
(TIME) -
сортировка
по времени;
S
-
(SIZE) -
сортировка
по размеру;
U
-
(UNSORTED)
-
несортированное
оглавление
каталога
-
В панели
NORTON COMMANDER
можно вывести
свободную
информацию
о диске и каталоге
на другой панели.
На
верху такой
информационной
панели выводится
строка «INFO».
В панели изображаются
следующие
сведения:
емкость
оперативной
памяти компьютера
в байтах (...BYTES
MEMORY);
количество
свободной
оперативной
памяти в байтах
(... BYTES
FREE);
емкость
текущего диска
в байтах
(...
BYTES ON DRIVE)
количество
свободное места
текущем диске
(...
BYTES FREE ON DRIVE
...);
количество
файлов в каталоге,
выведенном
на другой панели
NORTON COMMANDER,
и их общий размер
в байтах
(...
FILES USE
...
BYTES
IN
).
Если
на другой панели
выводится
дерево каталогов
на диске или
информационная
панель, то эти
сведения не
приводятся.
Для
того, чтобы
вывести на
экран информационную
панель, надо
нажать комбинацию
клавишей
CTRL L.
При этом та
панель, которая
не является
текущей, станет
информационной-
Чтобы в этой
панели стало
снова изображаться
оглавление
каталога, надо
опять нажать
CTRL L.
В
нижней строке
экрана
NORTON COMMANDER выводится
напоминание
о значении
функциональных
клавиш.
Приведем
краткое описание
их назначения.
F1
-
HELP -
краткая информация
о назначении
клавиш при
работе с
NORTON COMMANDER;
F2
-
MENU
-
запуск команд,
указанных в
списке, заданном
пользователем
(пользовательском
меню, см. ниже);
F3
-
VIEW -
просмотр файла.
Можно
просматривать
текстовые
файлы, документы,
сделанные с
помощью текстовых
редакторов
тексты, базы
данных и таблицы
табличных
процессоров,
например, файлы
MICROSOFT
WORD, DBASE
и
LOTUS
1-2-3;
F4-
EDIT-
редактирование
файла. Для
редактирования
может быть
использован
встроенный
редактор
NORTON COMMANDER
или любой другой
редактор, указанный
пользователем;
F5
-
COPY -
копирование
файла. В середине
экрана появляется
запросотом,
куда копировать
файл. По умолчанию
файл копируется
в каталог,
изображенный
на другой панели.
Можно набрать
и другое имя
каталога. Затем
для копирования
надо нажать
ENTER,
для отмены
команды
-
ESC;
F6
-
RENMOV
-
переименование
файла (каталога)
или имя каталога,
в который надо
переслать
данный файл.
Для начала
переименования
или пересылки
надо нажать
ENTER, для
отмены команды
- ESC;
F7
-
MKDIR
-
создание подкаталога;
F8
-
DELETE -
уничтожение
файла или
подкаталога;
F9
-
PULLDN
-
выводится меню,
содержащее
режимы работы
NORTON COMMANDER
F10
-
QUIT
-
вывод из
NORTON COMMANDER.
Если
нажать клавишу
ALT,
то последняя
строка экрана
изменится. В
ней будет выводиться
подсказка о
значении комбинаций
клавиш
ALT F1
-
ALT F10.
Ниже
кратко описано
назначение
комбинаций
клавиш ALT
F1 -
ALT
F10:
ALT
F1 -
выбор диска,
изображаемого
на левой панели;
ALT
F2
-
выбор диска,
изображаемого
на правой панели;
ALT
F3
-
VIEW -
просмотр текстового
файла. Этот
режим вызывается
быстрее, но
позволяет
просматривать
только текстовые
файлы и не имеет
некоторых
возможностей,
доступных при
просмотре с
помощью нажатия
клавиши
F3;
ALT
F4
-
EDIT -
редактирование
файла с помощью
альтернативного
редактора
ALT
F7
-
FIND -
поиск файла
на диске
ALT
F8
-
HISTORY -
просмотр и
повторное
выполнение
ранее введенных
команд;
ALT
F9 -
EGA LN
-
переключение
с
25
на
43
(для монитора
EGA)
или
50
(для монитора
VGA)
строк на экране
и наоборот;
ALT
F10 -
быстрый переход
в другой каталог.
Копирование
файлов.
Для
копирования
файлов с помощью
NORTON COMMANDER
надо выделить
нужный файл
или выбрать
группу файлов
и нажать клавишу
F5.
Перезапись
файла при
копировании.
Если имя файла,
который надо
создать при
копировании,
уже имеется
в том каталоге,
в который
производится
копирование,
то на экран
будет выдано
сообщение.
В
ответ на это
сообщение Вы
можете с помощью
клавиш влево,
вправо выбрать
один из ответов
и нажать
ENTER. Ответы
могут быть
такими:
OVERWRITE-
разрешить
копирование.
Существовавший
файл с тем же
именем будет
уничтожен. Если
копируется
более одного
файла, то операция
будет продолжена
и при повторении
ситуации на
экран опять
будет выдано
такое же сообщение;
SKIP
-
не разрешить
копирование
этого файла.
Если копируется
более одного
файла, то операция
копирования
будет продолжена
и при повторении
ситуации на
экран опять
будет выдано
такое же сообщение;
ALL
-
разрешить
копирование
этого и всех
последующих
файлов без
дальнейших
запросов.
Можно
также нажать
клавишу
ESC
для прекращения
процесса копирования.
Переименование
и пересылка
файлов.
Для
переименования
или пересылки
в другой каталог
файлов с помощью
NORTON COMMANDER
надо выделить
переименовываемый
или пересылаемый
файл или выбрать
группу файлов
и нажать клавишу
F6.
При этом
NORTON COMMANDER
будет переименовывать
или пересылать
в другой каталог
следующие
файлы:
если
на панели выбраны
какие-либо
файлы (они
изображаются
желтым цветом
на цветном
дисплее и повышенной
яркостью на
монохромном
дисплее)
-
то переименовывается
или пересылается
в другой каталог
выбранная
группа файлов;
в
противном
случае
-
переименовывается
или пересылается
в другой каталог
текущий (выделенный
курсором) файл.
Пересылка
файлов осуществляется
следующим
образом:
если
файл пересылается
в другой каталог
того же диска,
то содержимое
файла остается
на том же месте
диска, а в другой
каталог включается
только ссылка
на этот файл
(т.е. элемент
каталога), а из
исходного
каталога эта
ссылка исключается.
Такой способ
пересылки
работает очень
быстро;
если
файл пересылается
на другой диск,
то он просто
копируется
туда, и после
успешного
окончания
копирования
исходный файл
уничтожается.
Для
удаления файлов
с помощью
NORTON COMMANDER
надо выделить
нужный (Ьайл
или выбрать
группу файлов
и затем нажать
клавишу
F8.
NORTON
COMMANDER
позволяет
вывести на
панель дерево
каталогов на
диске. При этом
можно с помощью
клавиш управления
курсором перемещаться
по дереву каталогов,
просматривая
в другой панели
содержимое
выделенного
каталога. С
помощью клавиш
+
и
-
(плюс и минус
на правой части
клавиатуры)
можно перемещаться
к следующему
и предыдущему
каталогу той
же степени
вложенности.
Для
того чтобы
вывести на
панель
NORTON COMMANDER
дерево каталогов
на диске, следует:
нажать
клавишу
F9;
нажать
L
для левой панели
или
R
для правой
панели;
нажать
клавишу Т.
'
Для
возврата в
режим вывода
информации
о файлах в панели
следует:
нажать
клавишу
F9;
нажать
L
для левой панели
или
R -
для правой
панели;
нажать
F
для вывода
полной информации
о файлах или
В для вывода
краткой информации
о файлах.
Быстрый
поиск каталога.
Для того чтобы
быстро выделить
каталог в панели
с деревом каталогов
на диске, следует
нажать клавишу
ALT
и, не отпуская
ее, набрать
первые буквы
имени каталога.
NORTON COMMANDER
выделит каталог,
как только Вы
введете достаточное
количество
букв его имени.
Чтобы выделить
следующий
каталог, имя
которого начинается
с тех же букв,
нажмите
CTRL ENTER.
Если хотите
выйти из режима
быстрого поиска
каталога, нажмите
ESC.
Для
того чтобы в
панели
NORTON COMMANDER вывести
оглавление
другого диска,
следует нажать
ALT F1
-для
левой панели,
ALT F2
-
для правой
панели. На экран
будет выведен
список доступных
дисков.
NORTON
COMMANDER
позволяет
быстро сравнить
оглавления
каталогов,
изображенных
на его панелях.
Для этого следует
нажать
F9
С С, т.е. выбрать
пункты меню
«COMMANDS»,
«COMPARE DIRECTORIES».
После
этого
NORTON COMMANDER
отмечает в
каждой из панелей
следующие файлы
(они будут
изображаться
желтым цветом
на цветном
дисплее и повышенной
яркостью на
монохромном
дисплее):
файлы,
которые отсутствуют
в каталоге,
изображенном
на другой панели;
файлы,
которые имеют
более позднюю
дату их создания
или последней
модификации,
чем у такого
же файла в каталоге,
изображенном
на другой панели.
Чтобы
сделать каталоги
одинаковыми,
можно сравнить
их с помощью
NORTON COMMANDER,
а затем нажать
F5 и
ENTER
на каждой из
панелей.
Работа
с меню.
Для входа в
меню следует
нажать клавишу
F9.
В верхней строке
экрана появится
строка, содержащая
пункты меню.
«LEFT»
BRIEF
-
в панели изображается
краткая информация
о файлах;
FULL
-
в панели изображается
полная информация
о файлах (выводится
имя, размер,
дата создания
или последней
модификации);
INFO
-
в панели изображается
свободная
информация
о каталоге и
диске на другой
панели;
TREE
-
в панели изображается
дерево каталогов
на диске;
QUICK
VIEW -
в панели изображается
содержимое
файла, указанного
курсором на
другой панели;
LINK
-
устанавливается
или отменяется
режим связи
между компьютерами;
ON/OFF
-
данная панель
выводится или
не выводится
на экран;
NAME
-
файлы выводятся
в алфавитном
порядке;
EXTENSION
-
файлы выводятся
так, что расширения
имен файлов
оказываются
в алфавитном
порядке;
TIME
-
файлы выводятся
в порядке убывания
даты последней
модификации:
более новые
файлы выводятся
первыми;
SIZE
-
файлы выводятся
в порядке убывания
их размера;
UNSORTED
-
файлы и каталоги
выводятся в
том порядке,
в котором они
записаны в
каталоге;
RE-READ
-
повторное
чтение оглавления
каталога;
FILTER
-
режим изображения
в панели не
всех файлов
каталога, а
только части;
DRIVE
-
переход на
другой дисковод.
«FILES»
HELP
-
получение
справки («помощи»);
USER
MENU -
вывод меню
команд пользователя;
VIEW
-
просмотр файла;
EDIT
-
редактирование
файла;
COPY
-
копирование
файла или группы
файлов;
RENMOV
-
переименование
файла (файлов)
или каталога,
пересылка файла
(файлов) в другой
каталог;
MKDIR
-
создание подкаталога;
DELETE
-
уничтожение
файла, группы
файлов или
каталога;
FILE
ATTRIBUTES -
установка
атрибутов
файлов;
SEND
FILES -
пересылка файла
или группы
файлов с помощью
электронной
посты;
SELECT
GROUP
-
выделение
группы файлов
по маске (то
же, что клавиша
+
на правой части
клавиатуры);
UNSELECT
GROUP -
отмена выделения
группы файлов
по маске (то
же, что клавиша
-
на правой части
клавиатуры);
QUIT
-
выход из
NORTON COMMANDER;
«COMMANDS»
NCD TREE
-
вывод на экран
дерева каталогов
на диске для
быстрого перехода
в другой каталог
(то же, что каманда
ALT F10);
FIND
FILE
-
поиск файла
на диске
-
ALT F7;
HISTORY
-
просмотр команд,
введенных в
командной
строке
DOS.
Клавишами
перемещения
курсора вверх,
вниз можно
выделить одну
из этих команд.
Нажав клавишу
ENTER,
можно затем
выполнить
заданную команду.
Такой просмотр
можно сделать
также, нажав
ALT F8;
EGA
LINES
-
переключение
в режим вывода
43
строк на экран
и обратно, в
режим-вывода
25
строк на экран.
-
ALT F8;
SWAP
PANELS
-
панели
NORTON COMMANDER «меняются
местами»
-
то, что было
изображено
на одной панели,
изображается
на другой.
-
CTRL U;
PANELS
ON/OFF
-
удаление панелей
NORTON COMMANDER
с экрана или
восстановление
их на экране
-
CTRL О;
COMPARE
DIRECTORIES -
сравнение
каталогов,
изображенных
на панелях
NORTON COMMANDER.
В каждом каталоге
выделяются
файлы, отсутствующие
в другом каталоге
или имеющие
в другом каталоге
иной размер
или более раннюю
дату последнего
обновления;
SEND/RECEIVE
MAIL -
позволяет
переслать по
электронной
почте сообщения,
указанные в
выходном каталоге
почты и принять
сообщение во
входной каталог
почты;
COMMANDER
MAIL -
позволяет
создать новые
сообщения для
отправки по
электронной
почте и просмотреть
сообщения,
полученные
с помощью электронной
почты;
MENU
FILE EDIT
-
редактирование
списка команд,
выводимого
при нажатии
пользователем
клавиши
F2;
EXTENSION
FILE EDIT
-
редактирование
файла
NC.EXT, задающего
действие
NORTON COMMANDER
при нажатии
пользователем
клавиши
ENTER
в зависимости
от расширения
имени выделенного
файла.
«OPTIONS»
CONFIGURATION-
установка
конфигурации
NORTON COMMANDER;
EDITOR
-
указание редактора,
вызываемого
при нажатии
клавиши
F4;
AUTO
MENU -
после выполнения
одной из команд
пользовательского
меню на экран
опять выводится
пользовательское
меню;
PATH
PROMPT -
когда этот
режим включен,
то приглашение
внизу экрана
включает информацию
о текущем диске
и текущем каталоге,
а если он выключен,
то только о
текущем диске;
KEY
BAR -
когда этот
режим включен,
в последней
строке экрана
выводится
напоминание
о значениях
функциональных
клавиш.
-
CTRL
В;
FULL
SCREEN -
выводить панели
NORTON COMMANDER
размером в
полный экран
или в половину
экрана;
MINI
STATUS -
когда этот
режим включен,
в нижней части
каждой панели
выводится
строка с информацией
о текущем файле;
CLOCK
-
выводить в
правом верхнем
углу экрана
текущее
время;
SAVE
SETUP -
сохранить
установленные
режимы работы
NORTON
COMMANDER.
При следующем
запуске
NORTON COMMANDER
все его режимы
будуттакими
же, как в момент
выполнения
команды
«SAVE SETUP».
-
SHIFT F9.
Для
установки
параметров
конфигурации
NORTON COMMANDER
следует выбрать
пункты меню
«OPTIONS», «CONFIGURATION»,
т. е. нажать клавиши
F9,
О, С. NORTON
COMMANDER
выведется на
экран панель
запроса параметра
конфигурации.
Список
литературы
Т. Б.
Волобуева.
Курс пользователя
персонального
компьютера.
М., 1995.
В.
Фигурнов. IBM
PC
для пользователя.
М., 1997.
Мурманский
кооперативный
техникум ОПС
РЕФЕРАТ
по информатике
на тему:
«Операционная
система Windows
95».
Выполнила:
студентка
группы ЗТП-3
Туркова
Н.
г. Мурманск,
2000 г.
План
Объектно-ориентированный
подход. 3
От процедурного
подхода к
объектно-ориентированному. 4
Использование
стандарта Plug
& Play. 6
32-разрядная
ОС защищенного
режима. 7
Работа
с памятью. 8
Отличительные
особенности
Windows
95. 9
1. Объектно-ориентированный
подход.
При создании
Windows
95 фирма
Microsoft в
полной мере
реализовала
объектно-ориентированный
подход. Поскольку
именно он лег
в основу новой
операционной
системы, вначале
нужно сказать
несколько слов
о том, что такое
ориентация
на объекты.
Понятие
«объектно-ориентированный»
возникло в
программировании
сравнительно
недавно. Когда
вычислительная
мощность машин
была невысока,
о создании
объектно-ориентированных
систем не могло
быть и речи.
Основой всего
был программный
код.
Программисты
записывали
последовательности
команд для
выполнения
тех или иных
действий над
данными, которые
оформлялись
в модули и процедуры.
Для работы с
каждым объектом
создавалась
своя процедура.
Постепенно
с увеличением
производительности
вычислительных
систем процедурный
подход начал
заменяться
объектным. На
первое место
выдвинулся
объект, а не
код, который
его обрабатывает.
На уровне
пользователя
объектный
подход выражается
в том, что интерфейс
представляет
собой подобие
реального мира,
а работа с машиной
сводится к
действиям с
привычными
объектами. Так,
папки можно
открыть, убрать
в портфель,
документы
— просмотреть,
исправить,
переложить
с одного места
на другое, выбросить
в корзину, факс
или письмо
— отправить
адресату и т.
д. Понятие объекта
оказалось
настолько
широким, что
до сих пор не
получило строгого
определения.
Объект,
как и в реальном
мире, обладает
различными
свойствами.
Программист
или пользователь
может изменять
не все свойства
объектов, а
только некоторые
из них. Можно
изменить имя
объекта, но
нельзя изменить
объем свободного
места на диске,
который также
является его
свойством.
Свойства первого
типа в языках
программирования
носят название
read/write (для
чтения и записи),
а свойства
второго
—
read only (только
для чтения).
Метод
— это
способ воздействия
на объект. Методы
позволяют
создавать и
удалять объекты,
а также изменять
их свойства.
Например, для
того чтобы
нарисовать
на экране точку,
линию или плоскую
фигуру, составляются
разные последовательности
кодов или программы.
Пользователь,
однако, применяет
для отображения
этих объектов
один метод
Draw
(), который
содержит коды
для отображения
всех объектов,
с которыми он
работает. За
такое удобство
приходится
платить тем,
что объектно-ориентированные
системы могут
работать только
на достаточно
мощных вычислительных
установках.
От
процедурного
подхода к
объектно-ориентированному.
В начале
90-х гг. процедурный
подход все еще
преобладает,
однако намечаются
и некоторые
признаки
объектно-ориентированного.
Например, уже
в
Windows 3+ можно
поставить в
соответствие
конкретному
документу
приложение
для его обработки.
Тогда же появился
метод объектного
связывания
и встраивания
(OLE), позволяющий
щелчком на
изображении
объекта неявно
запустить
приложение,
которое его
обрабатывает,
а после окончания
обработки
вернуться в
предыдущее
приложение.
С
OLE тесно
связан так
называемый
метод редактирования
документов
«на месте»
(in-place). Если
в документ
встроен объект,
который должен
обрабатываться
конкретным
приложением,
то при щелчке
на этом объекте
нужное приложение
неявным образом
запускается,
причем в рабочем
поле не изменяется
ничего, кроме
панелей инструментов.
Например, если
в тексте, который
обрабатывается
в редакторе
Microsoft Word, есть
таблица, созданная
с помощью
Microsoft Excel, то
при щелчке на
ней произойдет
замена панелей
инструментов
Word на
панели инструментов
Excel. Пользователь
может обрабатывать
документ совсем
другим приложением,
даже не подозревая
об этом.
Еще один
механизм, который
упростил работу
и приблизил
эру объектно-ориентированного
подхода, называется
«Drag & Drop»,
что в буквальном
переводе означает
«перетащить-и-оставить».
Работая этим
методом, вы
щелкаете кнопкой
мыши (как правило,
левой) на изображении
объекта, перемещаете
его по экрану
при нажатой
кнопке и отпускаете
кнопку, когда
указатель
окажется в
нужном месте
экрана. Таким
образом, процедуры
копирования,
перемещения
и удаления
стали объектно-ориентированными.
Что делал
пользователь,
когда ему нужно
было удалить
файлы в операционной
системе
MS-DOS? Он
запускал процедуру
удаления файлов,
передавая их
имена в качестве
параметров:
del FILE1.TXT FILE2.TXT
Это действие
ничем не напоминает
реальный мир,
в котором вы
просто выбрасываете
ненужные бумаги
в мусорную
корзину. На
первом месте
для вас стоит
объект (бумага),
над которым
выполняется
процедура
(переноса в
мусорную корзину).
В операционных
оболочках,
которые работают
под управлением
Windows 3+, такое
действие уже
реализовано
как объектно-ориентированное
— с
помощью механизма
«Drag & Drop».
Например, в
оболочке
Norton Desktop можно
схватить мышью
файл и перенести
его на изображение
мусорной корзины.
Этого достаточно
для удаления
файла. Так работа
на персональном
компьютере
все больше
напоминает
манипуляции
с объектами
в реальном
мире.
Использование
стандарта
Plug & Play.
Подход
к аппаратному
обеспечению
также кардинальным
образом изменился.
Теперь система
использует
стандарт
Plug & Play
(переводится
как «включил-и-работай»,
произносится
чаще всего как
«плаг-н-плэй»),
что облегчает
и максимально
автоматизирует
процесс добавления
новых периферийных
устройств.
Стандарт
Plug & Play —
это совместная
разработка
фирм
Intel и
Microsoft. Основная
его идея заключается
в том, что каждое
устройство,
соответствующее
этому стандарту,
сообщает о себе
определенную
информацию,
благодаря
которой операционная
система выполняет
автоматическую
конфигурацию
периферийных
устройств и
разрешает
аппаратные
конфликты.
Стандарту
Plug & Play
должен в первую
очередь удовлетворять
BIOS материнской
платы и, разумеется,
периферийные
устройствам.
32-разрядная
ОС защищенного
режима.
MS-DOS
была чисто
16-разрядной
операционной
системой и
работала в
реальном режиме
процессора.
В версиях
Windows
3.1 часть
кода была
16-разрядной,
а часть
—
32-разрядной.
Windows
3.0 поддерживала
реальный режим
работы процессора,
при разработке
версии
3.1 было
решено отказаться
от его поддержки.
Windows
95 является
32-разрядной
операционной
системой, которая
работает только
в защищенном
режиме процессора.
Ядро, включающее
управление
памятью и
диспетчеризацию
процессов,
содержит только
32-разрядный
код. Это уменьшает
издержки и
ускоряет работу.
Только некоторые
модули имеют
16-разрядный
код для совместимости
с режимом
MS-DOS.
32-разрядные
устанавливаемые
файловые системы.
Эта часть
операционной
системы стала
гораздо более
производительной,
чем аналогичные
компоненты
Windows 3+. Для
жестких дисков
используются
виртуальные
таблицы распределения
файлов (VFAT),
а для компакт-дисков
— новая
файловая система
CDFS (CD-ROM File System).
При этом имена
файлов могут
содержать до
255 знаков,
включая пробелы
и специальные
символы (совместимость
со старой файловой
системой сохранена,
хотя и несколько
искусственным
путем.). Теперь
в большинстве
случаев не
требуется
модуль
MSCDEX.
ЕХЕ, выполнявший
преобразование
файловой системы
стандарта
ISO-9660
(компакт-диска)
к файловой
системе
MS-DOS.
Устанавливаемая
файловая система,
которая отображает
файловую структуру
удаленной
машины на сетевой
диск рабочей
станции, называется
сетевым редиректором.
Сетевые редиректоры
для протоколов
IPX/SPX и
NetBEU также
используют
32-разрядный
код. Протокол
NetBEU применяется
при работе
Windows
3.1,
a IPX/ SPX—для
связи с машинами,
на которых
установлена
Windows NT.
Работа
с памятью.
Windows
95 автоматически
освобождает
всю память,
отведенную
приложению,
после того, как
оно заканчивает
работу. В
Windows 3+
некорректно
написанные
приложения
нередко освобождали
не всю запрошенную
ими память.
Время от времени
памяти оказывалось
настолько мало,
что единственным
выходом оставался
перезапуск
системы (а иногда
и перезагрузка
машины). Такая
неприятность
носит название
«утечка памяти»
(«memory leak»)
и случается
с программными
произведениями
даже известнейших
фирм. При завершении
приложения
в
Windows
95 вся
память, занимаемая
им, освобождается
автоматически,
и таких проблем
не возникает.
Разумеется,
на свете не
бывает ничего
бесплатного
(кроме сыра в
мышеловках).
За удобства
объектно-ориентированного
подхода и
быстродействие
приходится
платить огромным
размером кода
операционной
системы (она
занимает десятки
мегабайт) и
временем, затраченным
программистами
на создание
ее компонентов.
Кроме этого,
для большинства
используемых
приложений
должны быть
созданы 32-разрядные
версии. Только
тогда они в
полной мере
смогут использовать
преимущества
Windows
95.
Новая
система оказалась
также весьма
чувствительной
к аппаратуре,
на которой она
работает. Хочется
верить, что это
временные
трудности,
которые в дальнейшем
удастся преодолеть.
Проблемы выбора
аппаратных
средств подробно
рассмотрены
в последней
главе, а сейчас
мы поговорим
о совместимости
приложений
DOS и Windows
3+ с новой
операционной
системой.
6. Отличительные
особенности
Windows
95.
Объектно-ориентированный
подход реализуется
через модель
рабочего стола.
Windows
95 обходится
без привычного
в
Windows
3+ диспетчера
программ
(program manager).
Пользователь
работает с
задачами и
приложениями
так же, как с
документами
на своем письменном
столе.
Это удобно
для людей, которые
первый раз
увидели компьютер,
но создает
некоторые
трудности
«переходного
периода» для
тех, кто привык
считать программу
основой всего
сущего в машине.
Итак, одно
из главных
отличий
Windows
95 от
Windows 3+ (и
от подавляющего
большинства
других операционных
систем) состоит
в том, что основной
упор в ней делается
на документ,
а программа,
задача, приложение
или программный
код вообще
рассматриваются
только как
инструмент
для работы с
документом.
Другая
принципиальная
особенность
Windows
95 состоит
в том, что она,
в отличие от
Windows 3+, является
«настоящей»
операционной
системой (а не
операционной
оболочкой,
выполняемой
под управлением
MS-DOS). Под
словом «настоящая»
мы подразумеваем
то, что при включении
машины сразу
выполняется
загрузка
Windows
95. Для
пользователя
это оборачивается
некоторыми
неудобствами.
Он должен привыкнуть
к тому, что прежде
чем выключить
машину, нужно
корректно
завершить
работу с
Windows
95, поскольку
новая операционная
система создает
буфера в оперативной
памяти, и их
содержимое
должно быть
сброшено на
диск.
Список
литературы
А.В. Потапкин.
Операционная
система Windows
95. М., 1996.
Г.В. Саенко.
Курс пользователя
ПК. Донецк, 1997.
В.
Фигурнов. IBM
PC для
пользователя.
М., 1998.
Задание 1.
(вариант Б)
1.Значение
логического
типа обозначаются
встроенными
идентификаторами
констант TRUE
(истина) и
FALSE (ложь).
При внутреннем
представлении
они занимают
1 байт памяти.
Справедливо
условие: True>FALSE.
Логические
выражения имеют
значения типа
boolean,
т.е. TRUE
или FALSE.
Для операндов
типа boolean
определены
следующие
логические
операции:
NOT—
логическое
НЕ;
AND—
логическое
И;
OR—
логическое
ИЛИ;
XOR—
логическое
исключающее
ИЛИ.
Для операндов
простых типов
данных и строк
применимы
операции отношения:
=,<,<=,>,>=,<>,in.
Примеры логических
выражений:
1
3 2
if (i>0)
and (j<0) or (i<0) and (j>0) then i:=2;
В данном примере
проверяется
два условия
либо одновременно
i положительно
и j
отрицательно,
либо наоборот—
i отрицательно
и j
положительно,
при истинности
одного из этих
условий переменной
i
присваивается
значение 2.
1 2
If not a
then b:=false;
В
данном примере
если переменная
a
имеет значение
false
переменной
b
присваивается
значение false.
1 2 3
If
not a or b then a:=b;
В данном примере
переменной
а присваивается
значение,
содержащееся
в переменной
b,
при условии,
что а имеет
значение false
или b
true.
2. В языке Паскаль
ввод-вывод
информации
осуществляется
через файловые
переменные.
Перед тем, как
осуществить
ввод-вывод,
файловая переменная
должна быть
связана с конкретным
внешним файлом
с помощью процедуры
ASSIGN.
Этим файлом
может быть файл
на магнитном
диске, а также
устройство
вычислительного
комплекса.
Затем файл
должен быть
открыт для
чтения и/или
записи. После
этого можно
осуществлять
организацию
ввода-вывода.
После работы
с файлом он,
как правило,
должен быть
закрыт с помощью
процедуры
CLOSE.
Это требование
обязательно
должно соблюдаться
для файла, в
который производилась
запись.
Процедура
ASSIGN
(Var_file, Road): с помощью
этой процедуры
вы связываете
файловую переменную
Var_file
с некоторым
именем файла,
которое хранится
в переменной
Road.
Var
Var_file: file of integer;
Road: string[14];
...
Road:=’Data.dat’;
Assign (Var_file, Road);
Вы не можете
связывать
некоторую
файловую переменную
с файлом посредством
этой процедуры
в том случае,
если данный
файл уже открыт.
Процедура
Reset:
данная процедура
открывает
существующий
файл данных,
имя которого
перед этим было
связано при
помощи процедуры
Assign
с некоторой
файловой переменной,
указанной в
процедуре Reset
как параметр.
Assign
(var_file, ‘Data.dat’);
Reset
(Var_file);
Данная процедура
содержит
необязательный
параметр Size
целого типа,
который используется
только с файлами
без типа и задает
размер пересылаемого
элемента информации
в байтах. По
умолчанию этот
параметр равен
128. Файл
текстового
типа может быть
открыт либо
для чтения
процедурой
Reset,
либо для записи
процедурой
Rewrite или
Append.
Процедура
Rewrite:
создает новый
файл и открывает
его для записи
или чтения.
Если файл с
таким именем
уже существует,
его содержимое
стирается, а
сам файл открывается
заново.
Rewrite
(Var_file);
открывает
существующий
файл, связанный
с файловой
переменной
Var_file.
Процедура
Close:
закрывает ранее
открытый файл,
связанный с
указанной
переменной
в качестве
параметра
файловой переменной.
Close
(Var_file);
При попытке
закрыть файл,
который не был
до этого открыт
или который
уже закрыт,
возникает
ошибочная
ситуация.
Процедура
Rename:
позволяет
переименовать
существующий
файл, связанный
с указанной
в качестве
параметра
файловой переменной.
Данная процедура
применяется
только к закрытым
файлам.
Assign
(Var_file, ‘Data.dat’);
Rename
(Var_file, ‘Text.dat’);
Процедура
Erase:
стирает существующий
файл с диска.
При этом файловая
переменная
должна быть
предварительно
связана с реально
существующим
файлом.
Assign
(Var_file, ‘Data.dat’);
Erase
(Var_file);
Функция EOF:
используя
данную логическую
функцию, в процессе
считывания
информации
Вы можете проверить,
достигнут ли
конец файла,
т.е. находится
ли указатель
файла за последним
элементом или
нет.
While not EOF
(Var_file) do
read (Var_file, m[i]);
данный фрагмент
программы
иллюстрирует
процесс чтения
элементов
массива из
файла, связанного
с переменной
Var_file,
до тех пор, пока
не будет достигнут
конец файла.
Функция IOResult:
предназначена
для поиска
ошибок, возникающих
при работе с
файлами. Эта
функция возвращает
результат
последней
операции
ввода-вывода,
если автоматический
контроль за
ошибками,
возникающими
в процессе
операций
ввода-вывода,
отключен с
помощью директивы
компилятора
{$I-}.
При безошибочном
выполнении
операций ввода-вывода
данная функция
возвращает
ноль, если же
ошибка имела
место, то данная
функция возвращает
код ошибки.
{$I-}
Reset (‘C:\data.dat’);
if IOResult
<>0 then writeln (‘ Ошибка
при открытии
файла’);
{$I+}
Тип файл представляет
собой последовательность
компонент
одного типа,
расположенных
на внешнем
устройстве.
Компоненты
могут быть
любого типа,
за исключением
типа файл (или
содержащего
компоненты
типа файл) и
типа объекта.
Число компонент
в файле не
объявляется.
Для задания
типа файл следует
использовать
зарезервированные
слова file
и of,
после чего
указать тип
компонент
файла.
Type
number
= file of integer;
symb
= file of ‘A’..’Z’;
Стандартный
тип Text
определяет
тип файла, содержащий
символы, объединенные
в строки. Следует
иметь ввиду,
что тип Text
в Турбо-Паскале
не эквивалентен
тину file
of char.
Введя файловый
тип, можно определять
переменные
файлового типа:
Var
F1:number;
F2:Text;
В Турбо-Паскале
можно использовать
файл без типа,
при определении
которого не
указывается
тип компонент.
В этом случае
работа с файлом
осуществляется
на физическом
уровне в соответствии
с внутренним
форматом его
данных. При
этом реальные
компоненты
файла могут
иметь и различный
тип.
Тип
файл можно
определять
и непосредственно
при введении
файловых переменных.
Файловые переменные
имеют специфическое
применение.
Над ними нельзя
выполнять
никаких операций
(присваивание
значений, сравнивание
и т.д.). Кроме того,
через файловую
переменную
можно получить
информацию
о конкретном
файле (тип,
параметры, имя
и т.д.).
Задание 2.
(вариант 7)
uses crt;
var x,z:real;
begin
clrscr;
write ('Введите x:');
readln (x);
z:=sqrt(abs(x*cos(x))+sin(x/2)*sqr(sin(x/2)));
clrscr;
writeln ('x=',x:5:2,' z=',z:5:2);
end.
Задание 3а.
(вариант 6)
uses crt;
var x:array[1..10] of integer;
y:array[1..10] of boolean;
z:real;
i:integer;
begin
clrscr;
for i:=1 to 10 do
begin
y[i]:=false;
x[i]:=random(100);
end;
for i:=1 to 10 do
if frac(x[i]/2)=0 then y[i]:=true;
for i:=1 to 10 do write (x[i]:4,';');
writeln;
for i:=1 to 10 do
if y[i]=true then write (i:4);
end.
Задание 4.
(вариант 7)
uses crt;
type traz=record
city:string[50];
dat:string[8];
tor:string[5];
dr:integer;
price:real;
end;
var f1:file of traz;
f2:text;
raz:traz;
n:char;
flag:boolean;
function chek(s:string):boolean;
var i:integer;
begin
chek:=true;
for i:=1 to 5 do
if not((s[i] in ['0'..'9']) or (s[i]=':')) then chek:=false;
end;
begin
clrscr;
assign (f1,'1.dat');
assign (f2,'1.txt');
rewrite (f1);
append (f2);
repeat
clrscr;
write ('Введите
город:');
readln(raz.city);
write (' Введите дату
разговора:');
readln(raz.dat);
write (' Введите время
разговора');
repeat
readln (raz.tor);
flag:=chek(raz.tor);
if flag=false then writeln ('Ошибка!!!
Повторите
ввод:');
until flag;
write(' Введите
длительность
разговора:');
readln (raz.dr);
write ('Введите
стоимость:');
readln (raz.price);
write ('Продолжить?
«*»-
закончить
ввод!');
readln (n);
write (f1,raz);
until n='*';
reset (f1);
while not eof(f1) do
begin
read (f1,raz);
if
raz.city='Санкт-Петербург'
then write (f2,raz.dat:9,raz.tor:6,raz.dr:5,raz.price:6:2);
end;
close (f1);
close (f2);
end.
Список литературы
А.М.
Епанешников.
Программирование
в среде Turbo
Pascal 7.0. М., 1997.
Турбо
паскаль 7.0. Киев,
1996.
В.В.
Качала. Основы
программирования
на языке Турбо-паскаль.
Мурманск, 1994.
Задание
1.
Вариант
П.
1. Операторы
цикла позволяют
многократно
выполнять
отдельный
оператор или
последовательность
операторов,
причет при этом
нет необходимости
записывать
в тексте программы
одинаковые
операторы
несколько раз.
Оператор цикла
REPEAT
организует
выполнение
цикла, состоящего
из любого числа
операторов,
с неизвестным
заранее числом
повторений.
Тело цикла
выполняется
хотя бы один
раз. Выход из
цикла осуществляется
при истинности
некоторого
логического
выражения.
Структура этого
оператора:
repeat
operator1;
operator2;
operator3;
. . .
operatorN
until
S;
В этой структуре:
operator1..N -
выполняемые
операторы,
составляющие
тело цикла;
S
- логическое
выражение,
истинность
которого проверяется
в конце каждой
итерации.
Так как слова
repeat
и until
являются
своеобразными
операторными
скобками, точку
с запятой перед
словом
until ставить
необязательно.
Оператор цикла
WHILE
организует
выполнение
одного оператора
неизвестное
заранее число
раз. Выход из
цикла осуществляется,
если некоторое
логическое
выражение
окажется ложным.
Так как истинность
логического
выражение
проверяется
в начале каждой
итерации, тело
цикла может
не выполняться
ни разу. Структура
данного оператора
цикла имеет
вид:
while S do
operator;
В данной структуре:
S
-
логическое
выражение,
истинность
которого проверяется
в начале каждой
итерации;
operator
- выполняемы
оператор цикла.
Между конструкциями
REPEAT ...
UNTIL и
WHILE ... DO имеются
три существенных
отличия.
В конструкции
WHILE ... DO
проверка
условия выхода
выполняется
в начале, а не
в конце цикла,
поэтому, если
условие не
удовлетворяется
до начала выполнения
цикла, то тело
цикла игнорируется
и выполняется
оператор, стоящий
сразу же после
окончания тела
цикла.
В конструкции
WHILE ... DO
условие выхода
из цикла удовлетворяется,
если выражение,
определяющее
условие выхода,
ложно, а в конструкции
REPEAT ...
UNTIL — если это
выражение
истинно.
Между зарезервированными
словами
REPEAT и UNTIL
может размещаться
несколько
инструкций,
в то время как
конструкция
WHILE ... DO
может содержать
максимум одну
инструкцию.
Примеры использования
операторов
цикла:
WHILE
... DO
|
REPEAT
... UNTIL
|
1) нахождение
суммы чисел
от 1 до 50
...
sum:=0;
i:=0;
while i<50 do
begin
i:=i+1;
sum: = sum + i;
end;
....
|
1) нахождение
суммы чисел
от 1 до 50
...
sum:=0;
i:=0;
repeat
i:=i+1;
sum: = sum + i;
until i=50;
...
|
вывод на экран
информации
из файла
...
while not eof(f) do
begin
read (f,i);
writeln (i);
end;
...
|
вывод на экран
информации
из файла
...
repeat
read (f,i);
writeln (i);
until eof(f);
...
|
ввод массива
...
i:=0;
while c<>’*’
do
begin
i:= i+1;
read (c[i]);
end;
...
|
ввод массива
...
i:=0;
repeat
i:=i+1;
read(c[i]);
until c=’*’;
...
|
2. В языке Паскаль
ввод-вывод
информации
осуществляется
через файловые
переменные.
Перед тем, как
осуществить
ввод-вывод,
файловая переменная
должна быть
связана с конкретным
внешним файлом
с помощью процедуры
ASSIGN.
Этим файлом
может быть файл
на магнитном
диске, а также
устройство
вычислительного
комплекса.
Затем файл
должен быть
открыт для
чтения и/или
записи. После
этого можно
осуществлять
организацию
ввода-вывода.
После работы
с файлом он,
как правило,
должен быть
закрыт с помощью
процедуры
CLOSE.
Это требование
обязательно
должно соблюдаться
для файла, в
который производилась
запись.
Процедура
ASSIGN
(Var_file, Road): с помощью
этой процедуры
вы связываете
файловую переменную
Var_file
с некоторым
именем файла,
которое хранится
в переменной
Road.
Var
Var_file: file of integer;
Road: string[14];
...
Road:=’Data.dat’;
Assign (Var_file, Road);
Вы не можете
связывать
некоторую
файловую переменную
с файлом посредством
этой процедуры
в том случае,
если данный
файл уже открыт.
Процедура
Reset:
данная процедура
открывает
существующий
файл данных,
имя которого
перед этим было
связано при
помощи процедуры
Assign
с некоторой
файловой переменной,
указанной в
процедуре Reset
как параметр.
Assign
(var_file, ‘Data.dat’);
Reset
(Var_file);
Данная процедура
содержит
необязательный
параметр Size
целого типа,
который используется
только с файлами
без типа и задает
размер пересылаемого
элемента информации
в байтах. По
умолчанию этот
параметр равен
128. Файл
текстового
типа может быть
открыт либо
для чтения
процедурой
Reset,
либо для записи
процедурой
Rewrite или
Append.
Процедура
Rewrite:
создает новый
файл и открывает
его для записи
или чтения.
Если файл с
таким именем
уже существует,
его содержимое
стирается, а
сам файл открывается
заново.
Rewrite
(Var_file);
открывает
существующий
файл, связанный
с файловой
переменной
Var_file.
Процедура
Close:
закрывает ранее
открытый файл,
связанный с
указанной
переменной
в качестве
параметра
файловой переменной.
Close
(Var_file);
При попытке
закрыть файл,
который не был
до этого открыт
или который
уже закрыт,
возникает
ошибочная
ситуация.
Процедура
Rename:
позволяет
переименовать
существующий
файл, связанный
с указанной
в качестве
параметра
файловой переменной.
Данная процедура
применяется
только к закрытым
файлам.
Assign
(Var_file, ‘Data.dat’);
Rename
(Var_file, ‘Text.dat’);
Процедура
Erase:
стирает существующий
файл с диска.
При этом файловая
переменная
должна быть
предварительно
связана с реально
существующим
файлом.
Assign
(Var_file, ‘Data.dat’);
Erase
(Var_file);
Функция EOF:
используя
данную логическую
функцию, в процессе
считывания
информации
Вы можете проверить,
достигнут ли
конец файла,
т.е. находится
ли указатель
файла за последним
элементом или
нет.
While not EOF
(Var_file) do
read (Var_file, m[i]);
данный фрагмент
программы
иллюстрирует
процесс чтения
элементов
массива из
файла, связанного
с переменной
Var_file,
до тех пор, пока
не будет достигнут
конец файла.
Функция IOResult:
предназначена
для поиска
ошибок, возникающих
при работе с
файлами. Эта
функция возвращает
результат
последней
операции
ввода-вывода,
если автоматический
контроль за
ошибками,
возникающими
в процессе
операций
ввода-вывода,
отключен с
помощью директивы
компилятора
{$I-}.
При безошибочном
выполнении
операций ввода-вывода
данная функция
возвращает
ноль, если же
ошибка имела
место, то данная
функция возвращает
код ошибки.
{$I-}
Reset (‘C:\data.dat’);
if IOResult
<>0 then writeln (‘ Ошибка
при открытии
файла’);
{$I+}
Задание 2.
3.
Var
a,b,x,y:real;
Begin
write
(‘Введите
значение a’);
readln
(a);
write
(‘Введите
значение
b’);
readln
(b);
write
(‘Введите
значение x’);
readln
(x);
y:=(a+b)/(sqr(x)*sqr(x)*x+round(sqr(x)*x));
writeln
(‘y=’,y:7:2);
End.
Задание 3а.
2.
Var
a:array[1..20]
of integer;
i,n,b:integer;
m:real;
Begin
for
i:=1 to 20 do
begin
readln (a[i]);
m:=m+a[i];
end;
m:=m/20;
b:=a[1];
for
i:=1 to 20 do
if
a[i]
begin
n:=i;
break;
end;
for i:=1 to 20 do
write (a[i]);
writeln
(‘Среднее
арифмитическое
равно
’,m);
writeln
(‘Номер
элемента-’,n);
End.
Задание 4.
3.
Uses
crt;
Type
tch=record
num:string[5];
name:string[50];
adress:string[80];
am:byte;
end;
Var
ch:tch;
f1:file
of tch;
f2:text;
m:char;
Begin
clrscr;
assign
(f1,’1.dat’);
assign
(f2,’2.dat’);
rewrite
(f1);
rewrite
(f2);
repeat
clrscr;
write(‘Введите
номер читательского
билета:’);
readln
(ch.num);
write(‘Введите
фамилию:’);
readln
(ch.name);
write(‘Введите
адрес:’);
readln
(ch.adress);
write(‘Введите
количество
книг на руках:’);
readln
(ch.am);
write
(f1,ch);
write
(‘Для
прекращения
ввода нажмите
*’);
readln
(m);
until
m=’*’;
close
(f1);
reset
(f1);
while
not eof(f1) do
begin
read
(f1,ch);
if
ch.am>5 then write (f2,ch.num,ch.name,ch.adress,ch.am);
end;
close (f1);
close (f2);
End.
Задание
1.
Вариант
П.
1. Операторы
цикла позволяют
многократно
выполнять
отдельный
оператор или
последовательность
операторов,
причет при этом
нет необходимости
записывать
в тексте программы
одинаковые
операторы
несколько раз.
Оператор цикла
REPEAT
организует
выполнение
цикла, состоящего
из любого числа
операторов,
с неизвестным
заранее числом
повторений.
Тело цикла
выполняется
хотя бы один
раз. Выход из
цикла осуществляется
при истинности
некоторого
логического
выражения.
Структура этого
оператора:
repeat
operator1;
operator2;
operator3;
. . .
operatorN
until
S;
В этой структуре:
operator1..N -
выполняемые
операторы,
составляющие
тело цикла;
S
- логическое
выражение,
истинность
которого проверяется
в конце каждой
итерации.
Так как слова
repeat
и until
являются
своеобразными
операторными
скобками, точку
с запятой перед
словом
until ставить
необязательно.
Оператор цикла
WHILE
организует
выполнение
одного оператора
неизвестное
заранее число
раз. Выход из
цикла осуществляется,
если некоторое
логическое
выражение
окажется ложным.
Так как истинность
логического
выражение
проверяется
в начале каждой
итерации, тело
цикла может
не выполняться
ни разу. Структура
данного оператора
цикла имеет
вид:
while S do
operator;
В данной структуре:
S
-
логическое
выражение,
истинность
которого проверяется
в начале каждой
итерации;
operator
- выполняемы
оператор цикла.
Между конструкциями
REPEAT ...
UNTIL и
WHILE ... DO имеются
три существенных
отличия.
В конструкции
WHILE ... DO
проверка
условия выхода
выполняется
в начале, а не
в конце цикла,
поэтому, если
условие не
удовлетворяется
до начала выполнения
цикла, то тело
цикла игнорируется
и выполняется
оператор, стоящий
сразу же после
окончания тела
цикла.
В конструкции
WHILE ... DO
условие выхода
из цикла удовлетворяется,
если выражение,
определяющее
условие выхода,
ложно, а в конструкции
REPEAT ...
UNTIL — если это
выражение
истинно.
Между зарезервированными
словами
REPEAT и UNTIL
может размещаться
несколько
инструкций,
в то время как
конструкция
WHILE ... DO
может содержать
максимум одну
инструкцию.
Примеры использования
операторов
цикла:
WHILE
... DO
|
REPEAT
... UNTIL
|
1) нахождение
суммы чисел
от 1 до 50
...
sum:=0;
i:=0;
while i<50 do
begin
i:=i+1;
sum: = sum + i;
end;
....
|
1) нахождение
суммы чисел
от 1 до 50
...
sum:=0;
i:=0;
repeat
i:=i+1;
sum: = sum + i;
until i=50;
...
|
вывод на экран
информации
из файла
...
while not eof(f) do
begin
read (f,i);
writeln (i);
end;
...
|
вывод на экран
информации
из файла
...
repeat
read (f,i);
writeln (i);
until eof(f);
...
|
ввод массива
...
i:=0;
while c<>’*’
do
begin
i:= i+1;
read (c[i]);
end;
...
|
ввод массива
...
i:=0;
repeat
i:=i+1;
read(c[i]);
until c=’*’;
...
|
2. В языке Паскаль
ввод-вывод
информации
осуществляется
через файловые
переменные.
Перед тем, как
осуществить
ввод-вывод,
файловая переменная
должна быть
связана с конкретным
внешним файлом
с помощью процедуры
ASSIGN.
Этим файлом
может быть файл
на магнитном
диске, а также
устройство
вычислительного
комплекса.
Затем файл
должен быть
открыт для
чтения и/или
записи. После
этого можно
осуществлять
организацию
ввода-вывода.
После работы
с файлом он,
как правило,
должен быть
закрыт с помощью
процедуры
CLOSE.
Это требование
обязательно
должно соблюдаться
для файла, в
который производилась
запись.
Процедура
ASSIGN
(Var_file, Road): с помощью
этой процедуры
вы связываете
файловую переменную
Var_file
с некоторым
именем файла,
которое хранится
в переменной
Road.
Var
Var_file: file of integer;
Road: string[14];
...
Road:=’Data.dat’;
Assign (Var_file, Road);
Вы не можете
связывать
некоторую
файловую переменную
с файлом посредством
этой процедуры
в том случае,
если данный
файл уже открыт.
Процедура
Reset:
данная процедура
открывает
существующий
файл данных,
имя которого
перед этим было
связано при
помощи процедуры
Assign
с некоторой
файловой переменной,
указанной в
процедуре Reset
как параметр.
Assign
(var_file, ‘Data.dat’);
Reset
(Var_file);
Данная процедура
содержит
необязательный
параметр Size
целого типа,
который используется
только с файлами
без типа и задает
размер пересылаемого
элемента информации
в байтах. По
умолчанию этот
параметр равен
128. Файл
текстового
типа может быть
открыт либо
для чтения
процедурой
Reset,
либо для записи
процедурой
Rewrite или
Append.
Процедура
Rewrite:
создает новый
файл и открывает
его для записи
или чтения.
Если файл с
таким именем
уже существует,
его содержимое
стирается, а
сам файл открывается
заново.
Rewrite
(Var_file);
открывает
существующий
файл, связанный
с файловой
переменной
Var_file.
Процедура
Close:
закрывает ранее
открытый файл,
связанный с
указанной
переменной
в качестве
параметра
файловой переменной.
Close
(Var_file);
При попытке
закрыть файл,
который не был
до этого открыт
или который
уже закрыт,
возникает
ошибочная
ситуация.
Процедура
Rename:
позволяет
переименовать
существующий
файл, связанный
с указанной
в качестве
параметра
файловой переменной.
Данная процедура
применяется
только к закрытым
файлам.
Assign
(Var_file, ‘Data.dat’);
Rename
(Var_file, ‘Text.dat’);
Процедура
Erase:
стирает существующий
файл с диска.
При этом файловая
переменная
должна быть
предварительно
связана с реально
существующим
файлом.
Assign
(Var_file, ‘Data.dat’);
Erase
(Var_file);
Функция EOF:
используя
данную логическую
функцию, в процессе
считывания
информации
Вы можете проверить,
достигнут ли
конец файла,
т.е. находится
ли указатель
файла за последним
элементом или
нет.
While not EOF
(Var_file) do
read (Var_file, m[i]);
данный фрагмент
программы
иллюстрирует
процесс чтения
элементов
массива из
файла, связанного
с переменной
Var_file,
до тех пор, пока
не будет достигнут
конец файла.
Функция IOResult:
предназначена
для поиска
ошибок, возникающих
при работе с
файлами. Эта
функция возвращает
результат
последней
операции
ввода-вывода,
если автоматический
контроль за
ошибками,
возникающими
в процессе
операций
ввода-вывода,
отключен с
помощью директивы
компилятора
{$I-}.
При безошибочном
выполнении
операций ввода-вывода
данная функция
возвращает
ноль, если же
ошибка имела
место, то данная
функция возвращает
код ошибки.
{$I-}
Reset (‘C:\data.dat’);
if IOResult
<>0 then writeln (‘ Ошибка
при открытии
файла’);
{$I+}
Задание 2.
6.
uses crt;
var
z,m,n:real;
x,i:integer;
Begin
clrscr;
write ('Введите
x:');
readln (x);
m:=1;
for i:=1 to x do
m:=m*3;
m:=1/m;
n:=sqrt(sqrt(abs(x)));
n:=x+n;
n:=sqrt(n);
z:=m*n;
writeln ('z=',z:8:4);
end.
Задание 3-а.
0.
uses
crt;
var
ar:array[1..100] of integer;
i,am,num:integer;
Begin
num:=0;
clrscr;
write
('Введите размерность
массива:');
readln (am);
writeln ('Введите
массив:');
for
i:=1 to am do readln (ar[i]);
clrscr;
i:=0;
for
i:=1 to am do
if ar[i]<0 then num:=i;
for
i:=1 to am do
write
(ar[i]:3,';');
writeln;
if
num<>0 then writeln ('Первый
отрицательный
элемент:',num);
end.
Задание 4.
6.
uses
crt;
type
tpat=record
name:string[50];
diag:string;
num,temp:integer;
sost:string;
end;
var
pat:tpat;
f:file
of tpat;
t:text;
i:integer;
ch:char;
Begin
clrscr;
assign (f,'1.dat');
assign (t,'1.txt');
rewrite (f);
rewrite (t);
while
ch<>'*' do
begin
write ('Введите
фамилию пациента:');
readln (pat.name);
write ('Введите
номер палаты:');
readln (pat.num);
write ('Введите
температуру
больного:');
readln (pat.temp);
write ('Введите
диагноз:');
readln (pat.diag);
write ('Введите
состояние
больного:');
readln (pat.sost);
write (f,pat);
clrscr;
write ('Продолжить
ввод? *-нет');
readln (ch);
end;
while
not eof(f) do
begin
read (f,pat);
if pat.num=10 then writeln
(t,pat.name,pat.diag,pat.sost,pat.temp);
end;
end.
Задание
1.
№1.
z
= -(1 / 2) ^ -2
b
= 13.2 * 10 ^ -3
g
= 25000
y
= ((m * c - 1) / 11) ^ (1 / 5)
f
= (SIN(x)) / (x + EXP(x))
t
= (SIN(x) - a * COS(x)) / (COS(x) + b)
№2.
Постановка
задачи
Найти радиус
основания
цилиндра, имеющего
при данном
объеме наименьшую
поверхность,
R=,
V=
750 см3
Константы:
V,
Выходные
данные: R
Математическая
модель задачи
R=
Схема
алгоритма
1.Начало
2.Вычисление
R
3. Вывод R
4.
Конец
4.
Текст программы.
CLS
v
= 750
pi
= 3.14
r
= (v / 2 * pi) ^ (1 / 3)
PRINT
r
Задание
№2.
Постановка
задачи
x3+3x,
если x>0
Вычислить
значение функции
y=
0, если
x=0
x3-3x,
если x<0
для
произвольных
значений аргумента
Входные
данные: x
Выходные:
y
Математическая
модель задачи
y=x3+3x,
если x>0
y=0,
если x=0
y=x3-3x,
если x<0
Схема
алгоритма
1. Начало
2. Ввод x
3. x=0
4. y=0
y=x3-3x
5.
x<0
7.
y=x3+3x
8.
Вывод
y
9.Конец
Текст программы
10
CLS
20
INPUT x
30
IF x = 0 THEN y = 0
40
IF x <= 0 THEN y = x ^ 3 - 3 * x ELSE y = x ^ 3 + 3 * x
50 PRINT y
Отладка
программы
Контрольный
вариант: при
x=0
y=0
при
x=-1
y=2
при
x=2
y=14
№2.
Постановка
задачи
q1=,
если l>1
Вычислить
значение функции
q1=,
если l<1
q1=,
если l=1
Входные
данные: l
Выходные
данные: q1
Математическая
модель задачи
q1=,
если l>1
q1=,
если l<1
q1=,
если l=1
Схема
алгоритма
1.Начало
2.Ввод
l
4.
q1=
3.l=1
5.l<1 6.
q1=
7.q1=
8.Вывод q1
9.Конец
Текст
программы
10
CLS
20
INPUT l
30
IF l = 1 THEN q1 = (l ^ 2 + 1) ^ (1 / 3)
40
IF l <= 1 THEN q1 = SQR(l ^ 2 + 1) ELSE q1 = 2.5 / (l - 7)
50
PRINT q1
Отладка
программы
Контрольный
вариант: при
l=2
y=-0.5
при
l=1 y=1.414214
при
l=-2 y=2.236068
Задание№3.
№1.
Постановка
задачи
Как
изменяется
центростремительное
ускорение
поезда, движущегося
по закруглению
дороги со скоростью
V,
в зависимости
от радиуса r?
a=,
где r=60
км/ч; 200<=r<=1000
м с шагом
100 м.
Математическая
модель задачи
a=,
где r={200..1000}
Схема
алгоритма
1.Начало
2.a1=
3.a=200,1000,100
4.Вывод
a
5.Вывод
изменения
ускорения
6.Конец
Текст
программы
10
CLS
20
v = 60
30
a1 = v ^ 2 / 200
40
FOR r = 200 TO 1000 STEP 100
50
a = v ^ 2 / r
60
PRINT a
70
NEXT r
80
ax = v ^ 2 / 1000
90
ax = ax - a1
100
PRINT ax
5.
Отладка программы
При
радиусе равном:
200 ускорение
равно: 18
1000 3.6
изменение
равно: 14.4
№2.
Постановка
задачи
Определить
статический
и динамический
прогибы балки
по формулам
fcт
=,fд=
fcт+
E=2*106
кг/см2;
J=2500 см4;
Q=4
т;
6<=l<=12
м
c шагом
3 м;
1<=h<=5
м с шагом 1м.
Математическая
модель задачи
fcт
=,fд=
fcт+
l={6..12};
h={1..5}.
Схема
алгоритма
1.Начало
2.l=6,12,3 7.
fcт
=
8.
Вывод fcт
3.fcт
=
9. Конец
4.h=1,5,1
fд
=
fcт+
6.
Вывод
fд
Текст
программы
10
CLS
20
e = 2 * 10 ^ 6
30
j = 2500
40
q = 4000
50
FOR l = 6 TO 12 STEP 3
60
fs = q * l ^ 3 / 48 * e * j
70
FOR h = 1 TO 5
80
fd = fs + SQR(fd ^ 2 + 2 * fd * h)
90
PRINT fd
100
NEXT h
110
NEXT l
120
fs = q * l ^ 3 / 48 * e * j
130
PRINT fs
Отечественное
программирование
зародилось
в 50-х годах 20 века
в крупных научных
центрах, осваивавших
первые советские
вычислительные
машины БЭСМ
и «Стрела».
При
поверхностном
взгляде выбор
языковой гаммы
продиктован
следующими
ступенями
становления
программиста:
Бэйсик
— первая ступень,
школьная информатика;
Паскаль
— вторая ступень,
информатика
в специализированных
школах и большинстве
ВУЗов;
Си,
Си++ — третья
ступень, стандартное
профессиональное
образование;
Visual
Basic — четвертая
ступень, программирование
в среде Windows.
Однако
при более глубоком
анализе можно
заметить очень
тесное взаимопроникновение
современных
версий алгоритмических
языков и сближение
их функциональных
возможностей.
В развитых
современных
системах
программирования
предлагаются
примерно
эквивалентные
возможности.
Там, где трудно
обойтись
стандартными
средствами
алгоритмического
языка высокого
уровня, используют
вставки из
ассемблерных
строк (т. е. команд
машинного
языка). Иногда
тот или иной
язык вырывается
вперёд. Например,
появление и
развитие элементов
объектно-ориентированного
программирования
в Си++ моментально
вызвало к жизни
аналогичные
изменения в
других языках.
Революционная
идея общедоступного
«визуального»
программирования,
предложенная
в системе
Visual BASIC, сразу
же была подхвачена
в среде
Visual Сив
той или иной
мере нашла своё
отражение в
новых версиях
Borland C++.
Поэтому,
в каком-то смысле,
все достаточно
универсальные
алгоритмические
языки одинаковы.
Хорошее знание
одного из них
позволяет
сравнительно
просто разобраться
с изобразительными
средствами
другого. Это
напоминает
ситуацию с
полиглотами,
знающими один-два
десятка иностранных
языков, для
которых овладение
очередным
языком требует
не более одного-двух
месяцев. В
подтверждение
этого тезиса
в книге даётся
параллельное
изложение
соответствующих
компонентов
трёх алгоритмических
языков -
Бейсика, Си и
Паскаля, при
этом лишь изредка
обращается
внимание на
небольшие или
принципиальные
различия между
ними.
Программирование
в среде
Visual BASIC вынесено
в отдельный
раздел, т. к. наряду
с элементами
классического
программирования
здесь учитывается
специфика
структуры
программы,
работающей
под управлением
Windows, и
используются
многочисленные
стандартные
заготовки
для организации
диалогового
взаимодействия
с пользователем.
Своим
названием
BASIC обязан
сокращению
фразы
Beginner's All-purpose Symbolic Instruction Code,
которая дословно
переводится
как многоцелевой
код (язык) символических
инструкций
для начинающих.
Авторство и
первая реализация
языка Бейсик
принадлежат
группе преподавателей
и студентов
Дартмутского
колледжа во
главе с профессорами
Дж. Кемени и Т.
Куртцем, которые
1 мая
1964 вдохнули
жизнь в первый
Бейсик-интерпретатор.
Бейсик
открыл эру
диалогового
программирования.
До него культивировался
пакетный
режим,
при котором
бумажные или
магнитны носители
с программами
сдавались
дежурному
оператору и
упорядочивались
в соответствии
с приоритетами
их владельцев.
Составленный
таким образом
пакет программ
поступал в ЭВМ
на последовательную
обработку. При
этом достигалась
максимальная
загрузка
оборудования,
но каждая программа
выполнялась
либо до первой
автоматически
обнаруженной
ошиб. ки, либо
до истечения
лимита заказанного
времени. Информация
о результатах
прохождения
программ выдавалась
их
авторам
2-3 раза
в сутки. Поэтому
календарные
сроки создания
программ затягивались
на многие месяцы.
Системы
коллективного
доступа, работавшие
в диалоговом
режиме, обеспечивали
одновременное
обслуживание
нескольких
пользователей,
запускавших
свои программы
с электромеханических
или электронных
терминалов.
Оперативно
получив сообщение
об очередной
ошибке, пользователь
имел возможность
тут же исправить
текст исходной
программы и
снова выполнить
её. Диалоговый
режим, естественно,
был связан с
дополнительными
накладными
расходами на
многотерминальное
обслуживание.
Загрузка ЭВМ
при этом снижалась,
но оперативность
в отладке программ
приводила к
существенному
сокращению
календарных
сроков их
разработки.
Бейсик
был одним из
первых алгоритмических
языков, в составе
которого изначально
присутствовали
операторы
общения пользователя
с пошагово
выполняющейся
программой.
Одновременно
с текстом сообщения
об ошибке
Бейсик-система
сообщала номер
строки программы,
нарушившей
синтаксис языка
или приведшей
к аварийной
ситуации. Первые
Бейсик-системы,
совмещавшие
в себе возможности
ввода, редактирования,
исполнения
и отладки программ,
послужили
прототипами
современных
интегрированных
сред.
Вторая
особенность,
привлекающая
массового
потребителя
к Бейсику, кроется
в простоте
начального
освоения и
краткости его
изобразительных
средств. Попробуйте
найти хотя бы
еще один язык,
на котором
программа,
отвечающая
на вопрос, чему
равно 2-2,
состоит всего
из четырёх
символов1:
?2*2
Аналогичная
программа на
Паскале содержит,
минимум, три
строки, а её
длина превышает
20 символов:
begin
(writein 2*2);
end.
Примерно
вдвое больше
символов требуется
для аналога
на Си:
#include
main()
{printf("%d",2*2);
}
Второе
поколение
Бейсик-систем
ведёт свой
отсчёт от появления
первых ПК на
базе 8-разрядных
микропроцессоров
Intel-8080 и
Z-80, для
которых в середине
70-х гг. был разработан
компактный
интерпретатор
BASIC-80. Именно
с него началась
карьера самого
молодого амер.
миллиардера
Б. Гейтса, основавшего
корпорацию
Microsoft.
Появление
16-разрядных
IBM-совместимых
ПК ознаменовалось
конкурентной
борьбой между
компаниями
Borland International
и Microsoft Corporation.
Первая из них
выпустила на
рынок удобную
интегрированную
среду с компилятором
Turbo BASIC, которая
быстро привлекла
на свою сторону
многочисленных
любителей
Бейсика. Однако
вторая, более
мощная компания,
не могла смириться
с таким положением.
На смену тихоходному
интерпретатору
GW-BASIC пришла
целая серия
скоростных
систем
Quick 'BASIC, в
составе которых
наряду с интегрированной
средой поставлялись
автономные
компиляторы
и достаточно
мощные библиотеки
программ.
Соревнование
Бейсик-систем
третьего поколения
закончилось
поражением
фирмы Borland,
прекратившей
свои разработки
и передавшей
права на
Turbo BASIC одному
из авторов,
вышедшему из
состава компании.
О дальнейших
попытках
реанимировать
Turbo BASIC под
названием
Power BASIC (Мощный
Бейсик) кроме
рекламных
сообщений
ничего не известно.
А фирма
Microsoft продолжила
совершенствование
своего любимого
детища, выпустив
в конце 80-х гг.
мощные системы
для профессиональных
разработок
(Professional Development System) BASIC PDS-6
и PDS-7.
Наконец,
четвёртое
поколение
Бейсика связано
с появлением
в 1991 системы
программирования
Visual BASIC и
её последующим
совершенствованием
сотрудниками
Microsoft. К
началу 1995 поступили
сообщения об
опытной эксплуатации
версии 4.0.
Алгоритмический
язык Паскаль
был придуман
в 1968 профессором
Института
информатики
при Швейцарской
высшей технической
школе Н. Виртом.
В 1970 под его руководством
оыл разработан
первый компилятор,
а в следующем
году появилась
и первая публикация.
Своё название
язык получил
в честь известного
Франц. математика
Б. Паскаля, который
в 19-летнем возрасте
изобрёл первую
суммирую-щую
машину.
1
Новый
язык, являясь
продолжателем
традиций
алгоритмического
языка АЛГОЛ-60,
был ориентирован,
главным образом,
на обучение
курсу систематического
программирования.
В Паскале были
представлены
наиболее
распространённые
типы данных
и средства для
создания
пользовательских
структур. К
числу элементов,
способствующих
созданию надёжных
программ,
относились
блочные конструкции
и требование
обязательного
описания (объявления)
всех объектов
- типов данных,
констант,
переменных,
меток, функций
и процедур.
Заметную
роль в разработке
стандарта языка
Паскаль и
совершенствовании
его средств
ввода/вывода
сыграла рабочая
группа Британского
института
стандартов
во главе с А.
Эддиманом.
Британский
стандарт был
принят в 1982, а
несколько
позднее его
утвердила
международная
организация
ISO. Однако
к этому времени
Н. Вирт, недовольный
предложениями
рабочей группы,
отказался от
сотрудничества
по совершенствованию
Паскаля и
переключился
на новый проект
Модула.
Язык
Паскаль довольно
долго оставался
средством для
изучения
программирования
в университетах,
т. к. ни одна
серьёзная
компьютерная
фирма его не
поддерживала.
Перелом в
отношении к
этому языку
наметился в
1984, когда молодой
француз Ф. Кан
привёз в США
необычайно
скоростной
компилятор
Turbo-Pascal
для IBM-совместимых
ПК и начал торговать
им по цене 49
долларов 95 центов.
Удачная реклама
и «бросовая»
цена позволили
ему продать
за первый месяц
более 3000 копий
системы и заложить
основы фирмы
Borland International.
Последующие
8 лет Turbo Pascal
оставался
наиболее опекаемым
продуктом
фирмы, которая
сумела выпустить
более 9 различных
версий. Самая
свежая из них
(7.0; 1992) включает
две системы
- Turbo Pascal,
функционирующую
под управлением
MS-DOS, и
расширенную
версию
Borland Pascal,
работающую
в среде
Windows. Возможно,
что после ухода
в 1995 Кана с поста
президента
фирма Borland
изменит
свою политику
в отношении
языка Паскаль.
Язык
Си был придуман
в 1972 сотрудником
Bell Laboratories
(отделение
известной
телефонной
компании AT&T) Д.
Ритчи, одним
из первых
пользователей
операционной
системы Unix,
и задумывался
не как универсальный
алгоритмический
язык, а, скорее,
как инструмент
для развития
операционной
системы и создания
новых обслуживающих
программ (утилит).
Такой подход
характерен
для большинства
системных
программистов,
разрабатывающих
сложные проекты
и придумывающих
для облегчения
своего труда
различные
сервисные
процедуры,
макрокоманды
и т. п. По завер-я
i
t
шению разработки
эти инструментальные
наборы, как
правило, предаются
забвению или,
в | лучшем случае,
остаются в
личных архивах
| авторов. Язык
Си, однако, эта
участь миновала.
§ Вполне возможно,
что его становлению
способ-| ствовало-
последующее
всемирное
признание •^
операционной
системы
Unix.
Как
алгоритмический
язык сравнительно
низкого уровня,
т. е. достаточно
близкий к
ассемблеру,
Си имел предшественников
в лице . аналогичных
инструментальных
средств - язы-;
ков CPL, BCPL
(сокр. от
Basic Combined Pro-|
gramming Language -
базовый комбинирован-i
ный язык программирования)
и В. Два первых
языка разрабатывались
в конце 60-х гг.
в Кембриджском
университете
в качестве
машинно-независимых
языков для
создания
трансляторов1.
Последний был
придуман К.
Томпсоном -
сотрудником
Bell Laboratories и
автором операционной
системы
Unix. В отличие
от своих предшественников,
Ритчи наряду
с машинно-ориентированными
типами данных
(байт, слово)
ввёл в состав
Си объекты и
операторы,
присущие
универсальным
языкам (числовые
и символьные
переменные,
структурные
блоки), сохранив
при этом элементы,
характерные
для макроассемблера
MACRO-11 (логические
операции над
битами, сдвиги,
работа с адресами
и регистрами).
Первым
программным
продуктом,
написанным
почти полностью
на Си, был компилятор
с языка Си в
код машинных
команд
PDP-11/20 (прототип
СМ-4). В 1973 Ритчи и
Томпсон переписали
на Си большую
часть операционной
системы
Unix. Из
13000 машинных команд
для PDP-7,
на которой
появилась
первая версия
Unix,
только 800 пришлось
вручную перевести
в ассемблер
PDP-11. В процессе
перевода
Unix из
однопользовательской
операционной
системы,
ориентированной
на работу в
конкретной
ЭВМ, превратилась
в мобильную
операционную
систему коллективного
пользования.
Успех этой
операции в
значительной
мере предопределил
популярность
новой операционной
системы и её
базового инструмента
- языка Си. Б 1976
Ритчи и Томпсон
перенесли
Unix с ЭВМ
фирмы DEC
на компьютеры
другой архитектуры
(Interdata 8/32),
практически
ничего не изменив
в ядре операционной
системы, написанном
на Си. Точно
таким же образом
Unix распространялся
на десятках
машин различных
типов.
В
1978 появилась
первая книга,
посвящённая
описанию Си
и технике
программирования
не
этом
языке, которая
с большим запозданя
была переведена
на русский язык
(Ken»81*
ган
Б., Ритчи Д., Фьюэр
А. Язык программ^
рования Си.
Задачи на языке
Си. М.: Фиван и
статистика,
1985). От фамилий
двух перв^* авторов
произошло
сокращённое
обозначенм*
первого, никем
не утверждавшегося,
но пpивяe
того
всеми программистами
стандарта язык
Си - K&R.
а
Дальнейшая
работа по
совершенствованию
языка Си и принятию
в 1987 первого
настояше го
стандарта
ANSI С была
выполнена на
общественных
началах рабочей
группой при
Американском
национальном
институте
стандартов
Возглавлял
эту работу
сотрудник
Bell Labs Л.
Рослер. Наиболее
серьёзный вклад
в развитие
языка Си за
последние годы
внёс ещё один
представитель
той же лаборатории
Б. Страуст-руп,
который ввёл
в обращение
новые объекты
- классы, объединяющие
данные и обрабатывающие
их функции.. С
1983 за расширенной
версией языка
Си с классами
закрепилось
название C++.
Первые
версии Си
подвергались
серьёзной
критике за
отсутствие
достаточной
строгости,
что приводило
к многочисленным
ошибкам из-за
работы с
неинициализированными
переменными,
отсутствия
контроля за
выходом индексов
у элементов
массивов за
установленные
пределы, несоответствия
типов формальных
и фактических
параметров
функций и т. п.
Перед системными
программистами
Bell Labs эти
проблемы остро
не стояли, т.
к. они пользовались
специальной
программой
Lint, которая
проводила
тщательный
анализ программ,
написанных
на Си, перед их
трансляцией
и выполнением.
Для рядовых
пользователей
ситуация изменилась
с появлением
интегрированных
сред, среди
которых наибольшую
популярность
приобрели
Турбо-системы
фирмы
Borland. Первая
версия
Turbo С,
работавшая
в среде MS-DOS,
была выпущена
в 1987. К середине
1995 фирма
Borland вышла
на рынок с версией
4.5, предназначенной
для работы под
управлением
Windows. Известны
и другие реализации
языка Си на
IBM-совместимых
ПК - Microsoft
С, Lattice
С, Zortech
С, Symantec
С. Но в нашей
стране продукция
фирмы Borland
получила
наибольшее
распространение.
Задание
1.
Вариант
В.
1.
Константа—
идентификатор,
обозначающий
некоторую
неизвестную
величину (значение
данных) определенного
типа. Константы,
так же как и
переменные,
объявляться
в декларационной
части программы
(или процедуры)
до момента
своего использования
в процессе
вычисления.
Объявление
констант начинается
зарезервированным
словом CONST.
Затем следует
имя константы,
символ равенства
и значение этой
константы.
Например:
CONST
Name=’Alex’;
CONST
Age=18;
После
объявления
константы ее
можно вызывать
по объявленному
имени из произвольного
места программы.
Типизированные
константы
представляют
собой инициализированные
переменные,
значение которых
используется
в программах
наравне с обычными
переменными.
В отличии от
нетипизированных
констант, описанных
выше, в описании
типизированной
константы
указывается
как тип, так и
значение константы,
т.е. она позволяет
объявлять
переменные
и тут же присваивать
им начальное
значение.
Типизированные
константы
обладают всеми
преимуществами
переменных,
в частности,
они могут
использоваться
в левой части
оператора
присваивания.
К их преимуществам
можно отнести
и то, что они
инициализируются
только один
раз— в начале
выполнения
программы.
Таким образом,
типизированные
константы,
объявленные
в какой-либо
процедуре или
функции, при
каждом новом
ее выполнении
не инициализируются
заново.
CONST
Year:INTEGER=2000;
Mon:String=’December’;
2.
Тип файл представляет
собой последовательность
компонент
одного типа,
расположенных
на внешнем
устройстве.
Компоненты
могут быть
любого типа,
за исключением
типа файл (или
содержащего
компоненты
типа файл) и
типа объекта.
Число компонент
в файле не
объявляется.
Для задания
типа файл следует
использовать
зарезервированные
слова file
и of,
после чего
указать тип
компонент
файла.
Type
number
= file of integer;
symb = file
of ‘A’..’Z’;
Стандартный
тип Text
определяет
тип файла, содержащий
символы, объединенные
в строки. Следует
иметь ввиду,
что тип Text
в Турбо-Паскале
не эквивалентен
тину file
of char.
Введя файловый
тип, можно определять
переменные
файлового типа:
Var
F1:number;
F2:Text;
В Турбо-Паскале
можно использовать
файл без типа,
при определении
которого не
указывается
тип компонент.
В этом случае
работа с файлом
осуществляется
на физическом
уровне в соответствии
с внутренним
форматом его
данных. При
этом реальные
компоненты
файла могут
иметь и различный
тип.
Тип
файл можно
определять
и непосредственно
при введении
файловых переменных.
Файловые переменные
имеют специфическое
применение.
Над ними нельзя
выполнять
никаких операций
(присваивание
значений, сравнивание
и т.д.). Кроме того,
через файловую
переменную
можно получить
информацию
о конкретном
файле (тип,
параметры, имя
и т.д.).
Задание 2(8).
Var
x,a,b,c,y:real;
Begin
write
(‘Введите
2 числа’
);
readln
( y,b);
c:=y+b;
a:=sqr
(sin(c*c*c)/cos(c*c*c));
b:=sqrt
(y+b)/(y*pi);
x:=a+b;
writeln
(‘x=’,x:7:2);
End.
Задание 3-а(5).
Uses
crt;
Var
a,b:array[1..10]
of integer;
i,m:byte;
Begin
clrscr;
m:=1;
for i:=1 to 10 do
begin
write
(‘Введите
’,i,‘-ый элемент
массива:’);
readln
(a[i]);
if a[i]<0
then begin
b[m]:=a[i];
inc(m);
end;
end;
clrscr;
writeln
(‘Исходный
массив:’);
for i:=1 to
10 do write (a[i]);
writeln;
writeln
(‘Массив,
состоящий из
отрицательных
чисел:’);
for
i:=1 to m do write (b[i]);
End.
Задание 4(8).
Uses
crt;
Type
tcm=record
name:
string[50];
amountw:integer;
amountwo:integer;
date:string[8];
Var
cm=tcm;
F1:file of
tcm;
F2:
text;
m:char;
Begin
clrscr;
assign
(F1,’1.dat’);
assign
(F2,’1.txt’);
rewrite
(F1);
rewrite
(F2);
repeat
clrscr;
write
(‘Введите
фамилию и инициалы
’);
readln
(cm.name);
write
(‘Введите
количество
голосующих
акций
’);
readln
(cm.amountw);
write
(‘Введите
количество
неголосующих
акций
’);
readln
(cm.amountwo);
write
(‘Введите
дату регистрации
’);
readln
(cm.date);
write
(F1,cm);
writeln
(‘Чтобы закончить
ввод, введите
*’);
readln
(m);
until m=’*’;
while not eof(F1) do
begin
read (F1,cm);
if
cm.amountw>100 then write (F2, cm.name, cm.amountw, cm.amountwo,
cm.date);
end;
close (F1);
close (F2);
End.
6. Языки
программирования
и их классификация.
Отечественное
программирование
зародилось
в 50-х годах 20 века
в крупных научных
центрах, осваивавших
первые советские
вычислительные
машины БЭСМ
и «Стрела».
При поверхностном
взгляде выбор
языковой гаммы
продиктован
следующими
ступенями
становления
программиста:
Бэйсик —
первая ступень,
школьная информатика;
Паскаль —
вторая ступень,
информатика
в специализированных
школах и большинстве
ВУЗов;
Си, Си++ — третья
ступень, стандартное
профессиональное
образование;
Visual Basic — четвертая
ступень, программирование
в среде Windows.
Однако при
более глубоком
анализе можно
заметить очень
тесное взаимопроникновение
современных
версий алгоритмических
языков и сближение
их функциональных
возможностей.
В развитых
современных
системах
программирования
предлагаются
примерно
эквивалентные
возможности.
Там, где трудно
обойтись
стандартными
средствами
алгоритмического
языка высокого
уровня, используют
вставки из
ассемблерных
строк (т. е. команд
машинного
языка). Иногда
тот или иной
язык вырывается
вперёд. Например,
появление и
развитие элементов
объектно-ориентированного
программирования
в Си++ моментально
вызвало к жизни
аналогичные
изменения в
других языках.
Революционная
идея общедоступного
«визуального»
программирования,
предложенная
в системе
Visual BASIC, сразу
же была подхвачена
в среде
Visual С и в той
или иной мере
нашла своё
отражение в
новых версиях
Borland C++.
Своим названием
BASIC обязан
сокращению
фразы
Beginner's All-purpose Symbolic Instruction Code,
которая дословно
переводится
как многоцелевой
код (язык) символических
инструкций
для начинающих.
Авторство и
первая реализация
языка Бейсик
принадлежат
группе преподавателей
и студентов
Дартмутского
колледжа во
главе с профессорами
Дж. Кемени и Т.
Куртцем, которые
1 мая
1964 вдохнули
жизнь в первый
Бейсик-интерпретатор.
Бейсик был
одним из первых
алгоритмических
языков, в составе
которого изначально
присутствовали
операторы
общения пользователя
с пошагово
выполняющейся
программой.
Одновременно
с текстом сообщения
об ошибке
Бейсик-система
сообщала номер
строки программы,
нарушившей
синтаксис языка
или приведшей
к аварийной
ситуации. Первые
Бейсик-системы,
совмещавшие
в себе возможности
ввода, редактирования,
исполнения
и отладки программ,
послужили
прототипами
современных
интегрированных
сред.
Заметную
роль в разработке
стандарта языка
Паскаль и
совершенствовании
его средств
ввода/вывода
сыграла рабочая
группа Британского
института
стандартов
во главе с А.
Эддиманом.
Британский
стандарт был
принят в 1982, а
несколько
позднее его
утвердила
международная
организация
ISO. Однако
к этому времени
Н. Вирт, недовольный
предложениями
рабочей группы,
отказался от
сотрудничества
по совершенствованию
Паскаля и
переключился
на новый проект
Модула.
Язык Паскаль
довольно долго
оставался
средством для
изучения
программирования
в университетах,
т. к. ни одна
серьёзная
компьютерная
фирма его не
поддерживала.
Перелом в
отношении к
этому языку
наметился в
1984, когда молодой
француз Ф. Кан
привёз в США
необычайно
скоростной
компилятор
Turbo-Pascal
для IBM-совместимых
ПК.
Язык Си был
придуман в 1972
сотрудником
Bell Laboratories
(отделение
известной
телефонной
компании AT&T) Д.
Ритчи, одним
из первых
пользователей
операционной
системы Unix,
и задумывался
не как универсальный
алгоритмический
язык, а, скорее,
как инструмент
для развития
операционной
системы и создания
новых обслуживающих
программ (утилит).
Первым программным
продуктом,
написанным
почти полностью
на Си, был компилятор
с языка Си в
код машинных
команд
PDP-11/20 (прототип
СМ-4). В 1973 Ритчи и
Томпсон переписали
на Си большую
часть операционной
системы
Unix. Из 13000 машинных
команд для
PDP-7,
на которой
появилась
первая версия
Unix,
только 800 пришлось
вручную перевести
в ассемблер
PDP-11. В процессе
перевода
Unix из однопользовательской
операционной
системы,
ориентированной
на работу в
конкретной
ЭВМ, превратилась
в мобильную
операционную
систему коллективного
пользования.
Успех этой
операции в
значительной
мере предопределил
популярность
новой операционной
системы и её
базового инструмента
- языка Си. Б 1976
Ритчи и Томпсон
перенесли
Unix с ЭВМ фирмы
DEC на компьютеры
другой архитектуры
(Interdata 8/32), практически
ничего не изменив
в ядре операционной
системы, написанном
на Си. Точно
таким же образом
Unix распространялся
на десятках
машин различных
типов.
Дальнейшая
работа по
совершенствованию
языка Си и принятию
в 1987 первого
настоящего
стандарта
ANSI С была
выполнена на
общественных
началах рабочей
группой при
Американском
национальном
институте
стандартов
Возглавлял
эту работу
сотрудник
Bell Labs Л. Рослер.
Наиболее серьёзный
вклад в развитие
языка Си за
последние годы
внёс ещё один
представитель
той же лаборатории
Б. Страуструп,
который ввёл
в обращение
новые объекты
- классы, объединяющие
данные и обрабатывающие
их функции.. С
1983 за расширенной
версией языка
Си с классами
закрепилось
название C++.
Вообще, дается
большое количество
классификаций
языков программирования
по различным
признакам, но
наиболее
распространенными
являются:
языки программирования
бывают — высокого
(Паскаль, Бэйсик)
и низкого уровня
(Ассемблер);
строго типизированными
(Паскаль) и нестрого
типизированными
(Бэйсик); с поддержкой
объектно-ориентированного
программирования
(Си++) и без и т.д.
Задание
№1.
Вариант
Р.
Какие строковые
функции используются
в Турбо-Паскале?
Задайте какие-либо
строковые
переменные
и примените
к ним строковые
функции.
В Турбо-Паскале
существует
тип данных
String
(строка),
специально
предназначенный
для обработки
строк (цепочек
символов). Он
не относится
к простым типам
данных и занимает
промежуточное
место между
простыми и
структурированными
типами данных.
Переменная
типа String
состоит из
цепочки символов,
т.е. элементов
типа Char.
Строки могут
выводиться
на экран монитора
посредством
стандартных
процедур Write
и WriteLn
и вводиться
с помощью стандартной
процедуры
ReadLn
или Read.
В большинстве
случаев переменные
типа String
используются
для хранения
слов и сообщений,
состоящих из
нескольких
символов.
Турбо-Паскаль
представляет
в распоряжение
пользователей
целый ряд процедур
и функций,
предназначенных
для обработки
строк.
Length
— позволяет
определить
фактическую
длину текстовой
строки, хранящейся
в указанной
переменной.
Var
Words: String;
Begin
Write
(‘ Введите
слово:’);
ReadLn (Words);
WriteLn;
WriteLn
(‘Это слово
состоит из ‘,
Length (Words),’букв’);
End.
UpCase
— позволяет
преобразовать
любой символ
из строчного
в прописной.
Эта функция
рассчитана
на обработку
отдельного
символа. Русские
литеры не могут
обрабатываться
этой функцией.
Var
S: String;
I: Integer;
Begin
S:=’alex’;
For I=1 to 4 do
S[I]:=UpCase (S[I]);
WriteLn (S);
End.
На экран будет
выведена надпись:
ALEX.
Copy
— позволяет
копировать
фрагмент некоторой
строки из одной
переменной
в другую. Вызывая
данную функцию
необходимо
указать следующие
параметры:
имя строки, из
которой должен
извлекаться
копируемый
фрагмент;
позицию в строке,
начиная с которой
будет копироваться
фрагмент;
число копируемых
символов.
Var
s:string[8];
s1:string[3];
Begin
s:=’домашний’;
s1:=Copy (s,1,3);
writeln
(s1); {на экран
выводится: дом}
End.
Pos
— с помощью
этой функции
можно осуществить
в некоторой
строке поиск
определенного
фрагмента. Если
заданный фрагмент
в строке присутствует,
то функция
возвращает
номер позиции
в строке, с которой
этот фрагмент
начинается.
Если фрагмент
не найден в
строке, то функция
возвращает
нуль.
...
s:=’машина’;
i:=pos
(‘шина’,s);
if
i=0 then writeln (‘ данный
фрагмент не
содержится
в строке’)
else
writeln
(‘ данный
фрагмент содержиться
в строке начиная
с
‘,i:3,’ позиции.’);
...
Как формируется
имя переменной
файлового типа
в тексте программы?
По каким правилам
формируется
имя файла в
операционной
системе MS-DOS?
Какая процедура
используется
для связывания
конкретной
файловой переменной
программы с
конкретным
файлом на внешнем
устройстве?
Приведите
примеры имен
файловой переменной
и имен файла
на внешнем
устройстве.
Правила формирования
файловой переменой
в языке Турбо-Паскаль
совпадают с
правилами
формирования
обычной переменной:
переменная
должна состоять
из латинских
строчных и/или
прописных
букв, а также
арабских цифр
от 0 до 9 (цифры
можно использовать
наряду с буквами
начиная со
второй позиции)
и символа
подчеркивания
(ASCII-код
95);
имя переменной
должно начинаться
с латинской
буквы или символа
подчеркивания;
пробел в Турбо-Паскале
является
разделителем
и не может быть
использован
в имени переменной;
применение
других символов
в именах переменных
не допускается;
зарезервированные
слова также
не могут быть
использованы
в качестве
имен переменных.
Имена файлов
в системе MS-DOS.
Каждый файл
на диске имеет
обозначение,
которое состоит
из двух частей:
имени и расширения
( часто имя и
расширение
вместе также
называют именем,
как правило,
это не приводит
к путанице). В
имени файла
может быть от
1 до 8 символов.
Расширение
начинается
с точки, за которой
следует от 1 до
3 символов. Например:
command.com
autoexec.bat
config.sys
paper.doc
Имя и расширение
могут состоять
из прописных
и строчных
латинских букв,
цифр и символов:
- _ $ # &
@ ! % () {} ’ ~ ^
Расширение
имени файла
является
необязательным.
Оно, как правило,
описывает
содержимое
файла, поэтому
использование
расширения
файла весьма
удобно.
В имени и расширении
имени файла
прописные и
строчные латинские
буквы являются
эквивалентами,
так как
DOS переводит
все строчные
буквы в соответствующие
прописные
буквы.
Процедурой,
которая связывает
имя файловой
переменной
с конкретным
файлом на диске,
является процедура
Assign(<имя
файловой
переменной>,<имя
файла на диске>).
Var
filename: file of
integer;
path:string;
Begin
write
(‘
Введите имя
файла на диске:’);
readln (path);
assign
(filename,path);
...
Задание №2.
9.Вычислить
значение переменной
по расчетной
формуле и исходным
данным. На экран
вывести значение
исходных данных
и результаты
расчетов.
Q=
uses
crt;
var
q,b,s,x:real;
begin
clrscr;
write
('Введите значение
x:');
readln (x);
write
('Введите значение
b:');
readln (b);
write
('Введите значение
s:');
readln (s);
clrscr;
q:=(b*sqrt(x)-s)/(exp(s*x)-1);
writeln ('Исходные
данные');
writeln ('x=',x:5:2,',b=',b:5:2,',s=',s:5:2);
writeln ('Результат');
writeln ('Q=',q:8:2);
readln;
end.
Задание №3а.
Ввести одномерный
массив X
вещественных
чисел. Размерность
массива 7. Переписать
элементы этого
массива в обратном
порядке в массив
Y.
Вывести на
экран массивы
X и
Y.
uses
crt;
var
x,y:array [1..7] of real;
i:integer;
begin
clrscr;
writeln ('Ввод элементов
массива');
for
i:=1 to 7 do
begin
gotoxy (29,2);
writeln (' ');
gotoxy (1,2);
write ('Введите
',i,'-й элемент
массива:');
readln (x[i]);
end;
for
i:=7 downto 1 do y[i]:=x[8-i];
clrscr;
writeln ('Массив
X:');
for
i:=1 to 7 do
begin
write (x[i]:3:2,';');
end;
writeln;
writeln ('Массив
Y:');
for
i:=1 to 7 do
begin
write (y[i]:3:2,';');
end;
end.
Задание
№3б.
Написать
программу
анализа динамики
поквартального
роста дохода
различных
социальных
слоев населения
в течении года.
Для этого ввести
количество
категорий
слоев населения,
название категорий
населения и
величину дохода
каждой категории
по кварталам.
Определить
средний доход
по всем категориям
за каждый квартал
и во сколько
раз увеличился
доход в четвертом
квартале по
сравнению с
первым. Исходные
данные и результаты
расчетов представить
в виде таблицы.
uses
crt;
type
tkat_inf=record
name:string[30];
income:array [1..4] of real;
end;
var
num,int:integer;
kat_inf:array [1..100] of tkat_inf;
first,second,third,forth:real;
procedure
input_data(var n:tkat_inf);
var
i:integer;
begin
clrscr;
write
('Введите название
категории:');
readln
(n.name);
for
i:=1 to 4 do
begin
gotoxy (44,2);
writeln (' ');
gotoxy (1,2);
write ('Введите
доход данной
группы за ',i,'-й
квартал:');
readln (n.income[i]);
end;
end;
procedure
output_data (b:tkat_inf);
var
i:integer;
begin
writeln
(b.name:30,'|',b.income[1]:7:2,'|',b.income[2]:7:2,'|',b.income[3]:7:2,'|',b.income[4]:8:2,'|',b.income[4]/b.income[1]:15:2);
writeln
('------------------------------+-------+-------+-------+--------+---------------');
end;
Begin
clrscr;
num:=101;
while
num>100 do
begin
write ('Введите
количество
категорий
населения
(<=100):');
readln (num);
end;
for
int:=1 to num do input_data (kat_inf[int]);
clrscr;
writeln
('-----------------------------------------------------------------------------------------');
writeln
('Название категории
| Средний
доход | Увеличение
');
writeln
('
|----------------------------------| дохода
');
writeln
(' | I | II |
III | IV | за год ');
writeln
('----------------------------------+-------+-------+-------+-------+------------------');
for
int:=1 to num do
begin
output_data (kat_inf[int]);
first:=first+kat_inf[int].income[1];
second:=second+kat_inf[int].income[2];
third:=third+kat_inf[int].income[3];
forth:=forth+kat_inf[int].income[4];
end;
writeln
('средний доход
за квартал
|',first/num:7:2,'|',second/num:7:2,'|',third/num:7:2,'|',forth/num:8:2,'|
-');
writeln
('-------------------------------------------------------------------------------');
End. |