русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Начало систематического изложения Turbo Pascal (TP)


Дата добавления: 2013-12-23; просмотров: 780; Нарушение авторских прав


Требования к защите бальных задач

Лекция 4

Пример

Массивы

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

x1,x2,...x10 – обозначения, принятые в математике, x[1],x[2],...x[10] – в ТР.

Индексами могут служить выражения.

Объявление массива в программе:

VAR <Имя>: ARRAY[<Нач_индекс>..<Кон_индекс>] of <Тип>;

где

· <Имя> - имя переменной-массива;

· ARRAY, of - ключевые слова;

· <Нач_индекс> и <Кон_индекс> - целые числа (пока), определяющие диапазон изменения индексов (номеров) элементов массива;

· <Тип> - тип элементов массива.

Таким образом, при объявлении массива необходимо указать его идентификатор (имя), тип данных элементов массива и размер. В квадратных скобках указываются величины, соответствующие начальному и конечному индексам, разделенные двумя точками.

Например,

VAR Matrix : ARRAY [1 .. 10] OF REAL;Koef : ARRAY [1 .. 3] OF INTEGER;

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

 

Массив Х, содержащий 100 элементов.

Ввести n (n<=100).

(Нарисовать схемы и записать тексты)

 

i:=1; WHILE i<=n DO BEGIN READLN(Х[i]); i:=i+1 END; i:=n; WHILE i>=1 DO BEGIN WRITELN(X[i]); i:=i-1 END;   i:=1; REPEAT READLN(X[i]); i:=i+1 UNTIL i>n; i:=n; REPEAT WRITELN(X[i]); i:=i-1 UNTIL i<1;  

 

Цикл с параметром:

For i:=1 to n do readln(X[i]);

For i:=n downto 1 do writeln(X[i]);

For i:=1 to n do writeln(X[n-i+1]);



1. Защищается алгоритм, а не текст программы на Паскале. Если Вы не в состоянии вразумительно объяснить ход решения, рисуйте схему алгоритма.

2. Текст на ТР должен соответствовать алгоритму.

3. После заголовка - комментарий, в котором ФИО, номер задачи и стоимость в баллах.

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

5. Зацикливание программы, если это имеет смысл.

6. Задержка пользовательского экрана, если это необходимо.

Вот шаблон для оформления текста программы:

 

program <имя_программы>;

{Фамилия И.О., ПМ-1Х, задача I.15.3 сложность 3 балла}

…<Секция описаний>

var c:char;

begin <Начало секции действий>

repeat

writeln(‘Введите значение n, 0<n<=100’);

readln(n);

writeln(‘Конец работы? - yes, no’);

readln(c);

until c=’y’;

end.

 

 

· Алгоритмический язык TP ориентирован на работу в среде MS-DOS.

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

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

1)каждая переменная, константа, выражение и функция относятся к определенному типу данных;

2)тип данных задается явно;

3)над данными каждого типа допустимы определенные операции.

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

· Каждая реализация языка ТP является расширением базового (стандартного) языка Pascal. Для того чтобы создавать мобильные программы, необходимо в данной конкретной реализации отличать средства, относящиеся к стандарту, и возможности, относящиеся к расширению стандарта.

· Программа - цепочка символов, слова, разделители, пробелы.

· Программа - последовательность предложений (вложенность)

· Структура программы: [Заголовок], секция описаний, секция действий.

· Алфавит языка TP содержит прописные и строчные буквы латинского алфавита (буквой считается символ подчеркивания "_"), цифры от 0 до 9, символы + - * / = > < ( ) [ ] { } . , ; : ' @ # ^ $ и пробел.

· К элементам языка относятся:

идентификаторы - имена переменных, констант, процедур, функций и т.д., зарезервированные (или ключевые) слова,

стандартные идентификаторы (предопределенные имена)

специальные символы - комбинации символов алфавита.

· Идентификатором в TP может быть любое слово, состоящее из букв и цифр, начинающееся с буквы. Компилятор не различает прописные и строчные буквы, кроме того, следует иметь в виду, что компилятор анализирует лишь первые 63 символа идентификатора.

· Все зарезервированные (ключевые) слова алгоритмического языка следует помнить, поскольку нельзя использовать в программе идентификаторы, совпадающие с ключевым словом. В списке ключевых слов значком "+" помечены слова, не используемые в стандарте языка Pascal:

 

