Основы программирования

  • Вид работы:
    Контрольная работа
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    18,85 Кб
  • Опубликовано:
    2012-11-23
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Основы программирования

Задача 1

Условие задачи

Заданы три корня кубического уравнения: X1, X2, X3. Найдите коэффициенты этого уравнения.

Блок-схема
















Листинг с комментариями

Program Exercise_1;

var X1, X2, X3: Real;, B, C, D: Real;('X1: ');(X1);('X2: ');(X2);('X3: ');(X3);;

A:= 1; // коэффициент при x в степени 3

B:= - (X1+X2+X3); // коэффициент при x в степени 2

C:= X1*X2+X1*X3+X2*X3; // коэффициент при x в степени 1

D:= - (X1*X2*X3); // свободный член

Writeln ('A = 1');('B = ', B:0:1);('C = ', C:0:1);('D = ', D:0:1);

Readln;

end.

Таблица исполнения

X1

X2

X3

A

B

C

D

1

2

3

1

-6

11

-6

= 1= - (1+2+3) = -6= 1*2+1*3+2*3 = 11= - (1*2*3) = -6

Таблица тестов

X1

X2

X3

A

B

C

D

5

12

4

1

-21

128

-240

10

1

8

1

-19

98

-80

2.5

3

17

1

-22.5

101

-127.5

-2

4

7

1

-9

6

56

15

-4.2

-10.8

1

0

-79.6

-680.4


Задача 2

Условие задачи

Пройдет ли кирпич со сторонами a, b и c сквозь прямоугольное отверстие со сторонами r и s? Стороны отверстия должны быть параллельны граням кирпича.

Листинг с комментариями

Program Exercise_2;

var:array [1..3] of real;:array [1..2] of real;, j:integer;:real;

// заполняем 1 массивi:=1 to 3 doi of

: Write ('Введите a: ');

: Write ('Введите b: ');

: Write ('Введите c: ');;(a[i]);;

// заполняем 2 массивi:=1 to 2 doi of

: Write ('Введите r: ');

: Write ('Введите s: ');;(b[i]);;

// сортировка 1 массиваi:=1 to 2 doj:=i+1 to 3 doa[i]<a[j] then:=a[i];[i]:=a[j];[j]:=k;

end;

// сортировка 2 массиваb[1]<b[2] then

begin:=b[1];[1]:=b[2];[2]:=k;;

// сравнение наиб. элементов массивов

if (a[2]<b[1]) and (a[3]<b[2]) then

Writeln('Пройдёт')('Не пройдёт');;.

Таблица исполнения

a

b

c

r

s

a(1)

a(2)

a(3)

b(1)

b(2)

1 and 2

Вывод

15

3

8

2

5

15

3

8

2

5

8<5 and 3<2

Не пройдет






15

8

3

5

2




8<5 - ложь и 3<2 - ложь Þ не пройдет

Таблица тестов

a

b

c

r

s

Вывод

2

7

14

6

9

Пройдет

12

5

1

2

8

Пройдет

10

13

8

14

7

Не пройдет

11

4

5

4

5

Не пройдет

7

1

6

8

2

Пройдет


Задача 3

Условие задачи

Для заданных a и p вычислить x =  по реккурентному соотношению:

, .

Сколько итераций надо выполнить, чтобы для заданной погрешности e выполнялось соотношение: ?

Блок-схема

Листинг с комментариями

Program Exercise_3;

const=0.0001;, x, xn:real;:boolean;, p:integer;kvadr (chislo:real; stepen:integer):real;:real;:integer;:=1;g:=1 to stepen do:=k*chislo;:=k;;:=true;('введите а: ');(a);('введите p: ');(p);:=a;:=0;flag do:=(1/p)*((p-1)*x+(a/kvadr (x, p-1)));abs (x-xn)<e then:=false

else

x:=xn;:=i+1;;('x = ', x:3:2);('интерации = ', i);;.

Таблица исполнения

e

a

p

x

kvadr

xn

i

0.0001

1

3

1

k

g

x

p-1

kvadr

1

1





1

1

1

2

1







1

2

1

2

1




k=1*1=1, kvadr=1=1*1=1, kvadr=1

xn = (1/3)*((3-1)*1+1/1) = 1

|1-1| = 0 < 0.0001 верно Þ x=1, i=0+1=1

Таблица тестов

a

p

x

i

5

7

1.26

13

4

9

1.17

14

12

3

2.29

8

2

15

1.05

13

8

10

1.23

22


Задача 4

Условие задачи

В массиве C(m) каждый третий элемент заменить полусуммой двух предыдущих, а стоящий перед ним - полусуммой соседних с ним элементов. Дополнительный (рабочий) массив не использовать.

Листинг с комментариями

Program Exercise_4;

