sexta-feira, 26 de dezembro de 2008

Ola mundo

Este é o primeiro código aos iniciantes em desenvolvimento de programas. Como em toda linguagem de programação, novo "OLA MUNDO"

Abra o editor Microsoft Small Basic.

Copie o código fonte :

TextWindow.WriteLine("OLA MUNDO !!!")

Pressione a tecla F5 ou click no botão Run

Pronto! Este é nosso primeiro programa em execução.

segunda-feira, 22 de dezembro de 2008

Como instalar o Microsoft Small Basic

Para instalar o Microsoft Small Basic verifique os pré-requisitos antes de instalar :

- Estar usando sistema operacional Windows Xp ou Vista
- Ter instalado .Net Framework 3.5 SP1 Download

Com todos os pre-requisitos verificados, baixe o instalador :

- Download Microsoft Small Basic

sexta-feira, 19 de dezembro de 2008

mini Editor de Texto

Eu comecei a escrever um pequeno editor de texto usando o Microsoft Small Basic na intenção de utilizar mais recursos da linguagem.

Este exemplo ainda nào esta concluido mas é uma bom começo ;-) vamos dizer que esta é a versao 0.1

miniEditor_v0.1.sb

posicaoX = 1
texto = ""
linha = 1
flagCaps = 1
maxLinhas = 10
arquivoEndereco = "arquivo.txt"


For i = 1 To maxLinhas
Array.SetValue("linha",i,"")
EndFor

GraphicsWindow.KeyDown = OnKeyDown
GraphicsWindow.Title = "Edit"
GraphicsWindow.FontSize = 12
comandosTopo()

Sub OnKeyDown
texto = Array.GetValue("linha", linha)
strKey = GraphicsWindow.LastKey
If ( strKey = "Back") Then
texto = Text.GetSubText(texto, 0, Text.GetLength(texto)-1)
Array.SetValue("linha",linha,texto)
If (Text.GetLength(texto) = 0) Then
linha = linha - 1
If (linha = 0) Then
linha = 1
EndIf
EndIf
ElseIf (strKey = "Space") Then
texto = texto + " "
Array.SetValue("linha",linha,texto)
ElseIf (strKey="Return") Then
linha = linha + 1
If (linha > maxLinhas) Then
GraphicsWindow.ShowMessage("Maximo de "+ maxLinhas +" linhas", "Atencao")
EndIf
ElseIf (strKey="Tab") Then
texto = texto + " " ' 2 espacos
Array.SetValue("linha",linha,texto)

ElseIf (strKey="F1") Then
linha = 1
limpaLinhas()
ElseIf (strKey="F2") Then
Buffer = ""
for i = 1 To linha
Buffer = Buffer + Array.GetValue("linha", i)
Buffer = Buffer + Text.GetCharacter(13)
EndFor
resultado = File.WriteContents(arquivoEndereco, Buffer)
If (resultado="SUCCESS") Then
GraphicsWindow.ShowMessage("Arquivo "+ arquivoEndereco +" salvo com sucesso", "Informacao")
linha = 1
limpaLinhas()
Else'
GraphicsWindow.ShowMessage("Erro ao salvar", "Informacao")
EndIf
ElseIf (strKey="Capital") Then
flagCaps = flagCaps * (-1)
ElseIf (strKey="Escape") Then
Program.End()
Else
if (flagCaps > 0) then
texto = texto + Text.ConvertToLowerCase( strKey )
else
texto = texto + Text.ConvertToUpperCase( strKey )
endif
Array.SetValue("linha",linha,texto)
EndIf

'Limpa tela
GraphicsWindow.Clear()
comandosTopo()
'Escreve Linhas que estao na memoria
For i = 1 To maxLinhas
texto = Array.GetValue("linha", i)
GraphicsWindow.DrawText(posicaoX, i * 12, texto)
EndFor
EndSub

Sub comandosTopo
GraphicsWindow.DrawText(1, 1, "F1-NOVO F2-SALVAR ESC-SAIR")
EndSub

Sub limpaLinhas
For i = 1 To maxLinhas
Array.SetValue("linha",i,"")
EndFor
EndSub


Falta programar o restante das teclas, mas espero que desperte a curiosidade para o uso dos comandos e funcionalidades.


