Social Icons

Mostrando postagens com marcador pascal. Mostrar todas as postagens
Mostrando postagens com marcador pascal. Mostrar todas as postagens

Python - Conceitos e Iniciação


Python é uma linguagem de programação de alto nível, open source, multiplataforma, interpretada e com uma extensa biblioteca padrão. Criada por Guido van Rossum em 1989, com a primeira versão lançada em 1991, Python, uma homenagem ao grupo humorístico inglês Monty Python, vem com uma sintaxe elegante, simples e clara, sem aqueles montes de “{” e “}” (chaves) por todo o código.

Existem várias linguagens de programação para os mais diversos fins e quem está querendo começar, não sabe qual escolher. Uma das febres é o Java, mas a sua sintaxe é complexa para quem nunca teve contato com programação.
Existem linguagens mais simples como o Pascal, mas não é mais tão usada e está defasada. Por isso o indicado é poder usar uma linguagem atual, que já usufrui das novas tecnologias, mas que seja fácil de aprender e acredito que não existe linguagem que se encaixe mais nesse perfil do que o Python.
O Python ajuda e muito a aprender noções básicas de programação, como também permite a criação de sistemas robustos com bancos de dados. A sua sintaxe é muito simples e lógica. Ele é baseado em palavras curtas em inglês, como print, function, dentre muitas outras.

 Principais características do Python

  • Sintaxe elegante, simples e clara: A sintaxe do Python facilita e encoraja a legibilidade do código, o que o torna mais fácil de manter e reutilizar;
  • Multiparadigmática: OOP, estruturada e procedural;
  • Tipagem forte e dinâmica;
  • Estruturas de dados de alto nível: tuplas, listas de dicionários;
  • Fácil de aprender;
  • Interpretador interativo: shell;
  • Blocos de código são delimitados por endentação!
É possível trabalhar em Python desde pequenas agências até grandes empresas, como Google, Industrial Light & Magic, Nortel, Nokia, Sepro, Interlegis, isto só para citar algumas…Aliás, Python é uma das três linguagens oficiais do Google, sendo adotada na primeira implementação do motor de busca, e hoje é a tecnologia que move o YouTube, entre tantos outros projetos da empresa.
  • Por que Python?
Essa resposta depende do ponto de vista de cada pessoa, mas na minha opinião pessoal eu escolhi a linguagem Python por ser clara e simples de se aprender.
Poderiamos utilizar também a linguagem Java, mas esta dá acesso limitado as funções do sistema operacional, tornando os aplicativos mais limitados.
Além de disso, podem os ainda, se desejarmos, utilizar pontes de outras linguagens com python para suprir quaisquer que sejam as necessidades do aplicativo.
Se você quer usar coisas como Wi-Fi, Bluetooth, etc.. no java terá na minha opnião uma dificuldade maior, pois a implementação por hardware tem q ser puzada do C, então ou você escreve tudo em C ou Mistura tudo com java, mas pode também fazer tudo apartir do Python, como é o caso de muitos programas que usam porta serial por exemplo, para linux, e alguns aplicativos para Symbian...
  • O que podemos fazer com o tal do Python ?
Posso citar alguns exemplos: podemos no caso de aparelhos  Celulares com Symbian manipular eventos de teclas, fazer conexões bluetooth ou wi fi, mandar mensagens SMS, acessar a câmera, fazer chamada s, utilizar informações de contatos e calendário, localizar o aparelho através do sinal GPRS, desenhar gráficos na tela, enfim ... poderia passar o dia todo aqui isso sem contar a aplicação dele em computadores ..

Vamos Trabalhar? 

Sabermos como funciona a sintaxe da linguagem e nos nos familiarizarmos mais.


Para Windows Pode se baixar o IDE Python Clicando aqui.
Sua instalação é simples, igual a qualquer outro instalador (Next, Next, Finish).
Para Linux: você já tem o Python instalado por padrão, diversos pacotes que movem o Linux são feitos em Python.Para Achar seu Python no Linux faça Assim:

- CRTL+ALT+T(abrindo terminal);
- Digite "Python" Sem Aspas, e seu terminal ficará +- assim:
Python 2.6.5 (r265:79063, Apr 16 2010, 13:09:56)
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
A melhor forma de aprender a programar é usando um interpretador em modo interativo. Dessa forma você pode digitar comandos linha por linha e observar a cada passo como o computador interpreta e executa esses comandos. Por tanto vamos ao interpretador:

1
2
3
4
5
Python 2.6.5 (r265:79063, Apr 16 2010, 13:09:56)
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
A partir dai, é só executar os comandos. Vamos começar com alguns comandos bem básicos, para nos acortumarmos com o interpretador:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15

>>> 2 + 2
4
>>> (1 + 2) * 3
9
>>> list = ["Macelo", 17, "Engenheiro"]
>>> print list[0]
Marcelo
>>> print list[1]
17
>>> print list[2]
Engenheiro
>>> print list[1:]
[17, 'Engenheiro']
>>> print list[:2]
['Marcelo', 17]
>>>
Para sair do interpretador basta apertar Crtl + d ou executar quit().

Eu estou estudando sobre Python também, e conforme for descobrindo coisas interessantes vou postando aqui para compartilhar e aprender também!
Qualquer dúvida ou sugestões é só comentar.

Pascal - História


Homenageado Blaise Pascal
Pascal é uma linguagem de programação estruturada, que recebeu este nome em homenagem ao matemático Blaise Pascal. Foi criada em 1970 pelo suíço Niklaus Wirth, tendo em mente encorajar o uso de código estruturado.

Criador da Linguagem


O próprio Niklaus Wirth diz que Pascal foi criada simultaneamente para ensinar programação estruturada e para ser utilizada em sua fábrica de software. Simultaneamente, a linguagem reflete a liberação pessoal de Wirth das restrições impostas após seu envolvimento com a especificação de ALGOL 68, e sua sugestão para essa especificação, o ALGOL W.
Pascal originou uma enorme gama de dialetos, podendo também ser considerada uma família de linguagens de programação. Grande parte de seu sucesso se deve a criação, na década de 1980, da linguagem Turbo Pascal, inicialmente disponível para computadores baseados na na arquitetura 8086 (com versões para 8080 no seu início).



Pascal é normalmente uma das linguagens de escolha para ensinar programação, junto com Scheme, C e Fortran. Comercialmente, a linguagem foi sucedida pela criação da linguagem Object Pascal, atualmente utilizada nos IDEs Embarcadero Delphi (Object Pascal), Kylix e Lazarus. Academicamente, seus sucessores são as linguagens subsequentes de Niklaus Wirth: Modula-2 e Oberon. A partir da versão 2005, o Delphi passou a se referir a sua linguagem de programação como Delphi Language.
Assim como a linguagem C, que foi padronizado pela ANSI (ANSI C), o Pascal possui padrões pela ISO, como o Pascal Standard e o Advanced Pascal.


É acima de tudo uma linguagem de Alto Nível, embora não seja considerada por muitos, é excelente para iniciar em programação, sendo mais voltada para cálculos e outros algoritmos simples, ainda é baseado no sistema operacional de linha de comando (não gráfico), legal para estudar a programação em códigos fonte e fórmulas onde até pra inserir 'janelas' é necessário desenhar utilizando ASCII, e tem todos procedimentos do tipo declarações de variáveis, etc.

Pascal - Início

Hoje, finalmente, iremos começar a programar de fato, e fazer o nosso primeiro programa! Quanto a linguagem, iremos utilizar a Linguagem Pascal num primeiro momento. Apesar de muitos não concordarem com o uso dela, eu a considero a melhor escolha para o ensino da programação, por ter uma sintaxe clara e fácil de ser entendida.



