- •Реализация алгоритмов в системе программирования turbo pascal 7.0 Учебное пособие
- •Тема 1 Алгоритмы и способы их описания
- •Тема 2 Этапы подготовки и решения задач на эвм
- •Тема 3 Начало работы в системе Turbo Pascal 7.0
- •Начало работы с новой программой
- •Задание 1
- •Сохранение текстового файла программы на диске
- •Задание 2
- •Задание 3
- •Задание 4
- •Тема 4 Ввод исходных данных и вывод результатов вычислений
- •Упражнение 1.
- •Тема 5 Реализация линейных алгоритмов
- •Сложные выражения
- •Задание
- •Тема 6 Программирование разветвляющихся алгоритмов
- •Задание 1
- •Задание 2
- •Тема 7 Циклические алгоритмы с известным числом повторений
- •Задание
- •Тема 8 Циклические алгоритмы с неизвестным числом повторений
- •Задания
- •Задание
- •Тема 10 Работа с массивами
- •Задание
- •Задание
- •Тема 12 Записи
- •Задания
- •Тема 13 Работа с файлами
- •Задания
- •Задания
- •Тема 15 Алгоритмы построения графика аналитически заданной функции
- •Задание
- •Тема 16 Анимация изображений
- •Задание 1
- •Задание 2
- •Тема 17 Численные методы вычисления определённого интеграла
- •1. Метод прямоугольников
- •2. Метод трапеций
- •3. Метод Симпсона
- •Задания
- •Тема 18 Численные методы решения нелинейных уравнений
- •Задания
- •Тема 19 Численные методы решения обыкновенных дифференциальных уравнений
- •Задание
- •Оглавление
- •Литература
Задание 1
Составьте программу для вычисления следующих выражений. Программа должна обеспечить ввод значений Х, расчет и вывод значений Y.
1. |
y=5x2 y=x2-2x y=tg(2x) y=lg(x) |
при x < -10 при –10 x < 0 при 0 x 2 при x > 2 |
6. |
y=5x2 y=x2-2x y=tg(2x) y=lg(x) |
при x < -5 при –5 x < 0 при 0 x 2 при x > 2 |
2. |
y=0,5x2 y=x2-4x y=tg(x) y=lg(x) |
при x < -20 при –20 x < 0 при 0 x < 2 при x 2 |
7 |
y=1,5x2 y=x2-4x y=tg(x)-sin(x) y=lg(x)+ln(x) |
при x < -10 при –10 x < 0 при 0 x < 2 при x 2 |
3. |
y=0,5x2 y=x3-4x y=tg(0,1x+3) y=lg(12x) |
при x < -25 при –25 x < 0 при 0 x < 20 при x 20 |
8. |
y=0,5x2 y=1,2x3-4x y=tg(0,1x) y=lg(12x) |
при x < -25 при –25 x < 0 при 0 x < 20 при x 20 |
4. |
y=0,5x4 y=x2-4x y=tg(x2) y=lg(x-0,5) |
при x < -10 при –10 x < 0 при 0 x < 2 при x 2 |
9. |
y=0,5x4 y=x2-4x y=tg(x2) y=lg(x-0,5) |
при x < -100 при –100 x < 0 при 0 x < 1,2 при x 1,2 |
5. |
y=x2+x y=x3 y=tg2(x) y=lg(5x) |
при x < -20 при –20 x < 0 при 0 x < 3 при x 3 |
10. |
y=x2+3x y=x3-4 y=tg2(x) y=lg(5x)-x |
при x < -20 при –20 x < 0 при 0 x < 3 при x 3 |
Задание 2
Составьте программу, которая бы выводила на экран сообщение о количестве занятий, в зависимости от дня недели (понедельник = 1, вторник = 2 и т.д.), цифровое обозначение которого ввести с клавиатуры, с применением оператора case.
Тема 7 Циклические алгоритмы с известным числом повторений
Цикл – многократно повторяемая последовательность однотипных действий. Циклы бывают с заранее известным числом повторений и с неизвестным числом повторений.
Для организации цикла с известным числом повторений используют оператор цикла с параметром (оператор for). Вид оператора
for i:=m1tо m2 do s;
Здесь i– параметр цикла целого или другого перечислимого типа,m1иm2 – начальное и конечное значения параметра цикла,s– тело цикла из одного или нескольких операторов. Если тело цикла состоит из нескольких операторов (т.е. является составным оператором), то их объединяют операторными скобкамиbeginиend. При выполнении оператораforповторяется тело цикла. Параметр цикла увеличивается на 1 при каждом повторе. При первом повтореiравноm1, при последнем повтореiравноm2. В теле оператора не следует применять операторы, меняющие значение параметра цикла. Наиболее часто этот оператор используется для выполнения операций с массивами.
Возможна следующая запись оператора: for i:=m1 downto m2 do s;
При этом параметр цикла уменьшается на 1 при каждом повторе.
Количество повторов цикла в операторе forбудет следующим:
Оператор |
m1 <m2 |
m1 =m2 |
m1 >m2 |
for … to |
m 2 m1+1 раз |
1 раз |
Не выполняется |
for…downto |
Не выполняется |
1 раз |
m 1m2+1 раз |
Пример.Вычислить 9 раз значения функциипри измененииaот –1 с шагом 0,5. Вывести на экран значения аргумента и значения функции в виде таблицы.
Решение.В программе перед циклом задается начальное значение аргумента, равное минус 1. Внутри цикла проверяется возможность вычисления функции. Если вычислить функцию невозможно, на экран выводится соответствующее сообщение. В противном случае вычисляется значение функции и выводится на экран вместе со значением аргумента. В конце цикла значение аргумента увеличивается на величину шага, и таким образом при следующем выполнении цикла все действия повторяются при новом значении аргумента. Когда будет выполнено девять повторений, произойдет выход из цикла. Ниже приведён текст программы:
Uses Crt; {подключение модуля Crt}
Var {описание переменных}
a,b:real;
i:integer;
Begin {начало головной программы}
Clrscr; {очистка экрана}
Writeln('Таблица функции b=f(a)'); {вывод шапки таблицы}
Writeln('--------------------');
Writeln(' № a b ');
Writeln('--------------------');
a:=-1; {начальное значение аргумента}
for i:=1 to 9 do {начало цикла}
begin
{проверка возможности вычисления функции}
if sqr(a)-0.3<0 then {вывод сообщения}
writeln('При a = ',a:8:2,' функция не определена')
else
begin
b:=sqrt(sqr(a)-0.3); {вычисление функции}
{вывод номера точки, аргумента и функции на экран}
Writeln(i:2,' ',a:8:2, ' ',b:8:2);
end;
a:=a+0.5; {пошаговое увеличение аргумента}
end; {окончание цикла}
Writeln('--------------------'); {вывод подвала таблицы}
Readln; {ждём нажатия ENTER}
End. {окончание программы}
В теле оператора forмогут находиться другие операторыfor. Это позволяет строить циклы, содержащие внутренние циклы, которые называютсявложенными. Ниже приведён текст программы, выводящей на экран таблицу умножения.
Uses Crt;
Var i,j:integer;
Begin
Clrscr;
Writeln('Таблицаумножения'); Write(' |');
for i:=1 to 9 do write(i:6); Writeln;
for i:=1 to 60 do write('-'); Writeln;
for i:=1 to 9 do {начало цикла i}
begin
Write(i:4,' |');
For j:=1 to 9 do Write(i*j:6); { цикл j}
Writeln;
end; {конец цикла i}
Readln;
End.