Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практикум1_2014.doc
Скачиваний:
19
Добавлен:
25.02.2016
Размер:
1.79 Mб
Скачать

Interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ExtCtrls, jpeg;

type

TForm1 = class(TForm)

Button1: TButton;

Image1: TImage;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Button2: TButton;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Edit1KeyPress(Sender: TObject; var Key: Char);

procedure FormActivate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

Implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

var

i,n,m,x,y,man,women,pm,pw,k:integer;

begin

Form1.Image1.Canvas.Brush.Color:=clWhite;

n:=strtointdef(Form1.Edit1.Text,0);

m:=round(sqrt(n));

image1.Height:=(m+1)*42;

image1.Width:=(m+1)*50;

Image1.Canvas.Rectangle(0,0,image1.Width,image1.Height);

if n>121 then

begin

Form1.Edit1.Text:='121';

n:=121;

end;

man:=strtointdef(Form1.Edit2.Text,0);

women:=strtointdef(Form1.Edit3.Text,0);

pm:=man div 4;

if man mod 4>0 then

pm:=pm+1;

pw:=women div 4;

if women mod 4>0 then

pw:=pw+1;

if (pw+pm<=n) and (pw+pm<>0) then

begin

x:=1;

y:=1;

for i:=1 to n do

begin

Form1.Image1.Canvas.Rectangle(x*50-40,y*40-30,x*50,y*40);

inc(x);

if x>m then

begin

inc(y);

x:=1;

end;

end;

x:=1;

y:=1;

k:=0;

for i:=1 to n do

begin

if k=0 then

begin

if man>0 then

Form1.Image1.Canvas.Brush.Color:=clBlue

else

Form1.Image1.Canvas.Brush.Color:=clWhite;

Form1.Image1.Canvas.rectangle(x*50-35,y*40-25,x*50-30,y*40-20);

dec(man);

if man>0 then

Form1.Image1.Canvas.Brush.Color:=clBlue

else

Form1.Image1.Canvas.Brush.Color:=clWhite;

Form1.Image1.Canvas.rectangle(x*50-15,y*40-25,x*50-10,y*40-20);

dec(man);

if man>0 then

Form1.Image1.Canvas.Brush.Color:=clBlue

else

Form1.Image1.Canvas.Brush.Color:=clWhite;

Form1.Image1.Canvas.rectangle(x*50-35,y*40-15,x*50-30,y*40-10);

dec(man);

if man>0 then

Form1.Image1.Canvas.Brush.Color:=clBlue

else

Form1.Image1.Canvas.Brush.Color:=clWhite;

Form1.Image1.Canvas.rectangle(x*50-15,y*40-15,x*50-10,y*40-10);

dec(man);

if man<=0 then k:=1;

end

else

begin

if women>0 then

Form1.Image1.Canvas.Brush.Color:=clRed

else

Form1.Image1.Canvas.Brush.Color:=clWhite;

Form1.Image1.Canvas.rectangle(x*50-35,y*40-25,x*50-30,y*40-20);

dec(women);

if women>0 then

Form1.Image1.Canvas.Brush.Color:=clRed

else

Form1.Image1.Canvas.Brush.Color:=clWhite;

Form1.Image1.Canvas.rectangle(x*50-15,y*40-25,x*50-10,y*40-20);

dec(women);

if women>0 then

Form1.Image1.Canvas.Brush.Color:=clRed

else

Form1.Image1.Canvas.Brush.Color:=clWhite;

Form1.Image1.Canvas.rectangle(x*50-35,y*40-15,x*50-30,y*40-10);

dec(women);

if women>0 then

Form1.Image1.Canvas.Brush.Color:=clRed

else

Form1.Image1.Canvas.Brush.Color:=clWhite;

Form1.Image1.Canvas.rectangle(x*50-15,y*40-15,x*50-10,y*40-10);

dec(women);

end;

inc(x);

if x>m then

begin

inc(y);

