Государственный Комитет Российской Федерации по высшему образованию Московская государственная текстильная академия имени А.Н.Косыгина
кафедра информатики и вычислительной техники
Практическая работа
по курсу
основы ПЭВМ
Группа № 46-94
Студент Бондаренко Ю.М.
Руководитель Цымбалюк М.Я.
Проверила Маланина Е.М
Москва 1995
Содержание:
1. Использование символьных функций
1.1 Постановка задачи
1.2. Условные обозначения
1.3. Блок-схема алгоритма решения задачи
1.4. Программа
1.5. Контрольный пример
2. Решение нелинейных уравнений
2.1 Постановка задачи
2.2. Условные обозначения
2.3. Блок-схема алгоритма решения задачи
2.4. Программа
2.5. Результаты решения уравнения
3. Обработка данных для получения статистических оценок
3.1 Постановка задачи
3.2. Условные обозначения
3.3. Блок-схема алгоритма решения задачи
3.4. Программа
3.5. Контрольный пример
4. Работа с каталогами и файлами в MS - DOS
4.1. Постановка задачи
4.2. Задание
5. Работа с каталогами и файлами
в системе NORTON COMMANDER
5.1. Постановка задачи
5.2. Задание
6. Вывод
1. Использование символьных функций.
1.1. Постановка задачи.
Написать программу с использованием символьных функций для обработки текста. Считать, что в заданном тексте слова разделены одним пробелом. Подсчитать кол-во вопросительных предложений в заданном тексте и кол-во слов в каждом из таких предложений.
1.2. Условные обозначения.
A$ - имя символьной переменной для записи заданного текста.
N - переменная для записи количества символов в тексте A$.
В$(N) - массив для записи символов, из которых состоит текст A$.
C(N) - массив для записи номера позиции, на котором в тексте находится символ “.”
S(N) - номера позиции, на которой в тексте A$ находится символ "?".
D(N) - массив значений, количества символов в каждом из предложений, из которых состоит текст.
R$(N,N) - массив для записи символов, из которых состоит каждое предложение.
K - переменная для записи количества “?” в тексте A$.
T - переменная для записи количества “.” в тексте A$.
F(N) - массив для записи количества пробелов каждого отдельного предложения.
C$(N) - массив для записи каждого предложения в отдельную ячейку.
B - переменная для подсчета количества пробелов в каждом предложении отдельно.
1.3. Блок-схема алгоритма решения задачи.
начало | ||
A$ | ||
N = LEN(A$) | ||
описание массивов B$(N), C(N), S(N), D(N), R$(N, N), E(N), C$(N) | ||
I=1, N | ||
B$(I)=MID$(A$, I, 1) | ||
K = 0,T = 0 | ||
I = 1, N | ||
B$(I) = "?" | ||
K = K + 1 S(K) = I | ||
B$(I) = "." | ||
T = T + 1 C(T) = I | ||
C(1) > S(1) | ||
C$(1) = MID$(A$, 1, S(1)) | ||
C$(1) = MID$(A$, C(1), S(1) - C(1)) | ||
I = 2, K | ||
C(I) > S(I) | ||
C$(I) = MID$(A$, S(I - 1), S(I) - S(I - 1)) | ||
C$(I) = MID$(A$, C(I), S(I) - C(I)) | ||
I = 1, K | ||
D(I) = LEN(C$(I)) | ||
I = 1, K | ||
J = 1, D(I) | ||
R$(I, J) = MID$(C$(I), J, 1) | ||
I = 1, K | ||
B = 0 | ||
J = 1, D(I) | ||
R$(I, J) = " " | ||
B = B + 1 | ||
C(1) > S(1) | ||
E(1) + 1 | ||
E(1) | ||
I = 2, K | ||
E(I) | ||
конец |
1.4. Программа.
CLS
INPUT "Введите текст"; A$
N = LEN(A$)
DIM B$(N), C(N), S(N), D(N), R$(N, N), E(N), C$(N)
FOR I = 1 TO N
B$(I) = MID$(A$, I, 1)
NEXT I
FOR I = 1 TO N
IF B$(I) = "?" THEN
K = K + 1
S(K) = I
END IF
IF B$(I) = "." THEN
T = T + 1
C(T) = I
END IF
NEXT I
IF C(1) > S(1) THEN
C$(1) = MID$(A$, 1, S(1))
ELSE
C$(1) = MID$(A$, C(1), S(1) - C(1))
END IF
FOR I = 2 TO K
IF C(I) > S(I) THEN
C$(I) = MID$(A$, S(I - 1), S(I) - S(I - 1))
ELSE
C$(I) = MID$(A$, C(I), S(I) - C(I))
END IF
NEXT I
FOR I = 1 TO K
D(I) = LEN(C$(I))
NEXT I
FOR I = 1 TO K
FOR J = 1 TO D(I)
R$(I, J) = MID$(C$(I), J, 1)
NEXT J
NEXT I
FOR I = 1 TO K
B = 0
FOR J = 1 TO D(I)
IF R$(I, J) = " " THEN
B = B + 1
END IF
NEXT J
E(I) = B
NEXT I
PRINT "Количество вопросительных предложений равно"; K
IF C(1) > S(1) THEN
PRINT "Количество cлов в 1-м вопросительном предложении равно"; E(1) + 1
ELSE
PRINT "Количество слов в 1-м вопросительном предложении равно"; E(1)
END IF
FOR I = 2 TO K
PRINT "Количество cлов в "; I; "-м вопросительном предложении равно"; E(I)
NEXT I
END
1.5. Контрольный пример.
Вы видите высокого человека у окна? Это известный актер. Вы хотите познакомиться с ним? Я вам помогу в этом.
Количество вопросительных предложений равно 2.
Количество слов в 1-м вопросительном предложении равно 6.
Количество слов в 2-м вопросительном предложении равно 5.
2. Решение нелинейных уравнений.
2.1. Постановка задачи.
Составить программу для нахождения корня уравнения на отрезке [0; 0,8] методом половинного деления с точностью 0.1, 0.01, 0.001, 0.0001.
tg x - 1/3 tg 3 x + 1/5 tg 5 x - 1/3 = 0
Результаты представить в таблице следующего вида:
Метод | |
Уравнение | |
Отрезок | |
Точность | Решение (корень уравнения) |
. . . |
2.2. Условные обозначения.
N - размерность массива значений точности решения.
E(N) - массив значений точности решения.
X(N) - массив значений корней уравнения с i-ой точностью.
А - имя переменной для записи левой границы отрезка.
В - имя переменной для записи правой границы отрезка.
2.3. Блок-схема алгоритма решения задачи.
начало | ||
A, B, N | ||
описание массивов X(N), E(N) | ||
I=1, N | ||
E(I) | ||
I=1, N | ||
A1 = A B1 = B | ||
Y = TAN(A1) - 1 / 3 * TAN(A1) ^ 3 + 1 / 5 * TAN(A1) ^ 5 - 1/ 3 | ||
X(I) = (A1 + B1) / 2 | ||
Z = TAN(X(I)) - 1/ 3*TAN(X(I)) ^3 + 1/ 5 * TAN(X(I)) ^ 5 - 1/ 3 | ||
Y * Z > 0 | ||
A1 = X(I) | ||
B1 = X(I) | ||
ABS(A1 - B1) > E(I) | ||
I=1, N | ||
X(I) < A OR X(I) > B | ||
E(I); "Решения на этом интервале нет" | ||
E(I); X(I) | ||
конец |
2.4. Программа.
CLS
INPUT "Введите левую границу отрезка"; A
INPUT "Введите правую границу отрезка"; B
INPUT "Введите число значений точности"; N
DIM E(N), X(N)
FOR I = 1 TO N
PRINT "Введите"; I; "значение точности"
INPUT E(I)
NEXT I
FOR I = 1 TO N
A1 = A
B1 = B
M1: Y = TAN(A1) - 1 / 3 * TAN(A1) ^ 3 + 1 / 5 * TAN(A1) ^ 5 - 1 / 3
X(I) = (A1 + B1) / 2
Z = TAN(X(I)) - 1 / 3 * TAN(X(I)) ^ 3 + 1 / 5 * TAN(X(I)) ^ 5 - 1 / 3
IF Y * Z > 0 THEN
A1 = X(I)
ELSE B1 = X(I)
END IF
IF ABS(A1 - B1) > E(I) THEN GOTO M1
NEXT I
CLS
PRINT TAB(15); "Метод"; TAB(30); "половинного деления"
PRINT TAB(15); "Уравнение"; TAB(30); "tg x - 1/3 tg ( x )^3 + 1/5 tg ( x )^5 - 1/3 = 0"
PRINT TAB(15); "Отрезок"; TAB(30); "["; A; ";"; B; "]"
PRINT TAB(10); "Точность"; TAB(35); "Решение (корень уравнения)"
FOR I = 1 TO N
IF X(I) < A OR X(I) > B THEN
PRINT TAB(12); E(I); TAB(40); "Решения на этом интервале нет"
ELSE
PRINT TAB(12); E(I); TAB(40); X(I)
END IF
NEXT I
END
2.5. Результаты решения уравнения.
Метод | методом половинного деления |
Уравнение | tg x - 1/3 tg 3 x + 1/5 tg 5 x - 1/3 = 0 |
Отрезок | [0 ; 0,8] |
Точность | Решение (корень уравнения) |
0.1 | 3.437500 |
0.01 | 3.476563 |
0.001 | 3.475586 |
0.0001 | 3.474792 |
3. Обработка данных для получения статистических оценок.
3.1. Постановка задачи.
Написать программу ввода и обработки данных. Разработать контрольный пример, содержащий не менее 5 значений. Исходные данные и результаты расчета представить в виде таблицы
Обработка данных переписи населения | |||||
Область, край | Кол-во жителей | ||||
. . . | |||||
математическое ожидание | |||||
дисперсия | |||||
квадратическое отклонение | |||||
коэффициент вариации |
3.2. Условные обозначения.
N -кол-во .
A$(N) - массив областей, краев.
Т(N) - массив значений кол-ва жителей i-ой области.
M - имя переменной для записи математического ожидания кол-ва жителей.