на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Приложения технологии языка программирования Паскаль в прикладной механике
p align="left">В рассмотренных до сих пор алгоритмах и программах все команды выполнялись последовательно одна за другой в том порядке, в каком они были записаны. Однако таким образом может быть построен алгоритм для решения далеко не всякой задачи. В практике известны задачи, дальнейший ход решения которых зависит от выполнения каких либо условий.

Ветвление - это такая форма организаций действий, при которой в зависимости от выполнения или невыполнения некоторого условия совершатся либо одна, либо другая последовательность действий.

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.

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

Название

Значение

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

1. Оператор if.

Иногда требуется, чтобы часть программы выполнялась не всегда, а лишь при выполнении некоторого условия (а при невыполнении этого условия выполнялась другая часть программы). В этом случае пользуются оператором условного выполнения, который записывается в следующем виде:

if then else;

Под оператором понимается либо одиночный оператор (например, присваивания, вызова процедуры), либо такой составной оператор, состоящий из нескольких простых операторов, помещённых между словами 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 - ничего не делать}

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

var a1,a2,buf :real;

if a1>a2 then begin

buf:=a1;

a1:=a2;

a2:=buf;

end;

Пример при подсчете суммы натуральных чисел от 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 (иначе в теле цикла) выполняются хотя бы один раз (только после этого проверяется условие выхода).

Этот цикл записывается так: while do . (Пока условие истинно, выполнять оператор). Суть в следующем: пока условие истинно, выполняется оператор (в этом случае оператор может не выполниться ни разу, т.к. условие проверяется до выполнения).

1. Символьный тип

Тип данных, переменные которого хранят ровно один символ (букву, цифру, знак препинания и т.п.) называется символьным, а в Паскале -- 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 байт (байт состоит из 8 бит, а бит может принимать значения 0 или 1), поэтому всего можно закодировать 28 = 256 различных символов. Кодировка символов, которая используется Турбо-Паскале, называется ASCII (American Standard Code for Information Interchange -- американский стандартный код для обмена информацией).

Для того чтобы получить в программе код символа нужно использовать функцию chr, например:

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, в циклах и т.п.

2. Строковый тип

Для хранения строк (то есть последовательностей из символов) в Турбо Паскале имеется тип string. Значениями строковых переменных могут быть последовательности различной длины (от нуля и более, длине 0 соответствует пустая строка). Объявить строковую переменную можно двумя способами: либо var s: string; (максимальная длина строки -- 255 символов), либо var s: string[n]; (максимальная длина -- n символов, n -- константа или конкретное число).

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



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.