A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Profa. Mercedes Gonzales Márquez

Apresentações semelhantes


Apresentação em tema: "Profa. Mercedes Gonzales Márquez"— Transcrição da apresentação:

1 Profa. Mercedes Gonzales Márquez
Algoritmos e Estruturas de Dados I – Dados, Comandos Básicos e Operadores Profa. Mercedes Gonzales Márquez

2 2 Conceitos Básicos Computadores – máquinas capazes de solucionar problemas, mas que só agem quando recebem instruções nos mínimos detalhes. A tarefa principal dos computadores é o processamento de dados, ou seja, receber dados (entrada), realizar operações (processamento propriamente dito) e gerar uma resposta (saída).

3 Hardware e dispositivos
3 Hardware e dispositivos Estrutura de um computador MEMÓRIA UNIDADE DE ENTRADA UNIDADE DE SAIDA UNIDADE DE CONTROLE UNIDADE LÓGICA E ARITMÉTICA Unidade Central de Processamento (UCP)

4 Hardware e dispositivos
4 Hardware e dispositivos Todo o hardware opera com sinais digitais: sem energia e com energia. Normalmente usamos valores 0 e 1 para representar isto. Chamamos estes sinais de Bit : Valores 0 ou 1. Chamamos de Byte : um agrupamento de 8 bits. Todas as informações armazenadas no computador são representadas por números 0s e 1s. Informações como letras, símbolos, imagens, programas são todas vários 0s e 1s.

5 5 Software São os programas que executam tarefas utilizando o hardware de um computador. Os softwares são compostos por um conjunto de instruções que operam o hardware. Temos abaixo, por exemplo, três instruções para um computador de 32 bits. Um software e composto por milhares de instruções deste tipo.

6 6 Conceitos básicos Unidade de entrada – Traduz informação de um dispositivo de entrada em um código que a UCP entende (padrões de pulsos elétricos compreensíveis ao computador). Exemplos: Teclado, drive de CD / DVD-ROM, pen drive, joystick, câmera filmadora, câmera digital, tela sensível ao toque, mesa gráfica, caneta ótica, etc. Unidade de saída – converte os dados processados, de pulsos elétricos em palavras ou números que podem ser escritos em vídeos ou outros dispositivos de saída. Exemplos: Vídeo, Impressora, drive de CD/DVD-ROM, pen drive, caixa de som, etc.

7 7 Conceitos básicos Memória – armazena os dados e o próprio programa. Número finito de localizações que são identificadas por meio de um único endereço. 1000 1003 1004 1005 1006 1007 1008 1009 1010 1001 1002 Escrita – CPU envia endereço da posição de memória a ser escrita e dados a escrever. Read/Write CPU Endereço Dados Leitura – CPU envia endereço da posição de memória a ser lida e recebe dados.

8 8 Conceitos básicos Unidade lógica e aritmética – São executadas operações matemáticas de adição, multiplicação e divisão e operações lógicas como conjunção, disjunção, ou exclusivo e outras. Unidade de controle – Responsável pelo “tráfico” de dados. Controla a transferência de dados da memória para a unidade lógica e aritmética, da entrada para a memória e da memória para a saída.

9 Conhecimento do nosso processador
9 Conhecimento do nosso processador (I) comandos básicos que manipulam os dados em memória e a interação com o usuário (entrada e saída de dados e comando de atribuição). (II) Operadores aritméticos, relacionais e lógicos. (III) comandos que modificam o fluxo de execução do algoritmo. Antes de falarmos dos comandos básicos devemos falar dos conceitos de dados e variáveis.

10 Dados Os algoritmos irão manipular dados, que normalmente são fornecidos pelos usuários, e entregar resultados para estes usuários. Que tipo de dados poderemos manipular? As linguagens de programação estabelecem regras precisas para definir que tipos de dados irão manipular.

