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

1. ВВЕДЕНИЕ

2.Перечень лабораторных работ

  1. Освоение клавиатуры IBM-совместимого персонального компьютера и основных команд, необходимых при работе на Турбо - Паскале.

  2. Программирование вычислений по формулам

  3. Программирование разветвлений

  4. Программирование циклов. Вычисление сумм и произведений Суммирование рядов с заданной точностью.

  5. Обработка одномерных массивов.

  6. Обработка двумерных массивов.

3.КРАТКИЕ МЕТОДИЧЕСКИЕ УКАЗАНИЯ ПО ВЫПОЛНЕНИЮ ЛАБОРАТОРНЫХ РАБОТ. ПРИМЕРЫ ВЫПОЛНЕНИЯ ЗАДАНИЙ.

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

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

Задания 1.1 - 1.4 охватывают тему «Основные конструкции языка программирования Турбо – Паскаль». Задания 1.3-1.4 и 2.1 охватывают тему «Организация циклических вычислений». Задание 2.2 охватывает тему «Обработка одномерных массивов». Задание 2.3 — тему «Обработка двумерных массивов».

  • Пример выполнения задания 1.1.

Условие задачи: Два числа X и Y задаются при помощи оператора ввода. Вычислить сумму их квадратов, модуль разности и произведение.

Текст программы на языке Паскаль приводится на Рис.1. Здесь переменная SUM используется для обозначения суммы квадратов, переменная М - для обозначения модуля разности, переменная P -для обозначения произведения.

program prim_1;

{вычисления по формулам}

var x,y:real;

sum,m,p:real;

begin

write('введите x=');readln(x);

write('введите y=');readln(y);

sum:=x*x+y*y;

m:=abs(x-y);

p:=x*y;

writeln('сумма квадратов=',sum:6:3);

writeln('модуль разности=',m:6:3);

writeln('произведение=',p:6:3);

end.

Рис.1 Текст программы для задания 1.1.

  • Пример выполнения задания 1.2.

Условие задачи: Значения переменных А и В задаются оператором ввода. Программа должна отпечатать А > B, A < B или A = B в зависимости от значений А и В.

Рис.2. Блок-схема для задания 1.2.

Блок-схема и текст программы приведены на Рис.2 и 3. Алгоритм заключается в сравнении вводимых величин А и В и выводе на экран соответствующих сообщений.

program prim_2;

{использование условного оператора}

var a,b:real;

begin

write('введите а=');readln(a);

write('введите b=');readln(b);

if a>b then writeln('А больше В')

else if a<b then writeln('А меньше В')

else writeln('А равно В');

end.

Рис.3 Текст программы для задания 1.2.

  • Пример выполнения задания 1.3.,варианты 1..4.

Условие задачи: Составить блок-схему алгоритма и программу для вычисления и вывода на экран таблицы значений функции

,

где аргумент Х изменяется от начального значения (например, 1) до конечного (например, 2) с заданным шагом (например, 0,05). Параметры А и В задаются оператором ввода.

Здесь переменная xmin используется для обозначения начального значения аргумента Х, xmax - для обозначения конечного значения аргумента Х, dx - для обозначения шага, А и В - для обозначения параметров, необходимых для вычислений, X и Y - для обозначения текущего значения аргумента и текущего значения функции. Эта задача может быть решена четырьмя способами

Блок-схема алгоритма и текст программы с использованием:

- оператора условия (IF-THEN) приведены на Рис.4,8

- цикла с параметром (FOR-DO) приведены на Рис.5,9

- цикла с предусловием (WHILE-DO) приведены на Рис.6,10

- цикла с постусловием (REPEAT-UNTIL) приведены на Рис.7,11

Рис.4. Блок-схема для задания 1.3.,вариант 1.

Рис.5. Блок-схема для задания 1.3.,вариант 2.

Рис.6. Блок-схема для задания 1.3.,вариант 3.

Рис.7. Блок-схема для задания 1.3.,вариант 4.

program prim_3;

{программа вычислений и вывода на экран таблицы значений функции с использованием оператора IF-THEN}

label l10;

var a,b:real;

xmin,xmax,dx:real;

x,y:real;

begin

write('A=');readln(a);

write('B=');readln(b);

write('начальное значение=');readln(xmin);

write('конечное значение=');readln(xmax);

write('шаг=');readln(dx);

writeln('|___|___|');

writeln('| X | Y |');

writeln('|___|___|');

x:=xmin;

l10:

y:=A*sin(B*x)/x;

writeln('|',x:6:2,'|',y:7:2,'|');

x:=x+dx;

if (x<=xmax) then goto l10;

writeln('|___|___|');

end.

Рис.8. Текст программы для задания 1.3.,вариант 1.

program prim_4;

{программа вычислений и вывода на экран таблицы значений функции с использованием оператора FOR-DO}

var a,b:real;

xmin,xmax,dx:real;

x,y:real;

i,n:integer;

begin

write('A=');readln(a);

write('B=');readln(b);

write('начальное значение=');readln(xmin);

write('конечное значение=');readln(xmax);

write('шаг=');readln(dx);

writeln('|___|___|');

writeln('| X | Y |');

writeln('|___|___|');

n:=trunc((xmax-xmin)/dx)+1;

x:=xmin;

for i:=1 to n do

begin

y:=A*sin(B*x)/x;

writeln('|',x:6:2,'|',y:7:2,'|');

x:=x+dx;

end;

writeln('|___|___|');

end.

Рис.9. Текст программы для задания 1.3.,вариант 2.

program prim_5;

{программа вычислений и вывода на экран таблицы значений функции с использованием оператора WHILE-DO}

var a,b:real;

xmin,xmax,dx:real;

x,y:real;

begin

write('A=');readln(a);

write('B=');readln(b);

write('начальное значение=');readln(xmin);

write('конечное значение=');readln(xmax);

write('шаг=');readln(dx);

writeln('|___|___|');

writeln('| X | Y |');

writeln('|___|___|');

x:=xmin;

while x < xmax+dx/2 do

begin

y:=A*sin(B*x)/x;

writeln('|',x:6:2,'|',y:7:2,'|');

x:=x+dx;

end;

writeln('|___|___|');

end.

Рис.10. Текст программы для задания 1.3.,вариант 3.

program prim_6;

{программа вычислений и вывода на экран таблицы значений функции с использованием оператора REPEAT-UNTIL}

var a,b:real;

xmin,xmax,dx:real;

x,y:real;

begin

write('A=');readln(a);

write('B=');readln(b);

write('начальное значение=');readln(xmin);

write('конечное значение=');readln(xmax);

write('шаг=');readln(dx);

writeln('|___|___|');

writeln('| X | Y |');

writeln('|___|___|');

x:=xmin;

repeat

y:=A*sin(B*x)/x;

writeln('|',x:6:2,'|',y:7:2,'|');

x:=x+dx;

until x > xmax+dx/2;

writeln('|___|___|');

end.

Рис.11. Текст программы для задания 1.3.,вариант 4.

  • Пример выполнения задания 1.4.

Условие задачи: Составить блок-схему алгоритма и программу для вычисления и вывода на экран таблицы значений функции

,

которая не определена на интервале (1.0,4.0)

Результаты работы программы должны быть представлены в виде таблицы:

начальное значение=3

конечное значение=6

шаг=0.5

----------------------

x | y

----------------------

3.00 |Функция не определена

3.50 |Функция не определена

4.00 | 0.00

4.50 | 1.32

5.00 | 2.00

5.50 | 2.60

6.00 | 3.16

----------------------

Здесь переменная xmin используется для обозначения начального значения аргумента Х, xmax - для обозначения конечного значения аргумента Х, dx - для обозначения шага, X и Y - для обозначения текущего значения аргумента и текущего значения функции, R -вспомогательная переменная.

program prim_7;

{программа вычислений и вывода на экран таблицы значений функции с использованием оператора WHILE и проверкой на допустимость вычисляемого значения}

var xmin,xmax,dx:real;

y,x,r:real;

begin

write('начальное значение=');readln(xmin);

write('конечное значение=');readln(xmax);

write('шаг=');readln(dx);

writeln('|___|___|');

writeln('| X | Y |');

writeln('|___|___|');

x:=xmin;

while x < (xmax+dx/2) do

begin

r:=x*x-5*x+4;

if (r>=0.0) then

begin

y:=sqrt(r);

writeln('|',x:6:2,'|',y:7:2,'|');

end

else

writeln('|',x:6:2,'|','Функция не определена');

x:=x+dx;

end;

writeln('|___|___|');

end.

Рис 12. Текст программы для задания 1.4.

Рис.13. Блок-схема для задания 1.4.

  • Пример выполнения задания 2.1.

Условие задачи: составить блок-схему алгоритма и программу для вычисления суммы бесконечного числового ряда:

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

