Задание 3. Циклические вычислительные процессы

advertisement
МИНИСТЕРСТВО СЕЛЬСКОГО ХОЗЯЙСТВА РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
«ИЖЕВСКАЯ ГОСУДАРСТВЕННАЯ СЕЛЬСКОХОЗЯЙСТВЕННАЯ АКАДЕМИЯ»
УТВЕРЖДАЮ
Проректор по учебной
работе, профессор
П.Б.Акмаров
_______________
«___»___________2009г.
ИНФОРМАТИКА
Методические указания для самостоятельной работы
студентов очной формы обучения по выполнению
индивидуальных заданий
Составители:
И.Г.Абышева, М.В.Николаева, А.Г.Семёнова
Ижевск
ФГОУ ВПО Ижевская ГСХА
2009
Методические указания подготовлены в соответствии с Государственным
образовательным стандартом высшего профессионального образования, утвержденным 17.03.2000г.
Методические указания рассмотрены и рекомендованы к изданию редакционно-издательским советом ФГОУ ВПО Ижевская ГСХА, протокол
№_____от_______________2009г.
Рецензент:
С.А.Данилина − к.э.н., доцент кафедры Бухгалтерский учёт и аудит ФГОУ ВПО
Ижевская ГСХА.
Составители:
Абышева И.Г., Николаева М.В., Семёнова А.Г. – ст.преподаватели каф. ЭКИТ
Информатика: Методические указания для самостоятельной работы студентов
очной формы обучения по выполнению индивидуальных заданий / Сост.
И.Г.Абышева, М.В.Николаева, А.Г.Семёнова. – Ижевск: ФГОУ ВПО Ижевская
ГСХА, 2009. – 59 стр.
Методические указания содержат варианты заданий для выполнения индивидуальных работ, образцы выполнения заданий по системам счисления и кодированию информации, краткие сведения об алгоритмизации и программированию. Приводится краткое описание техники работы в интегрированной среде на
языке программирования Turbo Pascal, справочная информация, примеры блоксхем и программ к выполнению индивидуальных заданий.
© ФГОУ ВПО Ижевская ГСХА, 2009
© Абышева И.Г., Николаева М.В.,
Семёнова А.Г., сост., 2009
2
СОДЕРЖАНИЕ
ВВЕДЕНИЕ ...................................................................................................................... 4
ИНДИВИДУАЛЬНАЯ РАБОТА № 1............................................................................ 5
Задание 1. Системы счисления (СС) ............................................................................. 5
Задание 2. Кодирование и единицы измерения информации ..................................... 6
ИНДИВИДУАЛЬНАЯ РАБОТА № 2............................................................................ 7
Задание 1. Запись математических выражений на алгоритмическом языке ............ 7
Задание 2. Запись арифметических выражений в математической форме ............... 8
Задание 3. Циклические вычислительные процессы. Вычисление значений
функции при различных значениях аргумента (табулирование функции) ............... 9
Задание 4. Циклические вычислительные процессы. Решение задач, содержащих
вычисление конечных сумм и произведений ............................................................. 11
Задание 5. Разветвление в цикле .................................................................................. 12
Задание 6. Обработка одномерных массивов ............................................................. 17
Задание 7. Обработка двумерных массивов ............................................................... 18
МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ПО ВЫПОЛНЕНИЮ
ИНДИВИДУАЛЬНЫХ ЗАДАНИЙ ............................................................................. 20
ИНДИВИДУАЛЬНАЯ РАБОТА № 1.......................................................................... 20
Задание 1. Системы счисления .................................................................................... 20
Задание 2. Кодирование и единицы измерения информации ................................... 23
ИНДИВИДУАЛЬНАЯ РАБОТА № 2.......................................................................... 24
Графический способ представления алгоритма ......................................................... 24
Интегрированная среда отладки и создания программ на языке
программирования Turbo Pascal .................................................................................. 25
Основные символы ........................................................................................................ 26
Типы данных .................................................................................................................. 27
Ввод и вывод данных .................................................................................................... 28
Задание 1. Запись математических выражений на алгоритмическом языке .......... 29
Задание 2. Запись арифметических выражений в математической форме ............. 29
Задание 3. Циклические вычислительные процессы. Вычисление значений
функции при различных значениях аргумента (табулирование функции) ............. 30
Задание 4. Циклические вычислительные процессы. Решение задач, содержащих
вычисление конечных сумм и произведений ............................................................. 35
Задание 5. Разветвление в цикле .................................................................................. 38
Задание 6. Обработка одномерных массивов ............................................................. 41
Задание 7. Обработка двумерных массивов ............................................................... 48
Наиболее распространенные сообщения об ошибках ............................................... 56
Контрольные вопросы по теме «Алгоритмизация и программирование» .............. 57
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ ..................................................... 58
3
ВВЕДЕНИЕ
Методические указания предназначены для студентов очной формы обучения, изучающих основы работы на персональных компьютерах в рамках курса
«Информатика».
Методические указания состоят из двух индивидуальных работ и методических рекомендаций по их выполнению.
Индивидуальная работа № 1 состоит из двух заданий на темы: «Системы
счисления» и «Кодирование и единицы измерения информации». Целью выполнения индивидуальных заданий является приобретение умений и навыков самостоятельной работы с позиционными системами счисления и использование знаний в применении правил перевода числа из одной системы счисления в другую,
выполнение арифметических операций в позиционных системах счисления, понимание процесса кодирования информации и определение количества информации в различных единицах измерения.
Индивидуальная работа № 2 состоит из семи заданий на тему: «Алгоритмизация и программирование на языке Turbo Pascal». Задание 1 и 2 «Запись математических выражений на алгоритмическом языке и в математической форме»;
Задание 3 и 4 «Циклические вычислительные процессы»; Задание 5 «Разветвление
в цикле»; Задание 6 «Обработка одномерных массивов» и Задание 7 «Обработка
двумерных массивов». Целью выполнения индивидуальных заданий является
приобретение умений и навыков самостоятельной работы по программированию
на алгоритмическом языке высокого уровня Turbo Pascal и анализу результатов
работы программ, опыта взаимодействия с вычислительной машиной и её
устройствами.
Для выполнения заданий 3 − 7 необходимо выполнить следующие этапы:
1) Выполнение математической постановки задачи;
2) Разработка алгоритма решения задачи в виде графической схемы;
3) В соответствии с разработанной схемой алгоритма написать текст
(листинг) программы;
4) Набор программы и её запуск на выполнение на компьютере;
5) Проверка полученных результатов, если результатов нет или они неверны, исправление ошибок и запуск программы на выполнение.
По окончании работы составляется отчет по индивидуальному заданию.
Требования по оформлению отчёта:
1) Оформляется на листах формата А4 (21 × 29,7 см);
2) На титульном листе указывается Ф.И.О. студента, номер группы и вариант индивидуального задания;
3) Основная часть может быть оформлена как в напечатанном виде, так
и вручную, в которой для каждого задания описываются:
а) условие задачи;
б) блок-схема решения задачи (выполняется с помощью линейки или ПК);
в) текст (листинг) отлаженной на компьютере программы;
г) полученные результаты.
4
ИНДИВИДУАЛЬНАЯ РАБОТА № 1
Задание 1. Системы счисления (СС)
1) Данные два числа переведите в восьмеричную СС методом деления целой
части и умножения дробной части (с точностью до 2 знаков после запятой).
2) Полученные числа переведите из восьмеричной в двоичную систему счисления,
из двоичной в шестнадцатеричную систему счисления (по таблице соответствия).
3) С двоичными числами выполните сложение и вычитание.
4) Результаты сложения и вычитания переведите в десятичную систему счисления.
5) Данные десятичные числа сложите и вычтите, сравните с полученными Вами
результатами в пункте №4. Сделайте вывод.
№ варианта
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
1-е число
179,45
314,26
37,382
93,148
456,13
45,282
823,27
74,361
435,75
45,932
374,12
31,564
381,28
70,415
621,14
42,184
354,15
58,614
539,42
71,145
515,38
67,626
413,15
25,175
545,37
53,124
553,29
61,723
626,54
63,519
915,32
34,822
753,13
57,238
5
2-е число
17,651
46,285
134,75
218,27
75,481
324,97
49,813
196,12
63,127
248,57
82,431
148,13
24,389
358,47
39,723
249,23
19,316
115,45
35,841
114,32
42,623
225,14
48,314
149,78
89,213
218,56
38,173
204,24
29,451
345,14
39,129
149,38
37,325
261,07
Задание 2. Кодирование и единицы измерения информации
1) Определите общее количество информации в битах, байтах, килобайтах, которое содержится в Вашей ФАМИЛИИ, ИМЕНИ, ОТЧЕСТВЕ и № группы.
2) Закодируйте все буквы русского алфавита числами от 1 до 33. Используя полученные числа, запишите последовательность цифр, соответствующих Вашей
ФАМИЛИИ и ИМЕНИ. Выберите из этой последовательности четыре трехзначных числа подряд, начиная с первой цифры Вашей ФАМИЛИИ. Считать полученные числа целыми. Переведите их в двоичную систему счисления методом деления, а в восьмеричную, шестнадцатеричную системы счисления
по таблице соответствия. Проверьте правильность перевода (2-ой, 8-ой
и 16-ой СС).
6
ИНДИВИДУАЛЬНАЯ РАБОТА № 2
Задание 1. Запись математических выражений на алгоритмическом языке
1.
2.
x y
x  z 7x

e
x 1/ 2
xy
12.
3,01x  e 2 x
y
5
z
1 z 
1
a
1  x2
13.
3.
( x n )m  2  x n
x y
14.
4.
a  b  n
x
1
5.
a
a  b mn
sin
m
15.
 ln 2 x
16.
(a 2  b 2 k )  (3n  x 2 y )
x y
1  xy
7.
8.
e
17.
2 x  y 
e
x y
r
x y

x 1
  arctg 2 z

 0,15 sin e  z
2
a x  y / 2 
x  1  y  n / 2 
e
y 1
3
cos x 2  sin 2 y
18.
2x
 e x y
1  sin( x  y)
19.
( tga  | b |) 3
( a  b) 2
x
x2
1
3  (2 x) 3
 sin 2 7 x
9.
(ln a  e 2 )  3
ctgb
20.
10.
 b  b2  4ac
2a
21.
2x
 e x y
1  sin( x  y)
22.
11.
ln  y

ln x  xy
x2
x
1  sin 2 ( x  y )
x 2  x3
y x
x2
2
x 
4
( x  y)
m
z  t 2  xyz
6.
sin x
0,49e a
7
2
b 2
 ln 2 cos a 2
x y
x  z 7x

e
x 1/ 2
xy
23.
29.
sin x
cos x 2  sin 2 y
ln x  xy
3,01x  e 2 x
24.
25.
x
x2
1
3  2 x  3
( tga  | b |) 3
( a  b) 2
26.
a
27.
r
x y / 2
x y
3
y
5
z
1 z
1
a
1 x2
31.
(a 2  b 2 k )(3n  x 2 y )
2
32.
x2
x
1  sin 2 ( x  y)
33.
xy
1  xy
( x  y)
28.

ln  y

x 1
x
z  t 2  xyz
x  1  y  n / 2
e
y 1
 0,15 sin e  z
30.
34.
arctg 2 z

e 2 x  y 
x 2  x3
e
x y
sin 2 7 x
Задание 2. Запись арифметических выражений в математической форме
sqrt(exp(x-y)+
+exp(abs(y+z)*ln(x)))
1(11,21)
а) b/sqrt(a*a+b)
б)
2(12,22)
а) (a+b)/(c-1)+sqrt(a)+exp(5*ln(c))
б) exp((1/3)*ln(u))+sqrt(v+z)
3(13,23)
а) exp(a*ln(1/b))+exp((b/c)*ln(a))
б) ln(y+sqrt(abs(x)*(1/3)))
4(14,24)
а) (a*exp(b*ln(a))+exp(c*ln(b)))/2*x
б)
5(15,25)
а) exp(b*ln(a))-exp((c/2)*ln(b))
6(16,26)
а)
7(17,27)
8(18,28)
9(19,29)
abs((a/b)*exp(c*ln(b)))+
+c/exp(4*ln(d*p))
(exp(y*ln(x))+
а)
+exp(z*ln(y)))/a+exp(5*ln(b))
exp((1/3)*ln(x/3))+
а)
+exp(3*ln(r))+2*x
а) a / b*exp(5*ln(b))+exp(4*ln(х))
10(20,30) а) (d*c)/(2/r)+exp(3*ln(х))
8
abs(exp((y/x)*ln(x))-exp((1/3)*ln(y / x)))
sqrt(exp(5*ln(x1-x2))+
б)
+exp(3*ln(y1 - y2)))
exp(abs(x-y))+(x*ln(2*x)+
б)
+sin(z)/cos(z))
б) (5*cos(x)/sin(x)–arctan(y))/4
sqrt(exp(a)+(exp(3*ln(x))))/
/cos(exp(4*ln(a)))
sqrt(sin(exp(5*ln(u)))+
б)
+abs(cos(v)))
exp((1 + sin(y))*
б)
*ln(abs(cos(x)+cos(y))))
б)
Задание 3. Циклические вычислительные процессы. Вычисление значений
функции при различных значениях аргумента (табулирование функции)
Составьте блок-схемы алгоритмов решения задач и программы на языке
Turbo Pascal разными способами с использованием:
1) операторов условного (IF) и безусловного переходов (GOTO);
2) цикла с предусловием (WHILE);
3) цикла с постусловием (REPEAT);
4) цикла с параметром (FOR).
1.
8.
Z  a  5( x3  cos x) ,
X  z z  z2  a ,
a=3,8;
a=18;
10≤x≤20 ∆x=2
0≤z≤10 ∆z=2
2.
tg (4  3x)
9.
cos x  b  x 2
,
ln x  1
b=4,2;
1≤x≤11 ∆x=2
arctg ( y)  y  15,8
X 
,
c
с=5;
-10≤y≤10 ∆y=2
10.
ax 6
Z
 cos x ,
x
3
x  tg ( x)  x
Y
,
a
a=15;
1≤x≤11 ∆x=2
c
Y
,
x cos2 x  tg 2 x
с=48;
1≤x≤21 ∆x=4
x
Y  e x sin x 
d ,
ln( x  1)
d=28;
1≤x≤31 ∆x=5
11.
x2
Z
 cos( x  1,5)3 ,
a
a=1,1;
-6≤x≤6 ∆x=2
12.
Y  btg 2 x 
Y
x 1
b,
b=20;
-12≤x≤12 ∆x=3
3.
4.
5.
6.
7.
Y  ln x 
ctgx
x
b ,
Y
a=16;
2≤x≤20 ∆x=3
18
,
sin( x / b)
b=17,5;
1≤x≤11 ∆x=2
13.
Y  tg 2 ( x  b) 
b
,
xb
b=3,4;
-1≤x≤1 ∆x=0,2
14.
Z  ( y  x) 
y  1/ x
,
1  ( y  x) 2
y=18,64;
1≤x≤10 ∆x=1
b=25,6;
1≤x≤81 ∆x=10
9
15.
3
5
a  x  ln x
Y
,
a
24.
Y  b( x  1  x 2 )  sin x ,
25.
Z  ln( x  y)  12.87 x3 ,
26.
y=18;
1≤x≤19 ∆x=2
18.
Z  x(sin x3  cos 2 y) ,
X
ctg (5  y )
a,
y
Z x
cos x
,
b
22.
Y  sin( x 2  a)  x / a ,
a=1,1;
1≤x≤1,6 ∆x=0,05
Y
tg ( x 2  1)
x
d,
28.
Y  e x cos x 
e a  e x
,
2,8ax
а=0,4;
10≤x≤15 ∆x=2
Y
ln x
,
c
c=4,2;
1≤x≤2,4 ∆x=0,1
29.
Z
x2
 cos( x  a) 3 ,
a
a=1,1;
0,4≤x≤1,6 ∆x=0,15
30.
Y  m  tgt  sin t ,
m=2;
2,2≤t≤3,2 ∆t=0,1
31.
Y  x 2  b  b 2  sin(
b=0,9;
0,8≤x≤1,7 ∆x=0,15
d=5,3;
10≤x≤16 ∆x=0,5
23.
x 2  b  b 2 sin( x  b) / x ,
Z  x 2 ( x  1) / b  sin 2 ( x  b) ,
b=3,4;
0,6≤x≤1,4 ∆x=0,05
b=6,5;
2,5≤x≤3 ∆x=0,05
21.
Y
27.
a=5,8;
10≤y≤50 ∆y=5
20.
Y  xa  a / x ,
b=17;
2≤x≤3 ∆x=0,1
y=0,5;
0,3≤x≤1,8 ∆x=0,15
19.
,
a=5;
1≤x≤10 ∆x=1
b=8;
-5≤x≤5 ∆x=1
17.
ln x  ln x
c=5;
2≤x≤5 ∆x=0,5
a=3,7;
1≤x≤5 ∆x=0,5
16.
Y
x2  c
32.
10
ln | a  x |
,
ln( a  2)  ln x
а=9,5
5≤x≤20 ∆x=2,5
Z
xb
),
x
Задание 4. Циклические вычислительные процессы. Решение задач,
содержащих вычисление конечных сумм и произведений
Составьте блок-схемы алгоритмов решения задач и программы на языке
Turbo Pascal с использованием цикла с предусловием, с постусловием и цикла с
параметром.
n
2
n  1 4 n 1
n
3
n 1 n 4
25.
n
2
n  1 100  n
2
10
26.  n
2 х 1
х  1 2 х 1
5  n 2 1 
27. 




n
n 1 

16. 
t
2
t  1 t 5
28. 
40
17.   x 2  5 
10 n n 2 10
29. 
10
n 1
2
10
6.  n
55
 2 n1 
18. 

ln 
2
n

1
n5 

10 
10 
30. 
 ln n  2 
n 1 
n2 
 n 2 1 
7. 10
 ln  2 
n 1  n 
2
5
19.  x  2
10
31.  1 n
3 n 1
2
n 1 2n
3
2
6
20.  n  n
5  2
x
32. 
x  
 100 
x 1
10
17
1. 
13. 
20
5 
2.   x 2 

2
14. 
40
3.   5 
2
15. 
x 2 
x  1
x  1 x
8 
10
4.  x 3 ln x
x 1
1
n
20
5. 
n 1
n 1
n5
20
8. 
n
2
n  2 n 1
10
2n
10. 
2
n  1 4 n 1
20
9. 
1
n  1 n ln (n 1)
15
11. 
10
12. 
n2
n
ln (n 1)
9
20
x 1
n2
5
21. 
t 1
x2 
x 0,25
n
t
t 2 8

10
n 1
2 x 1
x  1 2 x 1

n2
n 5
2
t
34. 
2
t  3 t 2
15
n
2
n  1 10  n
3
23. 
n 1
3 n
n
n 1
33. 
20
24. 
n 1
12
22. 
8
n2 10
n 1
1
n  1 n (ln n 100)
20
x  1
n
4

n2
n (n 1)
11
Задание 5. Разветвление в цикле
Составьте блок-схемы алгоритмов решения задачи и программы на языке
Turbo Pascal с использованием цикла с предусловием, с постусловием,
используя, условный оператор IF.
1. Вычислите значения функции Z
Z 
х
( х  2,3) 2
 t  1,2 ;

x  2  t ;
ln(t 2  1) ;

t 3
t 3
5. Вычислите значения функции F
F  at 3  bt
х5
 х  5;

t   х 3  3 х  2; 0  х  5
12  2 x 2 ;
х0

t  [1;8] t  0,5
a  3,2; b  1,7
x  [ 5;10] x  1,5
2. Вычислите значения функции T
6. Вычислите значения функции Z
t3
T  2 y  5,3 y
2
Z  2  7y
x  [16; 0] x  2
х 1
2 х  6;

y   х  ln x; 1  x  3
ln( 1  x 2 ) ; х  3

x  [2; 4] x  0,5
3. Вычислите значения функции У
7. Вычислите значения функции Т
Y  2,2 x 4  0,3x
T  12  2 y 2
t 1
2t  6;

x   t  ln t ;
1 t  3
ln (1  t 2 ) ;
t 3

t  [0; 6] t  0,5
3х  24;

y  x ;
 х 3  1;

x  [2; 9] x  0,5
4. Вычислите значения функции Z
8. Вычислите значения функции W
 х  2,2 ; х  100

Z  3,5 х ;
100  х  200
ах 3  0,7 х; х  200

a  0,5
W  Z 2  0,75 Z  0,25
 х 2  7;

y  2 х ;
7  x ;

х  2
 11  х  2
х  11
x  3t 2  0,5
t  [5;10] t  0,5
х3
3 х 8
х 8
 y3 ;
у 1


Z   у 2  у; 1  у  2
 у  ln у; у  2


y  [0; 5] y  0,5
12
9. Вычислите значения функции Z
Z  5 y  7, 2 y 2
12. Вычислите значения функции F
F  5 y2

ах;
х3

y   х  а; х  3
х
 ;
х3
а
a  1,5
x  [1; 8] x  0,5
 2 7
х  2,3
х  х2 ;


y  ах3  7 х ;
х  2,3

ln( x  7 x ) ; х  2,3


a  1,5
10. Вычислите значения функции Z
13. Вычислите значение функции Z
x  [1; 5] x  0,5
Z  w2  1
Z  2 y 1
х x  a ;
хa

w   х  ln (ax) ; х  a
ax 2 ;
хa

a  2,5
x  [1; 5] x  0,5
 x
;
x  2,5

x

1

y  ln( x 2  1); 1,5  x  2,5


2 x  1;
x  1,5
x  [1,1; 2,7] x  0,1
11. Вычислите значения функции У
14. Вычислите значения функции W
а
2
 i  bi  c; i  2,5

W  i ;
2,5  i  3
ai  bi 3 ;
i3


a  3,4; b  3,5; с  5,2
Y  x  12 x  x
2

t 2  2 t ;

x  t ;

1
ln t  ;
t

t  Z  ln Z
Z  [1;10] Z
t2
2t 5
t 5
i
1
xa
x  [0;12] x  1
13
15. Вычислите значения функции W
18. Вычислите значения функции У
W  3y2  5
Y  8 x 3  0,5 x
х0
2 х ;

y  3 x 2  2 x;
4 х  2 ;

0 х4
х4
3t  0,6; t  1

x   t 8 ; 1 t  3
ln (1  t ) ; t  3

x  [5; 5] x  1
t  [1; 6] t  0,5
16. Вычислите значения функции Z
19. Вычислите значения функции У
Z  at 2  bt  1
Y

уa
у  y  a ;

t  ay 2 ;
у a
у
 ;
уa
a
a  2,5; b  0,4
y  1; 5 y  0,5
17. Вычислите значения функции Z
Z  15 y  7,2 y 2
ах 2  5;

х
y    а2 ;
а
ln (ax) ;
a  4,5
t2  4
t 1
t  [1; 6] t  0,5
x
х  0,3
х  0,3
х  0,3
х3  1
х2 1
ai 2  bi;
 2
x  i  0,5 i ;

 ai  i ;
a  2,2; b  0,3
i  1; 6 i  0,5
i4
i4
i4
20. Вычислите значения функции У
а  b
х  15
 x ;

а  b
y
;
15  x  25
x

1

а  ln ( x); x  25


a  8,2; b  0,3
x  3t  t
t  [5; 22] t  3
14
21. Вычислите значения функции У
25. Вычислите значения функции W
аt 2  b ; t  0

Y   b ;
t0
аt ;
t0

х
t c
2
x  [8;10] x  0,2
W  Z3  Z2 5
а  7,25
b  13,47
 х 2  t; х  t

Z   x3  t 2 ; х  t
2 x  3t ; х  t

t2
c  4,51
x  [3; 3] x  0,5
22. Вычислите значения функции F
26. Вычислите значения функции Т
F  Z 2  0,75 Z  0,25
T  2Q 3  Q 2
 y 2  2 у; у  10

Z   у 2  у ; 10  у  20
 у  ln у; у  20

1,5 x 2 ;
х2

Q  1,8 ах;
х 2
( x  2) 2  6; х  2

a  2,3
x  [1; 5] x  0,5
y  2 x2  5х
x  [1; 5] x  0,5
23. Вычислите значения функции Z
Z  3W 2
27. Вычислите значение функции Z
 at 2  bt ; t  0,2


W  at  b ;
t  0,2

2
t  0,2
 at  b
a  2,5; b  0,8
t  [1;1] t  0,2
24. Вычислите значения функции Z
4f2
Z
2 f
х х  а ;
хa


y   x  ln (ax); х  а
ах 2 ;
хa


a  2,5
x  [2; 7] x  0,5
Z  y4  5
28. Вычислите значения функции S
S  12Q 3  7 Q
bx  ln bx;

Q  1 ;
bx  ln bx;

b  1,5
 ха;
х  0,3

f  5 х;
х  0,3
ln (| x  a |) ; х  0,3

a  2,3
x  [1; 5] x  0,5
x  [1; 2,2] x  0,1
15
x  1,4
x 1,4
x  1,4
29. Вычислите значение функции W
32. Вычислите значения функции Z
W  at 2  bt
Z  5 y  7,2 y 2  6
ax  b;

t   х  1;
ln x;

х  2,5
2,5  х  5
х5
a  3; b  0,5
x  [0; 6] x  0,5
 ax ;

y  х  a ;
ln (a  x);

х  0,3
х  0,3
х  0,3
a  2,8
x  [0,5; 0,5] x  0,1
30. Вычислите значение функции T
33. Вычислите значения функций Z
T  w3  3
6 х 2  2 х;

Z  ln x ;
5 x 2

 у2 ;
у0

w  10  у ; 0  у  2
ln y ;
у2

y  [1; 6] y  0,5
31. Вычислите значения функции Z
х  15
15  х  20
x  20
a  5,3
x  at 2  e t
t  [2; 3] t  0,1
34. Вычислите значения функции F
Z a y
F  bd  ln d


2
х  3,2
ax  bx  c;
 a
y    x 1;
x  3,2
x

 a  bx
;
x  3,2

 x  1
a  1,8; b  0,5; с  3,5
a  b
x  2,3
 x ;

a  b
d
;
2,3  х  5
x

1

ax 2  bx; х  5


a  2,7; b  0,3
x  [1; 8] x  0,5
x  [1; 5] x  0,25
16
Задание 6. Обработка одномерных массивов
Составьте блок-схему алгоритма решения задачи и программу на языке
Turbo Pascal.
1. В массиве Y(7) найдите положительные элементы и среднее арифметическое
этих элементов.
2. В массиве В(5) определите сумму положительных элементов и их количество.
3. В массиве А(8) найдите максимальный и минимальный элементы и их порядковые номера.
4. В массиве S(7) найдите произведение максимального и минимального элементов и их порядковые номера.
5. В массиве X(8) найдите все отрицательные элементы и замените их на 1.
6. В массиве А(6) найдите сумму максимального и минимального элементов и их
порядковые номера.
7. В массиве Е(8) определите элементы равные Ø, их количество и порядковые
номера.
8. В массиве S(6) найдите максимальный элемент, его порядковый номер и разницу с последним элементом.
9. В массиве В(7) найдите сумму элементов больших 1 и их порядковые номера.
10. В массиве С(8) найдите сумму элементов меньших 1 и их количество.
11. В массиве С(9) найдите произведение положительных элементов и их
количество.
12. В массиве В(7) найдите произведение отрицательных элементов и их порядковые номера.
13. В массиве А(6) найдите минимальный элемент, его порядковый номер и разницу с первым элементом.
14. В массиве D(8) найдите произведение элементов больших 1 и их порядковые
номера.
15. В массиве D(9) замените все отрицательные элементы противоположными.
16. В массиве В(8) найдите разницу между максимальным элементом и первым.
17. В массиве F(9) найдите минимальный и максимальный элементы, их порядковые номера и разницу между ними.
18. В массиве Е(8) найдите сумму положительных элементов и их порядковые
номера.
19. В массиве D(8) найдите сумму положительных элементов, стоящих на чётных
местах.
20. В массиве Е(8) найдите произведение отрицательных элементов, стоящих на
нечётных местах.
21. В массиве Е(7) определите количество элементов массива, больших среднего
арифметического всех его элементов.
22. В массиве H(9) найдите положительные элементы, увеличьте их в два раза и
определите их порядковые номера.
23. В массиве В(8) найдите минимальный элемент и замените его на 1.
17
24. В массиве С(9) найдите все отрицательные элементы, возведите их в квадрат и
определите их количество.
25. В массиве D(6) найдите разницу между максимальным элементом и вторым
элементом массива.
26. В массиве Е(8) найдите сумму элементов массива больших 5 и определите их
порядковые номера.
27. В массиве А(6) найдите минимальный и максимальный элементы массива и
возведите их в квадрат.
28. В массиве С(7) отсортируйте все элементы по убыванию.
29. В массиве С(10) найдите произведение элементов массива больших 10 и определите их количество.
30. В массиве В(10) найдите сумму элементов меньших 1 и их порядковые номера.
31. В массиве W(9) найдите сумму квадратов положительных элементов.
32. В массиве А(6) замените все положительные элементы на 5.
33. В массиве А(8) найдите сумму максимального элемента с его порядковым номером.
34. В массиве F(9) найдите разницу между минимальным элементом и его порядковым номером.
Задание 7. Обработка двумерных массивов
Составьте блок-схему алгоритма решения задачи и программу на языке
Turbo Pascal.
1. В матрице А(4×4) определите минимальный элемент каждой строки.
2. В матрице В(4×5) определите в каждом столбце произведение положительных
элементов.
3. В матрице D(5×5) определите в каждой строке сумму отрицательных
элементов.
4. В матрице F(5×6) определите максимальный элемент в каждом столбце.
5. В матрице H(6×5) определите в каждой строке произведение положительных
элементов.
6. В матрице С(5×5) элементы, стоящие на главной диагонали, замените минимальным элементом, лежащим ниже главной диагонали.
7. В матрице K(4×4) определите сумму квадратов положительных элементов
главной диагонали.
8. В матрице M(4×4) элементы, лежащие выше главной диагонали, замените максимальным элементом главной диагонали.
9. В матрице N(5×4) определите в каждом столбце сумму отрицательных
элементов.
10. В матрице P(5×5) определите в каждом столбце количество положительных
элементов.
11. В матрице V(6×5) элементы, лежащие ниже главной диагонали, уменьшите на
максимальный элемент.
12. В матрице F(4×4) замените строки столбцами.
18
13. В матрице B(5×5) все положительные элементы, стоящие на главной диагонали, замените на Ø.
14. В матрице S(5×6) определите в каждой строке количество отрицательных
элементов.
15. В матрице В(5×5) определите произведение элементов четных столбцов.
16. В матрице T(4×4) определите в каждом столбце произведение отрицательных
элементов.
17. В матрице D(3×3) найдите произведение элементов больших 1 в каждом
столбце.
18. В матрице U(4×5) определите в каждой строке количество положительных
элементов.
19. В матрице V(5×5) определите в каждой строке произведение отрицательных
элементов.
20. В матрице X(5×5) определите произведение положительных элементов главной диагонали.
21. В матрице Y(4×4) определите минимальный и максимальный элементы и
найдите их разницу.
22. В матрице Z(4×5) определите сумму отрицательных элементов чётных строк.
23. В матрице B(5×4) определите сумму положительных элементов нечётных
столбцов.
24. В матрице C(5×5) определите сумму отрицательных элементов, лежащих выше главной диагонали.
25. В матрице D(5×6) определите произведение элементов имеющих чётные индексы.
26. В матрице T(4×4) найдите в каждой строке максимальный элемент и поменяйте его местами с элементом главной диагонали.
27. В матрице F(5×5) все положительные элементы, лежащие выше главной диагонали, увеличьте на максимальный элемент.
28. В матрице K(6×6) определите сумму элементов нечётных столбцов.
29. В матрице M(4×4) все элементы уменьшите на минимальный элемент.
30. В матрице P(5×5) определите произведение положительных элементов главной диагонали.
31. В матрице В(5×5) определите сумму отрицательных элементов, лежащих ниже
главной диагонали.
32. В матрице S(5×5) определите произведение элементов нечётных строк.
33. В матрице T(5×6) определите произведение элементов чётных столбцов.
34. В матрице R(6×5) определите в каждой строке сумму отрицательных элементов.
19
МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ПО ВЫПОЛНЕНИЮ
ИНДИВИДУАЛЬНЫХ ЗАДАНИЙ
ИНДИВИДУАЛЬНАЯ РАБОТА № 1
Задание 1. Системы счисления
Система счисления (СС) – способ представления чисел посредством цифр
(символов). Любая система счисления характеризуется основанием – количеством
цифр, используемых для записи числа. Двоичная система счисления используется
для представления информации в памяти компьютера, а восьмеричная и шестнадцатеричная − для сокращенной записи двоичных кодов. Между различными системами счисления существует определенная математическая связь, что позволяет
осуществлять действия с числами в любой системе счисления и получать верный
результат.
Правила перевода десятичных чисел в другие системы счисления
1. Чтобы перевести целое десятичное число в двоичную или другую СС, необходимо данное число разделить на основание новой СС, полученное частное снова
разделить на это основание и т.д. до тех пор, пока частное не будет меньше делителя. Последнее частное дает старшую цифру числа в новой СС, остальными
цифрами будут остатки от деления, взятые в порядке, обратном их получению.
2. Чтобы перевести дробную часть десятичного числа в двоичную или другую СС,
необходимо данную дробную часть последовательно умножать на основание новой системы счисления. Умножаются только дробные части числа. Дробь в новой
системе запишется в виде целых частей получаемых произведений, начиная с
первого сомножителя. Перевод дробных чисел осуществляется с определенной
погрешностью.
86,31 (10) → 126,23 (8)
86 (10) → 126 (8)
0,31 (10) → 0,23 (8)
86∟8
80 10∟8
6 8 1
2
0, 31
8
2, 48
*
8
3, 84
3. Для более быстрого перевода чисел между двоичной, восьмеричной и шестнадцатеричной системами счисления используют таблицу соответствия (таблица 2).
Чтобы перевести двоичное число в восьмеричную (шестнадцатеричную) систему,
необходимо разбить его на группы по три (четыре) разряда, начиная от запятой в
разные стороны, и каждой группе поставить в соответствие восьмеричную
(шестнадцатеричную) цифру по таблице соответствия.
86,31 (10) → 126,23 (8) → 1010110,010011 (2) → 56,4С (16)
*
20
4. Чтобы перевести число из двоичной, восьмеричной или другой СС в десятичную, необходимо данное число разложить в ряд по степеням основания системы
счисления.
1010110,010011 (2)→1*26+0*25+1*24+0*23+1*22+1*22+1*21+0*20+0*2-1+1*2-2+
6 5 4 3 2 1 0 -1 -2 -3 -4 -5 -6
+0*2-3 +0*2-4 +1*2-5 +1*2-6=64+0+16+0+4+2+0+0+0,25+0+0,03+0,02=86,3(10)
Арифметические действия в двоичной системе выполняются так же, как и в десятичной. Но если в десятичной СС перенос и заём осуществляется по десять единиц, то в двоичной − по две единицы. В таблице 1 представлены правила сложения и вычитания в двоичной СС.
1) При сложении в двоичной системе СС двух единиц в данном разряде
будет Ø и появится перенос единицы в старший разряд.
2) При вычитании из нуля единицы производится заём единицы из старшего
разряда, где есть 1. Единица, занятая в этом разряде, даёт две единицы в разряде,
где вычисляется действие, а также по единице, во всех промежуточных разрядах.
1. Сложение
2. Вычитание
1001110101, 011
- 11011101011, 001
+
11110110, 010
10101101, 011
1101101011, 101
11000111101, 110
Таблица 1 − Арифметика в двоичной системе счисления
Сложение
Вычитание
0+0=0
1+0=1
0+1=1
1 + 1 = 10
0–0=0
1–0=1
1–1=0
10 – 1 = 1
Таблица 2 − Таблица соответствия СС
Десятичная
Двоичная
Восьмеричная
Шестнадцатеричная
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
000
001
010
011
100
101
110
111
1000
1001
1010
1011
1100
1101
1110
1111
0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
0
1
2
3
4
5
6
7
8
9
А
В
С
D
E
F
21
ПРИМЕР:
Даны два числа: 437,49 и 19,63
1) Перевод десятичного числа в восьмеричную систему счисления:
437,49
437∟8
432 54∟8
5 48 6
6
*
19,63
19∟8
16 2
3
*
0, 49
8
3, 92
*
8
7, 36
437, 49 (10) → 665, 37 (8)
0, 63
8
5, 04
*
8
0, 32
19, 63 (10) → 23, 50 (8)
2) Перевод полученных чисел из восьмеричной системы счисления в двоичную и
шестнадцатеричную, используя таблицу соответствия (таблица 2):
437, 49 (10) → 665, 37 (8) → 110110101, 011111 (2) → 1В5, 7С (16)
19, 63 (10) → 23, 50 (8) → 10011, 101000 (2) → 13, А (16)
3) Арифметические действия в двоичной системе счисления:
+
110110101, 011111
10011, 101000
111001001, 000111
-
110110101, 011111
10011, 101000
110100001, 110111
4) Перевод числа из двоичной системы счисления в десятичную:
111001001, 000111 → 1*2 8+1*2 7+1*2 6+1*2 3+1*2 0+1*2 -4+1*2 -5 +1*2 -6=
8 7 6 5 4 3 2 1 0
-1 -2 -3 -4 -5 -6
= 256+128+64+8+1+0,06+0,03+0,02 = 457,11 (10)
110100001, 110111 →
8 7 6 5 4 3 2 1 0
1*2 8+1*2 7+1*2 5+1*2 0+1*2 -1+1*2 -2+1*2 -4+1*2 -5+1*2 -6=
-1 -2 -3 -4 -5 -6
= 256+128+32+1+0,5+0,25+0,06+0,03+0,02 = 417,86 (10)
5) Проверка с полученными результатами:
437, 49
19, 63
457, 12
437, 49
19, 63
417, 86
+
-
Вывод:
В результате проверки получена погрешность в дробной части на 0,01. Погрешность уменьшается от увеличения количества действий умножения в дробной
части при переводе чисел из десятичной в другую систему счисления.
22
Задание 2. Кодирование и единицы измерения информации
Для автоматизации работы с данными различных типов необходимо унифицировать форму их представления посредством кодирования. В вычислительной
технике применяется двоичное кодирование. Двоичные цифры (binary digit) –
1 или Ø – биты. Бит – это один двоичный разряд, вмещающий наименьшее возможное количество дискретной информации. Большинство операций в компьютере выполняется над группами из 8, 16, 32, 64 разрядов. Группа из 8 разрядов (бит)
называется байт. Байт является основной машинной единицей информации. Байт
кодирует один символ (букву, цифру, знак, пробел). Для измерения объемов информации используют также более крупные единицы:
1 килобайт (Кб)=1024 байт=210 байт
1 мегабайт (Мб) = 220 байт
1 гигабайт (Гб) = 230 байт
ПРИМЕР:
1) ИВАНОВ ИВАН ИВАНОВИЧ
20 символов = 20 байт; 20×8 = 160 бит; 20/1024 = 0,0195 Кбайт
2)
И
10
В
3
А
1
Н
15
О
16
В
3
И
10
В
3
А
1
Н
15
Полученные четыре трехзначные целые числа: 103, 115, 163, 103
103 (10) → 1100111(2) → 147 (8) → 67 (16)
103∟2
102 51∟2
1 50 25∟2
1 24 12∟2
1 12 6∟2
0 6 3∟2
0 2 1
1
Проверка:
1100111 (2) → 1*2 6 +1*2 5 +0*2 4 +0*2 3 + 1*2 2 +1*2 1 +1*2 0 =
6 5 4 3 2 1 0
= 64 + 32 + 0 + 0 + 4 + 2 + 1 = 103 (10)
147 (8) → 1*8 2 +4*8 1 +7*8 0 = 64 + 32 + 7 = 103 (10)
2 1 0
67 (16) → 6*16 1 +7*16 0 = 96 + 7 = 103 (10) и т.д. с остальными полученными числами.
1 0
23
ИНДИВИДУАЛЬНАЯ РАБОТА № 2
Графический способ представления алгоритма
Блок-схема – это графическое изображение алгоритма, состоящее из множества
блоков, соединенных между собой линиями переходов, определяющими очередность выполнения действий. Блочные символы имеют различное графическое
изображение в зависимости от выполнения ими действий. В каждом блоке с помощью формул или слов записываются выполняемые операции.
Таблица 3 − Специальные графические символы
Название блока
Обозначение
Пояснение
Вычислительное
действие или последовательность
действий
Блок обработки
(действия)
Логический блок
(условия)
да
нет
Блок начала цикла
(модификация)
Начало цикла
Блок вызова
вспомогательного
алгоритма
Блок ввода
и вывода данных
Блок начала
и конца алгоритма
Проверка условий
НАЧАЛО
КОНЕЦ
Блок вывода
на печать
Вычисления по
подпрограмме,
стандартной
подпрограмме
Ввод-вывод в общем виде, обмен с
внешними
устройствами
Начало, конец алгоритма, вход и
выход
в подпрограмму
Вывод результатов
на печать
24
Интегрированная среда отладки и создания программ на языке
программирования Turbo Pascal
После запуска turbo.exe появляется основной информационный экран среды Turbo Pascal, состоящий из трех частей:
Главное меню – для выбора режима работы системы: ввод программы, компиляция, выполнение, отладка и т.д.
Окно редактора – содержит текст программы.
Строка состояния – расшифровываются основные функциональные клавиши
в текущем режиме работы системы.
Таблица 4 − Список основных команд и горячих клавиш
Меню File
New − открывает новое окно редактора и связывает его с именем
NONAMEOO.PAS
Open (F3) − открыть существующий файл
Save (F2) – записывает содержимое активного окна редактора в дисковый файл
Save as − записывает содержимое активного окна редактора в дисковый файл под
другим именем
Save all – записывает содержимое всех окон редактора в соответствующие дисковые файлы
Change dir − позволяет изменить текущий каталог пользователя
Exit (Alt+X) − выход из оболочки
Меню Edit
Undo (Alt+BackSpace) − возврат к предыдущему действию
Redo − отмена Undo
Сopy (Ctrl + Ins) − копирование в буфер
Cut (Shift+Del) − удалить в буфер
Paste (Shift+Ins) − вставить из буфера
Clear (Ctrl+Del) − удаляет из окна редактора выделенный блок, но не помещает его в
буфер
Меню Run
Run (Ctrl+F9) − осуществляет компиляцию, компоновку и исполнение (прогон)
программы из файла редактора
Step Over (F8) − выполнить программу по шагам
Меню Compile
Compile (Alt+F9) − компилирует (транслирует) программу, загруженную в данный момент в активное окно редактора
Меню Debug
Watch − включить окно для просмотра переменных
Output − включить окно вывода результатов
Меню Window
Zoom (F5) − распахнуть окно
Next (F6) − активизировать следующее окно
Previous (Shift+F6) − активизировать предыдущее окно
Close (Alt+F3) − закрыть окно
List (Alt+Ø) − вызвать список окон
Ctrl+Break − для выхода из зацикливания программы
25
Основные символы
Основные символы языка − буквы, цифры и специальные символы − составляют его алфавит. Turbo Pascal включает следующий набор основных символов:
 26 латинских строчных и 26 латинских прописных букв:
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
 подчеркивание _
 10 цифр:
0123456789
 знаки операций:
+ - * / = <> < > <= >= := @
 ограничители:
. , ' ( ) [ ] (. .) { } (* *) .. : ;
 спецификаторы:
^#$
Таблица 5 − Служебные (зарезервированные) слова
Слово
absolute
array
case
div
downto
end
for
goto
in
mod
of
program
string
to
until
var
with
Смысл слова
Слово
Смысл слова
Абсолютный
Массив
Вариант
Деление нацело
Уменьшить до
Конец блока
Для
Переход на
В (входит в)
Остаток деления
Из
Программа
Строка
Увеличивая
До
Переменная
С
and
begin
const
do
else
file
function
if
label
not
or
repeat
then
type
uses
while
Логическое И
Начало блока
Константа
Выполнять
Иначе
Файл
Функция
Если
Метка
Логическое НЕ
Логическое ИЛИ
Повторять
То
Тип
Использовать
Пока
Кроме перечисленных, в набор основных символов входит пробел. Пробелы
нельзя использовать внутри сдвоенных символов и зарезервированных слов.
26
Типы данных
Тип определяет множество значений, которые могут принимать объекты программы (константы и переменные), а также совокупность операций, допустимых
над этими значениями.
Целые и вещественные типы данных предназначены для представления числовых данных. Целый тип в языке Turbo Pascal – это интервал целых чисел
(таблица 6). Операции над этими числами определены лишь тогда, когда исходные данные (операнды) и результат лежат в этом интервале.
Таблица 6 − Целочисленные типы данных
Название целого типа
Диапазон возможных значений
Память, байт
byte (байтовый)
0 – 255
1
shortint (короткий целый)
-128 – 127
1
integer (целый)
-32 768 – 32 767
2
word (слово)
0 – 65 535м
2
longint (длинный целый)
-2 147 483 648 – 2 147 483 687
4
Вещественные числа представляются конечным множеством значений (таблица 7).
Таблица 7 − Вещественные типы данных
Название вещественного
типа
single
(с одинарной точностью)
real (вещественный)
double
(с двойной точностью)
extended
(с повышенной точностью)
comp (сложный)
Диапазон возможных
значений
(плюс-минус)
Количество
значащих чисел
Память,
байт
1,5е-45 − 3,4е38
7–8
4
2,9е-39 − 1,7е38
11 – 12
6
5,0е-324 − 1,7е308
15 – 16
8
3,4е-4932 − 1,1е4932
19 – 20
10
-2е63+1 − 2е63-1
19 – 20
8
Логический (boolean) тип данных имеет всего два значения: true (да – истина, 1)
и false (нет, ложь, 0).
Строковый тип данных (string) − это тип данных, состоящий из последовательности символов. Каждый символ занимает 1 байт памяти. Количество символов в
строке называется её длиной. Длина строки может находиться в диапазоне
от 0 до 255. Строковые величины могут быть константами и переменными. Строковая константа есть последовательность символов, заключенная в апострофы.
Например, 'Язык программирования Turbo Pascal', '12345', ' ' − пустая строка.
Символьный тип данных (char) – это тип данных, состоящий из одного символа
(знака, буквы, кода) в определённой кодировке.
Например: 'ж', 's', '№', '*', '_' − пробел.
27
Ввод и вывод данных
Ввод данных – это передача исходных данных программы в оперативную память
компьютера для последующей обработки программой.
Read (x1, x2, …, xN);
Readln (x1, x2, …, xN);
где х1, х2, … − список ввода, содержащий имена переменных допустимых типов
данных (integer, real, char, string). Эти значения вводятся с клавиатуры и отображаются на экране.
Вывод данных – это передача данных после обработки из оперативной памяти на
внешнее устройство (экран, принтер, файл на диске).
Write (y1, y2, …,yN);
Writeln (y1, y2, …, yN);
где y1, y2, … − список вывода, предназначенный для вывода констант различных
типов, значений переменных и выражений.
Процедура вывода Write и Writeln отличаются тем, что после вывода последней
переменной из списка курсор автоматически переходит в начало новой строки
(таблица 8).
Таблица 8 − Форматы вывода данных
Значение
Выражение
3 и 45
Write ( A, B )
3 и 45
Write (‘A=’ , A ,’*B=’, B)
3 и 45
Write (A : 4, B : 4)
3 и 45
Write (‘A=’ , A:4, ‘*B=’ , B:4)
Write (A:4);
Write (B:4);
Writeln (A:4);
Writeln (B:4);
3 и 45
3 и 45
234,36
Write ( А )
234,36
Write ( А : 8 : 2 )
234,36
234,36
Write ( А : 8 : 4 )
Write ( А : 10 : 1 )
Результат
345
(с позиции курсора)
A=3*B=45
***3**45
(крайняя правая позиция)
A=***3*B=**45
***3**45
***3
**45
2.3436000000E+02
(с плавающей точкой)
**234.36
(с фиксированной точкой)
234.3600
*****234.4
Примечание: * означает пробел
Общий вид записи:
Write(R:m:n);
R – действительное число;
m – количество позиций, отводимых для числа;
n – количество позиций, отводимых для дробной части.
28
Задание 1. Запись математических выражений на алгоритмическом языке
1,34 a 3  b 3
bc
e
a 2 b 2
1.34*abs(exp(3*ln(a))+exp(3*ln(b)))/(b*c)*exp(a*a - b*b)
Задание 2. Запись арифметических выражений в математической форме
1.34*abs(exp(3*ln(a))+exp(3*ln(b)))/(b*c)*exp(a*a - b*b)
1,34 a 3  b3
bc
ea
2
b 2
Таблица 9 − Арифметические функции
Математика
Turbo Pascal
Расшифровка
а2
sqr(a)
sqrt(a)
Квадрат
Корень
abs(a)
Модуль
ln(a)
π
ea
an
sin(a)
cos(a)
tg(a)
ctg(a)
arctg(a)
---
ln(a)
pi
exp(a)
exp(n*ln(a))
sin(a)
cos(a)
sin(a) / cos(a)
cos(a) / sin(a)
arctan(x)
a div b
a mod b
--
Random (диапазон)
--
Random(x)
Натуральный логарифм
Число пи
Экспонента
n-ая степень
Синус (в радианах)
Косинус(в радианах)
Тангенс(в радианах)
Котангенс(в радианах)
Арктангенс(в радианах)
Деление без остатка
Остаток от деления
Псевдослучайное число
[0,1]
Псевдослучайное число
[0,х]
a
a
29
Задание 3. Циклические вычислительные процессы. Вычисление значений
функции при различных значениях аргумента (табулирование функции)
Циклический вычислительный процесс − это процесс, при котором действия
выполняются многократно по одному и тому же алгоритму при изменяющихся
исходных данных.
Параметр цикла – это переменная, которая при каждом новом входе в цикл принимает новое значение, то есть управляет работой цикла.
Шаг – величина, на которую изменяется начальный параметр при выполнении
цикла.
Условие задачи:
Вычислите значение функции:
Y=x2+sin(x+a),
если а=5,
1≤ х≤10 с шагом ∆х=2
х – параметр цикла
Для решения задачи использовать разные способы организации цикла:
1) Операторы условного (IF) и безусловного переходов (GOTO);
2) Цикл с предусловием (WHILE);
3) Цикл с постусловием (REPEAT…UNTIL);
4) Цикл с параметром (FOR) с вычислением количества повторений.
1 способ: Цикл с использованием операторов условного (IF)
и безусловного переходов (GOTO)
Если в программе после выполнения очередного оператора необходимо выполнить не следующий по порядку, а другой, помеченный для этого меткой, используется оператор безусловного перехода GOTO («переход на»). Переход возможен только в пределах блока.
Форма записи оператора безусловного перехода:
GOTO «Имя метки»;
«Имя метки» − может быть идентификатор или целые числа от 0 до 9999. Объявление меток проводится перед объявлением констант после заголовка программы.
Объявление начинается с ключевого слова LABEL, затем указывается имя метки.
30
Пояснение: 50 – имя метки.
Program Name1;
Label 50; {раздел описания меток}
Var
X, А: integer; Y: real;
Begin
A:=5;
X:=1;
50: Y:=X*X+sin(X+A);
Writeln ('X=',X, '; Y=',Y:4:1);
X:=X+2;
if x<=10 then goto 50;
readln;
end.
НАЧАЛО
A=5
Х=1
Y=X2+sin(X+A)
X, Y
X=X+2
да
нет
X<=1
КОНЕЦ
2 способ: Организация цикла с предусловием (WHILE)
Общий вид алгоритма цикла с предусловием
Предписывает выполнять тело цикла до тех пор, пока выполняется условие,
записанное после слова While.
Условие
нет
да
Тело цикла
Общий вид записи:
While «Условие» do
«Тело цикла»;
«Условие» – выражение логического типа;
«Тело цикла» – простой или составной оператор.
В том случае, если в теле цикла имеется более одного оператора, в качестве оператора может выступать составной оператор с операторными скобками
begin…end.
31
Перед каждым выполнением тела цикла вычисляется значение выражения
условия, если результат истина, то тело цикла выполняется. Если результат ложь, то
происходит выход из цикла и переход к первому оператору после While оператора.
While, do – зарезервированные слова («Пока [выполняется условие]», «делать»).
Program Name2;
Var
X,А: integer; Y: real;
Begin
A:=5;
X:=1;
While X<=10 do begin
Y:=X*X+sin(X+A);
Writeln ('X=',X,'; Y=',Y:4:1);
X:=X+2;
end;
readln;
end.
НАЧАЛО
A=5
Х=1
нет
да
X<=1
Y=X2+sin(X+A)
X, Y
X=X+2
КОНЕЦ
3 способ: Организация цикла с постусловием (REPEAT…UNTIL)
Общий вид алгоритма цикла с постусловием
Выполняется до тех пор, пока логическое выражение ложно. Условие нужно
задать так, чтобы выйти из цикла.
Тело цикла
да
нет
Условие
Общий вид записи:
Repeat
«Тело цикла»;
until «Условие окончания цикла»;
«Тело цикла» − произвольная последовательность операторов;
«Условие» − выражение логического типа.
32
Процесс завершается тогда, когда после очередного выполнения заданной
последовательности операторов тела цикла условие примет (впервые) значение
истина. Проверка условия производится после выполнения тела цикла.
Repeat …until − зарезервированные слова («Повторять», «пока не [выполнится
условие]»).
Program Name3;
Var
X, А: integer; Y: real;
Begin
A:=5;
X:=1;
repeat
Y:=X*X+sin(X+A);
Writeln ('X=',X,'; Y=',Y:4:1);
X:=X+2;
until X>10;
readln;
end.
НАЧАЛО
A=5
Х=1
Y=X2+sin(X+A)
X, Y
X=X+2
нет
да
X>10
КОНЕЦ
4 способ: Организация цикла с параметром (FOR)
Общий вид алгоритма цикла с параметром
Предписывает выполнять тело цикла для всех значений некоторой переменной (параметра цикла) в заданном диапазоне между начальным и конечным значениями. Используется в том случае, если параметр цикла имеет целочисленный
тип и значение параметра увеличивается (уменьшается) на 1.
i=i1, i2
i – параметр цикла
i1 – начальное значение,
Тело цикла
i2 – конечное значение
Общий вид записи:
for «Параметр цикла»:=«Начальное значение» to (downto) «Конечное значение» do
«Тело цикла»;
33
В качестве параметра цикла можно использовать имя простой переменной
целого типа, в качестве начального, конечного значений можно использовать константы, переменные, а также арифметические выражения только целого или перечислимого типа.
for, to, downto, do – зарезервированные слова («для», «до», «уменьшить до»,
«выполнить»).
Порядок выполнения действий:
До разработки алгоритма решения задачи необходимо вычислить количество повторений цикла К.
x  xнач
K  кон
 1; K  количество повторений цикла (целое число)
x
xнач  1; хкон  10 ; х  2
10  1
K
 1  4,5  1  5,5
2
K  5  т.к. если K  6, то х  12 и не принадлежит диапазону 1;10
К – в данной программе будет означать конечное значение цикла.
1) Присвоение значения переменной А.
2) Присвоение переменной К значения, полученного до разработки алгоритма
решения задачи.
3) Присвоение значения 1 переменной Х (начальное значение).
4) Организация цикла с параметром по переменной i (целое число).
5) Вычисление значения функции Y.
6) Вывод значения функции Y.
7) Добавление шага к переменной Х.
Program Name4;
Var
X, А, К i: integer; Y: real;
Begin
A:=5; K:=5;
X:=1;
for i:=1 to K do begin
Y:=X*X+sin(X+A);
Writeln ('X=',X, ';Y=',Y:4:1);
X:=X+2;
end;
readln;
end.
НАЧАЛО
A=5; K=5
Х=1
i=1, K
Y=X2+sin(X+A)
X, Y
X=X+2
КОНЕЦ
34
Задание 4. Циклические вычислительные процессы. Решение задач,
содержащих вычисление конечных сумм и произведений
Условие задачи:
Вычислите конечное значение суммы функции
S
20
 (1 /
x 1
x2 )
Для решения задачи использовать разные способы организации цикла:
1) Цикл с предусловием (WHILE);
2) Цикл с постусловием (REPEAT…UNTIL);
3) Цикл с параметром (FOR) со счётчиком (с шагом 1).
20
Пояснение:
 (1 / х2 ) 
х 1
1 1
1


.....

12 22
х 20
1 способ: Цикл с предусловием (WHILE)
Обозначения:
А – вспомогательная переменная, в которой вычисляется слагаемое;
S – переменная, в которой происходит накапливание значений сумм.
Первое значение переменной S=0.
Program Summa1;
Var
X: integer; S, A: real;
Begin
X:=1;
S:=0;
While X<=20 do begin
A:=1/(X*X);
S:=S+A;
X:=X+1;
end;
Writeln ('S=', S:4:2);
readln;
End.
НАЧАЛО
I=1, 15
X=1
S=0
да
нет
X20
A=1/Х2
S=S+A
X=X+1
S
КОНЕЦ
35
2 способ: Цикл с постусловием (REPEAT…UNTIL)
Program Summa2;
Var
X: integer; S, A: real;
Begin
X:=1;
S:=0;
repeat
A:=1/(X*X);
S:=S+A;
X:=X+1;
until Х>20;
Writeln ('S=', S:4:2);
readln;
End.
НАЧАЛО
X=1
S=0
A=1/Х2
S=S+A
X=X+1
да
нет
X>20
S
КОНЕЦ
3 способ: Цикл с параметром (FOR) со счётчиком (с шагом 1)
Program Summa3;
Var
X: integer; S, A: real;
Begin
S:=0;
for X:=1 to 20 do begin
A:=1/(X*X);
S:=S+A;
end;
Writeln ('S=', S:4:2);
readln;
End.
НАЧАЛО
S=0
X=1, 20
A=1/Х2
S=S+A
S
КОНЕЦ
36
Условие задачи:
Вычислите конечное значение произведения функции
2
10  n 

P   

n 1 3 n 
 n2  12
22
102



 ..... 
Пояснение:   3  n  3  1 3  2
3  10
n 1 

10
1способ: Цикл с предусловием (WHILE)
Обозначения:
А – вспомогательная переменная, в которой вычисляется множитель;
P – переменная, в которой происходит накапливание значений произведения.
Первое значение переменной P=1.
Program Summa1;
Var
N: integer; P, A: real;
Begin
N:=1;
P:=1;
While N<=10 do begin
A:=N*N/(3+N);
P:=P*A;
N:=N+1;
end;
Writeln ('P=', P:4:2);
readln;
End.
НАЧАЛО
I=1, 15
N=1
P=1
да
нет
N10
A=N2/(3+N)
P=P*A
N=N+1
P
КОНЕЦ
Остальные способы аналогично вычислению конечной суммы.
37
Задание 5. Разветвление в цикле
Разветвление в цикле означает, что тело цикла содержит разветвляющийся
процесс.
Разветвляющийся процесс – это процесс, в котором вычисления могут выполняться разными путями в зависимости от выполнения или невыполнения некоторых условий. Обеспечивает в зависимости от результата проверки условия (да или
нет) выбор одного из альтернативных путей работы алгоритма. Каждый из путей
ведет к общему выходу, так что работа алгоритма будет продолжаться независимо
от того, какой путь будет выбран.
Общий вид алгоритма разветвляющегося процесса
да
Условие
Оператор 1
нет
Оператор 2
Общий вид записи с условным оператором:
If «Условие» then «Оператор_1» else «Оператор_2»;
«Условие» − логическое выражение.
if, then, else − зарезервированные слова («если», «то», «иначе»).
Условие задачи:
Найдите значения функции F  B  D  ln D ,
если
А Х
 Х , при Х  2,3

A B
D
, при 2,3  X  5
X

1

 A  X 2  B  X , при X  5


