Реализация алгоритмов в среде программирования

Разделы: Информатика, Конкурс «Презентация к уроку»


Презентация к уроку

Загрузить презентацию (253 кБ)


Разработанный, протестированный и представленный в некотором виде алгоритм можно реализовать в электронных таблицах [1], но можно и в среде программирования. В данной работе используем операторный язык программирования Турбо - Паскаль [2].

Реализацию алгоритма в среде программирования Турбо – Паскаль можно провести по алгоритму:
НАЧАЛО АЛГОРИТМА

  1. представить алгоритм в виде блока операторов,
  2. составить спецификацию используемых переменных,
  3. по полученной спецификации составить блок описания используемых переменных,
  4. собрать программу,
  5. ввести программу в редакторе среды программирования, провести ее тестирование.

КОНЕЦ АЛГОРИТМА.

Представление алгоритма в виде блока операторов – это задача алгоритмики. Обсудить ее можно, например, в теме: «Кодирование текстовой информации». Действительно, алгоритм нам дан в некотором виде, но представить его необходимо в виде текста листинга блока операторов (тела программы), а это есть ни что иное, как перекодировка. Следует подчеркнуть, что алгоритм позволяет дать ответы на вопросы «ЧТО?» и «В КАКОЙ ПОСЛЕДОВАТЕЛЬНОСТИ?» надо делать, чтобы решить исходную задачу.
Для представления алгоритма в виде блока операторов необходимо знание операторов, используемого языка программирования:

  • ввода/вывода информации,
  • реализации базовых структур алгоритмов (линейные, ветвления, циклов);
  • вызова процедур и/или функций (вспомогательные алгоритмы).

Отметим, что в Турбо – Паскале имеются операторные скобки  BEGIN…END, позволяющие рассматривать заключенный в них алгоритм как (пусть сложный, но) один оператор.
Ниже приводится таблица соответствия действий, их графического представления и операторов языка программирования Турбо - Паскаль:

ЛИНЕЙНЫЕ АЛГОРИТМЫ.

действие

Геометрическое представление

Соответствующий оператор Турбо-Паскаля

Ввод информации

Read(<СписокВвода>);
ReadLn(<СписокВвода>);

Вывод информации

Write(<СписокВывода>);
WriteLn(<СписокВывода>);

Линейный блок


S := <Арифметическое выражение или значение>;
{оператор присвоения}

Вспомогательный алгоритм

Вызов процедуры=>
<имя>(<параметры>)

 

Алгоритмы ветвления

действие

Геометрическое представление

Соответствующий оператор Турбо-Паскаля

Ветвление (обход)


If <условие> then S;

Ветвление
(выбор действия)


If <условие> then S1 else S2;

 

ЦИКЛИЧЕСКИЕ АЛГОРИТМЫ.

действие

Геометрическое представление

Соответствующий оператор Турбо-Паскаля

Цикл с параметром (явно заданный цикл)

For i:= <iнач> to(downto) <iкон> do S;

Цикл с предусловием

WHILE < условие входа в
цикл>
do S;

Цикл с постусловием


Repeat
S
UNTIL < условие выхода из цикла>

        
Рассмотрим задачу.

ЗАДАЧА. Задан алгоритм в виде:

Реализовать его в среде программирования .языка Турбо-Паскаль.
1.
Согласно таблицы соответствия и, используя наработки, представленные в [1], получаем блок операторов в виде:

BEGIN
	BEGIN    {ВводИнформации(X, Y, N)            X,Y - №2, N - №3}
		WriteLn(‘ВВЕСТИ X, Y);
		ReadLn(X, Y);
		REPEAT
			WriteLn(‘ВВЕСТИ N[целое] > 0’);
			ReadLn(N);
		UNTIL N>0;
	END;
	BEGIN      {ОбработкаИнформации (X, Y, N; S,F)}
		If X > 0 Then P := Y + X Else P := Y – X;
		S:=0; I:=0; F:=1;
		WHILE I < N do begin
			I:=I+1;
			S:=S+I;
			F:=F*P;
		End; {WHILE}
	END;
	BEGIN     {ВыводРезультатов(S, F)       S,F – С.В.П.}
		WriteLn(S:10, F:20:2);
	END;
END.

Это и есть блок операторов. После END ставится «.», так как мы имеем полный алгоритм, а не его фрагмент, где после END ставится межоператорный разделитель «;».
По сути дела мы получили примерно 80% программы.
Следующим шагом в алгоритме разработки программы – составление спецификации. Спецификация представляется в виде таблицы, в которой указываются имя переменной, ее тип, диапазон допустимых значений. Для нашей задачи получаем таблицу:


Идентификатор (имя)

Тип

диапазон

1

X

Вещ.

±∞

2

Y

Вещ.

±∞

3

N

Целое

[1, +)

4

P

Вещ.

±∞

5

I

Целое

[0, +)

6

S

Целое

[0, +)

7

F

Вещ.

±∞

Представленная спецификация позволяет расписать блок описания переменных в виде:

VAR
X, Y, P, F : Real;
I, S, N : LongInt;

 При составлении данного блока необходимо помнить, что описание переменных в данном языке программирования определяет конечную точность вычислений и время работы программы. Обе эти задачи достаточно сложные.
Следует отметить, что для школьных задач время счета не критично, так как задачи довольно простые, то есть школьные задачи считаются практически мгновенно – это учебные задачи. Школьная программа не предусматривает анализ точности вычислений по полученной программе. Именно поэтому наша задача на этом шаге алгоритма без ошибок составить блок описания переменных.

Перед сборкой программы следуем вспомнить ее структуру программы на Паскале (смотри Приложение № 2). На первых порах необходимо сказать, что любая паскаль - программа должна иметь заголовок, где задается имя программы, которое должно быть уникальным. Можно также подключить стандартный модуль CRT.

Таким образом, получаем текст программы в виде:

PROGRAM  L;
Uses CRT;
VAR
	X, Y, P, F : Real;
	I, S, N : LongInt;
BEGIN
	ClrScr;     {процедура модуля CRT – очистка экрана}
	BEGIN    {ВводИнформации(X, Y, N)            X,Y - №2, N - №3}
		WriteLn(‘ВВЕСТИ X, Y);
		ReadLn(X, Y);
		REPEAT
			WriteLn(‘ВВЕСТИ N[целое]>0’);
			ReadLn(N);
		UNTIL N>0;
	END;
BEGIN      {ОбработкаИнформации (X, Y, N; S,F)}
		If X>0 Then P := Y + X Else P := Y – X;
		S:=0; I:=0; F:=1;
		WHILE I < N do begin
			I:=I+1;
			S:=S+I;
			F:=F*P;
		End; {WHILE}
	END;
	BEGIN     {ВыводРезультатов(S, F)       S,F – С.В.П.}
		WriteLn(S:10, F:20:2);
	END;
END.

Для тестирования данной программы воспользуемся таблицей:

Входные данные

Выходные данные

X

Y

N

S

F

1

1

2

3

6

27

2

-1

2

3

6

27

ЗАДАЧА РЕШНА.

Для самостоятельной работы задачи можно найти в [3].

Приложение 1

Приложение 2

ЛИТЕРАТУРА.

  1. Глущенко Ю. В., Глущенко Т. В. Реализация алгоритмов в электронных таблицах./https://urok.1sept.ru.
  2. Глущенко Ю. В. Обоснование использования языка программирования в учебном процессе./ https://urok.1sept.ru.
  3. Информатика. Задачник – практикум в 2 т./ Под редакцией И. Г. Семакина и Е. К. Хеннера - М.: Бином. Лаборатория знаний.