Типы данных.
План:
1.) Понятия типа данных.
2.) Целые типы.
3.) Вещественные типы.
4.) Логические типы.
5.) Символьные типы.
-1-
В любой задаче обрабатываются какие либо данные: const, переменные, значения, функции и процедуры. Все они характеризуются своим типом.
Тип данных определяет:
1.) Формат представления данных в памяти компьютера.
2.) Множество допустимых значений, которые может принимать принадлежащая к выбранному типу переменная.
3.) Множество допустимых операций, применимых к этому типу.
Типы данных делятся:
1.) Простые (целые вещественные, логические)
2.) Составные (массивы, строки, множества, записи и файлы)
-2-
В языке паскаль имеется пять целочисленных типов.
Операции допустимые над целыми значениями:
1.)
2.)
3.)
4.)
5.) Арифметические операции - целочисленное деление, нахождение остатка, проверка на нечётность, увеличение х на у.
-3-
В языке паскаль определено 5 стандартных вещественных типов:
Операции допустимые над вещественными значениями: арифметические операции, отбрасывание дробной части, округление до целого, дробная часть числа.
-4-
Boolean может принимать два значения 1 и 0. Значения этого типа занимают 1 байт памяти.
Операции возможные над логическим типом: операции сравнения и логические операции.
-5-
Переменные символьного типа описываются служебным словом char. Размер памяти 1 байт для 1 символа.
Операция над символьными данными: операция сравнения, логические операции.
04.10.12
Нахождение значения функции:
program Primer;
var x,y:real;
begin
writeln('Vvedite X');
readln(x);
if x>0 then y:=sqr(x)+5*x-6 else y:=exp(2*x+1);
writeln('y = ',y);
readln;
end.
Задача: составить программу нахождения количества положительных чисел среди 4 целы чисел a, b, c, d.
program Primer;
var a,b,c,d,k:integer;
begin
writeln('Vvedite znachenie (A, B, C, D): ');
readln(a,b,c,d);
k:=0;
if a>0 then k:=k+1;
if b>0 then k:=k+1;
if c>0 then k:=k+1;
if d>0 then k:=k+1;
writeln('Polojitelnih chisel ',k);
readln;
end.
goto <метка>
Меткой отмечается оператор, которому нужно передать управление. Под меткой понимается любая последовательность букв и цифр или число от 0 до 9999. Все используемые метки перечисляются в разделе lable.
program Primer;
lable a;
var x,y:real;
begin
writeln('Vvedite X');
readln(x);
if x>0 then begin y:=sqr(x)+5*x-6; goto a; end;
y:=exp(2*x+1);
a:writeln('y = ',y);
readln;
end.
Задача: дано действительное число х. Вычислить ((x-1)*(x-3)*(x-33))/((x-2)*(x-4)*(x-34)).
program Primer;
var x,z:real;
begin
writeln('Vvedite znachenie X: ');
readln(x);
z:=((x-1)*(x-3)*(x-33))/((x-2)*(x-4)*(x-34));
writeln('Otvet: ',x);
readln;
end.
Задача: Вычислить (1+sin(1))*(1+sin(2))*(1+sin(10))
program Primer;
var w:real;
begin
w:=(1+sin(1))*(1+sin(2))*(1+sin(10));
writeln('Otvet: ',w);
readln;
end.
24.10.2012
Оператор цикла с параметром.
1)Описание цикла.
2)Составление программ.
1.В языке паскаль есть три вида операторов цикла: оператор цикла с параметром, оператор цикла с предварительным условием, оператор цикла с последующим условием.
Оператор цикла с параметром имеет вид: for переменная:=выражение 1 to выражение 2 do оператор;
For (для) – заголовок цикла. Переменная – счетчик (параметр) цикла. Выражение 1 – нижняя граница счетчика цикла. Выражение 2 – верхняя граница счетчика цикла. Оператор – тело цикла.
Основные особенности использования цикла с параметром: 1)он используется тогда когда известно количество повторений тела цикла. 2)в качестве счетчика цикла используется переменная целого или символьного типов. 3)шаг изменения счетчика, постоянная величина равная единице.
Порядок выполнения цикла: при первом обращении к заголовку цикла происходит вычисление выражений определяющих нижнюю и верхнюю границу цикла. Проверяется истинность следующего условия: если нижняя граница меньше либо равна значению верхней границы, то выполняется тело цикла, далее счетчик увеличивается на единицу и снова проверяется условие, так до тех пор пока условие в заголовке не будет ложным. Как только условие становится ложным, происходит выход из цикла и выполняется следующий за циклом оператор.
Пример: составить программу нахождения суммы чисел от одного до n.
Начало
N
S=0
I=1 n,1
S=S+I
S
Конец
Var I,N,S:integer;
Begin
Writeln(‘vvedite n’);
Readln(n);
S:=0; 3
For i:=1 to n do
S:=S+i
Writeln(‘summa rawna’,S);
Readln;
End.
N=3
S=0+1=1
0=2 S=1+2=3
I=3 S=3+3=6
Сумма равна 6
Задача:
Найти произведение чисел от А до В.
Начало
А,В
Р=1
I=a b,1
P=P*i
P
Конец
Var A,B,i:integer;
Begin
Writeln(‘vvedite A,B’);
Readln(A,B);
P:=1; 3
For i:=A to B do
P:=P*i
Writeln(‘proizwedenie rawno’,P);
Readln;
End.
25.10.2012
Оператор цикла с предусловием
1)описание оператора цикла
2)составление программ
1.Оператор цикла с предусловием используется в программах тогда, когда не известно количество повторений тела цикла. Общий вид: while условие do оператор. While – пока, условие – логическое выражение, do – выполнить, оператор – тело цикла.
Принцип работы цикла: каждый раз предварительно проверяется условие, если оно истина, то выполняется тело цикла, затем вновь проверяется условие, и так до тех пор пока условие не будет ложным. Если условие ложно, то происходит выход из цикла, и выполняется следующий за циклом оператор. Если условие ложно первоначально, то тело цикла не выполнится ни разу.
Пример: составить программу нахождения произведения от одного до n.
Начало
N
P=1
I=1
I <=0
P=P*I
I=I+1
P
Конец
Var n,P,I:inteher;
Begin
Writeln(‘vvedite n’)
Readln(n)
P:=1; i:=1;
Writeln i<=n do begin
P:=P*I;
I:=I+1;end;
Writeln(P);
Readln;
End.
2. Составить программу нахождения суммы четных чисел в промежутке от А до В.
(рисунок)
Составить программу нахождения количества чисел кратных С, в промежутке от А до В.
(рисунок)
Оператор цикла с пост условием
1)описание оператора цикла
2)составление программ
1.Оператор цикла с пост условием используется тогда, когда заранее неизвестно количество повторений тела цикла. Общий вид: repeat оператор 1 оператор 2 …; оператор N,until… условие.
Repeat – повторять, операторы – тело цикла, Untel - до тех пор, условие – логическое выражение.
Принцип работы цикла: сначала выполняется тело цикла, затем проверяется условие, если условие ложно то снова выполняется тело цикла, и т.д. до тех пор пока условие не будет истинно.
Оператор цикла с пост условием выполняется один раз обязательно.
Пример: вычислить произведение чисел от одного до N.
Начало
N
P=1
I=1
P=P*I
I=I+1
I>N
P
Конец
Program
Var I,n,p:integer;
Begin
Writeln(‘Введите N’);
Readln(n);
P:=1;i:=1;
Repeat
P:=P*I;
I:=i+1;
Until I >n;
Writeln(n,’!=’,P);
End.
31.10.2012
Дана последовательность из N вещественных чисел, найти сумму положительных чисел данной последовательности.
Program Primer;
Var N,i:integer; S,a:real;
Begin
Writeln(‘Vvedite N’);
Readln(N);
S:=0;
I:=1;
While i<=N do
Begin
Readln(a);
If a>0 then S:=S+a; i:=i+1;
End;
Writeln(s);
Readln;
End.
Дана последовательность из N целых чисел. Найти количество чисел, кратных 5 и их сумму.
8.11.2012
Одномерные массивы.
1)Массив представляет собой совокупность однотипных элементов определенной длинны, обращение к элементам массива производится с помощью индекса. Нумерация начинается с единицы: Имя массива[индекс].
Описание одномерных массивов производится в разделе переменных и имеет вид: имя массива: array[1…n] of тип элементов;
A: array [1…10] of integer;
2)Ввод и вывод элементов массива осуществляется с помощью цикла с параметром:
Writeln(‘введите количество элементов’);
Readln(n);
Writeln(‘введите элементы’);
For i=1 to n do
Readln(a[i]);
1сп for i=1 to n do
Writeln(a[i]);
2сп for i=1 to n do
Write(a[i], ‘ ‘);
Пример: составить программу нахождения суммы положительных чисел
3)Задача дан массив целых чисел, найти произведение кратных чисел С.
Program primer;
Var a array [1…100] of real;
I,n,c,P: integer;
Begin
Writeln(‘Введите количетво’);
Readln(n,c);
Writeln(‘введите элементы’);
For i:=1 to n do
Readln(a[i]);
P:=1;
For i:=1 to n do
If (a[i] mod c=0) then P:=P*a[i];
Writeln(‘Произведение=’,P:2.2);
Readln;
End.
Задача: дан наибольший массив, найти наибольший элемент массива
14.11.2012
Двумерные массивы
1)Организация двумерных массивов
2)составление программ
1.Двумерный массив представляет собой матрицу то есть таблицу из элементов а[I,j]. I – номер строки, j – номер столбца.
Описание двумерных массивов осуществляется двумя способами:
1)Var
<имя массива>: array
[n1,n,m1,m2] of
<тип элементов>
2)type
<имя типа>:array
[n1,n2,m1,m2]of
<тип элементов>,
Var…..
<имя массива>; <имя типа>;
Ввод и вывод элементов массива так же осуществляется с помощью цикла.
Дан двумерный массив состоящий из целых чисел, составить программу нахождения суммы четных чисел.
Дан двумерный массив, найти максимальный элемент массива.
15.11.2012
Var I,n,m,j:integer;
Max:real;
A:array [1…5,1…5] of real
Begin
Writeln(‘введите количество строк и столбцов’);
Readln(n,m);
Writeln(‘введите элементы’);
For i:=1 to n do
For j:=1 to m do
Readln (a[I,j]);
Max:=a[1,1];
For i:=1 to n do
For j:=1 to m do
If max < a[I,j] then max:=a[I,j];
Writeln(‘max=’,max:2:2);
Readln;
End.
Дан двумерный массив, найти среднее геометрическое элементов кратных С.
Процедуры и функции
1)Организация процедур и функций
2)Составление программ
1.Подпрограмма – обособленное именованная часть программы оформленная в виде отдельной конструкции.
Использование подпрограмм позволяет: 1)сделать основную программу более наглядной и компактной; 2) уменьшить объем занимаемой памяти ЭВМ; 3)сократить время написания и отладки программы.
В паскале выделяют 2 вида подпрограмм: процедуры и функции.
Описание процедур и функций располагается в декларации.
Описание процедуры состоит из заголовка и блока (тела процедуры). Блок содержит те операторы которые будут выполняться при обращении к процедуре.
Общий вид: procedure имя (список параметров).
Описание функции состоит из заголовка и тела функции. Общий вид: function имя (список параметров): тип возвращаемого значения;
Общий вид: function имя_функции(список параметров): тип возвращаемого значения.
Выделяют 2 способа передачи параметров в процедуру и функцию из основной программы: 1)передача параметров по значению, в этом случае передаются копии значений переменных;
Пример: составить программу вычисления суммы x,y с использованием процедуры.
Program summa
Var: x,y: real;
Procedure sum(a,b:real);
Var: c:real;
Begin
C:=a+b;
Writeln(‘Сумма равна’,c);
End;
Begin
Readln(x,y);
Sum(x,y);
End.
При вызове процедуры значение x и y копируются в переменные а и в. Изменение переменных а и в не влияет на значение переменных х и у. А и в называется формальными параметрами, они показывают как будут преобразовываться в процедурах и функциях процедурах и функциях реальные значения. Х и у называются фактическими переменными.
2)передача параметров по ссылке.
Пример: составить программу обмена значениями а и в, с использованием процедуры.
Program primer;
Var a,b: real;
Procedure obmen(var x,y: real);
Var t: real;
T:=y;
X:=t;
Y:=t;
End;
Begin
Readln(a,v);
Obmen(a,b);
Writeln(a,’ ‘,b);
End.
Если перед формальными переменными в заголовке процедуры или функции расположено служебное слово Var, то значение параметров не копируется, а передаются адреса этих параметров а памяти ЭВМ. И если значение формальных параметров в процедуре или функции изменится, то изменится и значение фактических параметров в основной программе.
2.Переменные представленные в разделе описания основной программы действуют только в основной программе, и не могут действовать в любой ее процедуре или функции, такие переменные называются локальными. Переменные действующие и в основной программе и в любой ее подпрограмме называются глобальными.
Пример: 1!+2!+3!....+n!.
Program primer;
Var n,j,S: integer;
Function fact (m: integer): integer;
Var P,j: integer;
Begin
P:=1;
For j:=1 to m do P:=P*j;
Fact:=P;
End;
Begin
Readln(n);
S:=0;
For i:= to n do S:=S+fact(i);
Writeln(s);
End.
Задача: вычислить площадь четырехугольника заданного длинами сторон и диагональю.
Program primer;
Var a,b,c,d,k,S1,S2: real;
Function pl(