11 Dados A representação por pseudo-código, que será adotada nesta matéria, também estabelece, ainda que informalmente, algumas regras que limitam o conjunto de dados existentes na natureza e que poderão ser manipulados pelos algoritmos. Existem três tipos básicos de dados que a linguagem irá manipular: Dados numéricos Dados literais ou alfa-numéricos Dados Lógicos

12 Dados (1) Dados Numéricos: Dois tipos: inteiros e reais
O conjunto dos dados inteiros pode ser definido como Z={...,-3,-2,0,1,2,...}. O conjunto dos números reais inclui o conjunto dos números inteiros, dos números fracionários e dos números irracionais. O conjunto dos números fracionários pode ser formalmente definido como Q={p/q | p,q pertencem a Z}. O conjunto dos números irracionais engloba aqueles que não podem ser representados por uma fração, por exemplo o número PI= 12

13 Dados (1) Inteiro Exemplos: a) 15 b) -1 (2) Real Exemplos:
Os números irracionais são armazenados até um certo número de casas decimais que o computador consegue representar a partir daí as casas decimais são descartadas. (1) Inteiro Exemplos: a) 15 b) -1 (2) Real Exemplos: a) 3,141592; b) -0,91 13

14 Dados (2) Dados literais ou alfa-numéricos
Dados literais servem para tratamento de textos e normalmente são compostos por uma sequência de caracteres contendo letras, algarismos e caracteres de pontuação. Nos algoritmos são normalmente representados por uma sequência de caracteres entre aspas, por exemplo: (a) “JOSÉ GONÇALVES” b) “12345” c) “x1y2w3” d) “*A!B:-” e) “23/03/10” f) “falso” 14

15 Dados (3) Dados Lógicos Os dados lógicos ou também chamados booleanos somente podem assumir dois valores: verdadeiro e falso. Computadores tomam decisões, durante o processamento de um algoritmo, baseados nestes dois valores. Portanto, este tipo de dados é intensamente aplicado durante o processo de tomada de decisões que o computador frequentemente é obrigado a fazer. 15

16 Memória 1616 • Memória: sequência de células
• Endereço: posição da célula • Células armazenam dados – Valor pequeno: uma célula – Valor grande: duas ou mais células

17 Memória 1717 • Operações na memória:
1. Consulta (lê) células de memória 2. Programa calcula um novo valor 3. Armazena (escreve) o novo valor em uma célula

18 Variáveis 1818 • Abstração dos endereços de memória.
• Rótulo simbólico para cada endereço.

19 Variáveis 1919 • Variável: nome simbólico associado a um dado.
Nome (rótulo ou identificador)) Variável: Valor (conteúdo)

20 Variáveis - Identificadores
O identificador escolhido para rotular as variáveis deve obedecer as seguintes regras - O primeiro caractere deve ser uma letra - Os nomes devem ser formados por caracteres pertencentes ao seguinte conjunto: {A,B,...,X,Y,W,Z,0,1,...,8,9,_} Utiliza-se nomes de variáveis elucidativos. Exemplo se a variável vai armazenar o nome de um empregado, deve-se usar o identificador nome para representá-la. 20

21 Variáveis - Declaração
Uma vez declarada a variável, qualquer referência que se faça ao seu identificador implica a referência ao conteúdo do local da memória representado pelo mesmo. 21

22 Variáveis – Sintaxe da declaração
tipo_dado : identificador_da_variável Exemplos: real: x,y,z,w inteiro: num_alunos literal: nome_aluno logico: sim 22

23 Variáveis No momento da declaração de uma variável, um espaço de memória é alocado para ela. Endereço na memória Nome (identificador) Variável: Valor (conteúdo) Conteúdo Nome p r s q 1001 1005 1009 2047 inteiro: p,q,s real: r

24 I - Comandos básicos Um comando é a descrição de uma ação a ser executada em um dado momento. Descreveremos três comandos básicos no desenvolvimento de algoritmos : atribuição, entrada e saída. Atribuição: Este comando permite que se forneça um valor a uma certa variável cujo tipo deve ser compatível com esse valor.

25 Comando de atribuição Forma geral do comando de atribuição
identificador ← expressão onde: identificado é o nome da variável; ← é o símbolo de atribuição, e expressão é a representação simbólica de um valor que pode ser do tipo aritmética, lógica ou literal. A avaliação dessa representação simbólica resulta no valor a ser atribuído à variável.

26 Variáveis Atribuindo valores para p e r. Nome (identificador)
Endereço na memória Nome (identificador) Variável: Valor (conteúdo) Conteúdo Nome p r s q 1001 50 1005 40.5 1009 2047 inteiro: p,q,s real: r p ←50 r ←40.5

27 Comando de atribuição Exemplo de atribuição: k ← 10 COR ← “VERDE”
teste ← falso soma ← 50 media ← soma/k cod ← (n*n+1) > 5 sim ← k = 0 e media < 0 (e é um operador lógico que veremos mais adiante)

28 Comandos de entrada e saída
Sabe-se que as unidades de entrada e saída são dispositivos que possibilitam a comunicação entre o usuário e o computador. Exemplo: através de um teclado, o usuário dá entrada ao programa e aos dados na memória e o computador emite mensagens para o usuário através da tela ou impressora. Os comandos de entrada e saída são usados para determinar o momento da entrada de dados para o algoritmo e a saída dos resultados obtidos para o usuário.

29 Comandos de entrada e saída
Forma geral do comando de entrada leia (lista de identificadores) Onde lista de identificadores são os nomes das variáveis, separados por vírgula, nas quais serão armazenados os valores provenientes do meio de entrada. Exemplo : suponhamos que nota e numero são variáveis de tipo real e inteiro respectivamente, o comando leia (nota, número) indica que dois valores numéricos (real e inteiro) serão lidos de uma unidade de entrada, quando este comando for executado. Os valores serão armazenados nas posições de memória destinadas para as variáveis nota e número.

30 Comandos de entrada e saída
Forma geral do comando de saída escreva (lista de identificadores, constantes ou expressões) Onde lista de identificadores são os nomes das variáveis, cujos conteúdos serão mostrados ao usuário através de um meio de saída. O valor de uma constante pode ser emitido diretamente ou também uma expressão pode ser considerada, a mesma que será avaliada antes de ser escrita. Exemplo : escreva (36, nota, numero**2) indica que a constante 36, o conteúdo da variável nota e o valor resultante da expressão número**2, ou seja, quadrado de numero serão exibidos.

31 II - Operadores aritméticos
Além de limitar o conjunto de dados, a declaração de tipos define o conjunto de operadores que podem agir sobre a variável. Operadores aritméticos: 31

32 Operadores aritméticos
Símbolo Função Tipos disponíveis + Adição Inteiro,real - subtração * Multiplicação / Divisão real ** Exponenciação MOD Resto da divisão inteira Inteiro DIV Quociente da divisão inteira 32

33 Operadores aritméticos - Prioridades
1º prioridade : Exponenciação 2º prioridade : Divisão, multiplicação 3º prioridade : Adição, subtração Exemplos: 18%5=3 DIV(18,5)=3 33

34 Operadores relacionais
Símbolo Função Tipos disponíveis = Igual Todos <> Diferente >= Maior ou igual que <= Menor ou igual que O resultado obtido de uma relação é sempre um valor lógico. Exemplos: (a) A<>B (b) nome=“Maria” (c) B**2-4*A*C<0 34

35 Operadores relacionais
Dadas as variáveis numéricas x,y,z e as variáveis literais NOME e COR, observar os resultados obtidos para as relações a partir dos valores atribuídos a estas variáveis. VARIÁVEIS RELAÇÕES X Y Z COR NOME X2 +Y>Z COR=“AZUL” NOME<>”JOSE” 1 2 5 “AZUL” “PAULO” Falso Verdade 4 3 “VERDE” “JOSE” “BRANCO” “PEDRO” 35

