Главная
Регистрация
Вход
Среда
25.12.2024
10:25
Приветствую Вас Гость | RSS

Сайт учителя информатики  

Тиньковой Елены Николаевны  


Меню сайта

Ученикам

Учителю

Категории раздела
В помощь ученику [8]
Школьные задания [17]
информация [44]
инф

Наш опрос
Оцените мой сайт
Всего ответов: 229

 Программирование 

В помощь программисту
язык программирования Питон     Языки

Справочник по Питону

Олимпиада по программированию

Еще всероссийская олимпиада

Готовимся к областной олимпиаде 

по информатике 
 
изучаем срочно vb studio 2008

вызов из файла:

Open "aaa.txt" For Input As #1
Line Input #1, Stroka
Close #1
End Sub

это если что-то нужно считать. Для записи в файл в команде "Open" нужно указывать "For Print"

"#1" - это ячейка файла в папке, особо преобразуемый в VB адрес файла. То есть фактически 
это порядковый номер файла, если упорядочить все файлы в папке по дате создания.
Как ни странно, программы в VB будут работать, даже если ячейку указать неправильно. 
Поэтому для первого файла, который Вы открываете, используется "#1", для второго "#2" и т.д.. 
Но при следующем обращении к этому же файлу ячейку нужно указывать правильно.

"aaa.txt" - полный путь к файлу, начиная от корневого каталога, заканчивая расширением файла.

Эта штука может не работать, если Вы обращаетесь к несуществующему файлу (например,
 Вас нужно, чтобы Бейсик сам его создал). Тогда в программном коде перед "Open" должна стоять строчка
"On Error Resume Next"
а сама команда "Open" выглядеть как "Open App.Path & "\aaa.txt" For Output As #1"

"On Error Resume Next" нужна для обхождения ошибки при запросе несуществующего файла.

итого:
Private Sub что_нибудь()
On Error Resume Next
Open App.Path & "\aaa.txt" For Output As #1
Close #1
Text1.Text = "Создан файл aaa.txt"
End Sub
 учебник

 

Например, если надо считать первую строку из какого-нибудь файла в переменную S, то код будет таким:

 

Dim MyFile 'Объявляем переменную для свободного файла

Dim S As String 'Переменная для хранения считанных данных

 

MyFile = FreeFile ' Присваиваем свободный канал, для работы с файлами

Open ("C:TEST.txt") For Input As #MyFile 'Открываем файл TEST.TXT для чтения

Line Input #MyFile, S 'Считываем первую строку из файла TEST.TXT в переменную S

Close #MyFile 'Закрываем файл

 

А если надо считать все данные из файла, то:

 

Dim MyFile 'Объявляем переменную для свободного файла

Dim S As String 'Переменная для хранения считанных данных

 

MyFile = FreeFile ' Присваиваем свободный канал, для работы с файлами

Open ("C:TEST.txt") For Input As #MyFile 'Открываем файл TEST.TXT для чтения

S = Input$(LOG(1), 1) 'Считываем весь файл в переменную S

Close #MyFile 'Закрываем файл

 

Для записи в файл существуют операторы Print #Номер_файла, Данные и Write #Номер_файла

Данные. Отличает эти операторы только то, что Write записывает данные в кавычках, а Print без кавычек.

 

Ниже следующий код создаст на диске C: новый файл TEST.TXT и запишет в него две строки, 

первую без кавычек, а вторую в кавычках:

 

Dim MyFile 'Объявляем переменную для свободного файла

 

MyFile = FreeFile ' Присваиваем свободный канал, для работы с файлами

Open ("C:TEST.txt") For Output As #MyFile 'Открываем файл TEST.TXT для записи

Print #MyFile, "Эта строка записана оператором Print, она без кавычек…"

Write #MyFile, "Эта строка записана оператором Write, она в кавычках…"

Close #MyFile 'Закрываем файл




Язык программирования Visual Basic

Module Module1

    Sub Main()
        Dim c, V1, V2, x As String
        Dim n, m, x1, x2 As Integer
        Dim i As Integer
        V1 = "C:\Olymps\Entina\Entina1\Z1\Test16.txt"
        V2 = "C:\Olymps\Entina\Entina1\Z1\rez16.txt"
        FileOpen(1, V1, OpenMode.Input) : FileOpen(2, V2, OpenMode.Output)
        Input(1, n)
        Input(1, m)

        If n > m Then
            x1 = Int(n / 2)
            If n / 2 <> Int(n / 2) Then x1 = x1 + 1
            x2 = m
        End If
        If m > n Or m = n Then
            x1 = Int(m / 2)
            If m / 2 <> Int(m / 2) Then x1 = x1 + 1
            x2 = n
        End If

        Print(2, x1)
        Print(2, x2)
        FileClose(1)
        FileClose(2)

    End Sub