x:=1;

end;

end;

end

else

Form1.Image1.Canvas.TextOut(10,10,'Невозможно разместить больных');

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

Close;

end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);

var

edit:tedit;

begin

edit:=sender as tedit;

case key of

'0'..'9',#8:;

#13: case edit.TabOrder of

1:Form1.Edit2.SetFocus;

2:Form1.Edit3.SetFocus;

3:Form1.button1.SetFocus;

end;

else

key:=#0;

end;

end;

procedure TForm1.FormActivate(Sender: TObject);

begin

edit1.SetFocus;

end;

end.

Результат выполнения приложения показан на рис. 1.12.

Если количество палат превышает 121, то оно считается равным 121 палате. Рекомендуем самостоятельно изучить данное приложение. Приведенное решение содержит операторы цикла да еще с внутренними ветвлениями, поэтому таких решений можно требовать от учащихся при выполнении второй или даже пятой лабораторных работ.

Рис.1.12 Результат выполнения программы

Задания

1. Треугольник задан координатами вершин. Составьте программу, которая вычисляет коэффициенты уравнения какой-либо прямой, делящей треугольник на два равновеликих треугольника. Проверьте корректность задания координат треугольника.

2. Треугольник задан координатами вершин. Составьте программу, которая вычисляет площадь данного треугольника. Проверьте корректность задания координат треугольника.

3. Два прямоугольника заданы координатами вершин. Составьте программу, которая определяет находится ли второй прямоугольник внутри первого.

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

5. Окружность задана координатами центра и радиусом. Составьте программу, которая определяет координаты точек пересечения данной окружности с прямой ax + by + c=0.

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

7. Прямоугольник задан координатами своих вершин. Определите, принадлежит ли окружность с заданным радиусом и координатами центра области прямоугольника.

8. Даны длины сторон треугольника. Определите, является ли данный треугольник прямоугольным.

9. Напишите программу, запрашивающую возраст пользователя. Если ему не менее 18 лет, сообщите, что он имеет право голосовать, в противном случае вычислите, через сколько лет ему будет предоставлено это право.

10. Напишите программу, которая спрашивала бы сокращенное имя, а печатала полное пяти ваших друзей. Ввод незнакомого имени должен провоцировать заявление типа: «Я С ВАМИ НЕЗНАКОМА». Ответ, содержащий сокращенное имя, помещается в символьную переменную, а затем сравнивается последовательно с сокращенными именами пяти знакомых. Если введенное имя совпадает с каким-либо из использованных в программе, то вывести соответствующее полное имя.

11. Составьте программу для определения подходящего возраста кандидатуры для вступления в брак, используя следующее соображение: возраст девушки равен половине возраста мужчины +7, возраст мужчины определяется соответственно как удвоенный возраст девушки –14. В начале выполнения программы на экране должен появиться вопрос: МУЖЧИНА или ЖЕНЩИНА? ВВЕДИТЕ М, если Вы мужчина, или Ж, если женщина, и свой возраст. В зависимости от ответа выводятся соответствующие рекомендации.

12. Заданы координаты двух точек. Определите, расположены ли они на одной окружности с центром в начале координат. Результат присвойте символьной переменной. Две точки находятся на одной окружности, если длины радиус-векторов, соединяющих эти точки с началом координат, равны (проверку на равенство осуществите с точностью до е = 1.0Е-3).

13. Введите номер месяца в году. Выведите на экран сообщение о времени года.

14. Введите номер дня недели. Выведите на экран название дня.

15. В киоске продается газета стоимостью 3 коп. и журнал стоимостью 20 коп. Составьте программу, которая спрашивает о желании покупателя (журнал или газета?), принимает деньги (сумма денег вводится с клавиатуры) и печатает причитающуюся сдачу. Покупателю нужно задать, по крайней мере, 2 вопроса: 1. «ЧТО ХОТИТЕ КУПИТЬ? ЖУРНАЛ ИЛИ ГАЗЕТУ?» После ввода ответа нужно показать стоимость соответствующего издания и задать вопрос: 2. «СКОЛЬКО ВЫ ПЛАТИТЕ?» Сумму денег покупателя введите с клавиатуры (в числовую переменную). Далее сравнивается эта сумма со стоимостью покупки и печатается соответствующее итоговое сообщение.

16. Даны радиус круга и сторона квадрата. Проверьте, пройдет ли квадрат в круг?

17. Введите три числа, найдите наименьшее отношение пар этих чисел.

18. Даны радиус круга и сторона квадрата. Проверьте, пройдет ли круг в квадрат?

19. Функция sign(x) задана аналитически следующим образом:

Введите значение х, выведите значение функции sign(x).

20. На плоскости расположена окружность радиусом R с центром в начале координат. Введите заданные координаты точки и определите, находится ли она на окружности. Результат присвойте символьной переменной. Точка находится на окружности, если длина радиус-вектора, соединяющего начало координат с заданной точкой, равна R (проверку на равенство осуществите с точностью до е = 1.0Е-3).

21. Напишите программу, печатающую корни квадратного уравнения ax2 + bx + c = 0. Если уравнение не имеет корней, то выведите соответствующее сообщение.

22. Даны координаты точки М(х, у). Определите, принадлежит ли данная точка замкнутому множеству D (рис. 1.13).

23. Даны координаты точки М(х, у). Определите, принадлежит ли данная точка замкнутому множеству D (рис. 1.14). ΔABC – равносторонний.

Рис. 1.13 Рис. 1.14

24. Даны координаты точки М(х, у). Определите, принадлежит ли данная точка замкнутому множеству D (рис. 1.15).

25. Даны координаты точки М(х, у). Определите, принадлежит ли данная точка замкнутому множеству D (рис. 1.16).

Рис. 1.15 Рис. 1.16

26. Даны координаты точки М(х, у). Определите, принадлежит ли данная точка замкнутому множеству D, заданному системой ограничений:

27. Даны координаты точки М(х, у). Определите, принадлежит ли данная точка замкнутому множеству D (рис. 1.17).

Рис. 1.17

28. Введите два положительных числа и покажите, что среднее арифметическое этих чисел не меньше их среднего геометрического.

29. Введите два положительных числа и покажите, что среднее геометрическое этих чисел не меньше их среднего гармонического.

30. Даны длины трех отрезков. Определите, можно ли из этих отрезков сложить треугольник.

31. Даны длины сторон треугольника. Определите, является ли данный треугольник равнобедренным.

32. Даны длины сторон треугольника. Определите, является ли данный треугольник равносторонним.

33. Даны длины сторон треугольника. Определите, является ли данный треугольник разносторонним.

34. Даны в градусах величины двух углов треугольника. Определите, является ли данный треугольник равнобедренным.

35. Найдите наибольшее значение из трех f(1), f(2) и f(3), где f(x) = sin(5x).

36. Даны в градусах величины двух углов треугольника. Определите, является ли данный треугольник остроугольным.

37. Вывести какой-либо вопрос и несколько возможных ответов на него, один из которых верный. После ввода пользователем номера ответа, который он считает верным, выдать сообщение о правильности его выбора.

38. Вывести какой-либо вопрос и несколько возможных ответов на него, некоторые из которых верные. После ввода пользователем номеров ответов, которые он считает верными, выдать сообщение о правильности его выбора.

Задания второго уровня

1. Решите задание №37 из заданий первого уровня, используя компоненты RadioButton.

2. Решите задание №37 из заданий первого уровня, используя компоненты RadioGroup.

3. Решите задание №38 из заданий первого уровня, используя компоненты CheckBox.

4. Напишите программу, запрашивающую у тренера сборной колледжа по лыжам время в минутах и секундах (с точностью до сотых долей секунды) трех победителей 10-километ-ровой гонки. Если какие-то результаты различаются меньше, чем на секунду, напечатать:

ВОТ ТАК БОРЬБА ШЛА ЗА ___________ МЕДАЛЬ!

5. Введите значение х. Расположите в порядке убывания значения x·sin(x), ln.

6. На доске игры в шашки стоят две шашки разного цвета: первая белая, вторая черная. Их координаты заданы номерами столбцов и строк, на которых они находятся. Определите результат партии при наилучших ходах белой и черной шашек.

7. Напишите программу нахождения наибольшего из трех заданных чисел a, b, c, не использующую условного оператора и оператора выбора, а также стандартных функций max и min модуля math. Другими словами, программа должна быть линейной.

8. Треугольник задан координатами вершин. Определите, принадлежит ли точка с заданными координатами области треугольника?

9. Треугольник задан координатами вершин. Определите находится ли отрезок внутри данного треугольника.

10. Определите количество общих точек у двух отрезков, заданных координатами своих концов.

11. Две окружности заданы своими радиусами и координатами центра. Определите количество общих точек у этих окружностей.

12. Треугольник задан длинами сторон. Определите, пройдет ли данный треугольник, как бы его не поворачивали, в квадрат с заданной стороной.

13. Треугольник задан координатами вершин. Определите, принадлежит ли начало координат области треугольника.

14. Определите, сколько общих точек у прямой y = kx + b и окружности x2 + y2 = R2.

15. Два прямоугольника заданы длинами своих сторон. Определите, можно ли уместить один из них внутри другого.

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

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

18. Напишите программу решения неравенства ax2+bx+c<0.

19. Определите, принадлежит ли хотя бы одна сторона одного треугольника какой-либо стороне другого треугольника. Треугольники заданны координатами своих вершин.

20. Два прямоугольника заданы координатами своих вершин. Найдите площадь фигуры, являющейся пересечением этих прямоугольников.

21. Определите, сколько общих точек у прямой y = kx + b и треугольника, заданного координатами своих вершин.

22. Определите площадь фигуры, заданной неравенством

|x - a| + |y - b| ≤ c.

23. Время, которое показывают часы задано в часах, минутах и секундах. Определите, через сколько секунд часовая и минутная стрелки совместятся.

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

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

26. Ведите дату своего рождения и текущую дату. Определите количество прожитых Вами дней.

27. Треугольник задан координатами своих вершин. Определите наибольший угол треугольника.

28. Прямые заданы уравнениями у11х + b1 и у22х + b2. Найти расстояние от начала координат до точки пересечения этих прямых.

29. Введите название логической операции (and, or, xor). Выведите таблицу истинности логического выражения

a операция b.

30. Прямые заданы уравнениями у11х + b1 и у22х + b2. Найдите наименьший угол, образуемый данными прямыми.

31. Дана некоторая денежная сумма А, руб. Определите, сколькими способами можно представить данную сумму «пятерками» и/или «десятками».

32. Даны угловые коэффициенты трех лучей, выходящих из одной точки. Определите, является ли второй луч биссектрисой угла, образованного первым и третьим лучами.

33. Даны угловые коэффициенты двух пар лучей. Первый и второй лучи выходят из одной точки. Аналогично, третий и четвертый также выходят из одной точки. Определите, являются ли углы, образованные каждой парой лучей, равными между собой.

34. Два прямоугольника заданы координатами своих вершин. Определите, параллельны ли стороны одного прямоугольника сторонам другого прямоугольника.

35. Два треугольника заданы координатами своих вершин. Определите, можно ли из этих треугольников составить прямоугольник.

36. Два треугольника заданы координатами своих вершин. Определите радиус, описанной окружности, какого треугольника больше.

37. Два треугольника заданы координатами своих вершин. Определите радиус, вписанной окружности, какого треугольника больше.

38. Треугольник задан координатами своих вершин. Определите длину большей стороны треугольника.

39. Треугольник задан координатами своих вершин. Определите длину большей медианы треугольника.

