Автор работы: Пользователь скрыл имя, 13 Ноября 2013 в 12:26, курсовая работа
Данный курсовой проект был разработан в среде Pascal. Среди множества языков Pascal является наиболее универсальным и легко изучаемым языком. При этом его удобно использовать для создания сложных приложений, базами данных, приложения масштаба предприятия. Также средства языка программирования Pascal позволяет использовать все современные возможности объектно-ориентированного программирования. Среди современных языков программирования Паскаль является одним из самых популярных языков. Структура Паскаля делает программы легко читаемыми, позволяя даже людям, не писавшим ту или иную программу, обнаруживать и исправлять имеющиеся в ней ошибки и вносить изменения.
ВВЕДЕНИЕ………………………………………………………………………3
ГЛАВА I. Структурное программирование…………………………………..5
1.1. Понятие структурного программирования………………..5
1.2. Нисходящее и восходящее программирования……………6
1.3. Оператор цикла while………………………………………...9
ГЛАВА II. Типы данных………………………………………………………...16
2.1. Целые типы…………………………………………………....17
2.2. Вещественные типы……………………………………….….21
2.3 Булевский тип…………………………………………….……23
2.4 Символьный тип……………………………………………….24
ЗАКЛЮЧЕНИЕ…………………………………………………………………..25
ЛИТЕРАТУРА…………………………
Program EpsilonDetect ;
var
epsilon : Real;
begin
epsilon : = 1;
while epsilon/2 + 1 > 1 do
epsilon : = epsilon/2
WriteLn ('Машинное эпсилон= ', epsilon)
end.
Пример 2. Вычисление суммы нечётных чисел в интервале 0 - 10
Program DemoWhile ;
var I, sum : integer ;
begin
sum : = 0; I : = 1 ;
while (I<11) do
begin
sum : = sum + I ;
I : = I + 2 ;
end ;
write ('Сумма нечётных чисел равна', sum : 3)
end.
Пример 3. Вычисление числа "Пи"
Program PI ;
var
p : real ; {вычисляемое значение Пи}
t : real ; {точность вычисления}
n : integer ; {номер члена ряда}
elem : real ; {значение члена ряда}
begin
p : = 0 ;
n : = 1 ;
elem : = 1 ; {начальное значение}
write ('Задайте точность вычисления ПИ ->') ;
readln (t) ;
writeln ('Вычисление ПИ с точностью', t : 9 : 6) ;
while elem >= t do
begin
elem : = 1/ (2*n-1) ;
if (n MOD 2) = 0
then p : = p - elem
else p : = p + elem ;
n : = n + 1) ;
end;
p : = p*4 ;
writeln ('Значение Пи с точночтью', t : 9 : 6, 'равно', p : 9 : 6) ;
writeln ('Просуммировано', n , 'членов ряда.') ;
readln ;
end.
Пример 4. Вычисление НОД двух целых чисел
Program NOD;
var
n1, n2 : integer ; {числа, НОД которых надо найти}
nod : integer ; {наибольший общий делитель}
r : integer; {остаток от деления n1 на n2}
begin
writeln ('Вычисление НОД') ;
writeln ('для двух целых чисел.') ;
write ('Введите в одной строке два числа') ;
writeln ('и нажмите <Enter>') ;
write ('->') ;
readln (n1, n2) ;
while (n1 mod n2)do
begin
r : = n1 mod n2 ; {остаток от деления}
n1 : = n2 ;
n2 : = r ;
end ;
nod : = n2 ;
writeln ('НОД чисел', n1, 'и', n2, 'это', nod) ;
readln ;
end.
Пример 5. Вычмсление суммы S=1+1/2+1/3+...+1/50
VAR S: REAL; N:INTEGER;
BEGIN
S:=0; N:=1;
WHILE N<=50 DO
BEGIN
S:=S+1/N;
N:=N+1;
END;
WRITELN(' S=',S);
END.
Пример 6. Даны числа A, B (A > 1). Получить все степени числа A, меньшие числа B.
program STEPENI;
var A, B, C: real;
begin
readln (A, B); C := A;
while C < B do
begin
writeln (C);
C := C*A;
end;
end.
Пример 7. Даны числа a,b (a>1). Получить все члены бесконечной последовательности a,a^2,a^3,…a^n
Program p1;
Var a,b,n:integer;
BEGIN
Write('Введите А и В');
Readln(a,b);
n:=1;
While EXP(n*LN(a))<b do
Begin
Writeln(EXP(n*LN(a)));
n:=n+1;
end;
end;
END.
Пример 8. Дано целое число а и натуральное (целое неотрицательное) число n. Вычислить а в степени n. {Введем целую переменную k, которая меняется от 0 до n, причем поддерживается такое свойство: b = (a в степени k).}
VAR
A, N, B, K : INTEGER;
BEGIN
ClrScr;
Write(‘ Введите два значения ‘); ReadLn(A,N);
K := 0; B := 1;
While K <> N DO Begin
K := K + 1; B := B * A;
End;
Write(‘ A в степени N = ’,B);
END.
Пример 9. Даны натуральные числа а, b. Вычислить произведение а*b, используя в программе лишь операции +, -, =, <>.
USES Crt;
VAR
A, B, C, K : INTEGER;
BEGIN
Write(‘ Введите два значения ‘); ReadLn(A,B);
K := 0; C := 0;
While K <> B DO Begin
K := K + 1; C := C + A;
End;
{C = A * K и K = B, следовательно, C = A * B}
Write(‘ A*B= ‘,C);
END.
Пример 10. Вычислить значение переменной Y=2K+N при всех значениях переменных N=1,2,3 и K=2,4,6,8. обратите внимание на то, что если перебирать N и K получим 12 значений переменной Y.
Var N,K,Y: Integer;
Begin
For N:=1 To 3 Do Begin
K:=2;
While K<=8 Do Begin
Y:=2*K+N;
WriteLn(‘При N= ’,N:4,’ и K= ’,K:4,’ Y= ’Y:4);
K:=K+2;
End;
End;
End.
Глава 2. Типы данных
Любая программа, написанная на любом языке программирования, по большому счету предназначена для обработки данных. В качестве данных могут выступать числа, тексты, графика, звук и др. Одни данные являются исходными, другие – результатом, который получается путем обработки исходных данных программой.
Данные хранятся в памяти компьютера. Программа обращается к ним с помощью имен переменных, связанных с участками памяти, где хранятся данные.
Переменные описываются до основного кода программы. Для них указываются ее имя и тип хранимых данных.
В языке программирования Паскаль достаточно много типов данных. Кроме того, сам пользователь может определять свои типы данных.
Тип переменной определяется тем, с какими данными она связана.
Переменные типа integer могут быть связаны только с целыми значениями обычно в диапазоне от -32768 до 32767. В Pascal есть другие целочисленные типы.
Переменные типа real хранят вещественные (дробные) числа.
Переменная булевского (
Символьный тип (char) может принимать значения из определенной упорядоченной последовательности символов.
Интервальный тип определяется пользователем и формируется только из порядковых типов. Представляет собой подмножество значений в конкретном диапазоне.
Можно создать собственный тип данных простым перечислением значений, которые может принимать переменная данного типа. Это так называемый перечисляемый тип данных.
Все вышеописанное – это простые типы данных. Но бывают и более сложные, структурированные, которые базируются на простых типах.
Массив – это структура, занимающая в памяти единую область и состоящая из фиксированного числа компонентов одного типа.
Строки представляет собой последовательность символов. Причем количество этих символов не может быть больше 255 включительно. Такое ограничение характерная черта Pascal.
Запись – это структура, состоящая из фиксированного числа компонент, называемых полями. В разных полях данные могут иметь разный тип.
Множества представляют собой совокупность любого числа элементов, но одного и того же перечисляемого типа.
Файлы для Pascal представляют собой последовательности однотипных данных, которые хранятся на устройствах внешней памяти (кстати, жесткий диск – это тоже внешняя память).
Понятие такого типа данных как указатель связано с динамическим хранением данных в памяти компьютера. Часто использование динамических типов данных является более эффективным в программирование, чем статических.
Рассмотрим основные из них.
2.1. Целые типы
В языке Паскаль определено пять целых типов.
Таблица. Целые типы Pascal
Тип |
Диапазон допустимых значений |
Отводимая память, в байтах |
shotint |
-128…127 |
1 |
integer |
-32 768…32 767 |
2 |
longint |
-2 147 483 648…2 147 483 647 |
4 |
byte |
0…255 |
1 |
word |
0…65 535 |
2 |
Переменные целого
типа могут принимать только целые значения.
Такие переменные в программе описываются
следующим образом:
a, b, c: integer;
Здесь a, b, c… - имена переменных, integer – тип переменных. Транслятор, встретив такое описание переменных a, b, c, запоминает, что эти переменные могут принимать только целые значения и формирует соответственно этому команды программы.
Таблица. Операции над целыми типами, дающие в результате значение целого типа
Знак операции |
Операция |
+ |
Сложение |
- |
Вычитание |
* |
Умножение |
div |
Целочисленное деление (остаток отбрасывается). Деление без округления (целая часть частного). |
mod |
Деление по модулю (выделение остатка от деления). Остаток от деления: a mod b = a – ((a div b) * b). |
Операции над операндами
целого типа выполняются правильно только
при условии, что результат и каждый операнд
не меньше минимального (крайнего левого)
и не больше максимального (крайнего правого)
значений диапазона. Например, в Паскале
существует константа maxint, в которой
содержится максимально допустимое значение
для типа integer. Тогда при
выполнении операций в программе должны
соблюдаться следующие условия:
(a операция b) <= maxint,
a <= maxint, b <= maxint.
Над целыми типами, как и многими другими, допустимы операции отношения (сравнения). Результат таких операций относится к типу boolean и может принимать одно из двух значений – либо true (истина), либо false (ложь).
Таблица. Операции отношения
Знак операции |
Операция |
= |
Равно |
<> |
Не равно |
>= |
Больше или равно |
> |
Больше |
<= |
Меньше или равно |
< |
Меньше |
Целые типы могут приниматься в качестве фактических параметров рядом стандартных функций языка программирования Pascal.
Таблица. Стандартные функции Pascal, применимые к аргументам целых типов
Функция |
Тип результата |
Результат выполнения |
abs(x) |
Целый |
Модуль x (абсолютная величина x) |
sqr(x) |
Целый |
Квадрат x |
succ(x) |
Целый |
Следующее значение x (x+1) |
pred(x) |
Целый |
Предыдущее значение x (x-1) |
random(x) |
Целый |
Случайное целое число из интервала 0..x-1. |
sin(x) |
Действительный |
Синус x (угол в радианах) |
cos(x) |
Действительный |
Косинус x (угол в радианах) |
arctan(x) |
Действительный |
Арктангенс x (угол в радианах) |
ln(x) |
Действительный |
Натуральный логарифм x |
exp(x) |
Действительный |
Экспонента x |
sqrt(x) |
Действительный |
Квадратный корень из x |
odd(x) |
Логический |
Значение true, если x – нечетное число; false – если четное. |
Функция random возвращает равномерно распределенное случайное целое число, если ей передан целый аргумент. При повторном запуске программы она возвращает те же значения. Во избежание этого следует в начале программы вызвать процедуру без параметров randomize.