Para escrever e compilar (transformar o código escrito em um arquivo executável), utilizaremos o Pascal Zim, um ambiente criado pelo departamento de Ciência da Computação da Universidade de Brasília, para o auxílio no ensino da disciplina de Algoritmos. Atualmente, ele encontra-se na versão 5.01. O link para download você encontra aqui. Algumas pessoas podem preferir utilizar o Turbo Pascal, da Borland. Eu optei pelo Pascal Zim por dois motivos: a última versão do Turbo Pascal é de 1991 (ou seja, já tem 18 anos!!!) e também pelo fato do Pascal Zim ser brasileiro! (vamos valorizar os programadores do Brasil!). Caso queiram utilizar o Turbo Pascal, fiquem à vontade, pois a sintaxe é a mesma.
Após baixarem o Pascal Zim, descompacte-o utilizando o Winrar, PKZip, Winzip, 7Zip, enfim, qualquer um que você tenha aí. Logo após, vá até a pasta pascalzim e execute o Pzim.exe. Teremos a seguinte janela:
pascalzim
Esta é a tela de edição de um programa no Pascal Zim. É nela que escreveremos os comandos que irão compor o nosso programa. A seguir, temos um programa simples em algoritmo que iremos passar para a linguagem Pascal:
1algoritmo ola_mundo
2 
3[Processamento]
4   escreva("Olá, Mundo! Estou no blog do Striker07!")
5[Fim]
Este é um programa extremamente simples, que escreve o texto Olá, Mundo! Estou no blog do Striker07! na tela. Em Pascal, este programa ficaria dessa forma:
1program ola_mundo;
2 
3begin
4   write('Olá, Mundo! Estou no blog do Striker07!');
5end.
Vamos agora explicar passo-a-passo este primeiro programa. Na primeira linha, temos Program Ola_Mundo; Esta linha define o nome do nosso programa, da mesma forma que definimos o nome do nosso algoritmo na primeira linha dele. Perceba que, os comandos do Pascal terminam com ; e se você não colocá-los, ocorrerá um erro na hora de compilar. Logo em seguida temos o Begin, que significa o início do programa. Os comandos do nosso programa começarão a ser escritos a partir deste Begin. Ele não tem ; porque não é um comando, mas uma indicação de que a área de processamento está iniciando. A seguir, temos o comando write(‘Olá, Mundo! Estou no blog do Striker07!’); que corresponde ao Escreva(“Olá, Mundo! Estou no blog do Striker07!”). Perceba, basicamente, é a mesma coisa no algoritmo e no programa, com a diferença de que no Pascal os comandos são em inglês. Outra diferença é que na linguagem Pascal o texto deve vir entre aspas simples enquanto que no algoritmo ele vem entre aspas duplas. Também não se deve esquecer de colocar o ponto e vírgula no final do comando. Encerrando o programa, temos End. que indica o final do programa. Este End deve sempre ser acompanhado do ponto final, indicando que o programa se encerra aí.
Caso você esteja utilizando o Turbo Pascal, precisará incluir a seguinte linha depois do título do programa:
1program ola_mundo;
2 
3uses
4   wincrt;
5 
6begin
7...
Esta linha inclui a biblioteca padrão de comandos. Caso esteja utilizando a versão para DOS do Turbo Pascal, substitua wincrt por crt. No Pascal Zim, a biblioteca é incluída automaticamente, então não há a necessidade de colocar esta linha.
Vamos agora fazer um programa simples, que recebe dois números do usuário e os soma. Primeiro, vamos fazer o algoritmo deste programa:
01algoritmo soma_dois_numeros
02 
03[Declaração de Variáveis]
04   numero1, numero2, resultado : inteiro
05 
06[Processamento]
07   escreva("Digite o primeiro número: ")
08   leia(numero1)
09   escreva("Digite o segundo número: ")
10   leia(numero2)
11   resultado ← numero1 + numero2
12   escreva("O resultado da soma é ", resultado)
13[Fim]
Um algoritmo muito simples, onde lemos o valor de duas variáveis do tipo inteiro, e depois as somamos, armazenando na variável resultado, e mostramos na tela. Agora vamos fazer o mesmo programa em Pascal:
01program soma_dois_numeros;
02 
03var
04   numero1, numero2, resultado : integer;
05 
06begin
07   write('Digite o primeiro número: ');
08   readln(numero1);
09   write('Digite o segundo número: ');
10   readln(numero2);
11   resultado := numero1 + numero2;
12   write('O resultado da soma é ', resultado);
13end.
Este programa tem alguns elementos a mais que o outro não tinha. Na primeira linha, temos o título do programa, da mesma forma como estava no Olá Mundo. Após isso, temos a área Var, onde declaramos as variáveis do tipo Inteiro, no caso da linguagem Pascal, Integer. A seguir os tipos básicos e os seus respectivos nomes na linguagem Pascal:
  • Inteiro = Integer
  • Real = Real
  • Caracter = Char
  • Booleano = Boolean
  • Literal = String
Na linguagem Pascal, todas as variáveis devem ser declaradas nesta seção. Caso queira declarar variáveis de tipos diferentes, deve-se fazer igual a um algoritmo:
01// No Algoritmo
02[Declaração de Variáveis]
03   soma : inteiro
04   inicial : caracter
05   media : real
06 
07{ Em Pascal }
08var
09   soma : integer;
10   inicial : char;
11   media : real;
Uma coisa importante que eu tinha esquecido de falar é que a linguagem Pascal não distingue maiúsculas de minúsculas. Ou seja, Real é a mesma coisa que  real ou rEaL ou reaL. Da mesma forma se você declarar uma variável Media, não poderá declarar outra com o nome de media.
Continuando o código, temos o início do programa. O primeiro comando escreve uma mensagem pedindo pra o usuário entrar com o primeiro número. Em programação, esse tipo de mensagem é conhecido como prompt. Em seguida, temos a função readln() que lê um valor do usuário e o armazena em uma variável. Depois, repetimos os dois comandos para ler o segundo número da soma. Em seguida, temos o cálculo da soma. Perceba que, na linguagem Pascal, o operador de atribuição é representado por := em vez da seta que representamos nos algoritmos. Na última linha, temos a apresentação do resultado na tela, através da função write(), onde colocamos entre os parênteses o texto e  a variável que queremos exibir na tela.
Para concluir este primeiro post, vamos fazer um último programa que calcula a sua idade, baseando-se no seu ano de nascimento, utilizando o conceito de constantes. Teremos, então o seguinte algoritmo:
01algoritmo calculo_idade
02 
03[Declaração de Constantes]
04   ano_atual = 2009
05 
06[Declaração de Variáveis]
07   ano_nascimento, idade : inteiro
08   nome : literal
09 
10[Processamento]
11   escreva("Olá! Poderia me dizer qual é o seu nome? ")
12   leia(nome)
13   escreva("Em que ano você nasceu? ")
14   leia(ano_Nascimento)
15   idade ← ano_atual - anoNascimento
16   escreva("Prazer em conhecê-lo, ", nome, ".")
17   escreva("Você tem ", idade, " anos.")
18[Fim]
Passando este algoritmo para a linguagem Pascal, teremos o seguinte:
01program calculo_idade;
02 
03const
04   ano_atual = 2009;
05 
06var
07   ano_nascimento, idade : integer;
08   nome : string;
09 
10begin
11   write('Olá! Poderia me dizer qual é o seu nome? ');
12   readln(nome);
13   write('Em que ano você nasceu? ');
14   readln(ano_nascimento);
15   idade := ano_atual - ano_nascimento;
16   writeln('Prazer em conhecê-lo, ', nome, '.');
17   write('Você tem ', idade, ' anos.');
18end.
Basicamente, temos apenas um detalhe novo em relação ao último programa: a inclusão da área Const para a declaração de constantes. A declaração ocorre da mesma forma que nos algoritmos, ou seja, sem a definição do tipo, utilizando o operador = para indicar o valor da constante. Outro detalhe é a utilização da função writeln(). Mas qual a diferença entre write() e writeln()? Ao utilizar a função write(), o cursor ficará posicionado logo após o final do texto. Já na função writeln(), o cursor pulará para a próxima linha ao escrever o texto. O emprego dessas funções deve priorizar a estética na tela, deixando o programa com um visual mais “agradável”.
Para encerrar este tópico, vou deixar alguns exercícios para praticarem a elaboração de algoritmos e a programação em Pascal:
1. Desenvolva um algoritmo para calcular a média de 4 números fornecidos pelo usuário.
2. Desenvolva um algoritmo para calcular a expressão S = (A + B) / (A – B).Os valores A e B deverão ser fornecidos pelo usuário.
3. Desenvolva um algoritmo para calcular o volume de um cilindro, dado por Pi R² H, onde R é o raio, H é a altura e Pi uma constante equivalente a 3,14. Os valores de R e H deverão ser fornecidos pelo usuário.
4. Desenvolva um algoritmo para calcular a área da esfera, dada por 4 Pi R² e o seu volume, dado por 4 Pi R³ / 3, onde R é o raio e Pi uma constante equivalente a 3,14. O valor de R deverá ser fornecido pelo usuário.
5. Desenvolva um algoritmo para calcular a altura do cilindro, dada por V / 4 Pi R², onde R é o raio, V é o volume e Pi uma constante equivalente a 3,14. Os valores R e V deverão ser fornecidos pelo usuário.
6. Desenvolva um algoritmo para calcular a função F(x,y) = 2x + 2y², em um domínio real. Os valores X e Y deverão ser fornecidos pelo usuário.
7. Desenvolva um algoritmo para calcular o troco a ser devolvido a um cliente. Deve ser lido (fornecido pelo usuário) o valor  a ser pago e o valor dado pelo cliente.
8. Desenvolva um algoritmo para calcular o valor absoluto da diferença entre A e B. Os valores A e B deverão ser lidos.
9. Desenvolva um algoritmo para calcular (converter) graus Farenheit (F) em graus Centígrados (C) , utilizando a seguinte fórmula: C = 5 (F – 32) / 9. O valor F deverá ser lido.
Algumas dicas:
- Função para calcular a raiz quadrada: sqrt(número)
- Função para calcular o valor absoluto de um número: abs(número)
Tentem fazer os exercícios. Qualquer dúvida, postem nos comentários

Laços de Repetição

Hoje iremos tratar de um tema de suma importância na programação: Os Laços de Repetição. Em nossos programas já estamos lendo dados do usuário. Imagine o seguinte: vamos fazer uma soma de números. Lemos dois números e realizamos a soma. E se quiséssemos fazer uma soma de, por exemplo, 100 números, ou mesmo uma quantidade X definida pelo usuário? No caso da soma de 100 números, teríamos 100 vezes o comando Leia()? E como faríamos pra ler uma quantidade X de vezes? Sem as estruturas de repetição, sem dúvida, seria bem complicado. Além disso, teríamos um código extremamente grande e repetitivo, com comandos iguais pra fazer as mesmas coisas. Os Laços de Repetição foram criados para solucionar estes problemas, deixando os códigos mais compactos, mais legíveis e mais rápidos de serem desenvolvidos.
Os Laços de Repetição que iremos tratar aqui são o Enquanto, Faça e o Para. Descrevendo-os resumidamente, temos o seguinte:
  • Enquanto: testa a condição antes de executar o bloco de código
  • Faça: executa o bloco de código e depois verifica a condição
  • Para: executa um bloco de código um determinado número de vezes
Vamos começar, então, falando do Enquanto. O enquanto possui um funcionamento bem simples, porém é de grande utilidade. Ele compara uma sentença e executa o bloco de código se a condição for verdadeira. Da mesma forma que, por exemplo, no Se, você pode colocar diversas condições, com o uso dos operadores lógicos e e ou, além do não. A seguir temos o exemplo da sintaxe em algoritmo…
1enquanto (nota > 70) faça
2   comandos...
3fim-enquanto
… e em Pascal…
1while (Nota > 70) do
2begin
3   comandos...
4end;
Dessa forma, utilizamos o Enquanto quando vamos executar uma repetição sem sabermos necessariamente o número de vezes que ele será executado. O looping pode, ainda, não ser executado nenhuma vez, caso a condição não seja satisfeita, ou seja, no Enquanto, testa-se a condição antes de executar o bloco de código.
Outra estrutura de repetição importante é o Repita. Ela possui praticamente o mesmo funcionamento que o Enquanto, porém a condição é testada após a execução do bloco de código. Abaixo, temos a sua sintaxe algoritmica…
1repita
2   comandos...
3enquanto(nota <= 70) e (nota >= 30)
… e em Pascal…
1repeat
2   comandos...
3until(nota <= 70) and (nota >= 30);
Neste exemplo acima, utilizei o operador lógico e para condicionar a repetição. Dessa forma, o looping será executado somente enquanto a variável Nota estiver na faixa entre 30 e 70 (para mais detalhes sobre os operadores lógicos, dê uma olhada no post sobre eles).
Por último, mas não menos importante, temos o Para. Esta estrutura de repetição se diferencia das outras por executar a repetição um determinado número de vezes. Como assim? A execução do Para é executada através da verificação e incremento de uma variável inteira, ou seja, determinamos a quantidade de vezes que a repetição será executada através de um limite para o valor da variável. Meio confuso? Calma, nos exemplos abaixo vai ficar mais claro. Primeiro na forma algoritmica…
1para i = 1 até 50 faça
2   comandos...
3fim-para
… e em Pascal…
1for i := 1 to 50 do
2begin
3   comandos...
4end;
No exemplo acima, temos a variável I funcionando como o contador de execução do looping, sendo incrementado automaticamente a cada execução do bloco de código. Dessa forma, o nosso looping será executado 50 vezes, ou seja, enquanto a variável I for menor ou igual o valor 50. Podemos, em vez do valor 50 colocar outra variável ou uma constante pra controlar a quantidade de vezes que o Para será executado.
O Para também possui uma particularidade interessante, podendo realizar decrementos a cada execução do looping. Dessa forma, podemos, por exemplo, criar contadores decrescentes, ou ainda exibir vetores invertidos (para mais informações sobre vetores, consulte o próximo post). A seguir temos a sintaxe do Para com decremento tanto em algoritmo quanto em Pascal:
1para i = 50 até 1 passo -1
2   Comandos...
3fim-para
1for i := 50 downto 1 do
2begin
3   Comandos...
4end;
Bem, pessoal, acho que é isso. Com o tempo vocês verão que a utilização das estruturas de repetição está sempre presente no dia-a-dia de um programador e tem papel fundamental na construção de um código otimizado. Fiquem atentos, pois no próximo post iremos falar de vetores e matrizes. Até lá e bons estudos!

Estruturas de Repetição "SE" "IF"