End Module
 
2Круглый стол

В клуб приходят на занятия m мальчиков и n девочек. Иван Петрович заметил, что мальчик активно участвует в обсуждении только тогда, когда непосредственно рядом с ним с обеих сторон от него сидят девочки, а девочка активно участвует в обсуждении только тогда, когда непосредственно рядом с ней с одной стороны от нее сидит мальчик, а с другой — девочка.

Требуется написать программу, которая по заданным числам m и n выведет такой способ размещения m мальчиков и n девочек за круглым столом, при котором максимальное количество членов клуба будет активно участвовать в обсуждении.


Module Module1

    Sub Main()
        Dim c, V1, V2, x As String
        Dim n, m, x1, x2 As Integer
        Dim i As Integer
        V1 = "C:\Olymps\Entina\Entina2\Z2\test201.txt"
        V2 = "C:\Olymps\Entina\Entina2\Z2\rez201.txt"
        FileOpen(1, V1, OpenMode.Input) : FileOpen(2, V2, OpenMode.Output)
        Input(1, n)
        Input(1, m)
        FileClose(1)
        x1 = n
        x2 = m
        x = ""
        Do While n > 0 And m > 0
            x = x + "B"
            n = n - 1
            x = x + "G"
            m = m - 1
            If m > 0 Then x = x + "G"
            If m > 0 Then m = m - 1
        Loop

        If m = 0 And n > 0 Then
            For i = 1 To n
                x = x + "B"
            Next
        End If
        If n = 0 And m > 0 Then
            For i = 1 To m
                x = x + "G"
            Next
        End If

        Print(2, x)
        FileClose(2)
    End Sub
End Module
 
3Поврежденный XML

                 

Формат XML является распространенным способом обмена данными между различными программами. Недавно программист Иванов написал небольшую программу, которая сохраняет некоторую важную информацию в виде XML-строки.

XML-строка состоит из открывающих и закрывающих тегов.

Открывающий тег начинается с открывающей угловой скобки (<), за ней следует имя тега — непустая строка из строчных букв латинского алфавита, а затем закрывающая угловая скобка (>). Примеры открывающих тегов: <a>, <dog>.

Закрывающий тег начинается с открывающей угловой скобки, за ней следует прямой слеш (/), затем имя тега — непустая строка из строчных букв латинского алфавита, а затем закрывающая угловая скобка. Примеры закрывающихся тегов: </a>, </dog>.

XML-строка называется корректной, если она может быть получена по следующим правилам:

·                                 Пустая строка является корректной XML-строкой.

·                                 Если A и B — корректные XML-строки, то строка AB, получающаяся приписыванием строки B в конец строки A, также является корректной
XML-строкой.

·                                 Если A — корректная XML-строка, то строка <X>A</X>, получающаяся приписыванием в начало A открывающегося тега, а в конец — закрывающегося с таким же именем, также является корректной XML-строкой. Здесь X — любая непустая строка из строчных букв латинского алфавита.

Например, представленные ниже строки:

<a></a>

<a><ab></ab><c></c></a>

<a></a><a></a><a></a>

являются корректными XML-строками, а такие строки как:

<a></b>

<a><b>

<a><b></a></b>

не являются корректными XML-строками.  Иванов отправил файл с сохраненной XML-строкой по электронной почте своему коллеге Петрову. Однако, к сожалению, файл повредился в процессе пересылки: ровно один символ в строке заменился на некоторый другой символ. Требуется написать программу, которая по строке, которую получил Петров, восстановит исходную XML-строку, которую отправлял Иванов.

Формат входного файла. Входной файл содержит одну строку, которая заменой ровно одного символа может быть превращена в корректную XML-строку. Длина строки лежит в пределах от 7 до 1000, включительно. Строка содержит только строчные буквы латинского алфавита и символы «<» (ASCII код 60), «>»(ASCII код 62) и «/»(ASCII код 47). Строка во входном файле заканчивается переводом строки.

Формат выходного файла. Выходной файл должен содержать корректную XML-строку, которая может быть получена из строки во входном файле заменой ровно одного символа на другой. Если вариантов ответа несколько, можно вывести любой.

Примеры входных и выходных файлов

Test301.txt – Test304.txt

Result301.txt – Result304.txt

<a></b>

<a></a>

<a><aa>

<a></a>

<a><>a>

<a></a>

<a/</a>

<a></a>

Система оценивания. Правильные решения для тестов, в которых одна буква заменена на другую букву, оцениваются из 50 баллов.


