Программирование на языке qbasic


Операторы DATA, READ, RESTORE



бет13/13
Дата28.06.2016
өлшемі479.5 Kb.
#163119
1   ...   5   6   7   8   9   10   11   12   13

Операторы DATA, READ, RESTORE

Иногда удобнее не самим заполнять массив, а задать конкретные числа, которыми следует его заполнить.

Пример:

Составим программу, которая по задаваемой цифре месяца пишет его название.


DATA январь, февраль, март, апрель, май

DATA июнь, июль, август, сентябрь, октябрь

DATA ноябрь, декабрь

DIM Kuud$(12)

'заполняем массив

FOR I = 1 TO 12

'читаем данные

READ Kuud$(I)

NEXT I


INPUT "Введи номер месяца"; N

PRINT Kuud$(N)


Здесь использованы опнраторы DATA, READ.



DATA – перечисляет символьные или числовые данные, записанные через запятую. Символьные данные должны быть в кавычках.

READ- читает их подряд.

Оператор DATA не выполняется, поэтому может находится в любом месте программы.

Если читать с помощью READ больше данных, чем есть в DATA будет сообщение об ошибке, читать меньше данных можно.

Часто используется вместе с операторами DATA, READ также оператор RESTORE. RESTORE – восстанавливает данные и их можно читать второй раз.




19. Задания





        1. Создать программу, которая вычисляет скалярное произведение двух N мерных векторов. Координаты векторов и число N задаются пользователями. Для нахождения скалярного произведения создать функцию пользователя SKALAAR(A(),B()), где A() и B() массивы. Размер массива А задаётся с помощью функции UBOUND(A) в функции пользователя.

        2. Создать программу, которая находит острый угол между двумя N-мерными векторами. Для нахождения угла создаём функцию пользователя NURK(A(),B()), где A() и B() –массивы. Размер массива А задаётся с помощью функции UBOUND(A) в функции пользователя. Можно использовать созданную в предыдущем задании функцию SKALAAR(A(),B()).

        3. Создать программу обучения иностранным словам так, чтобы пользователю не надо было бы самому вводить слова, а задать их с помощью DATA. Количество пар слов выбираем сами, но не менее 10.

        4. Создать программу, которая выбирала бы из вводимых слов все гласные буквы и отдельно все согласные. Для этого создать функцию пользователя TAISHAALIK(taht$), для гласных букв. Основная программа проверяла бы –выбранная буква является гласной или нет. Оператор DATA , перечисляющий гласные, использовать в основной программе.

        5. Среди заданных с помощью оператора DATA числовых и символьных переменных выбрать отдельно символные переменные и напечатать их, а числовые переменные сложить и распечатать сумму.

        6. Заданных с помощью оператора DATA учеников разделить на две группы и распечатать результат.

        7. Вычислить значение

Y=x^3+5x^2+6x+7

Z=12x^5+11x^4+10x^3+123

При х=12, 15, 25, 7, 13, 2, 6, 9, 16, 19, 21.


  1. Просклонять слово «книга», задавая окончания с помощью оператора DATA.



20. Работа с файлами.

Рассмотрим, как записывать данные в файл и как их оттуда брать.

При открытии файла используются следующие режимы:


  1. INPUT – для чтения текста из файла;

  2. OUTPUT- для записи текста в файл;

  3. APPEND – для добавления текста в файл;

Файл открывает оператор OPEN.

Например оператор



OPEN "proov.txt" FOR OUTPUT AS #1

Открывает файл proov.txt для записи. Файл proov.txt заносится в активный каталог. Перед названием файла может быть указан путь, где файл находится, например, "c:\temp\proov.txt".



#1 – обозначает порядковый номер файла. Одновременно может быть открыто несколько файлов. У каждого –своё имя и свой порядковый номер.

Если хотим читать из файла proov.txt , то его надо открыть для чтения:



OPEN "proov.txt" FOR INPUT AS #1

После чтения/записи файл надо обязательно закрыть с помощью оператора CLOSE.



CLOSE #1 – закрывает файл с номером #1

CLOSE – закрывает все открытые файлы.

Запись в файл

Запись в файл происходит с помощью оператора PRINT, но надо указать порядковый номар файла.

Пример: Программа, которая запрашивает слово и записывает его в файл.


OPEN "proov.txt" FOR OUTPUT AS #1

INPUT "Введи слово"; Tekst$

PRINT #1, Tekst$ 'записываем слово в файл

CLOSE #1 'закрываем файл



Вместо оператора PRINT можно использовать оператор WRITE. Оператор WRITE добавляет запятые между числами и кавычки для символов в файл.


Пример: Программа, которая записывает в файл andmed.txt данные 5 человек.




OPEN "andmed.txt" FOR OUTPUT AS #1

FOR I = 1 TO 5

INPUT "Введи имя:"; Nimi$

INPUT "Введи возраст:"; Vanus

INPUT "Введи пол:"; Sugu$

WRITE #1, Nimi$, Vanus, Sugu$

NEXT I

CLOSE #1




Если открыть файл в режиме OUTPUT и записать туда данные, файл перепишется заново. Для добавления данных надо использовать режим APPEND.


Чтение из файла




Читать из файла можно с помощью оператора INPUT. Надо указать также порядковый номер файла.

Пример: Программа считывает из файла proov.txt текст до запятой.


OPEN "proov.txt" FOR INPUT AS #1

INPUT #1, Tekst$

PRINT "В файле был текст: "; Tekst$

CLOSE #1




Для чтения следующего значения надо снова использовать оператор INPUT . Значения в файле отделены запятыми.

Пример: Для чтения из файла, невзирая на запятые, используется оператор LINE INPUT .




OPEN "andmed.txt" FOR INPUT AS #1

'читаем данные 5 человек

