FERRAMENTAS BÁSICAS DA PROGRAMAÇÃO
VARIÁVEIS E O COMANDO DE ATRIBUIÇÃO
O computador possui uma área específica de armazenamento denominada de memória.
O computador possui uma área específica de armazenamento denominada de memória. Todas as informações existentes no computador estão ou na memória principal (também chamada primária) ou na memória secundária (discos, fitas, CD-ROM etc).
O computador possui uma área específica de armazenamento denominada de memória. Todas as informações existentes no computador estão ou na memória principal (também chamada primária) ou na memória secundária (discos, fitas, CD-ROM etc). Memória principal: volátil (dados se perdem ao se desligar o computador) Memória secundária (ou auxiliar): não volátil (persistência de dados)
Vejamos como um programa armazena informações na memória principal ou RAM (Ramdom Access Memory - memória de acesso aleatório ).
Vejamos como um programa armazena informações na memória principal ou RAM (Ramdom Access Memory - memória de acesso aleatório ). A memória do computador pode ser entendida metaforicamente como um conjunto de caixas (de tamanhos variados), que num certo momento, guardam algum tipo de dado, como um número inteiro ou real, uma letra, uma palavra, uma frase etc.
O sistema computacional gerencia esse armazenamento através de endereços de memória: números, que indicam onde cada informação está localizada. Tipicamente esses endereços possui uma representação hexadecimal (base 16).
Com a evolução das linguagens de programação surgiram formas mais simples de referência às posições de memória:
Com a evolução das linguagens de programação surgiram formas mais simples de referência às posições de memória: AS VARIÁVEIS São posições de memória às quais são associados nomes.
Com a evolução das linguagens de programação surgiram formas mais simples de referência às posições de memória: AS VARIÁVEIS São posições de memória às quais são associados nomes. Com este recurso, os programadores ficam livres dos endereços físicos e podem trabalhar com referências lógicas.
Com a evolução das linguagens de programação surgiram formas mais simples de referência às posições de memória: AS VARIÁVEIS São posições de memória às quais são associados nomes. Com este recurso, os programadores ficam livres dos endereços físicos e podem trabalhar com referências lógicas. Representação esquemática: 18 Idade
O conteúdo ou valor dessas caixas (variáveis) é algo dinâmico:...a variável Idade em dado momento contém o valor 18, mas em um outro momento, poderá guardar outro valor qualquer (dentro dos valores permitidos pelo tipo de dados definido).
O conteúdo ou valor dessas caixas (variáveis) é algo dinâmico:...a variável Idade em dado momento contém o valor 18, mas em um outro momento, poderá guardar outro valor qualquer (dentro dos valores permitidos pelo tipo de dados definido). OBS: a metáfora de caixas é apenas uma representação esquemática, que aqui nos interessa didaticamente. O estudo mais preciso sobre memória e variáveis é feito na disciplina Organização de Computadores, dentre outras.
Formação do nome (identificador) de variáveis O nome de uma variável é formado por uma letra ou então por uma letra seguida por uma seqüência de letras ou dígitos numéricos.
Formação do nome (identificador) de variáveis O nome de uma variável é formado por uma letra ou então por uma letra seguida por uma seqüência de letras ou dígitos numéricos. Não é permitido o uso do espaço em branco nem do hífen ( - ). É possível ainda empregar (inclusive no início) o traço inferior ( _ ).
Nomes válidos para variáveis: Num N1, N2, N3 MedArit, MedGeom med_geom NOME, Nome, nome
Nomes inválidos: 4N (começa com dígito numérico...) Med Geom (emprega espaço...) Med-Arit (emprega um hífen...)
Embora o nome da variável seja uma livre escolha do programador, é importante que sejam escolhidos nome significativos, ou seja, que já forneçam uma idéia ou sugestão do conteúdo daquela variável. Isto contriui para uma importante qualidade dos programas:
Embora o nome da variável seja uma livre escolha do programador, é importante que sejam escolhidos nome significativos, ou seja, que já forneçam uma idéia ou sugestão do conteúdo daquela variável. Isto contriui para uma importante qualidade dos programas: LEGIBILIDADE
É muito comum, como já mostrado nos exemplos anteriores, o destaque em maiúsculas das iniciais das palavras compostas: MedArit, MedGeom
É muito comum, como já mostrado nos exemplos anteriores, o destaque em maiúsculas das iniciais das palavras compostas: MedArit, MedGeom Já variáveis escritas todas em maiúsculas, típicas de editores antigos, hoje têm uso mais restrito (por exemplo, identificação de constantes). IDADE, ALTURA
O comando de atribuição Comando empregado, para se armazenar certo valor em uma variável.
O comando de atribuição Comando empregado, para se armazenar certo valor em uma variável. Em pseudocódigo, emprega-se o símbolo para indicar uma atribuição. As linguagens de programação empregam outros símbolos. Ex:
O comando de atribuição Comando empregado, para se armazenar certo valor em uma variável. Em pseudocódigo, emprega-se o símbolo para indicar uma atribuição. As linguagens de programação empregam outros símbolos. Ex: pseudocódigo Pascal C ou Java Idade 25; Idade := 25; Idade = 25; Peso 62; Peso := 62; Peso = 62;
Efeito da execução:... Idade := 25; Idade := Idade+1; Idade := 10;... Idade
Efeito da execução:... Idade := 25; Idade := Idade+1; Idade := 10;... 25 Idade
Efeito da execução:... Idade := 25; Idade := Idade+1; Idade := 10;... 25 Idade Note que o próprio conteúdo da variável será usado para o cálculo do seu novo valor...
Efeito da execução:... Idade := 25; Idade := Idade+1; Idade := 10;... 26 Idade
Efeito da execução:... Idade := 25; Idade := Idade+1; Idade := 10;... 10 Idade
Efeito da execução:... Idade := 25; Idade := Idade+1; Idade := 10;... 10 Idade...já neste caso, o valor antigo foi completamente descartado.
Utilidade da atribuição: Em geral, os valores armazenados ficarão disponíveis para futura recuperação...
Utilidade da atribuição:... Idade := 25; Idade := Idade+1; Idade := 10;... if Idade > 20 then writeln('a idade...'); Dobro := 2*Idade; writeln(idade);... 10 Idade
GENERALIDADE Observe que o uso de variáveis possibilita a construção de programas genéricos, isto é, capazes de resolver uma certa classe de problemas e não apenas um caso particular desse problema.
GENERALIDADE Observe que o uso de variáveis possibilita a construção de programas genéricos, isto é, capazes de resolver uma certa classe de problemas e não apenas um caso particular desse problema. Pode ser muito útil, por exemplo, um programa que calcule o volume de uma esfera de raio R (que assumirá diferentes valores).
GENERALIDADE Observe que o uso de variáveis possibilita a construção de programas genéricos, isto é, capazes de resolver uma certa classe de problemas e não apenas um caso particular desse problema. Pode ser muito útil, por exemplo, um programa que calcule o volume de uma esfera de raio R (que assumirá diferentes valores)....o mesmo não se pode dizer de um programa que calcule o volume de uma esfera de raio igual a 5!
Tipos de dados Observe os comandos abaixo: Idade := 25; Peso := 60.5;
Tipos de dados Observe os comandos abaixo: Idade := 25; Peso := 60.5; A variável Idade assumirá valores inteiros dentro de certa faixa. Já Peso poderá assumir valores fracionários.
Tipos de dados Observe os comandos abaixo: Idade := 25; Peso := 60.5; A variável Idade assumirá valores inteiros dentro de certa faixa. Já Peso poderá assumir valores fracionários. Assim, essas variáveis serão diferentes em termos de tamanho (em bytes) e também terão estruturas diferentes. Isso leva ao conceito de tipos de dados.
Os tipos de dados determinam principalmente: o conjunto de valores que certa variável pode assumir; as operações válidas para esses valores.
Os tipos de dados determinam principalmente: o conjunto de valores que certa variável pode assumir; as operações válidas para esses valores. A maioria das LP exigem que qualquer variável a ser empregada em um programa seja antes declarada. Ex: var Raio : real; Idade: integer; Palavra: string[6];
Os tipos de dados determinam principalmente: o conjunto de valores que certa variável pode assumir; as operações válidas para esses valores. A maioria das LP exigem que qualquer variável a ser empregada em um programa seja antes declarada. Ex: var Raio : real; Idade: integer; Palavra: string[6]; Obs: o tipo string permite o armazenamento de cadeias de caracteres (nomes de pessoas, endereços, etc). A declaração acima, por exemplo, especifica um tamanho máximo de 6.
Obs.: Os identificadores (nomes) dados às variáveis devem ser únicos. Não podem coincidir com nomes de outras variáveis, nem com palavras reservadas do Pascal, tais como program, begin, end, etc
Obs.: Os identificadores (nomes) dados às variáveis devem ser únicos. Não podem coincidir com nomes de outras variáveis, nem com palavras reservadas do Pascal, tais como program, begin, end, etc var nome : string[40]; end: string[45]; peso: real;...o compilador acusará um erro na segunda linha.
Obs.: Os identificadores (nomes) dados às variáveis devem ser únicos. Não podem coincidir com nomes de outras variáveis, nem com palavras reservadas do Pascal, tais como program, begin, end, etc var nome : string[40]; ender: string[45]; peso: real;...agora tudo certo!
As linguagens em geral oferecem um amplo repertório de tipos de dados. Só para valores inteiros, há vários tipos de dados, a depender da faixa de valores, ou na necessidade ou não de armazenar números negativos. Exemplos em Pascal: shortint: inteiros na faixa -128..127 byte: inteiros na faixa 0..255 integer: inteiros na faixa -32768..32767 word: inteiros na faixa 0..65535 longint: inteiros na faixa -2147483648..2147483647
Qual a razão dessas faixas de valores? Lembre-se de que o maior número de informações que podemos armazenar com n bits é...
Qual a razão dessas faixas de valores? Lembre-se de que o maior número de informações que podemos armazenar com n bits é... Para 1 bit: Para 2 bits Para 3 bits 0 e 1 (2 combinações) 00,01,10,11 (4 combinações) 000,001,010,011,100, 101,110,111 (8 combinações)
Qual a razão dessas faixas de valores? Lembre-se de que o maior número de informações que podemos armazenar com n bits é... Para 1 bit: Para 2 bits Para 3 bits 0 e 1 (2 combinações) 00,01,10,11 (4 combinações) 000,001,010,011,100, 101,110,111 (8 combinações)...ou seja: para n bits, 2 n informaçoes diferentes podem ser armazenadas.
Assim, para o tipo byte... Como se emprega um byte (8 bits), podem ser armazenadas 256 informações diferentes: 0..255.
Assim, para o tipo byte... Como se emprega um byte (8 bits), podem ser armazenadas 256 informações diferentes: 0..255. Já o tipo shortint... Também 8 bits. Mas como se podem armazenar valores negativos, é necessário reservar um bit de sinal.
Assim, para o tipo byte... Como se emprega um byte (8 bits), podem ser armazenadas 256 informações diferentes: 0..255. Já o tipo shortint... Também 8 bits. Mas como se podem armazenar valores negativos, é necessário reservar um bit de sinal. Como 2 7 = 128......a faixa de valores possíveis será -128..127 (256 valores).
Assim, para o tipo byte... Como se emprega um byte (8 bits), podem ser armazenadas 256 informações diferentes: 0..255. Já o tipo shortint... Também 8 bits. Mas como se podem armazenar valores negativos, é necessário reservar um bit de sinal. Como 2 7 = 128... Um a menos por causa do zero......a faixa de valores possíveis será -128..127 (256 valores).
Assim, para o tipo byte... Como se emprega um byte (8 bits), podem ser armazenadas 256 informações diferentes: 0..255. Já o tipo shortint... Também 8 bits. Mas como se podem armazenar valores negativos, é necessário reservar um bit de sinal. Como 2 7 Para entender = 128... melhor, pesquise sobre a representação em ˮcomplemento de 2ˮ....a faixa de valores possíveis será -128..127 (256 valores).
Cuidado com overflow... Vários erros podem ocorrer quando não se atenta para essas faixas de valores.
Cuidado com overflow... Vários erros podem ocorrer quando não se atenta para essas faixas de valores. Ex: var n1,n2,soma : integer; begin readln(n1,n2); soma := n1+n2;...
Cuidado com overflow... Vários erros podem ocorrer quando não se atenta para essas faixas de valores. Ex: var n1,n2,soma : integer; begin readln(n1,n2); soma := n1+n2;... Se acontecer do usuário fornecer, para n1 e n2, 30000 e 10000, respectivamente, o resultado da soma daria 40000...
Cuidado com overflow... Vários erros podem ocorrer quando não se atenta para essas faixas de valores. Ex: var n1,n2,soma : integer; begin readln(n1,n2); soma := n1+n2;... Se acontecer do usuário fornecer, para n1 e n2, 30000 e 10000, respectivamente, o resultado da soma daria 40000... Como esse valor está fora da faixa do tipo integer, um resultado incorreto será armazenado.
Cuidado com overflow... Vários erros podem ocorrer quando não se atenta para essas faixas de valores. Ex: var n1,n2,soma : integer; begin readln(n1,n2); soma := n1+n2;... ATENÇÃO!! overflow pode levar a erros de difícil detecção. Se acontecer do usuário fornecer, para n1 e n2, 30000 e 10000, respectivamente, o resultado da soma daria 40000... Como esse valor está fora da faixa do tipo integer, um resultado incorreto será armazenado.
Outros tipos de dados: Adiante voltaremos aos tipos de dados para uma discussão mais completa. Por ora, vejamos apenas alguns exemplos de tipos de dados, dentre os mais empregados em Pascal.
Outros tipos de dados: real: valores numéricos reais char: 1 caractere letras, dígitos numéricos e caracteres especiais ('#', '&', '%', etc.) boolean: valores lógicos: true e false string: cadeias de caracteres
Para o tipo string, podemos especificar um tamanho máximo, até 255. var endereco: string[40]; palavra: string[15]; cadeia: string;...
Para o tipo string, podemos especificar um tamanho máximo, até 255. var endereco: string[40]; palavra: string[15]; cadeia: string;......endereço pode armazenar cadeias de quaisquer tamanhos, até o limite de 40.
Para o tipo string, podemos especificar um tamanho máximo, até 255. var endereco: string[40]; palavra: string[15]; cadeia: string;......se não for especificado o tamanho máximo, Pascal assumirá 255.
Desenvolvido com software livre: