domingo, 25 de setembro de 2011

Programaçao soma de numeros

Calcular a soma de dois inteiros – C++ – Gestão estática/dinâmica da memória


Este programa muito simples pretende demonstrar como é possível fazer uma utilização da memória do computador de forma estática ou dinâmica.

Seguem-se quatro exemplos de versões de um programa que apenas lê dois números inteiros e calcula sua soma.

No primeiro exemplo, as variáveis a e b são criadas de forma estática(stack), e nos três exemplos seguintes a sua gestão é feita de forma dinâmica (heap).
Exemplo 1

#include <iostream>
using namespace std;
int main(){
int a, b;
cout << "a = ";
cin >> a;
cout << "b = ";
cin >> b;
cout << "a + b = " << a + b << endl;
}

Gestão estática da memória.

Exemplo 2

#include <iostream>
using namespace std;
int main(){
int *a, *b;
a = new int;
b = new int;

cout << "a = ";
cin >> *a;
cout << "b = ";
cin >> *b;
cout << "a + b = " << *a + *b << endl;
}

Gestão dinâmica da memória.

Exemplo 3

#include <iostream>
using namespace std;
int main(){
int *a = new int;
int *b = new int;

cout << "a = ";
cin >> *a;
cout << "b = ";
cin >> *b;
cout << "a + b = " << *a + *b << endl;
}

A declaração do apontador e a alocação da memória podem ser feitas na mesma linha.

Exemplo 4

#include <iostream>
using namespace std;
int main(){
int *a = new int;
int *b = new int;

cout << "a = ";
cin >> *a;
cout << "b = ";
cin >> *b;
cout << "a + b = " << *a + *b << endl;

delete a;
delete b;
}

É boa prática libertar a memória que já não é utilizada, embora isto acabe por acontecer quanto o programa termina.

