Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Pascal LabWorks

.pdf
Скачиваний:
74
Добавлен:
15.04.2015
Размер:
457.62 Кб
Скачать

63

Лабораторная работа 1 Простейшие вычисления. Ввод-вывод данных

Задание

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

Варианты заданий

1.y=(cos2(x)+ln(x+1))3x–5 ln(x2–1) 1,5 10–3, x=tg( ); =60º

2.y=x–5+1,87ecos(x) cos(sin(x)), x=5,6

3.y=sin(cos(x))e cos(x)–ln(x–5) 1,5 10–3, x=7,8

4.y=1,33 105/(285+ln(x–3)–9cos(x)), x=5,7

5.y=sin(x–0,5)/(ln(x5–3)–3 102), x=2,1

6.y=tg(x)+sin2(ecos(x))–ln(x+1), x=3,9

7.y=(acos(a)+bsin(b+a))/(cos2(a)+b2), a=2,1, b=–1,5

8.y 3 2 ln(x) cos( x) , x 2,7

9.y lg(5 x) x2 x3 1 0,5 10 5 , x 1,5

10.

y

a x3 ln

cos( x) 5

ecos(x) , x 3,7 , a = 1,28

11.y=sin(5,81x)/(cos2(x)+sin(2x))+ln(x), x=5,3

12.y 5x3 ab cos(ax) ln(a b x) , x=0,5, a=1, b=3

13.y x ln (x2 1) / x3 3 cos(5) , x 2,5

14.y x cos(x2 ) ex 9 / ctg(x), x 3,4

15.

y cos2

(ex ) 0,28tg 2 (x2 ln(x)),

x 3,1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

16.

y sin3

 

x

x2

 

/(cos(

 

x3 x2 5

 

)),

x 1,1

 

 

 

 

17.y ctg(cos(ex )) / x3 x2 1, x 2,3

18.y=2,1 sin(e tg(x))/(cos2(x)+tg(x)), x=30º

19.y x3 1,5 103 e x ln(x 5) , x 6,5

20.y=(exex)/e3x–cos5(xx2–5 )/(x3+1), x= cos(α) , α=45º

21.y=(1,9 10–2+cos(0,5+x2))/(3,91–tg(x)), x=3,4

22.y=(tcos(t)+ssin(t+s))/(sin2(t)+s2), t=3,1, s=1,5

64

23.y 12,8x cos(x) x2 2,8 ln(x3 1), x 2,1

24.

y x2

cos2 (x) / e(cos(x) sin( x)) , x 5,4

25.

 

 

 

 

 

 

 

 

 

 

y x3

x3

x3 ln(x2 1) 103 , x 2,2

26.y= cos(sin(x))e cos(x)–lg(x+5) 0,15 10–2, x=3,4

27.y=1,72 104/(2,34+log2(x+1)+sin(x)), x=1,7

28.y=tg(x+0,5)/(ln(x3–3)–305,6 10-2), x=2,1

29.y=lg2(x)+cos(esin(x))–ln(x+1), x=2,9

30.

y cos3

x x2

/(cos(

x2 x3 1

)),

x 2,1

 

 

 

 

 

 

 

 

 

 

 

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

Вычислить z

cos2 x sin2y 2,5 10 2

2,78ln

 

x

 

при x= –1,9, y=3,7.

 

 

 

 

 

 

2x2 y2 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Алгоритм решения задачи:

 

 

 

 

 

 

 

Начало

Ввод x, y

z = …

Вывод z

Конец

{ Лабораторная работа 1. Простейшие вычисления. Ввод-вывод данных.

}

{ Выполнил Сергеев Андрей, группа 500.

 

}

program LabWork1;

{ заголовок программы

}

var

{ раздел описания типов переменных программы

}

x, y, z: Real;

{ x, y, z – переменные вещественного типа Real

}

begin

{ начало операторной части программы

}

Writeln( Введите значения x и y );

{ запрос ввода данных

}

Readln(x,y);

 

{ ввод исходных данных

}

{ Пропуск строки, вывод номера работы, имени программиста

}

Writeln; Writeln( Лабораторная работа 1 );

 

 

Writeln( Выполнил Сергеев Андрей, группа 500 );

 

{ Пропуск строки и вывод исходных данных с заголовком

}

Writeln; Writeln( Исходные данные: x= , x:5:2, y= , y:5:2);

 

{ Вычисление выражения и вывод результата с заголовком

}

z:=(cos(x)*cos(x)+sin(2*Pi*y)+2.5e-2)/(2*x*x+y*y+1)+2.78*ln(abs(x));

 

Writeln( Результаты работы: z= , z:8:4);

 

 

end. { program LabWork1 }

{ конец программы

}

65

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

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

с помощью оператора if

Задание

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

Варианты заданий

1.Найти большее их трех заданных значений a, b, c и вывести его имя и значение.

2.Вычислить значение функции y по одной из следующих фор-

мул: y=x2+3, если x<0; y=(x2+3)2, если 0x<1; y=x(x2+3), если x1.

3.Даны три числа a, b, c. Если хотя бы одно из них равно нулю с погрешностью =0,001, то вычислить сумму этих чисел, если все равны нулю с погрешностью =0,001, то вывести сообщение об этом, в противном случае вычислить их произведение.

4.Даны три значения a, b, c. Найти значение, наиболее близкое к среднему арифметическому (a+b+c)/3, вывести это значение и его имя.

5.Даны два произвольных числа a, b. Если оба значения принад-

лежат отрезку [c, d], то вычислить R=sin(a) sin(b), в противном случае вывести сообщение «Нет решения».

6.В зависимости от параметров a, b, c квадратного уравнения вывести одно из сообщений: «корней нет», «линейное уравнение», «корни мнимые», «корни действительные и различные», «корни действительные и равные».

7.Определить, принадлежит ли точка с координатами (x, y) области, ограниченной равнобедренным прямоугольным треугольником с катетами длиной a и прямым углом в начале координат (1-й квадрант).

8.Даны три числа a, b, c. Вычислить экспоненту того числа, значение которого ближе всего к значению функции y=(a2+b2+c2)/(a+b+c). Если a+b+c=0, то вывести сообщение об этом.

9.Даны числа a, b, c, d. Определить возможность построения параллелограмма из отрезков с такими значениями.

10.Определить, в каком квадранте координатной плоскости лежит точка с координатами (x, y).

11.Даны три числа a, b, c. Определить количество отрицательных и количество положительных чисел.

12.Даны числа a и b. Если оба значения положительны, то каждое из них удвоить; если оба отрицательны, то отбросить их знаки; в противном случае оставить числа без изменения.

66

13.Вывести заданные числа a, b, c в порядке убывания их значений.

14.Даны три числа a, b, c, которые представляют собой значения сторон треугольника. Определить вид треугольника: прямоугольный, остроугольный, тупоугольный.

15.Даны: прямоугольное отверстие размером x на y и кирпич с гранями a, b, c. Составить программу для определения возможности прохождения кирпича через заданное отверстие.

16.Определить, лежит ли точка с координатами (x, y) внутри кольца с радиусами r1, r2 и центром в точке (xc; yc).

17.Даны значения a, b, c. Если ни одно из значений не равно нулю,

то вычислить D=1/a+1/b+1/c, и если D>0 и a>0, вычислить y D , в

противном случае y=2. Если хотя бы одно из значений a, b, c равно нулю, то вывести сообщение «Нет решения».

18.Даны значения a, b, c. Если a>b и b>c, то вычислить x=0,2; y=x2+0,6x+sin(x/2), если b<c и a<c, то x=2; y=x3+x2+x+1, в остальных случаях x=0, y=0.

19.Найти наименьшее из трех заданных значений a, b, c и вывести его имя и значение.

20.Определить, лежит ли точка с координатами (x1,y1) внутри прямоугольника, ограниченного прямыми x=a, x=b, y=c, y=d.

21.Даны значения x1, x2, x3. Вычислить значения переменных a1, a2, a3 по следующему правилу: если x1>x2>x3, то a1=x1, a2=x2, a3=x3; если x1x2x3, то a1=x3, a2=x1, a3=x2, в остальных случаях a1=a2=a3=0.

22.Определить, лежит ли точка с координатами (x, y) внутри верх-

ней половины кольца с радиусами r1 и r2 и центром в точке (xc; yc).

23.Преобразовать заданные значения x и y: если x и y отрицательны, то каждое значение заменить его модулем. Если отрицательно только одно из них, оба значения увеличить на 1, если оба значения неотрицательны, то присвоить им значение, равное нулю.

24.Даны шесть монет, из которых одна фальшивая. Фальшивая монета отличается от настоящей монеты только весом, причем она либо немного тяжелее, либо немного легче. Имея рычажные весы, определить ложную монету не более чем за три взвешивания.

25.Определить, лежит ли точка с координатами (x, y) внутри секто-

ра окружности с радиусом r и центром в точке (xc; yc). Стороны сектора параллельны осям координат.

26.Преобразовать заданные значения x и y: если x и y неотрицательны, то присвоить им значение 1; если оба значения отрицательны, то присвоить им значение 0, в противном случае x и y увеличить на 1.

27.Вычислить значение функции y по одной из следующих фор-

мул: y=x2–3, если x<1; y=(x2–3)2, если 1x<5; y= (x2–3)/x, если x5.

67

28.Даны три числа a, b, c. Если хотя бы одно из них равно 1 с погрешностью =0,01, то вычислить y=a+b+c, если все равны 1 с той же погрешностью, то y=1, в противном случае y= a b c.

29.Даны три значения a, b, c. Найти значение, наиболее близкое к

значению (a bc)/3, вывести это значение и его имя.

30. Даны два произвольных числа a, b. Если оба значения принадлежат отрезку [1, 5], то вычислить R=cos(a) ln(b), в противном случае вывести сообщение «Нет решения».

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

Вычислить значение функции z по формуле a2b2c2, если a максимально, b2a2c2, если b максимально, c2a2b2, если c максимально.

Алгоритм решения задачи имеет вид:

 

 

 

 

Начало

 

 

 

 

 

 

 

 

 

 

Ввод a,b,c

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a>b и a >c

Да

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Да

 

Нет

 

 

 

 

 

 

 

b>a и b >c

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Нет

 

 

2

2

2

 

z = b2a2c2

 

 

 

 

 

z = a b c

 

 

 

 

 

z = c2a2b2

 

 

 

Выв. a макс.

 

Выв. b макс.

 

 

 

 

 

 

Выв. c макс.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вывод z

 

 

 

 

 

 

 

 

 

 

Конец

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

}

{ Программирование разветвлений с помощью оператора If.

 

}

{ Выполнил Сергеев Андрей, группа 500.

 

 

 

 

 

}

program LabWork2;

 

 

 

 

 

 

 

 

 

var

 

 

 

 

 

 

 

 

 

a, b, c, z: Real;

 

 

 

 

 

 

 

 

 

begin

 

 

 

 

 

 

 

 

 

Writeln( Введите исходные данные: a, b и c );

 

 

 

 

 

 

Readln(a, b, c);

 

 

 

 

 

 

 

 

 

Writeln; Writeln( Лабораторная работа 2 );

 

 

 

 

 

 

Writeln( Выполнил Сергеев Андрей, группа 500 );

 

 

 

 

 

 

Writeln; Writeln( Исходные данные: );

 

 

 

 

 

 

Writeln( a= , a:5:2, b= , b:5:2,

c= , c:5:2);

 

 

 

 

 

 

68

Writeln( Результаты работы: ); if (a>b) and (a>c)

then begin

z:=a*a-b*b-c*c; Writeln( a максимально ); end else begin

if (b>a) and (b>c) then begin

z:=b*b-a*a-c*c; Writeln( b максимально ); end else begin

z:=c*c-a*a-b*b; Writeln( c максимально ); end;{ if (b>a) and (b>c) }

end; { if (a>b) and (a>c)} Writeln( z= , z:8:4);

end. { program LabWork2 }

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

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

с помощью оператора case

Задание

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

Варианты заданий

1. Выведите на экран информацию:

 

 

 

ФИГУРА:

 

1.

Треугольник

2.

Квадрат

3. Прямоугольник

4.

Трапеция

5.

Круг

6. Кольцо

Предоставьте пользователю возможность выбора варианта (ввода номера фигуры), организуйте ввод нужных данных для вычисления площади фигуры и вычислите площадь выбранной фигуры [S1=ah/2;

S2=a2; S3=a b; S4=(a+b)h/2; S5=r2; S6= (r22r12)].

2.Введите три целых числа d, m, y, соответствующие определенной дате. Выведите название месяца и количество дней месяца, учитывая особенности високосного года.

3.Для натурального числа k напишите фразу «Мы нашли k грибов в лесу», согласовав окончание слова «гриб» с числом k.

4.Введите число 1n7 и выведите соответствующий этому числу день недели и сообщение, рабочий день или выходной.

5.Введите произвольные числа: n (целое), a и b. Вычислите k – ос-

таток от деления n на 6 и значение переменной y по одной из следующих формул: y=1, если k=0; y=a+b, если k=1; y=a2+b2, если k=2 или 3;

y=asin(b), если k=4; y=aln(b), если k=5.

6. Выведите на экран следующую информацию:

69

 

 

 

 

ГОРОД

 

 

 

1.

Москва

2.

Каунас

3.

Киев

4.

Харьков

5.

Брест

6.

Вильнюс

7.

Рязань

8.

Минск

Введите номер города и выведите соответствующую страну.

7.Введите произвольный символ и выведите соответствующее этому символу сообщение: «цифровой символ», «большая латинская буква», «малая латинская буква», «большая русская буква», «малая русская буква», «прочие символы».

8.В японском календаре годы носят названия животных и составляют 12-летний цикл (крысы, коровы, тигра, зайца, дракона, змеи, лошади, овцы, обезьяны, курицы, собаки и свиньи). 1984 год был началом очередного цикла. Составьте программу, которая по номеру введенного года выводит его название по японскому календарю.

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

10.Введите целое число 1n100 и два произвольных числа x и y. В зависимости от значения k младшей цифры числа n вычислите значение z по одной из следующих формул: z=1 при k=0; z=x+y при k=1, 7;

z=x2 exp(y) при k=2, 3, 5; z=x y при k=4, 8, 9; z=xln(y) при k= 6.

11. Астрологи делят год на 12 периодов и каждому из них ставят в соответствие знак Зодиака:

20.01–18.02 (Водолей)

19.02–20.03 (Рыбы)

21.03–19.04 (Овен)

20.04–20.05 (Телец)

21.05–21.06 (Близнецы)

22.06–22.07 (Рак)

23.07–22.08 (Лев)

23.08–22.09 (Дева)

23.09–22.10 (Весы)

23.10–22.11 (Скорпион)

23.11–21.12 (Стрелец)

22.12–19.01 (Козерог)

Составьте программу, которая вводит дату в виде: «день, месяц, год» и печатает название соответствующего знака Зодиака.

12.Введите символ, который соответствует курсу корабля: C – север, В – восток, Ю – юг, З – запад. Введите другой символ, соответствующий приказу: В – вперед, Н – назад, П – вправо, Л – влево. Определите новый курс корабля.

13.Выведите на экран следующую информацию:

 

 

 

СТРАНЫ:

 

 

 

1.

Австрия

2.

Болгария

3.

Греция

4.

Италия

5.

Норвегия

6.

Польша

7.

Франция

8.

Испания

Введите номер страны и выведите ее столицу.

14.Введите число 1n<=12, которое соответствует определенному месяцу года. Составить программу, которая выводит государственные праздники заданного месяца. Если праздников нет, то выдать соответствующее сообщение.

15.Для произвольного целого числа k напишите фразу «У меня в кармане k рублей», согласовав окончание слова «рубль» c числом k.

70

16.Введите целое число 1k30 и выведите его римскими цифрами.

17.Введите два произвольных числа a и b (оба <10). В зависимости

от результата выполнения операции k= (a b)/(a+b) , вычислите значение переменной y по одной из следующих формул: y=1/(a+b) при k=0; y=(a+b)/b2 при k=1,2; y=a2+b2 при k=3; y=bcos(a) при к=4; y=asin(b)

при k=5; y=0 в остальных случаях. – целая часть аргумента.

18.Введите два целых числа n1 и n2 (оба 7), которые соответствуют нотам октавы (0 – до, 1 – ре и т.д.). Определите интервал, образованный нотами (секунда, терция, кварта, квинта, секста, септима), если секунда – это интервал из двух соседних нот, терция – интервал через ноту, и т. д. по кругу.

19.Введите произвольный символ и в зависимости от его типа выполните одно из следующих действий: вывод символа на экран, если он принадлежит к русским символам; вывод порядкового номера сим-

вола, если он относится к латинским; вычисление y=xsin(x), если символ цифровой, где х – цифра, соответствующая введенному символу; выдача сообщения «остальные символы» в остальных случаях.

20. Выведите на экран следующую информацию:

1.

Австрия

2. Гана

СТРАНА

4.

Египет

3. Дания

5.

Италия

6. Перу

7. США

8.

Швеция

Введите номер страны и выведите название континента, на котором находится страна.

21.Для маркировки товаров принят международный товарный штрих-код EAN-13. Первые 2 (или 3) цифры обозначают код страны. Введите код и определите страну-изготовителя товара. Ниже приведены коды ряда стран: 00, 01, 03, 04, 06 – Канада, США; 30 – 37 – Франция; 380 – Болгария; 40 – 43 – Германия; 460 – 469 – Россия; 47 – Эстония; 49 – Япония; 50 – Великобритания. В остальных случаях выдать сообщение: «Код не опознан».

22.Для целого числа k напечатайте фразу «Мне k лет», учитывая, что при некоторых значениях k слово «лет», надо заменить словом

«год».

23.Для целого числа k напишите фразу «Мы отъехали k километров от дома», согласовав окончание слова «километр» с числом k.

24.Выведите на экран следующую информацию:

 

МАРКА АВТОМОБИЛЯ

 

 

1. Пежо

2. Лада

3.

Рено

4.

Святогор

5. Форд

6. Опель

7.

Крайслер

8.

Мерседес

Введите номер марки и выведите название страны-производителя. 25. Введите произвольный символ и выведите соответствующее

этому символу сообщение: «цифра», «знак препинания», «латинская буква», «русская буква», «скобка», «прочие символы».

71

26. Введите целое число 1n100 и два произвольных числа x и y. В зависимости от значения k числа десятков n вычислите значение переменной z по одной из следующих формул: z=1 при k=0, 1, 9; z=x2 exp(y)

при k=2, 5, 7; z=xsin(y) при k=3, 4, 8; z= ln(x y) при k= 6.

27.Для произвольного целого числа k напишите фразу «У меня в кармане k ключей», согласовав окончание слова «ключ» c числом k.

28.Введите произвольный символ и выведите его, если символ – русская буква; выведите порядковый номер символа, если символ – латинская буква; выведите сообщение «остальные символы» в остальных случаях.

29.Введите число 1n12 и выведите число дней в соответствующем этому числу месяце.

30.Выведите на экран следующую информацию:

 

УЛИЦЫ РЯЗАНИ

 

 

1. Гагарина

2. Астраханская

3.

Бирюзова

4.

Египет

5. Новоселов

6. Братиславская

7.

Зубковой

8.

Интернациональная

Введите номер улицы и выведите соответствующий район города.

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

Введите целое число n и два произвольных числа x и y. В зависимости от значения k остатка от деления n на 5 вычислите значение переменной z по формуле: z=x+y при нечетных k, z=x2+y2 при четных k, в противном случае z=0. Алгоритм решения задачи:

Начало

Ввод n,x,y

k = n mod 5

k

1, 3

z = x+ y

2, 4

z = x2+ y2

z = 0

Вывод n,k,z

Конец

72

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

 

}

{ Программирование разветвлений с помощью оператора case.

}

{ Выполнил Сергеев Андрей, группа 500.

 

}

program LabWork3;

 

 

var

 

 

n, k: Integer;

 

 

x, y, z: Real;

 

 

begin

 

 

Writeln( Введите целое число n, вещественные x и y );

 

Readln(n, x, y);

 

 

Writeln; Writeln( Лабораторная работа 3 );

 

 

Writeln( Выполнил Сергеев Андрей, группа 500 );

 

 

Writeln; Writeln( Исходные данные: );

 

 

Writeln( n= , n, x= , x:5:2, y= , y:5:2);

 

 

Writeln( Результаты работы: );

 

 

k:=n mod 5;

 

 

case k of

 

 

1, 3: z:=x+y;

 

 

2, 4: z:=x*x+y*y;

 

 

else z:=0;

 

 

end; { case k }

z= , z:8:4);

 

Writeln( Остаток от деления , n, на 5 равен ,k, ,

 

end. { program LabWork3 }

 

 

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

Исследование функции

с помощью операторов while и repeat

Задание

Составьте алгоритм и программу табулирования и исследования функции f(x) на заданном диапазоне изменения аргумента [x0, xn] с шагом hx. Вид функции и диапазон ее исследования (значения величин x0, xn, hx) выберите произвольно. Для организации цикла табулирования функции последовательно используйте операторы while и repeat. Для организации цикла исследования функции используйте любой из этих операторов. Выполните трассировку программы с использованием встроенного отладчика.

Варианты методов исследования функции

1.Вычислить максимальное по абсолютной величине значение функции и соответствующее значение аргумента.

2.Вычислить количество точек графика функции, лежащих внутри окружности с радиусом r и центром в точке (xc; yc).

3.Вычислить среднее арифметическое значений функции.

4.Вычислить количество значений функции, принадлежащих заданному интервалу (y1; y2).

5.Вычислить количество значений функции, совпадающих с за-

данным значением y1 (с абсолютной погрешностью ).

73

6. Вычислить количество точек графика функции, попадающих в область, ограниченную равнобедренным прямоугольным треугольником с катетами длиной a, параллельными осям координат и пересекающимися в точке (x1; y1).

7.Вычислить количество точек графика функции, лежащих внутри кольца с радиусами r1, r2 и центром в точке (xc; yc).

8.Вычислить сумму и количество положительных значений функции.

9.Определить границы первого отрезка длиной hx, на концах которого функция имеет разные знаки.

10.Вычислить количество точек на графике функции, лежащих ле-

вее прямой, проходящей через точку (a; 0) с углом наклона 45 .

11. Вычислить количество точек на графике функции, попадающих внутрь сектора окружности с радиусом r и центром в точке (xc; yc). Одна сторона сектора параллельна оси OX, угол сектора – 45 .

12.Вычислить количество точек на графике функции, попадающих

в1-й и 3-й квадранты координатной плоскости.

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

14.Вычислить количество точек на графике функции, попадающих в прямоугольник, ограниченный линиями с уравнениями x=a, x=b, y=c, y=d.

15.Вычислить количество точек на графике функции, лежащих ле-

вее прямой, проходящей через начало координат с углом наклона 135 .

16.Вычислить количество точек на графике функции, принадлежащих области, ограниченной параболой с уравнением y=ax2 и прямой y=c (с>0).

17.Вычислить количество значений функции, лежащих вне заданного интервала (y1; y2).

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

19.Вычислить координаты точки первого экстремума функции.

20.Вычислить количество интервалов длиной hx, на которых функция изменяет знак.

21.Вычислить количество точек графика функции, лежащих вне кольца с радиусами r1, r2 и центром в точке (xc; yc).

22.Вычислить количество точек графика функции, лежащих внут-

ри квадрата с вершинами: (–a; 0), (0; a), (a; 0), (0; -a).

23.Вычислить количество точек на графике функции, попадающих во 2-й и 4-й квадранты координатной плоскости.

24.Вычислить количество точек на графике функции, лежащих пра-

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

которого функция имеет разные знаки.

74

26.Вычислить число точек на графике функции, попадающих в прямоугольник, ограниченный линиями: x= –a, x= a, y= –b, y= b.

27.Вычислить минимальное из положительных значений функции

исоответствующее значение аргумента.

28.Вычислить количество значений функции, лежащих вне заданного интервала (y1; y2).

29.Вычислить количество точек на графике функции, попадающих в квадрат с координатами левого нижнего угла (a, b) и длиной стороны c.

30.Вычислить число точек на графике функции, лежащих правее

прямой, проходящей через точку (0, b) с углом наклона 45 .

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

Метод исследования – вычисление суммы и количества значений функции sin(x), превышающих заданное значение q на диапазоне

[x0, xn] с шагом hx.

Алгоритм решения задачи:

 

 

 

 

 

 

 

 

Начало

 

 

 

A

 

 

 

 

 

 

 

 

 

 

 

Ввод x0,xn,hx,q

 

 

 

x=x0; s=0; c=0

 

 

 

Выв. x0,xn,hx,q

 

 

 

 

 

 

 

 

 

 

 

y=f(x)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Нет

 

 

x = x0

 

 

 

 

 

 

 

 

 

 

 

 

y > q

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Нет

 

 

 

Да

 

 

x xn

 

 

 

 

 

 

 

 

 

 

 

 

 

s=s+y; c=c+1

 

 

 

Да

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Выв. x, f(x)

 

 

 

x=x + hx

 

 

 

 

 

 

 

Нет

 

 

x=x + hx

 

 

 

 

x > xn

 

 

 

 

 

 

 

 

Да

 

 

 

 

 

 

 

 

Вывод s, c

 

 

 

 

 

x = x0

Выв. x, f(x)

x=x + hx

Нет

x > xn

Да

A

Конец

Алгоритм функции f(x):

Вход: x

f = sin(x)

Выход: f

75

{ Лабораторная работа 4.

 

}

{ Исследование функции с помощью операторов while и repeat.

}

{ Выполнил Сергеев Андрей, группа 500.

}

program LabWork4;

 

 

 

type

 

 

 

TValue=Real;

 

{ тип значений аргумента и функции

}

function f(x: TValue): TValue;

{ исследуемая функция

}

begin

 

 

 

f:=sin(x);

 

 

 

end;

 

 

 

var

 

 

 

x, x0, xn, hx,

{ текущее значение аргумента и диапазон исследования }

y, q,

{ текущее и заданное значения функции

}

s: TValue;

{ сумма значений функции

}

c: Word;

{ количество значений функции

}

begin

 

 

 

{ Запрос ввода исходных данных

 

}

Writeln('Диапазон исследования и заданное значение функции (x0, xn, hx, q):');

Readln(x0, xn, hx, c);

{ чтение исходных данных

}

{ Вывод исходных данных

}

Writeln('Исходные данные:');

 

Writeln;

 

 

Writeln('Диапазон: [', x0:5:1, ',', xn:5:1,']', ' шаг: ', hx:5:1);

 

Writeln('Заданное значения функции: ', q:5:1);

 

{ Вывод таблицы значений функции c помощью оператора while

}

Writeln; Writeln('Таблица значений функции (оператор while):');

 

x:=x0;

 

 

while x<=xn+hx/2 do begin

 

Writeln('x=', x:5:1, '

y=', f(x):8:3);

 

x:=x+hx;

 

 

end; { while x<=xn+hx/2 }

 

{ Вывод таблицы значений функции c помощью оператора repeat

}

Writeln; Writeln('Таблица значений функции (оператор repeat):');

 

x:=x0;

 

 

repeat

 

 

Writeln('x=', x:5:1, ' y=', f(x):8:3);

 

x:=x+hx;

 

 

until x>xn+hx/2;

 

 

{ Цикл исследования функции f(x)

}

x:=x0; s:=0; c:=0;

 

 

repeat

 

 

y:=f(x);

 

 

if y>q then begin

 

 

s:=s+y;

 

 

Inc(c);

 

 

end;

 

 

x:=x+hx;

 

 

until x>xn+hx/2;

 

 

{ Вывод результатов исследования функции

}

Writeln; Writeln('Сумма значений функции =', s:8:3);

 

Writeln('Количество значений функции =', c); end. { program LabWork4 }

76

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

Вычисление сумм и произведений

с помощью оператора for

Задание

Составьте алгоритм и программу вычисления значения функции по ее аналитической формуле и как сумму (произведение) с использованием оператора for. Значение аргумента (если он есть) выберите с учетом ограничения, приведенного в столбце «Аргумент» таблицы.

 

Функция

Сумма или произведение

Аргумент

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

100

 

 

cos 2nx

 

 

 

1

 

ln sin(x)

 

 

ln 2

 

 

 

x< , x/2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n 1

 

 

 

n

 

 

 

 

 

 

 

 

 

 

x

 

 

 

 

 

100

 

sin nx

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0<x<2

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n 1

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

50

 

 

 

 

 

 

 

 

 

x2

 

 

 

3

 

 

 

sin(x)

 

 

 

x

 

1

 

 

 

 

 

 

 

x<1

 

 

 

 

 

 

 

 

2

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

50

 

 

 

 

 

cos 2nx

 

 

 

 

4

 

 

 

sin x

 

 

 

 

 

 

 

 

 

x/2

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n 1 (2n 1)(2n 1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

50

 

 

 

4n2

 

 

 

 

 

 

 

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

4n

2

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

100

 

 

 

 

n

 

sin((2n 1)x)

 

6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0x1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(2n 1)

2

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n 0

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

50

 

cos 2nx

 

 

 

 

 

 

7

 

 

sin x

 

 

 

 

 

 

 

 

 

 

 

 

x<1

2

 

4

 

 

 

 

 

 

 

 

4n

2

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

100

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

8

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n(n 1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n 1

 

 

 

 

 

 

 

 

 

 

cos1

 

 

 

50

 

 

 

 

 

n sin 2n

 

 

 

 

 

 

9

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8

 

 

 

 

 

 

 

 

(2n 1)(2n 1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n 1

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

50

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(2n 1)(2n 1)

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n 1

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

12

 

1

 

 

 

 

 

 

 

 

 

11

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

90

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n 1 n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

100

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

12

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

n 2 (n 1)(n 1)

 

 

 

 

77

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

100

 

 

sin((2n 1)x)

 

 

 

 

13

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0<x<

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n 0

 

(2n 1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

100

 

 

cos((2n 1)x)

 

 

14

 

 

 

 

 

 

 

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0x

 

 

4

 

 

 

 

 

 

 

(2n 1)

2

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

n 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

50

 

 

 

 

 

 

 

 

 

 

4x2

 

 

 

 

 

 

 

 

 

15

 

 

 

 

 

 

cos(x)

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x<1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(2n 1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

50

 

 

 

n sin 2nx

 

 

 

 

 

 

 

16

 

 

 

 

cos x

 

 

 

 

 

 

 

 

 

 

 

 

 

0<x<

 

 

8

 

 

 

(2n 1)(2n 1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n 1

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

100

 

 

 

 

1

 

 

 

 

 

 

 

17

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

n

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

100

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

18

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

(2n 1)

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

100

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

19

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n 1

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

100

 

 

 

 

 

n 1

 

 

1

 

 

 

 

 

 

 

 

20

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

2

 

 

 

 

 

 

 

 

 

 

 

 

 

12

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

25

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

21

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

(4n 1)(4n 1)

 

 

 

 

 

 

 

 

 

 

8

 

 

 

 

 

n 1

 

 

 

 

 

 

2 sin1

 

50

 

 

 

 

cos 2n

 

 

 

 

 

 

 

 

 

 

22

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(2n 1)(2n 1)

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n 1

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

30

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

23

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n(n 1)(n 2)

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n 1

 

 

 

 

 

 

 

 

 

 

 

2

6

 

 

 

 

 

 

50 cos n

 

 

 

 

 

 

 

 

 

 

 

24

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

12

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

 

30

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

25

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(2n 1)

4

 

 

 

 

 

 

 

 

 

 

 

 

 

96

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

200

 

 

sin n

 

 

 

 

 

 

 

 

 

 

 

 

26

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

n 1

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

2

 

 

 

 

 

 

2

 

 

100

 

 

 

 

n 1 cos(nx)

 

 

27

 

 

 

 

 

 

 

 

 

x

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0x1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

4

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

78

 

 

2

50

 

 

1

 

 

 

 

 

 

28

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(2n 1)

2

 

 

 

8

 

 

 

 

 

 

 

 

 

n 1

 

 

 

 

 

 

 

6

 

30

1

 

 

 

 

 

 

29

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

6

 

 

 

 

 

945

 

 

 

 

 

 

 

 

 

n 1

 

 

 

 

 

 

 

 

 

 

 

100

n sin(2n 1)

 

30

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(2n 1)

2

 

4

 

 

 

 

 

 

 

n 0

 

 

 

 

 

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

С использованием оператора for вычислить значение функции x– –2ln2 по ее формуле и с

100

cos 2nx

 

помощью суммы

,

 

n 1

n

где 0<x<2 .

 

 

Алгоритм решения

задачи

приведен справа.

 

 

Начало

Ввод x

y= x– –2ln2

s = 0

n = 1, 100

s = s+cos(2nx)/n

n

Выв. x,y,s

Конец

{ Лабораторная работа 5.

}

{ Вычисление сумм и произведений с помощью оператора for.

}

{ Выполнил Сергеев Андрей, группа 500.

}

program LabWork5;

 

 

var

 

 

x, y, s: Real;

{ аргумент, функция и сумма

}

n: Longint;

{ номер слагаемого

}

begin

 

 

Writeln('Введите значение аргумента в диапазоне от 0 до 2pi');

 

Readln(x);

{ чтение значения аргумента функции

}

{ Вычисление значения функции по аналитической формуле

}

y:=x-Pi-2*ln(2);

 

 

{ Вычисление значения функции с помощью суммы

}

s:=0;

 

 

for n:=1 to 100 do

s:=s+cos(2*n*x)/n;

 

{ Вывод результатов

}

Writeln('Аргумент =',x:5:2,' Функция=',y:5:2,' Сумма =',s:5:2);

 

end. { program LabWork5 }

 

79

Лабораторная работа 6 Работа с массивами

Задание

Составьте алгоритм и программу вода и обработки матрицы произвольного размера. Выведите на экран исходные данные в виде матрицы с заголовком и результаты работы программы.

Варианты заданий

1.Вычислить координаты максимального элемента главной диагонали матрицы.

2.Сформировать одномерный массив из количества ненулевых элементов строк матрицы.

3.Записать элементы матрицы построчно в одномерный массив и найти его минимальный элемент.

4.Вычислить суммы элементов матрицы, лежащих выше, ниже и на главной диагонали.

5.Сформировать одномерный массив из максимальных элементов столбцов матрицы.

6.Вычислить количество повторений каждого элемента вектора. Сообщения о повторяющихся элементах должны выводиться только один раз.

7.Вычислить количество нечетных элементов в каждой строке матрицы.

8.Сформировать одномерный массив из сумм элементов строк матрицы.

9.Вычислить номер строки и номер столбца минимального по абсолютной величине элемента матрицы.

10.Вычислить номер столбца матрицы с максимальным произведением элементов.

11.Вычислить минимальный элемент матрицы, лежащий ниже главной диагонали.

12.Поменять местами к-ю строку и к-й столбец квадратной матри-

цы.

13.Вычислить номер строки матрицы, состоящей из нулей и единиц, с максимальным количество нулей.

14.Сформировать одномерный массив из количества положительных элементов столбцов матрицы.

15.Вычислить количества нулевых элементов матрицы, лежащих выше, ниже и на главной диагонали.

16.Записать элементы матрицы по столбцам в одномерный массив

инайти его максимальный элемент.

80

17.Сформировать одномерный массив из сумм элементов столбцов матрицы.

18.Поменять местами минимальный и максимальный элементы матрицы.

19.Поменять местами к-ю и n-ю строки матрицы.

20.Преобразовать матрицу, разделив каждый элемент матрицы на её минимальный элемент.

21.Вычислить количество элементов каждой строки матрицы А,

удовлетворяющих условию 0Aij 10.

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

23.Сформировать одномерный массив из координат нулевых элементов матрицы.

24.Определить, сколько элементов матрицы попадает в каждый из

заданных интервалов: (n1, k1); (n2, k2). Границы интервалов ni, ki выбрать произвольно, i = 1, 2.

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

26.Переписать элементы матрицы в одномерный массив в порядке следования строк от последнего элемента к первому.

27.Сформировать одномерный массив из количеств положительных элементов в каждой строке матрицы.

28.Преобразовать матрицу таким образом, чтобы первой располагалась строка с максимальной суммой элементов.

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

30.Сформировать одномерный массив из номеров минимальных элементов столбцов матрицы.

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

Вычислить сумму положительных элементов матрицы произвольного размера.

{ Лабораторная работа 6. Работа с массивами.

}

{ Выполнил Сергеев Андрей, группа 500.

}

program LabWork6;

 

 

const

 

 

nmax=10;

{ максимальное число строк и столбцов матрицы

}

type

 

 

TElem=Real;

{ тип элементов матрицы

}

TIndex=1..nmax;

{ тип индексов матрицы

}

TArr=array[TIndex, TIndex] of TElem; { тип – матрица элементов типа TElem

}

 

{ размером nmax*nmax

}

81

var

 

 

A: TArr;

{ исходная матрица

}

m,

{ число строк матрицы

}

n,

{ число столбцов матрицы

}

i, j: TIndex;

{ индексы матрицы

}

s: TElem;

{ сумма положительных элементов матрицы

}

begin

 

 

Writeln('Введите число строк и столбцов исходной матрицы');

 

Readln(m, n);

{ ввод размеров матрицы

}

Writeln('Введите элементы матрицы построчно');

 

{ Ввод элементов матрицы

}

for i:=1 to m do begin

 

 

for j:=1 to n do begin

 

 

Read(А[i,j]);

 

 

end;

 

 

Readln;

 

 

end;

 

 

{ Вывод заголовков

 

}

Writeln('Исходные данные:');

 

Writeln;

 

 

Writeln('Матрица A размером ', m, '*', n);

 

{ Вывод элементов матрицы

}

for i:=1 to m do begin

 

 

for j:=1 to n do begin

 

 

Write(А[i,j]:8:2)

 

 

end;

 

 

Writeln;

 

 

end;

 

 

{ Вычисление суммы положительных элементов матрицы

}

s:=0;

 

 

for i:=1 to m do begin

 

 

for j:=1 to n do begin

 

 

if А[i, j] > 0 then s:=s+А[i, j];

 

end;

 

 

end;

 

 

{ Вывод результата вычисления s

}

Writeln;

 

 

Writeln('Сумма положительных элементов матрицы:', s:10:2); end. { program LabWork6 }

Лабораторная работа 7 Текстовые файлы

Задание

Составьте алгоритм и программу обработки матрицы произвольного размера. Исходные данные (элементы исходных матриц) подготовьте в текстовом файле. Результаты работы вместе с исходными данными выведите в текстовый файл результатов.

Способ обработки выберите в соответствии с вариантом задания к лабораторной работе № 6 «Работа с массивами».

82

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

Вычислить сумму положительных элементов матрицы произвольной размерности.

{ Лабораторная работа 7. Текстовые файлы.

}

{ Выполнил Сергеев Андрей, группа 500.

}

{ Исходные данные подготовлены в файле LW7Dat.txt в следующем порядке:

}

{ число строк m, число столбцов n, элементы матрицы построчно.

}

{ Результаты работы программы записываются в файл LW7Res.txt

}

program LabWork7;

 

 

 

const

 

 

 

nmax=10;

{ максимальное число строк и столбцов матрицы

}

type

 

 

 

TElem=Real;

{ тип элементов матрицы

}

TIndex=1..nmax;

{ тип индексов матрицы

}

TArr=array[TIndex, TIndex] of TElem; { тип – матрица элементов типа TElem

}

 

 

{ размером nmax*nmax

}

var

 

 

 

FDat, FRes: Text;

{ файлы с исходными данными и результатами

}

A: TArr;

{ исходная матрица

}

m, n,

{ число строк и столбцов матрицы

}

i, j: TIndex;

{ вспомогательные переменные - индексы матрицы

}

s: TElem;

{ сумма положительных элементов матрицы

}

begin

 

 

 

Assign(FDat, 'LW8Dat.txt'); Reset(FDat); { открытие нового файла для чтения

}

Assign(FRes, 'LW8Res.txt'); Rewrite(FRes);{ открытие файла для записи

}

Readln(FDat, m, n);

{ ввод размеров матрицы из файла с данными

}

{ Вывод заголовков в файл результатов

}

Writeln(FRes, 'Исходные данные:');

 

Writeln(FRes);

 

 

 

Writeln(FRes, 'Матрица A размером ', m, '*', n);

 

{ Ввод матрицы из файла с данными и вывод ее в файл результатов

}

for i:=1 to m do begin

 

 

 

for j:=1 to n do begin

 

 

 

Read(FDat, A[i,j]);

 

{ ввод элемента матрицы из файла

}

Write(FRes, A[i,j]:8:2)

 

{ вывод элемента в файл результатов

}

end;

 

 

 

Readln(FDat); Writeln(FRes);

 

 

end;

 

 

 

{ Вычисление суммы положительных элементов матрицы

}

s:=0;

 

 

 

for i:=1 to m do begin

 

 

 

for j:=1 to n do begin

 

 

 

if A[i, j] > 0 then s:=s+A[i, j];

 

 

end;

 

 

 

end;

 

 

 

{ Вывод результата вычисления s в файл результатов

}

Writeln(FRes); Writeln(FRes, 'Сумма положительных элементов матрицы:', s:10:2);

 

Close(FDat); Close(FRes);

{ закрытие файлов

}

end. { program LabWork7 }

 

 

 

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