WWW.DISS.SELUK.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА
(Авторефераты, диссертации, методички, учебные программы, монографии)

 

Pages:     | 1 ||

«основы ИНФОРМАТИКИ И ЫЧИСЛИТЕЛЬНОЙ ;:. $БК 32.97я71 Б92 Бурибаев Б. и др. Б92 Основы информатики и вычислительной техники: Учебник для 9 классов общеобразовательных школ /Б. Бурибаев, Б. Накысбеков, Г. ...»

-- [ Страница 2 ] --

В этой программе цикл повторяется до тех пор, пока значение X не станет равным 4 (т.е. пока значение выражения х = 4 не станет истинным). Результат выдается в виде таблицы.

П р и м е р 3. Составить программу вычисления га! для любого га.

Вариант.1. л! = 1 • 2 • 3 •... -га. Здесь га сначала приравнивается к 1 и в каждом повторении к его значению прибавляется 1.

На алгоритми­ ческом языке {вычисление факториала} пока i:= down to do ;

здесь S I и S2 — выражения для задания начального и конечного значений параметра;

for... do — заголовок цикла;

Ключевые слова означа^от:FOR—"для",ТО—"до",Ш— "выполнить".

На языке Паскаль параметр цикла обязательно должен быть переменной целого или упорядоченного типа. В зависимости от шага изменения в операторе применяется одно из двух ключевых слов: ТО или DOWNTO (DOWN — "вниз", ТО — "до", DOWNTO обратно"). Если шаг Ьавен +1, то в операторе применяется ключевое слово ТО, есль; ш а г равен - 1, то DOWNTO.

Начальное и конечн ое значения параметра должны быть в виде, целого числа или Упорядоченного типа по возрастанию или убыванию. Так же молено их задавать в виде арифметического выражения, принимающь го целое значение.

Выполнение оператора FOR можно изобразить в виде блоксхемы следующим образом (рис. 3.25):

Тело цикла (в блок-схеме ) может быть простым или состав- >дым оператором. Выполнение оператора FOR не прекращается до тех пор, пока параметр не примет все свои значения, начиная от начального с шагом 1 до конечного.

Заголовок цикла определяют:

— диапазон изменений переменной уп­ Рис. 3.25. Блок-схема равления (параметра цикла) и количество оператора FOR повторений операторов внутри цикла (тело цикла);

— направление изменений параметра цикла (по возрастанию — to, по убыванию — downto).

for fe=l to 100 do Read (MM); {чтение элементов массива};

for fo=100 downto 1 do Write (M[&]); {запись элементов масси­ ва}.

Перед первым выполнением оператора For вычисляются значе­ ния выражений S1 и S2 и параметру цикла присваивается значе­ ние S1, т.е. выполняется оператор:

Затем внутри цикла производятся следующие действия:

1. Проверяется условие: > S2 (при SI < S2) или < параметр цикла> S2).

2. Если значение условия истинно, тогда выполняется цикл for, т.е. выполняются операторы внутри цикла. Если условие не выполняется, т.е. значение "ложь", тогда тело цикла не выполняет­ ся, а управление передается строке, стоящей после оператора for.

3. К значению переменной управления прибавляется 1 (to) или оно уменьшается на 1 (downto), и продолжается повторение оператора for.

4. В процессе выполнения цикла нельзя менять значение его параметра (например, с помощью оператора присваивания).

5. Если цикл не прекращается с помощью оператора перехода, то после окончания цикла значение параметра управления счита­ ется неопределенным.

Можно следующим образом определить количество повторений Чикла в зависимости от значения параметра оператора For:

Оператор FOR... downto...

Основы информатики. 9 кл. (русс*, яз.) Пример:

Оператор Рассмотрим несколько примеров.

П р и м е р 1. Нужно найти сумму натуральных чисел от 1 до 100:

Схема выполнения задачи изображена на рис. 3.26. Приведем соответствующий ей текст программы:

program summa;

begin П р и м е р 2. Нужно вычислить значение функции у при изме­ нении ее аргумента х от - 4 до +4 с шагом 0,2:

В этом алгоритме мы знаем, сколько раз повторяется цикл.

Число повторений можно вычислить по следующей формуле, исполь­ зуя начальное, конечное значения аргумента и шаг его изменения:

Меняя параметр оператора цикла от 1 до 41, можно соста­ вить алгоритм, как показано на рис. 3.27, а программу — ниже­ следующим образом:

program funkcia;

var k: integer;

begin Учитывая, что параметр цикла в операторе For принимает целые значения, можно написать программу другим способом, положив шаг изменения переменной k равным 1, тогда как х меняется от - 4 до +4 с шагом 0,1.

program funkcia;

П р и м е р З. Составим программу вывода американского стан­ дарта кодов символов (ASCII) обмена информацией.

PROGRAM A S C I I 1 ;

VAR KOD : INTEGER;

BEGIN END.

В результате выполнения этой программы выводятся на экран буквы латинского, русского, казахского алфавитов и специальные символы. Коды от нуля до десяти являются управляющими, поэтому их не рекомендуется выводить.

П р и м е р 4. Нужно составить программу перевода градусов в интервале 15—30 шкалы Цельсия на градусы Фаренгейта.

Формула преобразования F = С*1,8 + 32, здесь С — градусы Цельсия; F —градусы Фаренгейта.

Program F a r e n g e i t ;

begin begin end.

П р и м е р 5. Нужно составить программу изображения рабо­ ты арифметического калькулятора с помощью операторов присва­ ивания, условного оператора и оператора цикла.

Program Calcl;

label 10;

var x, у, rezultat : real;

deistvie : char;

begin writeln ('Вводим 2 числа и выполняем арифм.действие') ;

repeat 10: write ('выполняемая операция (+, -, *, / ) : ' ) ;

readln (deistvie);

case deistvie of writeln('неправильно введен знак операции');gotol end.

Сложные циклы. Если внутри цикла (в теле цикла) располо­ жена другая циклическая структура, то он называется вложенным циклом. Цикл, в состав которого входит другой цикл, называется внешним. А цикл, расположенный в теле другого цикла, называ­ ется внутренним. Для решения многих задач приходится исполь­ зовать такие сложные циклы. В таких программах внутренний цикл должен полностью находиться внутри внешнего цикла. Внут­ ренний цикл может, в свою очередь, содержать другие циклы.



Сложные циклы организуются как простые циклы с помощью операторов while, repeat, for. При составлении вложенных циклов следует придерживаться следующего правила: все операторы внут­ реннего цикла должны находиться внутри внешнего цикла (в теле внешнего цикла).

Структуру сложного цикла можно проследить из следующего примера вычисления таблицы умножения. В этом примере ис­ пользуется оператор for и таблица умножения от 2 до 9 выво­ дится в один столбец.

PROGRAM UMNOGENIE;

{таблица умножения} Const n=10;

Begin writeln('':20,'таблица умножения чисел 1..10 ' ) ;

For i:=1 to n do readln End.

Составим программу для вычисления значений Y = 2К + N для PROGRAM FUNKCIA1;

BEGIN writeln ( ' :6,'N','':6, 'K', '':6,'Y ' ) ;

writeln ( ' :4, ' while к -...+sin(ra)" 18. Нужно найти первый отрицательный элемент значений функции у = cos(ctgn) 19. Составьте алгоритм вычисления значения ап по формуле а 0 =а 1 =1, ап=ап1+ +ап_2 (л>3).

20. Составьте алгоритм вычисления функции у = cos# + cos.*2 + cosx3 +... + + cos*10.

21.Нужно вычислить значение у— 1! + 2! + 3! +... + п\ для заданного числа п.

22. По восточному календарю принят 60-летний цикл по 12-летнему этапу.

Пять этапов цикла обозначаются определенным цветом: синий, красный, желтый, белый и черный. А каждый год одного периода обозначается названиями животных: мышь, корова, барс, заяц, дракон, змея, лошадь, овца, обезьяна, петух, собака и свинья (1984 г. — начало нового цикла, год синей мыши). Нужно составить программу для определения (по заданному номеру года) названия соответствующего животного, его цвета.

23. Нужно написать программу вывода на экран натуральных чисел от 1 до 100 словами на русском языке:

100: сто.

25. Билет с шестизначным номером, в котором совпадают суммы первых трех и последних трех цифр, считается "счастливым". Нужно найти число счастливых билетов с суммой первых трех цифр, равной 13.

Г л а в а 4. СИМВОЛЬНЫЕ И СТРОКОВЫЕ ВЕЛИЧИНЫ

4.1. СПОСОБЫ ОБРАБОТКИ СИМВОЛЬНЫХ ВЕЛИЧИН

Ранее мы ознакомились с начальными сведениями символьно­ го типа. В этой главе мы рассмотрим особенности ввода и вывода символьных данных. До сих пор мы использовали в программах только данные с числовыми значениями. На современных компью­ терах можно обработать любые символьные данные. В этой главе мы рассмотрим способы ввода символьной информации с клавиатуры и вывода на экран дисплея. Клавиатура и дисплей являются стандартными устройствами ввода и вывода информа­ ции. Для их использования понадобятся ключевые слова INPUT и OUTPUT. При вводе и выводе числовых информации будем применять стандартные процедуры (INPUT, OUTPUT) с помощью операторов READ и WRITE.

Обработка символьной информации осуществляется с помо­ щью ключевого слова CHAR (сокращение от английского CHARACTER). Значением переменной типа CHAR может быть любой символ, используемый в данном компьютере. Он должен соответствовать одному из кодов ASCII (см. приложение). Каждый символ изображается целым числом в интервале от 0 до 255 на основании кода ASCII. Символы, соответствующие кодам от 0 до 127, являются универсальными знаками. К ним относятся латин­ ские буквы, знаки препинания и арифметических операций, а также символы управления. Коды 128—255 используются для специальных символов и для букв национального алфавита.

Казахские и русские буквы расположены в этой группе. Символь­ ной (или литерной) переменной отводится один байт памяти компьютера.

Если в программе задано следующее описание:

VAR А, В: CHAR;

ZNAK, SYMBOL: CHAR, то в операторе присвоения значениями этих переменных и кон­ стант должен быть один символ, взятый в апострофы. Например:

А-= '#, Б:= 1А\ Б:= '5', А:= ';' При выводе символьного значения на экран дисплея или на принтер знак апострофа (' ') не выводится, а выводится только сам символ.

Для символьных данных можно использовать операции отно­ З а м е ч а н и е. Так как казахские буквы расположены в сво­ бодных позициях таблицы ASCII, то закономерность роста кодов полностью не соблюдается.

По следующей программе можно вывести буквы по порядку расположения кодов согласно алфавиту:

PROGRAM K0DY;

В результате выполнения этой программы на экране дисплея появляются символы abed... z. Если нужно вывести алфавит в обратном порядке, то оператор for можно написать в другом виде:

for с:= V down to 'a' do Для данных символьного типа определены следующие стандарт­ ные функции:

chr(;e) — преобразует выражение х типа byte в один символ ASCII - кода;

ord(ch) — символ ch типа byte преобразуется в соответствую­ щий ему код;

pred(ch) — дает символ, предшествующий ch соответственно коду;

succ(ch) — дает символ, следующий за ch соответственно коду;

upcase(ch) — переводит малые латинские буквы в прописные, на остальные символы не действует.

Следующая программа иллюстрирует возможности функции "CHR". Она выдает все символы кода ASCII на экран. При этом неко­ торые символы ASCII-кода (например, 7,10,13) при обычных условиях не имеют изображения, а используются для реализации специальных функций (перевод курсора и т.д.). Благодаря использованному в опе­ раторе Write формату каждый из изображаемых символов отделяет­ ся от соседнего пробелом и занимает две позиции.

Program PR4;

for i:=0 t o 255 do wjri,tes; (chr' и т.д. С помощью операторов сложения и вырезания можно получить новое слово, составленное из последовательности одной или нескольких строк. Например, А[8] + А[4:5] + А[8] = 'торт'.

Операция длины текста. Эта операция производится с помо­ щью служебного слова длин (length). Длина текста определяется Количеством символов в нем. Например: на алгоритмическом язы­ ке Длин ("информатика")=11, а на Паскале LENGTH ОинфорМатика")=11. Текст, не содержащий ни одного символа, называет­ ся пустым. Его длина равна 0: Длин("")=0, такой текст будет играть роль в алгоритмах и программах.

П р и м е р. Напишите алгоритм для подсчета количества буквы "а" в заданной строке символов.

Во многих случаях в состав выражения могут входить строко­ вые константы, переменные и символы. Например:

При выполнении программы: если задать значение 'А' перемен­ ной L, значение ' класс' — переменной S, то в результате выводится слово 'А — наш класс'.

Как мы отметили выше, символы можно найти (по индексу) по расположению в строке. Тип индекса является целым, индекс, пишется в квадратной скобке после имени переменной. Например:

если S= 'Алматы', то S[2] = 'л', S[4] = 'a'.

4.3.2. Стандартные функции и процедуры для обработки строки символов. Стандартные функции языка Паскаль:

CHR(I) — дает символ соответственно коду I; например:

СНЩ32) = '!' CHR(167) = V CHR(231) = V ORD (S) — дает код символа в виде целого числа.

Например, ord (!)=32; ord (з) =167; ord (ч) = 231.

COPY (St, Poz, N) — копирует N символов, начиная с позиции Poz строки St. Здесь St — строковая переменная; Poz, N — целые числа. Если N больше, чем длина строки, то результатом являет­ ся пустая строка.

Например:

PROGRAM COPY1;

VAR N, M: INTEGER;

Begin Writeln;

Write('введите строку символов i END.

П р и м е р 2. Нужно составить программу, по которой можно проверить, является ли данное слово палиндромом, т.е. читаются ли одинаково введенные слова слева направо, и наоборот (тот, лил и т.д.).

Здесь нужно сравнить 1-й символ с последним, 2-й — с предпо­ следним и т.д. до середины слова. Если в процессе сравнения символы окажутся равными (одинаковыми), то они удовлетворя­ ют поставленному требованию (казак).

Begin Readln (Slovo);

{цикл до середины слова} END.

Здесь функция Length(Slovo) определяет длину введенного слова, функция TruncO — целую часть выражения в скобках, а функция Trunc (Length(Slovo)/2) — номер серединного символа введенного слова.

П р и м е р 3. Нужно составить программу, которая присваива­ ет строковой переменной в качестве значения "слово", не превы­ шающее 20 символов в обратном порядке.

PROGRAM 0BRATN0E_SL0V01;

BEGIN Write ('введите одно слово: ' ) ;

Writeln END.

Составим программу другим способом:

PROGRAM OBRATNOE SLOV02;

VAR i: byte; slovo: string [20]; Ch :char;

BEGIN For i:=l to Trunc(length(slovo)/2) do slovo[i]:=slovo[length(slovo)-i+1];

slovo[length(slovo)-i+lj:=Ch;

При выполнении этой программы, если ввести слово 'инфор­ матика', то в результате выводится:

Обратное слово:

П р и м е р 4. Задан текст из русских строчных букв с точкой в конце. Нужно составить программу, которая напишет текст прописными буквами.

PROGRAM KIN4;

uses crt;

const n = 20;

var V, VI: string [33];

Begin

V:=' ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ';

VI:=' йцукенгшщзхъфывапролджэячсмитьбю';

Writeln('введите текст с точкой в конце:');

Readln (t);

While (t[i]'.') do End.

П р и м е р 5. Дано слово 'Студент'. Используя строковые функ­ ции и процедуры, выполните следующие задания:

1) найдите длину слова;

2) добавьте окончание "ы";

3) вырежьте "ден";

4) вырежьте "ент";

5) перед словом вставьте константу "Я хороший";

6) найдите номер позиции буквы "е" в заданном слове.

PROGRAM STUDENT;

Ь5: string [19];

BEGIN al:= 'студент'; а2:='ы';

END.

контрольные вопросы !• Как осуществляется ввод символов в программу? К какому типу они могут относиться?

2. Что такое коды ASCII? В каком интервале они задаются?

3. Какова структура строки символов, как записываются их значения?

4. Какие операции можно применить для символьных данных?

5. Какие операции можно производить над литерными величинами?

Объясните механизм работы известных вам операций над литерными величинами на примерах.

6. Какие стандартные функции применяются для данных символьного типа?

7. Какие особенности ввода данных символьного типа существуют?

8. Какой код формируется при нажатии символьных клавиш?

9. Что такое код расширения, или сканирования!

10. Когда можно применить стандартную функцию EOLN?

11. Как описываются символьные переменные?

12. Какими идентификаторами обозначаются строковые переменные и как они определяются?

13. Сколько символов можно присвоить строковой переменной или константе?

14. Как определяется длина строковой переменной?

15. Что такое строковое выражение!

16. Какие операции применяются для строковых переменных и констант?

17. Как можно вырезать внутренние символы в строке символов?

18. Какие существуют стандартные строковые функции на языке Паскаль?

Какую функцию они выполняют?

19. Какие существуют строковые процедуры на языке Паскаль? Как их применяют и какую функцию они выполняют?

Упражнения 1. Составьте новые слова из последовательности слов, не превышающих символов.

2. Составьте программу, которая заменяет букву "а" на "я" в заданной строке символов.

3. Напишите программу, которая определяет длину слова, введенного с клавиатуры. Используйте в программе циклы while do. Для определения окончания программы используйте строку '999'.

4. Нужно найти самое длинное слово в заданной строке, считая знаком их разделения пробел.

5. Нужно определить, сколько раз встречается в заданном тексте выбранное вами слово.

6. Нужно найти букву, которая наиболее часто встречается в заданном тексте.

7. Нужно найти из первых букв слов заданного текста ту, которая наиболее часто встречается.

8. Составьте программу, которая определяет количество буквы "а" в заданном тексте.

9. Замените запятыми пробелы между словами в заданном тексте.

10. Слова в тексте разделены с помощью нескольких пробелов. Перепишите текст, оставляя только один пробел между словами.

11. Нужно подсчитать количество слов в заданном тексте при условии, что слова разделены пробелами.

12. Сколько раз встречается строка "ас" в заданном тексте?

13. Нужно вывести на экран слова в заданном тексте, которые заканчиваются на букву "а".

14. Нужно определить, будет ли состоять из цифр или нет (является ли числом или нет) введенная строка?

Г л а в а 5. ПЕРЕМЕННЫЕ И СОСТАВНЫЕ ТИПЫ

ДАННЫХ

Переменные типы отличаются от стандартного типа. Для разных типов применяются разные операции. Например, для вещественных чисел можно применять арифметические операции +, -, *, /, нельзя применять операции DIV (деление нацело), MOD (остаток от деления). Составление новых типов данных, с одной стороны, облегчает выполнение операции над данными и дает возможность не допускать ошибок. Таким образом, можно составить другие переменные типы данных, отличные от стандартных типов. К ним относятся перечисляемые и ограничен­ ные типы.

5.1.1. Перечисляемые типы. Перечисляемый тип определяется через список возможных значений переменной. Описание этого типа определяется заданием списка возможных значений в круглых скобках, разделенных между собой запятыми. Эти значения счита­ ются постоянными и пронумерованными; номер первой константы равен нулю, номер следующей — 1 и т.д. по возрастанию. Такой перечисляемый тип каждый может определить в зависимости от решаемой задачи.

Формат его записи:

Синтаксическая диаграмма перечисляемого типа изображается следующим образом (рис. 5.1):

Рис. 5.1. Диаграмма перечисляемого типа Например:

TYPE Gaz = (Ge, С, О, N);

Vremia = (зима, весна, лето, осень);

VAR Al, A2: Vremia;

Здесь три типа перечисляемых данных описаны в разделе TYPE, разделе VAR определены переменные, принадлежащие к описанным типам. Переменные А\, А2 могут принимать значения только из перечисленных значений 'зима', 'весна', 'лето', 'осень', переменные Gl, G2, G3 могут принимать значения только из перечисленных: 'Ge', 'С, 'О', 'N', а переменные Metl, Met2 могут принимать одно из значений— 'Na\ 'К', 'Li', 'Cu', 'Zn\ Переменные перечисляемого типа можно описать непосредственно в разделе VAR, без описания в разделе Туре:

VAR A\, A2: (зима, весна, лето, осень);

Как мы отметили выше, для перечисляемых типов значение каждой константы можно определить по порядковому номеру (0,1, 2, 3), поэтому для них можно применять операции сравнения:

=, = и стандартные функции: ord(x), pred(x), succ(x), например succ('cmnm'):= 'красный'; pred('G'):="Ge";

ord('N'):=3; ord('Na'):=0 и т.д. Для значений переменной пере­ числяемого типа, указанных выше, можно написать следующие неравенства:

Na < К, С < N, красный < зеленый и т.д.

П р и м е р. Задан список имен зверей в виде списка констант.

Нужно составить программу, которая определяет порядковый номер зверя после барса и оленя в заданном списке.

PROGRAM ZVERI(INPUT,OUTPUT) ;

type AA = (мышь, корова, барс, заяц, дракон, змея, лошадь, баран, обезьяна, курица, собака, кабан) ;

PI, P2: АА;

N1, N2: INTEGER;

BEGIN Р1:='барс';

Р2:= SUCC(баран);

N1:= ORD(Pl) + 1;

N2:= 0RD(P2) + 1;

WRITELN('порядковый номер зверя после барса =',N1:2);

WRITELN('порядковый номер зверя после барана =',N2:2) END.

Если переменная может принимать часть значений, указанных в разделе описания, то такая переменная относится к ограничен­ ному типу или называется переменной ограниченного (интервального) типа. Для переменной этого типа указываются начальное и конечное значения в виде константы, эти значения должны относиться к одному из стандартных перечисляемых типов (нельзя использовать тип real), начальное значение должно быть меньше конечного. Формат записи ограниченного типа:

Синтаксическая диаграмма ограниченного типа изображается следующим образом (рис. 5.2):

Рис. 5.2. Диаграмма ограниченного типа Примеры:

Type days = 1..31;

Var RabDay, BolnDay : days;

Здесь значения переменных RabDay, BolnDay могут принимать любые значения из интервала 1..31. Если значение превышает этот интервал, то выдается сообщение об ошибке, и работа программы прекращается. Значение констант удобно задавать не в виде чисел, а через идентификаторы, например, для выше­ приведенного примера можно задать следующим образом:

Const Min = 1; Max = 31;

Type days = Min.. Max;

Var RabDay, BolnDay : days;

В следующем примере в разделе описания типов приведены названия месяцев:

TYPE mesiats = (январь, февраль, март, апрель, май, июнь, июль, август, сентябрь, октябрь, ноябрь, декабрь);

если среди них нужно использовать только летние месяцы, например, TYPE leto = (июнь..август), то mesiats считается основным, a leto — его ограниченным типом.

При применении ограниченного типа должны соблюдаться следующие закономерности: ограничивающие две постоянные должны быть одного типа; основная переменная может быть одного из следующих типов, кроме типа REAL:

целый тип — INDEX = 0..63;

символьный тип — LETTER = 'А'..'?;

перечисляемый тип — осень = сентябрь., ноябрь;

Начальная константа ограниченного типа не должна быть выше конечной. Переменные ограниченного типа обязательно Должны описываться в разделе типов TYPE или в разделе переменных VAR.

1. Какие существуют переменные типы, кроме стандартных?

2. Какие операции можно применять к переменным типам?

3. Как определяется перечисляемый тип?

4. Что такое ограниченный muni 5. Как описывается перечисляемый тип?

6. Как описывается ограниченный тип?

7. Какие требования ставятся к значениям ограниченного типа?

1. Табличный способ организации данных. До сих пор мы говорили лишь об организации действий, составляющих алгоритм, и почти не касались организации объектов, над которыми эти действия производятся. На самом деле, прежде чем исполнитель начнет действовать, должны указываться не только действия, но и те объекты, над которыми эти действия производятся.

Один из самых распространенных способов организации данных — табличный. Без преувеличения можно сказать, что с таблицами вы сталкиваетесь ежедневно. Таблица итогов шахматного турнира и классный журнал, таблица умножения на обложке вашей тетради и план зрительного зала — все это примеры табличной организации данных.

Допустим, что 9 "а" класс писал сочинение по литературе, и нам нужно узнать, какую оценку получил ученик этого класса Байжанов Д. Берем журнал 9 "а", открываем его на странице "Литера­ тура", находим строку с оценками БайжановаД., соответствующий столбец. На их пересечении и записана искомая оценка.

После уроков вы пришли в театр. Как занять место в зале согласно купленному билету? Сначала, двигаясь по проходу, ищем свой ряд, а затем идем вдоль него до нужного места.

Нетрудно заметить сходство этих примеров. Хотя школьные оценки на странице классного журнала и места в зрительном зале имеют мало общего, расположены они по одному принципу:

в несколько рядов {строк) одинаковой длины. Такой способ расположения данных и называется табличным. Может случиться и так, что в таблице всего одна строка. Такую таблицу называют линейной. Таблицу, состоящую из нескольких строк, называют прямоугольной.

Чтобы можно было оперировать с элементами линейных и прямоугольных таблиц, надо каким-то образом обозначать таблицы и их элементы. Обычно для обозначения таблиц используют латинские буквы. Принято нумеровать строки таблиц сверху вниз, а столбцы — слева направо. Элемент, расположенный на i-M месте линейной таблицы А, обозначают A[i], а элемент, расположенный на пересечении i-й строки и /-го столбца прямоугольной таблицы X, обозначают X[i,J]. Например, в таблице А А[1,1]=7, А[2,3]=0, А[3,2]=3,,4[3,4]=1.2.

На язьпсах программирования табличным данным соответствуют массивы.

Вид записи массива на разных язьпсах может различаться.

Например, массив, задающий значения роста учащихся некоторого класса, имеющего N учеников, на алгоритмическом языке может быть задан одномерным массивом так: нат R(N). Величина N — максимальный номер элементов массива. Этот же массив на языке Паскаль записывается так: R[N].

Элементами массива являются переменные с номерами (индексами). Имена переменных совпадают с именем массива. Пусть задан массив роста каждого ученика класса. Тогда массив R[N] можно раскрыть до элементов так: R[N] = [156, 162,..., R[i],..., 164], где индексы (в квадратных скобках) определяют номера элементов массива; R[i] — любой (i-й) элемент массива.

8 примере рассмотрен одномерный (линейный) массив. Примером двухмерного массива может служить таблица умножения нат Т[1:9,1:9]. В нем каждый элемент T[i, j] равен произведению индексов.

Индексы в двухмерном массиве определяют положение элемента в таблице: i — номер строки, j — номер столбца. Заметим, что на алгоритмическом языке записывают так: таб цел G[1:N].

Приведенная ниже таблица состоит из шести столбцов. Каждый столбец — одномерный массив. Перечислим их и запишем на алгоритмическом языке.

№ Фамилиями :N] Год рожд., G[1:N] Рост, R[1:N] Вес, W[1:N] Первый массив — номера учеников в списке. Это натуральный ряд чисел нат N[1:N].

Второй массив — фамилии учеников. Массив литерных (строковьк) величин лит F[1:N].

Третий и четвертый массивы — год рождения и рост. Массивы Целых чисел цел G[1:N] и цел R[1:N].

Пятый массив — вес учеников. Массив вещественных чисел вещ W[1:N].

Последний, шестой массив — занятие спортом. Это Массив Логических величин лог S[1:N].

Строки таблицы занимают записи. Например, запись во второй строке таблицы следующая:

нат N[2] лит F[2] цел G[2] цел R[2] вещ W[2] лог S[2], что соответствует Массив — это объединенное одним именем (идентификатором массива) множество однотипных элементов. К основным параметрам массивов относят его тип (числовой, символьный, логический), размерность (одномерный, двухмерный и т.д.) и размер (количество элементов массива в каждом измерении).

Вид записи массива на разных языках может различаться.

Например, массив, задающий значения роста учащихся некоторого класса, имеющего N учеников, на алгоритмическом языке должен иметь максимальный номер элементов массива, равный N. Этот же массив на языке Паскаль записывается так: R [п].

2. Массивы на Паскале. Массивом называются упорядоченные данные одного типа и обозначенные одним именем. Например, последовательность, состоящую из действительных чисел:

1.6, 14.9, -5.0, 8.5, 0.46, 2.25, -9.85, 6.27, 5.7, -3.2, можно считать одномерным массивом и обозначать именем А.

Элемент массива обозначается именем массива и в квадратных скобках указывается его индекс, элементы массива упорядочиваются по индексу. В математике массив описывается в виде вектора: Av А2,..., Ап или в общем виде обозначается буквой А? i= 1, 2,..., п.

В вышеописанном массиве его элементы могут принимать следующие значения: А[1] =1.6, А[2] = 14.9 и т.д. А[10] = -3.2.

Любой элемент массива можно применять путем указания его индекса. Индекс может быть целого, а также любого упорядоченного типа, постоянным, переменным или выражением.

Количество элементов массива определяется значением его индекса и интервалом изменения. Для описания массива применяются ключевые слова:

array of.

Формат записи массива:

type = array [] of (не равно) и операцию присваивания.

А для элементов массива можно применять любую операцию соответственно их типу. Например, если массивы А и В описаны следующим образом:

VAR А, В: array [1..10] of real, то применяемые операции выдают следующие результаты:

А: = В Значениям элементов массива А присваиваются Элементы массива в выражениях могут выполнять роль параметров в операторах read, readln, write, writeln и применяются в циклических операторах или выполняют роль операнда при присваивании значений другим переменным. Например, для ввода с клавиатуры элементов массива А можно применять оператор цикла:

А для вывода элементов массива на экран:

for i:=l to n do Рассмотрим несколько примеров.

П р и м е р 1. Составим программу для определения сред­ неарифметического значения последовательности 13 целых чисел и отклонения каждого элемента от среднеарифметического значения.

Program S r e d n e a l ;

i : integer;

begin S:= S/13;

end.

П р и м е р 2. Задан линейный массив, состоящий из веще­ ственных элементов (av a2, а3,..., ап). Нужно найти наименьший элемент массива и его индексный номер.

PROGRAM MINI;

const nl=20;

type mas = array[l.,nl] of real;

Begin Write ('число элементов. integer;

begin clrscr; {очитка экрана} writeln ('введите элементы массива через пробелы');

for j:=l to m do read(b[i, j]); {Ввод элементов for j:=l t 0 m ^о {цикл по столбцам} writeln ('среднее ', j, '-и группы: ', a [j ] :4:2) ;

writeln (' наивысшая оценка в ', k, ' -группе, она равна end.

П р и м е р 2. Н у ж н о составить программу для заполнения таблицы умножение.

P R O G R A M UMNOGENIfe;

Begin k[j,i] :=j*i; {массив произведений} Writeln {переход к следующей строке} readln {задержка стРаницы пользователя} End.

П р и м е р 3. Задана матрица размерности пкп(п = 4), состоящая из вещественных чисел. Нужно определить, где находятся наибольший и наименьший элементы матрицы, их значения, а также вычислить их сумму.

PROGRAM MATRICA1;

Const n = 3;

Type mas = array[l..n, l..n] of real;

Begin Writeln('Введите элементы матрицы через пробелы:');

max:= a[1,1]; min:= a[1,1];

ml:= 1; m2:= l;kl:= 1; k2:= 1;

1ml-номер стро ки ' m2-номер столбца для максимума, kl-номер стро ки / к2-номер столбца для минимума} Writeln('max ^'/max:6:2, ' он в строке - ',ml,', в Writeln('max+min =', sum:7:2) END.

П р и м е р 4. Даны двухмерные массивы а и Ь. Нужно найти третий массив — s, который является суммой предыдущих массивов.

PROGRAM SLOGENIE;

type ms = array[1..3, 1..3] of real;

var a, b, s: ms;

k, j: integer;

Begin Writeln('Введите через пробелы элементы массива а : ' ) ;

Writeln('Введите через пробелы элементы массива b: ') ;

End.

Контрольные вопросы 1. Что такое табличная форма организации данных?

2. Какие таблицы называются: а) линейными; б) прямоугольными?

3. Как обозначаются таблицы и их элементы?

4. Что называется массивом?

5. Как описываются массивы на языке Паскаль? Какова их структура?

6. Как определяется место элементов массива?

7. Что такое индекс? Какие требования предъявляются к индексу?

8. Как можно использовать нужный элемент массива?

9. Какого типа могут быть элементы и индексы массива?

Ю. Почему удобно применять константы при описании массива?

И. Какие операции применяются над элементами массива? Какие требования предъявляются к ним?

12. Как организуются ввод массива и вывод результатов в программе?

13. В чем отличие и сходство одномерных, двухмерных ига-мерньгхмассивов?

14. Как описывается двухмерный массив? Каковы его особенности?

15. Как располагаются элементы массива, элементы многомерных массивов в памяти компьютера?

16. Как сортируются элементы массива? Как определяются наибольший и наименьший элементы массива?

Упражнения 1. В качестве элементов массива X нужно ввести 5 целых чисел и вывести их на одну строку экрана, разделяя запятыми. Найдите среднее арифметическое значение элементов этого массива.

2. Задана матрица 3x3 из вещественных чисел, нужно вывести элементы на экран.

Каждый элемент матриць! умножить на 5, полученную матрицу вывести на 3. Дан одномерный массив из вещественных чисел a (i =1, 2,..., 5):

а) нужно написать элементы массива в обратном порядке;

б) нужно составить новый массив 6. по формуле bt = l/o r 4. Напишите программу, которая находит среди элементов массива, состоящего из п элементов, наименьший элемент и его порядковый номер.

5. Задан двухмерный массив А = (а у ), нужно найти:

а) номер строки, сумма элементов которой является наибольшей;

б) написать программу дл# вычисления суммы элементов найденной строки.

6. В журнале класса нужно вычислить количество оценок "5".

7. В журнале класса необходимо определить номер ученика, имеющего наибольшее количество оценок "5".

8. С клавиатуры введен рост учеников (количество JV) класса в виде множества.

Нужно найти средний рост учеников класса.

9. Заданы температуры одного месяца в виде множества: tv t2,..., t30. Нужно найти среднемесячную температуру, определить самую высокую и самую низкую температуру этого месяца.

.0. Задана температура каждого дня одного осеннего месяца в виде элементов множества: tv t2,..., t30. Йужно определить, сколько было теплых (tn > 0) и сколько прохладных (t • 0) дней.

В связи с усложнением решаемых на компьютере задач увеличивается объем программ, усложняются их чтение, составление, редактирование. Программы для периодически повторяющихся вычислений в задачах производства занимают длительный период, их нужно время от времени модифицировать, редактировать и изменять. Для этого используется структурное программирование, которое облегчает составление сложных программ, их редактирование, чтение, понимание, изменение и модификацию.

Множество способов, направленных на облегчение и удобство понимания программ и использования, называется структурным программированием. Каждая часть программы должна иметь логическую связь с другой и не должно быть скачков из одного места программы в другие.

Структурное программирование считается "программированием без оператора goto", т.е. по возможности нужно избегать применения оператора безусловного перехода. Поэтому блоки программ состоят из логических структур для обработки данных в указанной последовательности в порядке их расположения.

Любая программа состоит из ограниченного числа стандартных логических структур. Об основных логических структурах мы говорили ранее, к ним относятся следующие:

• линейная структура — последовательное выполнение операторов или группы операторов в порядке их расположения в программе;

• разветвление — в зависимости от выполнения или невыполнения условия из предварительно указанных возможностей (в основном их два) осуществляется выбор только одного;

• повторение — повторение группы операторов в цикле в зависимости от выполнения указанного условия.

Самой замечательной особенностью этих структур является то, что в алгоритмах их выполнения есть только одна линия входа и одна линия выхода. Здесь каждая структурная единица может состоять из одного оператора или из объединенных групп операторов, или из вложенных структур. В настоящее время Широко применяются технология программирования "сверху вниз", Постепенное определение выполняемых действий. Соответственно этой технологии сложная задача разделяется на независимые блоки, и каждый блок составляется отдельно в виде вспомогательной программы. В этой структуре сложную программу можно составлять из ступенчато образованных независимых подпрограмм.

Обычно некоторые действия приходится выполнять в нескольких местах программы. В решении практических задач некоторую часть основной программы приходится применять повторно для различных значений некоторых параметров или переменных. Чтобы не писать заново похожие друг на друга части программы, их удобно записать в виде подпрограммы и использовать в нужном месте.

Специальную часть основной программы, составленную в виде отдельной программы с собственным названием и возможностью ее повторного применения в нужном месте, называют подпрограммой.

Можно ограничиться выполнением подпрограммы в основной программе один раз путем указания ее имени, при этом объединяя несколько операций и прослеживая их полное выполнение.

Применение подпрограмм позволяет:

• уменьшить объем основной программы;

• использовать глобальные переменные в основной программе и в подпрограммах;

• оперативную память компьютера, выделенную для подпро­ граммы, до ее выполнения можно использовать в качестве свобод­ ных ячеек для других целей;

• применять подпрограммы в соответствии с требованиями структурного программирования.

Язык Турбо Паскаль — это процедурно направленный язык, так как в его составе есть подпрограммы, которые являются удобным средством для структурного программирования. Для экономии времени часто повторяемые действия на языке Турбо Паскаль применяются в виде функций и процедур. Отличие процедур от цикла заключается в том, что последовательность операторов выполняется один раз в нужном месте программы.

Независимая часть программы, которая вызывается по заранее закрепленному названию для выполнения определенных действий, называется процедурой. Процедура не может быть операндом (аргументом) выражения. Указание названия процедуры в программе осуществляет его выполнение, это действие называется вызовом процедуры. Например, процедура Read(F) присваивает переменной F значение с клавиатуры. Функция выполняется аналогично процедуре, у нее имеются два отличия: имя функции может исполнять роль операнда в выражении; после выполнения функции программе передается только одно значение. Процедура, в результате выполнения которой получается только одно значение, называется функцией.

Подпрограмма в виде процедуры может состоять из последовательности нескольких операторов, и результатом их работы может быть несколько значений. Подпрограмма в виде функций, как математическая функция, вычисляет определенное выражение по начальным значениям операнда (аргумента) и в качестве результата дает только одно значение. Для работы функций и процедуры следует задавать начальные значения данных, т.е. нужны фактические параметры. На языке Турбо Паскаль все процедуры и функции делятся на два вида: стандартные и нестандартные, определенные пользователем. Стандартные функции и процедуры, как элементы языка, обозначаются именем, заранее определенными ключевыми словами. А нестандартные функции и процедуры обозначаются произвольным именем, данным пользователем. Способы определения всех стандартных имен указаны в специальном библиотечном модуле, имеются систематизированные наименования.

6.2. СТАНДАРТНЫЕ БИБЛИОТЕЧНЫЕ МОДУЛИ

В версиях языка Турбо Паскаль выше 6.0 входят 9 стандарт­ ных библиотечных модулей, а именно: System, Crt, Dos, Graph, Graph3, Overlay, Printer, ТурбоЗ и Турбо Vision. По умолчанию модуль System вызывается сразу, а другие вводятся с помощью стандартного ключевого слова Uses. Например: Uses Crt, Dos, Printer;

Рассмотрим функции этих модулей более подробно.

System — является основанием языка Турбо Паскаль, он обеспечивает работу других стандартных подпрограмм и всех модулей.

Crt — управляет работой дисплея и клавиатуры.

Dos — выполняет различные функции системы Dos.

Graph— выполняет вывод на экран графических элементов и управляет возможностями эффективной работы графических адаптеров (дисплей) CGA, EGA, VGA, HRC, IBM 3270, MCGA и ATT6300, которые сейчас встречаются редко или вышли из употребления.

Graph3 — обеспечивает применение стандартных графических подпрограмм для образца Турбо Паскаль 3.0.

Overlay — обеспечивает организацию оверлейных программ (разделение объемных программ на части и в случае необходимости их объединение в целое).

Printer — ускоряет вывод данных на принтер.

ТурбоЗ — обеспечивает совместимость программы с образцом Турбо Паскаль 3.0.

Турбо Vision — для создания интерфейса пользователя включает объектно-ориентированную библиотеку подпрограмм.

6.2.1. Встроенные функции и процедуры. На языке Турбо Паскаль стандартный библиотечный модуль System загружается автоматически, он не указывается в разделе Uses. Поэтому встроенные процедуры и функции в его составе можно исполь­ зовать в любом месте программы. Встроенные арифметические Функции представлены в табл. 6.1.

6ec(x,{n}) integer integer Значение х уменьшается на щ если п менты в них необязательны, они могут иногда отсутствовать, иногда присутствовать.

Запись на Тип аргу­ Тип резуль­ Выполняемые функции chr© ord(s) trunc(x) real longint Выделение целой части числа.

delay( exit halt(n) hi(i) или to© или paramcount paramstr(n) word string Дает параметр командной строки.

sizeof(#) ffigh(jc) — дает максимум значения (х). Например, если величина задана в виде массива, тогда эта функция выдает верхнее значение индекса; если величина задана в виде строки — то длину строки.

Low(x) — дает минимум величины х.

6.3. НЕСТАНДАРТНЫЕ ФУНКЦИИ И ПРОЦЕДУРЫ

Если в программе нужно выполнить многократно несколько операторов, меняя их начальные параметры, то их можно объединить и дать имя, затем описать в виде нестандартной функции или процедуры для использования пользователей. Нестандартные функции и процедуры описываются после раздела VAR с заголовком с параметрами.

Начальные значения и результаты, которые служат для обмена между основной программой и подпрограммой, можно рассматривать как параметры.

Параметром называется переменная, которой присваивается определенное значение в области ее применения. Параметры бывают фактические и формальные. Параметры, которые записываются в заголовке подпрограммы, называются формальными. А значения или выражения, которые записываются вместо формальных параметров в основной программе, называются фактическими параметрами. При выполнении подпрограммы формальные параметры заменяются фактическими. Механизм их замены будет рассмотрен ниже.

Учебные простейшие программы обычно пишутся без подпрограмм, а в более сложных программах применяются одна или несколько подпрограмм и функций.

6.3.1. Процедуры и их описание. Любая процедура пишется в виде блока подпрограммы (процедуры), которая состоит из заголовка и тела. Заголовок процедуры состоит из ключевого слова procedure, после которого пишутся идентификатор (имя процедуры) и список формальных параметров с указанием типов в круглых скобках. При отсутствии необходимости можно опускать список формальных параметров. Тело процедуры записывается в виде независимого блока и рассматривается как отдельная программа. Синтаксическая диаграмма описания процедуры, функции и структуры их заголовка приведена на рис. 6.1.

Заголовок функции Рис. 6.1. Синтаксическая диаграмма процедуры и описание функции: а — процедуры; б — функции; в — заголовок процедуры; г — заголовок функции Описанные в процедуре метки, постоянные, типы и т.д.

считаются определенными только внутри процедуры. Внутри процедуры можно использовать любые глобальные переменные и достоянные, определенные в основной программе. Процедура описывается в соответствии с синтаксической диаграммой в следующем виде:

procedure (список формальных параметров);

begin В качестве примера приведем текст процедуры, которая записана отдельно от основной программы, останавливает выполнение программы и выдает сообщение об этом.

begin Здесь переменная Msg выдает сообщение об ошибке работы программы в виде текста, и процедура Halt библиотечного модуля System прекращает выполнение программы.

Процедура не выполняется самопроизвольно, следует вызывать процедуру с помощью ее имени и заданием фактических параметров. Фактические параметры при вызове процедуры должны совпадать по количеству и типу с фактическими параметрами, описанными в заголовке этой процедуры. Приведем пример использования процедуры ostanov. В этом примере вводятся с клавиатуры 10 чисел и вычисляется их среднее арифметическое значение. Если вводится отрицательное число, то на экран выводится сообщение и прекращается работа программы.

program p i ;

var count, item, n, sum:.integer;

{$Iostanov.pas}{сообщение для компилятора, что begin while (countMe башни, для этого в низу надо надеть большие диски, а вып% _ диски поменьше.

Целью игры является замена башни с левого стержня на правый.

go время замены за одно действие нужно переставлять только один диск и надевать диск с меньшим Р о м е р о м на больший.

Средний стержень предназначен для дополщ^ельных действий во время игры.

program H a n o j l ;

{Ханойские башни-смена дисков с т р е т ь е г о стержня на первый} p r o c e d u r e MoveDisk (From, Tol : Pos:j.tion) ;

{Перемещение дисков} begin WritePos(From);

Write('->');

WritePos(Tol);

Writeln end;

procedure MoveTower(Hight:integer;

MoveTower(Hight-1,From,Work, T o j ) ;

begin Readln(N);

MoveTower(N,Right,Left,Center);

{Вызов процедуры с п е р е д а ч е й фактических параметров.

end.

Контрольные вопросы и задания 1. Что такое структурное программирование и для чего применяется?

2. Назовите основные логические структуры и их особенности.

3. Какая программа называется подпрограммой?

4. Какая разница между подпрограммами в виде процедуры и функции?

5. Что такое стандартные и нестандартные функции"!

6. Составьте синтаксическую диаграмму для определения процедуры и функции, 7. Какая разница между формальными параметрами и фактическими?

8. Как определяется процедура и как она применяется?

9. Для чего нужна функция без параметра?

10. Можно ли внутри одной процедуры применить другую процедуру?

11. Назовите особенности подпрограммы, записанной в виде функции.

12. Как понимать локальные (местные) и общие (глобальные) параметры?

Какова их область действий?

13. Какая разница между параметрами-значениями и параметрами-переменными?

14. Назовите особенности вызова процедуры и функции, способы присвоения значений параметрам.

15. Какая разница между процедурой и функцией, какие есть отличия?

16. Что такое рекурсия?

17. Для чего нужно опережающее определение подпрограмм?

18. Заданы фрагменты программ:

a) var с, d: integer;

procedure V(x,y: integer);

б) var c, d: integer;

procedure Q(x: integer; var y. integer);

в) var c, d: integer;

procedure R(var x,y: integer);

1) Какие параметры в указанных фрагментах процедур являются параметрамизначениями, а какие параметрами-переменными?

2) Учитывая вышеописанные фрагменты, укажите результат, если выполняются следующие операторы:

а) с:=2; rf:=0; P(sqr(e)+c, d); Writeln (d);