Exemplo 5
#include <iostream>
using namespace std;
int main(){
int *a = new int(2);
int *b = new int(3);

//cout << "a = ";
//cin >> *a;
//cout << "b = ";
//cin >> *b;
cout << "a + b = " << *a + *b << endl;

delete a;
delete b;


Programa em Pascal que soma dois numeros inteiros!




RESOLVENDO:


· Algoritmo

algoritmo
n1, n2, soma: inteiro
inicio
Escreva("Digite o primeiro número: ");
leia(n1);
Escreva("Digite o segundo número: ");
leia(n2);
soma <- n1+n2;
Escreva("A soma dos números é: ",soma);
Fimalgoritmo


· Pascal

{Programa soma dois numeros inteiros}
{Programa escrito por Carlos Eduardo Martins Santos}
{acesse: www.tecnosolution.blogspot.com}
program somar;
var n1, n2, soma :integer;
begin
writeln('Digite o primeiro numero.');
readln(n1);
writeln('Digite o segundo numero');
readln(n2);
soma := n1+n2;
writeln(‘A soma dos numeros e:’,soma);
readln;
end.

· Explicação

program somar; {Declaração do nome do programa}
var n1, n2, soma :integer; {Declaração de variáveis todas são do tipo inteiro}
Begin {Inicio do programa}
writeln('Digite o primeiro numero.'); {E pedido que o usuário entre com o primeiro numero}
readln(n1); {Ler a primeira instrução que foi dada ao programa}
writeln('Digite o segundo numero'); {E pedido que o usuário entre com o segundo numero}
readln(n2); {Ler a segunda instrução que foi dada ao programa}
soma := n1+n2; {E feita a soma dos dois resultados}
writeln(‘A soma dos numeros e:’,soma); {Mostra o resultado entre a soma dos dois numeros}
readln; {Ler a instrução do resultado que foi dada ao programa}
end.{Fim do programa}

Assembly


TITLE Numero
.MODEL SMALL
.STACK 100H
.DATA
MSG1 DB 'Digite:','$'
MSG2 DB ' Digite:','$'
MSG3 DB ' A soma e:','$'
NUMERO1 Dw ?
Dw ?


NUMERO2 Dw ?
Dw ?

.CODE
MOV AX,@DATA
MOV DS,AX
;numero 1
LEA DX,MSG1
MOV AH,9
INT 21H
XOR BX,BX
XOR SI,SI
MOV CX,1
M1: MOV AH,1
INT 21H
MOV NUMERO1,Ax
MOV AH,2
MOV DL,''
INT 21H
ADD SI,2
DEC CX
JNZ M1


MOV CX,1
ADD BX,1
MOV AX,1
CMP BX,AX




;numero 2
LEA DX,MSG2
MOV AH,9
INT 21H
XOR BX,BX
XOR SI,SI
MOV CX,1
M2: MOV AH,1
INT 21H
MOV NUMERO2,Ax
MOV AH,2
MOV DL,''
INT 21H
ADD SI,2
DEC CX
JNZ M2


MOV CX,1
ADD BX,1
MOV AX,1
CMP BX,AX

;somando
LEA DX,MSG3
MOV AH,9
INT 21H
XOR BX,BX
XOR SI,SI
MOV CX,1
SOMA: XOR DX,DX
XOR AX,AX
MOV DX,NUMERO1
MOV AX,NUMERO2
ADD AX,DX
SUB AX,30H
MOV DX,AX
MOV AH,2
INT 21H
MOV DL,''
INT 21H
ADD SI,2
DEC CX
JNZ SOMA


MOV CX,1
ADD BX,1
MOV AX,1
CMP BX,AX

MOV AH,4CH
INT 21H
end

sexta-feira, 23 de setembro de 2011

Formas de comunicar com os computadores para alem do rato e teclado

Joystick

É um periférico de computador e videogame pessoal ou um dispositivo geral de controle que consistem em uma vara vertical na qual os pivôs se aproximam de uma extremidade e transmitem seu ângulo em duas ou três dimensões a um computador.
O joystick é usado freqüentemente para controlar os jogos de vídeo, e têm geralmente um ou mais botões de pressão cujo estado pode também ser lido pelo computador.
O termo joystick transformou-se em um sinônimo para controladores do jogo que podem ser conectados ao computador desde que o computador defina a entrada como uma "porta de jogos".
Além de controlar jogos, os manches são usados também para controlar máquinas tais como elevadores, guindastes, caminhões. Os joysticks mais diminutos recentemente foram adotados como dispositivos navegacionais para equipamentos eletrônicos menores tais como telefones móveis.



 

 

 

 

 

 

Touchscreen  


A tela sensível ao toque é um display eletrônico visuais que podem detectar a presença e localização de um toque dentro da área de exibição. O termo geralmente refere-se a tocar a tela do dispositivo com um dedo ou a mão. Telas sensíveis ao toque também pode outro sentido objetos passivos, como uma caneta. Telas sensíveis ao toque são comuns em dispositivos como all-in-one computadores, computadores tablet e smartphones.

 

Caneta óptica


Terminal de dados com caneta óptica (1969).


Uma caneta óptica é um dispositivo de entrada de computador no formato de um bastão sensível à luz usado em conjunto com um monitor CRT. Ele permite ao utilizador apontar objectos na tela ou desenhar sobre a mesma, de modo semelhante a uma tela sensível ao toque mas com grande precisão posicional. Uma caneta óptica pode funcionar com qualquer monitor CRT, mas não com telas LCD, projectores ou outros dispositivos de imagem.



Luvas de dados (dataglove)
Através das luvas de dados o sistema de rivalidade virtual pode reconhecer os movimentos da mão do utilizador que veste a luva. Para a determinação dos movimentos dos dedos são utilizados na maioria dos projectos sensores mecânicos ou de fibra óptica. Os sensores de fibra óptica são utilizados actualmente nas versões mais populares de luvas de dados. O seu uso consiste em um fio de fibra óptica com junções. Quando a junta é movida o cabo dobra-se reduzindo a passagem de luz por ele. Essas variações de luz são resumidas e transmitidas para o computador.

Esquema de uma luva de dados baseada em fibra óptica.

O uso de luvas de dados ajuda a aumentar a sensação de presença no mundo virtual. Actualmente existem diversos modelos de luvas disponíveis no e são utilizados em sistemas de diferentes finalidades.

 

Reconhecimento de fala

Tecnologias de reconhecimento da fala (também denominado em alguns aparelhos como reconhecimento de voz) permitem que computadores equipados com microfones interpretem a fala humana, por exemplo, para transcrição ou como método de comando por voz. Tais sistemas podem ser classificados por requererem, ou não, que o usuário treine o sistema a reconhecer seus padrões particulares de fala, por ter a habilidade de reconhecer fala contínua ou por requerer que o usuário fale pausadamente, e pelo tamanho do vocabulário que é capaz de reconhecer (pequeno, da ordem de dezenas a centenas de palavras, ou grande, com milhares de palavras).
Sistemas que requerem pouco treinamento podem capturar continuamente a fala com um amplo vocabulário, em ritmo normal, com precisão de cerca de 98% (duas palavras erradas em cem) enquanto sistemas que não requerem treinamento podem reconhecer um número pequeno de palavras como, por exemplo, os dez dígitos do sistema decimal. Tais sistemas são populares por direcionar chamadas telefônicas recebidas, em grandes organizações, aos seus destinos.

Webcam


É uma câmera de vídeo de baixo custo que capta imagens e as transfere para um computador. Pode ser usada para videoconferência, monitoramento de ambientes, produção de vídeo e imagens para edição, entre outras aplicações. Atualmente existem webcams de baixa ou de alta resolução (acima de 2.0 megapixels) e com ou sem microfones acoplados. Algumas webcams vêm com leds (diodos emissores de luz), que iluminam o ambiente quando há pouca ou nenhuma luz externa.
A maioria das webcams é ligada ao computador por conexões USB, e a captura de imagem é realizada por um componente eletrônico denominado CCD.

Tipos de biometria

A- Veias: fiabilidade média , difícil de defraudar, alto custo.
B- Impressão digital: método mais rápido, fiabilidade alta e baixo custo.
C- Reconhecimento da face: menor fiabilidade, rápido e de baixo custo.
D- Identificação pela íris: muito fiável, imutável com o passar dos anos, alto custo.
E- Reconhecimento pela retina: fiável, imutável, leitura difícil e incómoda na medida em que exige que a pessoa olhe fixamente para um ponto de luz, alto custo
F- Reconhecimento de voz: menos fiável, problemas com ruídos no ambiente, problemas por mudança na voz do utilizador devido a gripes ou stress, demora no processo de cadastramento e leitura, baixo custo
G- Geometria da mão: menos fiável, problemas com anéis, o utilizador precisa de encaixar a mão na posição correcta, médio custo.
H- Reconhecimento da assinatura: menos fiável, algumas assinaturas mudam com o passar do tempo, também há problemas na velocidade e pressão na hora da escrita, médio custo.
I- Reconhecimento da digitação: pouco fiável, demora no cadastramento e leitura, baixo custo
J- Tecnologias futuras: odores e salinidade do corpo humano, padrões das veias por imagens térmicas do rosto ou punho, análise de ADN