Aula 03 – Introdução à Lógica de
Programação (Parte2)
Professor: Rodrigo Neves Figueiredo dos Santos Disciplina: Computação I
3.3 Estruturas de Dados
Um aspecto fundamental na construção de algoritmos computacionais são as estruturas de dados, que representam as informações do problema a ser resolvido.
Tais estruturas estão organizadas em tipos distintos de informações. Dentro do escopo das estruturas de dados, definimos os termos CONSTANTE, VARIÁVEL e IDENTIFICADOR.
3.3.1Tipos Primitivos de Dados:
São os grupos de informações que o computador manipula. Podem ser: 1. Numéricos
a) inteiros. Ex: 1 4 100 0 905 ... b) reais. Ex: 1,3 816,97 3,0 0,0055 ... 2. Nãonuméricos
a) alfanuméricos ou string. Ex: “CASA” “livro” “18” ‘R$ 55,36’ .... b) lógicos ou booleanos. Ex: Falso, Verdadeiro (ou False, True) Obs: O delimitador usado para alfanuméricos pode ser: “ ” ou ‘ ’
3.3.2 Constantes
Representam valores constantes, ou seja, que não variam no decorrer do algoritmo. Ex: 148, “Opção:”, 8.69, “Tecle algo para continuar”, Falso ...
3.3.3 Variáveis
Representam informações cujos valores são modificados ao longo do tempo (Ex. Genérico: a idade de um indivíduo). Podemos definir variáveis também como um local onde um determinado valor (de um dos tipos definidos) é armazenado. Assim, a variável é composta de dois elementos básicos:
conteúdo valor atual da variável
identificador nome dado à variável para possibilitar sua manipulação
O conceito de variável corresponde a “posições de memória RAM”, onde serão armazenados os dados manipulados pelo programa quando este for implementado.
Nome de um local onde se pode colocar qualquer valor do conjunto de valores possíveis de um tipo básico associado. Usado para manipular todos os dados variáveis do algoritmo. Pode também ser usado para rotular valores constantes (ex: uso do identificador PI para representar o valor constante 3,14).
Regras para Definição de Identificadores em Pseudolinguagem (Portugol): devem começar por um caracter alfabético (uma letra);
pode ser seguido de letras e/ou dígitos;
é permitido o uso do caracter especial “_” situado entre letras e/ou dígitos. Ex. de identificadores válidos: Operador, Nome, X, y, ENDEREÇO, Aluno_01
OBS: O identificador deve representar de forma significativa o conteúdo desejado, ou seja, deve ser um MNEMÔNICO. Procure a definição de “mnemônico” num dicionário. Depois descubra como este termo é empregado em programação. O que são variáveis mnemônicas?
3.3.5 Declaração de Variáveis
É a criação (ou definição) de locais na memória rotulados com o identificador da variável (ou constante) que será utilizada no algoritmo para a manipulação de um determinado tipo de informação.
Sintaxe Geral em Portugol:
O Tipo pode ser inteiro, real, caracter (alfanumérico) ou booleano. Ex: NUM, X : inteiro;
parcela : real; resposta : booleano;
PI : real; { definição de uma constante real } NOME, ENDEREÇO : caracter;
Neste momento, as variáveis ainda não contém nenhum valor associado.
A declaração de variáveis deve ser feita antes da definição das ações do algoritmo.
Os comentários representam qualquer texto que explique uma ação ou um dado usado no algoritmo. Eles podem ser colocados em qualquer ponto do algoritmo, utilizando { } ou * * como delimitadores.
3.4 Operações Básicas
3.4.1 Comando de Atribuição
Serve para atribuir (ou associar) um valor a uma variável ou constante. Sintaxe Geral em Pseudolinguagem:
onde expressão pode ser um(a): Constante, Variável, Expressão matemática, Função matemática, Expressão booleana, etc.
PI
3.14Erro
Verdadeiro (ou, simplesmente, Erro T)Media
(P1 + P2)/2 3.4.2 Funções MatemáticasO argumento é a informação que é dada à função para que ela possa ser efetuada adequa damente. Pode ser uma constante ou uma variável.
Exemplos de Funções Matemáticas que utilizaremos:
Nome da Função Descrição da Função Exemplo
raiz ( x ) Retorna a raiz quadrada de x A = raiz(25) A = 5 sqr ( x ) Retorna x elevado ao quadrado A = sqr(4) A = 16 abs ( x ) Retorna o valor absoluto de x A = abs(15) A = 15
int ( x ) Retorna a parte inteira de x A = int(4,5) A = 4
3.4.3 Operadores Aritméticos
É comum necessitarmos realizar cálculos matemáticos com as informações que estamos ma nipulando. Para isso, é necessário sabermos qual a representação dos símbolos de operações mate máticas. Vejamos:
Operador Operação Exemplo
+ Adição 10 + 15
Subtração 20 – 10
* Multiplicação 3 * 5
/ Divisão (onde o resultado será um número real) 5 / 2 = 2,5
div Divisão (onde o resultado será um número inteiro) 10 div 2 = 57 div 2 = 3 mod Resto de uma divisão 7 mod 2 = 1
** ou exp(a, b) Exponenciação 5 ** 2 ou exp(5, 2)
3.4.4 Operadores Relacionais
Além de operações matemáticas, é freqüente nossa necessidade em comparar informações. Por exemplo: Se média for maior ou igual a 7. Para isso, utilizamos operadores relacionais.
Operador Relação
= Igualdade Diferente > Maior que
ou >= Maior ou igual que
< Menor que
ou <= Menor ou igual que
3.4.5 Operadores Lógicos
É freqüente precisarmos analisar expressões lógicas, aquelas que só possuem dois valores possíveis: Verdadeiro ou Falso. Os operadores usados em expressões lógicas são os Operadores Lógicos.
Operador Relação
Ou (Or) Ou lógico
Não (Not) Negação lógica
OuX (Xor) Ou ‘Exclusivo’
Veja a seguinte tabela para entender melhor os operadores lógicos.
P Q P e Q P ou Q P ouX Q
F F F F F
F V F V V
V F F V V
V V V V F
Prioridade na Avaliação de Expressões: 1º Parênteses e funções (resolvidos da esquerda para a direita) 2º Multiplicação (*), Divisão (/ e div) e Resto (Mod) (resolvidos da esquerda para a direita) 3º soma e subtração 4º Operadores relacionais: >, <, , , =, 5º Operador Lógico Não 6º Operador Lógico E 7º Operador Lógico Ou 3.4.6 Operações com Cadeias de Caracteres (Strings) Nem só de números vive um programa, portanto, precisamos também poder manipular dados do tipo alfanuméricos ou string. Nome da Função/Operador Descrição da Função Exemplo
+ concatenação (união) de strings A : string
A = ‘cris’ + ‘tina’ A = ‘cristina’ len retorna o tamanho de uma string A : integer
A = tamanho(‘ana’) A = 3 ord retorna o código ASCII de um carac
tere A : inteiro A = ord(‘A’) A = 65 chr retorna o caractere correspondente ao
código ASCII recebido por parâmetro
A : string
A = chr(66) A = ‘B’
ucase converte toda uma string para maius
culo A : string A = ucase(‘ana’) A = ‘ANA’
lcase converte toda uma string para minús
culo
A : string
A = lcase(‘ANA’) A = ‘ana’ pos retorna a posição de uma substring
dentro de uma string A : integer A = pos(‘asa’, ‘casa’) A = 2
3.4.7 Comandos de Entrada e Saída de Dados
Representam as ações básicas de algoritmos para recebimento e apresentação de dados, respectivamente.
Entrada de Dados: informações que são fornecidas ao programa pelo “usuário” durante a resolução do problema.
Ex: leia (altura, idade, sexo);
Saída de Dados: informações que são mostradas ao usuário como resposta ao problema. Representação em Pseudolinguagem: