Algoritmos Tipos básicos.

Slides:



Advertisements
Apresentações semelhantes
Programação em Java Prof. Maurício Braga
Advertisements

Programação em Java Prof. Maurício Braga
Pseudo-código: sintaxe
Programação de Computadores
Nilo Menezes – Lógica de Programação –
Programação II Estruturas de Dados Aula 01
William Stallings Arquitetura e Organização de Computadores 8a Edição
Introdução a Programação Renata Freire
Introdução à Linguagem PASCAL Prof. Luis Otavio Alvares
1 Complexidade de Algoritmos Complexidade de pior caso Complexidade de melhor caso de uso bem menos freqüente em algumas situações específicas Complexidade.
EXPRESSÕES ARITMÉTICAS
EXPRESSÕES ARITMÉTICAS
Construção de Algoritmos 1
LINGUAGEM C.
Programação para Engenharia I
Algoritmos Escher.
Algoritmos Escher. Agenda Variáveis; Expressões; Exercícios.
Linguagem PHP Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Universidade Federal do Espírito Santo
Linguagem C Strings.
Linguagem C Strings.
Unidades de Armazenamento
Variável Variável: “objecto” que pode assumir diversos valores;
1 4.6 – Variáveis - introdução Nesta altura (ao nível da programação) interessa saber que um computador tem: Nesta altura (ao nível da programação) interessa.
7 - Funções pré-definidas
Funções Matemática.
Programação Baseada em Objectos Desenho de TAD
Revisão da Linguagem C.
Projeto e Desenvolvimento de Algoritmos
EXERCÍCIOS PROPOSTOS MATEMÁTICA Prof. Manuel.
Algoritmos e Estruturas de Dados I – Estruturas de Controle de Fluxo
Semana 03: Comandos de desvio de fluxo. Expressões lógicas.
Folha de Cálculo Como Dar Nome a Uma ou mais Células?
Conjuntos numéricos e os números reais
Ameliara Freire Os programas manipulam dados, armazenando- os e, muitas vezes, modificando seus valores. Basicamente, a linguagem.
Estrutura de dados, pseudocódigo
EXERCÍCIOS PROPOSTOS MATEMÁTICA Prof. Manuel.
Algoritmos e Programação de Computadores
Introdução a Programação
PROGRAMAÇÃO I UNIDADE 2.
Fábio de Oliveira Borges
Semana 03 Comandos de desvio de fluxo. Expressões lógicas.
Operadores e Atribuições Capítulo 3
Lógica de Programação/ Algoritmos Engenharia Produção 2014
PROGRAMAÇÃO I Dados Tipos de dados Variáveis Constantes Expressões
Campus de Caraguatatuba Aula 8: Noções Básicas sobre Erros (2)
Sistemas Numéricos SISTEMA DECIMAL
Vetor Prof. Guilherme Baião S. Silva Adaptações:
Sistemas de Numeração.
Faculdade Talentos Humanos - FACTHUS - Algoritmo I - Rogério Rodrigues
Algoritmos e Estrutura de Dados I Jean Carlo Mendes
Tipos de Dados Operadores
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA ENGENHARIA DE AUTOMAÇÃO INDUSTRIAL UNIDADE 4 Itens fundamentais para Desenvolvimento de algoritmos.
Planilha Eletrônica - Excel
Algumas notas sobre a linguagem de programação C
Aula prática 2 Operadores e Expressões Comandos de Decisão Comentários
Campus de Caraguatatuba Aula 9: Noções Básicas sobre Erros (3)
Algoritmos e Estruturas de Dados I – Estruturas de Dados
Fundamentos de linguagens de programação
ALGORITMOS AULA 3. Objetivos Apresentação das estruturas básicas; Definição de tipos de dados; Seqüência de ações; Operações – Atribuições; – Entrada.
Algoritmos.
Profa. Mercedes Gonzales Márquez
Programação de Computadores - 1
Algoritmos e Programação MC102 Prof. Paulo Miranda IC-UNICAMP Aula 2 Variáveis e Atribuições.
Professor: André Didier Autor: Francisco Airton
Fundamentos de Programação
Algoritmo e Estrutura de Dados I Aula 3 – Estrutura Seqüencial, Entrada e Saída, Atribuições e Uso de Funções Márcia Marra
Tipos de Dados Todo o trabalho realizado por um computador é baseado na manipulação das informações contidas em sua memória. Estas informações podem.
Sistemas para Internet Algoritmos e Lógica de Programação
Lógica de Programação Aula 06 Prof. Marcelo Marcony.
Transcrição da apresentação:

Algoritmos Tipos básicos

Tipos básicos Conjunto básico de tipos pré-existentes Inteiros Reais Literais Lógicos Binários Ponteiros

Tipos básicos Inteiros Reais Valores sem parte decimal Exemplos 10 7 –14 0 3 Reais Valores com parte decimal, mesmo que nula 1,75 3,14 -8,5 0,05 3,0

Tipos básicos Notação científica Expressão com potências de 10 Exemplo 4,32105 é escrito 4,32E5 Inteiros x Reais O valor é considerado inteiro, desde que o valor expresso em notação científica não contenha parte decimal se escrito por extenso 4,8877E-4 0,00048877 -3,432E-2 -0,03432 1,07E30 1,071030 1E-10 0,0000000001 -1,01E10 -10100000000 Real Inteiro

Tipos básicos Endereçamento Divisão da memória em unidades básicas Cada posição possui um endereço e e + 1 Posições (unidades) Endereços e + 2 e + 3 e + 4 Memória

Tipos básicos Armazenamento de dados em memória Representação da informação Uso dos bits, agrupados em bytes, para representar Uso das posições de memória para armazenar as informações representadas

Tipos básicos Inteiro Bases numéricas Uso de 1 byte (8 bits) Representação binária Inteiro (exemplo) 8 bits = 256 combinações Valores: 0 a 255 ou 000000002 a 111111112

Tipos básicos Memória A interpretação dos bits depende: Do número de posições de memória que são usadas para representar a informação Da convenção usada para guardar a informação Exemplo: inteiros de 1 byte com sinal Valores: -128 a 127 O primeiro bit indica se é positivo ou negativo 00000011  3 01111111  127 11111111  -1 10000000  -128

Tipos básicos Escolha da representação x Interpretação 143 -16 36.711 Memória e e + 1 e + 2 e + 3 e + 4 143 10001111 -16 36.711 01100111 103 103 -258.448.796 157 -30 10011101 40.347 10011011 155 -28 1 byte sem sinal 1 byte com sinal 4 bytes com sinal 2 bytes sem sinal

Tipos básicos Outros exemplos de representação Inteiros de 2 bytes com sinal Intervalo: -32768 a 32767 O primeiro bit indica o sinal; os demais 15 bits indicam o valor Números reais Padrão de 4 bytes (32 bits) Uso dos bits 1 bit para sinal 8 bits para o expoente 23 bits para a mantissa Sinal (1) Expoente (8) Mantissa (23) Sinal  Mantissa  2Expoente

O símbolo b indica um espaço em branco Tipos básicos Literais Usados para representar valores textuais Incluem letras, dígitos e símbolos Notação Uso de aspas duplas para indicar o tipo “Joaquim Xavier” “Digite seu nome:” “” “ ” “Qualquer coisa: % $ * @ 1 2 4 6 5 , ? !” “123,7” O símbolo b indica um espaço em branco / “bbbbbb” / / / / / /

Tipos básicos Lógicos Valores válidos verdadeiro falso

Tipos básicos Ponteiros Tudo no algoritmo é representado por “coisas” que são armazenadas em memória Cada “objeto” tem seu endereço Ponteiros indicam endereços Ponteiros são importantes para Alocação dinâmica de memória Estruturas avançadas

Tipos básicos

Tipos básicos memória Vila dos inteiros Vila dos literais Vila dos reais Vila dos ponteiros Ponteiros também estão na memória

Algoritmos Expressões

Expressões Todas as expressões são lineares

Expressões

Expressões Aritméticas Manipulam valores numéricos Operadores ( ) + ( ) – div mod * / + – unário Precedências iguais Avaliação da esquerda para a direita – Parênteses Quebra da ordem de precedência normal binário

Expressões Aritméticas Exercício: transformar a notação matemática em expressões algorítmicas a / (b + c) ((a + b) / (c – d) + e) / (f / g – h)

Expressões Aritméticas Exercício: transformar a notação matemática em expressões algorítmicas a / (b * c) a / b * c a / b / (c / d)

Expressões Aritméticas Exercício: transformar a notação matemática em expressões algorítmicas a * –b / (c * d) a * b * c / (d * (e – f) / (g * h)) + i * j – k

Expressões Aritméticas Exercício: transformar a notação matemática em expressões algorítmicas (–a – b * c * d) / (e * f) a + b * raiz(c) (–a + raiz(b – c * d)) / (e * f)

Expressões Funções pré-existentes sen(r), cos(r), tan(r) real Funções trigonométricas, com parâmetros em radianos asen(r), acos(r), atan(r) Funções trigonométicas inversas, retornando o valor do arco em radianos ln(r) Logaritmo neperiano (base e) log(r) Logaritmo base 10 exp(r) e elevado à potência r pot(v, r) real/inteiro, real/inteiro inteiro se o resultado não tiver parte decimal Potência vr sinal(v) real/inteiro inteiro Retorna 1 se o valor for positivo ou –1 se for negativo; zero se for nulo

tipo do primeiro argumento Expressões Funções pré-existentes abs(v) real/inteiro tipo do primeiro argumento Retorna o valor absoluto (sem sinal) do argumento, mantendo o tipo especificado no parâmetro trunca(r) ou int(r) real inteiro Retorna somente a parte inteira do argumento passado frac(r) Retorna somente a parte fracionária do argumento arred(r) Retorna o inteiro mais próximo do varlor real passado resto(r, i) real, inteiro Retorna o resto da divisão inteira de r por i quoc(r, i) Retorna o quociente da divisão inteira de r por i

Expressões Aritméticas Exercício: transformar a notação matemática em expressões algorítmicas a + abs((b – c) / raiz(f / g)) sen(a + b) / cos(c) + ln(d / (e * f))

Expressões Operadores inteiros div e mod div: divisão inteira mod: resto da divisão inteira 10 div 5 2 8 div 3 5 div 2 21 div 4 5 3 * 9 div 2 6 mod 3 7 mod 3 1 2322 mod 2 2327 mod 2 19 mod 3 ? ?

Expressões Mistura de reais e inteiros Regra da promoção Inteiro op inteiro  inteiro Inteiro op real  real Real op inteiro  real Real op real  real Exceção Inteiro / inteiro  real

Expressões Literais Operador único: + Concatenação “abc” + “def”  “abcdef” “abb” + “cd”  “ab cd” “b” + “a”  “ba” “Rua XV” + “, 221”  “Rua XV, 221” “ab” + “cd” + “ef”  “abcdef” /

Expressões Funções pré-existentes compr(s) literal inteiro Retorna o comprimento da cadeia de caracteres, incluindo os espaços pos(s1, s2) literal, literal Retorna a primeira posição onde a cadeia s1 ocorre na cadeia s2; Retorna 0 se não ocorrer nenhuma vez sub(s, n1, n2) literal, inteiro, inteiro Retorna a sub-cadeia de s, começando na posição n1 e comprimento total n2; primeira posição é 1 val(s) tipo equivalente ao valor numérico representado Retorna o valor numérico de uma cadeia de caracteres que contém um número válido; o tipo resultante depende o valor representado na cadeia cadeia(v) real/inteiro Resulta em uma cadeia de caracteres equivalente ao valor numérico do parâmetro; assume-se a representação sem potência de 10

Expressões Literais “Mistas” “prog” + “amação”  “programação” compr(“tipos”)  5 (inteiro) sub(“algoritmos”, 4, 3)  “ori” “Mistas” val(“443”)  443 (inteiro) val(“123,84”)  123,84 (real) val(“2e5”)  200000 (inteiro) val(“1,2345e2”)  123,45 (real) pos(“al”, “valores”)  2 cadeia(10)  “10” cadeia(3 * 7 + 1)  “22” cadeia(7 / 2)  “3,5” cadeia(1 / 3)  “0,33333” (no arbitrário de casas)

Expressões Relacionais = ≠ < > ≤ ≥ Estabelecem a relação entre valores Os tipos devem ser compatíveis O resultado é um valor lógico Operadores = ≠ < > ≤ ≥ Precedência Todos os operadores aritméticos têm Precedência sobre os operadores relacionais

Expressões Relacionais Exemplos 10 = 10 verdadeiro 8 = 5 + 2 falso 10 mod 2 = 1 1 + 2 * 7 ≠ 21 18 > 3 * 7 1 + 1 < 2 1 + 1 ≤ 2 “variáveis” = “variáveis” verdadeiro “tipos” + “dados” = “tipos dados” falso “abc” > “abb” “123” > “12”

Expressões Lógicas Operadores Operam sobre valores lógicos Resultam em um valor lógico Operadores + não e ou Precedência Todos os operadores relacionais têm precedência sobre os operadores lógicos –

Expressões Operadores lógicos: tabelas verdade não falso verdadeiro não verdadeiro falso não falso e falso falso falso e verdadeiro verdadeiro e falso verdadeiro e verdadeiro verdadeiro e falso ou falso falso falso ou verdadeiro verdadeiro verdadeiro ou falso verdadeiro ou verdadeiro ou

Expressões Dê o resultado das seguintes expressões 8 + 3 * 4 / 2  3 * 7 div 2 mod 10  4 / 2 / 2 > 1  “leopardo” < “guepardo”  verdadeiro ou verdadeiro e falso  verdadeiro e falso ou verdadeiro e falso  verdadeiro ou falso e falso ou verdadeiro  (verdadeiro ou falso) e falso ou verdadeiro  8 > 3 e 9 = 8 + 1 ou 12 mod 6 > 6  1 ≠ 1 e “zebra” < “gnu” ou 8 / 2 / 4 * 2 > 4  14,0 9 falso verdadeiro

verdadeiro e verdadeiro Expressões Observação sobre expressões relacionais 8 < 21 ≤ 43 8 < 21 e 21 ≤ 43 verdadeiro ≤ 43 verdadeiro e verdadeiro ??? verdadeiro

Variáveis Entrada e saída Atribuição Algoritmos Variáveis Entrada e saída Atribuição

Variáveis O que são Como funcionam Áreas da memória que são utilizadas para guardar valores Como funcionam Possuem um nome (identificador) Referências ao identificador indicam referência ao valor armazenado Possuem um tipo associado Os tipos são importantes para indicar como cada variável pode ser armazenada

Formalização do algoritmo Algoritmo nomeAlgoritmo { Descrição do que o algoritmo faz } { Definições necessárias } Início { Comandos que descrevem passo a passo as etapas a serem cumpridas para resolver o problema } Fim

Formalização do algoritmo Exemplo algoritmo quedaLivre { Calcula a velocidade de uma partícula ao atingir o solo após ser largada do repouso a uma dada altura } declare altura: real início leia (altura) escreva (4,43 * raiz(altura)) fim

Variáveis Declaração declare lista-identificadores: tipo declare velocidade, altura: real declare salário, saldo: real nome: literal temFilhos: lógico idade: inteiro declare idade: inteiro declare nome: literal Lista-identificadores: lista de nomes, separados por vírgulas

Variáveis declare salário, saldo: real nome: literal temFilhos: lógico salário (real) saldo (real) declare salário, saldo: real nome: literal temFilhos: lógico idade: inteiro nome (literal) temFilhos (lógico) idade (inteiro) Memória

escreva(lista-de-expressões) Entrada e saída Interface com o “mundo externo” leia(lista-de-identificadores) Faz a transferência entre de dados de fora do computador para as variáveis (i.e., para a memória) escreva(lista-de-expressões) Faz a transferência entre de dados das variáveis (i.e., da memória) para fora do computador

Entrada e saída Comando leia Comando escreva Transfere dados para dentro do computador Origem dos dados Teclado, modem, mouse (coordenadas e botões), disco rígido, CD, webcam, sensores (temperatura, pressão, movimento), interface USB etc. Comando escreva Transfere dados para fora do computador Destino dos dados Monitor de vídeo, impressora, modem, motores (acionamento automático), CD, disco rígido, interface USB etc.

Entrada e saída Exemplo 1 “Jurandir” 18 1200,0 Jurandir Jurandir nome Entrada e saída “Jurandir” idade 18 Exemplo 1 salário algoritmo exemploES { Apenas um exemplo de entrada e saída } declare nome: literal salário: real idade: inteiro início leia(nome) escreva(nome) leia(idade, salário) escreva(“Idade =“, idade) escreva(“Salário =“, salário) fim 1200,0 Jurandir Jurandir 18 1200,00 Idade =18 Salário =1200

Entrada e saída Exemplo 2 2006 18 19 2006 19 Nascimento: 1987 18 ano 2006 idade Exemplo 2 18 19 algoritmo exemploES { Apenas um exemplo de entrada e saída } declare idade, ano: inteiro início leia(ano, idade) escreva(“Nascimento:”, ano – idade) leia(idade) escreva(“Outro ano =“, ano - idade) fim 2006 19 Nascimento: 1987 18 Outro ano: 1988

Variáveis O que tem em uma variável antes da leitura? nada zero algoritmo conteúdo { exemplo de conteúdo de variáveis } declare idade: inteiro nome: literal início escreva(idade) escreva(nome) escreva(compr(nome)) { nº de caract } fim O que tem em uma variável antes da leitura? nada zero alguma coisa que eu ignoro n.d.a. Uma variável somente declarada: Tem conteúdo “lixo” Não foi iniciada É considerado erro tal utilização

Identificador  expressão Atribuição Alocação explícita de valor a variáveis Identificador é o nome de uma variável Expressão resulta em um valor do mesmo tipo que a variável em questão Identificador  expressão

Atribuição Exemplo algoritmo horasMinutosSegundos { Dada uma quantidade de segundos, escreve o número de horas, minutos e segundos equivalente } declare totalSegundos, horas, minutos, segundos: inteiro início leia(totalSegundos) horas  totalSegundos div 3600 minutos  (totalSegundos – 3600 * horas) div 60 segundos  totalSegundos mod 60 escreva(horas, minutos, segundos) fim

Constantes simbólicas 10,0 ms-2 (Terra, arredondado) 9,80 ms-2 (Terra, mais preciso) 1,67 ms-2 (Lua) 273,42 ms-2 (Sol) algoritmo quedaLivre { Calcula a velocidade de uma partícula ao atingir o solo após ser largada do repouso a uma dada altura } constante aceleracao: real = 10,0 { gravidade } declare altura, velocidade: real início leia(altura) velocidade  raiz(2 * altura * aceleracao) escreva(velocidade) fim

Algoritmos Exercício Informar o índice de massa corporal (IMC) de uma pessoa, sabendo-se que é calculada como a razão entre sua massa e o quadrado de sua altura;

Algoritmos Exercício Informar a área de um trapézio, sabendo-se que é calculada por: (b + B) * h / 2

Algoritmos Exercício Ler os coeficientes de uma equação de segundo grau e calcular o valor de y para um ponto x informado pelo usuário: y = a.x2 + b.x + c

Algoritmos Exercício Sabendo-se que a relação entre vértices, arestas e faces de um objeto geométrico é dada pela fórmula: vértices + faces = arestas + 2 calcule o número de vértices de um cubo (6 faces e 12 arestas)