Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Информатика. Программирование для библиотечных специалистов. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
12.08.2026
Размер:
1 Мб
Скачать

i — параметр цикла. Результат:

f1 — конечное состояние фонда.

Задания для самостоятельной работы 1

По аналогии с задачей 1 для задачи 2 определите тело цикла, постройте блок-схему и составьте программу. Обоснуйте данные для тестирования. Составьте второй вариант программы с выводом таблицы изменения состояния фонда за каждый год.

Творческий блок 1

Индивидуальные задания (групповая работа). После тестирования и отладки программы добавьте диалоговый интерфейс.

1. Количество копировально-множительной техники в библиотеке в 2012 г. составило 15 единиц. Ежегодно библиотека пополняется на 15%. Определите количество копироваль- но-множительной техники через 5 лет.

2. Количество пользователей библиотеки в 2010 г. составило 15 000 человек. Ежегодно наблюдается увеличение количества пользователей на 2%. Составьте программу, которая выведет на экран изменения количества пользователей библиотеки за 7 лет.

Практический блок 2

Изучите презентацию «Циклические алгоритмы», используя «Курс по программированию», разберите все примеры и действия циклических операторов для цикла с предусловием.

Задача 1. Банк начисляет 3% годовых. Определите, через сколько лет вы сможете накопить необходимую сумму.

61

Тело цикла — сумма накоплений, которая ежегодно пополняется. Количество повторений неизвестно, выход из цикла осуществляется по условию.

Исходные данные: s (real) — сумма первоначального взноса. s1(real) — необходимая сумма.

Результат: n (byte) — количество лет. Блок-схема:

62

Программный код.

program bank; var n,p:byte; s,s1,s2:real;

begin

writeln('vedite % stavky'); readln(p);

writeln('vvedite pervonachalnii vklad'); readln(s);

writeln('vedite neobhodimyu symmy'); readln(s1);

S2:=S;

while S2<S1 do

begin S2:=s2+s2*p/100; n:=n+1;

end;

writeln('vi vnesli ',s:5:2, ' rub'); writeln('vi hoteli ',s1:5:2,' rub'); writeln('vam potrebyetsya ',n,' let'); readln;

end.

Тестирование.

Задания для самостоятельной работы 2

 

Задача 2. Библиотечный

фонд

в 1985 г.

составил

25 000 экземпляров. Ежегодно

фонд

пополняется

на 7%.

Составьте программу, которая определит: через сколько лет фонд превысит 30 000 книг.

63

По аналогии с задачей 1 для задачи 2 определите тело цикла, постройте блок-схему и составьте программу. Обоснуйте данные для тестирования.

Творческий блок 2

Индивидуальные задания (групповая работа). После тестирования и отладки программы добавьте диалоговый интерфейс.

1. Количество копировально-множительной техники в библиотеке в 2012 г. составило 12 единиц. Ежегодно библиотека пополняется на 3%. Определите: через сколько лет количество техники превысит 20 единиц.

2. Количество пользователей библиотеки в 2010 г. составило 15 000 человек. Ежегодно наблюдается увеличение количества пользователей на 2%. Определите: через сколько лет количество пользователей превысит 20 000.

64

ТЕМА 9. СТРУКТУРНОЕ ПРОГРАММИРОВАНИЕ. ТЕХНОЛОГИЯ НИСХОДЯЩЕГО ПРОГРАММИРОВАНИЯ. ПОДПРОГРАММЫ. ПРОЦЕДУРЫ И ФУНКЦИИ

Теоретический блок

Существенное усложнение задач, решаемых при помощи компьютеров, приводит к увеличению размеров и сложности программ, что порождает дополнительные трудности при их разработке и отладке. Рост продолжительности жизненного цикла программ приводит к тому, что с течением времени из-за изменения условий использования программ возникает необходимость их модификации, повышения их эффективности, уровня удобства их использования. Для разрешения возникших проблем используется структурное программирование.

Структурное программирование — это максимально ориентированные на пользователя способы разработки и записи программ. В таких программах четко видна структура ее работы

— это «программирование без go to». В связи с этим отдельные фрагменты программы представляют собой некоторые логические структуры, которые определяют порядок выполнения содержащихся в них правил обработки данных. Любая программа получается построенной из стандартных логических структур (следование, ветвление, повторение). Существенная особенность всех этих структур — каждая из них имеет только один вход и только один выход, что обеспечивает логически последовательную структуру программы.

С массовым внедрением вычислительной техники процесс программирования постепенно превращается в промышленное изготовление программ. Для этой цели используются разнообразные технологии программирования. Технология нисходящего программирования базируется на методе программирования «сверху — вниз». Часто этот метод называют методом пошаговой детализации. Именно этот метод создает предпосылки к решению сложных проблем. Основой этого метода является

65

идея постепенной декомпозиции исходной задачи на ряд подзадач. Сначала формулируется самая грубая модель решения, отдельные детали которой на первом этапе могут быть довольно расплывчатыми. По мере разработки программы, разбивая наиболее неясные части алгоритма и добиваясь более точных и детализированных формулировок, мы получаем подробное решение, как бы спускаемся с большой высоты ниже и начинаем при этом различать все более мелкие детали. Решение отдельного фрагмента сложной задачи может представлять собой самостоятельный программный блок, называемый подпрограммой. Таким образом, программу решения сложной задачи можно представить как иерархическую совокупность относительно самостоятельных фрагментов — подпрограмм.

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

За наличие подпрограмм как средства структурирования программ язык Turbo Pascal называется процедурноориентированным. Подпрограммы реализованы посредством

процедур и функций, которые,

имея один и тот же смысл

и аналогичную структуру,

различаются назначением

и способом использования.

 

Процедура — это автономная часть программы, которая имеет свое имя, посредством которого можно обращаться к ней и выполнить определенные действия. Структура процедуры совпадает со структурой программы. Особенностью процедуры является то, что она не может быть операндом в выражении.

Отличительных особенности функции две: имя функции может входить в выражение как операнд, в месте вызова функции передается скалярное выражение.

Отличия: процедуры служат для задания совокупности действий, направленных на изменение внешней по отношению к ним программной обстановки, а функции, являясь частным

66

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

Все процедуры и функции языка Turbo Pascal делятся на две группы: встроенные и определенные пользователем (Примеры встроенных процедур).

Подпрограммы пользователя — разработанные про-

граммистом самостоятельные программные блоки, которые лежат в основе модульного программирования.

Описание процедуры начинается с заголовка, который является обязательным (в отличие от заголовка программы). Заголовок состоит из служебного слова Procedure, за которым следуют имя процедуры и, в круглых скобках, список формальных параметров. В конце заголовка ставится точка с запятой. После заголовка могут идти те же разделы, что и в программе. Общий вид описания процедуры (в квадратные скобки заключена часть, которая может отсутствовать):

Procedure Имя [(Список формальных параметров)]; Описательная часть

Begin

Тело процедуры

End;

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

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

Количество и типы формальных и фактических параметров должны в точности совпадать.

Формальные параметры описываются в заголовке процедуры и определяют тип и место подс тановки фактических параметров, формальные параметры делятся на два вида: парамет- ры-переменные и параметры-значения.

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

67

ров в теле процедуры приводили к изменению соответствующих фактических параметров.

Параметры-значения отличаются тем, что перед ними слово Var не ставится. Внутри процедуры можно производить любые действия с параметрами-значениями, но все изменения никак не отражаются на значениях соответствующих фактических параметров, то есть какими они были до вызова процедуры, такими же и останутся после завершения ее работы.

Фактические параметры — это параметры, которые передаются процедуре при ее вызове.

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

PROZ3

program Par_Znach; var a,b:real;

{Процедура вычисления квадратов двух чисел и вывод на экран их суммы}

procedure Summa(x,y:real); begin

x:=x*x;

y:=y*y;

{writeln('сумма квадратов=',x+y:2:2);} end;

begin a:=1; b:=3;

Summa(a,b);

end.

Параметры-переменные используются для определения результатов выполнения процедуры. Программа PROZ4.

PROZ4

program Par_perem; var a,b:real;

SumAB,SubAB:real;

{Процедура вычисления суммы и разности квадратов с параметрами-

переменными Sum,Sub}

procedure Summa_Sub(x,y:real; var Sum,Sub:real);

68

begin Sum:=x*x+y*y; Sub:=x*x-y*y;

end; begin a:=1; b:=3;

Summa_Sub(a,b,SumAB,SubAB);

writeln('Сумма квадратов чисел'

,a:2:2,'и',b:2:2,'=',SumAB:2:2);

writeln('Разность квадратов чисел'

,a:2:2,'и',b:2:2,'=',SubAB:2:2); end.

Исходные данные в процедуру из программы могут передаваться как через параметры-значения, так и через параметрыпеременные, а результаты работы процедуры возвращаются в управляющую программу только через параметрыпеременные.

Program primer; var k:integer;

procedure plus1 (n:integer); begin

n:=n+10

end;

procedure plus2 (var n:integer); begin

n:=n+10

end; begin k:=10;

plus1(k);writeln('k=',k);

plus2(k);writeln('k=',k);

end.

Все переменные программы делятся на глобальные и локальные. Глобальные переменные объявляются в разделе описаний основной программы. Локальные переменные объявляются в процедурах и функциях. Таким образом, локальные переменные «живут» только во время работы подпрограммы.

69

При использовании процедур применяются следующие правила:

параметры, через которые в процедуру передаются исходные данные, должны быть описаны как параметры-значения;

параметры, в которые записываются результаты работы процедуры, описываются как параметры-переменные;

если формальный параметр — это параметрпеременная, соответствующий фактический параметр должен быть переменной. Для параметра-значения фактическим параметром может быть выражение, в том числе и константа;

количество фактических и формальных параметров должно совпадать. Соответствие между ними устанавливается просто — первый связывается с первым, второй со вторым

ит.д.;

соответствующие формальные и фактические параметры должны иметь один тип.

Рассмотрим алгоритм решения задачи. Составить программу для вычисления а": целые числа а и n (n > 0)

вводятся с клавиатуры.

Исходные данные: а и n (n > 0) — основание и показатель степени (целый тип).

Результат: s Блок-схема:

70

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]