Меркулов Юрий Александрович : другие произведения.

Наверно Windows сошли с ума или Мой Бэсик

Самиздат: [Регистрация] [Найти] [Рейтинги] [Обсуждения] [Новинки] [Обзоры] [Помощь|Техвопросы]
Ссылки:


 Ваша оценка:
  • Аннотация:
    Безусловно, нижеследующий текст не относится к разряду классической литературы. Но чувства и страсти, пережитые мной в ПРОЦЕССЕ, заставили меня в этом усомниться. Конечно, полностью и легко понятным мой роман будет только квалифицированным программистам или людям ПЕРЕЖИВШИМ уже подобное, но ведь предполагается же, что читатель ВЛАДЕЕТ тем языком, на котором написано литературное произведение?

  ЧАСТЬ ПЕРВАЯ
  
  Необходимое предисловие читателям моего сайта, сайта “Проза Ру”, “Самиздат”, “фАбрика” и всех прочих глубокоуважаемых ресурсов:
  
  Безусловно, нижеследующий текст не относится к разряду классической литературы. Но чувства и страсти, пережитые мной в ПРОЦЕССЕ, заставили меня в этом усомниться.
  Конечно, полностью и легко понятным мой роман будет только квалифицированным программистам или людям ПЕРЕЖИВШИМ уже подобное, но ведь предполагается же, что читатель ВЛАДЕЕТ тем языком, на котором написано литературное произведение?
  
  
  
  
  Наверно Windows сошли с ума или Мой Бэсик
  роман
  
  
  1.
  
  
  
  
  
  
  
  ...Итак: задача сформулирована: через два месяца я должен предстать перед глазами весьма, - ох, весьма компетентной публики и выглядеть человеком, который не просидел десять лет на жопе в высоком во всех отношениях кресле, а наоборот - работал. Причем по специальности: автоматизированные системы управления производством. Стало быть - программист.
  
  Что имеем в багаже? Два года в физмат-школе. Первый компьютерный класс города - это то что мы помогали разгружать и устанавливать. Да, он был. БК 001, с вводом с магнитофона “Романтик 303” и тастатурной клавой в виде пленки над микриками.
  И был, конечно, бэсик. Нет, Фортран, Ассемблера и зачатки Си тоже конечно были, но вот этот Бэсик - его ни с чем сравнить нельзя, конечно. Ах, эта романтика первого в жизни “гоу ту” и “Иф зен”. Сотни программ, использующие только эти два оператора было написано тогда нами. Это и графики и игры и обучающие. А уж тестов было! Включая даже те, что на беременность. Два генератора случайных чисел с успехом заменяли интеллект среднего школьника. Для проверки “защиты от дурака”, под видом презентации, приглашались лучшие физруки, НВП-шники и завучи.
  
  Потом был “Спектрум”. Популярная игрушка, способная однако оценить способности начинающего закончившего. Он успешно рисовал красные и зеленые графики приращения моего бицепса и сокращения живота, выдавая на гора рекомендации из Джо Уайдера...
  Оно все работало, оно все двигалось, оно тогда еще не знало, что скоро всем придет Windows...
  
  
  Спектрум сломался быстро, да и надо было заниматься чем-то конкретным. Так, в конкретной суете, я позабыл старого друга Бэсика на долгие, долгие годы...
  
  
  И вот, задача сформулирована: через два месяца!
  Теперь у меня не комп - зверь. За пять сантиметров до кнопки “вкл”, палец уже ощущает излучаемую им мощь, а глаза отдыхают на огромных, безупречно плоских и совершенно безвредных пространствах - полях 17 - дюймового жидкокристаллического... Это как с потенцией: есть чем, но некого или же есть кого, но нечем...
  Ладно моя машина - я хоть пишу на ней и рисую - а сколько таких “лайнеров мира пеце” жестко повязаных узколобостью их владельцев томятся от неподвижности, переворачивая в жестком диске одни и те же файлы каталога Games...
  
  И вот у меня в руках две огромные зеленые книжки. В совокупности - 1200 страниц, каждая из которых потребует от меня серьезных усилий. Каждая будет прочитана трижды, четырежды, больше, больше...
  
  
  С книжкой повезло: просто, подробно, иллюстративно. Поставил на комп “Вижуал Студио” - думал, что это страшно, а это легко и красиво, как любая программа Windows.
  Прокликал все, что можно, определив назначение кнопок и вкладок. Опять просто!
  
  
  
  Private Sub List1_Click()
  End Sub
  
  Private Sub Command1_Click()
  Print "lewaya srabotala"
  End Sub
  
  Private Sub Command1_DblClick()
  Print "Dwoinoi Wann damm"
  End Sub
  
  Private Sub Picture1_DblClick()
  Print "Wo bliat,rabotaet!"
  End Sub
  
  
  Private Sub Command2_MouseDown(Button As Integer, Shift As Integer, _
   X As Single, Y As Single)
  
  Print "Kak na prawuyu reaktion"
  End Sub
  
  
  Private Sub Text1_KeyPress(KeyAscii As Integer)
  If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0
  If KeyAscii = 48 Then Print "Nolik napecatalo"
  If KeyAscii = 57 Then Print "A tepier Dewiatosku!"
  End Sub
  
  
  Private Sub Text1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  Print "A ja Jehayu!"
  End Sub
  
  Private Sub Text1_MouseUp(Button As Integer, _
   Shift As Integer, X As Single, Y As Single)
  Print "Gut, dann schreibst du!"
  End Sub
  
  
  
  Поразительно: так просто создать экзешник! Просто нажать на кнопку и выбрать вкладку - и вот уже твоя чушь выглядит как настоящее окошко Винд. А ведь там на заголовок заготовки- формочки можно еще и имечко вписать! Картиночку положить! Класс! Делаю первый экзешник, посылаю друзьям по мылу...
  
  Все понимаю - как создавать интерфейс, как прописывать реакцию на нажатие кнопки, например или ввод текста и как это можно было бы использовать догадываюсь... Вот только нафига нужно окно проверки?
  
  Учусь снимать “реакцию” кнопки мышки. Кликаю по форме, кликаю по кнопке - все работает. Опять классно!
  
  Научился переводить фокус с кнопки на кнопку в нужном мне порядке. Это просто.
  
  Очень хотелось попробовать что-то самому, быстрее, быстрее. Вспомнились старые “гоуту” и “иф” . Ну и Принт тоже был кстати...
  
  Счетчик долгов - процентов по долгам. Это было осмысленно. то есть предназначение каждого символа было для меня совершенно ясно.
  
  
  Private Sub SchowPayment_Click()
  Dim Payment As Single
  Dim LoanIrate As Single
  Dim Loanduration As Integer
  Dim LoanAmout As Single
  
  If IsNumeric(Amount.Text) Then
  LoanAmount = Amount.Text
  
  Else
  Amount.SetFocus
  MsgBox "Пиши лучше честно сколько должен!"
  
  
  Exit Sub
  End If
  
  If IsNumeric(Irate.Text) Then
  LoanRate = 0.01 * Irate.Text / 12
  Else
  MsgBox "Чета я непоняла - сколько процентов?"
  
  Exit Sub
  End If
  
  If IsNumeric(Duration.Text) Then
  Loanduration = Duration.Text
  Else
  MsgBox "Придурок, сколько месяцев отдавать собираешься?"
  
  Exit Sub
  End If
  
  
  Payment = Pmt(LoanRate, Loanduration, -LoanAmount, 0, _
  PayEarly.Value)
  
  txtPmt.Text = Format$(Payment, "#.000")
  
  End Sub
  
  Private Sub Command2_Click()
  MsgBox " Alles Gute!"
  End
  End Sub
  
  
  Ну и естественно, захотелось добавить пару “личных особенностей”. Получилось, правда потребовалась целая прорва времени, но зато когда заработало - было в кайф. Еще бы! первая практически программа!
  Жаль, только что не полностью моя, зато я могу теперь запросто написать что-то подобное, вычислительное с комментариями и кое-где красненьким!
  
  
  
  
  Љ
  
  
  
  
  Калькулятор заработал быстро. Я его просто списал с шаблона. Ну вот разве что цвет да интерфейс да кнопку выхода да кнопку квадратного корня да кнопку о программе да еще кое что сам, а остальное - да, сдул.
  
  Option Explicit
  Dim Operand1 As Double, Operand2 As Double
  Dim Operator As String
  Dim ClearDisplay As Boolean
  Private Sub ClearBttn_Click(Index As Integer)
  Display.Caption = " "
  End Sub
  Private Sub Command1_Click()
  Display.Caption = Sqr(Val(Display.Caption))
  End Sub
  Private Sub Sin_Click(Index As Integer)
  Display.Caption = Sin(Val(Display.Caption))
  End Sub
  Private Sub Command3_Click()
  Display.Caption = Cos(Val(Display.Caption))
  End Sub
  Private Sub Command2_Click()
  Display.Caption = Sin(Val(Display.Caption))
  End Sub
  
  Private Sub Command4_Click()
  MsgBox " Alles" & vbCrLf & " Klar!"
  End
  End Sub
  
  Private Sub Command5_Click()
  MsgBox "Dieses Programm ist ein Geschenk" & vbCrLf & " von Juergen Graefenstein" & vbCrLf & _
  " Mach Spass!"
  
  End Sub
  
  Private Sub Digits_Click(Index As Integer)
  If ClearDisplay Then
   Display.Caption = " "
  ClearDisplay = False
  End If
  Display.Caption = Display.Caption + Digits(Index).Caption
  End Sub
  Private Sub Div_Click(Index As Integer)
  Operand1 = Val(Display.Caption)
  Operator = "/"
  Display = " "
  End Sub
  Private Sub DotBttn_Click(Index As Integer)
  If InStr(Display.Caption, ".") Then
  MsgBox " Ein Komma ist nur einmal!"
  Exit Sub
  Else
  Display.Caption = Display.Caption + "."
  End If
  End Sub
  Private Sub Equals_Click(Index As Integer)
  Dim result As Double
  On Error GoTo ErrorHandler
  Operand2 = Val(Display.Caption)
  If Operator = "+" Then result = Operand1 + Operand2
  If Operator = "-" Then result = Operand1 - Operand2
  If Operator = "*" Then result = Operand1 * Operand2
  If Operator = "/" And Operand2 <> "0" Then result = Operand1 / Operand2
  Display.Caption = result
  ClearDisplay = True
  Exit Sub
  ErrorHandler:
  MsgBox "Etwas war Falsch!" & vbCrLf & Err.Description
  Display.Caption = "Scheisse!"
  ClearDisplay = True
  End Sub
  
  Private Sub Minus_Click(Index As Integer)
  Operand1 = Val(Display.Caption)
  Operator = "-"
  Display = " "
  End Sub
  Private Sub Over_Click(Index As Integer)
  If Val(Display.Caption) <> "0" Then Display.Caption = _
  1 / Val(Display.Caption)
  End Sub
  Private Sub Plus_Click(Index As Integer)
  Operand1 = Val(Display.Caption)
  Operator = "+"
  Display = " "
  End Sub
  Private Sub PlusMinus_Click(Index As Integer)
  Display.Caption = -Val(Display.Caption)
  End Sub
  Private Sub Times_Click(Index As Integer)
  Operand1 = Val(Display.Caption)
  Operator = "*"
  Display = " "
  End Sub
  
  
  
  
  
  Калькулятор разослал. Рискнул даже послать его Учителю!
  Учитель сказал “Ну-ну, щенок!”
  Это значит, я на верном пути и с должной скоростью. Оценка “Удовлетворительно с плюсером”
  
  
  Углубляюсь в детали. Типы переменных - да сколько угодно! Вот с датой - загвоздка:
  
  
  
  Private Sub Command1_Click()
  Dim day1 As Date, day2 As Date, day3 As Date
  day2 = Date
  day1 = "8/20/1970"
  Years = Year(day2 - day1)
  Months = Month(day2 - day1)
  Days = Day(day2 - day1)
  day3 = Days / Months / Years
  Print day3
  Print Now
  Print Now - day3
  End Sub
  
  
  
  
  Не работает, но терпеть больше нет никакой возможности! Пишу собственную программу. Задача такая: избавить себя от ужасного утомительного ежевечернего самобичевания.... Я желаю автоматизировать этот процесс. На свет явлена мной программа: “Самобичеватель”
  
  
  
  Option Explicit
  Public d1 As Date, d2 As Date, d3, b, a, f
  Private Sub C1_Click()
  d2 = Date
  C1.Visible = False
  If Not IsDate(Text1.Text) Then
  MsgBox "Пожалуйста, обратите внимание: первые две цифры - номер месяца." & vbCrLf & _
   "вторые две - число." & "Четыре последних - год полностью." & vbCrLf & vbCrLf & _
  "Разделяйте числа косой черточкой: /" & vbCrLf & _
  "Должно получиться примерно так: 08/20/1970" & vbCrLf & _
  "Попробуйте еще разок!"
  L1.Caption = "Введите пожалуйста дату своего рождения так:"
  Exit Sub
  Else
  d1 = Text1.Text
  If Year(d2 - d1) - 1900 > 99 Then
  MsgBox "Дедуля, ты как здесь?"
  Exit Sub
  Else
  d1 = Text1.Text
  If Year(d2 - d1) - 1900 <= 0 Then
  MsgBox "Вот когда родишься, тогда и приходи!"
  Exit Sub
  Else
  MsgBox " Лет тебе: " & Year(d2 - d1) - 1900 & ", месяцев: " & Month(d2 - d1) & _
   ", дней: " & Day(d2 - d1)
  MsgBox "На дворе уже: " & Date
  d3 = ((Year(d2 - d1) - 1900) * 365) + (Month(d2 - d1) * 30) + (Day(d2 - d1))
  MsgBox " Тобою прожито: " & d3 & " дней, " & vbCrLf & " что означает " _
  & d3 * 24 & " часов, " & vbCrLf & _
  " которые, между прочим, состояли из " & d3 * 24 * 60 & " минут " & vbCrLf & _
  " или же " & d3 * 24 * 60 * 60 & " секунд "
  MsgBox "На что, скажи, ушла" & vbCrLf & " ТАКАЯ ПРОРВА" & vbCrLf & "" & vbCrLf & " времени?"
  Text1.Text = ""
  End If
  End If
  End If
  End Sub
  
  Private Sub Label1_Click()
  MsgBox " Juergen Graefenstein" & vbCrLf & "www.merculov.narod.ru" & vbCrLf & _
   " merculov@narod.ru" & vbCrLf & " 2002, Nuernberg"
  End Sub
  
  Private Sub Text1_Change()
  C1.Visible = True
  L1.Caption = " две цифры - месяц, две - число, четыре - год"
  End Sub
  
  
  
  Љ
  
  Объявление переменных. Хорошо это или плохо?
  Каждый вопль компилятора бъет по сердцу. Меняю звуковую схему Винд, но все равно стыдно...
  не хочет она принимать новорожденных переменных! Не хочет и все, а должна!
  И вот я аккуратненько прописывал, предвосхищая рождение, каждую переменную аккуратненькими строчками, рядком под надписью “Оption Explicit”...
  
  
  
  
  
  КОНЕЦ ПЕРВОЙ ЧАСТИ
  
  
  
  
  
  
  
  
  
  
  
  
 Ваша оценка:

Связаться с программистом сайта.

Новые книги авторов СИ, вышедшие из печати:
О.Болдырева "Крадуш. Чужие души" М.Николаев "Вторжение на Землю"

Как попасть в этoт список
Сайт - "Художники" .. || .. Доска об'явлений "Книги"