Os programas geralmente, baseados em algum dado, selecionam porções do código a serem executadas, realizando operações diferenciadas a cada execução. Para representar essa seleção em nosso programa utilizamos as estruturas de seleção.
A primeira estrutura de seleção que iremos conhecer é o Se. O Se é utilizado quando esperamos por uma condição. O bloco de código referente só sera executado se a condição for verdadeira. A seguir temos um exemplo algoritmico da utilização dessa estrutura e sua implementação em Pascal.
1leia(numero)
2se (numero MOD 2 = 0) então
3   início
4      escreva("O número é par.")
5   fim
1readln(numero);
2if (numero MOD 2 = 0) then
3   begin
4      write('O número é par.');
5   end;
Neste exemplo, lemos do usuário a variável numero. Se o resto da divisão do conteúdo da variável for igual a zero, será mostrada na tela a frase O número é par. A partir disso, podemos criar condições para o nosso programa, executando determinadas tarefas somente se algumas condições forem satisfeitas. Mas e se, por exemplo o número não fosse par? Ele seria ímpar… mas como faríamos isso no programa? A estrutura do Se é composta do Senão, que é executado caso a condição do Se não seja satisfeita. A seguir temos o exemplo da utilização do Se com o Senão na forma algoritmica e na linguagem Pascal:
1leia(numero)
2se(numero MOD 2 = 0)
3   então
4      escreva("O número é par.")
5   senão
6      escreva("O número é impar.")
7fim-se
1readln(numero);
2if (numero MOD 2 = 0) then
3   begin
4      write('O número é par.');
5   end
6else
7   begin
8      write('O número é ímpar.');
9   end;
Dessa forma, se o número digitado fosse par, a mensagem O número é par. Caso contrário, a mensagem O número é ímpar. seria exibida. Além disso, podemos encadear vários ‘Ses’, criando uma série de condições. Podemos também, colocar mais de uma condição ou negar uma condição, com a utilização dos operadores lógicos e, ou e não.
1leia(idade)
2se (idade < 13)
3   então
4      Escreva("Criança")
5senão se (idade >= 13 e < 21)
6      escreva("Adolescente")
7   senão
8      escreva("Adulto")
9fim-Se
01readln(idade);
02if (idade < 13) then
03   begin
04      write('Criança');
05   end
06else if (idade >= 13 and idade < 21) then
07   begin
08      write('Adolescente');
09   end
10else
11   begin
12      write('Adulto');
13   end;
Ah, um detalhe. Percebam que em Pascal, somente o último End de uma sequência de Ifs tem ponto-e-vírgula! Observando o exemplo acima, podemos realizar diversas tarefas, encadeando diversos Ifs / Elses. Apesar de simples, esta estrutura é vastamente utilizada na programação. Porém, quando precisamos conferir o valor de uma variável frente a muitos valores, o uso de Ifs encadeados torna-se trabalhoso, principalmente ao programador, além de deixar o código repleto de Begins e Ends. Para resolver problemas do tipo, utilizamos uma estrutura chamada Escolha ou Case. Com ela, podemos comparar o conteúdo de uma variável frente a diversas constantes, de uma forma bem mais organizada que o simples encadeamento de Ifs. A seguir, temos um exemplo de um programa de apuração de votos, com a utilização do Escolha.
1...
2escolha (votos)
3   caso (votos = 1) : candidato1 ← candidato1 + 1
4   caso (votos = 2) : candidato2 ← candidato2 + 1
5senão
6   escreva("Voto inválido")
7fim-escolha
1case votos of
2   1 : candidato1 := candidato1 + 1;
3   2 : candidato2 := candidato2 + 2;
4else
5   write('Voto inválido');
6end;
Neste caso, a variável votos foi comparada com os valores 1 e 2. Dependendo do seu conteúdo,  incrementa-se a variável correspondente ao candidato. Caso o voto não confira com nenhuma das opções do case, ele irá executar o comando para escrever Voto inválido na tela. Nesta estrutura, assim como no se, o uso do senão é facultativo, ou seja, ele não precisa necessariamente estar presente, sendo utilizado de acordo com a necessidade. Outro ponto é que os valores constantes comparados não precisam ser necessariamente inteiros. Podem ser, por exemplo, um tipo caracter.
Bom, pessoal, é isso. No começo pode ser que vocês estranhem um pouco estas estruturas, mas com o tempo elas virão a estar presente em praticamente todas as aplicações que vocês fizerem. E lembrem-se que, em caso de dúvida, podem  simplesmente deixar um comentário aqui no blog.
Obrigado pela visita e até o próximo post com as Estruturas de Repetição. Abraço a todos! :)

Operadores Lógicos

Bom Agora que ja se sabe um pouquinho sobre a estrutura simples vamos começar a Relação de Dados, estrutura teórica e prática de Operadores Lógicos.


Operadores Relacionais Matemáticos Seria uma boa leitura antes desse texto abaixo...

Bom, os operadores lógicos são usados em todas as engenharias acredito eu, pois são a base do pensamento lógico racional, eu mesmo uso MUITO em Eletrônica, e MUITO em programação,....
Todo Operador Lógico tem uma condição de entrada e análise para condiçaõ de saida.


E : Operador Lógico Inclusivo.As 2 Condições declaradas tem de ser verdadeiras para poder sair um dado verdadeiro. Explicando melhor com exemplo.


A conjunção é verdadeira se e somente se os operandos são verdadeiros
A B   Resposta
V V   V
V F   F
F V   F
F F   F

Percebemos que somente quando A e B São Verdadeiras a Resposta é verdadeira.


OU: Só Resultara em FALSO quando todas forem falsas. Se uma ou outra for verdadeira ele resulta em verdadeiro. por isso OU, A ou B.

AB  Resposta
VV  V
VF  V
FV  V
FF  F

NÃO: A negação da proposição "A" é a proposição "~A", de maneira que se "A" é verdade então "~A" é falsa, e vice-versa.Ou Seja se a afimação for verdadeira ele retorna falsa se for falsa retorna verdadeira.

A ~A
V F
F V

