• Nenhum resultado encontrado

Introdução. 17-out-08 Leandro Tonietto 2

N/A
N/A
Protected

Academic year: 2021

Share "Introdução. 17-out-08 Leandro Tonietto 2"

Copied!
23
0
0

Texto

(1)

Programação II

Leandro Tonietto Algoritmos e Programação em C++ Curso de Segurança da Informação ltonietto@unisinos.br http://www.inf.unisinos.br/~ltonietto/tsi/ica/programacao2.pdf out-08

(2)

Introdução

 O programa não funciona apenas com números e

textos, é necessário guardar valores em um momento para serem utilizados em outro.

 Compiladores operam de maneira diferente de

acordo com os tipos de dados.

 Comentários favorecem a compreensão do

código-fonte. Além disso, a organização do código em blocos, favorece a organização e definição de escopo de código dos comandos.

(3)

Dados

 Dados são informações sobre alguém ou alguma

coisa. São atributos ou campos de determinados objetos ou entidades do mundo real.

 Por exemplo:

 Nome, salário, endereço, nascimento, cor preferida e etc.

 Quando se está modelando e programando um

sistema, o programador deve se perguntar sobre quais são os atributos ou campos envolvidos no problema.

(4)

Dados

 Exemplo:

 O problema em questão é emitir um relatório com os

“olerites” da folha de pagamento de uma empresa. Quais são os campos necessários para fazer este relatório?

 São necessários os seguintes campos por funcionário:

 Nome, identificação funcional, cargo, valor/hora, carga

horária de trabalhada, atributos de arrecadação (IRRF, INSS, FGTS e etc.), entre outros específicos da empresa.

 Podem ser necessários outros atributos que são comuns a

todos os funcionários e, portanto, são atributos da empresa:

 Nome da empresa, CNPJ e etc.

 Além disso, atributos específicos do relatório em questão:

(5)

Processamento com dados



Os dados são entendidos de acordo com o

seu tipo pelo compilador.

 Por exemplo, quando tem-se uma soma, os tipos

de dados suportados são numéricos, não possível somar caracteres, a princípio.

 Para fazer o cálculo de raiz quadrada, é

necessário se utilizar dados do tipo ponto flutuante.

(6)

Tipos de Dados

 Todos os dados possuem algum tipo específico de dado. Um domínio

de abrangência.

 Os compiladores possuem instruções específicas para cada tipo de

dado.

 Inclusive, a própria aplicação possui tratamento diferenciado de acordo

com o tipo de informação.

 Tipos de dados primitivos ou simples: aqueles nativos ao compilador e

não são combinações de outros tipos. São atômicos.

 Tipos de dados estruturados: são composição de dados primitivos ou

outros estruturados para formar uma estrutura maior significativa. Por exemplo, podemos considerar o tipo de dado Cor. Uma cor, no

computador, é representada com a combinação de três componentes básicas de cor RGB (red-green-blue ou vermelho-verde-azul). Não existe nenhum tipo primitivo para cor, então é necessário se utilizar da combinação de três bytes para formar uma cor (veremos mais em tipos de dados compostos).

(7)

Tipos de Dados básicos

 Char: representa um caractere o símbolo da tabela ASCII. Um char é um elemento

desta tabela, por exemplo o caractere da posição 65 da tabela ASCII é o ‘A’ (letra a maiúscula). Utilizados para representar letras simples ou combinados para formar cadeias de caracteres (string). Caracteres são representados por símbolos entre aspas simples (‘ ’) ou através de seu número na tabela ASCII. As strings são representadas entre aspas duplas (“ ”).

 Por exemplo, um nome ou texto é formado pela concatenação de diversos caracteres

(char): “Fulano” é a junção dos caracteres ‘F’(70), ‘u’(117), ‘l’(108), ‘a’(97), ‘n’(110) e ‘o’(111).

 Perceba que as letras possuem valores diferentes sua representação maiúscula e

minúscula. Por exemplo, a letra ‘A’ (maiúscula) é o número 65 da tabela ASCII e a correspondente minúscula ‘a’ é o número 97. Por isto na maioria das linguagens de programação a palavra “Fulano” é diferente de “fulano”, pois como palavras são comparadas letra-a-letra, haveria uma diferença entre elas, pois ‘F’ e ‘f’. Esta característica de funcionamento chama-se “case-sensitive” (sensível ao caso)

 As strings, ao contrário do exposto no primeiro parágrafo, não tipos de dados atômicos, mas

são longe a maior utilidade para o tipo de dados char.

 Os caracteres possuem precisão de um byte, portanto, com valores entre 0 e 255, inclusive.  Exemplos de tipos de variáveis char e string:

 Char: sexo, tipo de pessoa, tipo de contato, nota (quando’A, B, C, D ou E). Normalmente,

quando a faixa de valores possíveis para o dado é pequena e/ou são letras.

 String: nome, endereço, descrição e etc. Quais atributos que sejam formados por palavras,

(8)

Tipos de Dados básicos



Byte: representa um número de 256 valores

possíveis (-128 a 127). Normalmente, usado

na gravação de bytes em áreas de memória,

transferência de dados, representação de

canais de cores em imagens e etc.

 Associado a gravação de streams (áreas de

memória em bytes)



Exemplo:

 Para representar uma imagem em tons-de-cinza,

(9)

Tipos de Dados básicos

 Int: tipo de dado numérico, com possibilidade de representar 232

(4.294.967.296) valores inteiros, de -2.147.483.648 a 2.147.483.647.

 Tipos numéricos são utilizados em expressões aritméticas (soma,

subtração, multiplicação, divisão e módulo)

 Os números representam quantidade ou valor e tem tratamento

diferenciado em relação aos dados alfanuméricos.

 Por exemplo, ‘1’ é diferente de 1; o primeiro é o símbolo gráfico ‘1’ (um char

ou dígito numérico) e o segundo é a quantidade ou valor 1. Quando temos o texto “1.024”, temos apenas uma junção dos caracteres ASCII: ‘1’(49) ‘.’(46) ‘0’(48) ‘2’(50) ‘4’(52), o que completamente diferente do valor ou número 1024.

 Quando somamos 1024 + 1024, o resultado esperado é 2048. Se tentarmos

“1.024” + “1.024”, alguns compiladores acusaram erros, pois não é possível somar dois textos. Embora, em algumas linguagens a soma de textos

signifique a concatenação dos mesmos: “1.0241.024”

 Exemplos de dados numéricos do tipo int:

 Número de matrícula, quantidade de funcionários, identificador único de

(10)

Tipos de Dados básicos

 Long: tipo de dado numérico de dupla precisão, com

possibilidade de representar 264 (18.446.744.073.709.551.616)

valores inteiros, de

-9.223.372.036.854.775.808 a 9.223.372.036.854.775.807.

 Tem as mesmas características dos int, porém por serem

representados em 64 bits, possuem uma faixa de representação muito maior. Em contrapartida ocupam o dobro de espaço para armazenamento.

 Exemplos de dados numéricos do tipo long:

 CPF ou CNPJ (sem máscara do formato, apenas números), identificador único para tabelas/arquivos muito extensos,

representação de tempo (com dia, mês, ano, horas, minutos, segundos e milissegundos), acumulador de valores e etc.

(11)

Tipos de Dados básicos

 Float: tipo de dado numérico de com precisão de ponto-flutuante,

com possibilidade de representar 232 (4 bytes). A faixa de

valores depende da quantidade de dígitos da parte inteira x dígitos de precisão.

 Os números representados neste tipo de dado são os números

reais, portanto, além dos inteiros, também são permitidos os números com frações. Exemplo: 1.5f, 3.0f, 1.3333f,

1.82f e etc. Usa-se o ponto para separação da parte inteira da fracionada. O sufixo “f” é utilizado para diferenciar float de

double.

 Exemplos de dados numéricos do tipo float:

 Ângulo, distância em metros, altura, peso e etc. Normalmente, números reais com uma faixa de representação pequena; caso contrário utilize double.

(12)

Tipos de Dados básicos

 Double: tipo de dado numérico de com dupla

precisão de ponto-flutuante, com possibilidade de

representar 264 (8 bytes). A faixa de valores

depende da quantidade de dígitos da parte inteira x dígitos de precisão.

 Segue o padrão de representação utilizada pelo

float, porém sem o sufixo “f”. Exemplo: 10.0,

2.333, 5.75 e etc.

 Exemplos de dados numéricos do tipo double:

(13)

Tipos de Dados básicos

 Bool ou boolean: tipo de dado que representa um

estado binário: 0 ou 1, verdadeiro ou falso.

 Valores possíveis são dependentes da linguagem

de programação. Na liguagem Java, por exemplo, utiliza-se apenas true (verdadeiro) e false (falso). Em C/C++ utiliza-se tanto true e false, quanto 1 e 0, respectivamente.

 Exemplos de dados booleanos:

 Status de objetos (ativo/inativo), sexo ou qualquer dado

(14)

Tipos de Dados compostos

 São campos que são compostos por tipos primitivos

ou outros tipos compostos:

 String: junto de vários caracteres

 Cor: composto por três bytes (R, G e B)

 Data: composto por três inteiros (dia, mês e ano)

 Hora: composto por três inteiros (horas, minutos e

segundos)

 Monetário: composto por um double com precisão de duas

casas decimais e um símbolo monetário (R$, US$, ...).

 Exemplos de campos:

 Nome, endereço, cor preferida, data de nascimento, data

(15)

Variáveis

 São posições de memória que guardam valores para serem

“endereçados” ou referenciados no programa.

 Por exemplo, uma variável pode guardar o resultado de uma

expressão. Esta variável pode tanto ser lida ou utilizada em uma outra expressão, como pode ter seu conteúdo alterado.

 Uso de variáveis permite um processamento dinâmico, pois os

dados não necessitam serem constantes, eles podem ser calculados ou processados em tempo de execução.

 Uma variável pode assumir qualquer em tempo de execução,

desde que dentro das limitações de tipo e precisão (domínio ou capacidade de representação)

(16)

Variáveis

 As variáveis precisam ser declaradas e inicializadas.

 Declaração de variáveis é dizer ao compilador qual o identificador que será utilizado para a variável e qual é o seu tipo. A sintaxe da declaração é dependente da linguagem de programação. Exemplo em C:

<tipo_de_dado> <nome_da_variável>[=<valor_incial>];

 Inicialização é a atribuição de algum valor para colocar um estado inicial para a variável. Exemplo em C:

<nome_da_variável> = <valor>;

 Para a disciplina nós utilizaremos o mesmo padrão de declaração e inicialização da linguagem C.

(17)

Variáveis



Exemplo:

 Declaração de variável para acumular o salário

dos funcionários da empresa: double total;

 Inicialização da variável é indispensável.

total = 0.0;

 Imagine se o acumulador não possuísse valor

inicial zero, qual seria o valor ao final do processo?

(18)

Variáveis

 Outros exemplos de declaração e uso de variáveis:

string nome;

nome = “Fulano”; int idade;

int quantidade = quantidade + 1; bool sexoMasculino = true;

char statusRegistro = ‘A’; float angulo;

angulo = 45.0f;

(19)

Variáveis

 Repetindo, declaração de variáveis deve ser feita

passado o tipo de dado que ela deve ter e podendo já ser inicializada na declaração, ou não:

<tipo_de_dado> <nome_variável>[=<valor>];

string nome = “fulano”;

Inicialização durante a declaração é opcional

(20)

Comandos de linguagem

 São instruções ou palavras reservadas da

linguagem de programação utilizadas para codificar (escrever) os programas.

 Os comandos visam viabilizar a implementação da

seqüência de instruções de um fluxo de execução. Temos, no mínimo, um comando para cada tipo de elemento gráfico do fluxo.

 Comando de Atribuição: representado pelo símbolo

“=” (igual) e tem o sentido de variável “recebe” algum valor. Sintaxe:

(21)

Comandos de linguagem

 Desvio condicional de fluxo:

 Instrução que permite mudar o fluxo de execução dada

uma condição. A condição é uma expressão booleana.

 Possui duas possibilidades de execução (desvio de fluxo).

Uma caso a expressão seja verdadeira e outra caso contrário.

 Sintaxe:

SE <expressao_bool> ENTAO

<bloco de instruções caso o resultado da expressão seja verdadeiro>

SENAO

<bloco de instruções caso o resultado da expressão seja falso>

(22)

Comandos de linguagem



Exemplo. Verificar se um saldo está abaixo

de um limite e proceder processamento ou

imprimir uma mensagem adequada:

SE saldo < limite ENTAO

ESCREVER saldo, “ abaixo do limite”; SENAO

saldoConta = saldoConta – saldo; FIMSE

(23)

Comandos de linguagem

 Exercício:

 Fazer um programa que verifique qual de dois números é

o menor.

 Fazer um programa que calcula o valor a ser recolhido na

fonte pagadora para desconto salarial de IR. O progrma deve solicitar o valor do salário e conforme a faixa de valor, deve utilizar um percentual de desconto diferente. Faixas:

 Até 1200,00, IR é zero

 De 1200,00 até 1500,00, o desconto será de 7%  De 1500,00 até 2000,00, o desconto será de 15%  De 2000,00 até 2500,00, o desconto será de 22%  Acima de 2500,00, o desconto deve ser de 25%

Referências

Documentos relacionados

Diversidade sexual na escola: currículo e prática pedagógica / Alexandre Bortolini ; orientadora: Vera Maria Candau.. Candau,

Atente-se aos exercícios explicativos de cada conteúdo desenvolvido nas aulas on-line, bem como as atividades semanais e/ou quinzenais do caderno!!..

 Iguatemi São Paulo: As Receitas de Aluguéis cresceram 8,5% principalmente por um Aluguel Mínimo maior, devido a.. reajuste

Os casos não previstos neste regulamento serão resolvidos em primeira instância pela coorde- nação do Prêmio Morena de Criação Publicitária e, em segunda instância, pelo

Código Descrição Atributo Saldo Anterior D/C Débito Crédito Saldo Final D/C. Este demonstrativo apresenta os dados consolidados da(s)

Os valores de energia de ativação se apresentaram superiores para as amostras com incorporação da fibra de sisal, enquanto que a incorporação da fibra de vidro demonstrou

Se durante a vigência deste contrato, ocorrerem um ou mais sinistros pelos quais a Seguradora seja responsável, o Limite Máximo de Indenização do item sinistrado ficará reduzido

de lavagem da cana Interna Contato com água Concreto Ambiente C Caixa de vinho Externa Exposição atmosfrica Aço carbono 80ºC A Caixa de vinho Interna Contato com