36 Operadores relacionais
Dadas as variáveis numéricas A e B, e as variáveis literais NOME e PROFISSÃO, completar o quadro a seguir. VARIÁVEIS RELAÇÕES A B NOME PROFISSÃO A+2 > B NOME<>”ANA ” PROFISSÃO=“MEDICO” 3 16 “MIRIAM ” “ADVOGADO” 5 64 “PEDRO” “MÉDICO” 2,5 9 “ANA” “PROFESSOR” 36

37 Operadores lógicos Símbolo Função Tipos disponíveis e Conjunção Lógico
Ou Disjunção Não Negação 37

38 Operadores lógicos - e falsa. p q p e q V F
A conjunção de duas proposições p e q representa-se por: p e q e é verdadeira se e somente se ambas as proposições são verdadeiras. falsa. p q p e q V F Por exemplo ``chove e venta'' só é verdadeiro se as duas coisas forem verdadeiras, ``chove'' e também ``venta''. Se uma das sentenças não ocorrer, a sentença como um todo é falsa.é falsa. 38

39 Operadores lógicos - ou
A disjunção de duas proposições p e q representa-se por: p ou q e é verdadeira se e somente se, pelo menos, uma delas for verdadeira. p q p ou q V F Por exemplo, ``vou à praia ou vou ao campo'' é um sentença verdadeira caso qualquer uma das duas ações acontecer, ou ambas. É verdadeira, se eu for a praia e não ao campo, se eu for ao campo e não a praia e se eu for a ambos. 39

40 Operadores lógicos - não
O operador negação (não) atribui o valor lógico falso a uma proposição com valor verdade, e o valor lógico verdade a uma proposição com valor falso. Assim p não (p) V F 40

41 Operadores - Prioridades
1º prioridade : aritmético 2º prioridade : relacional 3º prioridade : e 4º prioridade : ou 5º prioridade : não 41

42 Operadores - Prioridades nas expressões mistas
1º prioridade : parênteses mais internos 2º prioridade : potências e raízes 3º prioridade : divisão e multiplicação 4º prioridade : adições e subtrações 5º prioridade : operadores relacionais 6º prioridade : operador lógico e 7º prioridade : operador lógico ou 8º prioridade : operador lógico não 42

43 III - Estruturas de Controle de Fluxo de execução do algoritmo
Estas estruturas de controle de fluxo são: Sequencial, Condicional e de Repetição. 43

44 Estrutura Sequencial Estrutura Sequencial: Execução dos comandos em uma sequência linear (na mesma ordem em que foram escritas). Exemplo*: escreva (“Informe seu nome:”) leia (nome) escreva (“Informe sua idade:”) leia (idade) escreva (“Você se chama”, nome, “e possui”, idade, “anos!”) 44

45 Estrutura Sequencial Exemplo:
Encontre as raízes de uma equação quadrática ax2+bx+c=0, usando a fórmula de Báskara. x1=(-b+raizquadrada(delta))/2a x2=(-b-raizquadrada(delta))/2a, onde delta=b2-4ac, Quando delta>=0 temos raízes reais, caso contrário elas não existem no conjunto dos reais. Solução 45

46 Estrutura Sequencial Algoritmo <raizes_equacao_quadratica>
Inicio real: a,b,c, delta,x1,x2 leia (a,b,c) delta ←b*b-4*a*c x1 ←(-b+sqrt(delta))/(2*a) x2 ←(-b-sqrt(delta))/(2*a) escreva (x1,x2) Fim * Considere a indentação adequada que consiste no alinhamento dos comandos do bloco entre inicio e fim. 46

47 Estrutura Sequencial A solução anterior não está completa, pois não considerou que se o delta for negativo, não poderemos ter raízes reais. Assim sendo, se faz necessário o uso de uma estrutura que avalie uma condição e tome um caminho de ação dependendo dessa avaliação ser verdadeira ou falsa. Isto é : a estrutura condicional 47

48 Estrutura Condicional
Estrutura Condicional : É utilizada quando existe uma condição lógica que desviará o fluxo do algoritmo para um diferente bloco de comandos, dependendo da condição ser verdadeira ou falsa. Exemplo: se (A > B) então escreva “A é maior” senão escreva “O B é maior ou são iguais” fim se 48