40. Треугольник задан координатами своих вершин. Определите длину меньшей стороны треугольника.

41. Треугольник задан координатами своих вершин. Определите длину меньшей высоты треугольника.

42. Треугольник задан координатами своих вершин. Определите величину в градусах большего угла треугольника.

43. Треугольник задан координатами своих вершин. Определите величину в градусах меньшего угла треугольника.

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

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

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

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

48. Дано трехзначное натуральное число. Определите, является ли сумма цифр данного числа четной.

49. Дано трехзначное натуральное число. Определите, является ли вторая цифра числа наибольшей.

50. Дано трехзначное натуральное число. Получите наименьшее число, составленное из цифр данного числа.

51. Даны два натуральных числа. Определите, является ли одно из них делителем другого.

52. На шахматной доске стоят две шахматных фигуры. Их координаты заданы номерами столбцов и строк, на которых они находятся. Одна из них - шахматный конь. Определите, может ли конь побить другую фигуру.

53. На шахматной доске стоят две шахматных фигуры. Их координаты заданы номерами столбцов и строк, на которых они находятся. Одна из них - шахматный слон. Определите, может ли слон побить другую фигуру.

54. На шахматной доске стоят две шахматных фигуры. Их координаты заданы номерами столбцов и строк, на которых они находятся. Одна из них - шахматный король. Определите, может ли король побить другую фигуру.

55. На шахматной доске стоят две шахматных фигуры. Их координаты заданы номерами столбцов и строк, на которых они находятся. Одна из них - шахматная ладья. Определите, может ли ладья побить другую фигуру.

56. На шахматной доске стоят две шахматных фигуры. Их координаты заданы номерами столбцов и строк, на которых они находятся. Одна из них - шахматная пешка. Определите, может ли пешка побить другую фигуру.

57. На шахматной доске стоят две шахматных фигуры. Их координаты заданы номерами столбцов и строк, на которых они находятся. Одна из них - шахматная пешка. Определите, может ли пешка стать следующим ходом ферзем.

58. На шахматной доске стоят две шахматных фигуры. Их координаты заданы номерами столбцов и строк, на которых они находятся. Одна из них - шахматный конь. Определите, за какое число ходов конь может побить другую фигуру.

59. На шахматной доске стоят две шахматных фигуры. Их координаты заданы номерами столбцов и строк, на которых они находятся. Одна из них - шахматный ферзь. Определите, за какое число ходов ферзь может побить другую фигуру.

60. На доске игры в шашки стоят шашки разного цвета: первая белая, вторая черная. Их координаты заданы номерами столбцов и строк, на которых они находятся. Определите, может ли белая шашка следующим ходом стать дамкой.

61. На доске игры в шашки стоят шашки разного цвета: первая белая, вторая черная. Их координаты заданы номерами столбцов и строк, на которых они находятся. Определите, может ли белая шашка следующим ходом побить черную шашку.

62. На доске игры в шашки стоят две шашки разного цвета: первая белая, вторая черная. Их координаты заданы номерами столбцов и строк, на которых они находятся. Определите, может ли белая шашка при наилучших ходах черной шашки стать дамкой.

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

64. В каждой больничной палате четыре койки. Введите количество палат, количество больных мужчин и количество больных женщин. Сколько больных мужского пола можно еще положить в больницу?

65. В каждой больничной палате четыре койки. Введите количество палат, количество больных мужчин и количество больных женщин. Сколько больных женского пола можно еще положить в больницу?

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

Лабораторная работа 2

Простые циклы с заданным числом повторений

Цель работы: формирование первичных умений в разработке простых циклических программ с заданным числом повторений.

Что нужно знать для выполнения работы

1. Структуру цикла, назначение и порядок следования его отдельных частей.

2. Структуры: цикл-пока и цикл-повторить.

3. Операторы цикла while … do, repeat … until, for … do.

Примеры выполнения задания лабораторной работы

