Escolar Documentos
Profissional Documentos
Cultura Documentos
Linguagens de programação
Introdução ao C
© M@nso 2003
Introdução à programação Computadores e programação I
Sumário
Execução de programas
interpretadores, compiladores
Linguagem
Manipulação de informação
Variáveis
tipos de dados
Operadores
aritméticos, lógicos
Leitura e escrita
entrada e saída de dados
Selecção de instruções
Instrução if
Instrução Switch
Erros em programação
© M@nso 2004
Introdução à programação Computadores e programação I
Interpretação de Programas
interpretador
Programa que
converte as
instruções da
linguagem de
alto nível em
instruções
máquina e as
executa.
Compilação de programas
Compilador (compiler)
Programa que
converte as
instruções da
linguagem de alto
nível em instruções
máquina formando
um programa objecto
Ligador (linker)
Programa que reúne
todos os programas
objecto e faz um
programa executável
Introdução à linguagem C
© M@nso 2003
Introdução à programação Computadores e programação I
Porquê C++
É a base de linguagens de programação modernas
É um investimento
Linguagem estandardizada
Muitos programas escritos em C / C++
È uma linguagem genérica
Serve para vários fins
É disciplinadora
Programar com método
É eficiente
Existem bons compiladores
© M@nso 2004
Introdução à programação Computadores e programação I
Ola mundo
#include <stdio.h>
Biblioteca de funções de entrada e saida de dados
int main(int argc, char* argv[])
Função principal
{}
Definição de um bloco de instruções
printf("ola mundo");
escrever
return 0;
Retorno do programa Olá mundo
#include <stdio.h>
int main(int argc, char* argv[])
{
printf("ola mundo");
return 0;
}
© M@nso 2004
Introdução à programação Computadores e programação I
Algoritmos computacionais
Acções de um algoritmo computacional
Manipular dados
Receber dados
Guardar dados
Imprimir dados
Executar instruções
Fazer operações aritméticas
Fazer operações lógicas
Escolha entre várias instruções.
Repetir um conjunto de instruções
© M@nso 2004
Introdução à programação Computadores e programação I
Tipos de dados em C
Simples D0
variável
Numéricos
inteiros 11100 11100
reais
Caracter
Lógico Variáveis D0 variável caracter
Compostos
0100 0001 A
Um nome
Matrizes
Um Tipo
variável
Estruturas lógico
D0
Nome da variável
A0 inteiro
0100 0001 0100 0001 50 00
Declaração de variáveis
Tipo_de_dado nome_da_variável;
Tipo_de_dado nome_da_variável = valor_inicial;
Exemplos
int soma;
float saldo = 0.0;
doule x, y, z;
NOTA
© M@nso 2004
Introdução à programação Computadores e programação I
Palavras reservadas do C
© M@nso 2004
Introdução à programação Computadores e programação I
variavel = expressão;
Exemplos
soma = 10 ;
saldo = soma + 1;
area = lado1 * lado2;
NOTA
Atribuição de valores
Valores na Base:
Decimal
numeração normal
0 2 63 83
Octal
Começam por 0 (zero)
00 02 077 0123
Hexadecimal
Começam por 0x (zero xis)
0x0 0x2 0x3f 0x53
X = 12;
X = 014;
X = 0xC;
© M@nso 2004
Introdução à programação Computadores e programação I
Inteiros - int
Sinal
signed – positivos e negativos
1 bit para representar o sinal
unsigned – apenas números positivos
Tamanho
short – menor dimensão em bytes
2 bytes
long – maior dimensão em bytes
4 bytes NOTA
Exemplos por defeito os inteiros
unsigned short int x; são:
signed short int y; •signed
unsigned long int total; •16 bits
long int votos; •short
int nota; •32 bits
•long
© M@nso 2004
Introdução à programação Computadores e programação I
© M@nso 2004
Introdução à programação Computadores e programação I
exemplos
Nota final da disciplina de IP
unsigned short int nota;
unsigned short nota;
Soma das notas das disciplinas de uma aluno
unsigned short int somaNotas;
unsigned short somaNotas;
Número de segundos de vida de uma pessoa
unsigned long int numMinutos;
unsigned long numMinutos;
Diferença entre o número de segundos de duas pessoas
signed long difSegundos;
long difsegundos;
Diferença entre o número de anos de duas pessoas
signed short int difAnos;
short difAnos;
© M@nso 2004
Introdução à programação Computadores e programação I
Números Reais
base mantissa
Tipo 2.8 10
float NOTA
double Os números armazenados em
Representação virgula flutuante podem
Base e Mantissa comportar um erro de
arredondamento resultante da
notação sua representação
Notação corrente
1.23 .23 0.23 1. 1.0
Notação científica
1.2E10 1.23e-15 Exemplo
Modificadores float raio = .50;
long double taxa = 5E-2 ;
long
© M@nso 2004
Introdução à programação Computadores e programação I
© M@nso 2004
Introdução à programação Computadores e programação I
Caracteres (char)
Ocupam um byte Caracteres especiais
256 caracteres disponíveis
Representados por um número
\a Sinal sonoro
Tabela ASCII \n New line
Atribuição \r Carriage return
Utilização do caracter plica (‘)
char sexo = ‘m’;
\v Vertical tabulation
char enter =‘\n’ \t Horizontal
Utilização directa do código ASCII tabulation
char letra = 98;
\\ Caracter \
Modificadores
\’ Caracter ‘
signed
unsigned \” Caracter “
\b Backspace
\0xff Caracter 0xff ASCII
© M@nso 2004
Introdução à programação Computadores e programação I
Tabela ASCII
Exemplo
char sexo;
Sexo = ‘M’;
Sexo = 77;
© M@nso 2004
Introdução à programação Computadores e programação I
segunda
domingo
sabado
quarta
quinta
sexta
terça
Nome
Valor -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10
NOTAS
VERDADEIRO
VERDADEIRO
VERDADEIRO
VERDADEIRO
VERDADEIRO
VERDADEIRO
VERDADEIRO
VERDADEIRO
VERDADEIRO
VERDADEIRO
Nome FALSO
Valor -3 -2 -1 0 1 2 3 4 5 6 7 8
Exemplo
bool aprovado, trabEstudante;
aprovador = true;
trabEstudante = false;
© M@nso 2004
Introdução à programação Computadores e programação I
Exemplos
typedef unsigned long int int32;
definição de um novo tipo chamado int32
int32 somatorio;
definicao de uma variável do tipo int32
© M@nso 2004
Introdução à programação Computadores e programação I
tamanho
tipo (bits) Mínimo Máximo
unsigned char 8 0 255
© M@nso 2004
Introdução à programação Computadores e programação I
Exercícos
Defina variáveis em C para manipular
A média das notas de um ano lectivo
O salário de um trabalhador
O número de alunos de um país
O saldo de uma conta bancária
Número de dias entre duas datas
O sexo de um aluno
Factor rhesus do sangue (+ e -)
A situação de uma aluno relativo à aprovação
A situação de uma aluno relativo á matrícula.
© M@nso 2004
Introdução à programação Computadores e programação I
© M@nso 2003
Introdução à programação Computadores e programação I
© M@nso 2004
Introdução à programação Computadores e programação I
Programa gentil
Exemplo
#include <stdio.h>
int main(int argc, char* argv[])
{
int idade;
printf(“qual a sua idade:”);
scanf(“ %d ” , &idade);
printf(“parabens, voce tem %d anos“, idade);
}
© M@nso 2004
Introdução à programação Computadores e programação I
Ficheiros gerados
© M@nso 2004
Introdução à programação Computadores e programação I
Algoritmos computacionais
Acções de um algoritmo computacional
Manipular dados
Receber dados
Guardar dados
Imprimir dados
Executar instruções
Fazer operações aritméticas
Fazer operações lógicas
Escolha entre várias instruções.
Repetir um conjunto de instruções
© M@nso 2004
Introdução à programação Computadores e programação I
Operadores
© M@nso 2003
Introdução à programação Computadores e programação I
Inteiros
Operadores unários
- (sinal)
Operadores binários 25 2
+ (Soma)
- (Subtracção)
/ (Divisão inteira)
05 12
% (Módulo)
Exemplo
1
25 - 2 = 23 -3 - 2 = -5
NOTA
25 / 2 = 12 25 + 2 = 27 Qualquer
25 % 2 = 1 25 * 2 = 50
operação entre
inteiros devolve
© M@nso 2004
um inteiro
Introdução à programação Computadores e programação I
Nota Nota x y
y = x++ y = x-- 3
x y
4 3
© M@nso 2004
Introdução à programação Computadores e programação I
Nota Nota x y
y = ++x y = --x 3
x y
2 2
© M@nso 2004
Introdução à programação Computadores e programação I
© M@nso 2004
Introdução à programação Computadores e programação I
1 0 0 0 0 0 0 0 128
|
1 1 0 1 1 0 1 1 219
x y z
91 128 219
© M@nso 2004
Introdução à programação Computadores e programação I
E 0 1
x y z 0 0 0
90 20 1 0 1
Multiplicação
Lógica
expressão
z=x&y; 128
0
64
1
32
0
16
1 1
8 4
0
2
1
1
0 90
0 0 0 1 0 1 0 0 20
x y z &
0 0 0 1 0 0 0 0 16
90 20 16
© M@nso 2004
Introdução à programação Computadores e programação I
xor 0 1
x y z
0 0 1
90 20 1 1 0
diferença
expressão Lógica
z=x^y; 0 1 0 1 1 0 1 0 90
0 0 0 1 0 1 0 0 20
^
x y z
0 1 0 0 1 1 1 0 78
90 20 78
© M@nso 2004
Introdução à programação Computadores e programação I
0 0 0 1 0 1 0 0 20
x y << 2
20
0 1 0 1 0 0 0 0 80
expressão
y = x << 2;
x y •Algoritmo
•deslocam-se os bites para a esquerda
20 80 •os últimos bites perdem-se
•introduzem-se zeros no inicio
© M@nso 2004
Introdução à programação Computadores e programação I
0 0 0 1 0 1 0 0 20
>>2
x y
20 0 0 0 0 0 1 0 1 5
expressão
y = x >> 2;
x y
•Algoritmo
20 5 •deslocam-se os bites para a direita
•os primeiros bites perdem-se
•introduzem-se zeros no fim
© M@nso 2004
Introdução à programação Computadores e programação I
mantissa expoente
© M@nso 2004
Introdução à programação Computadores e programação I
Operadores compostos
exemplos
X|= y;
X = X | y;
© M@nso 2004
Introdução à programação Computadores e programação I
Associatividade
z r matriculado teste
x y
false false
2 1 4 1
Associatividade Associatividade
esquerda=> direita direita => esquerda
x+y+z r =x + y + z
7
3 + z
r=7
7
teste = !matriculado
z/x*y
teste = true
2 * z
x = -z
2
x=-4
© M@nso 2004
Introdução à programação Computadores e programação I
Algoritmos computacionais
Acções de um algoritmo computacional
Manipular dados
Receber dados
Guardar dados
Imprimir dados
Executar instruções
Fazer operações aritméticas
Fazer operações lógicas
Escolha entre várias instruções.
Repetir um conjunto de instruções
© M@nso 2004
Introdução à programação Computadores e programação I
Exercícios
Construa um programa que Inicio
calcule a área de um
rectangulo Ler lado1
}
fim
© M@nso 2004
Introdução à programação Computadores e programação I
Exercícios
Construa um programa que leia a Inicio
nota teórica e a nota prática e
imprima a nota final (não
arredondada) da disciplina de IP Ler nTeorica
© M@nso 2004
Introdução à programação Computadores e programação I
Selecção de intruções
© M@nso 2003
Introdução à programação Computadores e programação I
Selecção Simples
Linguagem estruturada
...
C++
Se <condição> então
Fluxograma If (condição)
Instruções
{
fim_se
intrução;
V
Condição intrução;
Exemplo
intrução;
Se x > 0 então
...
escrever “numero:” Bloco de
Instruções }
ler numero
fim_se
totalFactura
Fim
© M@nso 2004
Introdução à programação Computadores e programação I
© M@nso 2004
Introdução à programação Computadores e programação I
© M@nso 2004
Introdução à programação Computadores e programação I
Selecção em Alternativa
© M@nso 2004
Introdução à programação Computadores e programação I
Exercício
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1 1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
2
3
25 2
0 0 0 0 0 1 0 0 4
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
5
6
05 12
0 0 0 0 0 0 0 1 1
&
0 0 0 0 0 0 0 X
© M@nso 2004
Introdução à programação Computadores e programação I
25 2
Fim
05 12
1
© M@nso 2004
Introdução à programação Computadores e programação I
Selecção encadeada
Exercício
s
V1 > v2 e n
V1 > v3
Construa um
programa que
imprima o maior
de três número Maior=v1 n
s
introduzido pelo V2>v3
utilizador
Maior=v2 Maior=v3
© M@nso 2004
Introdução à programação Computadores e programação I
Exercício
Contrua um
programa que
Inicio
Inicio
solicite ao não
ecivil
ecivil
sim
utilizador a letra não
sim
ecivil=s
ecivil=s
Estado = Solteiro
correspondente ao
Estado = Solteiro
ecivil=c
ecivil=c
Estado = casado
Estado = casado
estado civil (S C D
não sim
ecivil=d
ecivil=d
V ) e imprima por
Estado =divorciado
Estado =divorciado
nao sim
ecivil=v
ecivil=v
caractér válido
© M@nso 2004
Introdução à programação Computadores e programação I
Exercício
Estado civil
main()
{
char ECivil;
scanf(“%c”,&ECivil);
Inicio
if( ECivil ==‘S’) Inicio
não
else não
ecivil=s
ecivil=s
sim
ecivil=d
else Estado =divorciado
Estado =divorciado
sim
if ( ECivil == ‘D) nao
ecivil=v
ecivil=v
else
Estado = ERRO
printf(“Viuvo”);
else
printf(“ERRO”);
}
© M@nso 2004
Introdução à programação Computadores e programação I
Selecção Múltipla
switch
switch ( expressão) Inicio
Inicio
{ ecivil
ecivil
case constante1 :
intruções; ecivil
ss cc …
… defeito
defeito
ecivil
break;
case constante2 : Estado = solteiro
Estado = solteiro
Estado = casado
Estado = casado
Estado = …
Estado = …
Estado = ERRO
Estado = ERRO
intruções;
break;
... estado
case constanten :
intruções; Fim
Fim
break;
default:
intruções;
}
© M@nso 2004
Introdução à programação Computadores e programação I
Exercício
Estado civil
switch ( ECivil)
{ NOTA
... A escolha termina:
case ‘d’ :
case ‘D’ : •quando chegar ao fim
printf( “Divorciado”);
break; •quando encontrar a
... instrução break
}
© M@nso 2004
Introdução à programação Computadores e programação I
Exercícios
Construa um programa que indique se dois
números introduzidos pelo utilizador são múltiplos
um do outro.
Construa um programa que calcule as raízes de
uma equação de 2º grau.
Altere o programa anterior para calcular as raízes
reais e imaginárias.
© M@nso 2004
Introdução à programação Computadores e programação I
Erros
© M@nso 2003
Introdução à programação Computadores e programação I
Erros programas
Erros de especificação
Não compreendemos o problema
Erros Lógicos
O algoritmo está errado
Erros de sintaxe
O algoritmo está mal programado
Erros de ligação
Bibliotecas referenciadas que não existem
Erros de execução
Dados mal introduzidos
© M@nso 2004
Introdução à programação Computadores e programação I
Erros de especificação
© M@nso 2004
Introdução à programação Computadores e programação I
sim
ecivil=s
não sim
ecivil=c
Estado = casado
Estado = casado
estado
Fim
© M@nso 2004
Introdução à programação Computadores e programação I
if(m == 0)
if(n == 0)
printf("m e n são zero.“);
else
printf("m não é zero.“);
© M@nso 2004
Introdução à programação Computadores e programação I
printf(“%f”, totalFactura);
return 0;
}
© M@nso 2004
Introdução à programação Computadores e programação I
© M@nso 2004
Introdução à programação Computadores e programação I
Conclusão
© M@nso 2003
Introdução à programação Computadores e programação I
Construção de programas
Especificação do problema
Compreender o problema
Desenvolvimento do algoritmo
Especificar as entradas, saídas e uma forma de
transformar as entradas em saídas
Tradução do algoritmo para uma linguagem
de programação
programar
Tradução do programa para linguagem
máquina
Compilar e linkar
Executar o programa
testar
© M@nso 2004