LA – Ling C – Aula 03A – Linguagem de Programação

 

Linguagem de Programação

Conjunto de regras sintáticas1  e semânticas2 usadas para definir um programa de computador.

Uma linguagem permite que uma pessoa especifique precisamente sobre quais informações um computador vai atuar, como estas informações serão armazenadas ou utilizadas e quais ações devem ser tomadas sob diversas circunstâncias.

1Processo de analisar uma seqüência de instruções para determinar sua estrutura gramatical segundo uma determinada regra.

2Refere-se ao estudo do significado de uma instrução. De fato, a semântica de um programa é muito mais relacionada à lógica do que a uma linguagem de programação específica.

Mais estudos em:

http://www.inf.puc-rio.br/~inf1621/sintaxe.pdf

http://www.inf.pucrs.br/~gustavo/disciplinas/pli/material/paradigmas-aula02.pdf

Breve história da linguagem C

Linguagem de programação criada por Dennis Ritchie entre 1969 e 1973 na Bell Labs, hoje AT&T.

Desenvolvido para auxiliar no desenvolvimento do UNIX, antes escrito em Assembly.

C foi baseado na linguagem B, criada por Ken Thompson, que por sua vez foi baseado na linguagem BCLP (Basic Combined Programming Language).

thompson-ritchie-bell-labs

Compilação X Interpretação

A conversão ou tradução de um algoritmo escrito em uma determinada linguagem de programação para a linguagem de máquina pode ser feita de duas maneiras, por compilação ou por interpretação. Isso dependerá da linguagem.

escrevebinario

Linguagens compiladas dependem de um programa (compilador)  que leia o algoritmo escrito e o convertam para um formato pronto para ser executado. Este processo gera um arquivo que poderá ser executado sempre que necessário.

Programas compilados são rápidos, mas não são mutiplataforma e dependem de uma alteração depende de nova compilação para o funcionamento. Exemplos de linguagens compiladas: C e Pascal.

Linguagens interpretadas dependem de um programa (interpretador)  que faz a tradução do algoritmo escrito na medida em que vai sendo executado.

Programas interpretados são lentos, mas normalmente são multiplataformas e trazem agilidade nas alterações por serem flexíveis, não necessitando de uma nova compilação. Exemplos de linguagens interpretadas: PHP, Pearl e Javascript.

Embora haja esta distinção, nem sempre isso é tão claro.

Algumas linguagens são compiladas para máquinas virtuais e depois interpretadas. Exemplos: Java e C#.

Compiladores são programas que traduzem o texto de uma linguagem de programação em um arquivo que contém código de máquina.

Linkeditores juntam diversos arquivos contendo código de máquina para gerar um arquivo executável.

Tipos de Arquivos

  • Fonte: Arquivo em formato texto puro, contendo o programa escrito em uma linguagem.
  • Objeto: Arquivo em código de máquina, criado pelo compilador usando um arquivo fonte.
  • Executável: Programa pronto para ser executado, criado pelo linkeditor, juntando o arquivo objeto criado pelo programador com as bibliotecas da linguagem e do SO.

processocompilacao

Fluxo das informações

Em um algoritmo, normalmente temos o seguinte fluxo para as informações.

entrada_proc_saida

Entrada, processamento e saída

Todo algoritmo é o resultado da descrição da solução de um problema através de passos. Normalmente estes passos têm três pontos importantes:

1 – Entrada das informações necessárias para resolver o problema, informadas pelo usuário ou obtidas de outra forma do mundo exterior. (Sensores, arquivos, etc.);

2 – Processamento das informações, através de cálculos matemáticos e tomadas de decisão;

3 – Saída das informações. Todo o processamento só terá sentido se mostrarmos isso de alguma forma para o usuário do programa. Normalmente, isso ocorre através do monitor de vídeo ou impressora.

Tipos de informação

Para a construção de um algoritmo, a grosso modo, utilizamos dois tipos de informações.

Dados: Valores do mundo externo, representam informações que os seres humanos manipulam.

Instruções: Palavras-chave que representam alguma ação para o computador. Um conjunto de comandos que o computador sabe executar.

Tipos de dados

Para uma introdução, podemos categorizar os dados em três tipos básicos ou primitivos.

Numéricos: Dividido entre números inteiros e reais.

Caracteres: Representado por valores alfabéticos ou alfanuméricos.

Lógicos: Representado por dois estados possíveis, verdadeiro ou falso.

Variáveis

Tudo que é sujeito a variações, incerto ou instável.

Quando falamos de programas, tudo que é informado pelo usuário, ou obtido de alguma fonte externa é incerto.

Para um programa poder manipular informações, é necessário guardá-las na memória.

Cada informação precisa ser identificada com um nome e um tipo de dado.

Constantes

Todas as informações dentro de um diagrama que não forem operadores ou variáveis, são constantes. Uma constante pode ser qualquer valor fixo dos tipos já estudados (Numérico, Caractere e Lógico).

Importante

  • O que diferencia uma variável de uma constante do tipo caractere é a delimitação da constante por aspas;
  • Números delimitados por aspas são considerados do tipo caractere;
  • Constantes do tipo numérico não precisam de delimitadores pois variáveis não podem ser iniciados por números.