49 Estrutura Condicional
Problema: Testar se um número lido é positivo. Algoritmo <testa_inteiro_positivo> Inicio inteiro: a leia (a) se (a>0) então escreva (a) senão escreva (“Numero nao eh positivo”) Fim * Considere a indentação adequada após o comando se e o seu complemento senão. 49

50 Estrutura Condicional
Agora completamos o algoritmo das raízes da equação quadrática da seguinte forma: Algoritmo <raizes_equacao_quadratica> Inicio real: a,b,c, delta,x1,x2 leia (a,b,c) delta ←b*b-4*a*c se (delta>=0) então x1 ←(-b+sqrt(delta))/(2*a) x2 ←(-b-sqrt(delta))/(2*a) escreva (x1,x2) senão escreva (“Nao existem raízes reais”) Fim 50

51 Estrutura de Repetição
Considere agora a seguinte situação: Imprima uma sequência de números na tela, especificamente entre 1 e 5 A primeira ideia seria usar a estrutura sequencial e fazermos algo como: escreva (1) escreva (2) escreva (3) escreva (4) escreva (5) Isto não é prática, mas ainda se considerarmos uma sequência muito grande como imprimir os números entre 1 e Nestes casos usamos uma variável para guardar um primeiro número inteiro e depois incrementamos repetidamente a esse número. Vejamos a estrutura de repetição: 51

52 Estruturas de Repetição
Estrutura de Repetição: Execução de uma sequência de comandos repetidas vezes. O computador abandona o fluxo natural da execução (de cima para baixo) e volta a executar a sequência de ações desejada. Exemplo: A solução do problema anterior seria: M← 1 enquanto (M < = ) faça escreva (M) M ← M + 1 Fim enquanto 52

53 Estruturas de Repetição
Problema: Imprimir a soma de vários pares de números informados pelo usuário. Devemos ingressar repetidamente pares de números e fazer a soma, mas em que momento devemos parar o ingresso? O enunciado não especifica o critério de parada, portanto podemos usar uma das seguintes duas opções: Estabelecemos uma quantidade exata de pares de números Estabelecemos outra condição de parada como por exemplo quando ambos os números forem zeros. 53

54 Estrutura Condicional
Algoritmo <soma_pares1> Inicio inteiro: a,b,cont cont ←1 enquanto (cont<=30) faça leia (a,b) escreva (a+b) cont ←cont+1 fim enquanto Fim Algoritmo <soma_pares2> Inicio inteiro: a,b leia (a,b) enquanto (a<>0 ou b<>0) faça escreva (a+b) fim enquanto Fim 54

55 Resumindo Vimos a base de conhecimento para qualquer algoritmo (ou programa). Estes são: Comandos Entrada e saída Atribuição Operações Aritméticas Relacionais Lógicas Estruturas de controle de fluxo Repetição Desvio condicional 55

56 Resumindo Qualquer algoritmo e escrito como uma combinação destes comandos, operações e estruturas. 56

57 Lista de exercícios No 1 Faça um algoritmo que leia o valor do salário de um funcionário, calcule e mostre seu novo salário, sabendo que o mesmo recebeu um aumento de 21,3%. Leia os valores de dois catetos de um triângulo e calcule e mostre o valor da hipotenusa Ler uma sequência de N números e imprimir a média aritmética. Calcular o produto de números ímpares de N1 a N2 (incluindo ambos), onde N1<=N2 são lidos do teclado. Dado um número de 3 algarismos construir outro número de quatro algarismos de acordo com a seguinte regra: a) os três primeiros algarismos, contados da esquerda para a direita são iguais aos do número dado; b) o quarto algarismo é um dígito de controle calculado da seguinte forma: primeiro algarismo + segundo algarismo x 3 + terceiro algarismo x 5; o dígito de controle é igual ao resto da divisão dessa soma por 7.


Carregar ppt "Profa. Mercedes Gonzales Márquez"

Apresentações semelhantes


Anúncios Google