[update] codigo fonte publicado link

quarta-feira, 17 de dezembro de 2008

MS Small Basic Versao 0.2 download

Saiu uma nova versao (0.2) do Microsoft Small Basic.

Sobre as novidades nessa nova versao :
- Correcao de bugs na IDE;
- Adicionado o comando ElseIf;
- Adicionado o metodo Program.
ProgramDirectory Retorna o diretorio onde se encontra o executavel;
- Parenteses em condicoes de expresao sao agora opcionais;
- Suporte para comentarios inline (na propria linha onde contenha um comando)

tem mais novidades listadas no blog do SmallBasic

Download da instalacao

terça-feira, 16 de dezembro de 2008

Compilar Arquivo .SB em linha de comando

Mexendo no Microsoft Small Basic, verifiquei a existencia de um arquivo no diretorio do Small Basic : SmallBasicCompiler.exe

Entao descobri que posso compilar rapidamente um arquivo .SB usando linha de comando sem fazer uso do compilador (para mim evita expor o uso de outra linguagem na hora do trabalho =p)

Entao criei um arquivo .BAT para gerar o executavel e testar.

compila.bat
Unidade:\PastaMsSmallBasic\SmallBasicCompiler.exe arquivo.sb
Exemplo no meu caso :
I:\SmallBasic\portable\SmallBasicCompiler.exe alomundo.sb
Detalhe na criacao do executavel para a geracao um arquivo .PDB de mesmo nome e a copia do arquivo SmallBasicLibrary.dll, acredito contenha as funcoes necessaria para o executavel funcionar.

:-)

segunda-feira, 15 de dezembro de 2008

Equacao 2 Grau

Lembrando os velhos tempos, escrevi o programa que resolve equacoes do segundo grau no Microsoft Small Basic, vamos ao codigo-fonte :

equacaoSegundoGrau.sb
' Programa Equacao do Segundo Grau
' Codigo para resolucao de equacoes do segundo grau
' para Microsoft Small Basic
valorA = 0
valorB = 0
valorC = 0
delta = 0
raiz = 0
x1 = 0
x2 = 0

TextWindow.WriteLine("EQUACAO 2 GRAU")
TextWindow.Write("Informe o valor A : ")
valorA = TextWindow.ReadNumber()
TextWindow.Write("Informe o valor B : ")
valorB = TextWindow.ReadNumber()
TextWindow.Write("Informe o valor C : ")
valorC = TextWindow.ReadNumber()

'calcular delta
delta=(valorB*valorB)-4*valorA*valorC

'se o valor de delta for positivo ou igual a zero
If (delta>=0) Then
raiz = Math.SquareRoot(delta)
x1 = (raiz-valorB)/(2*valorA)
x2 = ((raiz-valorB)/(2*valorA))*(-1)
TextWindow.WriteLine("Valor X1 = " + x1)
TextWindow.WriteLine("Valor X2 = " + x2)
Else
TextWindow.WriteLine("Delta negativo!")
TextWindow.WriteLine("Nao existe solucao dentro do conjunto dos numeros reais.")
TextWindow.WriteLine("Implemento isso outra hora :-)")
EndIf


Detalhe que este foi o primeiro problema que resolvi quebrando a cabeca na epoca do BASIC. Ate a proxima :-)

Microsoft Small Basic

Este programa da Microsoft fez-me lembrar de quanto era gostoso programar em Basic nos primordios da informatica. Cada novo comando e nova utilizacao, como um sonho e um marco para novos desafios naquele tempo sem o Google.

Enfim,

Microsoft Small Basic veio para dar novamente este facinio a quem esta comecando com seus primeiros codigos (e para os mais velhos tambem). Sem grandes complicacoes pra programar e executar como era no passado.

Vamos aos detalhes que notei ao usa-lo :

- Interface extremamente simples para uso. Somente escrever o codigo e executar (pressione F5). :-)
- Nao existe a necessidade de declaracao de variaveis ou instacia de classes (estas sao poucas para uso).
- "Saudosa" instrucao GOTO

Para os mais novos programadores, um bom comeco. E para os mais velhos, uma diversao :-)

let's go party!