Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОСНОВЫ АЛГОРИТМИЗАЦИИ.doc
Скачиваний:
188
Добавлен:
16.03.2015
Размер:
1.82 Mб
Скачать

Interface

Const n = 5; m = 5;

Type matr = array [1..n,1..m] of real;

mass1 = array [1..n] of real;

mass2 = array [1..m] of real;

var i1, j1, t, b : integer;

new : real;

Procedure wwod (var d : matr);

Procedure wuwod (var d : matr);

Procedure SortElem (i : integer; var d : matr);

Function Sum (i : integer; d:matr) : real;

Procedure SortRow (var d:matr; q : mass1);

Implementation

Procedure wwod;

begin

randomize;

for i1 := 1 to n do

for j1 := 1 to m do

d[i1,j1] := random;

end;

Procedure wuwod;

begin

for i1 := 1 to n do begin

for j1 := 1 to m do begin

write(d[i1,j1]:6:2); end;

writeln; end;

end;

procedure SortElem;

begin

b := m;

while b <> 0 do

begin

t := 0;

for j1 := 1 to B-1 do

begin

if d[i,j1] > d[i,j1+1] then

begin

new := d[i,j1];

d[i,j1] := d[i,j1+1];

d[i,j1+1] := new;

t := j1;

end;

end;

b := t;

end;

end;

Function Sum;

var s : real;

begin

s := 0;

for j1 := 1 to m do

if d[i,j1] > 0 then s := s + d[i,j1];

Sum := s;

end;

Procedure SortRow;

var new1 : mass2;

begin

b := n;

while b <> 0 do

begin

t := 0;

for i1 := 1 to b-1 do

begin

if q[i1] < q[i1+1] then

begin

for j1 := 1 to m do

begin

new1[j1] := d[i1,j1];

d[i1,j1] := d[i1+1,j1];

d[i1+1,j1] := new1[j1];

end;

new := q[i1];

q[i1] := q[i1+1];

q[i1+1] := new;

t := i1;

end;

end;

b := t;

end;

end;

end.

Листинг основной программы

Program First;

Uses crt, second2;

var i2, j : integer;

a : matr;

s1 : mass1;

begin

clrscr;

wwod(a);

writeln('***********');

for i2 := 1 to n do

begin

SortElem(i2,a);

s1[i2] := Sum(i2,a);

writeln('[',i2,']=',s1[i2]:6:2);

end;

wuwod(a);

writeln('***********');

SortRow(a,s1);

wuwod(a);

readln;

end.

Вопросы для самопроверки

  1. Дайте определение модуля?

  2. Какова структура модуля?

  3. В чём заключается назначение заголовка модуля?

  4. В чём заключается специфика интерфейсной части модуля?

  5. В чём назначение реализационной части модуля?

  6. Каково назначение инициализационной части модуля?

  7. Как осуществляется компиляция, сохранение модуля на диске и подключение модуля во внешних программах?

Лабораторная работа №9

составление программ с использованием модулей

Цель работы. Получение навыков в написании программ с использованием модулей.

Задание. Организация программ с использованием модулей.

Постановка задачи. По своему варианту написать программу, в которой подсоединяется модуль, содержащий подпрограммы - процедуры и - функции. Изучить структуру модуля, его разделы. Определиться с подпрограммами в модуле, которые могут использоваться внешними программами.

Варианты заданий

Оформить в основной программе вызов процедур и функций, содержащихся в модуле, в соответствии с вариантами заданий лабораторной работы №10.

10. Строковые типы данных (String)

Тип данных String (строка) специально предназначен для обработки строк (цепочек символов, то есть элементов типа char). Он не относится к простым типам данных и занимает промежуточное место между простыми и структурированными типами данных.

Тип String во многом похож на одномерный массив:

array[0..n] of char, где n <= 255.

Используя краткий и полный формат, переменную типа String можно описать следующим образом:

Var

S : string;

S1 : string[10];

S2 : string[255];

Если максимальный размер строки не указан, то он автоматически принимается равным 255 (максимально возможная длина строки).

Полный формат описания строк используется, если они используются в качестве параметров подпрограмм.

Строки могут выводиться на экран монитора посредством стандартных процедур Write и Writeln и вводиться с помощью стандартной процедуры Read или Readln.

10.1 Операции со строками

Существует два пути для обработки переменных типа String.

Первый путь предполагает обработку всей строки как единого целого, то есть единого объекта.

Например, присвоение строчной переменной за одну операцию значения целой строки символов:

Character_string1 := ‘Это – строка!’;

К строкам можно применять операцию конкатенации, которая обозначается знаком “+”. Конкатенация – это объединение строк.

Например,

Character_string1 := ‘Это’ + ‘ – ‘ + ‘строка!’;

Операцию слияния строк str1 и str2 выполняет и функция Concat(str1, str2).

Второй путь рассматривает строку как составной объект, состоящий из отдельных символов, то есть элементов типа Char, которые при обработке доступны каждый в отдельности по номеру их позиции. Иными словами, к любому символу в строке можно обратиться так же, как к элементу одномерного массива.

К отдельному символу строки можно применять те же операции, что и к переменной типа Char.

Например, взаимные операции присвоения значений:

Var s : string;

…..

s[1] := ‘A’;