Module Module1

    Sub Main()
        Dim c, V1, V2, x As String
        Dim n, m, x1, x2 As Integer
        Dim i As Integer
        V1 = "C:\Olymps\Entina\Entina4\Z4\test401.txt"
        V2 = "C:\Olymps\Entina\Entina4\Z4\rez401.txt"
        FileOpen(1, V1, OpenMode.Input) : FileOpen(2, V2, OpenMode.Output)
        Input(1, n)
        Dim a(n)
        For i = 1 To n
            Input(1, a(i))
        Next
        For i = 1 To n
            Print(2, a(i))
        Next i
        FileClose(1)
        FileClose(2)
    End Sub
End Module
 
4                        Игра с числами

 

Сегодня на уроке математики Петя и Вася изучали понятие арифметической прогрессии. Арифметической прогрессией с разностью d называется последовательность чисел a1, a2, …, ak, в которой разность между любыми двумя последовательными числами равна d. Например, последовательность 2, 5, 8, 11 является арифметической прогрессией с разностью 3.  После урока Петя и Вася придумали новую игру с числами. Игра проходит следующим образом.  В корзине находятся n фишек, на которых написаны различные целые числа a1, a2, …, an. По ходу игры игроки выкладывают фишки из корзины на стол. Петя и Вася делают ходы по очереди, первым ходит Петя. Ход состоит в том, что игрок берет одну фишку из корзины и выкладывает ее на стол. Игрок может сам решить, какую фишку взять. После этого он должен назвать целое число d ≥ 2 такое, что все числа на выбранных к данному моменту фишках являются членами некоторой арифметической прогрессии с разностью d, не обязательно последовательными. Например, если на столе выложены фишки с числами 2, 8 и 11, то можно назвать число 3, поскольку эти числа являются членами приведенной в начале условия арифметической прогрессии с разностью 3.

Игрок проигрывает, если он не может сделать ход из-за отсутствия фишек в корзине или из-за того, что добавление любой фишки из корзины на стол приводит к тому, что он не сможет подобрать соответствующее число d.  Например, если в корзине имеются числа 2, 3, 5 и 7, то Петя может выиграть. Для этого ему необходимо первым ходом выложить на стол число 3. После первого хода у него много вариантов назвать число d, например он может назвать d = 3. Теперь у Васи два варианта хода.

1)                              Вася может вторым ходом выложить фишку с числом 5 и назвать d = 2. Тогда Петя выкладывает фишку с числом 7, называя d = 2. На столе оказываются фишки с числами 3, 5 и 7, а в корзине осталась только фишка с числом 2. Вася не может ее выложить, поскольку после этого он не сможет назвать корректное число d. В этом случае Вася проигрывает.

2)                              Вася может вторым ходом выложить фишку с числом 7 и также назвать, например, d = 2. Тогда Петя выкладывает фишку с числом 5, называя также d = 2. Вася снова попадает в ситуацию, когда на столе оказываются фишки с числами 3, 5 и 7, а в корзине осталась только фишка с числом 2, и он также проигрывает.

Заметим, что любой другой первый ход Пети приводит к его проигрышу. Если он выкладывает число 2, то Вася отвечает числом 7, и Петя не может выложить ни одной фишки. Если Петя выкладывает фишку с числом 5 или 7, то Вася выкладывает фишку с числом 2, и у Пети также нет допустимого хода.

Требуется написать программу, которая по заданному количеству фишек n и числам на фишках a1, a2, …, an определяет, сможет ли Петя выиграть вне зависимости от действий Васи, и находит все возможные первые ходы Пети, ведущие к выигрышу. 

Формат входного файла.  Первая строка входного файла содержит целое число n (1 ≤ ≤ 200). Вторая строка содержит n различных целых чисел a1, a2, …, an  (для всех i от 1 до n выполняется неравенство 1  ai  105). Соседние числа разделены ровно одним пробелом.

Формат выходного файла.  Первая строка выходного файла должна содержать число k — количество различных первых ходов, которые может сделать Петя, чтобы выиграть. Если Вася может выиграть вне зависимости от действий Пети, строка должна содержать цифру 0. Во второй строке должно содержаться k различных целых чисел — все выигрышные числа в порядке возрастания. Будем называть число выигрышным, если, выложив в качестве первого хода фишку, содержащую это число, Петя может выиграть вне зависимости от действий Васи. Соседние числа в строке должны быть разделены ровно одним пробелом.

Примеры входных и выходных файлов

Test401.txt, Test402.txt

Result401.txt, Result402.txt

4

2 3 5 7

1

3

2

2 4

0

Пояснения к примерам.  Первый пример рассматривается  в тексте условия этой задачи. Во втором примере, какую бы фишку не выложил Петя первым ходом, Вася в ответ выкладывает другую фишку, и Петя не может сделать ход из-за отсутствия фишек в корзине.

