Você está na página 1de 12

Introdução à Linguagem

Apontamentos

Formador: Fernando Miguel Costa Curso: Técnico(a) de Informática – Sistemas

UFCD14: Programação em C/C++ - Estrutura básica e Conceitos Fundamentais


INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL, IP
Delegação Regional do Centro
Centro de Emprego e Formação Profissional de Águeda

Í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.

Factos sobre a linguagem C


• O C foi escrito de forma a criar o sistema operativo UNIX.
• É o sucessor da linguagem B, a qual foi apresentada no início dos anos 70.
• A linguagem foi oficializada em 1988 pela ANSI (American National Standard Institute).
• O sistema operativo UNIX foi totalmente escrito em C.
• Hoje, o C continua a ser uma das linguagens mais utilizadas em todo o mundo.

Onde a linguagem C é utilizada?


A linguagem C já foi utilizada em praticamente todos os tipos de hardware e software. Visto que
foi criada na década de 70 com o intuito de trabalhar com o acesso e controle dos espaços da
memória das máquinas, acabou por se tornar uma ferramenta muito importante para o
desenvolvimento de grandes produtos.

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.

Quais os principais recursos e características?


Primeiramente temos que destacar o facto de que a linguagem C é uma linguagem de alto nível.
Mas o que isso quer dizer?

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.

As principais características da linguagem C são:


Portabilidade: pode ser compilada em diversas arquiteturas, sistemas operativos e
compiladores diferentes. Tanto para o hardware como para o software com códigos limpos e
grande velocidade.

Simplicidade: é uma linguagem com sintaxe muito simples para se aprender, e quando bem
programada, dificilmente trará problemas para o utilizador.

Compilação: os seus programas são rapidamente compilados gerando um ficheiro executável.

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).

Exemplo de um primeiro programa em C


Um dos fundadores da linguagem C, Brian Kernigham, apresentou, no seu livro “The C
Programming Language”, de 1978, o seguinte programa de exemplificação:

#include <stdio.h>
int main()
{
/* O meu primeiro programa em C */
printf(“Hello World!”);
return 0;
}

O programa começa com uma diretiva de compilação:

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.

Trata-se de incluir no código do programa um conjunto de rotinas pré-escritas destinadas a


operações de input e output com o teclado e com o ecrã.

Nota: A palavra stdio vem de: standard input/output.

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.

As chavetas – { e } – indicam o início e o fim, respetivamente, de um bloco de código em C.

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!”);

Individualmente, os atributos são:

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

Num programa em C, o ponto-e-vírgula é um terminador de instrução. Ou seja, cada instrução


deve terminar com um ponto-e-vírgula, indicando o fim de uma entidade lógica.

No exemplo abaixo temos duas instruções diferentes:

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:

// Este é um comentário 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).

A linguagem C não permite caracteres de pontuação tais como @, $, e % nos identificadores. O


C é uma linguagem case-sensitive, ou seja é sensível à utilização de maiúsculas e minúsculas.
Assim, Total e total são dois identificadores diferentes. Aqui estão alguns exemplos de
identificadores com nomes aceitáveis:

Mohd zara abc move_name a_123


Myname50 _temp j a23b9 retVal
INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL, IP
Delegação Regional do Centro
Centro de Emprego e Formação Profissional de Águeda

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.

Auto else long Switch

Break enum register Typedef

Case extern return Union

Char float short Unsigned

Const for signed Void

Continue goto sizeof Volatile

Default if static While

Do int struct _Packed

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:

fruta = laranjas + peras; // obter o total da fruta

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:

tipo nome_variavel = valor;

Eis alguns exemplos:

int d = 3, f = 5; // definição e inicialização de d e f.


byte z = 22; // definição e inicialização de z.
char x = ‘x’; // a variável x fica com o valor ‘x’.

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;

printf(“Valor de c : %d \n”, c);


f = 70.0 / 3.0;
printf(“Valor de f : %f \n”, f);
return 0;
}

Quando o código for compilado e executado, irá produzir o seguinte resultado:

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:

Operador Descrição Exemplo

+ Soma dois operandos A + B = 30

- Subtrai o primeiro operado pelo segundo A – B = -10

* Multiplica dois operandos A * B = 200

/ Divide o numerador pelo denominador B/A=2

% Operador do resto de uma divisão B%A=0


Operador de incremento que adiciona um valor inteiro
++ A++ = 11
em 1
Operador de decremento que subtrai um valor inteiro em
-- A-- = 9
1

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:

Operador Descrição Exemplo


Verifica se os valores de dois operandos são iguais. Se (A == B) não é
==
forem, a condição torna-se verdadeira. verdade (é falso).
Verifica se os valores de dois operandos são diferentes. Se
!= (A != B) é verdade.
forem, a condição torna-se verdadeira.
Verifica se o valor da esquerda é maior do que o valor do
> (A > B) é falso.
operando da direita. Se for, a condição é verdadeira.
Verifica se o valor do operando da esquerda é menor do
< que o valor do operando da direita. Se for, a condição é (A < B) é verdade.
verdadeira.
Verifica se o valor do operando da esquerda é maior ou
>= igual ao valor do operando da direita. Se for, a condição é (A >= B) é falso.
verdadeira.
Verifica se o valor do operador da esquerda é menor ou
<= igual ao valor do operando da direita. Se for, a condição é (A <= B) é verdade.
verdadeira.
INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL, IP
Delegação Regional do Centro
Centro de Emprego e Formação Profissional de Águeda

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:

Operador Descrição Exemplo


Chamado operador E lógico. Se ambos os operandos
&& forem diferentes de 0 então o resultado da condição é (A && B) é falso.
verdadeiro.
Chamado operador OU lógico. Se um dos operandos for
|| (A || B) é verdade.
diferente de 0 então o resultado da condição é verdadeiro.
Chamado operador NÃO lógico. É usado para inverter o
!(A && B) é
! estado lógico de um operando. Se uma condição for
verdade
verdadeira, o operador NÃO torna-a falsa.

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:

printf("Qual é o seu peso ?");

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:

printf("O seu Índice de Massa Corporal é %f.", imc);

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:

printf("%d vezes %d é igual a %d\n", a, b, a * b);

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

Alguns dos caracteres de conversão:

Caracter Tipo Escrito como


d int Inteiro decimal
o int Inteiro positivo octal
x int Inteiro positivo hexadecimal
c int Caracter
s char * Sequência de caracteres terminada por 0
f float Número em vírgula flutuante
g double Número em vírgula flutuante
e float Número em vírgula flutuante em notação científica

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 &.

É possível ler vários valores com uma só chamada à função scanf:

int idade, peso;


printf("Indique a sua idade e o seu peso: ");
scanf("%d%d", &idade, &peso);

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.

Você também pode gostar