segunda-feira, 12 de dezembro de 2011

Arrays

Um array é:
Um conjunto de dados do mesmo tipo representado por uma variável.

Um array pode ser:
- Unidimensional - Vectores;
- Multidimensional - Matrizes.

Para que servem?
-Para simplificar a declaração de variáveis iguais, por exemplo agrupando-as numa única variável.

Vectores

É um conjunto de elementos representados por:
- Um número fixo de elementos do mesmo tipo;
- Índice (cada elemento é acedido individualmente através do índice).

* Índice (do tipo Integer, inteiro) contido em [limite_inferior; lim_superior].

Exemplo 1:
Programa que manipule 10 notas de um aluno...
Em vez de termos variáveis do tipo Nota1, Nota2, Nota3, Nota4, ..., Nota10, bastaria termos um único vector chamado Nota, com índices que variam de 1 até 10. Assim sendo poderíamos aceder diretamente as notas através de Nota[1], Nota[2], ... Nota[10]. A vantagem é que o nome da variável fica fixo, enquanto podemos fazer variar apenas o índice, que pode inclusive ser dado por uma outra variável. 

Exemplo 2 em Pascal:


SINTAXE:
A declaração é feita assim...
(Na parte declarativa do programa)
Var <nome > ARRAY [ 1..n ] OF <tipo_da_variável> ;
                [ <início> .. <fim> ]
Exemplo: Var  nota ARRAY [ 1..10 ] OF integer;
Usando os vectores...
<nome_do_vector> [ <índice> ] := <valor>;  (atribuição)
Writeln (<nome_do_vector> [ <índice> ] ) ;
Readln (<nome_do_vector> [ <índice> ] ) ;

Matrizes 

São declaradas directamente como variáveis através da declaração prévia de tipos.
Têm duas dimensões, utilizando para isso duas variáveis de índice para a linha e para a coluna.

Exemplo 1:
 Matriz[3,4]
indica o acesso ao elemento da terceira linha e quarta coluna de uma variável chamada ‘Matriz’ (para uma matriz de duas dimensões – linhas x colunas).

Exemplo 2:
Arrays bidimensionais:
Var T : array [1..3] of array of [1..4] of Real;
- Um array de 3 elementos, cada um dos quais é um array de 4 elementos.
Ou, de igual forma:
Var T : array [1..3,1..4] of Real;

Exemplo 3 em Pascal: 





SINTAXE:
A declaração de um array bidimensional é feita assim...
Var<nome> ARRAY [ <início> .. <fim> , <início> .. <fim> ] OF
<tipo_da_variável> ;
Var<nome> ARRAY [ 1 .. n1, 1 .. n2 ] OF <tipo_da_variável> ;
Exemplo: Var nota ARRAY [ 1 .. 8, 1 .. n3 ] OF integer; 

Pode-se dividir o programa em subprogramas:

Em Pascal, há dois tipos de subprogramas:

- Procedure (procedimento) - rotina que efectua um determinado conjunto de tarefas;

- Funtion (função) - subprograma ou rotina que, para além de realizar um conjunto de tarefas (como o procedimento) devolve um determinado valor no local em que for invocado.

Variáveis Locais e Variáveis Globais

Quando uma variável é declarada na parte declarativa de um programa, diz-se que é uma variável global, pode ser utilizada ao longo de todo o programa.
Declarada na parte declarativa de um subprograma, trata-se de uma variável local, apenas utilizável no subprograma onde foi declarada.

Exemplo em Pascal de Variáveis sem subrotinas:






Exemplo em Pascal de Variáveis com subrotinas:






 

 

quarta-feira, 9 de novembro de 2011

Criar Algoritmos Formais e Informais


1- Criar algoritmos informais:

A. Ler uma revista.

Resolução:

- Olhar para as revistas;
- Escolher uma revista;
- Pegar na revista;
- Abrir a revista;
- Começar a ler.

B. Somar 3 números dados pelo utilizador.

Resolução:

- Agarrar na calculadora;
- Ligar a calculadora;
- Introduzir um número;
- Introduzir um sinal de adição (+);
- Introduzir o segundo número;
- Introduzir o segundo sinal de adição (+);
- Introduzir o terceiro número;
- Introduzir o sinal de igual (=);
- Observar o resultado.

2- Criar algoritmos formais:

A. Somar três números dados pelo utilizador.

Algoritmo Soma de três números dados pelo utilizador;
Variáveis num1, num2, num3: Real;
Inicio
Ler (num1);
Ler (num2);
Ler (num3);
Soma = num1+num2+num3;
Escrever (“A soma é:”, soma);
Fim.

B. Mostrar o simétrico de um número.

Algoritmo Mostrar o simétrico de um número;
Variáveis num1, num2: Real;
Início
Ler (num1)
Ler (num2)
Num1à num2x (-1)
Escrever (“o simétrico de num1 é:”, simétrico);
Fim.

3. Cria algoritmos formais para:

A. Verificar se a classificação de um teste (digitado) e positivo.

Algoritmo Verificar se a classificação de um teste (digitado) e positivo;
Variáveis teste1: Real;
Início
Ler (teste1);
Escrever (teste1);
Teste1 > = 10
Escrever (“a classificação do teste1 é:”, teste1);
Fim.

B. Ler dois números e indicar o maior deles.

Algoritmo Ler dois números e indicar o maior deles;
Variáveis num1, num2: Inteiro;
Início
Ler (num1);
Ler (num2);
Num1>Num2
Escrever (“o maior número é:”, o maior número);
Fim.

C. Verificar se a classificação de um teste e positivo ou negativo.

Algoritmo Verificar se a classificação de um teste) e positivo;
Variáveis teste1: Inteiro;
Início
Ler (teste1);
Escrever (teste1);
Teste1 >= 10  E Teste1 <=10 
Escrever (“a classificação do teste1 é:”, teste1);
Fim.

4. Cria algoritmos formais para:
           
A. Repetir o pedido “Insere um valor negativo” ate o utilizador inserir um valor negativo.

Algoritmo Repetir o pedido “Insere um valor negativo” ate o utilizador inserir um valor negativo;
Variáveis numnegativo: Real;
Início
Ler (numnegativo);
Insere um valor negativo e insere um valor negativo;
Escrever (“o numnegativo é:”, nunnegativo);
Fim.

B. Receber um número de 1 a 10. Depois pedir novamente um número ate acertar.

Algoritmo Receber um número de 1 a 10. Depois pedir novamente um número ate acertar.
Variáveis num,: Inteiro;
Início
Ler (num);
Inserir um num, e volta a inseri-lo;
Escrever (“o num repetido é:” num);
Fim.


5. Cria algoritmos formais para:

A. Escrever os dez primeiros números inteiros positivos.

Algoritmo Escrever os dez primeiros números inteiros positivos;
Variáveis num: Inteiro;
Início
Escrever (num de1 a 10);
Ler (num de1a 10);
Fim.

B. Escrever o dobro dos 100 primeiros números reais positivos.

Algoritmo Escrever o dobro dos 100 primeiros números reais positivos;
Variáveis num: Real;
Início
Escrever (num de 2 a 200);
Ler (num de 2 a 200);
Fim.

terça-feira, 25 de outubro de 2011

Algoritmos (exercícios)


1. O que é um(a) …

A- Algoritmo?
Um algoritmo é uma sequência de ordens finitas bem definidas e sem ambiguidades, cada uma das quais pode ser executada mecanicamente num período de tempo finito.
B- Dispositivo de Entrada e de saída?
 Os dispositivos de entrada e saída (input/output) podem também ser chamados de dispositivos periféricos. Eles permitem a troca de informação do Homem com a máquina. Os sistemas de entrada codificam os dados para serem processados pelo sistema digital. Os sistemas de saída descodificam os dados para serem recebidos pelo Homem. Há também dispositivos que têm ambas as funções de entrada e saída.
C- Compilador?
Um compilador é um programa de computador que só recebe linguagem compilada que constitui o código fonte. Este programa cria outro semelhante mas com linguagem objecto.
D- Código de máquina?
Os dados que são fornecidos ao computador através dos periféricos, são processados e postos em linguagem máquina, ou seja, numa sequência de bits limitada pelo número de bits do processador formado por 0 e 1 constituindo o código binário.
E- Assembly?
Assembly é um notação legível por Humanos que é traduzida da linguagem máquina através de um padrão de bits substituídos por símbolos mnemónicos (sintetizados).
F- Código fonte?
Código fonte contém linguagem de programação que consiste num conjunto de palavras ou símbolos escritos de forma ordenada. Após a compilação do código de fonte obtém-se software já capaz de ser executável.
G- Linguagem de alto nível?
Linguagem de alto nível é uma linguagem máquina mas que se afasta do código de máquina para se aproximar á linguagem Humana, assemelhando-se á arquitectura do computador.
H- Variável?
Uma variável está normalmente situada na memória que representa um valor ou uma expressão. Tem como finalidade guardar variáveis associadas a “nomes” durante o tempo de execução.
I- Tipo de dado?
Tipo de dado, os dados são elementos que com os quais podemos executar operações. Através do hardware inserem-se dados para serem utilizados nas operações. Cada dado tem associados a si um conjunto de valores que definem um formato específico de elementos desse tipo.




2. Diga quais dos identificadores de variáveis são inválidos e porquê?
A - NOMEdaRUA - Válido;
B - IDADE MEDIA - Inválido – Não pode ter espaço em branco;
C - 100Primeiros - Inválido – Tem de começar obrigatoriamente por uma letra;
D - EM@IL - Inválido – Não pode conter @;
E- Estado_Civil - Válido;
F- "Sobrenome" - Inválido – Tem de começar obrigatoriamente por uma letra;
G - Conta-Corrente - Inválido – Não pode ter hífen (-);
H - Pessoa.nome - Inválido – Não pode ter ponto final (.).

3. Indica o tipo de cada uma das seguintes constantes:
A – 613 - Inteiro
B – 613.0 - Real
C – –613 - Real
D – '613' - Char
E – –3.012x1015 - Real
F – 17x10-12 - Real
G – 'FIM' - String
H – 'FALSE' - String
I – TRUE - String






4. Suponha que A, B, C são reais e I, J, K são inteiros. Dados A=4.0, B=6.0 e I=3, qual seria o valor final dos comandos seguintes?
A. C <= A*B – I = 21.0 Real
B. K <= I / 4 * 6 = 4.5 Real
C. C <= B /A + 1.5 = 3.0 Real
D. K <= TRUNC(B/A+4.7) = 6 Inteiro
E. J <= ROUND(A/(5/I)) = 2 Inteiro
F. K <= ABS(A-B)*2 + I=  1.0 Real
G. J <= I DIV 2= 2 Inteiro
H. J <= (I+4) MOD 2= 1 Inteiro

5. Indique qual o conjunto de dados é válido para cada um dos comandos. Considere A e B inteiros, X,Y e Z reais e NOME, SOBRENOME e TIPO char:
(a) ‘JOAO’ 100 10 ‘SILVA’ 90 2.3 10
(b) ‘JOSE’ 9.5 10 ‘JOAO’ 10 ‘ALUNO’ 5.5
(c) ‘PEDRO’ 10 ‘JOSE’ 9.5 8.5 ‘ALUNO’
(d) 100 ‘JOAO’ ‘SILVA’ 10.0 5.5 4

(1) Ler(NOME,A,SOBRENOME,X,Y,TIPO)
(2) Ler(NOME,X,Y,SOBRENOME, A, Z, B)
(3) Ler(A,NOME,SOBRENOME, X, Y, Z)
(4) Ler(NOME,X,A,SOBRENOME,B,TIPO,Y)

A –  2
B – 3
C – 1
D - 4

Biometria Digital (exercícios)


A
Biometria – Consiste na identificação de certos pontos para serem reconhecidos de forma digital depois de descodificados. Tem três etapas importante que é a identificação da biometria, de seguida o reconhecimento e a verificação.

1- Vários tipos de Biometrias:
Reconhecimento da íris;
Voz;
Movimentos do corpo;
Impressões digitais;
Dactilografia;
(Já se fala também no futuro utilizar-se a orelha)

Ex:  http://www.youtube.com/watch?v=ohKQGD3Mto4

2- Formas possíveis de comunicar com os computadores:
Microfone;
Ecrãs tácteis;
Scanner;
Câmara;
Bluetooth;
Infra-vermelhos.






B
1-
Exemplo da soma de 2 nºs em Pascal
program soma;
 
var
   n,i,soma:integer;
 
begin
   writeln(‘Introduza o número limite’);
   readln(n);
   soma:= 0;
   for i:=1 to n do
       soma:=soma+1;
   writeln(‘a soma dos primeiros ’,n,’ números é ‘,soma);
   readln;
end.

Exemplo da soma de 2 nºs em C
#include<stdio.h>
  void main()
{
int num1,num2,soma;
  printf("Digite o primeiro valor inteiro a ser somado:");
scanf("%d",&num1);
  printf("Digite o segundo valor inteiro a ser somado:");
scanf("%d",&num2);
  soma=num1+num2;
printf("Soma: %d ",soma);
  if((soma%2)==0)
printf(" - numero par\n");
  }

Exemplo da soma de 2 nºs em Assembley

DOSSEG
.MODEL SMALL
.STACK
.DATA
MENS1 DB "DIGITE O PRIMEIRO NUMERO:",0Ah,0Dh,"$"
MENS2 DB 0Ah,0Dh,"DIGITE O SEGUNDO NUMERO:",0Ah,0Dh,"$"
VAR1 DB ?
VAR2 DB ?
ENT DB 0Ah,0Dh,"$"
.CODE
P1 PROC
MOV AX, @DATA
MOV DS, AX
MOV AH, 09
MOV DX, OFFSET MENS1
INT 21h
MOV AH, 01
INT 21h
MOV [VAR1], AL
MOV AH, 09
MOV DX, OFFSET ENT
MOV AH, 09
MOV DX, OFFSET MENS2
INT 21h
MOV AH, 01
INT 21h
MOV [VAR2], AL

soma?

MOV AH, 4Ch
INT 21h
P1 ENDP
END


2- Escreve, com verbos no infinitivo, os seguintes procedimentos:
1. Imprimir uma carta;
2. Ler uma carta enviada por correio.
3. Ler uma carta enviada por correio electrónico.
4. Estrelar um ovo!

1- Imprimir uma carta.
2- Ler uma carta e enviar por correio.
3- Ler uma carta e enviar por correio electrónico.
4- Estrelar um ovo!