б) с:=2; d:=0; Q(sqr(c)+c. d); Writeln (d);

Почему если в процедуре изменяем параметр-значение, то соответствующий ему параметр-переменная не меняет своего значения? Что нужно сделать, чтобы изменить его значение?

) Можно ли вызвать процедуру B(sqr(c) + с, d) в виде Щс, d) с учетом выше­ описанных фрагментов? Почему нет необходимости описывать неменяющийся параметр в процедуре в виде параметра-переменной?

пражнения. Напишите программу для нахождения среднегеометрического модуля двух чисел, вводимых с клавиатуры. В программе необходимо применить оператор ц и к л а while do, условием выхода из ц и к л а я в л я е т с я ввод числа О.

Геометрическим средним двух чисел называется квадратный корень от их произведения.

. Составьте программу вывода на экран случайных чисел, состоящих из строк. В каждой строке нужно выводить 5 чисел из интервала 0..36.

. Выведите все нечетные числа, применяя функцию Odd и ц и к л FOR в интервале 1..100.

. Составьте программу, которая определяет гипотенузу и площадь прямоугольного треугольника по числовым значениям двух его катетов.

. Найдите расстояние между двумя точками через их координаты.

. Решите следующие задачи с применением процедур и функций:

а) С = л!/7пЦп-т)!.

б) F = 1! +2!+ 3!+... + Ш.

, Вычислите площадь следующей фигуры, применяя процедуру вычисления площади треугольника по формуле Герона (рис. 6.4).

. Составьте таблицу значений следующих функций:

s - SUIJC + 9. П р и м е н я я подпрограмму д л я определения наибольшего из двух чисел, составьте программу для определения наибольшего из заданных 4-х чисел.

0. Заданы координаты вершин многоугольника: (xvyt, xryv..., х10, yw), нужно найти его периметр (нахождение расстояния между двумя вершинами определить через функцию).

Экран дисплея представляет собой четырехугольник, состоящий из множества точек. Он может работать в графическом и i текстовом режимах. В графическом режиме можно каждую точку экрана закрасить в разные цвета, начертить прямые тексты к различные изображения.

Для эффективности процесса программирования графики фирма "Borland International" разработала программную библиотеку под специальным названием GRAPH, где можно работать со всеми типами современных мониторов и где имеется множество драйверов, которые могут выводить на экран шрифты различных размеров.

7.1. АДАПТЕРЫ ДЛЯ ПЕРЕХОДА В ГРАФИЧЕСКИЙ РЕЖИМ

Информационная поддержка вывода данных на экран обеспечивается через два модуля — видеоадаптер и видеомонитор.

Видеомонитор, или дисплей — устройство для вьшода текстовых или графических образов — состоит из электронных лучевых трубок и панели из жидких кристаллов. Дисплей работает как телевизор, и образ на экране меняется 25 раз в секунду. Человеческое зрение не различает такую частую смену образов, и создается видимость, что образ на мониторе неподвижен. Образы на экране объединены в строки, состоящие из маленьких точек (пикселей). Поэтому наименьшим управляемым элементом экрана является пиксель (pixel).

Любое изображение на экране можно начертить с помощью этих пикселей. В графическом режиме экран состоит из множества четырехугольных пикселей, здесь можно изменить цвет любого пикселя.

Количество строк и точек в одной строке экрана зависит от режима работы видеоадаптеров. Видеоадаптер — блок управления экраном, его называют адаптером дисплея, или адаптером. Качество графических изображений на экране бывает различным в зависимости от типа адаптера. Обычно монитор и адаптер выполняют работу совместными усилиями. Адаптер располагается на отдельной плате, иногда он монтируется на системной плате.

В общем случае видеоадаптер состоит из электронной лучевой трубки (контроллер CRT) и видеобуфера. Современные усовер­ шенствованные адаптеры снабжаются и другими графическими контроллерами.

На компьютерах типа IBM PC используется несколько стандартных адаптеров, сначала применялись простые адаптеры для обработки текстов черно-белого изображения, которые могли состоять из 25, из 80 или из 40 символов. В 1982 г. фирма HGC (Hercules Graphics Card — графическая карта Геркулеса) выпустила адаптер, который обладал возможностью изображения графического объекта из 720x350 точек, кроме текстовой информации. Позже стали выпускаться цветные (CGA) и усовершенствованные графические (EGA) адаптеры. В последнее время широко применяются адаптеры типов VGA и SVGA. В настоящее время есть более 10 видов усовершенствованных адаптеров. Они различаются между собой количеством точек и режимом работы экрана или количеством цвета. Характеристика основных дисплеев указана в табл. 7.1.

