Prévia do material em texto
Universidade Estácio de Sá Curso: Sistemas de Informação Disciplina: Algoritmos Campus: Nova América / Pç XI Professora: Anita Maciel Resumo e Atividades para AULA 3o / 15 Código da disciplina CCT0001 Período: 1o Unidade: III E II Itens Todos Carga horária: 2 tempos em sala e 2 tempos no laboratório (200 minutos) Tema da aula Manipulação de dados Conteúdo Comando de atribuição de valores; Utilização de operadores aritméticos básicos; Definição das operações matemáticas: resto da divisão, raiz quadrada e potenciação; Apresentação do conceito de entrada – processamento – saída; Montagem de algoritmos; Definição do que é uma linguagem de programação; Apresentação de comandos da linguagem de programação, correspondentes aos comandos utilizados nos algoritmos; Apresentação de um programa compilador e do seu funcionamento; Desenvolvimento de programas com a linguagem de programação. Objetivos da aula Atribuir valores para as variáveis; Utilizar operadores aritméticos para manipulação de dados; Utilizar operações matemáticas diversas daquelas básicas; Desenvolver algoritmos com operações matemáticas mais complexas; Representar os comandos utilizando fluxograma (diagrama de blocos) e pseudocódigo (portugol); Traduzir os comandos utilizados em pseudocódigo/fluxograma em comandos de linguagem de programação; Utilizar comandos de uma linguagem de programação para implementação de algoritmos, na forma de programas de computador (Laboratório). Atividades 1. Conhecer os operadores; 2. Conceituar o comando de atribuição; 3. Construir algoritmos simples; 4. Testar algoritmos. 5. Conhecer o ambiente do Dev-cpp Professora ANITA LOPES 2 Aplicação prática e teórica Compreensão de que há várias maneiras de formalizar a solução de um problema do mundo real através dos algoritmos, por exemplo: 1. Fluxograma; 2. Pseudocódigo; 3. Linguagem de programação. Tarefas • Reveja todos os conceitos vistos nesta aula. • Aprimore seus conhecimentos pesquisando no material didático e na bibliografia recomendada (procure na Biblioteca do campus ou na Biblioteca Virtual/SIA). • Assista às apresentações sobre Construindo Teste de Mesa disponível no site: http://r.groups.yahoo.com/group/prog1_unesa • Faça o Estudo Dirigido da AULA_3. http://r.groups.yahoo.com/group/prog1_unesa • Faça o download das apostilas UsandoDEVCmaismais e UsandoVisualCmaismais no site http://r.groups.yahoo.com/group/prog1_unesa • Faça 10 exercícios da Lista de exercícios 1. doc e 10 exercícios da Lista_1.doc Formalizando alguns conceitos Dados “... o computador e todos os instrumentos que o precederam (réguas de cálculo, máquina de Pascal, a calculadora de Leibniz, a máquina analítica de Babbage, etc.) são somente as manifestações práticas que foram surgindo com naturalidade, em resultados da busca pelo homem de reduzir problemas a equações matemáticas, resolvendo-as segundo regras”.(FONSECA FILHO, C., 1999, p.51) Manipular dados/informações é, com certeza, uma das principais funções de um computador. Mas que tipos de dados são esses? Que tipos de operações podem ser feitos com eles? Durante toda nossa vida escolar, no aprendizado da Matemática, trabalhamos com dados numéricos que pertenciam ao conjunto dos naturais(N), ao conjunto dos inteiros(Z), ao conjunto dos reais(R) e, alguns de vocês, trabalharam com dados que pertenciam ao conjunto dos complexos(C). Ao longo dos anos, fomos aprendendo que tipos de operações poderiam ser realizadas com os números e fomos incorporando que alguns conceitos só eram aplicados a números que pertenciam ao conjunto dos inteiros tais como: conceito do primo, MDC, MMC, divisores, fatorial, etc e outras operações do tipo real tais como raiz, logaritmos, etc. Fomos formalmente apresentados a todos operadores aritméticos, relacionais e lógicos. Aprendemos desde os primeiros a construir expressões com eles. A única novidade aqui é que alguns deles poderão ser apresentados de outra forma. Paralelamente, em nossa aulas de Português, fomos aprendendo a lidar com a palavra e os fonemas. Professora ANITA LOPES 3 Nada poderia ser diferente do que já estudamos uma vez que, como já vimos, foram os matemáticos com seus teoremas ou postulados forneceram subsídios para o surgimento do computador. Origem do dado O dado é um valor fornecido pelo usuário, gerado pelo programa ou lido de um arquivo. Tipos de Dados De uma maneira geral, existem os tipos primitivos e os compostos. Tipos primitivos de dados são aqueles fornecidos pelas linguagens e que não, necessariamente, serão os mesmos em todas as linguagens. De um modo geral, os tipos inteiro, real e caracter (que armazena só um caracter) apresentam as mesmas características em várias linguagens. int Ö Tipo de dado que representa um número inteiro: 23 , -1989, etc. real Ö Tipo de dado que representa um número com ponto flutuante: 3.0, -8.76, etc. caracter Ö Tipo de dado que representa um ou mais caracteres entre aspas simples ou dupla. Também conhecido como alfa-numérico. logico Ö Tipo de dado lógico que só pode assumir dois valores: true ou false ideal para estruturas de teste. Onde ficam os dados? Você já parou para pensar onde fica(m): a) O programa que está sendo executado? b) Os dados que o usuário digita no teclado? c) Onde fica o resultado de uma operação que você deseja usar em outras operações? Para todas estas perguntas, só existe uma resposta: (memória de acesso aleatório). Professora ANITA LOPES 4 Operadores Operador Significado Exemplo + Adição 2 + 3 - Subtração 14 - 5 * Multiplicação 4 * 3 / Divisão real(pode ser inteira) 20 / 3.5 ou 20 / 3 div Divisão inteira(pode não existir) 8 div 5 ou --- % Resto da Divisão inteira 30 % 4 ou 30 mod 4 ** Potenciação(pode não existir) 2**3 ou --- Funções Funções Numéricas sen(x) seno de um ângulo em radianos cos(x) co-seno de um ângulo em radianos tan(x) tangente de um ângulo em radianos abs(x) x independente do sinal exp(x) número e elevado a x log(x) logaritmo neperiano de x raiz(x) raiz quadrada de x intreal(x) converte x para real realint(x) converte x para inteiro, arredondando matematicamente. Variável A variável pode ser definida como sendo um endereço na memória principal, não entendendo pontualmente um, que armazena dados/ informações e cujo valor poderá ser alterado durante a execução do programa. A esse endereço será associado um nome. Declarando uma variável Para que e possamos declarar uma variável, primeiro precisamos definir que tipo tipos de operações poderão ser realizadas com o dado que será armazenado. Na maioria das linguagens, as variáveis precisam ser declaradas antes de serem usadas. Para se declarar uma variável, usamos a seguinte sintaxe: tipo nomeDaVariável ; Quais os tipos das variáveis? Se a variável armazena dados e se já foram definidos os tipos de dados, é conclusivo que os tipos das variáveis devam coincidir com os tipos dos dados. Tipos int, real, caracter (string) e lógico(algumas linguagens não têM) Qualquer nome serve para uma variável? Para se dar nome à variável, também conhecidocomo identificador da variável, é preciso seguir algumas regras que dependerá da linguagem que você tiver trabalhando. Nesse estudo, inicialmente, vamos adotar as seguintes regras: Professora ANITA LOPES 5 1. O primeiro caracter pode ser uma letra (maiúscula ou minúscula) não acentuada. 2. A partir do segundo caracter, poderá ser outra letra ou algarismo. Nunca use espaços. 3. Procure dar nomes significativos às variáveis. 4. Se a linguagem for case sensitive, lembre-se que ela faz diferença entre letras maiúsculas e minúsculas. 5. Nenhuma palavra reservada deverá ser usada para nome de variável embora em algumas linguagens isso não tenha importância. 6. Algumas linguagens(C++) admitem o uso do caracter underline(underscore), mas vamos declarar, por enquanto, nossas variáveis com letras e algarismos, pois já temos que lembrar de muita coisa. Nomes válidos Nomes não válidos num , idade, n1, alt, mediaDaTurma 2n, média geral, n#3 Exemplos de declarações de variáveis na linguagem UAL: Os comandos O que acontece na int idade; real peso; string sexo; logico resp; Como os dados são armazenados nas variáveis? As formas básicas são: através do comando de atribuição ou do comando de entrada via teclado. Ö O comando de atribuição Fluxograma Usando expressões com operadores Aritméticos Só atribuindo valores Usando expressões com outros operadores/ funções Professora ANITA LOPES 6 É um dos quatro comandos básicos da programação. Consiste em atribuir um valor a uma variável. Para se atribuir um valor uma variável, usamos a seguinte sintaxe: nomeDaVariável <- valor ; Exemplos de atribuições: O comando O que acontece na idade <- 20 ; peso <- 65 ; sexo <- ”m” ; resp <- falso ; Ö Comando de entrada de dados Observe a sequência de figuras abaixo e se imagine sentado à frente de um computador. Você pressiona as teclas 2 0 e, à medida Então, você pressiona a tecla enter. Professora ANITA LOPES 7 que você digita, seus valores são ecoados no display para que você possa visualizar o que digitou e corrigir se necessário. O que você digitou é enviado através de um barramento até chegar a uma área especial de memória chamada registrador. O último momento é o armazenamento na memória principal que é feito através de uma ordem de ”escrita” enviada, por um outro barramento, pela unidade de controle. Fluxograma Comando de entrada de dados(via teclado) Esse símbolo representa um comando que libera o teclado para que o usuário digite o que lhe for pedido, sinalizando no display com o cursor(| ou ?) piscando. O teclado é considerado o dispositivo padrão de entrada e, poderá ser substituído pelo símbolo geral de entrada e saída. Dentro do símbolo virá o nome da variável que receberá o dado que for digitado. Se você tiver mais de um dado para ser digitado, poderá usar a vírgula para separar os nomes das varáveis. Exemplos: Linguagem UAL Comando de entrada de dados - leia Sintaxe leia nomeDaVariável; Esse comando precisa ser escrito com letras minúsculas. Como escrevê-lo? Digite a palavra leia, pressione a barra de espaço, digite o nome da variável e finalize com ; exemplo leia a; leia b; leia c; Ler o valor da prestação que deveria ter sido paga e o valor dos juros. Calcular o novo valor da prestação e exibi-la. Gostaríamos de refazer essa análise, mais objetivamente, antes de começarmos a construir algoritmos incluindo o comando de entrada de dados. Professora ANITA LOPES 8 Utilizaremos o diagrama abaixo: Identificando as variáveis e comandos: Dados de Entrada • quantidade: 2 nome(s): valor, juros • tipo(s) : real, real Dado(s) Intermediário(s) - gerados pelo programa (comando de atribuição) • quantidade: 1 nome(s): novoValor • tipo(s) : real PROCEDIMENTOS 1- obter valor, juros 2- novoValor Í valor + juros 3- exibir novoValor REFERÊNCIA BIBLIOGRÁFICA FARRER, Harry et al. Algoritmos estruturados. 3. ed. Rio de Janeiro: LTC, 1999. GUIMARÃES, A. M; LAGES, N. A. Algoritmos e estruturas de dados. Rio de Janeiro: LTC, 1994. DEITEL, Harvey M.; DEITEL, Paul J. C++: como programar. Porto Alegre: Bookman, 2005. BIBLIOGRAFIA COMPLEMENTAR MANZANO, J. A. N. G., OLIVEIRA, J. F. de. Algoritmos: lógica para desenvolvimento de programação de computadores. 17. ed. São Paulo: Érica, 2005. FORBELLONE, A. L. V., EBERSPACHER, H. F. Lógica de programação: a construção de algoritmos e estrutura de dados. 2. ed. São Paulo: Makron, 2000. LOPES, A.L.M. Apostila de C++. RJ: 2008. SEXTON, Conar. Dominando a linguagem C++. Rio de Janeiro: IBPI, c2001. Professora: Anita Maciel Código da CCT0001 Resumo e Atividades para AULA 3o / 15 Tema da aula Conteúdo Objetivos da aula Atividades Aplicação prática e teórica Tarefas Formalizando alguns conceitos Origem do dado Tipos de Dados Onde ficam os dados? Operador Significado Exemplo + Adição 2 + 3 - Subtração 14 - 5 * Multiplicação 4 * 3 / Divisão real(pode ser inteira) 20 / 3.5 ou 20 / 3 div Divisão inteira(pode não existir) 8 div 5 ou --- % Resto da Divisão inteira 30 % 4 ou 30 mod 4 ** Potenciação(pode não existir) 2**3 ou --- Funções Numéricas Declarando uma variável Para que e possamos declarar uma variável, primeiro precisamos definir que tipo tipos de operações poderão ser realizadas com o dado que será armazenado. Tipos Nomes válidos ( Comando de entrada de dados REFERÊNCIA BIBLIOGRÁFICA