Блок-схема алгоритма и вариант текста программы приведены на Рис.14,15.Переменная I обозначает номер, а переменная А- значение каждого слагаемого, входящего в сумму. Суммирование слагаемых продолжается до тех пор, пока выполняется условие A > d.

program prim_8;

var s,a,d:real;

i:integer;

begin

write('введите погрешность');readln(d);

s:= 0;

i:= 2;

a:= 1/4;

while abs(a) > d do

begin

s:= s+a;

inc(i,2);

a:= 1/sqr(i);

end;

writeln('сумма ряда =',s:8:5);

end.

Рис.14. Текст программы для задания 2.1.

Рис.15. Блок-схема для задания 2.1.

  • Пример 1 выполнения задания 2.2.

Условие задачи : В заданном целочисленном массиве A из 20 элементов найти сумму элементов, имеющих четное значение, и сумму элементов, имеющих нечетное значение.

Рис.16.Блок-схема для выполнения задания 2.2,пример 1.

Блок-схема алгоритма и текст программы изображены на Рис.16,17.Переменные S1 и S2 обозначают соответственно суммы четных и нечетных элементов, переменная I - порядковый номер элементов массива.

program prim_9;

type vector = array[1..20] of integer;

var A:vector;

i,s1,s2:integer;

begin

writeln('введите массив целочисленных значений');

for i:= 1 to 20 do

begin

write('A[',i,']=');

readln( A[i] );

end;

s1:= 0; s2:= 0;

for i:= 1 to 20 do

if A[i] mod 2 =0 then s1:= s1 + A[i]

else s2:= s2 + A[i];

writeln('сумма четных элементов=',s1);

writeln('сумма нечетных элементов=',s2);

end.

Рис.17. Текст программы для задания 2.2,пример 1.

  • Пример 2 задания 2.2.

Условие задачи : В заданном массиве X из N элементов найти элемент, имеющий максимальное значение, и его порядковый номер.

Переменная nmaxобозначает порядковый номер элемента, имеющего максимальное значение. Переменнаяxmaxсодержит его значение. МассивXопределен, как вектор вещественных значений, содержащий максимум 100 элементов. Реальное количество элементов вводится во время выполнения программы.

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

Блок-схема и текст программы изображены на Рис. 18,19.

Рис.18.Блок-схема алгоритма для задания 2.2,пример 2.

program prim_10;

type vector = array[1..100] of real;

var X:vector;

n,i,nmax:integer;

xmax:real;

begin

write('введите число элементов массива');

readln(n);

writeln('введите массив ');

for i:= 1 to N do

begin

write('X[',i,']=');

readln( X[i] );

end;

xmax:= X[1]; nmax:= 1;

for i:= 2 to N do

if X[i] > xmax then begin

xmax:= X[i];

nmax:= i;

end;

writeln('максимальный элемент массива=',xmax:8:4);

writeln('номер элемента=',nmax);

end.

Рис.19. Текст программы для задания 2.2,пример 2.

  • Пример выполнения задания 2.3.

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

Введите к-во строк и столбцов

2 2

Введите массив А

a(1,1)=1

a(1,2)=2

a(2,1)=3

a(2,2)=4

Массив A

1.0 2.0

3.0 4.0

Массив B

1.0 3.0

2.0 4.0

Рис.21.Блок-схема для выполнения задания 2.3.

program prim_11;

const row=10;col=10;

type

matr1=array[1..row,1..col] of real;

matr2=array[1..col,1..row] of real;

var

i,j,n,m:integer;

a:matr1; b:matr2;

begin

{ввод массива A}

writeln('Введите к-во строк и столбцов'); readln(n,m);

writeln('Введите массив А');

for i:=1 to n do

for j:=1 to m do

begin

write('a(',i:1,',',j:1,')=');

readln(a[i,j]);

end;

{вывод массива A}

writeln('Массив A');

for i:=1 to n do

begin

for j:=1 to m do write(a[i,j]:7:1);

writeln;

end;

{формирование массива В}

for i:=1 to n do

for j:=1 to m do

b[j,i]:=a[i,j];

{вывод массива B}

writeln('Массив B');

for i:=1 to n do

begin

for j:=1 to m do write(b[i,j]:7:1);

writeln;

end;

readln;

end.

Рис.21. Текст программы для задания 2.3.

Упрощенная блок-схема алгоритма и текст программы изображены на Рис.20,21.

4. ВАРИАНТЫ ЗАДАНИЙ

  • Задание 1.1.

Составить программу для вычисления по формулам. Предусмотреть задание исходных данных при помощи оператора ввода.