Пример 1. Составьте программу, находящую значение n! (n факториал) по формуле n!=1.2.3.....n.

Решение. Алгоритм решения данной задачи может быть одним из следующих (рис. 2.1 и 2.2).

Рис. 2.1. Схема алгоритма программы

(вариант 1 «цикл пока»)

Рис. 2.2. Схема алгоритма программы

(вариант 2 «цикл повторить»)

Приведенные схемы удобно изображать с использованием символов «начало цикла» и «конец цикла» (рис. 2.3 и 2.4).

Рис. 2.3. Схема алгоритма программы

(вариант 3 «цикл пока»)

Рис. 2.4. Схема алгоритма программы

(вариант 4 «цикл повторить»)

Для управления циклом с заданным числом повторений обычно используют оператор цикла For. Схема алгоритма в этом случае может быть такой, как показано на рис. 2.5.

Рис. 2.5. Схема алгоритма программы (вариант 5 «цикл-для»)

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

Приведем три реализации данных алгоритмов с использованием различных операторов цикла.

program lr2_1_1;

{Нахождение значенияF= n!}

{$APPTYPE CONSOLE}

uses

SysUtils;

var

i,n:integer;

F:int64;

begin

writeln('Vvedite n ');

readln(n);

F:=1;

i:=1;

while i<=n do

begin

F :=F*i;

inc(i);

end;

writeln(n,'!=',F:12);

readln;

end.

program lr2_1_2;

{Нахождение значенияF= n!}

{$APPTYPE CONSOLE}

uses

SysUtils;

var

i,n:integer;

F:int64;

begin

writeln('Vvedite n ');

readln(n);

F:=1;

i:=0;

repeat

inc(i);

F :=F*i;

until i>n;

writeln(n,'!=',F:12);

readln;

end.

program lr2_1_3;

{Нахождение значенияF= n!}

{$APPTYPE CONSOLE}

uses

SysUtils;

var

i,n:integer;

F:int64;

begin

writeln('Vvedite n ');

readln(n);

F:=1;

for i:=1 to n do

F :=F*i;

writeln(n,'!=',F:12);

readln;

end.

Пример 2. Найдите n-й член ряда Фибоначчи. Члены ряда Фибоначчи можно вычислить по формуле a1 = a2 = 1, ai = ai-1 + ai-2, для i > 2.

Решение. Приведем вариант решения данной задачи с использованием трех переменных для вычисления членов ряда (рис. 2.6).

a:=1

b:=1

Цикл для

i от 3 до n

i

c:=a+b

a:=b

b:=c

Рис. 2.6. Схема алгоритма программы

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

program lr2_2_1;

{Найти n-й член ряда Фибоначчи}

{$APPTYPE CONSOLE}

uses

SysUtils;

var

i,n,a,b,c :word;

begin

write('n= ');

readln(n);

a:=1;b:=1;

for i:=3 to n do

begin

c:=a+b;

a:=b;

b:=c;

end;

writeln('F(n)= ',b:8);

readln;

end.

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

Задания

Выделите повторяющиеся действия (цикл). Выберите управляющую переменную цикла. Составьте список переменных программы. Составьте схему и программу для решения задачи. В программе предусмотрите вывод заголовка. Выполните программу вручную, заполняя таблицу выполнения. Проверьте работу программы на ЭВМ.

1. Вычислите S= 2n, где nN.

2. Вычислить гдеmN.

3. Напечатайте таблицу стоимости порций сыра весом 50, 100, 150, ..., 1000 г (цена 1 кг 280 руб.)

4. Вычислите приближенно площадь фигуры, ограниченной функцией у = x2 и прямой у = 25, разбивая интервал изменения x на 100 частей и суммируя площади прямоугольников с основанием, равным 0,10 и высотой, определяемой значением функции в середине основания (высота прямоугольника в точке x равна 25 – x2).

