terça-feira, 7 de maio de 2019
segunda-feira, 6 de maio de 2019
Validação de formulários
Validação de formulários/Form Validation
A validação de formulários é uma parte muito importante na programação web, pois permite efectuar a verificação da "sintaxe se dados" ou a formatação básica dos dados, de modo a evitar que dados inválidos sejam submetidos a base de dados, minimizando desta forma a ocorrência de erros e garantir uma maior consistência nos dados.Atributo required
Atributo required pode ser definido no javascript
ou
O atributo required pode ser definido no elemento html da seguinte forma:
<input type="text" name="name" required="true">
Com esta sso informa ao navegador da Web (com reconhecimento de HTML5) que o campo deve ser considerado de preenchimento obrigatório.
Exemplo:
Efectue a validação básica dos seguintes campos:
Exercícios
Usando JavaScrip:- Formate o campo nome apenas para permitir no mínimo 10 caracteres;
- Formate o campo e-mail para verificar se o texto inserido no campo e-mail possui o simbolo @ e ponto(.).
References
https://www.the-art-of-web.com/html/html5-form-validation/https://www.tutorialspoint.com/javascript/javascript_form_validations.htm
Estruturas
Estruturas em C
Um vector é uma colecção de variáveis de um mesmo tipo, que compartilham o mesmo nome e que ocupam posições consecutivas de memória.
Estruturas em C exercem um papel fundamental por permitir agregar vários tipos de dados. São a base para criação de objetos e classes em C. Estruturas são usadas para representar um registo. Suponha que você queira armazenar dados de aluno. Poderá precisar de seguintes atributos: nome, disciplina, teste1, teste2, etc.
Para este cenário é mais fácil representar usando estruturas:
struct ficha_de_aluno { char nome[50]; char disciplina[30]; float teste1; float teste2; };
Sintaxe:
struct nome
Exemplo2:
Neste exemplo, primeiro cria-se uma variável do aluno do tipo struct ficha do aluno, e o comando fgets(), stdin corresponde a entrada padrão via teclado.
Video aula:
{ tipoDado identificador; tipoDado identificador1;
... };
Onde:
nome - é o nome da estrutura
tipoDado - é o tipo de dado da váriavel que pode ser do tipo numérico, literal ou vector.
identificador - é o nome da variavél.
Após a definição da estrutura é necessário declarar associando a estrutura a um identificador da seguinte maneira:
struct nome varEstr; ou struct nome varEstr1, varEstr2;
Inicialização:
Tal como as variáveis as estruturas podem ser inicializadas da seguinte forma:
struct nome varEstr = { valor1, valor2 };
ou
struct nome varEstr;
varEstr.atributo = valor1;
varEstr.atributo2 = valor2;
Exemplo1:
struct Docente
{ char nome[50]; int codigo; float salario; };
int main() { struct Docente Docente1, Docente2, p[20]; return 0; }
Exemplo2
Crie uma estrutura que permite exibir a data no formato Maio, 31 de 2020.
#include <stdio.h> int main (void){ struct data{ char mes[20]; int dia; int ano; }; struct data hoje; strcpy(hoje.mes,"Maio"); hoje.dia = 25; hoje.ano = 2020; printf (" Hoje é dia: %s %d %.2i.\n", hoje.mes, hoje.dia,hoje.ano);
return 0;
}
A primeira instrução dentro de main define a estrutura chamada data, composta por um valor do tipo char e dois inteiros. Os membros são mes, dia e ano. Na segunda declaração, a variável hoje é declarado como sendo do tipo struct. A primeira instrução simplesmente define a data. A segunda instrução declara que uma variável é do tipo struct data e, portanto, faz com que a memória seja reservada para armazenar os três valores, um do tipo char dois do tipo inteiro.
Estrutura e expressões
Algumas caracteristicas:
- Elementos da estrutura podem ser acedidos apartir de qualquer local, desde que respeite o seu escopo.
- Funções e estruturas - A linguagem C não permite funções dentro de estruturas.
- Elementos estáticos - estruturas não podem conter elementos estáticos.
- Modificadores de acesso - As estruturas não podem conter modificadores de acesso nem constructores
Exemplo2:
Neste exemplo, primeiro cria-se uma variável do aluno do tipo struct ficha do aluno, e o comando fgets(), stdin corresponde a entrada padrão via teclado.
Exercícios
Usando estruturas resolva os seguintes exercícios.
- Estrutura que permite exibir a data no formato Maio, 31 de 2020.
- Programa que solicita a data de hoje e exibe a data do dia seguinte no formato mm dd yyyy.
- Programa que recebe o nome e salário de vários funcionários e exibir na tela.
Referencias
https://www.programiz.com/c-programming/c-structures
https://www.geeksforgeeks.org/structures-c/
Ponteiros
Programação em C/C Programming
Ponteiros
Algumas tarefas de programação na linguagem de programação C, são executadas com maior facildade recorrendo a ponteiros e outras tarefas.
Os ponteiros também são variáveis e desempenham um papel muito importante na linguagem de programação C. Eles são usados por vários motivos, como:
- Strings
- Alocação de memória dinâmica
- Enviando argumentos da função por referência
- Construindo estruturas de dados complicadas
- Apontando para funções
- Construindo estruturas de dados especiais (ou seja, árvore, tentativas, etc ...)
- E muitos mais.
O que é um ponteiro?
Um ponteiro é essencialmente uma variável inteira simples que contém um endereço de memória que aponta para um valor, em vez de manter o próprio valor real.
A memória do computador é um armazenamento sequencial de dados e um ponteiro aponta para uma parte específica da memória. Nosso programa pode usar ponteiros de tal forma que os ponteiros apontem para uma grande quantidade de memória - dependendo de quanto decidimos ler a partir desse ponto.
Declaração de ponteiros
Um ponteiro é uma variável cujo valor é o endereço de outra variável, ou seja, o endereço da memória. Como qualquer variável ou constante, você deve declarar um ponteiro antes de usá-lo para armazenar qualquer endereço variável. A forma geral de uma declaração de variável de ponteiro é:
sintaxe:
tipo *nome_variavel;
Exemplos:
int *n;
double *n1;
float *n2;
char *sexo;
Exemplo:
Problemas com ponteiros
Problemas com ponteiros de tipos incompatíveis.
A saída do programa é 42 4142 FFDA4142 . O acesso a partir de b é o único que consegue recuperar o dado corretamente. Através do ponteiro a, obtém-se apenas metade do valor e através de c, o dado é recuperado com lixo.
References
https://www.tutorialspoint.com/cprogramming/c_pointers.htm
https://www.learn-c.org/en/Pointers
domingo, 28 de abril de 2019
Vectores, matrizes e Strings
Vectores, Matrizes e Strings
Vectores
Um
vetor
é
uma colecção de variáveis de um mesmo tipo, que compartilham o mesmo
nome e que ocupam posições consecutivas de memória. Cada uma
dessas variáveis denomina-se elemento
e
é identificada por um índice.
Se v
é
um vetor com n
posições,
seus elementos são v[0],
v[1],
v[2],
..., v[n-1].
Um
vetor para armazenar 5 números inteiros pode ser criado da
seguinte maneira:
int
v[5];
Inicialização de vectores
Em
C, vetores globais e estáticos são automaticamente zerados pelo
compilador.
Mas,
se for desejado, podemos inicializá-los explicitamente no momento em
os declaramos. Nesse caso, os valores iniciais devem ser fornecidos
entre chavetas e separados por vírgulas.
Exemplo:
Inicialização
de vector estático:
#include
<stdio.h>
void
main(void) {
static
float moeda[5] = {1.00, 0.50, 0.25, 0.10, 0.05};
...
}
Os
valores são armazenados, a partir da posição 0 do vector, na ordem
em que são fornecidos; por exemplo, o valor 0.25 é armazenado em
moeda[2].
Note
que apenas expressões e valores constantes são permitidas numa
lista de valores iniciais. O uso de variáveis causa erro de
compilação.
Se
a lista de valores iniciais tem mais elementos que a capacidade do
vector, ocorre um erro de compilação. Entretanto, se tem menos que o
necessário, as posições
excedentes do vector permanecem zeradas.
Exemplo:
Matrizes
Uma
matriz
é
uma colecção homogénea bidimensional, cujos elementos são distribuídos
em linhas e colunas. Se A
é
uma matriz mxn,
então suas linhas são
indexadas de 0 a m-1
e suas colunas de 0 a n-1.
Para acessar um particular elemento de A,
escrevemos A[i][j],
sendo i
o
número da linha e j
o número
da coluna que o elemento ocupa.
Exemplo.
Uma
matriz 3×4
de números inteiros.
Essa
declaração cria uma matriz A
cujos
elementos ocupam as seguintes posições:
- A[0], [0], A[0], [1], A[0], [2], A[0], A[3], A[0], [4].
- A[1], [0], A[1], [1], A[1], [2], A[1], A[3], A[1], [4].
- A[2], [0], A[2], [1], A[2], [2], A[2], A[3], A[2], [4].
- A[3], [0], A[3], [1], A[3], [2], A[3], A[3], A[3], [4].
Inicialização de Matrizes
Se
lembrarmos que uma matriz nada mais é que um vector cujos elementos são
vectores, a sintaxe para a sua inicialização não tem grandes
novidades.
Exercícios
1. Crie tipos de vectores para armazenar:
a. as
letras vogais do alfabeto.
b. as
temperaturas diárias de uma semana.
c. o
número de dias em cada um dos meses do ano.
2. Crie um programa que efectue a leitura de duas strings. Se elas forem
iguais exibe a mensagem “strings iguais”
e caso contrário, concatene as duas strings e imprima a string resultante.
3. Crie um programa que efectue a declaração de duas strings com capacidade para 30 caracteres. Leia
pela entrada padrão a primeira string. Em seguida, copie o texto da primeira
string para a segunda. Mostre no final o conteúdo das duas strings
4. Leia um texto pela entrada padrão com no máximo 99
caracteres. Em seguida imprima o número de caracteres digitados. – Dica: percorra
o vetor até encontrar o caracter teminador ‘\0’
5. Em uma loja de CD ́s existem apenas quatro tipos de
preços que estão associados a cores. Assim os CD ́s que ficam na loja não são marcados por preços
mas sim por cores.
a. Desenvolva o algoritmo que a partir da entrada da cor o
software mostre o preço. A
loja está atualmente com a seguinte tabela de preços.
Côr
|
Preço
|
Verde
|
10MZ
|
Azul
|
20MZ
|
Amarelo
|
30MZ
|
Vermelho
|
40MZ
|
6. Crie
um programa que efectua a soma de todos valores de um array
unidimensional de qualquer tamanho e mostrar a média.
7. Ordene
de forma crescente os seguintes elementos do array (1,8,3,5,7,6,4).
8. Crie
um array para exibir o seguinte output:
08 09 10 11
12 13 14 15
9. Crie
um programa que recebe um valor do tipo inteiro e faça uma busca em
um array de 10 elementos. No final devera informar quantos valores
foram encontrados ou informar nenhum valor foi encontrado.