RSS    

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

·    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.   Константное выражение такого же типа, как и выражение после case. Константное выражение отличается от обычного тем, что не содержит переменных и вызовов функций, тем самым оно может быть вычислено на этапе компиляции программы, а не во время выполнения.

2.   Интервал, например: 1..5, 'a'..'z'.

3.   Список значений или интервалов, например: 1,3,5..8,10,12.

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

Рассмотрим пример. Пусть пользователь вводит целое число от 1 до 10, программа должна приписать к нему слово «ученик» с необходимым окончанием (нулевое, «а» или «ов»).

program SchoolChildren;

var n: integer;

begin

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

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

  case n of

    2..4:  write('а');

    5..10: write('ов');

  end;

  readln;

end.

Можно также усовершенствовать программу для произвольного натурального n:

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

  case n mod 100 of

    11..19: write('ов');

    else case n mod 10 of

      2..4:   write('а');

      0,5..9: write('ов');

    end;

  end;

Лекция 4. Операторы циклов в Паскале

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

1. Цикл с постусловием (Repeat)

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

Пример (подсчет суммы натуральных чисел от 1 до 100):

var i,sum: integer;

begin

  sum:=0; i:=0;

  repeat

    i:=i+1;

    sum:=sum+i;

  until i=100;

  writeln('Сумма равна: ',sum);

  readln;

end.

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

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12


Новости


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

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

Пока нет

Новости в Twitter и Facebook

                   

Новости

© 2010.