Constantes ou literais

Tudo que é fixo, imutável ou invariável.

Quando falamos de programas, normalmente é um valor numérico usado em uma expressão aritmética.Pode também ser um valor alfanumérico, sendo usado para exibição em tela.

Exemplos:

TEMP_EBULICAO = 100;

PI = 3,14159265;

Nomes das variáveis

1 – Nomes de variáveis podem utilizar um ou mais caracteres;

2 – O primeiro caractere de identificação NÃO pode ser um número;

3 – Nomes de variáveis não podem conter espaços em branco. Caso deseje separar nomes compostos, use “_”;

4 – Um nome de variável não pode ser igual a uma palavra-reservada1 da linguagem de programação usada.

1Normalmente as linguagens de programação têm um conjunto de palavras para identificar os comandos que elas reconhecem, cada palavra deste conjunto é chamado de palavra-reservada pela linguagem.

Variáveis – Exemplos

nomevariaveis

Declaração de variáveis

Uma declaração de variável consiste no nome de um tipo, seguido do nome da variável terminando por um ponto-e-vírgula.

Para o C, letras maiúsculas são diferentes de letras minúsculas.

Sintaxe

tipoDaVariavel nomeDaVariavel;

Exemplos

int idade;
float salario;

Tipos de Dados

Em C, temos 5 tipos primitivos para as informações. Estes tipos são usados para identificar o conteúdo de uma variável, os parâmetros de uma função e seu retorno. Estes tipos são: char, int, float, double e void.

Além dos tipos básicos, temos 3 modificadores que são usados para alterar o tamanho ou interpretação de um tipo. Estes modificadores são: short, long e unsigned.

Valores para um ambiente 32 bits.

tipodedados

Comentários

São trechos do código fonte de um programa que são ignorados pelo compilador ou interpretador.

Servem para documentar o programa, facilitando o entendimento posterior.

Em C, usa-se /* para inicia e */ para terminar um bloco de comentário.

Um comentário de uma única linha pode ser feito usando //

Exemplo:

....
printf("instrução válida");
/* comentário que será ignorado
pelo compilador*/
printf("outra instrução válida");

printf("Mais uma instrução válida!"); //comentário por linha
...

Operadores Aritméticos

Conjunto de símbolos usados para representar as operações matemáticas em um algoritmo.

O quadro abaixo aprestam os operadores e as precedências de cálculo. A precedência 1 seriam os cálculos dentro de parênteses.

aritméticos

Operadores relacionais

Conjunto de símbolos usados para representar uma comparação dentro de uma estrutura de decisão.

Para os exemplos, considere que idade  = 10.

relacionais

Observação: Conteúdo do material desenvolvido pelo Professor César Tofanini, adaptado pelo Professor Rodrigo Saito

Aula complementar para Python

Referência Bibliográfica Básica

ZIVIANI, Nivio. PROJETO DE ALGORITMOS: com implementações em Pascal e C. 5. ed. São Paulo: Editora Pioneira. 2000.

OLIVEIRA, Jayr Figueiredo de. MANZANO, José Augusto N. G. ALGORITMOS: lógica para desenvolvimento de programação de computadores. 11. ed. São Paulo: Editora Érica Ltda. 2001.

UCCI, Waldir. SOUSA, Reginaldo L. KOTANI, Alice M. LÓGICA DE PROGRAMAÇÃO: os primeiros passos. 9. ed. São Paulo: Editora Érica Ltda. 2001.

Referência Bibliográfica Complementar

FORBELLONE, André Luiz Villar. EBERSPACHER, Henri Frederico. LÓGICA DE PROGRAMAÇÃO: a construção de algoritmos e estruturas de dados. 3. ed. São Paulo: Makron Books (Pearson Education). 2005.

TENENBAUM, Aaron M. LANGSAM, Yedidyah.AUGENSTEIN, Moshe J. ESTRUTURAS DE DADOS USANDO C. 1. ed. São Paulo: Makron Books (Pearson Education). 1995.

GUIMARÃES, Ângelo de Moura. LAGES, Newton Alberto de Castilho. ALGORITMOS E ESTRUTURAS DE DADOS. 8. ed. Rio de Janeiro: Livros Técnicos e Científicos Editora S. A. 1985.

Referência Bibliográfica – Diversos

SCHILDT, Herbert. C COMPLETO E TOTAL. 3. ed. São Paulo: Makron Books. 1996.

JAMSA, Kris Ph.D., KLANDER, Lars. PROGRAMANDO EM C/C++: A BÍBLIA. 1. ed. São Paulo: Makron Books. 1999.

SENNE, Luiz França Senne. PRIMEIRO CURSO DE PROGRAMAÇÃO EM C. 2. ed. Florianópolis: Visual Books. 2006.

GALANTE, Guilherme, ZAGO, Raphael Laércio. APOSTILA C. 1. ed. UNIOESTE Universidade Estadual do Oeste do Paraná. Cascavel: 2003.

UNICAMP. INTRODUÇÃO À LINGUAGEM C. 2. ed. Centro de Computação da Unicamp.

Video 01

Video 02

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s