A  2,7; B  0,3
где X  1;8, X  0,5
Порядок выполнения действий:
1. Присвоение значений переменным A и B.
2. Организация цикла по переменной Х.
3. Вычисление функции D в зависимости от условия.
4. Вычисление значений функции F.
5. Вывод значения функции F.
38
1 способ: Цикл с предусловием (WHILE)
НАЧАЛО
A= 2,7; B= -0,3
x=1
да
нет
x <=8
да
нет
КОНЕЦ
x<2,3
да
d=(a+x)/x
x>=5
нет
d=(a+b)/(x+1)
d=aх2+bx
F=bd+lnd
F(x)
x=x+0,5
Program funk_F1;
Var
а, b, d, x, F: real;
begin
a:= 2.7; b:= -0.3;
x:=1;
While x<=8 do begin
if x<2.3 then d:=(a+x)/x else
if x>=5 then d:=a*x*x+b*x else
d:=(a+b)/(x+1);
F:=b*d+ln(d);
writeln('F(',x:2:1, ')= ',F:6:2);
x:=x+0.5;
end;
readln;
end.
39
2 способ: Цикл с постусловием (REPEAT…UNTIL)
НАЧАЛО
A= 2,7; B= -0,3
x=1
нет
да
x<2,3
да
d=(a+x)/x
нет
x>=5
d=aх2+bx
d=(a+b)/(x+1)
F=bd+lnd
F(x)
x=x+0,5
да
нет
x>8
КОНЕЦ
Program funk_F2;
var
a, b, d, x, F:real;
begin
a:= 2.7; b:=-0.3;
x:=1;
repeat
if x<2.3 then d:=(a+x)/x else
if x>=5 then d:=a*x*x+b*x else
d:=(a+b)/(x+1);
F:=b*d+ln(d);
Writeln ('F(',x:2:1, ')= ',F:6:2);
x:=x+0.5;
until x>8;
readln;
end.
40
Задание 6. Обработка одномерных массивов
Одномерный массив − это фиксированное количество элементов одного и того
же типа, объединенных одним именем, где каждый элемент имеет свой номер.
Например, A(8) – одномерный массив, где А – имя массива, 8 – количество элементов.
Общий вид записи:
А1, А2 , А3……., Аn – это одномерный массив,
где Аi – элементы массива, i=1, 2, 3……n – индекс представляет собой переменную
целого типа. Запись элемента массива на языке Паскаль А[i].
Общий вид записи описания одномерного массива:
Var «Имя массива»: Array[n1..n2] Of «Тип элементов»;
n1 − номер первого элемента;
n2 − номер последнего элемента.
Array, of – зарезервированные слова («массив», «из»).
Задача 1. В массиве X(15) вычислите максимальный элемент массива и его порядковый номер.
Обозначения:
MAX – максимальный элемент массива;
K – порядковый номер максимального
элемента массива.
НАЧАЛО
i=1, 15
Program Massiv1;
Var
Xi
{Описание используемых переменных}
K, i, MAX: integer;
{Описание массива X}
X: array [1..15] of integer;
begin
MAX=X1; K=1
{Организация цикла для ввода элементов массива с клавиатуры}
i=2, 15
да
Xi >MAX
нет
for i:=1 to 15 do
readln (X[i]);
{Присвоение начальных значений максимальному
элементу и его порядковому номеру}
MAX:=X[1]; K:=1;
MAX=Xi; K=i
{Организация цикла для поиска максимального
элемента массива и его порядкового номера}
for i:=2 to 15 do
if X[i]>MAX then begin MAX:=X[i]; K:=i;
end;
MAX, K
КОНЕЦ
{Вывод результатов вычисления на экран}
writeln ('MAX=', MAX:2, ';K=', K);
readln;
end.
41
Задача 2. В массиве R(8) найдите минимальный элемент и замените его на 5.
Обозначения:
MIN – минимальный элемент массива;
N – порядковый номер минимального элемента.
НАЧАЛО
i=1, 8
Program Massiv2;
Var
R: array[1..8] of integer;
i, n, MIN: integer;
begin
for i:=1 to 8 do
readln (R[i]);
Ri
MIN=Ri; n=1
i=2, 8
да
Ri<MIN
{Присвоение начальных значений минимальному элементу и его порядковому
номеру}
нет
MIN:= R[1]; n:=1;
{Организация цикла для поиска минимального элемента массива и его порядкового номера}
MIN=Ri
for i:=2 to 9 do
if R[i]<MIN then begin
MIN:= R[i]; n:=i;
end;
n=i
{Вывод результатов вычисления на экран}
MIN
writeln ('MIN=',MIN);
{Замена минимального элемента массива
на 5}
Rn=5
R[n]:=5;
{Вывод нового массива на экран}
i=1, 8
for i:=1 to 8 do
write (R[i]:5);
readln;
end.
Ri
КОНЕЦ
42
Задача 3. В массиве А(8) определите количество положительных и отрицательных элементов.
Обозначения:
p – количество положительных элементов;
ot – количество отрицательных элементов.
НАЧАЛО
i=1, 8
Program Massiv3;
Var
p, ot, i: integer;
a: array[1..8] of integer;
begin
writeln ('Введите элементы массива А');
for i:=1 to 8 do
readln (А[i]);
Аi
p=0; ot=0
{Присвоение начальных значений количеству
положительных и отрицательных элементов}
i=1, 8
p:=0; ot:=0;
да
Ai>0
нет
ot=ot+1
p=p+1
{Организация цикла для подсчёта количества
положительных и отрицательных элементов массива}
for i:=1 to 8 do
if А[i]>0 then p:=p+1 else ot:=ot+1;
{Вывод результатов вычисления на экран}
p, ot
writeln ('Количество положительных
элементов=', p:2);
writeln ('Количество отрицательных
элементов=', ot:2);
readln;
end.
КОНЕЦ
43
Задача 4. В массиве X(15) вычислите сумму элементов массива меньших 10
и произведение элементов массива больших нуля.
Обозначения:
S – сумма элементов массива, меньших 10;
P – произведение элементов массива,
больших нуля.
НАЧАЛО
i=1, 15
Xi
Program Massiv4;
Var
i, S, P: integer;
X: array [1..15] of integer;
begin
for i:=1 to 15 do
readln (X[i]);
S=0; P=1
i=1, 15
да
Xi<10
нет
S:=0; P:=1;
{Организация цикла для вычисления суммы
и произведения элементов массива}
S=S+Xi
да
{Присвоение начальных значений сумме и
произведению}
Xi>0
нет
for i:=1 to 15 do begin
if X[i]<10 then S:=S+X[i];
if X[i]>0 then P:=P*X[i];
end;
{Вывод результатов вычисления на экран}
writeln ('S=', S);
writeln ('P=', P);
readln;
end.
P=P*Xi
S, P
КОНЕЦ
44
Задача 5. В массиве D(15) найдите все положительные элементы и замените их на
среднее арифметическое отрицательных элементов.
Обозначения:
S – сумма отрицательных элементов
массива;
SA – среднее арифметическое отрицательных элементов массива;
K – количество отрицательных элементов массива.
НАЧАЛО
i=1, 15
Di
S=0; K=0
i=1, 15
да
Di<0
нет
Program Massiv5;
Var
K, I: integer;
S, SA: real;
D: array [1..15] of real;
Begin
write ('Введите элементы массива D');
for i:=1 to 15 do
readln (D[i]);
S=S+Di
{Присвоение начальных значений сумме и количеству элементов}
K=K+1
S:=0; K:=0;
{Организация цикла для вычисления суммы и
количества отрицательных элементов массива}
for i:=1 to 15 do
if D[i]<0 then begin S:=S+D[i];
K:=K+1;
end;
SA=S/K
SA
{Вычисление среднего арифметического элементов массива}
SA:=S/K;
i=1, 15
да
Di>0
{Вывод среднего арифметического элементов
массива на экран}
writeln ('SA=',SA:7:2);
writeln ('Вывод нового массива D');
нет
{Организация цикла для определения положительных элементов массива и замена их на
среднее арифметическое и вывод нового массива на экран}
Di=SA
Di
КОНЕЦ
for i:=1 to 15 do begin
if D[i]>0 then D[i]:=SA;
writeln ('D(',i, ')= ', D[i]:5:2);
end;
readln;
end.
45
Задача 6. В массиве С(7) отсортируйте все элементы по возрастанию.
Обозначения:
m – вспомогательная переменная для
перестановки элементов массива.
НАЧАЛО
k=1, 7
Данные массива задаются типизированной константой, значения элементов массива выбираются произвольно
i=k+1, 7
да
Ci ≤Ck
нет
Program Massiv6;
Var
k, i, M: integer;
M=Ci; Ci =Ck; Ck=M
{Описание массива С с помощью типизированной константы}
const c: array[1..7] of integer =
(5,-4,2,7,-1,88,9);
begin
i=1, 7
{Сортировка массива}
for k:=1 to 7 do
for i:=k+1 to 7 do
if c[i]<=c[k] then begin
M:=c[i]; c[i]:=c[k]; c[k]:=M;
end;
Ci
КОНЕЦ
{Вывод нового массива на экран}
for i:=1 to 7 do
writeln ('c[',i,']=',c[i]:2);
readln;
end.
Алгоритм сортировки массива:
1. Сравним между собой первый и второй элементы массива и переставим их (если это необходимо) в порядке возрастания. Затем то же самое проделаем со вторым и третьим элементами и т.д. до конца массива. В результате этих сравнений и
перестановок наименьшее число окажется первым.
2. Второй этап сравнений и перестановок будет проходить для (N−1) элементов
(N − количество элементов массива), начиная со второго до N. В этом случае второй элемент окажется наименьшим. Уменьшая каждый раз количество элементов
на 1, операции сравнения и перестановок закончим тогда, когда останется один
элемент массива.
Переменная M является в качестве подсобной для перестановки элементов.
46
Задача 7. В массиве Х(8) подсчитайте сумму элементов, стоящих на чётных местах.
Обозначения:
S − сумма элементов, стоящих на
чётных местах;
i − переменная цикла с предусловием.
НАЧАЛО
i=1, 8
Program Massiv7;
Var
i,s: integer;
X: array[1..8] of integer;
begin
for i:=1 to 8 do
readln (X[i]);
Xi
i=2; S=0
да
i≤8
{Присвоение начальных значений сумме и
переменной}
нет
S:=0;
i:=2;
S=S+X[i]
{Организация цикла с предусловием}
While i<=8 do begin
i=i+2
{Вычисление суммы и переход на следующее чётное место}
S
S:=S+X[i];
i:=i+2;
end;
{Вывод результатов вычисления на экран}
КОНЕЦ
writeln ('S=',S);
readln;
end.
47
Задание 7. Обработка двумерных массивов
Двумерный массив – это структура данных, хранящая прямоугольную матрицу.
В матрице каждый элемент определяется номером строки и номером столбца, на
пересечении которых он расположен.
Например, D(3×4) – двумерный массив, состоящий из 3 строк и 4 столбцов.
Общий вид записи:
d11 d12 d13 d14
где Dij – элементы массива;
D  d 21 d 22 d 23 d 24
i – индекс строки;
d31 d32 d33 d34
j – индекс столбца.
Запись элементов двумерного массива на языке Паскаль D[i,j].
Общий вид записи описания двумерного массива:
Var «Имя массива»: array[n1..n2, m1..m2] of «Тип элементов»;
n1 − номер первой строки;
m1 – номер первого столбца;
n2 − номер последней строки;
m2 – номер последнего столбца.
array, of – зарезервированные слова («массив», «из»).
Задача 1. Найдите максимальный элемент в каждой строке матрицы A(4×3).
Обозначения:
НАЧАЛО
MAX – максимальный элемент матрицы.
Program Matriza1;
i=1, 4
Var
i, j, MAX: integer;
MAX=Ai1
А:array[1..4,1..3] of integer;
begin
{Организация ввода матрицы с клавиатуры
построчно}
j=2, 3
да
Aij>MAX
нет
for i:=1 to 4 do
for j:=1 to 3 do
readln (A[i, j]);
{Организация цикла для поиска максимального
элемента в каждой строке}
MAX=Аij
for i:=1 to 4 do begin
{Присвоение начального значения максимальному элементу текущей строки}
MAX
MAX:=a[i,1];
for j:=2 to 3 do
if a[i,j]>MAX then MAX:=a[i,j];
{Вывод результатов вычисления на экран}
КОНЕЦ
writeln ('Макс.элемент в', i, 'строке=', MAX);
end;
readln;
end.
48
Задача 2. В матрице D(3×3) найдите произведение элементов каждого столбца.
НАЧАЛО
i=1, 3
j=1, 3
Обозначения:
P – произведение элементов каждого
столбца.
Program Matriza2;
Var
{Описание переменных матрицы}
Dij
i, j, p: integer;
{Описание матрицы D}
D: array[1..3,1..3] of integer;
Begin
{Организация ввода матрицы с клавиатуры
построчно}
for i: =1 to 3 do
for j : = 1 to 3 do
readln (D[i, j]);
j=1,3
P=1
i=1,3
{Организация цикла для вычисления произведения элементов каждого столбца}
for j:=1 to 3 do begin
{Присвоение начального значения произведению}
P:=1;
for i:=1 to 3 do p:=p*D[i,j];
P=P*Dij
{Вывод результатов вычисления на экран}
P
writeln ('P=',P);
end;
readln;
end.
КОНЕЦ
49
Задача 3. В матрице С(5×5) элементы, лежащие выше главной диагонали, уменьшите на сумму элементов главной диагонали.
Обозначения:
Элементы, лежащие на главной диагонали,
имеют одинаковые индексы (i=j).
S – сумма элементов главной диагонали.
Для ввода данных используется функция Random (50) – датчик случайных
чисел в диапазоне [0;49].
Program Matriza3;
Var
i, j, s: integer;
C: array[1..5,1..5] of integer;
begin
НАЧАЛО
i=1, 5
j=1, 5
Cij
S=0
{Запуск генератора случайных чисел}
Randomize;
Writeln ('Данная матрица');
For i:=1 to 5 do begin
For j:=1 to 5 do begin
C[i, j]:=Random(50);
Write (' ',C[i, j]:4);
End;
Writeln;
End;
j=1, 5
S=S+Cii
S
i=1, 5
{Присвоение начального значения сумме}
j=1, 5
да
i<j
Cij=Cij-S
Cij
S:=0;
нет
{Вычисление суммы элементов главной
диагонали матрицы}
For i:=1 to 5 do
S:=S+C[i, i];
Writeln ('S=',S);
Writeln ('Новая матрица');
{Организация цикла для уменьшения элементов матрицы, лежащих выше главной диагонали на сумму}
For i:=1 to 5 do begin
For j:=1 to 5 do begin
If i<j then C[i, j]:= C[i, j]-S;
КОНЕЦ
{Вывод новой матрицы на экран}
Write (' ',C[i, j]:4); end;
Writeln;
End; Readln;
End.
50
Задача 4. В матрице В(3×3) все элементы, лежащие на главной диагонали,
замените на 0.
Данные задаются типизированной
константой, значения элементов
массива выбираются произвольно
НАЧАЛО
i=1, 3
Элементы, лежащие на главной
диагонали, имеют одинаковые
индексы (i=j).
j=1, 3
да
i=j
Program Matriza4;
Var
i, j: integer;
нет
{Описание матрицы В с помощью типизированной константы}
Bij=0
const B: array[1..3,1..3] of integer=
((1,-3,2),
(5,-4,-2),
(-1,5,8));
begin
i=1,3
{Организация цикла для замены элементов главной диагонали матрицы
на 0}
j=1,3
for i:=1 to 3 do
for j:=1 to 3 do
if i=j then B[i, j]:=0
Bij
{Вывод новой матрицы на экран}
for i:=1 to 3 do begin
for j:=1 to 3 do
write (B[i, j]:5);
writeln;
end;
readln;
end.
КОНЕЦ
51
Задача 5. В матрице А(4×4) определите в каждом столбце количество отрицательных элементов.
Обозначения:
k – количество отрицательных элементов.
НАЧАЛО
i=1, 4
Program Matriza5;
Var
i, j, k: integer;
A: array[1..4,1..4] of integer;
begin
for i : = 1 to 4 do
for j : = 1 to 4 do
readln (А[i, j]);
j=1, 4
Aij
{Организация цикла для подсчёта количества отрицательных элементов в каждом
столбце}
j=1, 4
for j:=1 to 4 do begin
k=0
{Присвоение начального значения количеству элементов}
i=1, 4
да
нет
Aij<0
k:=0;
for i:=1 to 4 do
if A[i,j]<0 then k:=k+1;
{Вывод результатов вычисления на экран}
writeln ('В столбце №',j,
'кол-во отриц.элементов- ',k);
end;
readln;
end.
k=k+1
j, k
КОНЕЦ
52
Задача 6. Выполните транспонирование матрицы Х(3×3) (замените строки
столбцами).
Обозначения:
Yij – элементы полученной матрицы
после транспонирования.
НАЧАЛО
i=1, 3
Program Matriza6;
Var
i, j: integer;
Y: array[1..3,1..3] of integer;
X: array[1..3,1..3] of integer;
begin
j=1, 3
Xij
{Организация ввода матрицы X с клавиатуры}
for i:=1 to 3 do
for j:=1 to 3 do
readln (X[i, j]);
i=1, 3
{Организация цикла для замены строк столбцами матрицы}
j=1, 3
for i:=1 to 3 do
for j:=1 to 3 do
Y[j,i]:=X[i,j];
Yji=Xij
{Вывод новой матрицы Y на экран}
for i:=1 to 3 do begin
for j:=1 to 3 do
write (Y[i,j]:5);
writeln;
end;
readln;
end.
i=1, 3
j=1, 3
Yij
КОНЕЦ
53
Задача 7. Определите произведение элементов четных столбцов матрицы В(3×4).
Обозначения:
Р – произведение элементов.
НАЧАЛО
i=1, 3
Program Matriza7;
Var
Р, i, j: integer;
B: array[1..3,1..4] of integer;
begin
for i : = 1 to 3 do
for j : = 1 to 4 do
readln (B[i, j]);
j:=2;
j=1, 4
Вij
{Организация цикла с предусловием}
j=2
да
while j<=4 do begin
{Присвоение начального значения произведению}
нет
P:=1;
j≤4
{Вычисление произведения}
Р=1
for i:=1 to 3 do
Р:=Р*В[i,j];
{Вывод результатов вычисления на экран}
i=1, 3
writeln ('Р=',Р);
{Переход на следующий чётный столбец}
Р=Р*Вij
j:=j+2;
end;
readln;
end.
Р
j=j+2
КОНЕЦ
54
Задача 8. В каждой строке матрицы А(3×3) определите сумму положительных
элементов.
Обозначения:
S – сумма положительных элементов.
НАЧАЛО
i=1, 3
Program Matriza8;
Var
s, i, j: integer;
A: array[1..3,1..3] of integer;
begin
for i : = 1 to 3 do
for j : = 1 to 3 do
readln (А[i, j]);
j=1, 3
Аij
{Организация цикла для вычисления суммы
положительных элементов матрицы в каждой строке}
i=1, 3
for i:=1 to 3 do begin
{Присвоение начального значения сумме}
S=0
S:=0;
for j:=1 to 3 do
if A[i,j]>0 then S:=S+A[i,j];
j=1, 3
{Вывод результатов вычисления на экран}
writeln ('Сумма ',i,' строки=',S);
end;
readln;
end.
нет
да
Aij>0
S=S+Aij
S
КОНЕЦ
55
Наиболее распространенные сообщения об ошибках
2 Identifier expected, не указан идентификатор.
3 Unknown identifier, неизвестное имя идентификатора, идентификатор не был
описан.
4 Duplicate identifier, двойной идентификатор, попытка дважды описать один и
тот же идентификатор.
5 Syntax error, синтаксическая ошибка, найден недопустимый символ.
8 String constant exceeds line, пропущен апостроф в конце строковой константы.
10 Unexpected end of file, отсутствует конец файла, т.е. не поставлена точка после
END или вероятно в программе неодинаковое количество операторов BEGIN и
END.
11 Line too long, слишком длинная строка.
12 Type identifier expected, не указан тип идентификатора.
16 Disk full, диск заполнен, необходимо удалить некоторые файлы или воспользоваться новым диском.
20 Variable identifier expected, не указан идентификатор переменной.
21 Error in type, ошибка в объявлении типа.
26 Type mismatch, несоответствие типов. Несовместимые типы переменной и выражения в операторе присваивания;
33 Labеl identifier expected, необходим идентификатор метки.
36 BEGIN expected, необходим BEGIN.
37 END expected, необходим END.
38 Integer expression expected, необходимо выражение типа Integer.
41 Operand types do not match operator, типы операндов не соответствуют операции.
42 Error in expression, ошибка в выражении.
50 DO expected, необходим оператор DO.
57 THEN expected, необходим THEN.
62 Division by zero, предшествующая операция пытается выполнить деление на
ноль.
79 Integer or real expression expected, необходимо выражение вещественного или
целого типа.
85 “;”expected, отсутствует точка с запятой.
89 “)”expected, пропущена скобка.
97 Invalid FOR control variable, неверный параметр цикла оператора FOR.
98 Integer variable expected, переменная должна иметь целый тип.
113 Error in statement, ошибка в операторе, данный символ не может быть первым символом в операторе.
207 Invalid floating point operation, недопустимая операция с плавающей запятой
(отрицательный аргумент функции SQRT или аргумент функции LN равен нулю
или имеет отрицательное значение).
56
Контрольные вопросы по теме «Алгоритмизация и программирование»
1. Этапы решения задач на ЭВМ.
2. Понятие алгоритма, свойства алгоритмов.
3. Способы задания алгоритмов.
4. Линейная структура алгоритмов.
5. Разветвляющая структура алгоритмов.
6. Циклическая структура алгоритмов.
7. Характеристика языков программирования.
8. Трансляторы с языков программирования.
9. Алгоритмический язык Turbo Pascal: особенности, назначение.
10.Алфавит и словарь языка Turbo Pascal.
11.Константы и переменные.
12.Структура программы. Требования к написанию программ.
13.Классификация типов данных.
14.Стандартные типы данных.
15.Пользовательские типы данных.
16.Выражения, операции, операнды.
17.Приоритеты выполнения операций.
18.Понятие оператора. Простые операторы.
19.Структурные операторы: составной оператор.
20.Структурные операторы: условные операторы.
21.Структурные операторы: операторы повтора.
22.Понятие массива, характеристика массива.
23.Описание массивов.
24.Порядок разработки программы на Turbo Pascal.
57
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
1. Бабушкина, И. А. Практикум по Турбо Паскалю: учебное пособие по курсам
«Информатика и вычислительная техника» / И. А. Бабушкина, Н. А. Бушмелева. – М. : АБФ, 1998. – 384с.
2. Немнюгин, С. А. Turbo Pascal / С. А. Немнюгин. – СПб. : Питер, 2002. – 496с.
3. Основы программирования / С. М. Окулов. – 3-е изд. – М. : БИНОМ. Лаборатория знаний, 2006. – 440с. : ил.
4. Попов, В. Б. Турбо Паскаль для школьников / В. Б. Попов. – М., 2000.
5. Рапаков, Г. Г. Turbo Pascal для студентов и школьников / Г. Г. Рапаков, С. Ю.
Ржеуцкая. – СПб. : БХВ-Петербург, 2004. – 352с.
6. Фаронов, В. В. Турбо Паскаль 7.0. Практическое программирование / В. В.
Фаронов. − Киев, 2000.
7. Фаронов, В. В. Турбо Паскаль 7.0. Начальный курс / В. В. Фаронов. – Киев,
2000.
58
Учебное издание
ИНФОРМАТИКА
Методические указания для самостоятельной работы
студентов очной формы обучения
по выполнению индивидуальных заданий
Составители:
Абышева Ирина Геннадьевна, Николаева Марина Викторовна,
Семёнова Александра Георгиевна
Редактор М.Н.Перевощикова
Технический редактор М.Ю.Соловьёва
Подписано в печать «____»___________2009г.
Формат 60×84/16. Гарнитура Times New Roman
Усл.печ.л. ______ Уч.-изд.л. ______ Тираж _______ экз. Заказ № _______
ФГОУ ВПО Ижевская ГСХА
426069, г. Ижевск, ул. Студенческая, 11
59
Download