Algoritmos e Programação Aula 2 Elementos fundamentais de Algoritmos, Conceitos de Variáveis Profa. Marina Gomes marinagomes@unipampa.edu.br 21/03/2017 Engenharia de Computação - Unipampa 1
Aula de Hoje Conceito de variável - Diferenciação entre valores que permanecem constantes em um problema e de valores que variam; - Regras para o estabelecimento de nomes de variáveis; - Processo de transferência de dados da memória para a CPU; - Tipos de variáveis (int, float, double, char, void); - Modificadores de tipo (long, unsigned, cast); - Compatibilidade entre tipos; 21/03/2017 Engenharia de Computação - Unipampa 2
Variáveis É toda informação que tem possibilidade de se alterar no decorrer do tempo Variáveis são endereços de memória destinados a armazenar informações temporariamente Todo Algoritmo ou programa deve possuir variável 21/03/2017 Engenharia de Computação - Unipampa 3
Tipos de Dados Todas as Variáveis devem assumir um determinado tipo de informação 21/03/2017 Engenharia de Computação - Unipampa 4
Tipos de Dados Tipos Básicos (Linguagem C) 21/03/2017 Engenharia de Computação - Unipampa 5
Tipos de Dados Modificadores de Tipo (Linguagem C) 21/03/2017 Engenharia de Computação - Unipampa 6
Variáveis de Entrada e Saída Variáveis de Entrada armazenam informações fornecidas por um meio externo, normalmente usuários ou discos Variáveis de Saída armazenam dados processados como resultados De acordo com a figura anterior A e B são Variáveis de Entrada e C é uma Variável de Saída 21/03/2017 Engenharia de Computação - Unipampa 7
Identificadores São os nomes dados a variáveis, constantes e programas Regras para construção de Identificadores: - Devem possuir como 1º caractere uma letra ou Underline (_) - Ter como demais caracteres letras, números ou Underline - Ter no máximo 127 caracteres - Não possuir espaço em branco e acentuação 21/03/2017 Engenharia de Computação - Unipampa 8
Identificadores São os nomes dados a variáveis, constantes e programas Regras para construção de Identificadores: - A escolha de letras maiúsculas ou minúsculas é indiferente - Palavras reservadas: auto, asm,..., break, char,..., const,..., do, else,... Palavras que já tem definição dentro da linguagem. 21/03/2017 Engenharia de Computação - Unipampa 9
Declaração de Variáveis Ex.: X: Inteiro; NOME, ENDEREÇO, DATA: Caractere; ABC, PESO: Real; RESPOSTA: Lógico; 21/03/2017 Engenharia de Computação - Unipampa 10
Sinal de Atribuição Uma variável nunca é eternamente igual a um valor, seu conteúdo pode ser alterado a qualquer momento. Portanto, para atribuir valores a variáveis devemos usar os sinal de := ou = Exemplos: A := 2 B = 3 C := A + B 21/03/2017 Engenharia de Computação - Unipampa 11
Inicialização de Variáveis Pode ser feita junto da declaração ou após ela - Ex.: junto à declaração int variavel = 1; //declaração e inicialização da variável inteira - Ex.: após à declaração int variavel; //declaração da variável inteira variavel = 1; //inicialização da variável inteira A inicialização está ocorrendo com a constante 1. Veremos que esta inicialização pode ser feita de outras formas 21/03/2017 Engenharia de Computação - Unipampa 12
Comandos de Entrada/Saída (E/S) LER Comando de entrada que permite a leitura de Variáveis de Entrada ESCREVER Comando de saída que exibe uma informação na tela do monitor 21/03/2017 Engenharia de Computação - Unipampa 13
Operadores Relacionais Utiliza-se estes operadores para realizar comparações entre dois valores de mesmo tipo primitivo Estes valores podem ser variáveis, constantes ou expressões aritméticas Ex. 1: 17 div 3 == 20/4 5 == 5 V Ex. 2: 3**2-3 == 45 mod 6*3 9-3 == 3*3 6 == 9 F 21/03/2017 Engenharia de Computação - Unipampa 14
Operadores Relacionais Servem para comparar duas expressões Normalmente o resultado é Verdadeiro ou Falso Exercício Sabendo que A=3 e C=4, informe se as expressões abaixo são verdadeiras ou falsas a) (A+C)>B ( ) b) B >= (A+2) ( ) c) (B+A) <= C ( ) d) (C+A) < C ( ) e) C == (B-A) ( ) 21/03/2017 Engenharia de Computação - Unipampa 15
Operadores Lógicos Atuam sobre expressões retornando sempre valores lógicos como Falso ou Verdadeiro 21/03/2017 Engenharia de Computação - Unipampa 16
Expressões Lógicas As expressões compostas de relações sempre retornam um valor lógico Exemplos: 2 + 5 > 4 Verdadeiro 3<>3 Falso De acordo com a necessidade, as expressões podem ser unidas pelos operadores lógicos 21/03/2017 Engenharia de Computação - Unipampa 17
Expressões Lógicas Considere a seguinte atribuição de valor para as variáveis: A=3, B=4, C=8. avalie as expressões a seguir indicando o resultado final: verdadeiro ou falso. a) A > 3 E C == 8 ( ) b) A <> 2 OU B <= 5 ( ) c) A == 3 OU B >= 2 E C == 8 ( ) d) A == 3 E NÃO B <= 4 E C == 8 ( ) e) A <> 8 OU B == 4 E C > 2 ( ) f) B > A E C <> A ( ) g) A > B OU B < 5 ( ) h) A <> B E B == C ( ) i) C > 2 OU A < B ( ) j) A >B OU B > A E C <> B ( ) 21/03/2017 Engenharia de Computação - Unipampa 18
Linearização de Expressões Para a construção de Algoritmos todas as expressões aritméticas devem ser linearizadas, ou seja, colocadas em linhas É importante também ressaltar o uso dos operadores correspondentes da aritmética tradicional para a computacional 21/03/2017 Engenharia de Computação - Unipampa 19
Modularização de Expressões A modularização é a divisão da expressão em partes, proporcionando maior compreensão e definindo prioridades para resolução da mesma Em expressões computacionais usamos somente parênteses ( ) para modularização Na informática podemos ter parênteses dentro de parênteses 21/03/2017 Engenharia de Computação - Unipampa 20
Corpo Geral de um Programa ALGORITMO <Nome_Do_Algoritmo> VAR <<identificadores>> : <<Tipo>>; <<Tipo>> <<Identificadores>>; INICIO Comandos de Entrada, Processamento e Saída FIM <<COMANDO1>> <<COMANDO2>> 21/03/2017 Engenharia de Computação - Unipampa 21
Programação Estruturada Estabelece uma disciplina de desenvolvimento de algoritmos que facilita a compreensão de programas através do número restrito de mecanismos de controle da execução de programas Qualquer algoritmo, independentemente da área de aplicação, de sua complexidade e da linguagem de programação na qual será codificado, pode ser descrito através destes mecanismos básicos O princípio básico de programação estruturada é que um programa é composto por blocos elementares de código que se interligam através de três mecanismos básicos, que são sequência, seleção e iteração (repetição) 21/03/2017 Engenharia de Computação - Unipampa 22
Resumidamente Inicialmente faremos uma estrutura sequencial Não tendo que executar todas as ações chamamos de estrutura seletiva Quando não podemos executar a estrutura de seleção, por termos que repetir certos passo em algum algoritmos, podemos e devemos utilizar uma estrutura de repetição 21/03/2017 Engenharia de Computação - Unipampa 23
Obstáculos de um programador O maior obstáculo para um programador, é a complexidade que deve ser vencida para que o objetivo deva ser alcançado Complexidade pode ser definida por uma variedade de situações diferentes que um problema pode apresentar e que podem ser previstas Podendo surgir a partir do momento em que passamos a soluções mais complexas do que as necessárias para a resolução dos problemas 21/03/2017 Engenharia de Computação - Unipampa 24
Legibilidade Quanto mais legível for um algoritmo, menor será a complexidade dele, ou seja, será mais fácil para um observador entender o objetivo do algoritmo. 21/03/2017 Engenharia de Computação - Unipampa 25
Portabilidade Os algoritmos oferecem a facilidade de serem convertidos para diferentes linguagem de programação, já que é representado em português, além de se preocupar com a lógica do problema. 21/03/2017 Engenharia de Computação - Unipampa 26
Método cartesiano Este método consiste na divisão do problema em partes menores, tornando-o mais simples Podemos esquematizar o seguinte procedimento para este método: - Dividir o problema em suas partes principais - Analisar a divisão obtida para garantir a coerência - Se alguma parte não for compreendida aplicar a ela o método (dividi-la) - Analisar o objeto para garantir o entendimento e coerência 21/03/2017 Engenharia de Computação - Unipampa 27
Métodos para a construção de um algoritmo Ler atentamente o enunciado Retirar do enunciado a relação das entradas de dados - Descobrir que dados devem ser fornecidos pra que os cálculos sejam desenvolvidos Retirar do enunciado a relação das saídas de dados - Descobrir que dados devem ser emitidos para que o objetivo do algoritmo seja alcançado Determinar o que deve ser feito para transformar as entradas determinadas nas saídas específicas 21/03/2017 Engenharia de Computação - Unipampa 28
Métodos para a construção de um algoritmo Construir o algoritmo, podendo aplicar o método cartesiano ou ainda construindo um algoritmo definitivo Executar o algoritmo, ou seja, executar as ações estabelecidas, verificando se os resultados correspondem ao esperado e assim, detectando algum erro no desenvolvimento do algoritmo 21/03/2017 Engenharia de Computação - Unipampa 29
Estrutura Programa NomeDoPrograma; 1.{Denominação do programa} Variáveis 2. {Declaração de variáveis} Início 3. {Início do bloco principal do programa} 4. {Iniciar as variáveis de controle ou que receberão cálculos} 5. {Solicitar entrada de dados ao usuário} 6. {Entrada de dados} 7. {Processamento e cálculos} 8. {Saída de informações} Fim 9. {Final do bloco principal do programa} 21/03/2017 Engenharia de Computação - Unipampa 30
Lembrete O texto que estiver dentro de { } ou // significa comentários e não influência na execução do programa Deve-se colocar no final de instrução sempre um ; 21/03/2017 Engenharia de Computação - Unipampa 31
Exemplo1 de português estruturado Escreva um programa que imprima na tela olá mundo Modifique o programa para receber um nome e imprimir na tela ola nome_digitado 21/03/2017 Engenharia de Computação - Unipampa 32
Exercícios 1. Calcular a área de um triângulo. Recebe o valor da base. Recebe o valor da altura. Calcula a área. Mostra a área. 2. Descobrir quais os números adjacentes. Recebe um valor digitado pelo usuário. Mostra o seu sucessor. Mostra o seu antecessor. 3. Mostrar o quadrado de um número. Recebe o numero. Calcula o seu quadrado. Mostra seu quadrado. 4. Mostrar o cubo de um numero. Recebe o número. Calcula seu cubo. Mostra seu cubo. 5. Calculo percentual. Recebe o peso de uma pessoa. Recebe o percentual de emagrecimento. Calcula o novo peso. Mostra seu novo peso. 6. Conversão Celsius em Fahrenheit. Recebe a temperatura em Celsius. Converte a temperatura em Fahrenheit (celsius*1,8 + 32). Mostra a Temperatura convertida. 7. Em quantos meses o custo da transição para energia renovável será compensado? Recebe o Custo de implementação. Recebe o Custo mensal energia convencional. Calcula a quantidade de meses. Mostra a quantidade de meses. 21/03/2017 Engenharia de Computação - Unipampa 33