Const=15;:array [1..m] of real;:integer;, i4:real;;i:=1 to m do[i]:=Random(9);i:=1 to m do (C[i]:2:0,' '); // :2:0 ноль это дробная часть

Writeln;:=3;i<=m do:=(C [i-1]+ C [i-2])/2;:=(C[i]+C [i-2])/2;[i]:=i3;[i-1]:=i4;:=i+3;;i:=1 to m do (C[i]:2:0,' '); // :2:0 ноль это дробнаячасть

Writeln;

readln;.

Таблица исполнения

С1(1)

С1(2)

С1(3)

С1(4)

С1(5)

С1(6)

С2(1)

С2(2)

С2(3)

С2(4)

С2(5)

С2(6)

3

5

1

7

0

9

3

2

4

7

8

4


С2(1) = С1(1) = 3                              С2(4) = С1(4) = 7

С2(2) = (3+1)/2 = 2                                     С2(5) = (7+9)/2 = 8

С2(3) = (3+5)/2 = 4                                     С2(3) = (7+0)/2 = 3,5 » 4

Таблица тестов

С(1)

С(1)

С(1)

С(1)

С(1)

С(1)

С(1)

С(1)

С(1)

С(1)

С(1)

С(1)

С(1)

С(1)

1

1

7

4

2

3

0

4

8

4

7

4

7

2

4

4


2

7

5

6

3

4

2

8

8

6

4

3

6

4

4

2

1

2

8

0

6

5

8

8

4

8

1

8

4

7

2


2

2

1

5

6

7

6

8

8

6

1

3

5

7

7

3

1

6

8

1

8

6

2

0

3

3

3

3

0

3


2

6

4

7

8

7

8

2

3

1

3

3

3

0

4


Задача 5

Условие задачи

Матрицу А (m, n) заполнить следующим образом. Для заданных k и l элементу akl присвоить значение 1; элементам, окаймляющим его (соседним с ним по вертикали, горизонтали и диагоналям) - значение 2; элементам следующего окаймления - значение 3 и так далее до заполнения всей матрицы.

Листинг с комментариями

Program Exercise_5;

Const n=10;=15;A: array [1..n, 1..m] of Integer;, j, r, k, l: Integer;('k= ');(k);('l= ');(l);;i:=1 to n doj:=1 to m do(abs (i-k)<abs (j-l)) then:=abs (j-l)r:=abs (i-k);[i, j]:=r+1;;('Otvet: ');i:=1 to n doj:=1 to m do(A [i, j]:3);;;;.

Таблица исполнения

k

l

A [1,1]

A [1,2]

A [1,13]

A [2,3]

A [2,4]

A [2,5]

A [10,15]

2

3

3

2

2

1

2

3

13


Таблица тестов

k

l

Сформированный массив

2

3

3

2

2

2

3

4

5

6

7

8

9

10

11

12

13



3

2

1

2

3

4

5

6

7

8

9

10

11

12

13



3

2

2

2

3

4

5

6

7

8

9

10

11

12

13



3

3

3

3

3

4

5

6

7

8

9

10

11

12

13



4

4

4

4

4

4

5

6

7

8

9

10

11

12

13



5

5

5

5

5

5

5

6

7

8

9

10

11

12

13



6

6

6

6

6

6

6

6

7

8

9

10

11

12

13



7

7

7

7

7

7

7

7

7

8

9

10

11

12

13



8

8

8

8

8

8

8

8

8

8

9

10

11

12

13



9

9

9

9

9

9

9

9

9

9

9

10

11

12

13


Задача 6

Условие задачи

Даны два целочисленных массива К(m) и L(n). Найти наибольший элемент массива K, не имеющий себе равных в массиве L.

Листинг с комментариями

Program Exercise_6;

Const m=15;=10;k: array [1..m] of Integer;: array [1..n] of Integer;, j, imax, b, r: Integer;: boolean;;i:= 1 to m do[i]:= -25 + random(75);('k: ');i:= 1 to m do(k[i]:4);;i:= 1 to n do[i]:= -25 + random(75);('l: ');i:= 1 to n do(l[i]:4);;

// сортировка массива ki:= 1 to m-1 do:= i;j:= i+1 to m dok[j]>k[imax] then:=j;:=k[i];[i]:=k[imax];[imax]:=b;;('new_k: ');i:= 1 to m do(k[i]:4);

Writeln;

// Проверяем (с max) элементы k[i] на наличие их в массиве l

r:= 1;:=true;flag and not (r=m+1) do // чтобы не выйти за пределы массиваi:=1 to n dok[r]=l[i] then

r:=r+1; // переходим к следующему элементу массива k

break;flag:=false;;flag then('net takogo');;;('Otvet: ', k[r]);

Writeln;;

end.

Таблица исполнения

Массивы

Ответ

k

-6

-10

21

31

1

33

48

-24

34

30

35

32

-2

-5

31

48

new_k

48

35

34

33

32

31

31

30

21

1

-2

-5

-6

-10

-24


l

37

26

33

49

-13

1

9

39

6

9








Таблица тестов

Массивы

Ответ

k

12

-7

49

14

-19

2

24

6

-12

44

20

25

-17

28

16

49

l

-19

43

-8

-9

32

2

10

-7

27

38







k

5

-8

20

-2

-1

-24

39

-22

23

47

15

11

17

-17

-25

47

l

2

30

36

35

36

19

10

-22

-21

24







k

-17

-4

6

49

20

-5

-19

-8

26

21

13

-12

-3

20

-7

49

l

-3

-8

-20

13

36

22

10

8

-14








Задача 7

массив уравнение итерация матрица

Условие задачи

Упорядочить по неубыванию каждую строку матрицы A (m, n), а после этого перестановкой строк упорядочить всю матрицу по неубыванию элементов первого столбца.

Листинг с комментариями

Program Exercise_7;

const=10;=10;:array [1..m, 1..n] of integer;:array [1..m] of integer;, j, p, k, t, s: integer;change (one, two: integer);: integer;i1:= 1 to n do:=a [one, i1];[one, i1]:=a [two, i1];[two, i1]:=s;;;;i:= 1 to m doj:= 1 to n do[i, j]:=Random(40);

// вывод массиваi:= 1 to m doj:= 1 to n do(a[i, j]:3);;;;

// Сортировкаi:= 1 to m doj:= 1 to n-1 dot:= 1 to n-j doa [i, t]>a [i, t+1] then:=a [i, t];[i, t]:=a [i, t+1];[i, t+1]:=s;;

// вывод массиваi:= 1 to m doj:= 1 to n do(a[i, j]:3);;;;

// заменаi:= 1 to m-1 doj:= 1 to m-i doa [j, 1]>a [j+1,1] then(j, j+1);

// вывод массиваi:= 1 to m doj:= 1 to n do(a[i, j]:3);;;;.

Таблица исполнения

Исходный массив

Промежуточный массив

Результат

1

19

6

3

22

1

3

6

19

22

0

15

20

22

33

33

20

15

0

22

0

15

20

22

33

1

3

6

19

22

27

32

6

3

39

3

6

27

32

39

1

15

22

24

24

25

17

2

18

26

2

17

18

25

26

2

17

18

25

26

24

24

15

1

22

1

15

22

24

24

3

6

27

32

39


Таблица тестов

Исходный массив

Результат

18

27

0

20

2

36

5

8

5

19

0

2

5

5

8

18

19

20

27

36

1

13

5

8

39

38

27

36

0

31

0

1

5

8

13

27

31

36

38

39

29

35

32

13

36

2

4

12

7

26

0

5

5

8

8

10

13

19

19

29

24

36

37

29

34

11

22

28

21

35

0

4

5

7

8

8

22

32

34

37

8

19

0

8

5

10

13

5

29

19

0

10

21

23

28

28

29

33

34

35

12

23

3

17

9

19

6

34

29

18

0

6

6

7

16

24

24

28

33

34

34

5

22

7

8

0

37

32

4

8

2

4

7

12

13

26

29

32

35

36

10

33

28

21

28

23

35

29

34

0

3

6

9

12

17

18

19

23

29

34

35

16

26

39

37

11

9

36

15

22

9

11

15

16

22

26

35

36

37

39

7

28

16

34

0

24

24

33

6

6

11

21

22

24

28

29

34

35

36

37


Задача 10

Условие задачи

Даны длины a, b, c сторон некоторого треугольника. Найти медианы треугольника, сторонами которого являются медианы исходного треугольника. (Длина медианы, проведенной к стороне a, равна .

Листинг с комментариями

Program Exercise_10;

Var a, b, c: Integer;, b1, c1, m1, m2, m3: Real;('a = ');(a);('b = ');(b);('c = ');(c);

// проверка существования треугольника

if (a>=b+c) or (b>=a+c) or (c>=a+b) then

begin('Net');;:= 0.5*sqrt (2*b*b+2*c*c-a*a);:= 0.5*sqrt (2*a*a+2*c*c-b*b);:= 0.5*sqrt (2*a*a+2*b*b-c*c);:= 0.5*sqrt (2*b1*b1+2*c1*c1-a1*a1);:= 0.5*sqrt (2*a1*a1+2*c1*c1-b1*b1);:= 0.5*sqrt (2*a1*a1+2*b1*b1-c1*c1);('m1 = ', m1:3:2);('m2 = ', m2:3:2);('m3 = ', m3:3:2);;nd.


Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!