скачать рефераты
  RSS    

Меню

Быстрый поиск

скачать рефераты

скачать рефератыРеферат: Программирование на языке Турбо Паскаль

Реферат: Программирование на языке Турбо Паскаль

Лекция 1. Структура программы на языке Turbo Pascal

Приведём простейший пример программы, единственная цель которой – вывести на экран какое-нибудь приветствие:

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 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», а затем переводит курсор на следующую строку (ln ó Line – строка). В третьей строке вычисляется значение трехчлена и записывается в переменную f; этот оператор называется оператором присваивания, и обозначается символом ":=". В последней строке на экран выводится строка «Значение квадратного трехчлена: » и значение переменной f. Несложно заметить, что здесь процедуре writeln передается уже не один, а два параметра, причем они могут иметь разные типы. Вообще, процедуры ввода и вывода (т.е. write, writeln, read, readln) могут иметь любое число параметров различных типов, параметрами могут являться переменные, литералы (т.е. непосредственно записанные числа, строки; в нашем примере дважды были использованы строковые литералы), а также выражения. Используя выражение при выводе, можно заменить две последние строчки нашей программы одной:

writeln('Значение квадратного трехчлена: ', a2*x*x+a1*x+a0);

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

Замечание об именах. Для обозначения переменных запрещается использование ряда слов, называемых зарезервированными, они играют в языке особую роль. Нам уже встречался ряд зарезервированных слов: program, begin, end, string, const, var, и т.п.

Лекция 2. Процедуры ввода-вывода. Некоторые встроенные функции Турбо-Паскаля.

1. Процедуры ввода-вывода. Почти каждая программа должна общаться с пользователем, то есть выводить результаты своей работы на экран и запрашивать у пользователя информацию с клавиатуры. Для того чтобы это стало возможным, в Турбо-Паскале имеются специальные процедуры (то есть небольшие вспомогательные программы), называются он процедурами ввода-вывода. Для того чтобы заставить процедуру  работать в нашей программе, нужно написать её имя, за которым в скобках, через запятую перечислить параметры, которые мы хотим ей передать. Для процедуры вывода информации на экран параметрами могут служить числа или текстовые сообщения, которые должна печатать наша программа на экран. Опишем назначение этих процедур.

·    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.

2.   Функции числовых параметров.

Название

Значение

abs(x) модуль x
cos(x) косинус x
frac(x) дробная часть x
int(x) целая часть x (т.е. ближайшее целое, не превосходящее x)
pi число p
round(x) x, округлённое до целого
sin(x) синус x
sqr(x) квадрат x
sqrt(x) квадратный корень из x
trunc(x) число, полученное из x отбрасыванием дробной части

Лекция 3. Операторы условного выполнения.

1. Оператор 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.

Пример 3: (с использованием составного оператора). Пусть даны две переменные типа real. Требуется поменять местами  значения этих переменных, если a1>a2.

var a1,a2,buf :real;

.........

if a1>a2 then begin

  buf:=a1;

  a1:=a2;

  a2:=buf;             

end;

Следующий пример использует вложенные операторы if.

Пример 4: Поиск корней квадратного уравнения.

program SqEquation;

var a,b,c,d: real;

begin

  writeln;

  write('Введите коэффициенты a,b,c квадратного уравнения : ');

  readln(a,b,c);

  d:=sqr(b)-4*a*c;

  if d>=0 then

      if d=0 then writeln('Единственный корень: x=',-b/(2*a):8:3)

        else writeln('Два корня : x1=',(-b+sqrt(d))/(2*a):8:3,

                               ', x2=',(-b-sqrt(d))/(2*a):8:3)

    else {d<0} writeln('Корней нет');

  readln;

end.

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

Пример 5: пользователь вводит натуральное число, задача программы — поставить слово «ученик» в нужную форму в сочетании с числительным (например: 1 ученик, 3 ученика, 9 учеников и т.п.)

begin

  write('Число учеников (1..20) --> '); readln(n);

  write(n,' ученик');

  if n<5 then begin

    if n>1 then writeln('а');

  end

  else

    writeln('ов');

    readln;

end.

В этом примере пришлось использовать составной оператор (begin ... end;) для того чтобы часть else относилась не к оператору if n>1, а к if n<5.

2. Оператор выбора (case)

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

case Выражение of

  Вариант1: Оператор1;

  Вариант2: Оператор2;

  ...

  ВариантN: ОператорN;

  [else ОператорN1;]

end;

(Пояснение: квадратные скобки означают то, что часть else может отсутствовать).

Выражение в простейших случаях может быть целочисленным или символьным. В качестве вариантов можно применять:

Страницы: 1, 2, 3, 4, 5, 6, 7


Новости

Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

  скачать рефераты              скачать рефераты

Новости

скачать рефераты

© 2010.