- •Введение
- •1 Цели и задачи дисциплины
- •2 Методы и технологии разработки алгоритмов и программ
- •2.1 Сущность структурного программирования
- •2.1.1 Базовые управляющие структуры
- •2.1.2 Дополнительные управляющие структуры
- •2.2 Сущность процедурного программирования
- •2.3 Сущность модульного программирования
- •2.4 Сущность объектно-ориентированного программирования
- •3 Методические указания к выполнению лабораторных работ
- •Лабораторная работа №1 Работа с файлами в интегрированной среде программирования
- •Лабораторная работа №2 Отладка и тестирование программы
- •Текст программы
- •Лабораторная работа №3 Поразрядные логические операции
- •Варианты индивидуальных заданий
- •Пример решения для варианта задания вида:
- •Пример программы
- •Лабораторная работа №4 Поиск экстремума
- •Варианты индивидуальных заданий
- •Пример схемы алгоритма и текста программы определения экстремума для варианта задания вида:
- •Пример программы
- •Лабораторная работа №5 Определение принадлежности точки выделенным областям на плоскости
- •Варианты индивидуальных заданий
- •Пример схемы алгоритма и текст программы определения местоположения точки на плоскости для варианта задания вида:
- •Текст программы
- •Лабораторная работа №6 Многовариантные вычисления по ключу
- •Варианты индивидуальных заданий
- •Пример программы
- •Лабораторная работа №7 Циклические вычисления на заданное число повторений.
- •Варианты индивидуальных заданий
- •Пример программы
- •Лабораторная работа №8 Циклические вычисления с заданной точностью
- •Варианты индивидуальных заданий
- •Пример программы
- •Лабораторная работа №9 Обработка одномерных массивов
- •Варианты индивидуальных заданий
- •Пример программы
- •Лабораторная работа №10 Обработка двумерных массивов
- •Варианты индивидуальных заданий
- •Пример программы
- •4 Методические указания к выполнению контрольных работ
- •Контрольная работа №1 Преобразование чисел из одной системы счисления в другие
- •Варианты индивидуальных заданий
- •Пример выполнения задания
- •Контрольная работа №2 Арифметические операции в двоичной, восьмеричной и шестнадцатеричной системах счисления
- •Варианты индивидуальных заданий
- •Пример выполнения задания
- •Библиографический список
Пример программы
Формулировка задания:
Последовательность
функций
,
где
определяется следующим образом:
Для заданного значения X найти предел последовательности, принимая за таковой значение , удовлетворяющее условию |Yn – Yn-1| < , 0 < <= 0.1.
Program Recur_2;
{Последовательность функций yn= yn(x), где 0 < x < 1 определяется
следующим образом: y(1)=(x+1)/2; y(n)=(x+y(n-1)+1)/2; n=2,3,4...
Для заданного x найти предел последовательности, принимая за таковой
значение y(n), удовлетворяющее условию |y(n) - y(n-1)|<eps,
где 0 < eps <= 0.1.
}
Uses Crt; {Подключение модуля}
Var
x, {входное данное - значение аргумента}
eps, {входное данное - точность вычисления}
y1, {текущее значение функции}
yn:Real; {значение предела последовательности}
n:Integer; {номер предельного элемента}
Begin
ClrScr;
WriteLn('Последовательность функций yn=yn(x), где 0<x<1 определяется');
WriteLn('следующим образом: y(1)=(x+1)/2; y(n)=(x+y(n-1)+1)/2; n=2,3,4...');
WriteLn('Для заданного x найти предел последовательности, принимая за таковой');
WriteLn('значение y(n), удовлетворяющее условию |y(n)-y(n-1)|<eps');
Write('где 0 < eps <= 0.1');
Write(' Введите значение точности: eps=');
ReadLn(eps);
If (eps<=0)OR(eps>0.1)
Then Begin
Write(' Ошибка ввода! Значение eps должно быть <=0.1 и >0');
ReadLn;
Exit;
End;
Write(' Введите значение аргумента: x=');
ReadLn(x);
If (x<=0)OR(x>=1)
Then Begin
Write(' Ошибка ввода! Значение x должно быть >0 и <1');
ReadLn;
Exit;
End;
{Цикл While}
n:=1;
y1:=(x+1)/2;
n:=n+1;
yn:=(x+y1+1)/2;
While (Abs(yn - y1)>eps)AND(n<MAXINT)
{наибольшее значение типа Integer=32767}
Do Begin
n:=n+1;
y1:=yn;
yn:=(x+y1+1)/2;
End;
If n=MAXINT
Then WriteLn(' Точность не достигнута.')
Else WriteLn(' Для цикла While предел y(',n,')=',yn:1:7,', n=',n);
{Цикл Repeat}
n:=1;
yn:=(x+1)/2;
Repeat
n:=n+1;
y1:=yn;
yn:=(x+y1+1)/2;
Until (Abs(yn-y1)<eps)OR(n>=MAXINT);
If n=MAXINT
Then WriteLn(' Точность не достигнута.')
Else WriteLn(' Для цикла Repeat предел y(',n,')=',yn:1:7,', n=',n);
{Цикл For}
yn:=(x+1)/2;
for n:=2 To MAXINT
Do Begin
y1:=yn;
yn:=(x+y1+1)/2;
If(Abs(yn-y1)<eps)
Then Break;
End;
If n=MAXINT
Then WriteLn(' Точность не достигнута.')
Else WriteLn(' Для цикла For предел y(',n,')=',yn:1:7,', n=',n);
ReadLn;
End.
Лабораторная работа №9 Обработка одномерных массивов
Цель лабораторной работы: изучение структурной организации массивов и способов доступа к их элементам; совершенствование навыков структурного программирования на языке Турбо Паскаль задач обработки массивов.
Задание на программирование: используя технологию структурного программирования разработать программу обработки одномерных массивов в соответствии с индивидуальным заданием.
Порядок выполнения работы:
1) Получить у преподавателя индивидуальное задание и выполнить постановку задачи: сформулировать условие, определить входные и выходные данные, их ограничения.
2) Разработать математическую модель: описать с помощью формул и рисунков структуру массивов и процесс их преобразования.
3) Построить схему алгоритма решения задачи.
4) Составить программу на языке Турбо Паскаль.
5) Входные данные вводить с клавиатуры по запросу.
6) Выходные данные выводить на экран с пояснениями.
7) Проверить и продемонстрировать преподавателю работу программы на полном наборе тестов, в том числе с ошибочными входными данными. Входные и выходные массивы должны выводиться в одном и том же формате.
8) Оформить отчет о лабораторной работе в составе: постановка задачи, математическая модель, схема алгоритма решения, текст программы, контрольные примеры.
