Baixe o app para aproveitar ainda mais
Prévia do material em texto
LPE01 – Introdução à Linguagem C: características, bibliotecas e estrutura básica Linguagem de Programação Estruturada Linguagem de Programação Programar = estruturar dados + construir algoritmos + ling. de programação (LP). LP: Técnica de notação: conjunto de símbolos e palavras chave regidos por regras → sintaxe; expressão do raciocínio algorítmico; Semântica → significado. Sintaxe: é um conjunto de regras que define a forma de uma linguagem, estabelecendo como são compostas as suas estruturas básicas (palavras). Semântica: descreve o significado de construções sintáticas válidas. Linguagens de Alto e Baixo níveis É uma linguagem de Nível Alto pois a linguagem apresenta a capacidade de compreender instruções escritas em “dialetos” próximos à linguagem humana (mais comumente o inglês). Nasceu em 1972 projetada por Dennis M. Ritchie e Brian W. Kernigham; É derivada da linguagem ALGOL 68 e baseada na linguagem B; A linguagem C é de propósito geral, sendo adequada à programação estruturada. É mais utilizada para escrever compiladores, analisadores léxicos, bancos de dados, editores de texto, etc.. Nasceu da necessidade de escrever programas que utilizem os recursos internos da máquina de uma forma mais fácil que a linguagem de montagem Assembly. Influenciou outras linguagens como: C++, JAVA, JavaScript e Jscript. Compilação e Interpretação: necessidade 1. Para que um programa possa ser executado ele precisa estar em uma linguagem que o computador possa entender. Logo, as linguagens de programação de alto nível não podem ser automaticamente compreendidas pois o computador entende apenas a linguagem de máquina (0 e 1). 2. É necessário então transformar ou traduzir o código do programa em binário, para isso são utilizadas diferentes estratégias: 1. Compilar 2. interpretar. Linguagem Interpretada e Linguagem Compilada o Interpretador: o Lê o código fonte do programa uma linha por vez executando essa linha em seguida (a função específica contida nessa linha); o um programa interpretado necessita ter instalado o seu interpretador e toda as vezes que o programa for executado a interpretador executará linha a linha de novo. o necessita do código fonte para ser executado. o Compilador: o O código fonte é executado diretamente o código é traduzido e é gerado um programa executável; o Para executar o programa não é preciso compilá-lo novamente, a não ser que o código tenha sido modificado. Linguagem C: características Portabilidade: é possível adaptar um software escrito para um tipo de computador a outro (conversão), entre máquinas/arquiteturas e sistemas operacionais (MAC ou PC; Linux ou Windows); Modularidade: um programa em C é dividido/organizado em vários blocos de código programáveis distintos (funções) que não estão interligados mas quando compilados tornam-se um único programa. É uma linguagem estruturada pois permite a compartimentalização do código e dos dados. Ou seja, a habilidade de seccionar e esconder do resto do programa todas as informações necessárias para se realizar uma tarefa específica por meio de sub rotinas. Assim, pode-se apenas usar a função sem saber como ela faz para resolver o problema (modularização). Linguagem C: características Possui vários recursos para controlar a memória da máquina e permite a chamada de rotinas em Assembly ao processador. É uma linguagem imperativa, ou seja, pode-se usar funções que modificam o estado do programa, basta chama-las. Total interação com o Sistema Operacional (SO); Código compacto e rápido (geração de código eficiente), quando comparado ao código de outras linguagem de complexidade análoga; Possui recursos de baixo nível. Linguagem C: visão geral o Durante a execução do programa os dados são armazenados na memória. o As localizações de memória em que esses dados são armazenados se denominam estruturas de dados (ED). o As ED são organizadas conforme os tipos de dados disponíveis na linguagem de programação. o Antes de executar um programa, o computador carrega seu código executável para a memória. o Da área de memória que é reservada para o programa, uma parte é usada para armazenar as instruções a serem executadas e a outra é destinada ao armazenamento dos dados desse programa. Ambiente de Desenvolvimento DevC++ DevC++: características Dev C++: Universidade CEUMA Dev C++: Busca no código fonte ou projeto um determinado trecho Configuração da barra de ferramentas Executa, compila e recompila Dev C++: Criar e salvar um novo arquivo fonte Dev C++: Compilar e executar um arquivo fonte Dev C++: Compilar e executar um arquivo fonte Visão geral e bibliotecas Linguagem C 1ª - Linguagem C é case sensitive o É case sensitive, isto significa que a linguagem diferencia a grafia das palavras maiúsculas e minúsculas. Ou seja, as escritas abaixo são 3 elementos distintos e apenas a grafada toda em minúscula é reconhecida como uma palavra reservada para sinalizar um comando. o Case sensitive também vale para os nomes dos identificadores (variáveis, funções etc.) e também para os comandos. o Comandos como if e for, somente são reconhecidos como tais, se forem escritos em minúsculo (palavras reservadas). IF if If Na Linguagem CNo VisuAlg o Não é case sensitive, logo tanto os comandos (palavras reservadas) quanto os identificadores podem ser grafados, no mesmo programa, em minúsculo ou maiúsculo que sinalizarão o mesmo elemento e serão reconhecidos sem erros pelo interpretador. o As grafias, abaixo, sinalizam um único elemento. SE Se se 1ª - Linguagem C é case sensitive o É case sensitive: o Deve-se estar atento à grafia de das palavras em maiúsculo ou minúsculo. o A falta de cuidado e atenção nisto, leva a dois tipos de problemas: o erros no hora de debugar/compilar pois a palavra reservada do comando não é reconhecida; o erros durante a execução quando os identificadores podem sinalizar elementos diferentes. Na Linguagem CNo VisuAlg o Não é case sensitive: oNão há preocupação com a grafia de maiúsculo ou minúsculo. o Não leva a erros no interpretador ou na execução em relação a isto. o Pode deixar o código com um aspecto de desorganização. 2ª - Linguagem C tem palavras reservadas o Exemplos: break, case, if, for, while, continue, return, const ... Na Linguagem CNo VisuAlg o Exemplos: interrompa, caso, se, para, enquanto... o As palavras reservadas ou palavras chave são aquelas que: o têm um significado especial para a linguagem; o são responsáveis por realizar ações bem específicas da linguagem ou servem como delimitadores (marcadores). o não podem ser utilizadas pelo programador para outras finalidades. o É uma diretiva de pré-processador C e é verificada antes do programa ser compilado. 2ª - Linguagem C tem palavras reservadas: muitas mais... o São palavras reservadas: as funções contidas nas bibliotecas, os tipos de dados, modificadores de tipo etc. 3ª - Linguagem C utiliza bibliotecas o Para se referir a uma biblioteca no programa de forma que as funções nela existentes possam ser reconhecidas e incorporadas no executável, é necessário identifica-las no programa. o Sintaxes: A biblioteca procurada pelo pré-processador pertence ao próprio sistema, as bibliotecas padrão ANSI do C. O pré-processador procurará pela biblioteca no mesmo diretório onde se encontra o programa. 3ª - Linguagem C utiliza bibliotecas: mais algumas ... o stdio.h (standard Input Output) - operações em arquivo, entrada e saída, tratamento de erros etc.; o stdlib.h – conversão de strings, geração de valores aleatórios, gerenciamento de memória dinâmica, pesquisa e ordenação, aritmética de inteiro etc.; o math.h - para funções trigonométricas, hiperbólicas, exponenciais, logarítmicas, de potência, de arredondamento, valor absoluto etc.; o string.h – cópia, concatenação, comparação, busca etc.; o time.h – manipulação do tempo,conversão etc.; o ctype.h – para verificação de valores (números, letras, espaço em branco etc.) informados pelo usuário, conversão maiúsculo/minúsculo. Biblioteca: math.h Biblioteca: ctype.h Há funções para modificar o estado da letra (maiúsculas e minúsculas), verificar se o que foi digitado é um ponto, vírgula, número, espaço, ctrl, etc. toupper() - esta função recebe um argumento que deve ser um caractere e retorna o caractere correspondente em formato maiúsculo, se o caractere já for maiúsculo, a função não o modifica. tolower() - esta função recebe um argumento que deve ser um caractere e retorna o caractere correspondente em formato minúsculo, se o caractere já for minúsculo, a função não o modifica. isalnum() - verifica se o caractere ou inteiro passado como parâmetro é alfanumérico. Isso inclui todos os números e as letras do alfabeto, tanto maiúsculas quanto minúsculas. isalpha() - verifica se o caractere ou inteiro passado como parâmetro é alfabético. Isso inclui todas as letras do alfabeto, tanto maiúsculas quanto minúsculas. isdigit() - verifica se o caractere ou inteiro passado como parâmetro é um digito. Isso inclui todos os números. Biblioteca: ctype.h ispunct() - verifica se o caractere ou inteiro passado como parâmetro é uma pontuação. Isso inclui qualquer tipo de pontuação como . , ? ! ^ ' { } ~ : ;. Porém, não é capaz de verificar se uma letra é acentuada. isspace() - verifica se o caractere ou inteiro passado como parâmetro é um espaço em branco. islower() - verifica se o caractere ou inteiro passado como parâmetro é uma letra minúscula. isupper() - verifica se o caractere ou inteiro passado como parâmetro é uma letra maiúscula. iscntrl() - verifica se o caractere ou inteiro passado como parâmetro é um caracter de comando. Isso inclui CTRL, ALT, ENTER, BACKSPACE, etc. isxdigit() - verifica se o caractere ou inteiro passado como parâmetro é compatível com um número hexadecimal. Isso inclui todos os número (0 - 9) e qualquer letra entre A e F (não importa se minúsculo ou maiúsculo). Características, Estrutura básica e algumas funções Linguagem C 4ª - Linguagem C utiliza delimitadores para bloco de código o Os blocos de comandos/instruções de uma função devem ser delimitados quanto ao seu início e fim. Desta forma, o escopo (área de atuação/pertencimento) da função estará delimitado. o Na função, as chaves servem para indicar o início e fim do seu bloco de código (conjunto de instruções ou comandos) e são obrigatórias para toda e qualquer função. o São utilizados como delimitadores de bloco de instruções os símbolos de chaves { }. o As chaves são utilizadas também como delimitadores nas estruturas condicionais e de repetição e em outras situações que serão apresentadas mais adiante. Serão apresentados exemplos mais adiante. 5ª - Linguagem C utiliza delimitadores para instruções o Cada instrução, ao seu final, deve ser delimitada pelo símbolo de ponto-e-vírgula ; o Isto torna possível que seja descrita mais de uma instrução por linha de código. Isto, embora, seja uma flexibilidade, deve ser utilizado de forma equilibrada para não comprometer a clareza e organização do código. 6ª - Linguagem C tem uma estrutura básica e modular o É organizada em módulos, sendo que o módulo básico é chamado de função e tem um nome/identificador; o A função main() é o módulo principal e é obrigatório, pois é a partir dele que se começa a executar o programa; o Por ser uma função é necessário utilizar as chaves para delimitar o escopo de atuação da função principal. 7ª - Linguagem C permite colocar comentários o Comentar um código significa que o texto ou expressão serão ignorados pelo interpretador ou compilador, não sendo portanto executado embora, faça parte do programa. o Em geral, utiliza-se a ação de comentar para: Adicionar um texto que esclareça algum comportamento do código, ajudando na debugação do código. Ignorar uma parte do código, sem que seja necessário apaga-lo. o Os delimitadores de comentário são dois: Para comentar uma linha utilizam-se duas barras horizontais seguidas: // Para comentar um bloco de linhas utilizam-se no início da posição a ser comentada /* e na posição final o */. Linguagem C: estrutura básica No VisuAlg Na Linguagem C Linguagem C: organização do código o Organizar o código é uma necessidade e há um conjunto de regras de boa práticas de programação. Algumas delas são gerais para qualquer LP e outras dependem de características da LP. Por exemplo, deve-se: 1) identar o código, ou seja, organizar o código de modo que este fique com uma estética que auxilia a sua clareza, leitura, interpretação e, consequentemente, ajude na manutenção. No que consiste? É o espaçamento (ou uso do recuo/tabulação) antes de uma instrução, com o objetivo de sinalizar a hierarquia entre as instruções do código. Serão apresentados alguns exemplos mais adiante. 2) Adicionar comentários quando necessário para esclarecimento de alguma informação importante, mas evitar o excesso deles; 3) Evitar o uso exagerado de muitas instruções na mesma linha.
Compartilhar