Смекни!
smekni.com

Основы ПЭВМ (стр. 1 из 2)

Государственный Комитет Российской Федерации по высшему образованию Московская государственная текстильная академия имени А.Н.Косыгина

кафедра информатики и вычислительной техники

Практическая работа

по курсу

основы ПЭВМ

Группа № 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

PRINT TAB(10); "Точность"; TAB(35); "Решение (корень уравнения)"

PRINT

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 - имя переменной для записи математического ожидания кол-ва жителей.