Главная страница

Информатика. АВТ-018 Ковтуненко ЛР8. новосибирский государственный технический университет


Скачать 63.91 Kb.
Названиеновосибирский государственный технический университет
АнкорИнформатика
Дата03.12.2021
Размер63.91 Kb.
Формат файлаdocx
Имя файлаАВТ-018 Ковтуненко ЛР8.docx
ТипМетодические указания
#290271

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ государственное БЮДЖЕТНОЕ

образовательное учреждение

высшего образования

«НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»

_______________________________________________________________________
Факультет автоматики и вычислительной техники

Кафедра автоматики



ОТЧЁТ

по лабораторной работе №8

«ВВОД/ВЫВОД В ФАЙЛЫ. ЭЛЕМЕНТЫ УПРАВЛЕНИЯ»

по дисциплине: «Информатика»

вариант №16

Выполнил:Проверил:

студент гр. АВТ-018 Ковтуненко Денис доц. Худяков Д.С.

«9» декабря 2020 г.«___» _________ 2020 г.

_________________

(оценка, подпись)

Новосибирск

2020 г.

Цель работы (стр. 75):

  1. Научиться оперировать с текстовыми файлами.

  2. Научиться использовать элементы управления.

Задание 1. Научиться оперировать с текстовыми файлами и использовать элементы управления. Прочитать из текстового файла набор слов, обработать в подпрограмме-процедуре в соответствии с вариантом табл. 17 и вывести в другой текстовый файл.

Фрагмент таблицы 17

Задание

Вывести строки без повторения символов

Методические указания:

а) Записать в текстовый файл с помощью программы «Блокнот» набор строк;
б) На панели инструментов VBA выбрать кнопку пиктографического меню («Элементы управления»). Выбрать элемент – «Кнопка» и поместить его в рабочий лист Excel. Перейти в режим конструктора, нажав кнопку. В режиме конструктора два раза щелкнуть по элементу «Кнопка», после чего откроется редактор Visual Basic;
в) написать процедуру Sub, считывающую данные из созданного текстового файла;
г) создать еще три кнопки и написать три соответствующие им процедуры, каждая из которых соответственно обрабатывает данные из текстового файла по вариантам табл. 17, записывает результат решения в другой текстовый файл, очищает содержимое рабочего листа;
д) продемонстрировать результат работы программ с помощью программы «Блокнот».

Решение:

Private Sub CommandButton1_Click() Клик по первой кнопке
Dim NumOpenedFile%, i%, InputArray() As String
NumOpenedFile = FreeFile
Взял свободное числовое значение
i = 0
Open "D:\
Рабочий стол\АВТ-018 Ковтуненко ЛР8\Input.txt"Открыл файл ввода текста
For Input As NumOpenedFile
Do Until EOF(NumOpenedFile)
'Пока не кончится файл, делать этот цикл
ReDim Preserve InputArray(i) Ввод в столбик слов
Line Input #NumOpenedFile, InputArray(i)
Лист1.Range("a" & i + 1) = InputArray(i)
i = i + 1
Loop
Close NumOpenedFile
Закрыл читаемый файл
CommandButton1.Caption = "Данные записаны на лист"
End Sub
Private Sub CommandButton2_Click()
Клик по второй кнопке
Dim i%, j%
Dim Alphabet() As String
Dim InputString As String
Dim TempString As String
j = 1
Do While (Лист1.Range("A" & j) <> "")
Выполнение преобразований
InputString = LCase(
Лист1.Range("A" & j)) 'Входная строка, все символы - в нижнем регистре, т. к. заглавная "А" и строчная совсем разные символы.
ReDim Alphabet(1 To Len(InputString))
For i = 1 To Len(InputString)
Alphabet(i) = Mid(InputString, i, 1)
'Создание массива с буквами слова
If ((Len(InputString) - Len(Replace(InputString, Alphabet(i), ""))) / Len(Alphabet(i)) < 2) Then 'Если количество букв меньше, чем два,
TempString = TempString & Alphabet(i) 'то записать во временную переменную
End If
Next i
If (TempString = InputString) Then 'Если составленный алфавит, записанный в строку будет равен входной строке, то это одинаковые строки.
Лист1.Range("B" & j) = TempString
End If
TempString = "" 'Обнуление
j = j + 1 'Прибавление
Loop
CommandButton2.Caption = "Алгоритм записал результат в соседнюю ячейку"
End Sub
Private Sub CommandButton3_Click() ‘Клик по третьей кнопке
Dim i As Integer
Dim k As Integer
Dim WordsArray() As String
i = 1
k = 1
Do While Лист1.Range("A" & i) <> "" ‘Если в столбце А есть слово, то в B должен быть результат
If Лист1.Range("B" & i) <> "" Then ‘Если результат есть, то его надо записать в массив
ReDim Preserve WordsArray(1 To k)
WordsArray(k) = Лист1.Range("B" & i).Text
k = k + 1
End If
i = i + 1
Loop
Dim LineOut$, NumOpenedFile%
NumOpenedFile = FreeFile ‘Взял свободное числовое значение
Open "D:\Рабочий стол\АВТ-018 Ковтуненко ЛР8\Output.txt" ‘Открыл файл для вывода
For Output As NumOpenedFile
For i = 1 To (UBound(WordsArray) - LBound(WordsArray) + 1) ‘Делать цикл по количеству элементов массива
LineOut = WordsArray(i)
Print #NumOpenedFile, LineOut
Next
Close NumOpenedFile ‘Закрыть файл для записи
CommandButton3.Caption = "Запись файла выполнена"
End Sub
Private Sub CommandButton4_Click() ‘Клик по 4-ой кнопке
Dim i%
i = 1
Do While Лист1.Range("A" & i) <> "" ‘Чистка столбцов от слов
Лист1.
Range("A" & i) = ""
If Лист1.Range("B" & i) <> "" Then
Лист1.
Range("B" & i) = ""
End If
i = i + 1
Loop
CommandButton1.Caption = "Прочитать файл и записать на лист" ‘Назначить надпись первой кнопке
CommandButton2.Caption = "Преобразовать текст" ‘Назначить надпись второй кнопке
CommandButton3.Caption = "Записать в файл" ‘Назначить надпись третьей кнопке
End Sub
Р
езультаты
:



Выводы.

  1. Научился оперировать с текстовыми файлами.

  2. Научился использовать элементы управления.


написать администратору сайта