Система оценивания.  Правильные решения для тестов, в которых 1  n  15, будут оцениваться из 40 баллов.


 
Module Module1

    Sub Main()
        Dim V1, V2, x As String
        Dim n, m, x1, x2, d, c As Integer
        Dim i As Integer
        V1 = "C:\Olymps\Entina\Entina4\Z4\test401.txt"
        V2 = "C:\Olymps\Entina\Entina4\Z4\rez401.txt"
        FileOpen(1, V1, OpenMode.Input) : FileOpen(2, V2, OpenMode.Output)
        Input(1, n)
        Dim a(n), b(n, n)
        For i = 1 To n
            Input(1, a(i))
        Next
        FileClose(1)

        For i = 1 To n
            For j = 1 To n - 1
                c = a(i)
                b(i, j) = a(i + j - 1)
            Next
        Next

        FileClose(2)
    End Sub
End Module
 
5Задача 5. Кондиционер Имя входного файла: Test5X.txt. Имя выходного файла: Result5X.txt. X = 01, 02, 1 - 20 Ограничение по времени: 2 секунды. Ограничение по памяти: 256 мегабайт. В офисе, где работает программист Петр, установили кондиционер нового типа. Этот кондиционер отличается особой простотой в управлении. У кондиционера есть всего лишь два управляемых параметра: желаемая температура и режим работы. Кондиционер может работать в следующих четырех режимах: · «freeze» — охлаждение. В этом режиме кондиционер может только уменьшать температуру. Если температура в комнате и так не больше желаемой, то он выключается. · «heat» — нагрев. В этом режиме кондиционер может только увеличивать температуру. Если температура в комнате и так не меньше желаемой, то он выключается. · «auto» — автоматический режим. В этом режиме кондиционер может как увеличивать, так и уменьшать температуру в комнате до желаемой. · «fan» — вентиляция. В этом режиме кондиционер осуществляет только вентиляцию воздуха и не изменяет температуру в комнате. Кондиционер достаточно мощный, поэтому при настройке на правильный режим работы он за час доводит температуру в комнате до желаемой. Требуется написать программу, которая по заданной температуре в комнате troom, установленным на кондиционере желаемой температуре tcond и режиму работы определяет температуру, которая установится в комнате через час. Формат входного файла Первая строка входного файла содержит два целых числа troom, и tcond, разделенных ровно одним пробелом (–50 ≤ troom ≤ 50, –50 ≤ tcond ≤ 50). Вторая строка содержит одно слово, записанное строчными буквами латинского алфавита — режим работы кондиционера. Формат выходного файла Выходной файл должен содержать одно целое число — температуру, которая установится в комнате через час. Примеры входных и выходных файлов Test501.txt, Test502.txtResult501.txt, Result502.txt
10 20 heat                      20
10 20 freeze                     10

Module Module1

    Sub Main()
        Dim c, V1, V2, x As String
        Dim n, m, x1, x2 As Integer
        Dim i As Integer
        V1 = "C:\Olymps\Entina\Entina5\Z5\Test502.txt"
        V2 = "C:\Olymps\Entina\Entina5\Z5\rez502.txt"
        FileOpen(1, V1, OpenMode.Input) : FileOpen(2, V2, OpenMode.Output)
        Input(1, n)
        Input(1, m)
        Input(1, c)
        If n = m Then x1 = n
        If c = "fan" Then x1 = n
        If c = "freeze" Then
            If n > m Then x1 = m
            If n < m Then x1 = n
        End If
        If c = "heat" Then
            If n > m Then x1 = n
            If n < m Then x1 = m
        End If
        If c = "auto" Then x1 = m


        Print(2, x1)
        FileClose(1)
        FileClose(2)
    End Sub

End Module
6  Праздничный ужин
Рядом с офисом компании, в которой работает программист Джон, открылось новое кафе. Директор компании решил провести там новогодний ужин. Меню праздничного новогоднего ужина в кафе состоит из k типов блюд. Для каждого типа блюда есть несколько вариантов на выбор. Всего есть a1 вариантов для первого типа блюда, a2 вариантов для второго типа блюда, и так далее, ak вариантов для k-го типа блюда. Всего, таким образом, предлагается a1×a2×…×ak различных заказов праздничного ужина.
 

Всего на ужине будут присутств

Вход на сайт

Портфолио

Кабинет

Достижения

Поиск

Календарь
«  Декабрь 2024  »
ПнВтСрЧтПтСбВс
      1
2345678
9101112131415
16171819202122
23242526272829
3031

Друзья сайта

Бахмутова Е.Н.

Киреева Т.В.

Вахрамеева Л.Н.

Карабухина Н.П.

Тинькова Е.Н.

Горелова В.А.


Сайт существует

Статистика

Онлайн всего: 4
Гостей: 4
Пользователей: 0

Сайт посетили
Елена_Николаевна

Всего на сайте
Total users: 429

Copyright MyCorp © 2024
Конструктор сайтов - uCoz