Universidade Federal do Pampa Campus-Bagé Algoritmos e Programação Aula 2 - Elementos fundamentais de Algoritmos, Conceitos de Varíaveis Prof. Julio Saraçol juliodomingues@unipampa.edu.br Slide1
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; Slide2
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 Slide3 3
Tipos de Dados Todas as Variáveis devem assumir um determinado tipo de informação INTEIRO REAL CARACTERE LÓGICO Admite somente números inteiros. Geralmente é utilizado para representar uma contagem (quantidade) Admite números reais (com ou sem casas decimais). Geralmente é utilizado para representar uma medição Admite caracteres alfanuméricos. Os números quando declarados como caracteres tornam-se representativos e perdem a atribuição de valor Admite somente valores lógicos(verdadeiro/falso) Slide4 4
Tipos de Dados Tipos Básicos (Linguagem C) Slide5
Tipos de Dados Modificadores de Tipo (Linguagem C) Slide6
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 Slide7 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ços em branco A escolha de letras maiúsculas ou minúsculas é indiferente Slide8 8
Declaração de Variáveis Lista de Variáveis : Tipo ; Tipo Lista de Variáveis ; Ex.: X: Inteiro; NOME, ENDEREÇO, DATA: Caractere; ABC, PESO: Real; RESPOSTA: Lógico; Slide9 9
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 o sinal de := ou = Exemplos: A := 2 B = 3 C := A+b Slide10
Inicialização de Variáveis Slide11
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 Slide12 12
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: > Maior que < Menor que >= Maior ou Igual <= Menor ou Igual == Igual <>,!= Diferente Slide13 17 div 3 == 20/4 5 == 5 V Ex. 2: 3**2-3 == 45 mod 6*3 9-3 == 3*3 6 == 9 F 13
Operadores Relacionais Servem para comparar duas expressões. Normalmente o resultado é Verdadeiro ou Falso Exercício Sabendo que A=3, B=7 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) ( ) Slide14
Operadores Lógicos Atuam sobre expressões retornando sempre valores lógicos como Falso ou Verdadeiro E OU NÃO Retorna verdadeiro se ambas as partes forem verdadeiras Basta que uma parte seja verdadeira para retornar verdadeiro Inverte o estado, de verdadeiro passa para falso e vice-versa Slide15
Expressões Lógicas As expressões compostas de relações sempre retornam um valor lógico De acordo com a necessidade, as expressões podem ser unidas pelos operadores lógicos Slide16
Expressões Lógicas Considere a seguinte atribuição de valores 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 ( ) Slide17
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 Slide18
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 Slide19 19
Corpo Geral de um Programa ALGORITMO <Nome_Do_Algoritmo> VAR <<identificadores>> : <<Tipo>; <<Tipo>> <<Identificadores>>; INICIO FIM. COMANDOS DE ENTRADA PROCESSAMENTO E SAÍDA <<COMANDO1>> <<COMANDO2>> Slide20
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) Slide21 21
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 passos em algum algoritmo, podemos e devemos utilizar uma estrutura de repetição Slide22 22
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 Slide23 23
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. Slide24 24
Portabilidade Os algoritmos oferecem a facilidade de serem convertidos para diferentes linguagens de programação, já que é representado em português, além de se preocupar com a lógica do problema. Slide25 25
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 Slide26 26
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 para 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 Slide27 27
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 Slide28 28
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} Slide29 29
Lembrete O texto que estiver dentro de { } ou // significa comentários e não influencia na execução do programa Deve-se colocar no final de instrução sempre um ; Slide30 30
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 Slide31
Exemplo2 de português estruturado Em uma determinada cidade do interior X existe um índice de natalidade de n% ao ano, enquanto a cidade vizinha Y tem 30% a mais Dada a natalidade da cidade X, construa um algoritmo para calcular e mostrar o índice de natalidade Y Slide32 32
Resolução em (PE) Programa Natalidade; Var NAT_X, NAT_Y: Real; Inicio NAT_Y := 0; Escreva ( Digite a natalidade da cidade X: ); Leia (NAT_X); NAT_Y := NAT_X * 1,30; Escreva ( A Natalidade da cidade Y é, NAT_Y); Fim. Slide33 33
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 número. Calcula seu quadrado. Mostra seu quadrado. 4. Mostrar o cubo de um número. 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. Slide34