- •Содержание
- •Предисловие научного редактора
- •Введение
- •1. Понятие алгоритма. Способы представления алгоритмов
- •В виде компьютерной программы:
- •2. Свойства алгоритмов
- •Язык графического представления алгоритмов
- •4. Общие принципы построения программ
- •5. Структура программы на языке паскаль
- •6. Классификация типов данных, используемых в языке паскаль
- •6.1. Символьный тип
- •6.2. Числовые типы
- •6.2.1. Целые типы
- •6.2.2. Вещественные типы
- •6.3. Логический тип
- •6.4. Типы данных, определяемые программистом
- •7. Основные операторы языка паскаль.
- •7.1. Операторы (процедуры) ввода – вывода
- •7.2. Оператор присваивания
- •7.3. Условный оператор
- •Первый вариант условного оператора:
- •If условие then оператор1 else оператор2;
- •Второй вариант условного оператора (сокращенная форма):
- •If условие then оператор1;
- •If условие1 then
- •If условие2 then оператор21 else
- •If условие3 then оператор31 else
- •7.4. Оператор выбора case
- •7.5. Операторы цикла
- •7.5.1. Оператор цикла с параметром
- •Параметр цикла I меняет свои значения только автоматически, при переходе к следующему шагу цикла. Изменения параметра цикла I в теле цикла запрещены.
- •7.5.2 Оператор цикла с предусловием оператор цикла с предусловием имеет структуру:
- •7.5.3. Оператор цикла с постусловием
- •8. Структурированные типы данных
- •8.1. Массивы
- •8.2. Записи
- •8.3. Файлы
- •2.Связать файловую переменную с именем файла на диске с помощью процедуры Assign(фп, ‘имя_файла_на диске’).
- •3. Открыть файл:
- •4. Выполнить работу с файлом.
- •Закрыть файл при окончании работы: Сlose(фп);
- •9. Процедуры и функции
- •9.1. Процедуры
- •Var I:integer; {I – локальная переменная}
- •9.2. Функции
- •2)Имя функции входит составной частью (как переменная) в некоторое выражение.
- •Задание к лабораторной работе №2.
- •Часть 1. Тема: вычисление по формулам и представление результатов с учетом форматного вывода.
- •Часть 2. Тема: Циклические вычисления с учетом диапазона типа данных и выдача результатов вычислений по шагам.
- •Задание к лабораторной работе №3.
- •Часть 1 .
- •Часть 2.
- •Задание к лабораторной работе №4.
- •Лабораторная работа №5.
Лабораторная работа №5.
Тема: Применение функций и процедур.
1. Разработать программу вычисления числа сочетаний из N по M по формуле
С = N! / ((N-M)! * M!) ,
используя в качестве функции программу вычисления факториала, рассмотренную (см.ЛР №2). В программе предусмотреть
ввод исходных данных с клавиатуры и контроль корректности задания данных:
N>0, M >0, N>M.
Расширение диапазона значений С до 1 млн.
выполнение программы произвольное число раз с новыми значениями N,M, не выходя в режим редактирования (вставить в программу оператор цикла
REPEAT … UNTIL povtor = (‘N’) or povtor=‘n’);
выдачу на монитор, кроме значения С, также и промежуточных результатов расчета N!, M!, (N-M)!.
Задается матрица A размерности 2xN произвольных чисел. Пара чисел А[1,i], A[2,i] определяет координаты точки i на плоскости, i=1..N. Точки попарно соединены между собой отрезками. Разработать программу, которая находит отрезок максимальной длины. В программе предусмотреть ввод числа N с клавиатуры, а задание элементов матрицы - по желанию пользователя: либо с клавиатуры, либо с помощью встроенного генератора случайных чисел (функция random(…)). Длина отрезка Rij между точками i, j вычисляется по формуле
Rij = (( A[1,i] – A[1,j])2 + ( A[2,i] – A[2,j])2)1/2.
Вычисление значений Rij в программе предусмотреть с помощью специально заданной функции FRij.
Program Line_max;
Var N,i,j:byte;
L,max_L:real
A:array[1..15] of real;
povtor,rg:char;
Function FRij(x1,y1,x2,y2:real) of real;
Begin FRij: = sqrt(sqr(x2 – x1) + sqr(y2 – y1))
End;
Begin repeat
Write(‘Задай значение N>0: ’);readln(N);
Writeln(‘Задай режим ввода элементов массива:
writeln (‘ к – с клавиатуры’);
writeln (‘ г – с помощью генератора случайных чисел’);read(rg);
case rg of
‘к’,’К’: begin
for i:=1 to 2 do
for j:=1 to N do
begin write(‘Элемент ’,i,’,’,j,’= ‘);readln(A[i,j]);
end;
‘г’,’Г’:
max_L:=0;
For i:=1 to N-1 do
For j:=i+1 to N do
Begin L:=Rij(A[1,i],A[1,j],A[2,i],A[2,j]);
If L>max_L then
Begin max_L:=L;z1:=i;z2:=j
End;
End;
writeln(‘Максимальную длину L= ‘,max_L,
’ имеет отрезок между точками’,i,’ и ‘,j,‘ имеющими координаты ’,
A[1,i],’, ‘,A[1,j],’ и ‘,A[2,i],’, ‘,A[2,j]);
Writeln(‘Повторить ввод ? – Y/N: ’);readln(povtor)
Until (povtor=’n’) or (povtor=”N”)
Writeln(‘Press enter’);readln
End.
Требования к оформлению лабораторных работ.
1. Результаты всех лабораторных работ оформляются в виде отчетов, содержащих титульный лист, оглавление, задание, тексты программ с комментариями, результаты по всем пунктам заданий с пояснением результатов.
2. Подготовка к каждой лабораторной работе обязательна и состоит в предварительной (домашней) разработке текста программы (а еще лучше – и ее отладке: тогда программу целесообразно принести в виде файла на дискете со всеми вариантами работы программы согласно пунктам задания).
ЛИТЕРАТУРА
1. Фаронов В.В. Turbo Pascal 7.0. Начальный курс. Учебное пособие. М.:Изд. Нолидж, 1998.
2. Марченко А.И., МарченкоЛ.А. Программирование в среде Turbo Pascal 7.0. Базовый курс. К.:ВЕК, 1999.
3. Немнюгин С.А. Turbo Pascal: Практикум. СПб.:Питер, 2001.
4. Минаева Н.И. и др. Методы программирования. М.:Вузовская книга, 2000.
5. Абрамов В.Г., Трифонов И.П., Трифонова Г.И. Введение в язык Паскаль. М.:Наука, ГРФМЛ, 1988.
6. Семашко Г.Л.Салтыков А.И. Программирование на языке Паскаль. М.:Наука, ГРФМЛ, 1988.
7. Кнут Дональд Е. Искусство программирования. Том 1. Основные алгоритмы. 3-е издание. Киев: Изд-во «Вильямс, Addison Wesley Longman». 2000.
