Apontamentos Liguagem C
Apontamentos Liguagem C
Apontamentos Liguagem C
Apontamentos
Índice
Introdução ..................................................................................................................................... 3
Factos sobre a linguagem C ....................................................................................................... 3
Onde a linguagem C é utilizada? ................................................................................................... 3
Quais os principais recursos e características? ............................................................................. 3
As principais características da linguagem C são: ..................................................................... 4
Porquê aprender C? ...................................................................................................................... 4
Exemplo de um primeiro programa em C ..................................................................................... 4
Atributos em C .............................................................................................................................. 5
Ponto e vírgula .......................................................................................................................... 6
Comentários .............................................................................................................................. 6
Identificadores .......................................................................................................................... 6
Palavras-chave........................................................................................................................... 7
Espaçamentos no C (whitespace).............................................................................................. 7
Variáveis ........................................................................................................................................ 7
Definição de variáveis em C ...................................................................................................... 8
Declaração de variáveis ............................................................................................................. 9
Operadores.................................................................................................................................... 9
Operadores aritméticos .......................................................................................................... 10
Operadores relacionais ........................................................................................................... 10
Operadores lógicos ................................................................................................................. 11
Função printf() ............................................................................................................................. 11
Função scanf() ............................................................................................................................. 12
INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL, IP
Delegação Regional do Centro
Centro de Emprego e Formação Profissional de Águeda
Introdução
O C, é uma linguagem de alto-nível que foi originalmente desenvolvida por Dennis M. Ritchie de
forma a criar o sistema operativo da Bell Labs, o UNIX.
A linguagem C pode ser facilmente encontrada em grandes jogos do mercado atual, editores de
imagem e vídeo, robôs, sistemas de automação, e também muitos sistemas operativos são
programados totalmente ou parcialmente em C, como por exemplo o Windows, o Linux e o Mac
OS.
Foi pensada para ser uma linguagem que lida diretamente com o hardware, o que significa que
pode encontrar com facilidade em processadores, microcontroladores e drivers.
A linguagem C tem recursos que fazem com que acesso aos espaços de memória e dados dessas
máquinas seja facilitado, mas isso não anula o facto de que também pode ser facilmente
implementada em softwares ou aplicações diferentes.
As linguagens de programação podem ser definidas em baixo nível e alto nível. Uma linguagem
é considerada de baixo nível quando a sua sintaxe se assemelha com a linguagem de máquina,
ou seja, códigos binários, a mais famosa é o Assembly1.
1
Assembly ou linguagem de montagem é uma notação legível por humanos para o código de máquina
que uma arquitetura de computador específica usa, utilizada para programar códigos entendidos por
dispositivos computacionais, como microprocessadores e microcontroladores. O código de máquina
torna-se legível pela substituição dos valores em bruto por símbolos chamados mnemónicos.
INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL, IP
Delegação Regional do Centro
Centro de Emprego e Formação Profissional de Águeda
Por outro lado, uma linguagem é considerada de alto nível quando a sua sintaxe se assemelha
bastante com a linguagem falada por nós, ou seja, que podemos de certa forma “ditar” o seu
código, um bom exemplo é a linguagem Python2.
Então, a linguagem C é definida como uma linguagem de alto nível porque mesmo que tenha
algumas funções e recursos das linguagens de baixo nível, tem sintaxes muito simples e de certa
forma algo semelhantes à linguagem humana.
Simplicidade: é uma linguagem com sintaxe muito simples para se aprender, e quando bem
programada, dificilmente trará problemas para o utilizador.
Recursos de baixo nível: como já foi citado anteriormente, a linguagem possui recursos de baixo
nível muito úteis, como o acesso à memória da máquina, o que elimina a necessidade de o
programador utilizar códigos em Assembly, por exemplo.
Porquê aprender C?
Acontece que a linguagem C é uma excelente linguagem para programadores principiantes. Não
apenas porque a sintaxe é simples, mas porque o C influenciou a maioria das linguagens mais
utilizadas hoje em dia. Depois de aprender C, vai ver que tem muitos pontos em comum com
Java, Javascript, Shell e PHP, por exemplo, além de todas as linguagens que são C-qualquer coisa
(C++, C#, Objective-C, etc).
#include <stdio.h>
int main()
{
/* O meu primeiro programa em C */
printf(“Hello World!”);
return 0;
}
2
Python é uma linguagem de programação de alto nível, interpretada de script, imperativa, orientada a
objetos, funcional, de tipagem dinâmica e forte. Foi lançada por Guido van Rossum em 1991.
INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL, IP
Delegação Regional do Centro
Centro de Emprego e Formação Profissional de Águeda
#include <stdio.h>
O significado desta diretiva é indicar ao compilador que, neste programa, deve ser incluído
(include) o código de um ficheiro de biblioteca com funções predefinidas, ficheiro esse que tem
o nome de stdio.h.
No caso concreto deste programa, a biblioteca de funções stdio.h fornece o código-fonte de uma
função utilizada no programa: printf() – que se destina a imprimir ou escrever algo no ecrã.
Nota: No nome do ficheiro stdio.h, a extensão .h vem da palavra header, ou seja, cabeçalho –
que é a posição que estes ficheiros predefinidos assumem num programa com a diretiva
#include.
A linha de código que começa com main() indica o começo da função ou unidade de código
principal do programa.
Em C, o ponto de entrada (entry point) por onde qualquer programa começa a ser executado é
a função main() ou alguma outra que lhe seja equivalente.
A instrução
printf(“Olá, Mundo!”);
utiliza a função printf() – predefinida na biblioteca stdio.h – para fazer escrever no ecrã a
mensagem indicada dentro de parênteses e de aspas: Hello, World!.
Atributos em C
Um programa em C consiste em vários atributos e um atributo pode ser uma palavra-chave, um
identificador, uma constante ou um símbolo. Por exemplo, a instrução seguinte é constituída
por cinco atributos:
printf(“Olá, Mundo!”);
printf
(
“Olá, Mundo!”
)
;
INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL, IP
Delegação Regional do Centro
Centro de Emprego e Formação Profissional de Águeda
Ponto e vírgula
printf(“Olá, Mundo!”);
return 0;
Comentários
Os comentários são como textos de ajuda no seu programa e são ignorados pelo compilador.
Começam por /* e terminam com */ como nos mostra o exemplo seguinte:
/* Este é um comentário
relativo ao meu primeiro
programa em C */
Nota: Existe também a possibilidade de criar comentários mais curtos, ou seja, de apenas uma
linha:
Identificadores
Um identificador em C é um nome utilizado para identificar uma variável, função, ou outro item
definido pelo utilizador. Um identificador deve começar por uma letra de A a Z, a a z, ou por um
underscore ‘_’ seguido por zero ou mais letras, underscores, e dígitos (0 a 9).
Palavras-chave
A seguinte tabela mostra uma lista de palavras reservadas da linguagem C. Estas palavras
reservadas não podem ser utilizadas como constantes ou variáveis ou outros nomes de
identificadores.
Double
Espaçamentos no C (whitespace)
Uma linha que contém apenas espaçamentos, possivelmente apenas com um comentário, é
conhecida por uma linha em branco e o compilador vai ignorá-la totalmente.
Espaçamento é o termo utilizado para descrever espaços, tabs, linhas em branco e comentários.
Um espaçamento separa uma parte de uma instrução de outra e permite que o compilador
identifique onde é que um elemento da instrução, como o int, termina e onde o próximo
elemento começa. No entanto, na seguinte instrução:
int idade;
tem de haver pelo menos um caracter de espaçamento (geralmente um espaço) entre int e
idade para que o compilador possa distingui-los. Por outro lado, na seguinte instrução:
não era necessário qualquer tipo de espaçamento entre fruta e =, ou entre = e laranjas, porém
é sempre livre de incluir alguns se pretender aumentar a legibilidade do código.
Variáveis
Uma variável não é nada mais do que um nome atribuído a um local de armazenamento que o
nosso programa pode manipular. Cada variável em C tem um tipo específico, o qual determina
o tamanho e a estrutura da variável da memória; o intervalo de valores que podem ser
INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL, IP
Delegação Regional do Centro
Centro de Emprego e Formação Profissional de Águeda
armazenados nessa memória; e o conjunto de operações que podem vir a ser aplicadas à
variável.
O nome de uma variável pode ser composto por letras, dígitos e pelo caracter underscore. Tem
de começar ou por uma letra ou por um underscore. Maiúsculas e minúsculas são diferentes isto
porque o C é uma linguagem case-sensitive. Vamos então ver os principais tipos de variáveis:
Tipo Descrição
char Representação de caracteres
int Valores numéricos inteiros
float Valores decimais de precisão simples (reais)
double Valores decimais de precisão dupla
Definição de variáveis em C
A definição de uma variável indica ao compilador onde e que quantidade de memória necessita
para criar a variável. A definição da variável especifica o tipo de dados e contém a lista de uma
ou mais variáveis desse tipo. Ver exemplo:
tipo lista_variaveis;
Aqui, tipo terá de ser um tipo de dados válido, e lista_variaveis pode consistir num ou mais
identificadores separados por vírgulas. Alguns exemplos de declaração são mostrados a seguir:
int i, j, k;
char c, ch;
float f, salario;
double d;
A linha de código int i, j, k; declara e define as variáveis i, j e k; que indica ao compilador para
criar as variáveis i, j e k do tipo inteiro (integer).
As variáveis podem ser inicializadas (atribuindo-lhes um valor inicial) na sua declaração. Essa
inicialização consiste num sinal de igual seguido por uma constante como pode ver:
Por definição, sem haver uma inicialização, as variáveis têm um valor indefinido.
INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL, IP
Delegação Regional do Centro
Centro de Emprego e Formação Profissional de Águeda
Declaração de variáveis
A declaração de variáveis assegura ao compilador que existe uma variável com um determinado
nome e com um tipo de dados.
Uma variável pode ser utilizada várias vezes ao longo do programa, podendo ser definida apenas
uma vez num ficheiro, numa função ou num bloco de código.
Exemplo:
Experimente o seguinte código, onde as variáveis são definidas e inicializadas na função principal
(main).
#include <stdio.h>
int main()
{
/* definição ou declaração de variáveis */
int a, b;
int c;
float f;
/* inicialização de variáveis */
a = 10;
b = 20;
c = a + b;
Valor de c: 30
Valor de f: 23.333334
Operadores
Um operador é um símbolo que informa o compilador para realizar uma função ou lógica
específica. A linguagem C é rica na utilização de operadores, existindo os seguintes tipos:
• Operadores aritméticos
• Operadores relacionais
• Operadores lógicos
INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL, IP
Delegação Regional do Centro
Centro de Emprego e Formação Profissional de Águeda
Operadores aritméticos
A tabela seguinte mostra todos os operadores aritméticos suportados pela linguagem C. Assuma
que a variável A tem o valor 10 e a variável B tem o valor 20, então:
Operadores relacionais
A tabela seguinte mostra todos os operadores relacionais suportados pelo C. Assuma que a
variável A tem o valor 10 e a variável B tem o valor 20, então:
Operadores lógicos
A tabela seguinte mostra todos os operadores lógicos suportados pela linguagem C. Assuma que
a variável A tem o valor 1 e a varável B tem o valor 0, então:
Função printf()
Num programa, a maneira mais simples de escrever uma mensagem para o utilizador é utilizar
a função printf. Esta função faz parte da biblioteca de funções de entradas e saídas do C. Como
faz parte de uma biblioteca, é necessário indicá-lo no início do programa com a seguinte
instrução:
#include <stdio.h>
Uma vez incluída esta linha, podemos usar a função printf em qualquer parte do programa. Para
escrever a mensagem “Qual é o seu peso?” basta a linha:
Para escrever um valor numérico, é um pouco mais complicado, é necessário colocar na frase,
no sítio onde queremos que o valor apareça um código que indica o seu tipo. Por exemplo:
O código %f indica que o valor a imprimir é de tipo float (decimal de precisão simples) ou double
(decimal de precisão dupla). Para imprimir um valor de tipo inteiro usa-se %d:
Neste exemplo, o programa vai escrever: o valor de a, a palavra “vezes”, o valor de b, as palavras
“é igual a” e o valor da expressão a * b. Finalmente o \n que representa aqui um caracter de fim
de linha faz que a próxima mensagem apareça na linha seguinte.
O formato é uma sequência de caracteres que serão escritos, sendo cada especificação iniciada
por %, substituída pelo valor argumento correspondente depois de convertido.
INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL, IP
Delegação Regional do Centro
Centro de Emprego e Formação Profissional de Águeda
Função scanf()
A função usada para efetuar a leitura de valores é a função scanf. Está definida na biblioteca
stdio.h, este ficheiro deve ser, portanto, incluído no início do programa. Para ler um valor de
tipo float e colocá-lo na variável peso basta:
scanf("%f", &peso);
O primeiro argumento ("%f") é a cadeia de controlo. Define o tipo do valor que vai ser lido. Para
ler um valor inteiro usa-se %d por exemplo para perguntar ao utilizador a sua idade podemos
fazer:
int idade;
printf("Qual é a sua idade: ");
scanf("%d", &idade);
Um pormenor pode parecer estranho: o nome da variável é precedido do símbolo &. Porquê???
O caracter & é um operador em C que dá a posição em memória da variável que segue. Esta
explicação é talvez nebulosa (é de propósito) porque ainda não vimos matéria suficiente para
divulgar mais pormenores. Felizmente não é preciso saber mais, basta lembrar-se que na função
scanf, o nome das variáveis é precedido do operador &.
O utilizador terá que escrever a sua idade e o seu peso separados por um espaço ou carregando
na tecla Enter.
Os valores que scanf é capaz ler são: inteiros (%d), float ou double (%f), caracteres (%c) e cadeias
de caracteres (%s).
A função scanf está muitas vezes na origem de erros. Se o seu programa der resultados errados,
deve sempre verificar se os valores lidos são os valores esperados. Para isso não hesite em
acrescentar uma instrução printf que mostre no ecrã os valores inseridos.