Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Лабораторная работа №3




Цели. Научиться использовать в программах операторы, реализующие структуру цикл. Закрепить умение использовать в программах процедуры и функции. Научиться оформлять и использовать модули.

 

Задание 1

Алгоритм решения задач записать с помощью блок-схемы.

Написать программы, используя различные виды циклов.

Оттестировать программы.

Задачу п. а) выполнить по шагам, протокол исполнения оформить в отчете лабораторной работы.

 

1. Вариант

Вычислить:

a) сумму первых N нечетных натуральных чисел;

b) произведение первых N нечетных натуральных чисел;

c) сумму первых нечетных натуральных чисел, не превосходящих N;

d) произведение первых нечетных натуральных чисел, не превосходящих N.

2. Вариант

Вычислить:

a) сумму первых N четных натуральных чисел;

b) произведение первых N четных натуральных чисел;

c) сумму первых четных натуральных чисел, не превосходящих N;

d) произведение первых четных натуральных чисел, не превосходящих N.

3. Вариант

Вычислить:

a) сумму первых N натуральных чисел, делящихся на К;

b) произведение первых N натуральных чисел, делящихся на К;

c) сумму первых делящихся на К натуральных чисел, не превосходящих N;

d) произведение первых делящихся на К натуральных чисел, не превосходящих N.

4. Вариант

Вычислить:

a) сумму первых N членов произвольной арифметической прогрессии;

b) произведение первых N членов произвольной арифметической прогрессии;

c) сумму первых членов произвольной арифметической прогрессии, не превосходящих N;

d) произведение первых членов произвольной арифметической прогрессии, не превосходящих N.

5. Вариант

Вычислить:

a) сумму первых N членов произвольной геометрической прогрессии;

b) произведение первых N членов произвольной геометрической прогрессии;

c) сумму первых членов произвольной геометрической прогрессии, не превосходящих N;

d) произведение первых членов произвольной геометрической прогрессии, не превосходящих N.

6. Вариант

Составить программу, распечатывающую на экране компьютера:

a) результаты умножения на число N первых K натуральных чисел;

b) результаты умножения на число N первых натуральных чисел, не превосходящие K;

c) сумму результатов умножения на число 4 первых 9 натуральных чисел;

d) сумму результатов умножения на число 4 первых натуральных чисел, не превосходящих 9.

7. Вариант

Вычислить:

a) сумму N первых натуральных чисел;

b) произведение N первых натуральных чисел;

c) сумму тех первых натуральных чисел, для которых она не превосходит N;

d) произведение тех первых натуральных чисел, для которых оно не превосходит N.

8. Вариант

Вычислить: КN, не используя операцию возведения в степень;

a) сумму N степеней числа К, не используя операцию возведения в степень;

b) степень числа К, не используя операцию возведения в степень, пока результат не превосходит N;

c) сумму степеней числа К, не используя операцию возведения в степень, пока она не превосходит N.

9. Вариант*

Вычислить:

а) (1+sin0.1)(1+sin0.2)...(1+sin10);

б) (1+sin0.1)(1+sin0.2)(1+sin0.3)...., пока произведение остается меньше заданного N.

10. Вариант *

Вычислить:

а) (х-2)(х-4)(х-6)...(х-64);

б) (х-2)(х-4)(х-6)..., пока произведение остается меньше заданного N.

11. Вариант *

Вычислить:

а) 21 +22 +...+2N;

б 21 +22 +...+2N пока сумма остается меньше заданного N.

12. Вариант

Вычислить:

а) -12+22 –32 +42+...+Mn;

б) -12+22 –32 +42+...+Mn, пока сумма остается меньше заданного N.

13. Вариант*

Вычислить:

а) sin x +sinx 2 +sin x 3 +...+sinх N;

б) sin x +sinx 2 +sin x 3 +...+sinх N..., пока сумма остается меньше заданного N.

14. Вариант

