Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Алгоритмизация.rtf
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
6.35 Mб
Скачать

Типы данных.

План:

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(