2. Формулы для решения задачи:
а) y=1+1/x+1/sqr(x), x<>0
б) x2+y2=R2;
sqr(x)+sqr(y) <=1, y<0
3. Программа
Var x,x1,y,y1,y2:real;T:Boolean;
Begin
Writeln(‘введите число для вычисления выражения1’);
Read(x);
Writeln(‘Результат задания а’);
If x=0 then writeln(‘Деление на 0 невозможно’)else
Begin
y=1+1/x+1/sqr(x);
Writeln (‘при х=’,x:6:3,’ y=’,y:6:3);
y1=abs(y);
Writeln(‘Абсолютное значение y1=’, y1:6:3);
y2:=sqr(y);
Writeln(‘Квадрат у=’,y2:6:3);
End;
Writeln(‘Введите координаты точки’);
Readln(x1,y1);
T:=(sqr(x1)+sqr(y1)<=1)and(y1<=0);
Writeln(‘Результат задания б:’,t);
End.
4. Функции, используемые в программе:
Sqr(x) – возведение в квадрат
Abs(x)- получение абсолютного значения
5. Тестирование программы
Задание а
Х | Результат работы программы |
0 | Деление на 0 невозможно |
1 | Y=3, y1=3,y2=9 |
-1 | Y=1, y1=1,y2=1 |
Задание б
Х1, Y1 | Результат работы программы |
X1=0.5 Y1=0.5 | T=false |
X1=-0.5 Y1=0.5 | T=false |
X1=0.5 Y1=-0.5 | T=true |
X1=-0.5 Y1=-0.5 | T=true |
знакомство с операторами языка Паскаль;
решение задач с использованием условного оператора и оператора циклов.
Условный оператор используется при выборе из двух возможных вариантов, он имеет следующий вид:
IF <условие> THEN <оператор1> ELSE <оператор2>, где IF, THEN, ELSE — зарезервированные слова;
<условие> — выражение логического типа;
<оператор1>, <оператор2> —любые операторы языка Turbo Pascal .
Выполнение этого оператора начинается с проверки условия. Если оно истинно (т. е. равно TRUE), то выполняется <оператор1>, иначе (значение выражения равно FALSE) выполняется <оператор2>. Часть оператора, начинающаяся со слова ELSE, может быть опущена, тогда оператор выполняется только при значении выражения равном TRUE.
Операторы циклов используются для повторения операторов в программах. В Паскале существует три оператора циклов.
2.2.1. Арифметический оператор цикла (цикл с параметром)
FOR <пар_цик>:= <нач_зн> TO [DOWNTO]<кон_зн> DO <операторы>, где
FOR, TO, DO — зарезервированные слова;
<пар_цик> — параметр цикла (переменная порядкового типа);
<нач_зн> — начальное значение <пар_цик>;
<кон_зн> — конечное значение <пар_цик>;
<операторы> — произвольные операторы языка Turbo Pascal.
Алгоритм работы цикла с параметром следующий:
Вычисляется начальное значение и присваивается параметру цикла.
Если параметр цикла меньше или равен конечному значению, то переход к п.3, иначе оператор заканчивает работу;
выполняются операторы после слова DO;
Параметр цикла изменяется на единицу (увеличивается, если оператор содержит ключевое слово TO и уменьшается, если оператор содержит ключевое слово DOWNTO).
2.2.2. Оператор цикла с предусловием
WHILE <условие> DO <операторы>, где
WHILE, DO — зарезервированные слова ;
<условие> — выражение логического типа;
<операторы> — операторы языка Turbo Pascal.
Пока значение выражения <условие> равно TRUE, выполняются <операторы>. Если условие FALSE, то выполнение оператора заканчивается.
3. Оператор цикла с постусловием
REPEAT <тело_цикла> UNTIL <условие>, где
REPEAT, UNTIL — зарезервированные слова;
<тело_цикла> — операторы языка Turbo Pascal;
<условие> — выражение логического типа.
Оператор выполняется хотя бы один раз. Затем проверяется условие. Если его значение FALSE, то выполняется <тело_цикла>, иначе оператор заканчивает работу.
1. Найти сумму целых положительных чисел, кратных 3 и меньших 200.
2. Найти сумму целых положительных четных чисел, меньших 100.
3. Найти сумму целых положительных нечетных чисел, меньших 200.
4. Найти сумму целых положительных чисел, больших 20, меньших 100 и кратных 3.
5. Найти сумму ряда из К слагаемых, общий член которого
6. Найти сумму ряда из К слагаемых, общий член которого
7. Найти сумму ряда из К слагаемых, общий член которого
8. Найти сумму ряда из К слагаемых, общий член которого
9. Найти сумму ряда с точностью e=10-4, общий член которого
10. Найти сумму ряда с точностью e=10-4, общий член которого
11. Найти сумму ряда с точностью e=10-4, общий член которого
12. Найти сумму ряда с точностью e=10-4, общий член которого
13. Найти сумму ряда с точностью e=10-4, общий член которого
14. Найти сумму ряда с точностью e=10-4, общий член которого
15. Задана последовательность из N целых чисел. Найти разницу между максимальным и минимальным числом этой последовательности.
16. Задана последовательность из N целых чисел. Найти среднее арифметическое этой последовательности.
17. Задана последовательность из N целых чисел. Найти количество отрицательных и сумму положительных чисел в этой последовательности.
18. Задана последовательность, заканчивающаяся 0. Найти разницу между максимальным и минимальным числом этой последовательности.
19. Задана последовательность, заканчивающаяся 0. Найти среднее арифметическое этой последовательности.
20. Задана последовательность, заканчивающаяся 0. Найти количество отрицательных и сумму положительных чисел в этой последовательности.
21. Задано число К. Определить является ли оно простым ( простое число делится только на 1 и само на себя).
22. Задано число К. Определить является ли оно числом Фибоначчи (1, 1, 2, 3, 5, 8, 13 . . .).
23. Задано число N. Сформировать N чисел Фибоначчи (1, 1, 2, 3, 5, 8, 13, . . .).
24. Задано число N. Сформировать N простых чисел ( простое число делится только на 1 и само на себя).
25. Задана последовательность из N целых чисел. Определить сколько чисел принимают наибольшее значение.
1. Постановка задачи (общая и конкретного варианта).
2. Алгоритм в виде блок-схемы.
3. Программа на языке Паскаль.
4. Объяснение использования операторов циклов.
5. Пример выполнения работы и оформления отчета
Лабораторная работа №2
«Основные операторы языка Паскаль»
2. Алгоритм решения задачи
3. Программа
Var S,A:Real;
I,K:Integer;
Begin
Writeln(‘введите количество элементов ряда’);
Readln(K);
S:=0;A:=2;
For I:=1 to K do begin
S:=S+A;
A:=1/(exp(2*ln(i))+1/exp(3*ln(i));
End;
Writeln(‘Сумма ряда S=’, S:6:3);
End.
4. В программе использован цикл с параметром (For), т. к. в условии задачи указано количество слагаемых суммы, следовательно, вычисление слагаемого и добавление его к сумме надо повторить К раз.
Лабораторная работа №3
«Работа с массивами»
1) Получение практических навыков при работе с массивами.
2) Знакомство с алгоритмами сортировки.
2. Краткие теоретические сведения:
Массив – это формальное объединение нескольких однотипных объектов (чисел, символов, строк и т.п.), рассматриваемое как единое целое.
Массив описывается следующим образом:
<имя_типа> = ARRAY [<сп_инд_типов>] OF <тип>,
где ARRAY, OF – зарезервированные слова (массив, из);
<имя_типа> -- правильный идентификатор;
<сп_инд_типов> -- тип-диапазон, с помощью которого компилятор определяет число элементов массива.
<тип> -- любой тип ТР, в том числе и другой массив.
Определить переменную как массив можно непосредственно при описании этой переменной, без предварительного описания типа массива, например:
var f : array [1..12] of integer.
2.2. Перебор элементов массива
1) Элементы массива можно обрабатывать по одному элементу, двигаясь от начала массива к его концу (или в обратном направлении):
For I:=1 to N do <обработка a[i]>
2) Элементы массива можно обрабатывать по два элемента, двигаясь с обеих сторон массива к его середине:
I:=1;J:=N;
while I<J do begin
<обработка a[I] и a[J]>;
I:=I+1;J:=J+1;
end;
3) Элементы массива можно обрабатывать по два элемента, двигаясь от начала к концу с шагом 1(т. е. обрабатываются пары элементов a[1]и a[2], a[2]и a[3] и т. д.)
for I:=1 to N-1 do
<обработка a[I] и a[I+1]>
4) Элементы массива можно обрабатывать по два элемента, двигаясь от начала к концу с шагом 2(т. е. обрабатываются пары элементов a[1]и a[2], a[3]и a[4] и т. д.)
I:=1;
while I<N do begin
<обработка a[I] и a[I+1]>
I:=I+2;
end;