Модульное программирование. Стандартные модули. Назначение и использование. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Модульное программирование. Стандартные модули. Назначение и использование.



Модуль – библиотека констант, переменных, процедур, функций, данных. Каждый модуль транслируется отдельно и может быть использован в программах пользователей. Турбо Паскаль имеет 10 предопределений модулей, которые могут быть использованы для программ реального режима ДОС. Модули могут быть в виде PAS файлов с исходными текстами и в виде объектных модулей TPU в файлах. Паскаль содержит следующие стандартные модули: System, Dos, CRT,Printer,GRAPH,Overlay. В библиотеке модулей, которые называются turbo.tpl содержатся модули System,Dos,CRT,Printer,Overlay. Остальные Graph,String,Windos,Turbo3,GraphS находятся в отдельных файлах библиотеки Turbo Vision. Максимальная длина сегмента модуля может быть не более 64к.байт. Количество используемых модулей ограничиваются только внешней памятью. Структура модуля. Он состоит из заголовка ((1)интерфейсная оболочка; 2)исполняемая часть или часть реализации; 3) инициализирующая часть); 1) interface (а)uses – глобальные объекты модуля; б)заголовки процедур и функций с параметрами); 2)implementation (а) локальные процедуры и функции; б)тексты процедур и функций); 3) может начинаться служебным словом begin, а может на начинаться этим словом. Важно, чтобы она заканчивалась служебным словом end. В этой части, если это требуется, могут открываться нужные файлы и инициализироваться переменные. Использование модулей. Для использования модулей надо: после оператора programставим служебное слово USES Printer,Crt,Graph; Модуль System подключается автоматически без указания его в uses. Краткое описание модулей. Модуль System – это библиотеку поддержки Турбо Паскаль. Он обеспечивает выполнение низкоуровневых программ, таких как файловый ввод, вывод, обработка строк, операции с плавающей запятой и управление динамической памятью. Все модули и программы Паскаля автоматически используют модуль System. Модуль DOS и WinDOS – эти модули поддерживают большинство наиболее часто используемых функций операционной системы и обработки файлов. Модуль WinDos в отличии от модуля Dos используют специальный тип строки завершающейся нулем и предназначенный для взаимодействия с операционной системой Windows. Модуль CRT дает возможность управлять чтением расширенных кодов клавиатуры, экранным режимом, использовать звук, цвет и окна. Модуль Printer позволяет перенаправлять стандартный вывод Турбо Паскаля на принтер, используя процедуры writeln,write.

ОБРАЗЦЫ РЕШЕНИЙ ЗАДАЧ

1. Написать программу для вычисления функции:

на промежутке [-20,20] с шагом 0,5

Ответ

Program prim1;

var x,y:real;

begin x:=-20;

while x<=20 do {цикл смены X из интервала [-20,20] }

begin

if x<-10 then y:=2-x else {проверка условия}

if x<-5 then y:=x-x*x else

if x<2 then y:=x*x*x else

y:=sqrt (x);

writeln ('y=',y:6:2,'при x=',x:6:2);

x:=x+0.5;

end;

end.

 

Сформировать двухмерный массив, состоящий из N x N элементов.

После чего: найти сумму элементов столбца, в котором расположен минимальный элемент матрицы.

Ответ

program prim2;

uses crt;

const n=13;

var a:array[1..n,1..n] of integer; {объявляем двухмерный массив}

s,min:integer;

i,k,j:byte;

begin

clrscr;

writeln ('Элементы матрицы ->');

randomize; {инициализация процедуры генерации случайных чисел}

for i:=1 to n do

begin

for j:=1 to n do

begin

a[i,j]:=random (100) {заполняем массив случайными числами в диапазоне от 0 до 100};

write (a[i,j],'':5);

end;

writeln;

end;

min:=a[1,1];

for i:=1 to n do

for j:=1 to n do

if min>a[i,j] then

begin

min:=a[i,j];

k:=j;

end;

for i:=1 to n do

s:=s+a[i,k];

writeln ('Сумма элементов столбца ',k,' в котором расположен Min=',min,' равна->',s);

readkey

end.

3. Задан двумерный массив A (NxN). Найти, сколько отрицательных эллементов массива А=a[i,j] удовлетворяют условию: -110<=a[i,j]<=-1. Из этих элементов сформировать новый массив В.

Ответ

program prim3;

uses crt;

const n=5;m=10;

var a:array[1..n,1..n] of integer; {объявляем двухмерный массив}

b:array[1..m] of integer; {объявляем одномерный массив} r,i,j:integer;

begin

clrscr;

writeln ('Элементы матрицы ->');

randomize; {инициализация процедуры генерации случайных чисел}

for i:=1 to n do

begin

for j:=1 to n do

begin

a[i,j]:=random (200+200)-200; {заполняем массив случайными

числами в диапазоне от -200 до 200}

write (a[i,j]:5,' ');

end;

writeln;

end;

r:=0;

for i:=1 to n do

begin

for j:=1 to n do

begin

if a[I,j]<0 then

if (a[I,j]>=-110)and (a[I,j]<=-1)then {проверяем условие}

begin

r:=r+1; b[i]:=a[i,j]; write (b[i]:3,',');

end;

end;

end;

writeln;

writeln ('условию удовлетворяют ',r,' элемента массива');

readln

end.

 

4. Известно, что в текст Т входит восклицательный знак. Подсчитать в последовательности символов, предшествующих восклицательному знаку количество пробелов.

Ответ

Program prim4;

var t: string;

I: byte; {счетчик цикла}

c: byte; {количество пробелов}

Begin

write ('введите текст:');

readln (t);

I:=1; c:=0;

while t[i]<>'!' do

Begin

if t[i]=' ' then

inc (c); inc (i); {увеличение на 1}

end;

writeln ('количество пробелов равно',с)

end.

 

Задан текст S. Сколько раз в тексте встречается заданное слово (слова разделены пробелами)

Ответ

Program prim5;

var

t: string; {текст}

s: string; {слово}

c: string; {вспомогательный текст}

I: byte;

d: byte; {число раз слово в тексте}

Begin

d:=0;

write ('введите текст:');

readln (t);

t:=' '+t+' ';

write ('введите заданное слово');

readln (s);

s:=' '+s+' ';

for I:=1 to length (t)-length (s)+1 do

begin

c:=copy (t,I,length (s));

if c=s then inc (d);

end;

writeln (d)

end.

6.Сколько раз в тексте встречается заданное слово. Слова разделены пробелами или знаками препинания и т.п.

Ответ

Program prim6;

var t: string; {текст}

s: string; {слово}

c: string; {вспомогательный текст}

I: byte; {для цикла}

d: byte; {число раз}

Begin

d:=0; write ('введите текст:');

readln (t);

t:=' '+t+' ';

write ('введите слово');

readln (s);

for i:=1 to length (t)-length (s)+1 do

begin

c:=copy (t,I,length (s));

if c=s then

if t[I-1]<chr (65) then {проверка, знаки препинания, пробел или другой символ}

if t[I+ length (s)]<chr (65) then inc (d);

end;

writeln (d)

end.

 

Дисциплина «Основы баз данных и знаний»

 



Поделиться:


Последнее изменение этой страницы: 2016-08-14; просмотров: 295; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.147.103.8 (0.023 с.)