Учебное пособие_Алгоритмизация
.pdf{основная программа} var x: integer;
y: real;
begin
writeln(„Таблица логарифмов чисел от 1 до 10‟);
Line(20,‟=‟);
writeln(„Число Корень‟);
Line(20,‟=‟);
for x:=1 to 10 do
begin
y:= ln(x);
writeln(x:5; y:8:3);
Line(20,‟–‟);
end;
Line(20,‟=‟);
end.
Функции
Функция – это особым образом оформленный фрагмент программы,
имеющий собственное имя.
Функция описывается с помощью заголовка и тела функции. Заголовок включает служебное слово function, имя функции, список формальных параметров с указанием их типа и типа возвращаемого результата.
function <имя функции> (<список формальных параметров>): <тип функции>;
var
{объявление внутренних переменных функции}; begin
{операторы функции}; end;
60
Обращение к функции осуществляется по имени с указанием списка
фактических параметров.
<имя функции> (<список формальных параметров>).
Отличие функции от процедуры
1.В заголовке указывается тип функции. Результатом работы функции является единственное значение. В результате работы процедуры могут быть различные варианты. Если программа имеет единственный результат, ее необходимо оформить в виде функции, в остальных случаях
ввиде процедуры.
2.В теле функции должен быть хотя бы один оператор, который присваивает имени функции результат ее работы.
3.Оператор вызова функции может участвовать в выражениях,
стоящих в правой части знака присваивания, например:
Function V_conus(R,H: word): real; begin
V_conus:=1/3*PI*R*R*H; end;
ПРИМЕР 18. Составьте функцию, которая вычисляет значение ab. Числа а и b могут быть любыми дробными положительными числами.
program stepen;
uses crt;
function InStep(a, b: real):real;
begin
InStep:=exp(b*ln(a));
end;
var a: real; {число}
b:real;{степень}
c:real;{число в степени}
begin
writeln(„Введите число и показатель степени‟);
61
readln (a, b);
c:= InStep(a, b);
writeln(a:6:3,„в степени‟, b:6:3, „=‟, с:6:3);
readln;
end.
Задания для самостоятельной работы
1.Составить программу, которая считает количество слов в строке.
2.Составить программу, которая удаляет заданное пользователям слово из строки.
3.Разработать программу, которая удаляет пробелы в начале строки.
4.Написать программу на языке Паскаль, которая удаляет из строки n
символов, начиная с 5-й позиции.
5.Написать подпрограмму поиска минимального элемента в массиве и его номера.
6.Составить функцию для вычисления среднего арифметического чисел.
7.Составить функцию, вычисляющую логарифм с произвольным основанием. С помощью функции вычислить: log 7 100 , log5 125 , log 2 64 .
8.Составить процедуру для вычисления площади и длины окружности.
9.Составить функцию для вычисления тангенса угла.
10.Составить процедуру для вычисления суммы и произведения элементов матрицы, лежащих выше главной диагонали.
62
ТРЕБОВАНИЯ К ОФОРМЛЕНИЮ РАСЧЕТНО-ГРАФИЧЕСКОЙ РАБОТЫ
Расчетно-графическая работа по дисциплине «Информатика» является одним из видов самостоятельной работы студента. Она охватывает раздел
«Основы алгоритмизации и программирования».
Целью данной работы является:
систематизация знаний студентов по теме «Основы алгоритмизации и программирования»;
закрепление навыков работы с текстовым процессором и средой программирования Turbo Pascal 7.0;
применение принципов оформления научно-технической документации.
Отчет по расчетно-графической работе (РГР) оформляется в текстовом
процессоре MS Word и имеет следующую структуру:
титульный лист (см. приложение);
оглавление, составленное автоматически;
цели и задачи расчетно-графической работы, краткая аннотация к отчету;
основная часть;
выводы;
используемая литература.
Котчету обязательно должны прилагаться решенные задачи с комментариями на языке Pascal в электронном виде.
Основная часть РГР состоит из 5 задач по следующим темам: линейная,
разветвляющаяся и циклическая алгоритмические конструкции, одномерные и двумерные массивы. Для каждой задачи составляется:
псевдокод;
блок-схема;
63
листинг программы на языке Pascal;
тестирование;
результат выполнения программы.
Печатный текст оформляется в соответствии со следующими
требованиями:
1)поля – 2 см со всех сторон;
2)шрифт – Times New Roman;
3)размер шрифта – 14 пт;
4)интервал между строками – 1,5;
5)страницы должны быть пронумерованы, начиная со 2-й;
6)выравнивание – по ширине;
7)отступ первой строки – 1,25;
8)в верхнем колонтитуле указывается фамилия студента и название расчетно-графической работы;
9)заголовки и основной текст лабораторной работы оформляются с помощью стилей;
10)рисунки и таблицы должны иметь названия и нумерацию;
11)формулы вставляются целиком как объект Microsoft Equation.
ВРГР оцениваются:
правильность составления псевдокода, блок-схемы;
работа программы в среде программирования Turbo Pascal;
оформление работы в текстовом процессоре;
устная защита работы, ответы на вопросы преподавателя.
Критерии оценивания расчетно-графической работы
«ОТЛИЧНО» заслуживает студент, показавший глубокий и всесторонний уровень знания раздела «Алгоритмизация и программирование», свободное владение терминологией, умение качественно выполнять практические задания.
64
«ХОРОШО» заслуживает студент, показавший хорошее знание темы,
успешно выполнивший практические задания.
«УДОВЛЕТВОРИТЕЛЬНО» заслуживает студент, показавший знание дисциплины в объеме, достаточном для продолжения обучения, справившийся с большей частью практических заданий.
«НЕУДОВЛЕТВОРИТЕЛЬНО» заслуживает студент, обнаруживший значительные пробелы в знании раздела «Алгоритмизация и программирование», допустивший принципиальные ошибки при выполнении большинства практических заданий.
65
ПРИМЕР ОФОРМЛЕНИЯ ЗАДАНИЙ РАСЧЕТНО-ГРАФИЧЕСКОЙ РАБОТЫ
Разработать алгоритмы к представленным задачам, составить
псевдокоды, блок-схемы, листинги программ на языке Паскаль. Выполнить
тестирование программ.
Линейная алгоритмическая конструкция
1. Формулировка задания
Разработать алгоритм решения линейного уравнения.
2. Псевдокод
1.Ввод k, b.
2.Х bk .
3.Вывод Х.
4.Конец.
3. Блок-схема
Начало
Ввод k, b
Х bk
Вывод x
Конец
4. Листинг программы program uravnenie ;
66
uses crt;
var x, k, b: real ;
begin
writeln ('Введите коэффициент k') ; readln (k) ;
writeln ('Введите b') ; readln (b) ;
clrscr; {Очистка экрана после ввода данных} x:= - b/k ;
writeln ('Корнем линейного уравнения ',k:3:2,'*x+',b:3:2, '=0 является x =', x:3:2) ;
end.
5. Тестирование
№ |
Значение |
Значение |
Результат выполнения |
Ожидаемый |
п/п |
k |
b |
программы |
результат |
1 |
2 |
5 |
-2.50 |
-2.50 |
|
|
|
|
|
2 |
10 |
-20 |
2.00 |
2.00 |
|
|
|
|
|
3 |
5 |
-5 |
1.00 |
1.00 |
6. Результат выполнения программы
67
Разветвляющаяся алгоритмическая конструкция
1. Формулировка задания
Разработайте алгоритм вычисления значения функции
a 1, x 0 ,
Y (X )
x2 5, x 0 ,
где а – произвольное целое число, введенное с клавиатуры.
2. Псевдокод
1.Ввод Х, а.
2.ЕСЛИ Х > 0, ТО Y(X) = X2+5,
ИНАЧЕ Y(X) = a–1.
3.Вывод Y(X).
4.Конец.
4. Листинг программы
program functia;
uses crt ;
var a: integer ; x, Y: real;
begin
clrscr;
3. Блок-схема
Начало
Ввод x, a
Нет |
X>0 |
Да |
|
|
Y(X)=а–1 |
|
Y(X)=X2+5 |
|
|
|
Вывод Y
Конец
68
writeln ('Вычисление значения функции'); writeln ('Введите X и а');
readln (x, a) ; if x > 0
|
|
|
|
then Y:=a – 1 |
|
|
|
|
|
|
|
else Y:= sqr(x)+5; |
|
||
|
|
writeln ('При а =' , а, 'Y =',Y:5:2); |
|
||||
|
|
readln; |
|
|
|
|
|
|
end. |
|
|
|
|
||
5. |
Тестирование |
|
|
||||
|
|
|
|
|
|
|
|
№ |
Значение |
|
Значение |
|
Результат выполнения |
Ожидаемый |
|
п/п |
|
a |
|
x |
|
программы |
результат |
1 |
|
2 |
|
1 |
|
1.00 |
1.00 |
|
|
|
|
|
|
|
|
2 |
|
10 |
|
-4 |
|
21.00 |
21.00 |
|
|
|
|
|
|
|
|
3 |
|
1 |
|
-5 |
|
30.00 |
30.00 |
6. |
Результат выполнения программы |
|
69