Язык программирования Турбо Паскаль
Знакомство со средой Турбо Паскаль, введение в язык программирования. Процедуры ввода-вывода, встроенные функции Турбо Паскаля. Операторы условного выполнения и циклов, переменные, массивы и графические возможности языка; программа и блок-схема.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 17.06.2014 |
Размер файла | 581,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ
ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ
ГРОЗНЕНСКИЙ ГОСУДАРСТВЕННЫЙ НЕФТЯНОЙ
ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
имени академика М.Д. МИЛЛИОНЩИКОВА
Факультет автоматизации и прикладной информатики
Кафедра «Информатика»
Курсовая работа
по дисциплине: «Технологии программирования»
на тему: «Язык программирования Турбо Паскаль»
Выполнил:
студент группы ИСТ-10
Юсупов Руслан
Руководитель:
Ярасханова М.У
Грозный 2012
Оглавление
паскаль язык функция программа
Введение
Глава I: Основные сведения программирования на языке Turbo Pascal
1.1 Знакомство со средой Турбо Паскаль
1.2 Введение в язык программирования
1.3 Процедуры ввода-вывода. Некоторые встроенные функции Турбо Паскаля
1.4 Операторы условного выполнения
1.5 Операторы циклов в Паскале
1.6 Символьные и строковые переменные
1.7 Массивы
1.8 Простейшие графические возможности языка Turbo Pascal
Глава II: Программа
2.1 Блок-схема
Заключение
Список литературы
Введение
Язык программирования Pascal создан в 1973 году швейцарским ученым Николасом Виртом и был назван в честь известного французского физика, математика и философа Блеза Паскаля (1623-1662), который являлся автором первой в мире вычислительной (суммирующей) машины (1641). Язык сначала создавался для целей обучения программированию вообще.
По словам автора языка «… разработка языка Паскаль базировалась на двух принципиальных концепциях. Первая состояла в том, чтоб изобрести язык, адаптированный к обучению программированию как систематической дисциплине, базирующейся на неких базовых положениях, ясно и естественно отраженных в языке. Вторая предполагала разработку конкретных представлений этого языка, которые были бы надежны и эффективны на современных ЭВМ.». По мнению Вирта, «язык, на котором студент обучается выражать свои идеи, значительно влияет на его метод мышления и изобретательность…беспорядок, сопутствующий имеющимся языкам, конкретно влияет на стиль программирования студентов.». Сейчас с уверенностью можно говорить о том, что Вирт достиг поставленной перед собой цели. Язык Паскаль является не лишь наилучшим языком обучения программированию, дает возможность выполнить простую реализацию его на современных ПЭВМ, употреблять его как язык системного программирования, но и является базой для сотворения более массивных языков.
Глава I: Основные сведения программирования на языке Turbo Pascal
1.1 Знакомство со средой Турбо Паскаль
Для вызова Турбо-Паскаля необходимо запустить файл bp.exe из папки BIN. Экран при этом примет вид, показанный на рис. 1.1.
Рис. 1.1. Окно программы
При написании программ, использующих графические возможности ПЭВМ, понадобятся файлы graph.tpu и cga.bgi.
Функциональные клавиши Турбо-Паскаля:
· F1 - помощь
· F2 - сохранить
· F3 - загрузить
· F4 - начать или продолжить исполнение программы,
· F7 - выполнить следующую строку программы
· F8 - выполнить следующую строку программы
· F9 - компилировать
· F10 - вызов меню
· Alt+F3 - загрузить используемую программу
· Alt+F5 - сменить окно редактора на окно вывода результата
· Alt+F6 - загрузить в редактор последнюю программу
· Alt+X - выход
· Ctrl+F9 - выполнить программу.
Компилятор Турбо-Паскаля воспринимает строки программы длиной не более 126 символов. Вертикальная длина "листа" ограничивается 64 535 символами.
Система меню.
Опция File (рис. 1.2.) позволяет:
Рис. 1.2. Опция File
· создать новый файл (New);
· загрузить файл с диска в память редактора (Open…);
· записать файл из редактора на диск (Save);
· переписать файл (Save as…);
· записать все файлы из редактора на диск (Save all);
· изменить директорию (Change dir);
· распечатать файл (Print);
· выбрать параметры печати (Printer setup…);
· осуществить временный выход из среды Турбо-Паскаля (Dos shell), для возврата в среду необходимо набрать в командной строке exit и нажать клавишу Enter;
· осуществить окончательный выход из среды Турбо-Паскаля (Exit).
Опция Edit (рис. 1.3.) возвращает среду в режим создания или редактирования текста программы. Эта опция позволяет:
Рис. 1.3. Опция Edit
· отменить последнюю команду (Undo);
· вернуть последнюю команду (Redo);
· вырезать (Cut);
· копировать (Copy);
· вставить (Paste);
· очистить (Clear);
· показать содержимое буфера обмена (Show clipboard).
Опция Search позволяет производить поиск и замену отдельных символов, слов и словосочетаний в тексте программы, а также поиск ошибок, процедур, объектов и составных частей программы.
Опция Run позволяет выполнить созданную программу (Run). Кроме того, опция позволяет:
· осуществить пошаговую отладку программы, исключая процедуры (Step over) и включая процедуры (Trace into);
· осуществить прогон программы до курсора (Go to cursor);
· сбросить отладочные средства и прекратить отладку программы (Program reset);
· отслеживать изменение переменных в процессе выполнения программы (Parameters…).
Опция Compile позволяет:
· компилировать программу без ее прогона (Compile, Make, Build);
· указать компилятору, куда нужно поместить готовую к работе программу (Target…, Primary file…, Clear primary file);
· получить информацию о программе (Information…).
Опция Debug позволяет проверить и/или изменить текущее состояние любых переменных отлаживаемой программы, найти нужную процедуру или функцию.
Опция Tools управляет информацией, которая будет отображаться в отладочном окне. С ее помощью можно указать отладчику те переменные и/или выражения, за изменением которых Вы хотели бы наблюдать при отладке программы;
Опция Options позволяет управлять режимами компиляции и компоновки программы, а также работой среды Турбо-Паскаля.
Опция Window позволяет управлять окнами с загруженными файлами;
Опция Help позволяет получить подсказку по той или иной возникшей проблеме в процессе создания программы.
1.2 Введение в язык программирования
Приведём простейший пример программы, единственная цель которой вывести на экран какое-нибудь приветствие:
program Hello;
begin
writeln('Hello, world!');
readln;
end.
Первая строка ничего не делает, она просто содержит название программы. Затем, после слова begin начинаются собственно действия. В нашей программе их два: первое - это вывод строчки «Hello, world» на экран, а второе - ожидание нажатия клавиши «Enter», оно нужно для того, чтобы можно было увидеть результат программы, а затем уже нажать «Enter» и вернуться в Турбо-Паскаль. И, наконец, слово end с точкой в последней строке говорит о том, что программа закончилась. Действия, из которых состоит программа, называются операторами, они отделяются друг от друга точкой с запятой.
А теперь приведём пример, в котором программа уже не «глухая», то есть может запрашивать какие-либо данные у пользователя. Пусть требуется спросить у пользователя два числа, после этого вывести на экран их произведение:
program AxB;
var a,b: integer;
begin
writeln('Введите a и b');
readln(a,b);
writeln('Произведение равно ',a*b);
readln;
end;
В этой программе перед словом begin появляется новая строчка, начинающаяся, словом var. В ней мы указываем, что программе понадобится две переменные (a и b), в которых можно хранить целые числа (слово integer).
О том, что делает первый оператор, нам известно: он выводит на экран строчку 'Введите a и b'. При выполнении второго оператора программа будет ждать, пока пользователь не введет число с клавиатуры и не нажмёт «Enter»; это число программа запишет в переменную a, затем то же самое делается для переменной b. Третьим оператором выводим на экран сначала надпись «Произведение равно », а потом значение выражения a*b. Четвёртый оператор пояснений не требует.
А теперь рассмотрим структуру программы в общем виде. Любая программа на Турбо-Паскале состоит из трех блоков: блока объявлений, блока описания процедур и функций и блока основной программы. Ниже эти блоки расписаны более подробно.
Блок объявлений:
program ... (название программы)
uses ... (используемые программой внешние модули)
const ... (объявления констант)
type ... (объявления типов)
var ... (объявления переменных)
Блок описания процедур и функций:
procedure (function)
begin
...
end;
...
Блок основной программы:
begin
... (операторы основной программы) ...
end;
Рассмотрим наиболее важные части вышеописанных блоков. Под заголовком программы понимается имя, помогающее определить её назначение. Имя, или идентификатор, строится по следующим правилам: оно может начинаться с большой или малой буквы латинского алфавита или знака «_», далее могут следовать буквы, цифры или знак «_»; внутри идентификатора не может стоять пробел. После имени программы следует поставить «;», этот знак служит в Паскале для разделения последовательных инструкций. Заметим, что имя программы может не совпадать с именем соответствующего файла на диске.
Определение констант, начинающееся с зарезервированного слова Const и перечисления используемых в программе констант с присвоенными им именами, знаками = и их значениями и отделяемыми друг от друга точкой с запятой. Типизированные константы также объявляются после слова const, но имена через двоеточие связываются с типом, и лишь потом ставится знак равенства, и указываются значения. В связи с этим секция «const» может повторяться после секции type, например:
const Zero = 0;
pi = 3.1415926;
my_const = -1.5;
Hello = 'Привет !';
За словом var следуют объявления переменных, которые понадобятся нам при написании программы. Переменные Паскаля могут хранить данные различной природы: числа, строки текста, отдельные символы и т. п. Ниже приводится часть типов переменных, которые можно применять.
Название типа |
Возможные значения |
Примеры значений |
|
integer |
целые: -32768 ... 32767 |
12, -10000 |
|
Real |
действительные (по модулю): 2,9x10-39... 1,7x1038 |
-9.81, 6.02e-23 |
|
string[n] |
строка до n символов длиной, если [n] не указано, то до 255 |
`abcde', `привет' |
|
Char |
одиночный символ |
`F', `!', '_','ю' |
Объявления переменных записываются в следующей форме: var <переменная> : <тип>;.
Если описываются несколько переменных одного типа, то достаточно записать их имена через запятую, а после двоеточия поставить общий тип.
Примеры объявления:
var Number: integer;
d,l: real;
Name: string[20];
Line: string;
Key1,Key2: char;
Здесь, между словами begin и end. располагаются команды (точнее, операторы), которые будут выполняться один за другим при запуске программы. Рассмотрим простейшие типы операторов на следующем примере:
program First;
const a2 = 3;
a1 = -2;
a0 = 5;
var x,f: real;
begin
write(`Введите значение х ');
readln(x);
f := a2*x*x+a1*x+a0;
writeln(`Значение квадратного трехчлена: ',f);
end.
Первая строка исполняемой (основной) части программы выводит на экран надпись «Введите значение х », для этого используется процедура write написанная разработчиками Турбо Паскаля, то есть набор команд, невидимый для нас, но существующий реально в недрах системы Турбо Паскаль. В качестве параметра этой процедуры используется наша строчка. Параметры всегда записываются в круглых скобках, апострофы означают, что параметр имеет строковый тип. Итак, в первой строке мы видим так называемый оператор вызова процедуры. Каждый оператор отделяется от следующего знаком «;». Во второй строке вызывается процедура ввода readln(x), которая ждет, пока пользователь наберет значение x с клавиатуры и нажмет клавишу «Enter», а затем переводит курсор на следующую строку. В третьей строке вычисляется значение трехчлена и записывается в переменную f; этот оператор называется оператором присваивания, и обозначается символом ":=". В последней строке на экран выводится строка «Значение квадратного трехчлена: » и значение переменной f. Несложно заметить, что здесь процедуре writeln передается уже не один, а два параметра, причем они могут иметь разные типы. Вообще, процедуры ввода и вывода (т.е. write, writeln, read, readln) могут иметь любое число параметров различных типов, параметрами могут являться переменные, литералы (т.е. непосредственно записанные числа, строки; в нашем примере дважды были использованы строковые литералы), а также выражения. Используя выражение при выводе, можно заменить две последние строчки нашей программы одной:
writeln('Значение квадратного трехчлена: ', a2*x*x+a1*x+a0);
В арифметических выражениях на Паскале используются следующие знаки для обозначения операций: +, -, *, /. Для определения порядка действий используются круглые скобки согласно общепризнанным математическим правилам.
Для обозначения переменных запрещается использование ряда слов, называемых зарезервированными, они играют в языке особую роль. Нам уже встречался ряд зарезервированных слов: program, begin, end, string, const, var, и т.п.
1.3 Процедуры ввода-вывода. Некоторые встроенные функции Турбо-Паскаля
Почти каждая программа должна общаться с пользователем, то есть выводить результаты своей работы на экран и запрашивать у пользователя информацию с клавиатуры. Для того чтобы это стало возможным, в Турбо-Паскале имеются специальные процедуры (то есть небольшие вспомогательные программы), называются они процедурами ввода-вывода. Для того чтобы заставить процедуру работать в нашей программе, нужно написать её имя, за которым в скобках, через запятую перечислить параметры, которые мы хотим ей передать. Для процедуры вывода информации на экран параметрами могут служить числа или текстовые сообщения, которые должна печатать наша программа на экран. Опишем назначение этих процедур.
· write(p1,p2,... pn); - выводит на экран значения выражений p1,p2,... pn, количество которых (n) неограниченно. Выражения могут быть числовые, строковые, символьные и логические. Под выражением будем понимать совокупность некоторых действий, применённых к переменным, константам или литералам, например: арифметические действия и математические функции для чисел, функции для обработки строк и отдельных символов, логические выражения и т.п. Возможен форматный вывод, т.е. явное указание того, сколько выделять позиций на экране для вывода значения. Пример для вещественных типов: write(r+s:10:5); - вывести значение выражения r+s с выделением для этого 10 позиций, из них 5 - после запятой. Для других типов все несколько проще: write(p:10); - вывести значение выражения p, выделив под это 10 позиций. Вывод на экран в любом случае производится по правому краю выделенного поля.
· writeln(p1,p2,... pn); - аналогично write, выводит значения p1,p2,... pn, после чего переводит курсор на новую строку. Смысл параметров - тот же, замечания о форматном выводе остаются в силе. Существует вариант writeln; (без параметров), что означает лишь перевод курсора на начало новой строки.
· readln(v1,v2,...vn); - ввод с клавиатуры значений переменных v1,...vn. Переменные могут иметь строковый, символьный или числовой тип. При вводе следует разделять значения пробелами, символами табуляции или перевода строки (т.е., нажимая Enter).
· read(v1,v2,...vn); - по назначению сходно с readln; отличие состоит в том, что символ перевода строки (Enter), нажатый при завершении ввода, не «проглатывается», а ждет следующего оператора ввода. Если им окажется оператор ввода строковой переменной или просто readln; то строковой переменной будет присвоено значение пустой строки, а readln без параметров не станет ждать, пока пользователь нажмет Enter, а среагирует на уже введенный.
Пример. Программа просит пользователя ввести с клавиатуры два целых числа и печатает на экране их сумму:
program PrintSum;
var a,b: integer;
begin
write('Введите два числа:');
readln(a,b);
writeln('Сумма a и b равна ',a+b);
readln;
end.
Функции числовых параметров.
Название |
Значение |
|
abs(x) |
модуль x |
|
cos(x) |
косинус x |
|
frac(x) |
дробная часть x |
|
int(x) |
целая часть x (т.е. ближайшее целое, не превосходящее x) |
|
Pi |
число ? |
|
round(x) |
x, округлённое до целого |
|
sin(x) |
синус x |
|
sqr(x) |
квадрат x |
|
sqrt(x) |
квадратный корень из x |
|
trunc(x) |
число, полученное из x отбрасыванием дробной части |
1.4 Операторы условного выполнения
Оператор if.
Иногда требуется, чтобы часть программы выполнялась не всегда, а лишь при выполнении некоторого условия (а при невыполнении этого условия выполнялась другая часть программы). В этом случае пользуются оператором условного выполнения, который записывается в следующем виде:
if <условие> then <оператор1> else <оператор2>;
Под оператором понимается либо одиночный оператор (например, присваивания, вызова процедуры), либо т.н. составной оператор, состоящий из нескольких простых операторов, помещённых между словами begin и end. Важно заметить, что перед else не ставится точка с запятой. Часть else может и отсутствовать.
Пример 1: пусть требуется найти число m=max(a,b). Этой задаче соответствует следующий фрагмент программы на Паскале:
if a>b then m:=a else m:=b;
Пример 2: (без else) пусть дано целое число i. Требуется оставить его без изменения, если оно делится на 2, и вычесть из него 1, если это не так.
var i: integer;
.......
if i mod 2 = 1 then i:=i-1; {else - ничего не делать}
Примечание: в примере использована операция нахождения остатка от деления (mod), для нахождения неполного частного в Турбо-Паскале используется div.
Оператор выбора (case).
Кроме оператора условного выполнения и циклов в Турбо Паскале имеется ещё одна управляющая конструкция, одно из названий которой -- оператор выбора. На самом деле это усложнённый оператор if, он позволяет программе выполняться не двумя способами, в зависимости от выполнения условия, а несколькими, в зависимости от значения некоторого выражения. В общем виде этот оператор выглядит так:
case Выражение of
Вариант1: Оператор1;
Вариант2: Оператор2;
...
ВариантN: ОператорN;
[else ОператорN1;]
end;
(Пояснение: квадратные скобки означают то, что часть else может отсутствовать).
Выражение в простейших случаях может быть целочисленным или символьным. В качестве вариантов можно применять:
1. Константное выражение такого же типа, как и выражение после case. Константное выражение отличается от обычного тем, что не содержит переменных и вызовов функций, тем самым оно может быть вычислено на этапе компиляции программы, а не во время выполнения.
2. Интервал, например: 1..5, 'a'..'z'.
3. Список значений или интервалов, например: 1,3,5..8,10,12.
Выполняется оператор case следующим образом: вычисляется выражение после слова case и по порядку проверяется, подходит полученное значение под какой-либо вариант, или нет. Если подходит, то выполняется соответствующий этому варианту оператор, иначе -- есть два варианта. Если в операторе case записана часть else, то выполняется оператор после else, если же этой части нет, то не происходит вообще ничего.
1.5 Операторы циклов в Паскале
В реальных задачах часто требуется выполнять одни и те же операторы несколько раз. Возможны различные варианты: выполнять фрагмент программы фиксированное число раз, выполнять, пока некоторое условие является истинным, и т. п. В связи с наличием вариантов в Паскале существует 3 типа циклов.
Цикл с постусловием (Repeat).
На Паскале записывается следующим образом: repeat <оператор> until <условие>. (По-русски: повторять что-то пока_не_выполнилось условие). Под обозначением <оператор> здесь понимается либо одиночный, либо последовательность операторов, разделённых точкой с запятой. Цикл работает следующим образом: выполняется оператор, затем проверяется условие, если оно пока еще не выполнилось, то оператор выполняется вновь, затем проверяется условие, и т. д. Когда условие, наконец, станет истинным выполнение оператора, расположенного внутри цикла, прекратится, и далее будет выполняться следующий за циклом оператор. Под условием, вообще говоря, понимается выражение логического типа.
Цикл с предусловием (While).
Этот цикл записывается так: while <условие> do <оператор>. (Пока условие истинно, выполнять оператор). Суть в следующем: пока условие истинно, выполняется оператор (в этом случае оператор может не выполниться ни разу, т.к. условие проверяется до выполнения). Под оператором здесь понимается либо простой, либо составной оператор (т.е. несколько операторов, заключёных в begin ... end).
Цикл со счетчиком (For).
Записывается так: for <переменная>:=<нач> to <кон> do <оператор>. Вместо to возможно слово downto.
Рассмотрим такой пример: требуется вывести на экран таблицу квадратов натуральных чисел от 2 до 20.
var i: integer;
begin for i:=2 to 20 do writeln(i,' ',sqr(i)); end.
При выполнении цикла происходит следующее: переменной i присваивается начальное значение (2), затем выполняется оператор (простой или составной), после этого к i прибавляется 1, и проверяется, не стало ли значение i равно конечному (20). Если нет, то вновь выполняется оператор, добавляется 1, и т. д. В случае, когда вместо to используется downto, все происходит наоборот: единица не прибавляется, а вычитается.
Например, следующий цикл выведет ту же таблицу, но в обратном порядке:
for i:=20 downto 2 do writeln(i,' ',sqr(i));
1.6 Символьные и строковые переменные
В математике под переменной обычно понимают некую величину, значения которой могут быть только числами. В языках программирования почти все данные, с которыми работают программы, хранятся в виде переменных. В частности, бывают переменные для хранения текстовых данных: предложений, слов и отдельных символов.
Символьный тип.
Тип данных, переменные которого хранят ровно один символ (букву, цифру, знак препинания и т.п.) называется символьным, а в Паскале - char. Объявить переменную такого типа можно так: var ch: char;. Для того чтобы положить в эту переменную символ, нужно использовать оператор присваивания, а символ записывать в апострофах, например: ch:='R';. Для символьных переменных возможно также использование процедуры readln, например:
write(`Выйти из игры? (Да/Нет)'); readln(ch);
if ch='Д' then ...{выходить}...
else ...{продолжать}...;
Символьные переменные в памяти компьютера хранятся в виде числовых кодов, иначе говоря, у каждого символа есть порядковый номер. К примеру, код пробела равен 32, код `A' - 65, `B' - 66, `C' - 67, код символа `1' - 48, `2' - 49, `.' - 46 и т. п. Некоторые символы (с кодами, меньшими 32) являются управляющими, при выводе таких символов на экран происходит какое либо действие, например, символ с кодом 10 переносит курсор на новую строку, с кодом 7 - вызывает звуковой сигнал, с кодом 8 - сдвигает курсор на одну позицию влево. Под хранение символа выделяется 1 байт, поэтому всего можно закодировать 28=256 различных символов. Кодировка символов, которая используется Турбо-Паскале, называется ASCII (American Standard Code for Information Interchange - американский стандартный код для обмена информацией).
Для того чтобы получить в программе код символа нужно использовать функцию char, например:
var i: byte; {число, занимающее 1 байт, значения -- от 0 до 255}
ch: char;
...
readln(i); writeln('символ с кодом ',i,' -- это ',chr(i));
Если в качестве кода используется конкретное число, а не выражение и не переменная, то можно использовать символ «#», скажем так: ch:=#7;. Для того перехода от кода к символу используется функция ord (от слова ordinal - порядковый). Имеющиеся знания позволяют нам написать программу, которая выдаёт на экран таблицу с кодами символов:
program ASCII;
var ch: char;
begin
for ch:=#32 to #255 do write(ord(ch),'-->',ch,' ');
readln;
end.
В этой программе в качестве счётчика цикла была использована символьная переменная, это разрешается, поскольку цикл for может использовать в качестве счётчика переменные любого типа, значения которого хранятся в виде целых чисел.
С использованием кодов работают ещё две функции, значения которых символьные:
1. succ (от succeedent -- последующий), она выдаёт символ со следующим кодом.
2. pred (от predecessor -- предшественник), выдаёт символ с предыдущим кодом.
Если попытаться в программе получить succ(#255) или pred(#0), то возникнет ошибка. Пользуясь этими функциями можно переписать предыдущую программу и по-другому:
...
ch:=#32;
while ch<>#255 do begin
write(ord(ch),'-->',ch,' ');
ch:=succ(ch);
end;
...
Также как и числа, символы можно сравнивать на =, <>, <, >, <=, >=. В этом случае Паскаль сравнивает не сами символы, а их коды. Таблица ASCII составлена таким образом, что коды букв (латинских и большинства русских) возрастают при движении в алфавитном порядке, а коды цифр расположены по порядку: ord(`0')=48, ord(`1')=49, ... ord(`9')=57. Сравнения символов можно использовать везде, где требуются логические выражения: в операторе if, в циклах и т.п.
Строковый тип
Для хранения строк (то есть последовательностей из символов) в Турбо-Паскале имеется тип string. Значениями строковых переменных могут быть последовательности различной длины (от нуля и более, длине 0 соответствует пустая строка). Объявить строковую переменную можно двумя способами: либо var s: string; (максимальная длина строки -- 255 символов), либо var s: string[n]; (максимальная длина -- n символов, n -- константа или конкретное число).
Для того чтобы положить значение в строковую переменную используются те же приёмы, что и при работе с символами. В случае присваивания конкретной строки, это строка должна записываться в апострофах (s:='Hello, world!'). Приведём простейший пример со строками: программа спрашивает имя у пользователя, а затем приветствует его:
program Hello;
var s: string;
begin
write('Как Вас зовут: ');
readln(s);
write('Привет, ',s,'!');
readln;
end.
Строки сравниваются последовательно, по символам. Сравниваются первые символы строк, если они равны - то вторые, и т. д. Если на каком-то этапе появилось различие в символах, то меньшей будет та строка, в которой меньший символ. Если строки не различались, а затем одна из них закончилась, то она и считается меньшей.
Примеры: 'ананас'<'кокос', 'баран'>'баранина', ''<'A', 'hell'<'hello'.
К строкам можно применять операцию «+», при этом результатом будет строка, состоящая из последовательно записанных «слагаемых». Пример: после действия s:= 'abc'+'def'+'ghi'; переменная s будет содержать `abcdefghi'.
Процедуры и функции для работы со строками. Наиболее часто употребляется функция length(s: string): integer (после двоеточия записан тип значения, возвращаемого функцией, в нашем случае - целое число). Эта функция возвращает длину строки s.
Другие процедуры и функции приведены в таблице:
Процедура или функция |
Назначение |
Пример |
|
Copy(s: string; start: integer; |
Возвращает вырезку из строковой переменной s, начиная с символа с номером start, длина которой len |
s:='Бестолковый'; s1:=Copy(s,4,4); {в s1 станет `толк'} |
|
Pos(s1: string; s: string): byte |
Ищет подстроку s1 в строке s. Если находит, то возвращает номер символа, с которого начинается первое вхождение s1 в s; если s1 не входит в s, то функция возвращает 0 |
n:=pos(`министр', `администратор'); {=3} n:=pos(`abc', `stuvwxyz');{=0} |
|
Insert(s1: string; s: string; |
Вставляет строку s1 в строковую переменную s начиная с символа с номером start. |
S:=`кот'; insert(`мпо',s,3); {в s станет `компот'} |
|
Delete(s: string; start: integer; |
Удаляет из строковой переменной s фрагмент, начинающийся с символа с номером start и длиной len |
s:= `треугольник'; delete(s,4,7); {в s останется `трек'} |
1.7 Массивы
Понятие массива. Одномерные массивы.
Массивы являются представителями структурированных типов данных, то есть таких, переменные которых составлены из более простых элементов согласно определённому порядку. Для массивов характерно то, что они являются совокупностью некоторого числа одинаковых элементов. В простейшем случае эти элементы могут быть занумерованы натуральными числами из некоторого диапазона. Рассмотрим пример такой переменной в Турбо Паскале:
var a: array [1..10] of real;
Переменная a состоит из десяти ячеек типа real, можно записывать и извлекать значения из них, пользуясь записью a[<номер ячейки>].
В качестве типа элементов массива можно использовать все типы, известные нам на данный момент (к ним относятся все числовые, символьный, строковый и логический типы).
Нумеровать элементы массивов можно не только от единицы, но и от любого целого числа. Вообще для индексов массивов подходит любой порядковый тип, то есть такой, который в памяти машины представляется целым числом. Единственное ограничение состоит в том, что размер массива не должен превышать 64 Кб. Рассмотрим некоторые примеры объявления массивов.
var Numbers: array [0..1000] of integer;
Names: array [1..10] of string;
Crit: array[shortint] of boolean;
CountAll: array[char] of integer;
Count: array['a'..'z'] of integer;
Многомерные массивы.
Рассмотрим многомерные массивы в Паскале. Например, двухмерный массив можно объявить таким образом:
Var X1: array [1..10] of array [1..5] of integer;
Этот оператор описывает двухмерный массив, который можно представить себе как таблицу, которая состоит из 10 строк и 5 столбцов. Также это можно объявить более компактно:
Var X1:[1..10,1..5] of integer;
Обычно используется именно такая форма объявления многомерных массивов. Как и в одномерных массивах, элементы и индексы могут иметь любой тип. Доступ к значениям элементов многомерного массива осуществляется через индексы, которые перечисляются через запятую. Например, X1[3,4] - значение элемента, лежащего на пересечении третьей строки и четвертого столбца.
Можно определить не непосредственно переменные типа многомерных массивов, а сначала определить соответствующий тип, а потом - переменные или типизированные константы данного типа как у одномерных массивов.
Примеры описаний многомерных массивов:
var Matrix: array[1..4,1..3] of real;
Cube3D: array[1..5,1..5,1..5] of integer;
1.8 Простейшие графические возможности языка Turbo Pascal
Технические особенности воспроизведения графики.
Обычно экран компьютера находится в текстовом режиме. Для переключения экрана в графический режим используется стандартный модуль graph.tpu, который становится доступным только после объявления в программе приложения Uses Graph.
В общей сложности в модуль входят 73 процедуры и функции, представляющие самые разнообразные возможности управления графическим экраном. При этом настройка графических процедур на работу с конкретным адаптером (EGA, VGA, SVGA) осуществляется за счет подключения нужного графического драйвера. Драйвер - это специальная программа, осуществляющая управление теми или иными техническими средствами ПЭВМ. Графические драйверы располагаются на диске в отдельном каталоге bgi в виде файлов с расширением .bgi.
Для инициализации графического режима работы адаптера используется стандартная процедура Initgraph. Формат обращения к процедуре:
Initgraph(< драйвер>, <режим>,< путь>)
Здесь,
<драйвер> - переменная типа integer, определяющая тип графического драйвера;
<режим> - переменная типа integer, определяющая режим работы графического адаптера;
<путь> - выражение типа string, содержащее путь к файлу драйвера.
К моменту обращения к процедуре на одном из дисковых носителей информации должен находиться файл, содержащий нужный графический драйвер.
Чаще всего причиной возникновения ошибки при обращении к процедуре Initgraph является неправильное указание местоположения файла graph.tpu, содержащего библиотеку графических процедур или файла с драйвером графического адаптера. Чтобы компилятор Турбо Паскаля мог отыскать файл graph.tpu необходимо в опции DIREKTORIES указать каталог, в котором размещен этот файл.
Прекращение работы адаптера в графическом режиме и восстановление текстового режима работы экрана осуществляет стандартная процедура CloseGraph.
Точки, линии, многоугольники, окружности.
Процедура putpixel выводит заданным цветом пиксель по указанным координатам (пиксель - это минимальный элемент изображения на экране монитора, создаваемый видеоадаптером, имеющий форму прямоугольника или квадрата).
Формат обращения к процедуре:
putpixel(x, y, <цвет>)
Здесь,
x, y - выражения типа integer, определяющие координаты;
<цвет> - выражение типа word, определяющее цвет.
Процедура line вычерчивает линию с указанными координатами начала и конца.
Обращение к процедуре:
line(x1, y1, x2, y2)
Здесь,
x1, y1 - выражения типа integer, задающие координаты начала линии;
x2, y2 - выражения типа integer, задающие координаты конца линии.
С помощью процедуры line можно вычерчивать различные многоугольники, хотя в принципе можно обращаться и к стандартным процедурам вычерчивания, например, прямоугольников rectangle, параллелепипеда bar3d и др
Процедура circle вычерчивает окружность.
Формат обращения к процедуре:
circle(x, y,< радиус>)
Здесь,
x, y - выражения типа integer, означающие координаты центра;
<радиус> - выражение типа word, указывающее радиус в пикселях.
Помимо рассмотренных процедур существуют еще множество процедур, позволяющих строить различные фигуры в разных масштабах, а также осуществлять раскрашивание фигур, устанавливать фоновый цвет, палитру и др. Кроме того, специально для графического режима разработаны процедуры, обеспечивающие вывод сообщений различными шрифтами, в горизонтальном или вертикальном направлении, с изменением размеров и т.д. Так, процедура outtext выводит текст, начиная с текущего положения, outtextxy - с заданного места и т.д.
Глава II: Программа
В заданной последовательности слов найти все слова, начинающиеся c заданной приставки.
Алгоритм на языке Паскаль:
const
dividers = [' ',',','.',';',':','-','=','+'];{разделители}
var
s,pri,temp:string;
i:integer;
begin
ReadLn(s); {читаем строку}
ReadLn(pri); {читает приставку}
temp:=''; {временная переменная}
for i:=1 to Length(s) do {звпускаем цикл с 1 до последнего символа строки (включительно)}
begin
if not (s[i] in dividers) then
temp:=temp+s[i]; {если данный символ не находится в разделителях то к временной переменой дабавляем данный символ}
if ((s[i] in dividers) or (i=Length(s))) and (temp<>'') then {тут проверяем на вхождение символа в множество разделителей и проверяем не последний ли это символ в строке}
begin
if Pos(pri,temp)=1 then {если приставка в слове есть тогда выводим данной слово}
Write(temp,' ');
temp:=''; {опустошаем временную переменную, т.к. возможно нам еще искать слова}
end;
end;
ReadLn; {Ждем нажатия клавиши для закрытия программы}
end.
Рис. 2.1. Программа
Рис. 2.2. Выполнение программы
Блок-схема
Размещено на http://www.allbest.ru/
Заключение
Я завершил рассмотрение основ программирования на Турбо Паскале. Среди них структура программы на языке программирования Паскаль, пример написания первой программы, типы данных, процедуры ввода-вывода и некоторые встроенные функции Турбо Паскаля, операторы условий выполнения, операторы циклов и массивы. - словом, те задачи, с которыми приходится сталкиваться профессиональному программисту. Турбо Паскаль был выбран как наилучший язык программирования для обучения основам профессионального программирования.
Турбо Паскаль - достаточно "старый" программный продукт. Следует заметить, однако, что Паскаль - это живой язык. Известны, используются или находятся в стадии разработки компиляторы и среды разработки программ на Паскале для различных операционных систем, в том числе и бурно развивающейся операционной системы Linux. Эти системы иногда частично, а иногда и в значительной мере совместимы с Турбо Паскалем, а следовательно, накопленный опыт может быть использован и для серьезной, профессиональной работы по разработке программ.
В практической части была реализована программа, выдающая слова, начинающиеся с заданной приставки. В данной программе в основном была работа со строковыми и символьными данными, а также использованы операторы условия If.
В заключении хотелось бы отметить, что при разработке курсовой работы был приобретен опыт работы с языком программирования, изучен синтаксис данного языка, основные конструкции, его семантика.
Работа с данным языком помогла приобрести навыки программирования.
Список литературы
1. Вирт Никлаус Алгоритмы+структуры данных= программы. -- М.: «Мир», 1985.
2. Грогоно Питер Программирование на языке Паскаль. -- М.: «Мир», 1982.
3. Йенсен К., Вирт Н. Паскаль. Руководство для пользователя и описание языка. -- М.: «Финансы и статистика», 1982.
4. Культин Н.Б. Delphi 6. Программирование на Object Pascal. -- СПб.: «БХВ-Петербург», 2001. -- С. 528. -- ISBN 5-94157-112-7.
5. Моргун Александр Николаевич Программирование на языке Паскаль (Pascal). Основы обработки структур данных. -- М.: «Диалектика», 2005. -- С. 576. -- ISBN 5-8459-0935-X.
6. Перминов Олег Николаевич Язык программирования Паскаль : Справочник. -- М.: «Радио и связь», 1989. -- С. 128. -- ISBN 5-256-00311-9.
Размещено на Allbest.ru
Подобные документы
Основные сведения о системе программирования Турбо Паскаль. Структура программы на Паскале и ее компоненты. Особенности и элементы языка Турбо Паскаль. Порядок выполнения операций в арифметическом выражении, стандартные функции и оператор присваивания.
лекция [55,7 K], добавлен 21.05.2009Особенности программирования на языке Паскаль в среде Турбо Паскаль. Линейные алгоритмы, процедуры и функции. Структура данных: массивы, строки, записи. Модульное программирование, прямая и косвенная рекурсия. Бинарный поиск, организация списков.
отчет по практике [913,8 K], добавлен 21.07.2012Развертывание системы на жестком диске, диалоговая система программирования Турбо Паскаль, запуск программы и выполнение задания. Функциональные клавиши и их назначение. Текстовый редактор, средства создания и редактирования текстов программ, курсор.
реферат [18,6 K], добавлен 01.04.2010Изучение истории создания языка Турбо-Паскаль, важнейшего инструмента для обучения методам структурного программирования. Анализ меню управления всеми ресурсами интегрированной инструментальной оболочки, зарезервированных слов, символьных переменных.
презентация [989,7 K], добавлен 06.12.2011Разновидности и задачи подпрограмм в языке Турбо Паскаль, их локальные и глобальные параметры. Использование процедуры для выполнения законченной последовательности действий. Формат объявления функции, особенности рекурсивного оформления подпрограммы.
реферат [20,0 K], добавлен 08.02.2012Использование графических возможностей Турбо Паскаля, подключение графического модуля Graph. Графические функции и процедуры. Общая структура графической программы. Построение фигур, определение цветов и стилей, работа с текстом, сообщения об ошибках.
реферат [109,3 K], добавлен 28.04.2010Особенности использования графического режима в среде Турбо Паскаль. Типы драйверов. Инициализация графики. Построение изображения на экране. Графические примитивы и работа с текстом. Разработка и реализация программ в среде Турбо Паскаль "Графика".
курсовая работа [1,2 M], добавлен 26.09.2014Общая характеристика языка программирования Турбо Паскаль: операторы, циклы, файлы. Процедуры и функции модуля Crt. Структурная и функциональная схема программы учета учащихся, таблица идентификаторов. Список и описание использованных подпрограмм.
курсовая работа [702,9 K], добавлен 29.01.2011Язык программирования Турбо Паскаль. Запись алгоритма на языке программирования и отладка программы. Правила записи арифметических выражений. Стандартное расширение имени файла, созданного системным редактором. Составной оператор и вложенные условия.
курсовая работа [75,0 K], добавлен 21.03.2013Освоение технологии структурного программирования и применения стандартных методов работы с одномерными массивами при разработке и создании программы на языке Турбо Паскаль. Разработка программы методом пошаговой детализации с помощью псевдокода.
реферат [276,9 K], добавлен 27.02.2008