Последовательность задана формулой общего члена n2*(n +3n).

Вычислить:

а) сумму членов последовательности с M-го по K;

б) произведение членов последовательности с M-го по K;

в) сумму членов последовательности, пока она не превосходит заданного N;

г) произведение членов последовательности пока оно не превосходит заданного N.

15. Вариант

Вычислить:

а) ;

б) , пока сумма остается меньше заданного N.

 

 

16. Вариант

Последовательность задана формулой общего члена (n2 – n+2)n.

Вычислить:

а) сумму членов последовательности с M-го по K;

б) произведение членов последовательности с M-го по K;

в) сумму членов последовательности, пока она не превосходит заданного N;

г) произведение членов последовательности пока оно не превосходит заданного N.

17. Вариант

Вычислить:

a) сумму натуральных чисел, начиная c N до 50;

b) произведение натуральных чисел, начиная с N до 50;

c) сумму натуральных чисел, начиная с N до тех пор, пока она не превосходит 50;

d) произведение натуральных чисел, начиная c N до тех пор, пока оно не превосходит 50.

18. Вариант

Пусть , , где задано.

Найдите сумму всех положительных чисел .

19. Вариант

Пусть дано натуральное число и вещественное число . Среди чисел:

, где ,

найдите ближайшее к какому-нибудь целому числу.

20. Вариант *

Вычислить: sin x + sin sinx + sin sin sinx +...+sin sin sin…sinх, пока сумма остается меньше заданного N.

21. Вариант *

Пусть дано натуральное число и вещественное число . Вычислите:

.

 

 

22. Вариант *

Пусть дано натуральное число и вещественное число . Вычислите:

.

23. Вариант *

Пусть дано натуральное число и вещественное число . Вычислите:

.

24. Вариант

Пусть дано натуральное число . Вычислите значения выражений:

;

25. Вариант

Пусть дано натуральное число . Вычислите значения выражений:

.

 

Задание 2

1. Напечатать значения функции y (см. лр №2, задание1, п1) на интервале [a,b] с шагом h. Вычисление значения функции y оформить в виде функции, используемые функции и процедуры оформить в виде модуля.

2. Для заданной функции f(x) методом табулирования локализовать корни уравнения f(x)=0 (т.е. выделить по возможности наименьшие отрезки, содержащие по одному корню) и найти приближенные значения корней. Если корней бесконечно много, взять два-три корня, ближайшие к началу координат.

 

Построить график функции на исследуемом участке (в тетради). За приближенное значение корня принимается середина соответствующего отрезка.

 

 

вариант 1. вариант 2. вариант 3.
Ответ:[0,5;0,6] Ответ:[0,7;0,8] Ответ:[1,3;1,4]
вариант 4. вариант 5. вариант 6.
Ответ:[2,5;2,6] Ответ:[3,8;3,9] Ответ:[0,8;0,9]
  [7,5;7,6]  
вариант 7. вариант 8. вариант 9.
Ответ:[1,8;1,9] Ответ:[0,2;0,3] Ответ:[1,4;1,5]
[1,7;1,8]    
вариант 10. вариант 11. вариант 12.
1 1xsinx-1. 1tg2x-3.
Ответ:[0,8;0,9] Ответ:[1,1;1,2] Ответ:[0,6;0,65]
  [2,6;2,7] [0,75;0,8]
вариант 13. вариант 14. вариант 15.
11,7-2cos2x. 12ctg3x+1. 1sin4x-0,6.
Ответ:[0,2;0,3] Ответ:[0,6;0,7] Ответ:[0,1;0,2]
[2,7;2,8] [1,0;1,1] [0,6;0,7]
вариант 16. вариант 17. вариант 18.
1ex -x-4. 1x -sinx. 1xlnx-0,5.
Ответ:[1,7;1,8] Ответ:[-1;-0,9] Ответ:[1,4;1,5]
  [0,9;1]  