SCF - Official Edition PASCAL MOD!

Esse código esta compilado para Dev-Pascal, se usar Pascalzim dai tem q mudar algumas coisas...
CORRIGIDO O BUG DAS NOTAS QUE PODIA DAR NOTA NEGATIVA AO FILME E TAMBÉM MAIOR DO QUE 10.
VERSÃO BETA 3 AGORA ....

Quem estiver testando e achar algum BUG acesse a página de Bugs e me avise.

23/03/2011 - Implementado "loader" para algumas funçoẽs...



Download Here
-------------------


///Código Criado Por B03iR4 
//boeira.exe@live.com
//geekDevTeam.blogspot.com
//--------------------------------------
program cadastro_com_texto;
uses crt;
type
     cadastro = record
         nome_orig, nome_br, genero:string[200];
         nota:integer;
         preco:real;
end;
arquivo_texto = file of cadastro;
var dados_filme : cadastro;
    opcao: char;
    banco_dados: arquivo_texto;
    user, pass, certeza:String[200];
    i:integer;
    loader: string[200];
    contador :integer;






procedure gera_arquivo_banco;
begin

 textbackground(white);
        textcolor(black);
     clrscr;
     writeln('-----------------------------------------------------------------------------');
       writeln(' B 0 3 i R 4  -  S o f t w a r e s | Sistema de Cadastro de Filmes v1.2 BETA');
       writeln('-----------------------------------------------------------------------------');
     writeln('-----------------------------------------------');
     writeln('                  ATENCAO!!!');
     writeln('-----------------------------------------------');
     writeln;
     writeln('Criando um Novo Banco de Dados Voce Exclui o atual.');
     writeln;
     writeln('-----------------------------------------------');
     writeln('Voce esta certo disso? [S/N]  ');
     read(certeza);
     if (certeza = 'sim') or (certeza = 'Sim') or (certeza = 'S') or (certeza = 's') or (certeza = 'SIM')then
     begin
                         loader := '||||||||||||||||||||||||||||||||||||';
                         write('Gerando : ');
                         for contador := 1 to length(loader) do
                              begin
                                 write(loader[contador]);
                                 delay(100);
            
             end;
            end;
       delay(3000);
     readln;
     writeln;
     assign(banco_dados, 'C:\dados_filme.txt');
     rewrite(banco_dados);
     delay (3000);
     writeln('Novo Banco de Dados Gerado com Sucesso!');
     writeln;
     writeln('Pressione uma tecla para voltar ao Menu principal!');
     readln;
     close(banco_dados);
      end;


procedure novo_filme;
begin
 textbackground(white);
        textcolor(black);
        clrscr;
             writeln('-----------------------------------------------------------------------------');
       writeln(' B 0 3 i R 4  -  S o f t w a r e s | Sistema de Cadastro de Filmes v1.3 BETA');
       writeln('-----------------------------------------------------------------------------');
        write('Digite o Nome do Filme Original.: ');
        readln(dados_filme.nome_orig);
        write('Digite o Nome do Filme No Brasil.: ');
        readln(dados_filme.nome_br);
        write('Digite o Genero do Filme.: ');
        readln(dados_filme.genero);
        write('Digite a nota do Filme (1 a 10).: ');
        readln(dados_filme.nota);
        while ((dados_filme.nota < 1) or (dados_filme.nota > 10)) do
              begin
                    writeln('- Nota Inválida -');
write(' Escreva Uma Nota Válida (1 a 10) .: ');
readln(dados_filme.nota);
 end;

        writeln('------------------------------------------------------------------------');
        //gravando os dados no arquivo
        assign(banco_dados, 'C:\dados_filme.txt');
        reset(banco_dados);
        write(banco_dados,dados_filme);
        writeln('Dados Gravados no Banco de Dados com Sucesso!');
        writeln('Pressione qualquer Tecla para Voltar ao Menu Principal');
        readln;
        close(banco_dados);
end;

procedure mostrar_dados;
begin
        textbackground(white);
        textcolor(black);                                 clrscr;
      assign(banco_dados, 'C:\dados_filme.txt');
      reset(banco_dados);
      read(banco_dados, dados_filme);
             writeln('-----------------------------------------------------------------------------');
       writeln(' B 0 3 i R 4  -  S o f t w a r e s | Sistema de Cadastro de Filmes v1.3 BETA');
       writeln('-----------------------------------------------------------------------------');
      writeln('Bando de Dados informa que: ');
      writeln('Nome do Filme   .: ..... ',dados_filme.nome_orig);
      writeln('Nome no Brasil  .: ..... ',dados_filme.nome_br);
      writeln('Genero do Filme .: ..... ',dados_filme.genero);
      writeln('Nota do Usuario .: ..... ',dados_filme.nota);
      writeln('Pressione qualquer Tecla para Voltar ao Menu Principal');
      readln;
      close(banco_dados);
end;
 procedure menu;
begin
 textbackground(white);
        textcolor(black);
    repeat
    begin
      clrscr;
       writeln('-----------------------------------------------------------------------------');
       writeln(' B 0 3 i R 4  -  S o f t w a r e s | Sistema de Cadastro de Filmes v1.3 BETA');
       writeln('-----------------------------------------------------------------------------');
        gotoxy(10,03);writeln('Seja Bem Vindo ',user,' :');
        writeln;
        gotoxy(10,05);delay (100);writeln('1 - Gerar Novo Banco de Dados(Apagar)');
        gotoxy(10,06);delay (100);writeln('2 - Cadastrar um novo Filme');
        gotoxy(10,07);delay (100);writeln('3 - Mostrar Filme Cadastrado');
        gotoxy(10,08);delay (100);writeln('4 - Sair');
        gotoxy(10,08);delay (100);writeln('4 - Sair');
  gotoxy(10,11);            write('Escolha uma Opcao.: ');
        readln(opcao);
           if opcao = '1' then   gera_arquivo_banco
           else if opcao = '2' then  novo_filme
           else if opcao = '3' then  mostrar_dados

    end;
    until opcao = '4';
       end;
           procedure login_menu;
           begin
           textbackground(white);
           textcolor(black);
       clrscr;
       writeln('-----------------------------------------------------------------------------');
       writeln(' B 0 3 i R 4  -  S o f t w a r e s | Sistema de Cadastro de Filmes v1.3 BETA');
       writeln('-----------------------------------------------------------------------------');

       writeln('O Sistema esta sendo Inicializado Aguarde...');
        writeln('------------------------------------------');
        delay (2800);writeln(' - Conectando ao Banco de Dados;');
        delay (900);writeln(' - Conferindo Credenciais;');
        delay (1300);writeln(' - Ligando Sistemas de Inicializacao;');
        delay (4000);writeln(' - Inicializando HD;');
        delay (3000);writeln(' - Abrindo Menu de Selecao...');
        writeln('------------------------------------------');
        writeln('Sistema Carregado Com Sucesso!');
        delay(2000);
        menu;

           end;





BEGIN
       repeat
       clrscr;
        textbackground(white);
        textcolor(black);
       writeln('-----------------------------------------------------------------------------');
       writeln(' B 0 3 i R 4  -  S o f t w a r e s | Sistema de Cadastro de Filmes v1.3 BETA');
       writeln('-----------------------------------------------------------------------------');
       writeln(' Para Cadastrar Mais usuarios Contate o Desenvolvedor - boeira.exe@live.com');
       writeln('-----------------------------------------------------------------------------');
       writeln;
       WRITELN;
       WRITELN;
       gotoxy(10,06);write('_____________________');
       gotoxy(10,09);write('---------------------');
       gotoxy(10,19);write('---------------------------------------------------------');
       gotoxy(10,20);write('  BOEIRA-SOFT CORP® - All Rights Reserved | Prouct Free');
       gotoxy(10,21);write('---------------------------------------------------------');
       gotoxy(10,07);write('|Login:');
       gotoxy(10,08);write('|Senha: ');
       GOTOXY(18,07);readln(user);
       GOTOXY(18,08);readln(pass);


       writeln;
       if (user ='admin')     and(pass ='123')
       or (user ='Marcelo')   and(pass ='boeira2k10')
       or (user ='localhost') and(pass ='123')
       or (user ='usuario')    and(pass ='senhadousuario')
       or (user ='666TheNumberofTheBeast') and (pass ='666thenumberofthebeast')
       then
  
       login_menu

        else
        loader := '|||||||||||||||||||||||||||||||||||';
         write('Conferindo : ');
       for contador := 1 to length(loader) do
           begin
             write(loader[contador]);
             delay(250);
           end;
      
      
        writeln('Senha e/ou Login Incorreto(s) | Tente Denovo...') ;

        delay(2000);

       until opcao = '4';

   clrscr;
   writeln('-----------------------------------------------------------------------------');
       writeln(' B 0 3 i R 4  -  S o f t w a r e s | Sistema de Cadastro de Filmes v1.3 BETA');
       writeln('-----------------------------------------------------------------------------');
       writeln('O Sistema esta sendo Finalizado Aguarde...');
    writeln('------------------------------------------');
    delay (1700);writeln(' - Gravando Mudancas;');
    delay (1200);writeln(' - Desconectando do Servidor;');
    delay (800); writeln(' - Desfazendo Alteracoes de Hardware;');
    delay (1400);writeln(' - Reinicializando HDs;');
    delay (3000);writeln(' - Desempregando Programadores...');
    writeln('------------------------------------------');

    delay (1800);Writeln('Sistema Finalizado com Sucesso!');
    readln();



end.