Общая структура программы на языке Паскаль задана жёстко и выглядит так:
Общая структура программы
Program ; // Предложение, содержащее **заголовок программы**. // Данное предложение может отсутствовать, поскольку в // используемой нами системе Free Pascal // и большинстве (во всех?) современных версий Паскаля // никакой роли не играет. // Оно оставлено для совместимости с другими версиями // языка, которые его требуют.
// Например: Program ChoiseSort3v; // Предложения заканчивается точкой с запятой Uses ; // **Раздел импорта**, // который всегда состоит из одного предложения! // Данное предложение может отсутствовать, если вы не // используете никаких дополнительных библиотек.
// Например: Uses CRT, OGLgraph; // Список разделяется запятыми, // предложения заканчивается точкой с запятой // Раздел глобальных описаний может состоять из нескольких // подразделов, порядок следования которых — свободный, // но все они должны быть здесь — перед кодом. // // Этот раздел содержит описание всего, что // не задано изначально, // не импортируется из библиотек, // не является локальным объектом внутри процедуры.
Pascal с нуля. PascalABC урок 1. Вступление.
// А именно — именованные константы, пользовательские типы, // переменные и наконец — имена меток. // // В принципе, этот раздел тоже может отсутствовать. Begin // Обязательные операторные скобки Begin-end // Операторы, составляющие «главную процедуру» // Чисто теоретически, их тоже может не быть!
// Тогда программа честно ничего не делает. // Но «скобки» должны быть. End. // Программа кончается точкой
Текст в угловых скобках (символы < и >) требует замены «по смыслу». Не путайте с операциями < и >!
Ещё раз обратите внимание на жёсткий порядок следования частей программы на этом уровне детализации её структуры. Все части идут именно в этом порядке и не повторяются. Но некоторые могут отсутствовать совсем.
Раздел описаний
Раздел описаний может состоять из нескольких подразделов, разбитых по категориям описываемых объектов — типов, переменных, меток и констант. Отдельными подразделами считаются каждая функция или процедура.
Простой пример раздела описаний
const // Начался раздел констант n = 10; // Описание (именованной) константы var // Начался раздел глобальных переменных, // значит — закончился раздел констант i, j : integer; // 1-е описание переменных r, q : real; // 2-е описание переменных k, m : integer; // 3-е описание переменных — снова integer. // Имеем право. Begin // Обязательный раздел кода . End. // Конец всему (в этой программе)!
Объекты программы могут быть связаны описанием.
Cвязь между объектами
const n = 10; // Константа n определяет длину массива type Arr10 = array[1 .. n] of integer; // Используя n, описываем целый тип массивов var A,B : Arr10; // Используем описание типа Arr10 для описания переменных A, B
Запомните правило — если что-то, описываемое вами, ссылается на что-то другое, то это другое должно быть описано заранее. Например, если вы используете константу для описания массива (как в примере), то она должна быть описана выше по коду. Из этого правила есть единственное исключение, связанное с использованием указателей.
1.7 Основы информатики — Пишем первую программу на Паскале
Учтите, что библиотечные объекты, т.е. объекты системные или описанные в библиотеках, подключённых с помощью uses, описывать не надо и на них можно ссылаться из любого места. Но, как мы узнаем позже, их имена можно «перекрыть»!
Ниже приведён неправильный код, где ничего не описывается заблаговременно.
var A,B : Arr10; // А что это? type Arr10 = array[1 .. n] of integer; // И сколько же это будет? const n = 10;
В раздел описаний может входить несколько «однотипных» подразделов описаний.
var i, j : integer; // Описали часть переменных const n = 10; // Спохватились и описали константу n var A,B : array[1 .. n] of integer; // «Дописали» ещё часть переменных
Полный пример
Подразделы могут следовать в любом порядке и повторяться.
В примере приводится «канонический» порядок следования подразделов — именованные константы, типы, переменные. За ними часто следуют описания одной или нескольких процедур и функций, которых в примере нет. Затем порядок может повториться. Это делается, чтобы разбить все объекты, используемые в программе «по смыслу» — типы, определённые пользователем, процедуры, работающие с этими типами и вспомогательные объекты — константы и служебные переменные.
Метки описываются там, где это удобно.
Пример раздела описаний
. // Здесь могли бы быть заголовок и раздел импорта const // Начался 1-й раздел констант Pi = 4.0; // Описание (именованной) константы // Внимание — мы перекрыли системное определение Пи! var // Начался 1-й раздел глобальных переменных, // значит — закончился раздел констант i, j : integer; // 1-е описание переменных r, q : real; // 2-е описание переменных k, m : integer; // 3-е описание переменных — снова integer.
Имеем право. const // Начался 2-й раздел констант n = 10; // Описание (именованной) константы type // Начался раздел типов A10 = array[1..n] of integer; // Это тип, определённый пользователем.
// Обратите внимание — мы использовали // ранее описанную константу var // Начался раздел переменных, закончился раздел типов A,B : A10; // 4-е описание переменных пользовательского типа A10 . // Что-то ещё, возможно — ничего // Где-то здесь кончается раздел переменных label // Раздел меток нужен редко 1, endOfAll; // список объявленных меток // Теперь это «законные» метки . // Что-то ещё, возможно — ничего Begin // Обязательный раздел кода . End. // Конец всему (в этой программе)!
Примеры программ нелепых, но синтаксически грамотных
Данная программа содержит только раздел кода, но он — пуст, так что программа самым честным образом ничего не делает. Ибо и не должна.
Begin // Если убрать этот комментарий, то получится // минимальная правильная программа на Паскале // Впрочем, для Паскаля его и нет. End.
Данная программа действительно работает (стирает с экрана следы работы предыдущих программ), но не содержит ни одного описания. Её реальный аналог есть, например, в операционной системе ДОС.
Uses CRT; // без CRT не будет работать clrscr («clearscreen») Begin clrscr; // команда очищает экран от результатов предыдущих вводов/выводов End.
В данной программе есть все разделы (кроме описания функций), но она не выполняет никаких полезных действий.
Program Prog; // К бессмысленному предложению Program — бесполезное, но правильное имя // Всё есть и никто ничего не делает. Uses CRT, Graph; // Собираемся работать и с текстом, и с графикой, но так и не собирёмся Const // Раздел констант n = 5; // В данном случае n — не переменная, а другое обозначение 5. m : integer = 6; // Один из ужасов Паскаля.
Это — статическая переменная! // Без понимания, что к чему, лучше не использовать, // но это — настоящая переменная Var // Раздел переменных i:integer; // Запасная переменная — нам не потребуется Label // Раздел меток.
BeeginProgram, // У меток описывать нечего, но они должны EndProgram; // быть перечислены. Type S100 = string[100]; Procedure Proc(x:integer); // Данная процедура принимает параметр x // после чего всегда печатает: // «Опять — 25. Не мешайте работать!» Const S2 = ‘. Не мешайте работать!’; Var S1 : S100; Begin: x := n; // Для данной процедуры значения параметров не важны S1 := ‘Опять — ‘; writeln(S1, x, S2 ); End; Begin BeginProgram: // Метка ничего не делает, но место указывает ; // Отсюда собираемся работать goto EndProgram; // Хватит УЖЕ работать, пошли домой Proc(n); // Здесь мы к счастью никогда не побываем, goto BeginProgram; // иначе — никогда не выберемся EndProgram: // Место у выхода ; // Перекур после честной работы End. // Теперь — совсем всё
В данной программе есть все разделы (кроме описания функций), но она не выполняет никаких полезных действий.
Ввод/вывод
var x, y, z: integer; a, b, c: real;
Источник: wiki.nsunc.com
Program [ ] ; (заголовок программы) Var [ ] ; (раздел описания переменных) Begin (начало) Раздел операторов ; (команды) End. (конец) — презентация
Презентация на тему: » Program [ ] ; (заголовок программы) Var [ ] ; (раздел описания переменных) Begin (начало) Раздел операторов ; (команды) End. (конец)» — Транскрипт:
1 Program [ ] ; (заголовок программы) Var [ ] ; (раздел описания переменных) Begin (начало) Раздел операторов ; (команды) End. (конец)
2 Read — (читать) Readln — (читать строку) Write — (писать) Writeln – (писать в строку) Program test; — имя программы Var A,B,С: integer; — список переменных: тип Begin — начало раздела операторов Readln (A,B); — оператор ввода переменных C:=A+B; — оператор присваивания Writeln (C); — оператор вывода Readln — чтение ответа End. — окончание программы
3 Создать новый файл Открыть существующий файл Сохранить файл (сохраняет файл активного окна) Сохраняет все измененные файлы Сохранить файл под именем Изменить текущий каталог Распечатать файл Установить параметры принтера Выход в операционную систему Выход (прекращает работу в интегрированной среде)
4 Модуль CRT — (это английская аббревиатура, обозначающая электронно-лучевую трубку – название модуля подчеркивает, что он умеет управлять способами вывода на экран). Модуль CRT — не входит в стандарт языка, он является расширением возможностей Паскаля. Модуль CRT содержит набор программ (процедур), которые позволяют: Задавать цвет символов; Очищать экран; Устанавливать курсор в любую позицию экрана; Выполнять множество других полезных действий.
5 А C Sum Имена переменных Адреса ячеек Ячейки памяти Значения переменных Основная память состоит из ячеек (байтов), каждая из которых имеет адрес, то есть порядковый номер. В этих ячейках и хранятся данные. Стандартная длина ячейки равна 8 бит.
6 Для переменной типа integer выделяется ячейка длиной в 2 байта, что равно 16 битам. Такая ячейка получает символьное имя – имя переменной. Крайняя левая позиция выделяется для знака числа: 0 – число положительное 1 – число отрицательное. Остальные 15 позиций выделяются для записи самого числа в двоичном виде. Старший байтМладший байт 15 бит Знаковый бит Диапазон представления целых чисел от до до +2 15
7 0,7 = 0.7 или.7 -2,1 = =2,7*10 3 число 10 записывается в виде буквы Е, а за ней идет величина степени 2.7Е3 0,002=2*10 -3 соответствует запись 2Е-3 Знаковый бит Порядок (степень десятки) Мантисса(значащие цифры числа) 8 бит23 бита
8 Program z1; Var A,b,c:real; A:=3.5; B:=7.6; C:=A+B; Writeln(сумма=C); Readln; End.
9 (1,1)(80,1) (1,25) Схема нумерации позиций экрана для модуля CRT Паскаль работает в текстовом режиме. Экран можно представить как таблицу из 25 строки 80 столбцов. Каждая ячейка имеет две координаты – x и y x- номер столбца, y – номер строки Символы можно выводить на экран 16 различными цветами, которые кодируются числами от 0 до 15. Строки нумеруются сверху вниз, начиная с 1 до 25 Столбцы – с лева направо с 1 до 80 x y
10 Для использования дополнительных библиотечных функций, необходимо в начале программа указать это в специальной секции объявления библиотечных модулей. Она начинается словом uses Затем через запятую перечисляются подключаемые модули. TextBackGround(3); – вызов процедуры для фонового цвета ClrScr ; — процедура очистки экрана TextColor(14); — процедура выбора цвета GoToXY (40,10) — процедура установки курсора в точку экрана Deley (1000) — процедура временной задержки на 1000 мкс.
Источник: www.myshared.ru
Презентация, доклад на тему Программирование на языке Паскаль
АлгоритмСвойства алгоритмадискретность: состоит из отдельных шагов (команд)понятность: должен включать только команды, известные исполнителю (входящие в СКИ)определенность: при одинаковых исходных данных всегда выдает один и тот же результатконечность: заканчивается за конечное число шаговмассовость: может применяться многократно при
- Главная
- Информатика
- Программирование на языке Паскаль
Слайд 1Программирование на языке Паскаль
Слайд 2Алгоритм
Свойства алгоритма
дискретность: состоит из отдельных шагов (команд)
понятность: должен включать только команды,
известные исполнителю (входящие в СКИ)
определенность: при одинаковых исходных данных всегда выдает один и тот же результат
конечность: заканчивается за конечное число шагов
массовость: может применяться многократно при различных исходных данных
корректность: дает верное решение при любых допустимых исходных данных
Алгоритм – это четко определенный план действий для исполнителя.
Слайд 3Программа
Программа – это
алгоритм, записанный на каком-либо языке программирования
набор команд для
компьютера
Команда – это описание действий, которые должен выполнить компьютер.
откуда взять исходные данные?
что нужно с ними сделать?
1970 – язык Паскаль (Н. Вирт)
Оператор – это команда языка программирования высокого уровня.
Источник: shareslide.ru