
- •Введение
- •ЗАДАНИЕ 1 Организация Ввода-вывода
- •ЗАДАНИЕ 3 Целочисленные выражения
- •ЗАДАНИЕ 4 Решение уравнений и неравенств
- •ЗАДАНИЕ 5 Символьная обработка
- •ЗАДАНИЕ 6 Обработка одномерных массивов
- •ЗАДАНИЕ 8 Вычисление определенного интеграла
- •ЗАДАНИЕ 9 Электронные таблицы Excel
- •ЗАДЕНИЕ 11 Метод Рунге-Кутты решения дифференциальных уравнений
- •Задание 12 Математический пакет Mathcad
- •Литература
17
ЗАДАНИЕ 4 Решение уравнений и неравенств
Цель задания
1.Получение навыков использования условного оператора и оператора цикла с параметром.
2.Знакомство с методами оптимизации программ
Постановка задачи
Составить программу решения уравнения (системы уравнений, неравенства, системы неравенств) численным методом перебора. Напечатать исходные данные в принятом в математике виде.
Содержание отчета
1. Постановка задачи.
2.Текст программы и результаты ее выполнения.
3. Результаты тестирования.
Методические указания
Программа должна правильно выполнятся при любых значениях начальных данных и печатать комментарии в случае отсутствия решения либо его неопределенности.
Пример программы, решения неравенства
ax 3 + bx 2 + cx + d > 0
при |
значениях |
шага |
решенияh = 0.1 |
и |
постоянных |
в |
неравенс |
a = 5.; |
b = -3.; |
c = -14.5 ; |
d = 9.: |
|
|
|
|
program Resh_nerav; uses Crt;
const Min=-100.; Max=100.;
H=0.1; A=5.; B=-3.; C=-14.5; D=9.; var
I:integer;
X,Y,Y1:real;
Ak: array [1..3] of real;{корни уравнения, полученного из неравенства}
begin ClrScr;
Writeln(' Идет перебор значений X'); X:=Min;
for I:=1 to 3 do Ak[I]:=Max; I:=0;
repeat
18
Y:=A*X*X*X+B*X*X+C*X+D;
X:=X+H;
Y1:=A*X*X*X+B*X*X+C*X+D; if (Y*Y1<0) then
begin I:=I+1;
Ak[I]:=X-H/2.;
Writeln('При X ',Ak[I]:8:2,' Y=0 ') end
until X>Max;
if (Ak[1]=Ak[2]) and (Ak[2]=Ak[3]) and (Ak[3]=Max) then begin
if Y>0 then
Writeln( 'Неравенство выполняется во всем диапозоне') else
Writeln(' Неравенство не имеет решения ');
end;
X:=(Min+Ak[1])/2;
Y:=A*X*X*X+B*X*X+C*X+D;
if Y>0 then Writeln(' На отрезке [',Min:8:2,'...',Ak[1]:8:2, '] неравенство верно')
else Writeln(' На отрезке [',Min:8:2,'...',Ak[1]:8:2, '] неравенство неверно');
X:=(Ak[1]+Ak[2])/2;
Y:=A*X*X*X+B*X*X+C*X+D;
if Y>0 then Writeln(' На отрезке [',Ak[1]:8:2,'...',Ak[2]:8:2, '] неравенство верно')
else Writeln(' На отрезке [',Ak[1]:8:2,'...',Ak[2]:8:2, '] неравенство неверно');
X:=(Ak[2]+Ak[3])/2;
Y:=A*X*X*X+B*X*X+C*X+D;
if Y>0 then Writeln(' На отрезке [',Ak[2]:8:2,'...',Ak[3]:8:2, '] неравенство верно')
else Writeln(' На отрезке [',Ak[2]:8:2,'...',Ak[3]:8:2, '] неравенство неверно');
X:=(Ak[3]+Max)/2;
Y:=A*X*X*X+B*X*X+C*X+D;
if Y>0 then Writeln(' На отрезке [',Ak[3]:8:2,'...',Max:8:2, '] неравенство верно')
else Writeln(' На отрезке [',Ak[3]:8:2,'...',Max:8:2, '] неравенство неверно');
end.

19
Результат выполнения программы:
Идет перебор значений X
При X |
-1.75 Y=0 |
|
При X |
0.65 |
Y=0 |
При X |
1.65 |
Y=0 |
На отрезке [ -100.00... -1.75] неравенство неверно
На отрезке [ |
-1.75... |
0.65] неравенство верно |
На отрезке [ |
0.65... |
1.65] неравенство неверно |
На отрезке [ |
1.65... |
100.00] неравенство верно |
Варианты задания
Таблица 4.1
№ варианта |
Неравенства |
Уравнения |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
1 |
ax 2 + b > 0 |
e x - e- x - 2 = 0 |
|
|
|
|
|
|
||||||||||||||||||
2 |
ax 2 |
+ bx + c > 0 |
x - 2 + sin |
|
1 |
= 0 |
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
x |
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
3 |
ax 2 + c < 0 |
3 x - 4 ln x - 5 = 0 |
|
|
|
|
||||||||||||||||||||
4 |
ax 2 |
+ bx + c £ 0 |
x 2 - ln( x + 1 ) - 3 = 0 |
|
|
|||||||||||||||||||||
5 |
ìa1 x + b1 |
< 0 |
3 sin |
|
|
|
|
+ 0.35 x - 3.8 = 0 |
||||||||||||||||||
|
|
x |
||||||||||||||||||||||||
|
í |
|
|
< 0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
îa2 x + b2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
6 |
ìa1 x + b1 |
> 0 |
0.25 x 3 + x - 1.25 = 0 |
|
|
|||||||||||||||||||||
|
í |
|
|
< 0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
îa2 x + b2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
7 |
ìa1 x + b1 |
< 0 |
x + |
|
|
|
+ 3 |
|
|
|
|
|
- 2.5 = 0 |
|
|
|||||||||||
|
x |
|
x |
|
|
|||||||||||||||||||||
|
í |
|
|
> 0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
îa2 x + b2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
8 |
ìa |
|
x + b |
> 0 |
x - |
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
= 0 |
|
|
||||
|
í |
1 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
> 0 |
|
|
+ sin 3.6 x |
|
|
||||||||||||||||||||
|
îa2 x + b2 |
3 |
|
|
|
|
|
|
|
|||||||||||||||||
9 |
ìx < 0 |
|
0.1x 2 |
|
- x ln x = 0 |
|
|
|
|
|||||||||||||||||
|
í |
|
|
< 0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
îa2 x + b2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
10 |
ìa |
|
x + b < 0 |
tgx - |
1 |
tg |
3 |
x + |
1 |
|
tg |
5 |
x - |
1 |
= 0 |
|||||||||||
|
í |
1 |
1 |
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
3 |
|
|
5 |
|
|
3 |
||||||||||||||||||
|
îx + b2 ³ 0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
11 |
ìx + b1 ³ 0 |
e x + ln x - 10 x = 0 |
|
|
|
|||||||||||||||||||||
|
í |
|
|
< 0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
îa2 x + b2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
12 |
ìa |
|
x + b < 0 |
|
|
|
|
|
|
- |
x 2 |
+ x - 1 = 0 |
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||
|
í |
1 |
1 |
|
cos x - e |
2 |
|
|
|
|
||||||||||||||||
|
îx > 0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20
ЗАДАНИЕ 5 Символьная обработка
Краткие сведения о системах счисления
1.Что такое система счисления?
Система счисления – это совокупность приемов и правил, по которым числа записываются и читаются.
Существуют позиционные и непозиционные системы счисления. В непозиционных системах счисления все цифры(т. е. тот вклад, который они вносят в значение числа) не зависит от ее позиции в записи числа. Так в римской системе счисления в числе XXXII (32) вес цифры Х в любой позиции равен 10.
В позиционных системах счисления вес каждой цифры изменяется в зависимости от ее положения(позиции) в последовательности цифр, изображающих число. Например, в числе 757,7 первая семерка означает семь сотен, вторая семь единиц, третья – 7 десятых долей единицы.
Сама же запись числа 757,7 означает сокращенную запись выражения
700 + 50 +7 + 0 ,7 = 7 × 10 2 + 5 × 101 +7 × 100 +7 × 10-1 = 757 ,7 .
Любая позиционная система счисления характеризуется своим основанием.
Основание позиционной системы счисления– количество различных цифр, используемых для изображения чисел в данной системе счисления.
За основание системы можно принять любое число– два, три, четыре и т.д. Следовательно, возможно бесчисленное множество позиционных систем: двоичная, троичная, четверичная… Запись чисел в каждой из систем счисления с основанием q означает сокращенную запись выражения
an-1 qn-1 + an- 2 qn- 2 +K+ a1q1 + a0 q0 + a-1q -1 +K+ a-m q-m ;
где ai – цифры системы счисления; n и m – число целых и дробных разрядов соответственно.
Например: |
|
|
|
|
|
|
Разряды 3 |
2 |
1 |
0 - 1 |
|
||
Число |
1 |
0 |
1 |
1, |
12 |
= 1× 23 + 0 × 22 + 1× 21 + 1× 20 + 1× 2-1 ; |
Разряды 2 |
1 |
0 |
- 1 - 2 |
|
||
Число |
2 |
7 |
6 |
, 5 |
28 |
= 2 × 82 + 7 × 81 + 6 × 80 + 5 × 8-1 + 2 × 8-2 . |
2. Как порождаются числа в позиционных системах счисления?
В каждой системе счисления цифры упорядочены в соответствии с их значениями: 1 больше 0; 2 больше 1 и т.д.
Продвижением цифры называют замену ее следующей по величине.
Продвинуть цифру 1 значит заменить ее на2, продвинуть цифру 2 значит заменить ее на 3. Продвижение старшей цифры (например, цифры 9 в десятич-
ной системе) означает замену ее на 0.
21
Целые числа в любой системе счисления порождаются с помощьюправила сче-
та:
Для образования целого числа, следующего за любым данным целым числом нужно продвинуть самую правую цифру числа; если какая-либо цифра после продвижения стала нулем, то нужно продвинуть цифру, стоящую слева от неё.
Применяя это правило запишем первые десять целых чисел:
§в двоичной системе: 0, 1, 10, 11, 100, 101, 110, 111, 1000, 1001;
§в троичной системе: 0, 1, 2, 10, 11, 12, 20, 21, 22, 100;
§в пятеричной системе: 0, 1, 2, 3, 4, 10, 11, 12, 13, 14;
§в восьмеричной системе: 0, 1, 2, 3, 4, 5, 6, 7, 10, 11.
3.Какие системы счисления используют специалисты для общения с компьютером?
Кроме десятичной широко используются системы с основанием, являющимся целой степенью числа 2, а именно:
§двоичная (используются цифры 0,1);
§восьмеричная ( используются цифры 0,1…7);
§шестнадцатеричная (для первых целых чисел от нуля до девяти ис-
пользуются цифры 0,1…9, а от девяти до пятнадцати в качестве цифр используются символы A, B, C, D, E, F).
Из всех систем счисления особенно проста и поэтому интересна для техни-
ческой реализации в компьютерах двоичная система счисления.
4. Почему люди пользуются десятичной системой, а компьютер – двоичной?
Люди предпочитают десятичную систему, потому что с древних времен считали по пальцам. Не всегда и не везде люди пользуются десятичной системой счисления. В Китае, например, долгое время пользовались пятеричной системой счисления.
А компьютеры используют двоичную систему потому, что она имеет ряд преимуществ перед другими системами:
§для ее реализации нужны технические устройства с двумя устойчивыми состояниями (есть ток – нет тока, намагничен – не намагничен), а не с десятью – как в десятичной;
§представление информации посредством только двух состояний надежно и помехоустойчиво;
§возможность применения аппарата булевской алгебры для выполнения логических преобразований информации;
§двоичная арифметика намного проще десятичной.
Недостаток двоичной системы – быстрый рост числа разрядов.
22
5. Почему в компьютерах используются также восьмеричные и шестнадцатеричные системы счисления?
Двоичная система, удобная для компьютеров, для человека неудобна из-за ее громоздкости и непривычной записи.
Перевод чисел из десятичной системы в двоичную систему и наоборот выполняет машина. Однако, чтобы профессионально использовать компьютер, следует понимать слово машины. Для этого и разработаны восьмеричная и шестнадцатеричная системы.
Числа в этих системах читаются почти также легко, как десятичные требуют соответственно в три (восьмеричная) и в четыре (шестнадцатеричная) раз меньше разрядов чем в двоичной системе.
Перевод восьмеричных и шестнадцатеричных чисел в двоичную систему очень прост: достаточно каждую цифру заменить эквивалентной ей двоичной триадой (тройкой цифр) или тетрадой (четверкой цифр).
Например:
537,18 = 101 |
011 |
111, |
0012 |
; |
¯ |
¯ |
¯ |
¯ |
|
5 |
3 |
7 |
1 |
|
1A3,F16 = 1 |
1010 |
0011, |
11112 ; |
|
¯ |
|
¯ |
¯ |
¯ |
1 |
|
A |
3 |
F |
Чтобы перевести число из двоичной системы в восьмеричную или шестнадцатеричную, его нужно разбивать влево и вправо от запятой на триады и тетрады, соответственно, и каждую такую группу заменить восьмеричной или шестнадцатеричной цифрой.
Например, |
|
|
|
|
|
10101001,101112 |
= 10 |
101 |
001, |
101 |
1102 = 251,568 |
|
¯ |
¯ |
¯ |
¯ |
¯ |
|
2 |
5 |
1 |
5 |
6 |
10101001,101112 |
= 1010 1001, |
1011 |
10002 = A9, B816 |
||
|
|
¯ |
¯ |
¯ |
¯ |
|
|
A |
9 |
B |
8 |
6. Как перевести целое число из десятичной системы в любую другую позиционную систему счисления?
Для перевода целого десятичного числаN в систему счисления с основаниемq необходимо N разделить с остатком ("нацело") на q, в той же десятичной системе. Затем неполное частное, полученное от такого деления, нужно разделить

23
с остатком на q и т. д., пока последнее полученное неполное частное не станет равным нулю. Представлением числа N в новой системе счисления будет последовательность остатков деления, изображенных одной q-ичной цифрой и записанных в порядке, обратном порядку их получения.
Пример: Переведем число 75 из десятичной системы в двоичную:
75 2
137 2
1 18 2
0 |
9 |
|
2 |
|
|
|
|
|
|
|
1 |
|
|
|
2 |
|
|
|
|
|
4 |
|
|
|
|
||||
|
|
0 |
2 |
|
|
|
2 |
||
|
|
|
|
|
0 |
|
|
1 |
2 |
|
|
|
|
|
|
|
|
1 |
0 |
|
|
|
|
|
|
|
Ответ: 7510 = 10010112
7. Как перевести число из двоичной (восьмеричной, шестнадцатеричной) системы в десятичную?
Перевод в десятичную систему числаx ,записанного в q-ичной системе счисления в виде x = ( an an-1 Ka0 ,a-1a- 2 Ka-m )q сводится к вычислению значения мно-
гочлена
x10 = an q n + an-1q n-1 +K+ a0q0 + a-1q -1 + a-2 q-2 +Ka-m q -m
средствами десятичной арифметики. Пример:
Разряды: 2 1 0
Число: 1 F 316 = 1 ×162 + 15 ×161 + 3 ×160 = 49910
Цель задания
1.Закрепление навыков в использовании операторов цикла.
2.Получение навыков в работе с символьной информацией.
3.Освоения алгоритма перевода чисел из одной системы счисления в другую.
Постановка задачи
1. Ввести последовательность символов, представляющую собой запись числа в системе отсчета с основанием P. Количество вводимых символов - N. Требу-
ется перевести число в десятичную систему счисления и определить кратно ли оно L.
24
2.Ввести число в десятичной системе счисления и перевести его в систему счисления с основанием Q.
3.Составить программу обработки текста в соответствии с вариантом зада-
ния Таблица 5.1.
Содержание отчета
1.Постановка задачи.
2.Описание алгоритма перевода в десятичную систему счисления и обратно.
3.Тексты программ и результаты их выполнения.
Пример программыперевода числа из 12-ричной системы в десятичную: program Sus_sch;
uses Crt; var
St:string[15];
S:char;
K,Code,J,I,M:integer; begin
ClrScr;
Write(' Введите число в системе счисления с основанием 12: '); Read(st);
K:=Length(St); {Функция вычисления длины строки} Writeln(K);
M:=0;
for I:=1 to K do begin
S:=St[I];
if (S>='0') and (S<='9') then M:=M*12+ord(S)-ord('0') else M:=M*12+ord(S)-ord('A')+10;
end;
Writeln;
Writeln(' Число в десятичной системе равно ',M);
end.
Пример программыперевода числа из 10-ричной системы в 8-ричную: program Sus_ch1;
uses Crt; var S,St:string; J,M:integer;
begin ClrScr;
25
Write(' Введите число в системе счисления с основанием 10: '); Read(J);
While J<>0 do begin
M:=J mod 8; J:=J div 8;
Str(M,S); {Процедура преобразования числа в строку} St:=Concat(S,St); {Функция сцепления строк}
end;
Writeln;
Writeln(' Число в восмеричной системе равно ',St);
end.
Пример программы, которая во вводимом тексте заменяет сочетание букв "во" на "го":
program Obr_text; var
I: integer; St: string; C1,C2:char;
begin
Writeln('Введите предложение:'); Readln(St);
I:=1; repeat C1:=St[I];
C2:=St[I+1];
if (C1='в') and (C2='о') then St[I]:='г';
I:=I+1;
until (I=125) or (C2='.');
Writeln ('Исправленный текст:'); Writeln (St);
end.