5. Начав тренировки, спортсмен в первый день пробежал 10 км. Каждый следующий день он увеличивал дневную дистанцию на 10 % от дистанции предыдущего дня. Какой суммарный путь пробежит спортсмен за N дней?

6. Определите суммарный объем (в литрах) 12-ти вложенных друг в друга шаров со стенками 5 мм. Внутренний диаметр внутреннего шара равен 10 см. Считайте, что шары вкладываются друг в друга без зазоров.

7. Вычислите сумму

8. Пусть n – натуральное число и пусть n!! означает 1 · 3 · · ... · n для нечетного n и 2 · 4 · ... · n для четного n. Для заданного натурального n вычислите n!!

9. Вычислите сумму

10. Найдите n-й член ряда Фибоначчи, элементы которого вычисляются по формулам: a1 = a2 = 1; ai = ai-1 + ai-2, (i > 2).

П р и м е ч а н и е. Для нахождения членов ряда используйте только две переменные а и b.

11. Найдите сумму n-членов ряда Фибоначчи (задание 10), используя также только две переменные для нахождения суммы ряда.

12. Выведите на экран таблицу значений: 1, 1 + h, 1 + 2h, … 1 + nh.

13. Проверьте формулу

14. Проверьте формулу

15. Вычислите сумму

16. Вычислите число сочетаний из n по m

17. Вычислите число размещений из n по m

18. Выведите на экран таблицу значений функции y=ax для х, изменяющегося от a до b с шагом h.

19. Вычислите сумму

20. Вычислите сумму

21. Вычислите сумму

22. Вычислите произведение Р = 1 · 3 · 5 · 7 · … · (2n + 1) для заданного n.

23. Вычислите произведение Р = 2 · 4 · 6 · 8 · … · 2n для заданного n.

24. Вычислите сумму S = 1 · 3 + 3 · 5 + 5 · 7 + … + (2n – 1) (2n + 1) для заданного n.

25. Вычислите произведение S = (1 + 3) · (3 + 5) · … · ((2n – – 1) + (2n + 1)) для заданного n.

26. Выведите на экран элементы последовательности an = = an-1 + nd для n, изменяющегося от 1 до k, a0 = 0; k и d заданные натуральные числа.

27. Вычислите сумму А = 1 + (1 + 2) + (2 + 3) + (3 + 4) + … + ((n – 1) + n)

28. Составьте таблицу умножения для заданного числа N, которая содержит результаты умножения 1 · N, 2 · N, ..., N · N.

29. Напечатайте таблицу значений функции y = x3 при изменении x в интервале от A до B с шагом H.

30. Проверьте формулу

Задания второго уровня

1. Проверьте справедливость неравенства для заданного n.

2. Проверьте справедливость неравенства для заданного n.

3. Вычислите значение интеграла по общей формуле трапеций с заданным числом разбиений.

П р и м е ч а н и е. Общая формула трапеций имеет вид:

4. Вычислите значение интеграла по общей формуле Симпсона с заданным числом разбиений.

П р и м е ч а н и е. Общая формула Симпсона имеет вид:

5. Решите задачу Коши для обыкновенного дифференциального уравнения на отрезке [0; 1] при условии у(0) = 0 методом Эйлера, разбивая отрезок интегрирования на n частей.

П р и м е ч а н и е. Расчетная формула метода Эйлера имеет вид:

yn+1 = yn + hnf(xn,yn).

6. Решите задачу Коши для обыкновенного дифференциального уравнения на отрезке [0; 1] при условии у(0) = 0 усовершенствованным методом Эйлера, разбивая отрезок интегрирования на n частей.

7. Покажите, что при всех натуральных n число n3 + 2n кратно 3.

8. Вычислите сумму

9. Вычислите сумму

10. Вычислите сумму

11. Вычислите сумму

12. Вычислите произведение

13. Вычислите сумму

14. Проверьте справедливость неравенства для заданного k.

15. Покажите, что при всех натуральных n число n3 + 2n кратно 3.

