Обработка данных для получения статистических оценок.



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

по курсу

 

основы ПЭВМ

 

 

Группа № 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.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.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.1. Постановка задачи.

Написать программу ввода и обработки данных. Разработать контрольный пример, содержащий не менее 5 значений. Исходные данные и результаты расчета представить в виде таблицы

 

Обработка данных переписи населения

Область, край

Кол-во жителей

. . .    
математическое ожидание    
дисперсия    
квадратическое отклонение    
коэффициент вариации    

3.2. Условные обозначения.

N -кол-во .

A$(N) - массив областей, краев.

Т(N) - массив значений кол-ва жителей i-ой области.

M - имя переменной для записи математического ожидания кол-ва жителей.

D - имя переменной для записи дисперсии кол-ва жителей.

S - имя переменной для записи квадратического отклонения кол-ва жителей.

K - имя переменной для записи коэффициента вариации.

 

3.3. Блок-схема алгоритма решения задачи.

 

  начало

 

   

 

  N

 

   

 

описание массивов           A$(N), Т(N)

   

 

  I=1, N

 

   

 

   A$(I), Т(I)

 

   

 

   

 

  M=0

 

   

 

  I=1, N

 

   

 

   M=M+Т(I)

 

   

 

   

 

  M=M/N

 

   

 

  D = 0

 

   

 

  I=1, N

 

   

 

 

D = D +(Т(I) -M) ^ 2

 
   

 

   

 

   D=D/(N-1)

 

   

 

   S=SQR(D)

 

   

 

  K=S/M

 

   

 

  M,D,S,K

 

   

 

  конец

 

         

 

3.4. Программа.

СLS

INPUT "Введите количество областей, краев"; N

DIM A$(N), Т(N)

FOR I = 1 TO N

PRINT "Введите область, край"; I; "-х жителей”

INPUT A$(I)

PRINT "Введите количество жителей для ";I;"-го края "

INPUT Т(I)

NEXT I

M = 0

FOR I = 1 TO N

M = M + Т(I)

NEXT I

M = M / N

D = 0

FOR I = 1 TO N

D = D + (Т(I) - M) ^ 2

NEXT I

D = D / (N - 1)

S = SQR(D)

K = S / M

CLS

PRINT TAB(15); "Обработка данных переписи населения "

PRINT

PRINT TAB(8); "Область, край "; TAB(40); "Количество жителей "

PRINT

FOR I = 1 TO N

PRINT TAB(5); A$(I); TAB(45); Т(I)

NEXT I

PRINT

PRINT TAB(5); "Мат. ожидание"; TAB(45); M

PRINT TAB(5); "Дисперсия"; TAB(45); D

PRINT TAB(5); "Кв. отклонение"; TAB(45); S

PRINT TAB(5); "Коэф. вариации"; TAB(45); K

END

 

3.5. Контрольный пример.

 

Обработка данных переписи населения

Область, край Кол-во жителей
Владимирская 2300
Магаданская 1000
Тюменская 900
Московская 11000
Ивановская 3400
   
   
математическое ожидание 3720
дисперсия 1.7617E+07
квадратическое отклонение 4197.261
коэффициент вариации 1.128296

                  


Дата добавления: 2019-07-15; просмотров: 87; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!