PRINT "Содержимое файла:"

FOR I = 1 TO 5

LINE INPUT #1, RIDA$

PRINT RIDA$

NEXT I

CLOSE #1



Добавление текста в файл




В этом случае файл открывают в режиме APPEND.



Пример: Программа добавляет в файл proov.txt ещё один ряд.

OPEN "proov.txt" FOR APPEND AS #1

PRINT #1, "Ещё один ряд!"

CLOSE #1




Уничтожение файла




Уничтожение файла происходит с помощью оператора KILL.



Например, хотим уничтожить файл proov.txt.
Это делается командой:

KILL "proov.txt"


21. Некоторые примеры



Пример1.
Программа, которая записывает числа, делящиеся на 2 в файл 2.txt, делящиеся на 3 –в 3.txt, остальные в файл teised.txt.


OPEN "2.txt" FOR OUTPUT AS #1

OPEN "3.txt" FOR OUTPUT AS #2

OPEN "teised.txt" FOR OUTPUT AS #3
INPUT "Сколько чисел смотрим"; PIIR

FOR I = 1 TO PIIR

'если I делится на 2 , то записываем в файл#1

IF I / 2 = INT(I / 2) THEN PRINT #1, I;

IF I / 3 = INT(I / 3) THEN PRINT #2, I;

'иначе - в файл #3

IF I / 3 <> INT(I / 3) AND I / 2 <> INT(I / 2) THEN PRINT #3, I

NEXT I


CLOSE


Прмер 2.
Программа, которая записывает имена и возраст людей из массива в файл andmed.txt


INPUT "Сколько данных вводим"; N

'объявляем массивы

DIM Nimed$(N) 'массив имён

DIM Vanused(N) 'массив возраста

'заносим имена в массив

FOR I = 1 TO N

PRINT "Введи"; I; ". имя";

INPUT Nimed$(I)

PRINT "Введи"; I; ". возраст";

INPUT Vanused(I)

NEXT I

'Заносим данные в файл andmed.txt



OPEN "andmed.txt" FOR OUTPUT AS #1

FOR I = 1 TO N

WRITE #1, Nimed$(I), Vanused(I)

NEXT I


CLOSE #1



Пример3.
Программа, которая читает из файла andmed.txt имена и возраст и выдаёт их на экран.

CLS


OPEN "andmed.txt" FOR INPUT AS #1

'повторяем цикл до тех пор, пока не иссякнут данные (функция EOF).

DO

INPUT #1, NIMI$, VANUS



PRINT "Имя:"; NIMI$

PRINT "Возраст:"; VANUS

LOOP UNTIL EOF(1)

CLOSE #1





Функция EOF принимает значение 1, если конец файла и 0 – в противном случае. Аргументом функции является порядковый номер файла.



22. Задания





    1. Создать программу, которая записывает в файл все простые числа до N , которое задаётся пользователем

    2. Создать программу, которая указывала бы все возможные комбанации получения кроны из центов

50 центов

20 центов

10 центов

5 центов

0

0

0

20

0

0

1

18

Чтобы получить колонки, удобно данные поместить в файл так:

PRINT #1, A, B, C, D. Удобно также записать PRINT #1, "50 сентов", "20 сентов», "10 сентов», "5 сентов".



    1. Создать функцию пользователя LOENDA(failinimi$,), которая читала бы из файла failinimi$ частоту появления буквы a$. Файл для чтения должен быть создан в Notepad. Основная программа показывает частоту вхождения разных букв в файл.

  1. Создать графическую программу расположения на экране точек, удовлетворяющих условию:

где N – натуральное число.



  1. Создать графическую программу(SCREEN 12)., которая закрашиавает экран разноцветными точками. Цвет выбирается из условия VARV=10 * SIN(50 * x * y), где x и y –переменные (x меняется от 0 до 639, а y от 0 до 479).

  2. Создать программу, которая находила бы все числа, похожие на 3025, для которых верно:

30 + 25 = 55
55^2 = 3025.
Использовать функции VAL, STR$, MID$, LTRIM$,LEFT$ ja RIGHT$.

  1. Найти все 4-х значные натуральные числа, которые при чтении в обратном порядке дают число в 4,5 раз большее.

  2. Создать в Excel функцию пользователя LOENDAFAILIST(Failinimi, Taht), которая считала бы частоту вхождения буквы Taht в файл Failinimi. Сохранить это файл 8.xls.



23. Создание функции пользователя в Excel с помощью Visual Basic


Для создания функции пользователя выбираем в меню Tools, Macro, Visual Basic Editor. Затем Insert, Module. Здесь пишем текст программы на Бейсике, например, программу для подсчёта частоты вхождения заданной буквы в текст:


Function LOENDAFAILIST(failinimi$, a$)

Open failinimi$ For Input As #1

Do

Line Input #1, tekst$



For x = 1 To Len(tekst$)

If a$ = Mid$(tekst$, x, 1) Then mitu = mitu + 1

Next

LOENDAFAILIST = mitu



Loop Until EOF(1)

Close #1


End Function
Внутри кнопки fx среди пользовательских функций User defined появляется функция LOENDAFAILIST(failnimi$, a$) с двумя аргументами. В качестве первого аргумента пишем адрес текста, в котором надо подсчитать количество заданных букв, в качестве второго аргумента в кавычках букву, частоту которой в тексте надо подсчитать, например, =LOENDAFAILIST("c:\MyDocu~1\Galina\LOE.txt";"a") и ОК.

24. Используемые источники





    1. Dan Bogdanov. Programmeerimiskeel BASIC.

    2. Anti Teepere. QBASICu kaugkoolituskursus. (anti@7t.ee)





Достарыңызбен бөлісу:
1   ...   5   6   7   8   9   10   11   12   13




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет