Вы находитесь на странице: 1из 10

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


Formador: Fernando Miguel Costa Curso: Técnico(a) de Informática - Sistemas
UFCD14: Programação em C/C++ - Estrutura básica e Conceitos Fundamentais

Índice
Exemplo de um primeiro programa em C ..................................................................................... 3
Atributos em C .............................................................................................................................. 3
Ponto e vírgula .......................................................................................................................... 4
Comentários .............................................................................................................................. 4
Identificadores .......................................................................................................................... 4
Palavras-chave........................................................................................................................... 5
Espaçamentos no C ................................................................................................................... 5
Variáveis ........................................................................................................................................ 5
Definição de variáveis em C ...................................................................................................... 6
Declaração de variáveis ............................................................................................................. 7
Operadores.................................................................................................................................... 7
Operadores aritméticos ............................................................................................................ 8
Operadores relacionais ............................................................................................................. 8
Operadores lógicos ................................................................................................................... 9
Função printf() ............................................................................................................................... 9
Função scanf() ............................................................................................................................. 10

2
Formador: Fernando Miguel Costa Curso: Técnico(a) de Informática - Sistemas
UFCD14: Programação em C/C++ - Estrutura básica e Conceitos Fundamentais

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(“Olá, Mundo!”);
return 0;
}

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

#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: Olá, Mundo!.

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:

3
Formador: Fernando Miguel Costa Curso: Técnico(a) de Informática - Sistemas
UFCD14: Programação em C/C++ - Estrutura básica e Conceitos Fundamentais

printf(“Olá, Mundo!”);

Individualmente, os atributos são:

printf
(
“Olá, Mundo!”
)
;

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

4
Formador: Fernando Miguel Costa Curso: Técnico(a) de Informática - Sistemas
UFCD14: Programação em C/C++ - Estrutura básica e Conceitos Fundamentais

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

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

5
Formador: Fernando Miguel Costa Curso: Técnico(a) de Informática - Sistemas
UFCD14: Programação em C/C++ - Estrutura básica e Conceitos Fundamentais

estrutura da variável da memória; o intervalo de valores que podem ser 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.

6
Formador: Fernando Miguel Costa Curso: Técnico(a) de Informática - Sistemas
UFCD14: Programação em C/C++ - Estrutura básica e Conceitos Fundamentais

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

7
Formador: Fernando Miguel Costa Curso: Técnico(a) de Informática - Sistemas
UFCD14: Programação em C/C++ - Estrutura básica e Conceitos Fundamentais

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 em 1 A++ = 11

-- Operador de decremento que subtrai um valor inteiro em 1 A-- = 9

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 forem, a (A == B) não é
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 (A < B) é verdade.
valor do operando da direita. Se for, a condição é verdadeira.
>= Verifica se o valor do operando da esquerda é maior ou igual ao (A >= B) é falso.
valor do operando da direita. Se for, a condição é verdadeira.
<= Verifica se o valor do operador da esquerda é menor ou igual ao (A <= B) é verdade.
valor do operando da direita. Se for, a condição é verdadeira.

8
Formador: Fernando Miguel Costa Curso: Técnico(a) de Informática - Sistemas
UFCD14: Programação em C/C++ - Estrutura básica e Conceitos Fundamentais

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 (A && B) é falso.
diferentes de 0 então o resultado da condição é 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 estado !(A && B) é verdade
lógico de um operando. Se uma condição for verdadeira, o
operador NÃO torna-a falsa.

Função printf()
Num programa, a maneira mais simples de escrever uma mensagem para o utilizador é usando 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.

9
Formador: Fernando Miguel Costa Curso: Técnico(a) de Informática - Sistemas
UFCD14: Programação em C/C++ - Estrutura básica e Conceitos Fundamentais

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.

10