вариант 19. вариант 20. вариант 21.
1e-x -sinx. 2ex -4x. 2x-10sinx.
Ответ:[0,5;0,6] Ответ:[0,3;0,4] Ответ:[2,7;2,8]
[3;3,1] [2,1;2,2]  
вариант 22. вариант 23. вариант 24.
2x-cosx-1. 2lnx+x. 2ex -10x.
Ответ:[1,2;1,3] Ответ:[0,6;0,7] Ответ:[0,1;0,2]
вариант 25.
2lnx-2+x.
Ответ:[1,5;1,6]

Задание 3

2. Написать программу и доказать правильность ее работы.

1. Вариант

Вычислить приближенно площадь фигуры, ограниченной осью абсцисс, аркой синусоиды, на отрезке [A,B] и прямыми y=А, y=B, разделив отрезок от A до B на N частей и суммируя площади прямоугольников с основаниями (A-B)/N и высотой, равной значению sin на правой границе каждого интервала. Вычисления выполнить и для N*2, N* Результат сравнить с точным значением.

2. Вариант

Вычислить приближенно площадь фигуры, ограниченной осью абсцисс, аркой косинусоиды, на отрезке [A,B] и прямыми y=А,y=B, разделив отрезок от A до B на N частей и суммируя площади прямоугольников с основаниями (A-B)/N и высотой, равной значению sin на левой границе каждого интервала. Вычисления выполнить и для N*2 и N* Результаты сравнить с точным значением.

3. Вариант

Вычислить приближенно площадь фигуры, ограниченной функцией y=x¤ и прямой y=25, разбивая отрезок изменения x на 10 частей и суммируя площади прямоугольников с основанием, равным 1/10 отрезка изменения x, и высотой, определяемой значением функции в середине основания для x<=0 и на левом конце основания для x>

4. Вариант

Вычислить приближенно площадь фигуры, ограниченной функцией y=x2 и прямой y=5+x/2, разбивая отрезок изменения x на 12 равных частей и суммируя площади прямоугольников с основанием, равным 1/12 отрезка изменения x, и высотой, определяемой значением функции в середине основания для x<0 и на правом конце интервала для x>=

5. Вариант

Начав тренировки, спортсмен в первый день пробежал L км. Каждый следующий день он увеличивал дневную норму на n% от нормы предыдущего дня в первые 5-ть дней тренировки и на k% в остальные дни. Через сколько дней суммарный путь, который пробежал спортсмен, будет превосходить 100км?

6. Вариант

Одноклеточная амеба каждые 3 часа делится на 2 клетки. Определить, сколько клеток будет через N часов.

7. Вариант

Составить программу для нахождения корня уравнения 2x-2=0 с заданной точностью е методом половинного деления.

8. Вариант

Имеются 10 концентрических окружностей с центром в точке (a,b) радиусов 2,7,12,.... Составить программу, определяющую, принадлежит ли заданная точка хотя бы одному из имеющихся колец, если да определить номер кольца.

9. Вариант

На картинке изображен забор из 10 досок, размером 2*10дм. Левый нижний угол первой доски имеет координаты (a,b). Составить программу, определяющую, попадет ли заданная точка на одну из досок забора, если да, найти номер доски.

10. Вариант

Около стены наклонно стоит палка длиной x. Один ее конец находится на расстоянии y от стены. Напечатать таблицу значений угла A между палкой и полом для значений x, изменяющихся от 4м до 5м с шагом 0,01м и y, изменяющийся от 2м с шагом h м до тех пор, пока значение y остается меньше значения x.

11. Вариант

Определить, сколькими способами можно набрать сумму в N копеек, если использовать монеты достоинством 5,3 копейки. В каждом наборе должно быть не менее 1 монеты каждого достоинства.

12. Вариант

