Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1346.doc
Скачиваний:
11
Добавлен:
09.04.2015
Размер:
436.22 Кб
Скачать
  1. Лабораторная работа №1. Табуляция функции

Выполнение лабораторной работы рассмотрим на конкретном примере.

2.1. Условие задачи:

Найти и вывести на экран все значения функции на отрезке [A,B] с шагомD. Подсчитать количество значений функции, больших 10.

2.2. Постановка задачи:

  1. Вводимые переменные: A,B,D– вещественные числа – начало отрезка, конец отрезка, шаг.

  2. При вводе данных необходимо учитывать, что переменные A,B,Dдолжны соответствовать следующим условиям:B>AиD>0. Если данные не соответствуют этим условиям, необходимо повторить ввод новых данных.

  3. Для решения этой задачи целесообразно организовать цикл. Переменная цикла К должна изменяться в пределах от К=А до К=В с шагом D.

, , пока.

С – количество, целое. ,при

  1. Выводимые переменные: К, Р, С– таблица:

Аргумент=... Значение функции=...

Аргумент=... Значение функции=...

Количество значений функции, больших 10=…

2.3. Алгоритм:

C=C+1

K=K+D

Нет Да

Нет Да

Нет Да

2.4. Текст программы:

Program TAB;

{Составил .........}

Var A,B,D,K,P:Real; { описаниe переменных}

C:Integer;

Begin {начало программы}

Repeat {Оператор цикла с постусловием. Организуется цикл выполнения перечня операторов, заключенных между словамиrepeatиuntilдо тех пор, пока не будет выполнено условие, указанное послеuntil.}

WriteLn('Введи начало отрезка, конец отрезка, шаг'); {Оператор вывода на экран строки заключенной в апострофах.}

ReadLn (A,B,D);{ Ввод числовых данных. Состоит из переменных в скобках, которыми будут обозначены вводимые данные.}

Until (B>A) and (D>0);

C:=0;

K:=A;

While K<=B do{Организуется цикл для нахождения значений заданной функции, вывода на экран таблицы, подсчета количества Р>10 до тех пор пока выполняется условие, указанное после управляющего словаwhile.}

Begin {начало цикла}

P:=24.9*exp(ln(sqr(sin(2*k)))/7);

WriteLn ('Аргумент=',K:6:2,'Значение функции='’,P:8:2);

if P>10 thenC:=C+1;{ Проверка условия.}

K:=K+D;

End; {конец цикла while}

Write ('Количество значений функции, больших 10=',C);

End.{конец программы}

2.5. Результаты расчетов:

Введи начало отрезка, конец отрезка, шаг 1 3 0.5

Аргумент=1.00 Значение функции=24.23

Аргумент=1.50 Значение функции=14.23

Аргумент=2.00 Значение функции=22.99

Аргумент=2.50 Значение функции=24.60

Аргумент=3.00 Значение функции=17.30

Количество значений функции, больших 10=5

3. Лабораторная работа №2. Одномерные массивы

Номер элемента массива: 1 2 …………… j…n

Элемент массива:

186

155

4

28.6

….

Примеры.

Описание массивов:

Var b:array [1..28] of real;

b:array [45..61] of byte;

Присвоение значений элементам массива

B[1]:=186;B[19]:=143.8;B[j]:=28.6;

B[j+1]:= a+c;

Выполнение лабораторной работы рассмотрим на конкретном примере.

3.1. Условие задачи:

Дано 40 оценок, найти среднюю.

3.2. Постановка задачи:

1) Вводимые переменные: Оc[i] – оценка.

Проверка: при вводе данных необходимо учитывать, что

, если данные не соответствуют этим условиям, необходимо повторить ввод новых данных.

2) Промежуточные переменные: i– номер оценки

Sum– сумма оценок

3) Выводимые переменные: SR– средняя оценка.

Для решения задачи потребуются следующие формулы.

Sum = Sum + Oc[i]; = 0; SR = Sum/40

Результат: SR= …

3.3. Алгоритм:

i=1

i=i+1

Sum=0

i=40

Sum=Sum+Oc[i]

i=i-1

SR=Sum/40

3.4. Текст программы:

Program OCEN;

{составил ...}

var Oc : array[1..40] of integer;

Sum,i : integer;

Sr : real;

begin

for i:=1 to 40 do{ Выполняется цикл(повтор) одного оператора, стоящего за управляющим словомdo. Количество повторений равно разности между значениями переменной цикла после словаtoи словаfor, увеличенной на единицу. При каждом повторении переменная цикла изменяется с шагом +1.}

begin

repeat

write ('введи оценку ');

readln (Oc[i]);

until (Oc[i]>0) and (Oc[i]<=5);

end;

Sum:=0;

fori:=40downto1do{Выполняется цикл(повтор) одного оператора, стоящего за управляющим словомdo.При каждом повторении переменная цикла изменяется с шагом –1.}

Sum:=Sum+Oc[i];

SR:=Sum/40;

Write ('средняя оценка=',Sr:4:2);

end.

3.5. Результаты расчетов:

Введи оценку 4

Введи оценку 3

..........................

Введи оценку 5

Средняя оценка=3.05

Другие возможные варианты:

1.Накапливающее умножение

Р - произведение

…………………….

p:=1;

for i:=1 to 40 do

p:=pOc[i];

2.Подсчёт количества

........................

kol:=0;

for i:=1 to 40 do

begin

if St>175 then

kol:=kol+1;

end;

write (‘kol=’,kol);

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]