1. Треугольник задан длинами сторон a и b, и величиной угла С. Найти сторону с и площадь S данного треугольника.

; , где

Предусмотреть ввод угла в градусах и перевод его в радианы:

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

; ;

3. Треугольник задан длинами сторон. Найти длины медиан:

; ;

4. Треугольник задан длинами сторон. Найти длины биссектрис:

; ;

5. Треугольник задан длинами сторон. Найти углы треугольника:

; ;

6.Даны два угла треугольника A, B и высота ha . Вычислить площадь треугольника и две стороны по формулам:

; ;;

7. Даны два угла треугольника B,С и высота ha . Вычислить длины всех сторон по формулам:

;;

8. В треугольнике заданы сторона a и углы В и С. Найти площадь S и стороны b и c:

;;;

9. В треугольнике заданы сторона a, высота ha и угол С. Найти стороны b,с и площадь S.

; ;

10. Треугольник задан координатами своих вершин. Найти площадь треугольника:

;

Замечание: расстояние между точками A(x1, y1) и B(x2, y2), расположенными на плоскости рассчитывается:

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

12. Вокруг треугольника со сторонами a, b, c описана окружность. Определить ее радиус R, угол треугольника A и площадь, ограниченную стороной a и радиусами, проведенными в вершины B, C.

;;

13. В окружность радиуса R вписан правильный треугольник. Определить длину его стороны a, площадь S и площадь круга S0 , вписанного в треугольник:

; ;

14. Вычислить значения Z1 и Z2 по формулам:

;

15. Определить дальность полета тела, запущенного с начальной скоростью V0 с высоты h под углом к горизонту , пренебрегая сопротивлением воздуха. Траектория движения тела описывается уравнениями:

; , где,V0x, V0y - компоненты скорости V0 вдоль осей X и Y. Замечание: в момент падения тела Y=0.

  • Задание 1.2.

Составить блок-схему алгоритма и программу с использованием условного оператора. Предусмотреть задание исходных данных при помощи оператора ввода.

1. На плоскости задана прямоугольная система координат с осями OX и OY, которая делит плоскость на 4 квадранта. Составить программу, которая вводит координаты точки (X,Y) и сообщает, в каком квадранте или на какой оси расположена эта точка.

2. Найти действительные корни уравнения для любых вводимых значений коэффициентов a, b, c, в том числе -равных нулю

3. Даны три числа A,B и C. Удвоить эти числа, если А > В > С, и заменить их абсолютными значениями, если это не так.

4. Даны действительные числа A,B,C и D. Если A < B < C < D, то каждое число заменить наибольшим из них, если A > B > C > D, то числа оставить без изменения; в противном случае все числа заменяются их квадратами.

5. Дано действительное число А. Вычислить F(А),если

6. Даны действительные положительные числа А,В,С, X,Y. Выяснить, пройдет ли кирпич с ребрами А,В,С в прямоугольное отверстие со сторонами X и Y. Просовывать кирпич в отверстие разрешается только так, чтобы каждое из его ребер было параллельно или перпендикулярно каждой из сторон отверстия.

7. Если значение переменной W не равно 0 и при этом котангенс от W меньше 0.5, тогда поменять знак у W, а если значение W равно 0, тогда присвоить W значение 1.

8. Даны действительные числа A и B. Найти корень уравнения. Предусмотреть выдачу сообщения «Уравнение не имеет решения», если A равно нулю, а В не равно нулю, или «Уравнение имеет бесчисленное множество решений», если А и В равны нулю.

9. Решить систему уравнений по формулам Крамера:

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

10. Даны два числа M и N. Меньшее из этих двух чисел заменить их полусуммой, а большее - их удвоенным произведением. Вывести полученные значения.

11. Дано число Х. Напечатать в порядке возрастания:

; ;

12. Дано действительное число А. Для функции F(X), график которой представлен на Рис 21. вычислить F(A).

13. Дано действительное число А. Для функции F(X), график которой представлен на Рис 22. вычислить F(A).

Рис. 21 Рис.22

14. Даны действительные числа X,Y. Определить, принадлежит ли точка с координатами (X,Y) заштрихованной части плоскости.(Рис.23)

15. Даны действительные числа X,Y. Определить, принадлежит ли точка с координатами (X,Y) заштрихованной части плоскости. (Рис.24)

Рис.23 Рис.24

  • Задание 1.3.

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

Таблица 1

_________________________________________________________

Вар-т Функция нач.зн. кон.зн. шаг

_________________________________________________________

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