and   Mod shr+
asm file Nil string+
array for Not then
begin   object+ to
case function Of type
const goto or unit+
constructor+ if packed until
destructor+ implementation+ procedure uses+
div in program var
do inline+ record  
downto interface+ repeat while
else   set with
end label shl+ xor+

 

· Стандартные идентификаторы могут быть переопределены в программе, однако при этом теряется возможность использования соответствующих предопределенных средств. Например, в программе можно описать переменную "sin", но доступ к стандартной функции синуса будет закрыт в области действия этой переменной.

· Специальные символы обозначают следующие элементы языка:

+ - * / - арифметические операции;

+ - * - операции над множествами;

= < > <= >= <> - отношения;

:= - присваивание;

. - конец программы, составной идентификатор, селектор поля записи;

, - разделитель элементов списка;

: - используется при описаниях;

; - разделитель операторов языка;

.. - диапазон;

[ ] или (. .) - селектор элемента массива;

{ } или (* *) - скобки для выделения комментариев;

+ - операция конкатенации строк

# - обозначение символа по его коду;

@ - обозначение адреса переменной;

$ - обозначение директивы компилятора или шестнадцатеричной константы;

^ - обозначение указателя.

· Комментарии { } (* *)

· Классификация типов данных:

 

· О совместимости типов данных.

TP - язык со строгой типизацией данных. Это означает, что во время выполнения программы производится проверка справедливости (допустимости) выполняемых операций. Строгая типизация налагает определенные ограничения, которые объединены понятием совместимости типов данных. В основном программист должен сам предвидеть и обеспечивать явное преобразование типов данных там, где это необходимо. В TP явное преобразование типа данных осуществляется по схеме NewType(value), где значение value будет преобразовано к новому типу данных NewType.

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

· В TP выделены три вида совместимости типов данных, и каждый вид предоставляет определенные возможности по совместному использованию данных. Два типа данных могут характеризоваться как одинаковые, совместимые по операциям (или просто совместимые) и совместимые по присваиванию.

· Две переменные относятся к одинаковым (эквивалентным) типам, если описания переменных:

а)ссылаются на одно и то же имя типа;

б)ссылаются на различные имена типов (пусть Т1 и Т2), которые в разделе описания типов объявлены идентичными (TYPE T1=T2);

· Бинарные операции могут быть выполнены над операндами, относящимися к совместимым (по операциям) типам данных. Два типа совместимы (по операциям), если:

а)типы одинаковы (эквивалентны);

б)оба типа целые или оба типа вещественные;

в)один тип есть диапазон другого, или оба есть диапазоны от третьего;

г)оба типа - строка (STRING);

д)один тип - строка, а другой - ARRAY[1..n] of CHAR, или просто CHAR;

е)оба типа - множества с совместимыми по операциям базовыми типами;

ж)один тип - ссылочный, другой бестиповый указатель;

з)оба типа - процедурные типы с одинаковым числом параметров, типы которых соответственно эквивалентны. Для функциональных типов необходима еще и эквивалентность типов результатов.

и)Считается, что каждый объект типа "множество" совместим с пустым множеством и каждый объект типа "указатель" совместим с константой NIL.

· Величина может быть присвоена переменной, если их типы совместимы по присваиванию. Выражение f типа F называется совместимым по присваиванию с переменной w типа W, если :

а)F и W - эквивалентные, не файловые типы (и не содержат файловые типы в качестве полей);

б)оба типа - совместимые ординарные типы и значения выражения f попадают в диапазон допустимых значений типа W;

в)оба вещественные типы и значение выражения f допустимо для типа W;

г)W - вещественный тип , F - целый;

д)W - строка, F - либо строка, либо символ, либо массив символов;

е)W и F - совместимые множественные типы, причем множество f целиком входит во множество W;

ж)W и F - совместимые ссылочные типы или совместимые процедурные типы;

з)W - процедурный тип, а f - имя процедуры или функции (параметры и типы должны быть согласованны);

и)W и F - объектные типы, причем тип F потомок типа W, либо оба типа ссылочные на совместимые объектные типы.

 

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



<== предыдущая лекция | следующая лекция ==>
Частные случаи для структуры цикла | Перечислимый тип


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.029 сек.