Характеристика основных адаптеров дисплея CGA (Color Graphics Adapter—цветной графи­ Цветной ческий адаптер) MCGA (Multi Color Graphics Adapter) EGA (Enhanced Graphics EGA TGA Mono Here Mono ATT VGA (Video Graphics Array) SVGA (Super Video Цветной Graphics Array) С помощью необходимых драйверов любой адаптер можно Использовать в графическом режиме. Драйверами называются специальные программы, предназначенные для управления техническими устройствами компьютера. Графический драйвер Турбо Паскаля, приводя в соответствие функции и процедуры с Фактическими параметрами дисплея, управляет его работой в графическом режиме. Графические драйверы разработаны фактически для всех адаптеров, они хранятся на диске в виде Файла с типом расширения BGI (Borland Graphics Interface — Стандартные текстовые режимы компьютера белые белые белые графический интерфейс фирмы "Borland"). Например, CGA.BGI — драйвер, предназначенный для CGA, EGA, VGA и т.д.

7.2. ТЕКСТОВЫЕ ВОЗМОЖНОСТИ АДАПТЕРОВ МОДУЛЯ CRT

На Турбо Паскале есть несколько процедур и функций для совершенствования ввода-вывода текстов, они собраны в библиотечном модуле CRT (Cathode Ray Tube Display — дисплей с электронно-лучевой трубкой). В текстовом режиме адаптеры могут вывести на экран текст, состоящий из 80, 40 символов и 25, строк. Для использования процедур в текстовом режиме необходимо сначала загрузить модуль CRT. Для этого нужно писать специальную строку после заголовка программы:

Применяя модуль CRT, можно изменить цвет и размерность t символов, выводимых на экран, и цвет экрана. Также можно » создать на экране окно, стереть его, автоматически перенести курсор на новое место, определить его новое место, стереть и объединить строки и т.д.

Программы, выполняющие эти действия, заданы в виде процедур. Ознакомимся с основными из них. Установка текстового режима осуществляется через стандартную процедуру:

Здесь Mode — код текстового режима, его возможные значения указаны в табл. 7.2. Значение задается в виде константы (BW40, СО40,...) или в виде порядка режимов (0, 1,...).

В библиотеке CRT для значения Mode используется одна из следующих констант:

BW40=0; цвет черно-белый, 40x СО40=1; цветной, 40x BW80=2; черно-белый, 80x СО80=3; цветной, 80x Например:

TextMode (CO80);

TextMode (2);

В текстовом режиме символы могут закраситься в один та 1ft цветов (номера 0—15), фон экрана —в один из 8-ми цветов (0—7).

На монохромном черно-белом экране имеется возможность сделать мигающими некоторые символы, вывод белых символов на черный экран или вывод черных символов на белый экран, менять белизну символов (яркий, белый или серый). Цвет символов, выводимых на экран, можно менять с помощью процедуры:

TextColor (Color: Byte);

здесь Color — номер цвета.

Для изменения цвета экрана применяется процедура:

TextBackground (Color: Byte);

В качестве значения переменной Color служат английские названия или номер цвета (табл. 7.3).

Названия цветов Magenta (фиоле­ товый) Brown (коричневый) lightgray (бежевый) Blink (мигание) Например:

TextColor(Yellow);

TextBackGround(Red);

Write('Ha красный экран выводятся желтые символы');

TextColor(Yenow+BIink);

WriteCBbBBOflHTCH мигающие желтые символы');

TextColor(6);

\гтЬе('Выводятся на экран коричневые символы');

Если цвет у экрана и символа одинаковый, то текст становится невидимым. Следующая программа показывает возможности использования различных цветов:

program tsvet;

uses Crt;

const col: array [1..15] of string[15]= ('темно-синий','темно-зеленый','голубой','красный', коричневый', 'фиолетовый','бежевый','серый', 'синий','синеватый', 'светло-голубой','розовый', пурпурный', 'желтый', 'белый');

var k:byte; i:integer;

begin end.

При вьшолнении этой программы на экране выводятся номер и название цвета, окрашенные соответственно своему цвету.

Теперь рассмотрим несколько процедур для очистки экрана.

ClrScr — чистит экран или окно и переводит курсор в левый верхний угол экрана (с координатами 1,1), работает только для текстового режима;

ClrEol — стирает символы от курсора до конца строки;

DelLine — стираются все символы строки, где расположен курсор, нижние строки перемещаются на одну строку вверх;

InsLine — вводится новая строка в позицию, где расположен курсор, нижние символы перемещаются на одну строку вниз.

На языке Турбо Паскаль предусмотрены процедуры для управления курсором и помещения его на любое место экрана.

GotoXY(X,Y: byte); — переводит курсор на точку экрана с координатами X,Y. X указывает единицы расстояния от левой границы до правой, a Y — расстояние от верхней границы дс нижней. Если рассмотреть экран как полностью открытое окно, то он соответствует адаптеру дисплея в текстовом режиме, состоящем из 25 строк, в каждой строке по 80 символов: Х=\У=1.. 25. Координаты левого верхнего угла экрана— (1,1), а правого нижнего угла— (80,25). Например:

ClrScr; {Чистка экрана} GOTOXY(33,4); {Перевод курсора в позицию 33-го символа 4-й строки} WriteO;

Наряду с этим существует возможности создания окна на экране; программы, выполняющие эти дейс™™1» заданы в виде процедуры:

Window (XI,Yl,X2,Y2:Byte); — процедур® создания окна на экране; XI,Y1,X2,Y2—координаты правого угла окна. Самое маленькое окно снФУжает только один символ, а самое большое окно охватывает в е с ь экран размером (1,1,80,25), например:

Window (1,1,80,25);

Window (19,7,59,16); {Окно в середине экрана} Способ применения окна можно у в и ^ е т ь и з следующей программы:

program okno;

var "k:integer;

begin textBackground(5) ;

textbackground(12);textcolor(15) ;

window(39,3,71,18) ;

for k:=l to 100 do writeln;

gotoXY(3, 8) ; {Перевод курсора на н о Я е место} writeln ('Хорошо, нажмите клавишу EIJTER') ' textMode(Co80) {Стирание в с е х графических указаний*} pnd.

При вьшолнении этой программы на л^вои стороне экрана появится окно фиолетового цвета со словам*1 "Нажмите клавишу ENTER", написанными желтым цветом, а спрЯ^ появляется второе окно красного цвета со словами, написание 1101 белым цветом, ^.''Хорошо, нажмите клавишу ENTER".

контрольные вопросы.. Какие виды видеомониторов имеются в к о м п ь ю ^ Р ^ "*™ * ^ - " ч е м и х отличие?

2. Какая функция у модуля CRT? Как он запускав*0*1 в программе?

3. С помощью какой процедуры устанавливается текстовый режим/ 4. Что такое видеоадаптер, или адаптер? Из каких YR Сектор эллипса');

Ellipse(80,310,0,360,60,30);

setfillstyle(1,4);floodfill(80,300,15);circle(265,310,50);

Outtextxy(200,380,'Окружность, разд. на секторы');

pieslice(2 65,310,4 0,60,50);line(260, 310, 280, 2 60) ;

setfillstyle(l,6);floodfill(2 65,310,15);

pieslice(2 65,310,40,160,50) ;

setfillstyle(8,6);floodfill(300,300,15) ;

fillellipse(400,310,4 0,60);setfillstyle(8, 3) ;

floodfill(4 00,310,15) ; ellipse(52 0,310,0,360,60,50);



Pages:     | 1 ||


Похожие работы:

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное образовательное учреждение высшего профессионального образования Балтийский федеральный университет имени Иммануила Канта (БФУ им. И. Канта) Утверждаю: Ректор БФУ им. И. Канта Клемешев А.П. _ 20_г. Номер внутривузовской регистрации_ Основная образовательная программа высшего профессионального образования Направление подготовки 020400.68 – БИОЛОГИЯ Магистерская программа экология Квалификация (степень) магистр...»

«Государственное образовательное учреждение высшего профессионального образования Липецкий государственный технический университет Инженерно-строительный факультет УТВЕРЖДАЮ Декан ИСФ _Бабкин В.И. _ 2011 г. РАБОЧАЯ ПРОГРАММА ДИСЦИПЛИНЫ Архитектурные конструкции 270800.62 Строительство Направление подготовки Профиль подготовки Проектирование зданий Квалификация (степень) выпускника бакалавр Нормативный срок обучения 4 года Форма обучения очная г. Липецк – 2011 г. 1. Цели и задачи дисциплины Целью...»

«Содержание I. Общая характеристика учреждения II. Условия осуществления образовательного процесса III. Особенности образовательного процесса IV. Результаты образовательной деятельности V. Научная и инновационная деятельность вуза VI. Содержание и результаты реализации проектов социального и частно-государственного партнерства учреждения. Доноры и спонсоры учреждения, благотворительные фонды и фонды целевого капитала, с которыми работает учреждение. Проекты и программы, поддерживаемые...»

«Институт вычислительной математики и математической геофизики СО РАН Винс Дмитрий Владимирович ИММИТАЦИОННОЕ МОДЕЛИРОВАНИЕ СИСТЕМЫ УПРАВЛЕНИЯ ПОТОКОМ ЗАДАНИЙ ДЛЯ СИБИРСКОГО СУПЕРКОМПЬЮТЕРНОГО ЦЕНТРА КОЛЛЕКТИВНОГО ПОЛЬЗОВАНИЯ Специальность: 05.13.11 – Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей Научный руководитель – доктор технических наук профессор Глинский Борис Михайлович доктор технических наук профессор Родионов Алексей Сергеевич ОБЪЕКТ И...»

«-1ДЕПАРТАМЕНТ ОБРАЗОВАНИЯ ГОРОДА МОСКВЫ ЮГО-ВОСТОЧНОЕ ОКРУЖНОЕ УПРАВЛЕНИЕ ОБРАЗОВАНИЯ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ГОРОДА МОСКВЫ СРЕДНЯЯ ОБЩЕОБРАЗОВАТЕЛЬНАЯ ШКОЛА № 1968 (ГБОУ СОШ №1968) ул. Верхние поля, д.30 Москва, 109451 e-mail: [email protected] Тел./fax (495) 658-52-67 ДОПОЛНИТЕЛЬНАЯ ОБЩЕОБРАЗОВАТЕЛЬНАЯ ПРОГРАММА РОБОЛАБ Лего-технологии Возраст 8-12 лет Срок реализации 1 год Составитель: Муравьева Т А Москва 2013г -2ПОЯСНИТЕЛЬНАЯ ЗАПИСКА Программа Лего-технологии...»

«Krassimir Markov, Vitalii Velychko, Oleksy Voloshin (editors) Natural and Artificial Intelligence ITHEA SOFIA 2010 Krassimir Markov, Vitalii Velychko, Oleksy Voloshin (ed.) Natural and Artificial Intelligence  ITHEA® Sofia, Bulgaria, 2010 ISBN 978-954-16-0043-9 First edition Recommended for publication by The Scientific Concil of the Institute of Information Theories and Applications FOI ITHEA This book is engraved in prof. Zinoviy Lvovich Rabinovich memory. He was a great Ukrainian scientist,...»

«АНО Институт логики, когнитологии и развития личности ALT Linux НОУ ИПС-Университет г. Переславля им. А. К. Айламазяна Институт Программных Систем РАН Восьмая конференция Свободное программное обеспечение в высшей школе Переславль, 26–27 января 2013 года Тезисы докладов Москва, Альт Линукс, 2013 Восьмая конференция Свободное программное обеспечение в высшей школе : Тезисы докладов / Переславль, 26–27 января 2013 года. М.: Альт Линукс, 2013. XX с. : ил. В книге собраны тезисы докладов,...»

«содеРЖАНие Приветствие Митрополита Псковского и Великолукского ЕВСЕВИЯ — 3 Приветствие губернатора Псковской области Андрея Турчака — 7 Попечительский Совет Чтений — 8 Организаторы Чтений — 10 Краткая программа Чтений 18-19 апреля 2012 г. — 11 Программа открытия Чтений 18 апреля — 13 Приветствия и поздравления участникам Чтений — 13 Литературно-музыкальная композиция — 15 Слово Протоиерея Олега Тэора — 20 Пленарное заседание — 22 Программа Чтений 19 апреля 2012 г. Секция 1 Военное духовенство:...»

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ УТВЕРЖДАЮ Заместитель Министра образования Российской Федерации _В.Д.Шадриков “17”_03_2000г. Номер государственной регистрации 170ен/сп_ ГОСУДАРСТВЕННЫЙ ОБРАЗОВАТЕЛЬНЫЙ СТАНДАРТ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ Специальность 013800 РАДИОФИЗИКА И ЭЛЕКТРОНИКА Квалификация - радиофизик Вводится с момента утверждения МОСКВА 1.ОБЩАЯ ХАРАКТЕРИСТИКА СПЕЦИАЛЬНОСТИ 013800 РАДИОФИЗИКА И ЭЛЕКТРОНИКА 1.1Специальность утверждена приказом Министерства...»

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Государственное образовательное учреждение высшего профессионального образования САМАРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ Факультет механико-математический Кафедра математического моделирования в механике УТВЕРЖДАЮ Проректор по учебной работе В.П. Гарькин __2011 г. РАБОЧАЯ ПРОГРАММА ДИСЦИПЛИНЫ Математическое моделирование (цикл общие математические и естественнонаучные дисциплины; раздел Дисциплины по выбору; основная образовательная программа...»

«Научно-практическая конференция с международным участием VIII научные чтения, посвященные памяти академика РАМН Е.Н. Мешалкина НАУЧНАЯ ПРОГРАММА 20–21 ИЮНЯ 2014 года г. Новосибирск НАУЧНЫЙ ОРГКОМИТЕТ Председатель академик РАН А.М. Караськов (Новосибирск) Заместители председателей д-р мед. наук, проф. В.В. Ломиворотов (Новосибирск) д-р мед. наук, проф. Е.А. Покушалов (Новосибирск) Члены оргкомитета д-р мед. наук А.В. Богачев-Прокофьев д-р мед. наук, проф. З.А. Кавтеладзе д-р мед. наук, проф....»

«Государственное образовательное учреждение высшего профессионального образования Пензенский государственный университет Медицинский институт Кафедра клинической морфологии и судебной медицины с курсом онкологии РПД 151-116.1.22-2012 СУДЕБНАЯ МЕДИЦИНА Рабочая программа учебной дисциплины по подготовке специалиста по направлению 030501 - Юриспруденция по специальности 030501 - Юриспруденция Экземпляр №. РАЗРАБОТАНА на основе программы по судебной медицине, утвержденной Советом по правоведению...»

«АННОТАЦИЯ ПО ПРОЕКТУ Государственный контракт № 02.740.11.0822 от 24 апреля 2010 г. Тема: Управление структурой и свойствами трубных микролегированных сталей при прокатке толстого листа с использованием методов физического и математического моделирования Исполнитель: ФГБОУ ВПО Санкт-Петербургский государственный политехнический университет Ключевые слова: микролегированные трубные стали, горячая прокатка, распад аустенита, микроструктура, механические свойства, физическое и математическое...»

«ОБЗОР ДЕЯТЕЛЬНОСТИ ЗА 2007 ГОД В 2007 г. Уральский государственный горный университет выполнил 97 НИР, из них 22 – по ЕЗН, 74 – по хоздоговорам, 1 – по программе Российского фонда фундаментальных исследований (РФФИ). Объем выполненных исследований составил 41369,8 тыс. рублей. Из средств федерального бюджета в 2007 г. по ЕЗН финансировалось 22 НИР на сумму 6293,5 тыс. руб., по программе РФФИ – 180,0 тыс. руб. В рамках отдела хоздоговорных НИР выполнено исследований на сумму 34896,3 тыс. руб....»

«ПРАВИТЕЛЬСТВО ИВАНОВСКОЙ ОБЛАСТИ ПОСТАНОВ ЛЕНИЕ от 22.01.2013 № 12-п г. Иваново О реализации дополнительных мероприятий на рынке труда Ивановской области в 2013 году В соответствии с Законом Российской Федерации от 19.04.1991 № 1032-1 О занятости населения в Российской Федерации, постановлением Правительства Российской Федерации от № 15.12.2012 1307 О предоставлении и распределении в 2013 году субсидий из федерального бюджета бюджетам субъектов Российской Федерации на реализацию дополнительных...»

«МИНИСТЕРСТВО СЕЛЬСКОГО ХОЗЯЙСТВА РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное образовательное учреждение высшего профессионального образования КУБАНСКИЙ ГОСУДАРСТВЕННЫЙ АГРАРНЫЙ УНИВЕРСИТЕТ УТВЕРЖДАЮ Председатель совета юридического факультета д.ю.н., профессор В.Д. Зеленский г., протокол № РАБОЧАЯ ПРОГРАММА Дисциплины ЕН.Ф.5 Экология (индекс и наименование дисциплины) 110202.65 Плодоовощеводство и винограСпециальность дарство Специализация Виноградарство и переработка винограда...»

«МИНИСТЕРСТВО СЕЛЬСКОГО ХОЗЯЙСТВА РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования Саратовский государственный аграрный университет имени Н.И. Вавилова СОГЛАСОВАНО УТВЕРЖДАЮ Заведующий кафедрой Декан факультета / Павлов И.М. / _ / Соловьев Д.А. / _ _2013 г. _ 2013 г. РАБОЧАЯ ПРОГРАММА ДИСЦИПЛИНЫ (МОДУЛЯ) Дисциплина МЕХАНИКА. ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Направление 280100.62 Природообустройство и подготовки водопользование...»

«Региональный семинар в рамках программы UNEP Ускорение осуществления целей ИУВР-2005 в Центральной Азии (г.Бишкек, 27-28 июля 2006 г.) РОЛЬ ГОСУДАРСТВА И ЕГО ОРГАНОВ В СОХРАНЕНИИ ВОДНЫХ ЭКОСИСТЕМ Т.И. Неронова, Начальник отдела Государственного агентства Кыргызской Республики по охране окружающей среды и лесному хозяйству Кыргызстан - горная страна с большим разнообразием ландшафтов, животного и растительного мира с высочайшими вершинами, крупными ледниками. Выше 3,5 тыс. м расположено 23%...»

«2 Программа разработана на основе ФГОС высшего образования по программе бакалавриата 04.03.01 Химия. Программа предназначена для поступающих в магистратуру на следующие программы (очная форма обучения): 1. Неорганическая химия 2. Органическая химия 3. Аналитическая химия 4. Физическая химия 5. Химия окружающей среды, химическая экспертиза и экоаналитическая химия 6. Радиохимия Вступительные испытания: 1. Неорганическая и органическая химия (собеседование); 2. Аналитическая и физическая химия...»

«Министерство образования и науки РФ федеральное государственное бюджетное образовательное учреждение высшего профессионального образования Самарский государственный университет Психологический факультет УТВЕРЖДАЮ Проректор по научной работе А.Ф. Крутов _ 2011 г. ПРОГРАММА КАНДИДАТСКОГО ЭКЗАМЕНА История и философия науки (История науки) (ОД.А.01; цикл ОД.А.ОО Обязательные дисциплины основной образовательной программы подготовки аспиранта По отрасли 19.00.00 – Психологические науки, специальность...»






 
2014 www.av.disus.ru - «Бесплатная электронная библиотека - Авторефераты, Диссертации, Монографии, Программы»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.