820 likes | 1.04k Views
Linguagens de programação. Introdução ao C. 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
E N D
Linguagens de programação Introdução ao C
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
interpretador Programa que converte as instruções da linguagem de alto nível em instruções máquina e as executa. Interpretação de Programas Basic, Java, Portugol
Compilador (compiler) Ligador (linker) Programas Programa que converte as instruções da linguagem de alto nível em instruções máquina formando um programa objecto Programa que reúne todos os programas objecto e faz um programa executável Executados pelo sistema operativo Compilação de programas C,C++, Pascal
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
Olá mundo #include <stdio.h> int main(int argc, char* argv[]) { printf("ola mundo"); return 0; } 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
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
Tipos de dados em C • Simples • Numéricos • inteiros • reais • Caracter • Lógico • Compostos • Matrizes • Estruturas • Uniões • Variáveis • Um nome • Um Tipo • Um só valor
NOTA A declaração das variáveis deve ser feita antes da sua utilização Exemplos int soma; float saldo = 0.0; doule x, y, z; Declaração de variáveis • Tipo_de_dado nome_da_variável; • Tipo_de_dado nome_da_variável = valor_inicial; • Tipo_de_dado nome_da_variável1, nome_da_variável2, . . .;
Regras dos nomes de variáveis • Pode ser constituído por letras do alfabeto por dígitos e pelo caracter _ (underscore) • O primeiro caracter não pode ser um dígito • As letras maiúsculas e minúsculas representam caracteres diferentes • Não pode ter o nome de uma palavra reservado da linguagem • Deve ser descritivo daquilo que armazena • Caso tenha mais que uma palavra utilizar o caracter _ para unir as palavras ou capitular as iniciais • Não é aconselhado • A utilização de caracteres acentuados • Começar por _ • Ter apenas letras maiúsculas
NOTA O operado = é o operador de atribuição e significa que a variável passa a ter um novo valor (<- no portugol) O operador == (igual) é o operador de comparação e devolve verdadeiro ou falso ( = no portugol) Exemplos soma = 10 ; saldo =soma + 1; area = lado1 * lado2; Atribuição de Valores – operador = variavel = expressão;
atribuição do valor doze a x X = 12; X = 014; X = 0xC; 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
NOTA • por defeito os inteiros são: • signed • 16 bits • short • 32 bits • long 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 • Exemplos • unsigned short int x; • signed short int y; • unsigned long int total; • long int votos; • int nota;
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;
NOTA Os números armazenados em virgula flutuante podem comportar um erro de arredondamento resultante da sua representação Exemplo float raio = .50; long double taxa = 5E-2 ; Números Reais • Tipo • float • double • Representação • Base e Mantissa • notação • Notação corrente • 1.23 .23 0.23 1. 1.0 • Notação científica • 1.2E10 1.23e-15 • Modificadores • long
NOTA Os números armazenados em virgula flutuante podem comportar um erro de arredondamento resultante da sua representação Erro nos Números Reais
Caracteres (char) Caracteres especiais • Ocupam um byte • 256 caracteres disponíveis • Representados por um número • Tabela ASCII • Atribuição • Utilização do caracter plica (‘) • char sexo = ‘m’; • char enter =‘\n’ • Utilização directa do código ASCII • char letra = 98; • Modificadores • signed • unsigned
Exemplo char sexo; Sexo = ‘M’; Sexo = 77; Tabela ASCII
Exemplo enumsemanateoricaIP, praticaIP; teoricaIP = segunda; praticaIP = teoricaIP +1 ; Definição de tipos - Enumerações • Definição de nomes para valores • Cores , Dias da semana , Meses, etc. enumsemana{ segunda=2, terca=3, quarta=4, quinta=5, sexta=6, sabado=7, domingo=8 };
NOTAS • Quando omitimos o valor a enumeração toma o valor da anterior mais uma unidade. • Por defeito começam em zero Definição de tipos - Enumerações enum novo_tipo {nome_1=valor_1, nome_2, . . .,nome_n}; novo_tipo nome_variavel = nome_x; enum Cores {verde= 0 , amarelo = 1, vermelho =2 }; enum Cores semaforo = verde; enum logica {falso, verdadeiro }; enum logica condicao=verdadeiro;
Exemplo bool aprovado, trabEstudante; aprovador = true; trabEstudante = false; Valores lógicos (bool) • Dois valores definidos • false (valor zero) • true (um ou qualquer outro valor)
Definição de tipos - Typedef • Definição de nomes para tipos • typedef tipo_de_dadonovo_nome_do_tipo ; • Exemplos • typedef unsigned long intint32; • definição de um novo tipo chamado int32 • int32 somatorio; • definicao de uma variável do tipo int32
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.
Entrada e saida de dados • scanf • Entrada de dados pelo teclado • printf • Saída de dado para a consola • scanf(“string de formato”, &variavel , &variavel ,…); • scanf(“%f", &altura); • scanf(“%d", &idade); • scanf(“%f %d", &altura, &idade); • printf(“string de formato”, variavel , variavel ,…); • printf(“ a altura é %f :", altura); • printf(“ a idade é %d :", idade); • printf(“\n altura: %f idade :%d \n", altura, idade);
c caracter s cadeia de caracteres d inteiro f real no formato numérico e real no formato cientifico Formato de dados (I/O) • u • sem sinal • l • grande • h • pequeno • o • octal • x • Hexadecimal
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); } Programa gentil
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
NOTA Qualquer operação entre inteiros devolve um inteiro Exemplo 25 - 2 = 23 -3 - 2 = -5 25 / 2 = 12 25 + 2 = 27 25 % 2 = 1 25 * 2 = 50 Inteiros • Operadores unários • - (sinal) • Operadores binários • + (Soma) • - (Subtracção) • / (Divisão inteira) • % (Módulo)
x expressão y x y Nota Nota Nota Nota y = x++; y = x-- y = x x = x-1 4 3 y = x++ y = x x = x+1 X-- X = X-1 X++ X = X+1 3 Operadores unários – Pós fixo • Operadores unários • ++ (incremento) • -- (decremento)
x expressão y x y Nota Nota Nota Nota y = --x; y = --x x = x-1 y = x 2 2 y = ++x x = x+1 y = x --X X = X-1 ++X X = X+1 3 Operadores unários – Pré fixo • Operadores unários • ++ (incremento) • -- (decremento)
Operadores bit a bit • Manipulam directamente a representação binária dos números • e (and) • & • ou (or) • | • ou exclusivo (Xor) • ^ • Deslocamento à esquerda • << • Deslocamento à direita • >> Multiplicação Lógica Soma Lógica diferença Lógica
x y x y z z expressão 128 128 219 z = x | y ; 91 91 Operadores bit a bit - OR Soma Lógica
x y x y z z expressão z = x & y ; 90 20 90 20 16 Operadores bit a bit - AND Multiplicação Lógica
x y x y z z expressão z = x ^ y ; 90 20 90 20 78 Operadores bit a bit - XOR diferença Lógica
x y x y expressão y = x << 2; 20 20 80 Operadores bit a bit - Deslocamento • Algoritmo • deslocam-se os bites para a esquerda • os últimos bites perdem-se • introduzem-se zeros no inicio
x y x y expressão y = x >> 2; 20 20 5 Operadores bit a bit - Deslocamento • Algoritmo • deslocam-se os bites para a direita • os primeiros bites perdem-se • introduzem-se zeros no fim
Operadores sobre reais • Aritméticos • multiplicação • divisão • soma • subtracção expoente mantissa
exemplos exemplos exemplos exemplos X+= 3; X = X+3; x/=y; x = x /y; X*= 3; X = X*3; X|= y; X = X | y; Operadores compostos += , -=,%=, *=, /=, >>=, <<=, &=, |=, ^= variável Operador= expressão Variavel = variavel operador expressão
RELACIONAIS Maior > Menor < Igual == Maior ou igual >= Menor ou igual <= Diferente != LÒGICOS Conjunção && Disjunção || Negação ! Operadores sobre lógicos
x y z r 2 1 4 1 Associatividade • Associatividade esquerda=> direita • x + y + z • 3 + z • 7 • z / x * y • 2 * z • 2 matriculado teste false false • Associatividade direita => esquerda • r =x + y + z • 7 • r = 7 • teste = !matriculado • teste = true • x = -z • x=-4
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
Programa Área do rectângulo #include <stdio.h> int main(int argc, char* argv[]) { double Lado1, lado2, area; scanf(“%lf”, &lado1); scanf(“%lf”, &lado2); area = lado1 * lado2; printf(“ area = %lf ”, area); } Exercícios • Construa um programa que calcule a área de um rectangulo Inicio Ler lado1 Ler lado2 Area := lado1*lado2 Escrever Area fim