16. Покажите, что при всех натуральных n число

кратно 19.

17. Покажите, что при всех натуральных n число

кратно 37.

18. Вычислите значение интеграла по общей формуле левых прямоугольников с заданным числом разбиений.

П р и м е ч а н и е. Формула левых прямоугольников имеет вид:

19. Вычислите значение интеграла по общей формуле правых прямоугольников с заданным числом разбиений.

П р и м е ч а н и е. Формула правых прямоугольников имеет вид:

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

Простые циклы с неизвестным числом

повторений

Цель работы: формирование первичных умений в разработке простых циклических программ с неизвестным числом повторений.

Что нужно знать для выполнения работы

1. Структуру цикла, назначение и порядок следования его отдельных частей.

2. Структуры: цикл пока и цикл повторить.

3. Операторы цикла while … do, repeat … until.

Примеры выполнения задания лабораторной работы

Пример 1. Составьте программу нахождения наибольшего общего делителя двух чисел с помощью алгоритма Евклида.

Решение. В соответствии с алгоритмом Евклида (рис. 3.1)

НОД(a, b) = НОД(max(a, b)-min(a, b), min(a, b)).

Рис. 3.1. Схема алгоритма программы

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

program lr3_1_1;

{Алгоритм Евклида нахождения НОД(m,n)(на вычитание)}

{$APPTYPE CONSOLE}

uses

SysUtils;

var

m,n,a,b:word;

begin

write('Vvedite dva chisla ');

readln(m,n);

a:=m;

b:=n;

while a<>b do

if a>b then

a:=a-b

else

b:=b-a;

writeln('НОД(',m,',',n,')= ',a:4);

readln;

end.

Пример 2. Вычислите значение функции y = sin(x) с точностью с помощью разложения функции в ряд Маклорена:

.

Решение. В соответствии с признаком Лейбница данный знакопеременный ряд сходится. На практике при вычислении значения суммы ряда обычно ограничиваются конечным числом членов. Если ряд знакопеременный, то ошибка при замене суммы сходящегося знакопеременного ряда суммой нескольких его членов меньше модуля первого из отброшенных членов. Таким образом, достаточно накапливать сумму до тех пор, пока модуль очередного члена не станет меньше требуемой точности.

Разделив n-й член ряда на (n – 1)-й, получим множитель, на который нужно умножить предыдущий член, чтобы получить следующий: (рис. 3.2).

Рис. 3.2. Схема алгоритма программы

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

program lr3_2_1;

{Вычислить значение функции y=sin(x) с точностью eps разложением ее в ряд Маклорена}

{$APPTYPE CONSOLE}

uses

SysUtils;

var

n :integer;

eps,x,y,an :real;

begin

write('Vvedite x и eps ');

readln(x,eps);

y:=x;

an:=x;

n:=0;

while abs(an) >=eps do

begin

inc(n);

an:=-an*sqr(x)/(2*n*(2*n+1));

y:=y+an;

end;

writeln('x= ',x:8:4,' eps= ',eps:8:4,' y= ',y:8:4,' n= ',n);

readln;

end.

В данной лабораторной работе нет отдельных заданий второго уровня. Таковыми можно считать те же задания, выполненные с использованием компонентов Delphi и обработкой различных событий. Например, для рассмотренного примера, можно организовать вывод промежуточных результатов в таблицу (компонент StringGrid страницы Additional). Обработать события Form.Activate для вывода заголовков шапки таблицы, события KeyPress при вводе исходных данных, создать защищенный блок для обработки ошибки конвертирования.

Примечание: защищенный блок try-except работает только при запуске exe файла или из среды Delphi при отключении флажка Integrated debugging (меню Tools\Debugger Options…).

Форма приложения приведена на рис. 3.3.

Рис. 3.3 Форма примера 3_2

Текст Unit-a

unit Unit1;

{Вычислите значение функции y = sin(x) с точностью eps

с помощью разложения функции в ряд Маклорена}