Академический Документы
Профессиональный Документы
Культура Документы
CET/DSAS {IntroProg}
Joel Carvalho - 03.11.2011 Captulo 5 Variveis
Mod.AFTEBI.P-052.rev02
FORMAO TECNOLGICA
Sntese
i. O que so variveis ii. Utilizao de variveis iii.Tipos de dados
FORMAO TECNOLGICA
Mod.AFTEBI.P-052.rev02
i. O que so Variveis
Mod.AFTEBI.P-052.rev02
O que so variveis?
Na programao, uma varivel um objecto (uma posio, frequentemente localizada na memria) capaz de reter e representar um valor ou expresso.
in wikipdia.
Mod.AFTEBI.P-052.rev02
As variveis so identificadas por um nome e representam/armazenam dados que podem variar ao longo do tempo/execuo. Em C as variveis so tipificados pelo que uma varivel inteira apenas poder armazenar valores inteiros, etc.
Variveis Vs Constantes
Alm das variveis tradicionais ainda existe o conceito de constante. Em linguagem C, as constantes so declaradas de forma anloga s variveis mas com a utilizao da palavra reservada const. As constantes no podem ser alteradas aps a sua declarao! Exemplo de declaraes: Varivel: int v = 0; Constante: const int c = 0; ou int const c = 0;
Mod.AFTEBI.P-052.rev02
No caso dos exemplos anteriores no decorrer do programa possvel fazer v=1; ou outra atribuio, mas no possvel fazer c=1;
Tipos de Dados
Simples Inteiros: 123456789 Reais: 123456789,123456789 Booleanos: True, False Caracteres: 'a', 'b','c', 'd', 'e', 'f', 'g',.... Cadeias de caracteres: abcdefghijkl mnopqrstuvw xyz _ ;... (estes podem ser complexos dependendo da linguagem). Compostos Matrizes 2D e 3D; Listas; Filas; Pilhas; rvores; ...
Mod.AFTEBI.P-052.rev02
Mod.AFTEBI.P-052.rev02
Mod.AFTEBI.P-052.rev02
Mod.AFTEBI.P-052.rev02
Exerccios
Representa em Pseudo-Cdigo e em Fluxograma trs programas cujos critrios de paragem so: 1.1 Definidos pelo programador. 1.2 Definidos pelo utilizador no critrio de paragem. 1.3 Definidos pelo utilizador no incremento / decremento da varivel.
Mod.AFTEBI.P-052.rev02
Exerccios
Representa em Pseudo-Cdigo e em Fluxograma um programa que: Imprima no ecr os 100 primeiros nmeros pares superiores a um valor introduzido pelo utilizador. Analise se para esta situao, o nmero de execues do bloco iterativo fixo ou varivel. Receba n nmeros do teclado e os some todos, por fim escreva a soma deles dividida por n (mdia). Nota: suponha que o valor de n pedido inicialmente ao utilizador.
Mod.AFTEBI.P-052.rev02
Conceitos
Declarar a varivel inteira v: int v; Instanciar a varivel inteira v a zero: int v = 0; Atribuir o valor 1 a v: v=1; Incrementar a varivel v ou incrementar o valor de v: v++; ++v; v=v+1;
Mod.AFTEBI.P-052.rev02
Incremento/Decremento
Colocar o operador de incremento/decremento antes do nome da varivel ou depois tem algumas diferenas: int x=0, v=0; x=v++; No fim destas instrues, x=1 e v=0 v incrementado depois da operao de atribuio ser realizada. int x=0, v=0; x=++v; No fim destas instrues, x=1 e v=1 v incrementado antes da operao de atribuio ser realizada.
Mod.AFTEBI.P-052.rev02
Matrizes
Em matemtica, uma matriz mXn (m por n) uma tabela de m linhas e n colunas de smbolos sobre um conjunto, representada sob a forma de um quadro.
Mod.AFTEBI.P-052.rev02
Matrizes em C
As matrizes em C so caracterizadas por possurem um determinado tamanho (geralmente predefinido) e armazenarem vrios dados mas todos do mesmo tipo. Por exemplo uma matriz inteira poder ser declarada do seguinte modo: int m1[10]; (1 dimenso 1D ou Vector com 10 elementos) int m2[10][15]; (2 dimenses 2D de 10x15) As matrizes podem ser tanto unidimensionais (vectores) como multi-dimensionais, no caso anterior foi declarada uma matriz de dimenso dois e um. Exemplo de matriz de dimenso 3: int m3[5][10][10];
Mod.AFTEBI.P-052.rev02
Matrizes em C
Como aceder ao elemento de uma matriz de uma dimenso ou a um vector (vector=matriz 1D)? vec
10 15 2 3 78 4
Matrizes em C
Como aceder ao elemento de uma matriz de duas dimenses? matriz x=matriz[0][0]; Resultado: x=10 x=matriz[3][3]; Resultado: Erro matriz[0][2]=3;
Mod.AFTEBI.P-052.rev02
10 24 14
1 42 87
2 4 48
Fluxograma e Pseudo-cdigo
Para utilizar matrizes em pseudo-cdigo e em fluxogramas procede-se exactamente da mesma forma que em C. declarar vector vec:
vec[100]
Mod.AFTEBI.P-052.rev02
Dicas Trabalho
Mod.AFTEBI.P-052.rev02
int str_existe(string1, string2) devolve 1 caso exista algum dos caracteres da string2 na string1 e zero no caso contrrio.
Exemplos de utilizao
int res=0; // instancia res a zero string var[2]={teste abc, teste 1231}, resv;
// instancia matriz 1D var com 2 elementos e declara string resv // var[0]=teste abc, var[1]=teste 1231
res=str_tam(var[1]); res=str_comp(var[0], var[1]); res=str_comp(var[0], var[0]); resv=str_sub(var[0], 2, 4); resv=str_sub(var[1], 6, str_tam(var[1])-1); ...
Exemplos de utilizao
// resv=1231, var[0]=teste abc, var[1]=teste 1231 // res=4 // res=3 // res=-1 // res=0 // res=1 // res=0 // res=0
Mod.AFTEBI.P-052.rev02
res=str_tam(resv); res=str_ultimo(resv, '1'); res=str_ultimo(var[0], '1'); res=str_primeiro(resv, '1') ; res=str_existe(var[1], 0123456789); res=str_existe(var[1], -); res=str_existe(var[0], fgh); res=str_ultimo(var[0], 'f');
// res=-1
Perguntas?
Mod.AFTEBI.P-052.rev02
Exerccios
Suponha que necessrio registar as classificaes dos alunos de uma turma do ensino bsico, composta por 15 alunos. Para tal foi decidido utilizar um vector com 15 posies. Desenhe fluxogramas de programas que respondam de forma conveniente a cada uma dos seguintes requisitos: a) Programa que receba o conjunto de 15 classificaes para o vector. Tenha em ateno que deve ser garantido que as notas introduzidas so vlidas ([0,20]). b) Programa que mostre os nmeros dos alunos com classificaes positivas. c) Programa que mostre a classificao mdia dos alunos aprovados.
Mod.AFTEBI.P-052.rev02
Exerccios
2) Repita o exerccio anterior mas agora para o caso de cada aluno ter trs notas (correspondentes a cada frequncia). Nota: Lembre-se que tem de obedecer ao que era pedido anteriormente, e que um aluno para ser aprovado tem de ter mdia positiva das trs frequncias. Nota: Para alnea d) faa a verificao para cada frequncia em separado. Exemplo de output: 1 Frequncia no houve notas repetidas. 2 Frequncia houve notas repetidas. 3 Frequncia no houve notas repetidas.
Mod.AFTEBI.P-052.rev02
FORMAO TECNOLGICA
Mod.AFTEBI.P-052.rev02