Baixe o app para aproveitar ainda mais
Prévia do material em texto
FUNDAÇÃO EDUCACIONAL DE CARATINGA – FUNEC CENTRO UNIVERSITÁRIO DE CARATINGA – UNEC NÚCLEO DE ENSINO A DISTÂNCIA - NEAD ALGORITMOS E PROGRAMAÇÃO LINA Talles Penini ENGENHARIA CENTRO UNIVERSITÁRIO DE CARATINGA GRADUAÇÃO UNEC / EAD ALGORITMOS E PROGRAMAÇÃO NÚCLEO DE ENSINO A DISTÂNCIA - NEAD Página | 2 Professor: Talles Penini – sistemadeinformacaoead@funec.br 3. Linguagem de programação As linguagens de programação possibilita a comunicação entre uma pessoa e um computador. Assim como a linguagem natural, as linguagens de programação possuem regras que possibilitam o entendimento. Apesar de uma linguagem natural ser mais tolerante a erros, as linguagens de programação não permite isso, basta à falta de um ponto-e-vírgula para que o computador seja incapaz de compreender o que foi descrito. Ao escrever um algoritmo é necessário seguir a gramática imposta pela linguagem de programação utilizada, assim, o compilador conseguirá interpretar o código. Ao executar um algoritmo o compilador traduz a linguagem de programação utilizada para a linguagem de máquina. 3.1 Níveis das Linguagens de Programação As informações manipuladas pelos computadores são representadas através de dois estados. A representação desses estados decorre do fato de que os componentes eletrônicos em sua maioria assumem apenas dois estados “ligado” ou “desligado”, por exemplo, um circuito elétrico pode estar ligado ou não, ou, um capacitor pode estar “carregado” ou “descarregado”, esse sistema de representação é denominado sistema binário. Os algarismos “0” e “1” são utilizados na representação binária. Esses valores representam os possíveis valores que um bit (menor unidade de informação processada por um computador) pode assumir, esses valores estão associados aos valores de tensão presentes nos circuitos elétricos do computador. Para um ser humano trabalhar com combinações de zeros e uns não seria uma tarefa fácil. Imagine como seria escrever um algoritmo utilizando somente representações binárias, seria de uma dificuldade enorme realizar esta tarefa. Abaixo temos uma representação hipotética de um pseudocódigo que calcula a média de duas notas lidas através de uma entrada e sua versão em código binário. Algoritmo em pseudocódigo ALGORITMO DECLARE valor1, valor2, N : NUMÉRICO LEIA valor1 LEIA valor2 CENTRO UNIVERSITÁRIO DE CARATINGA GRADUAÇÃO UNEC / EAD ALGORITMOS E PROGRAMAÇÃO NÚCLEO DE ENSINO A DISTÂNCIA - NEAD Página | 3 Professor: Talles Penini – sistemadeinformacaoead@funec.br N <= (valor1+ valor2) / 2 FIM_ALGORITMO. Simulação de conversão de um código escrito em pseudocódigo para código binário. 10101001 10101011 10011001 10011010 10110011 11001001 10110100 10110001 10110100 10110010 10110011 11100011 10011001 11100001 10011010 11100010 00100010 10110010 As linguagens de programação foram criadas com o intuito de facilitar, estão mais próximas das linguagens naturais, com isso, a programação de computadores se torna menos suscetível a erros. Conjuntos de palavras chave e símbolos estabelecem comandos e instruções que são utilizados por programadores na construção de programas de computador. As linguagens com essas características são chamadas de linguagens de alto nível, já as linguagens que se aproximam da linguagem de máquina (representação binária) são denominadas como linguagens de baixo nível. São alguns exemplos de linguagem de alto nível: Java, Pascal, Python e C++. Como exemplo de linguagem de baixo nível, temos a linguagem Assembly. . 3.2 Tradutores e Interpretadores As linguagens de programação facilitaram o trabalho dos programadores, por outro lado impossibilitaram que computadores sejam capazes de compreendê-las, pelo fato de que eles conseguem somente manipular códigos binários. Existem dois softwares que são responsáveis para realizar a tradução de uma linguagem: os tradutores e os interpretadores. Os tradutores são classificados como montadores e compiladores. Ao converter um programa com nível de linguagem de montagem (representação simbólica da linguagem de máquina, ex: Asssembly) para a linguagem de máquina, o tradutor utilizado é o montador. Já na tradução de linguagens de alto nível para a linguagem de montagem o compilador é utilizado. Perceba que não existe tradução direta da linguagem de alto nível para a linguagem de máquina. Para isso, são executados alguns passos intermediários, sendo um deles a tradução para a linguagem de montagem. CENTRO UNIVERSITÁRIO DE CARATINGA GRADUAÇÃO UNEC / EAD ALGORITMOS E PROGRAMAÇÃO NÚCLEO DE ENSINO A DISTÂNCIA - NEAD Página | 4 Professor: Talles Penini – sistemadeinformacaoead@funec.br 3.3 Memória e Variáveis A memória principal do computador ou memória RAM possui componentes eletrônicos que são capazes de armazenar dados. Um digito binário (0 ou 1) ocupa na memória espaços que são chamados de bit, um conjunto de 8 bits equivalem a um byte. A memória é dividida em espaços de um byte de tamanho, cada espaço alocado pode ser acessado através de um número único que os identifica. Esses números são chamados de endereços de memória e são utilizados para identificar onde cada dado está armazenado. Na programação utilizamos símbolos para representar uma variável, essa por sua vez, possui uma posição de memória ou um conteúdo de uma célula. Como exemplo, se uma variável de nome y possui valor 20, isto quer dizer que, a posição de memória representada pelo símbolo y armazena o valor 20. Endereço Variável Valor 0 x 200 1 y 30,5 2 z Curso ... ... ... n var -1850,23 As variáveis podem conter nomes diversos, desde símbolos conhecidos na matemática, como no caso das variáveis x, y e z, até nomes como cpf, endereço, var, etc. As variáveis podem armazenar diversos tipos de valores, assim como, a variável x armazena um valor inteiro, a z armazena um conjunto de caracteres, as y e z armazenam valores fracionários. 3.3.1 Identificadores Os nomes que damos às variáveis, rotinas, constantes e demais componentes num programa escrito numa dada linguagem de programação são chamados de identificadores. Na seção anterior, por exemplo, utilizamos os identificadores x, y, z e var para dar nome às variáveis da Figura 2.4 [18]. As palavras que possuem significado especial nas linguagens de programação, como é o caso dos nomes dados às estruturas de controle (for, while, if, etc.), tipos de variáveis, dentre outros, são chamadas de palavras-chave. Os identificadores são nomes que damos às rotinas, variáveis, constantes e outros componentes de uma linguagem de programação. As variáveis utilizadas CENTRO UNIVERSITÁRIO DE CARATINGA GRADUAÇÃO UNEC / EAD ALGORITMOS E PROGRAMAÇÃO NÚCLEO DE ENSINO A DISTÂNCIA - NEAD Página | 5 Professor: Talles Penini – sistemadeinformacaoead@funec.br anteriormente x, y, z e var são identificadores criados por um programador. Existem palavras reservadas em linguagens de programação que são palavras-chave e que definem tipos de variáveis, estruturas de controle (while, for, if, etc.), dentre outros. Os identificadores possuem regras básicas em suas formações, que são: • Os caracteres utilizados são números, letras minúsculas, maiúsculas e o caractere sublinha (_); • O primeiro caractere deve ser uma letra ou o sublinha; • Não são permitidos espaços em branco; • Não é permitido utilizar palavras reservadas como identificadores. Veja alguns exemplos de identificadores válidos, abaixo: Aa Y2 programacao PROGRAMACAO valor1 valor_2 RG cpf Identificadores inválidos: 3A -> Não pode começar com número. Y 2 -> Não pode conter espaço em branco. Programacao -> Não é permitido utilizar o caractere cedilha. PROGRAMACÃO -> Caracteres especiais como o til (~) não são permitidos. for -> for é uma palavra reservada. function -> function também é uma palavra reservada. 3.3.2 Tipos primitivos Vimos anteriormente que as variáveis podem armazenar valores de diversos tipos, tais como números inteiros, fracionários e um conjunto de caracteres. Os tipos de dados ou tipo de variáveis são representados de forma diferente em cada linguagem de programação, algumas dando suporte a mais tipos que outras. Embora haja certa variação de uma linguagem para outra, a maioria delas dá suporte a um grupo de tipos básicos, incorporados na própria linguagem, chamados de tipos primitivos. Em C há a possibilidade da criação, por parte do programador, de tipos particulares, denominados de tipos derivados. Estudaremos as formas de definirmos CENTRO UNIVERSITÁRIO DE CARATINGA GRADUAÇÃO UNEC / EAD ALGORITMOS E PROGRAMAÇÃO NÚCLEO DE ENSINO A DISTÂNCIA - NEAD Página | 6 Professor: Talles Penini – sistemadeinformacaoead@funec.br tipos derivados no Capítulo 5. Existem três tipos primitivos na linguagem C: números inteiros, números de ponto flutuante (números fracionários) e caracteres. Os números fracionários são chamados de números de ponto flutuante devido à forma como eles são armazenados no computador. Portanto, sempre que você ouvir o termo ponto flutuante tenha em mente que o tipo de dados em questão diz respeito aos números fracionários. As variáveis podem armazenar vários tipos de dados, como um conjunto de caracteres, números fracionários ou inteiros, dentre outros. Cada linguagem de programação possui uma forma específica de representar os tipos das variáveis. Apesar de algumas diferenças entre as linguagens, a grande maioria delas dá suporte a um grupo básico de tipos, que são chamados de tipos primitivos. Abaixo temos exemplos de tipos primitivos na linguagem Pascal. INTEGER REAL CHAR BOOLEAN STRING[ ] (em que é o tamanho da String) 3.3.3 Declaração de variáveis Para que uma variável possa ser utilizada ela necessita ter sido declarada anteriormente. Ao definir um identificador e o tipo da variável chamamos isto de declaração de variáveis. Ao declarar uma variável é estabelecida uma relação sobre a quantidade de bits necessários para a utilização e é alocado um espaço de memória correspondente ao tamanho de bits. Os tipos das variáveis tem uma relação muito próxima com a função que elas exercem em um programa. Caso precisemos armazenar e realizar cálculos sobre a idade de alguém, deveremos declarar a variável idade como INTEGER, visto que a idade corresponde a um número inteiro positivo. Do mesmo modo, como sabemos que a altura de uma pessoa é um número fracionário (ex.: 1,80 m), devemos declarar a variável altura como sendo do tipo REAL. Variáveis do mesmo tipo podem ser declaradas em uma mesma linha, sendo separadas por vírgulas, como na declaração das variáveis dia, mês e ano do exemplo anterior. Já variáveis de tipos diferentes devem ser declaradas obrigatoriamente de forma separada. O tipo CHAR é um tipo simples predefinido padrão que consiste de todos os valores do conjunto de caracteres disponível na sua instalação. As variáveis deste tipo conterão sempre um único caractere em cada instante. O tipo BOOLEAN é um tipo simples predefinido padrão que é definido como um CENTRO UNIVERSITÁRIO DE CARATINGA GRADUAÇÃO UNEC / EAD ALGORITMOS E PROGRAMAÇÃO NÚCLEO DE ENSINO A DISTÂNCIA - NEAD Página | 7 Professor: Talles Penini – sistemadeinformacaoead@funec.br escalar simples cujos valores são FALSE (falso) e TRUE (verdadeiro). As variáveis do tipo BOOLEAN assumirão apenas um desses valores em cada instante e serão utilizadas em comandos condicionais para direcionar o fluxo do processamento. A linguagem PASCAL oferece várias opções de tipos para manipulação de dados. As três categorias básicas de tipos de dados em PASCAL são: 1) os tipos simples, conhecidos igualmente por tipos escalares e por tipos elementares, que tanto podem ser predefinidos (tais como INTEGER, REAL, BOOLEAN e CHAR) como podem ser definidos pelo próprio usuário (tipos subfaixa e escalar enumerado); 2) os tipos estruturados: ARRAY, STRING, SET, RECORD, FILE e TEXT; 3) o tipo apontador. Exemplos: var x, y: integer; w, z: real; letra1: char; terminou: boolean; 3.4 Fluxo de execução de um programa Adotamos a linguagem Pascal, pois acreditamos que esta é a melhor linguagem de programação para iniciantes. Pascal é uma linguagem que tem os requisitos que achamos importantes: é uma linguagem fortemente tipada, com sintaxe relativamente simples, possui vários compiladores para diversos sistemas operacionais e, finalmente, este compilador apresenta mensagens de erro relativamente simples de serem compreendidas. Um programa em Pascal contém obrigatoriamente um cabeçalho e um programa principal. program exemplo1; begin comando 1; comando 2; comando 3; end. O cabeçalho deste programa é a linha contendo a palavra reservada program CENTRO UNIVERSITÁRIO DE CARATINGA GRADUAÇÃO UNEC / EAD ALGORITMOS E PROGRAMAÇÃO NÚCLEO DE ENSINO A DISTÂNCIA - NEAD Página | 8 Professor: Talles Penini – sistemadeinformacaoead@funec.br seguido de um identificador que é o nome deste programa, no caso exemplo1, terminado por um símbolo de ponto-e-vírgula (;). O programa principal é tudo o que está entre as palavras reservadas begin e end, terminada em um ponto final (.). Aqui mostramos três “comandos" fictícios, para fins desta apresentação. Queremos dizer que o programa vai executar três comandos quaisquer. Observe que todos os comandos em Pascal são terminados com um ponto-e-vírgula (;). O importante é que o fluxo de execução do programa obedece a seguinte ordem: primeiro executa o comando 1, depois de terminado, executa o comando 2, depois de terminado executa o comando 3. Quando este termina, o programa encontra o end. e encerra o programa. Na medida em que os conceitos fundamentais forem sendo apresentados iremos detalhar melhor os elementos do cabeçalho. CENTRO UNIVERSITÁRIO DE CARATINGA GRADUAÇÃO UNEC / EAD ALGORITMOS E PROGRAMAÇÃO NÚCLEO DE ENSINO A DISTÂNCIA - NEAD Página | 9 Professor: Talles Penini – sistemadeinformacaoead@funec.br Referências DE SOUZA, Bruno Jefferson; JÚNIOR, José Jorge Lima Dias; FORMIGA, Andrei de Araújo. Introdução a Programação. João Pessoa: UFPB, 2014. VASCONCELOS, José; REIS, Luís Paulo. Introdução à Algoritmia e Estrutura de Dados. Universidade Fernando Pessoa, 2002. CASTILHO, Marcos; SILVA, Fabiano; WEINGAERTNER, Daniel. Algoritmos e Estruturas de Dados I, 2020. DAURICIO, Juliana Schiavetto. Algoritmos e lógica de programação. Londrina: Editora e Distribuidora Educacional S.A., 2015. Puga, Sandra; Rissetti, Gerson. Lógica de Programação e Estruturas de Dados. São Paulo: Pearson, 2016. 3. Linguagem de programação As linguagens de programação possibilita a comunicação entre uma pessoa e um computador. Assim como a linguagem natural, as linguagens de programação possuem regras que possibilitam o entendimento. Apesar de uma linguagem natural ser mais tolerante a... 3.1 Níveis das Linguagens de Programação Algoritmo em pseudocódigo ALGORITMO DECLARE valor1, valor2, N : NUMÉRICO LEIA valor1 LEIA valor2 N <= (valor1+ valor2) / 2 FIM_ALGORITMO. 3.2 Tradutores e Interpretadores3.3 Memória e Variáveis A memória principal do computador ou memória RAM possui componentes eletrônicos que são capazes de armazenar dados. Um digito binário (0 ou 1) ocupa na memória espaços que são chamados de bit, um conjunto de 8 bits equivalem a um byte. A memória é div... 3.3.1 Identificadores 3.3.2 Tipos primitivos 3.3.3 Declaração de variáveis 3.4 Fluxo de execução de um programa
Compartilhar