Предприниматель, начав дело, взял кредит размером k рублей под р процентов годовых и вложил его в свое дело. По прогнозам, его дело должно давать прибыль рублей в год. Сможет ли он накопить сумму, достаточную для погашения кредита, и если! да, то через сколько лет?

13. Вариант

У гусей и кроликов вместе лап. Сколько может быть гусей и кроликов (вывести все возможные сочетания)?

14. Вариант

Проверить численно первый замечательный предел , задав значения до тех пор, пока левая часть равенства не будет отличаться от правой менее чем на заданную погрешность .

15. Вариант

Проверить численно второй замечательный предел , задав значения . При каком исследуемое выражение отличается от менее чем на заданную погрешность .

16. Вариант

Билет называют «счастливым», если в его номере сумма первых трех цифр равна сумме последних трех цифр. Подсчитайте число тех «счастливых» билетов, у которых сумма первых трех цифр равна 1

17. Вариант

Пусть дано натуральное число . Выбросите из записи этого числа цифры 3 и 7, оставив прежним порядок остальных цифр. Например, из числа 3 171 507 377 должно получиться 115

18. Вариант

Числа последовательно поступают с устройства ввода. Все числа хранить в памяти нет необходимости; после ввода каждого числа нужно вычислить и напечатать среднее значение всех введенных чисел: .

19. Вариант

В учебном заведении задается начало учебного дня, продолжительность пары, продолжительность обычного и большого перерывов (и их «место» в расписании), количество пар. Получить расписание звонков на весь учебный день.

20. Вариант

Леспромхоз ведет заготовку деловой древесины. Первоначальный объем ее на территории леспромхоза составлял кубометров. Ежегодный прирост составляет %. Годовой план заготовки - кубометров. Через сколько лет в бывшем лесу будут расти одни опята?

21. Вариант

Численно убедиться, является ли заданная функция четной или нечетной на заданном отрезка . Учесть погрешность вычислений и возможные точки разрыва функции. Проверить, например, для функций: , , , вычисляя их на отрезке [-5;5] с шагом 0,5

22. Вариант

Утверждается, что функция периодическая с периодом . Проверить это численно, вычислив функцию с постоянным шагом на отрезке [0;5 Т ]. Учесть погрешность вычислений и возможные точки разрыва функций. Проверить на примере функций: , , .

23. Вариант

Составьте программу определения наименьшего общего кратного N натуральных чисел.

24. Вариант

В старояпонском календаре был принят 60летний цикл, состоявший из пяти 12 летних подциклов. Подциклы обозначались названиями цвета: зеленый, красный, желтый, белый и черный. Внутри каждого подцикла годы носили названия животных: крысы, коровы, тигра, зайца, дракона, змеи, лошади, овцы, обезьяны, курицы, собаки и свиньи. (1984г. – год зеленой крысы – был началом очередного цикла.) Напишите программу, которая вводит номер некоторого года нашей эры и печатает его название по старояпонскому календарю.

25. Вариант

Составьте программу, которая выводит полную запись десятичного числа 42*4*, в которой пропущены две цифры, если известно, что данное число кратно 72

Вариант0

1.Вычислить:

a) сумму натуральных чисел, начиная от 12 до N;

b) произведение натуральных чисел, начиная от 12 до N;

c) сумму натуральных чисел, начиная от 12 до тех пор, пока она не превосходит N;

d) произведение натуральных чисел, начиная от 12 до тех пор, пока оно не превосходит N.

{Лабораторная работа №3 задача 1}

Блок – схема задача 1(a) Блок – схема задача 1(c,d)

(цикл for) (цикл, while, repeat)

-
-
-
-

 

Program Lab_Rab_3_1;

Uses Crt;

Const k = 12;

var

N, i: integer;

S, P: LongInt;

Begin

ClrScr;

Write('Введите значение N= ');

Readln(N);

 

{ Реализация задачи 1(a)}}

S:= 0;

for i:= k to N do inc(S,i);

Writeln('Сумма чисел = ',S);

 

{ Реализация задачи 1(б)}}

P:= 1;

for i:= k to N do P:= P * i;

Writeln('Произведение чисел = ',P);

 

{ Реализация задачи 1(c)}}

S:= k; i:= k;

While S + i <= N do

begin

inc(i);

S:= S + i;

end;

Writeln('Сумма чисел = ',S);

 

{ Реализация задачи 1(d)}}

P:= 1; i:= k;

repeat

P:= P * i;

inc(i);

until P * i > N;

Writeln('Произведение чисел = ',P);

ReadKey;

End.

 

 

{Лабораторная работа №3 задача 2(а)}

{Модуль в котором реализована функция y}

 

Unit Func;

 

Interface

function f (x: real): extended;

 

Implementation

function f1 (x: real): extended;

begin

f1:= ln(abs(sqr(x) * x));

end;

 

function f2 (x: real): extended;

begin

f2:= sqrt(exp(x + 3));

end;

 

function f3 (x: real): extended;

begin

f3:= exp(3/2 * ln(x));

end;

 

function f;

begin

if (x < -6.8) then f:= f1(x)

else if x < 5 then f:= f2(x)

else f:= f3(x);

end;

END.

 

Program Lab_Rab_3_2;

Uses Crt, Func;

var

a,b,h,x: real;

Begin

ClrScr;

WriteLn('Введите границы интервала табулирования [a;b]');

Write('a=');

Readln(a);

Write('b=');

Readln(b);

WriteLn('Введите шаг табулирования ');

Write('h=');

Readln(h);

Writeln('| x | y(x) |');

Writeln('__________________________');

x:= a;

While x <= b do

begin

writeln('|', x:6:2,' | ', f(x):6:3,' |');

x:= x + h;

end;

Writeln('__________________________');

ReadKey;

End.

 

 

{Лабораторная работа №3 задача 2(б)}

Program Lab_Rab_3_2;

Uses Crt;

Const E = 0.001;

var

a,b,x,_x: real;

fl: boolean;

function f (x: real):real;

begin

f:= 2 * sqrt(x) - sin(0.5 * x) – 3;

end;

 

Begin

ClrScr;

Repeat В данном фрагменте программы цикл

fl:= True; оформлен для проверки корректности вво

WriteLn('Введите [a;b]'); да данных.

Write('a='); Возможен более простой вариант:

Readln(a); WriteLn('Введите границы интервала [a;b]')

Write('b='); Write('a=');

Readln(b); Readln(a);

if (a < 0) or (a >= b) then Write('b=');

begin Readln(b);

writeln('Повторите ввод!');

fl:= false;

end;

until fl;

WriteLn('Локализованные корни ');

Writeln('| x | y(x) |');

Writeln('__________________________');

_x:= a; x:= _x + E;

While x <= b do

begin

if f(_x) * f(x) <= 0 then

writeln('|', (x + _x) / 2:6:2,' | ', f((x + _x) / 2):6:3,' |');

_x:= x;

x:= _x + E;

end;

Writeln('__________________________');

ReadKey;

End.

 

{Лабораторная работа №3 задача3}

Ивана Александровича Хлестакова пригласили управлять департаментом. В первый день ему прислали 100 курьеров, а в каждый последующий в течении рабочей недели (5 дней)-в 2,а затем в 3 раза больше, чем в предыдущий. Иван Александрович согласился тогда, когда к нему прибыло сразу 30000 курьеров. На какой день Хлестаков согласился управлять департаментом?

{Лабораторная работа №3 задача 3}

Program Lab_Rab_3_3;

Uses Crt;

Const N = 30000;

m: LongInt = 100; {текущее количество новых курьеров}

var

K: integer; {количество дней}

S: LongInt; {общее текущее количество курьеров}

 

Begin

ClrScr;

WriteLn(' График ');

Writeln('| день | новых курьеров | всего |');

Writeln('_________________________________________');

K:= 1; S:= m;

writeln('| ', K:5,' | ', m: 8, ' | ', S:6,' |');

repeat

inc(K);

if K <= 5 then m:= m * 2 else m:= m * 3;

S:= S + m;

writeln('| ', K:5,' | ', m: 8, ' | ', S:6,' |');

until m > N;

Writeln('_________________________________________');

Writeln('Хлестаков согласился на ', k, ' день');

ReadKey;

End.

 

Тема 4. Массивы

Массивы представляют собой ограниченную упорядоченную совокупность однотипных величин. Каждая отдельная величина называется компонентой массива. Тип компонент может быть любым, принятым в языке ПАСКАЛЬ, кроме файлового типа. Тип компонент называется базовым типом.

Вся совокупность компонент определяется одним именем. Для обозначения отдельных компонент используется конструкция, называемая переменной с индексом или с индексами:

 

A[5] S[k+1] B[3,5].

 

В качестве индекса может быть использовано выражение. Тип индексов может быть только интервальным или перечисляемым. Действительный и целый типы недопустимы. Индексы интервального типа, для которого базовым является целый тип, могут принимать отрицательные, нулевое и положительные значения.

Массивы описываются следующим образом:

Имя типа = ARRAY [ диапазоны индексов ] OF тип элемента массива;

В качестве типа для элементов массива можно использовать любые типы Турбо Паскаля кроме файловых. Диапазоны индексов представляют собой один или несколько диапазонов, перечисленные через запятую. В качестве диапазонов индексов нельзя использовать диапазоны с базовым типом Longint.

В операторной части программы один массив может быть присвоен другому, если их типы идентичны, например:

R1:=Z.

Для ввода или вывода массива в список ввода или вывода помещается переменная с индексом, а операторы ввода или вывода выполняются в цикле.

Двумерные массивы хранятся в памяти ЭВМ по строкам. Первый индекс определяет номер строки, второй - номер столбца.

Инициализация массивов (присвоение начальных значений всем компонентам массивов) осуществляется двумя способами.

Первый способ - с использованием типизированных констант, например:

type Dim10= Array[1..10] of Real;

const

raM10: Dim10 = (0, 2.1, 4, 5.65, 6.1, 6.7, 7.2, 8, 8.7, 9.3);

 

При инициализации двумерных массивов значения компонент каждого из входящих в него одномерных массивов записывается в скобках:

type Dim3x2= Array[1..3,1..2] of Integer;

const

iaM3x2: Dim3x2= ((1, 2)

(3, 4)

(5, 6));

Второй способ инициализации - использование разновидности процедуры FillChar:

FillChar(var V; NBytes: Word; B: Byte);

Эта процедура заполняет участок памяти однобайтовым значением. Например, для обнуления массива A[1..10] of Real можно записать:

FillChar(A, 40, 0);

или

 

FillChar(A, SizeOf(A), 0);

 

ПРИМЕР: Три способа описания одного и того же типа массива:

type {1} M1 = array [0..5] of integer;

M2 = array [char] of M1;

M3 = array [-2..2] of M2;

{2} M3 = array [-2..2] of array [char] of array [0..5] of integer;

{3} M3 = array [-2..2,char,0..5] of integer;

var A:M3;

{Обращаться к элементам массива можно следующим образом:}

Begin

read (A[-1,'a',3]);

read (A[1]['x'][0]);

A[1]['c',1]:=100;

end.

Глубина вложенности, т.е. количество индексов, при определении массивов не ограничена. Играет роль только суммарный объем данных в программе. В стандартном режиме работы Турбо Паскаля этот объем ограничен размерами сегмента, т.е. 64 килобайта. Целиком над массивами допускается применение только операции присваивания массивов (подмассивов) одинаковых типов. Остальные операции должны выполняться поэлементно.

Поделиться:





Читайте также:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...