• Nenhum resultado encontrado

Aula01 - Conceitos Básicos

N/A
N/A
Protected

Academic year: 2021

Share "Aula01 - Conceitos Básicos"

Copied!
35
0
0

Texto

(1)

UNIVERSIDADE GREGÓRIO SEMEDO

Faculdade de Engenharia e Novas Tecnologias

Linguagem C

Conceitos Básicos

(2)

www.sousavarela.co.cc

 As Origens da linguagem C,

 Características da linguagem C,

 Interpretação X Compilação,

 Estrutura básica de um programa em C,

 Tipos de Erro,  Códigos Especiais,  Conceitos Importantes,  Bibliografia. Página 2

Sumário

(3)

Origens da linguagem C

 A linguagem de programação C foi originalmente projectada para ser implementada no sistema operacional UNIX em um DEC PDP-11;

 C é o resultado de um processo de desenvolvimento que começou com uma linguagem mais antiga, chamada BCPL;

 A linguagem BCPL influenciou uma linguagem chamada B, inventada por Ken Thompson;

(4)

www.sousavarela.co.cc

Origens da linguagem C

 O padrão C foi a versão fornecida com o sistema operacional UNIX versão 5;

 Com a popularidade dos microcomputadores, um grande número de implementações de C foi criada;

 Para remediar a falta de padrão da linguagem C, o ANSI (American National Standards Institute) estabeleceu, em 1983, um comitê para criar um padrão definitivo da linguagem C

(5)

Características da Linguagem C

 Linguagem dita de médio nível

 Linguagem Estrutural;

 Fácil portável entre hardwares e sistemas operacionais;

 Alta interactividade com o sistema operacional;

(6)

www.sousavarela.co.cc

C, uma linguagem para Programadores

 O que um programador quer de uma linguagem?

LIBERDADE!

 Usando C, um programador pode conseguir aproximadamente a eficiência de código assembly combinada com a programação estruturada;

 Linguagens de programação que querem “facilitar” a vida do programador são linguagens:

• pouco académicos,

• pouco profissionais e

• altamente comerciais;

(7)

Interpretação VS Compilação

 Um interpretador lê linha a linha do código-fonte, o examina sintaticamente e o executa;

 Um compilador lê todo programa e o converte em código-objeto (código de máquina) e pronto!

 Portanto, a linguagem C é compilada ou Interpretada?

Compilada

 A linguagem C possui uma característica peculiar:

(8)

www.sousavarela.co.cc

Visão Geral

 A geração do programa executável a partir do programa fonte obedece a uma sequência de operações antes de tornar-se um executável

 Depois de escrever o módulo fonte em um editor de textos, o programador acciona o compilador

• Essa acção desencadeia uma sequência de etapas

(9)

 Um programa em C consiste em uma ou várias funções, cuja forma geral é a seguinte

tipo nomeFunc(declaracao dos parametros) { declaracao de variaveis; instrucao_1; ... instrucao_n; return var_tipo; }

Estrutura Básica

(10)

Página 10

int main()

{

return 0;

}

 Função main( )

• Marca o ponto de partida do programa

• Termina quando for encerrada a execução da função

 Tipo int

A função main( ) deverá retornar um número inteiro

(11)

int main()

{

return 0;

}

 Parênteses

• Permitem que o compilador saiba que se trata de uma função

• Sem parênteses, o compilador poderia pensar que se refere a uma variável

 Chaves

• Delimitam o corpo da função

 Espaços em Branco

• Não é possível inserir espaços em branco em nomes de funções, operadores, comandos da linguagem e directivas

(12)

Página 12



Vamos adicionar duas instruções em nosso programa

#include <stdio.h> #include <stdlib.h> int main() { printf("Primeiro programa.\n"); system("PAUSE"); return 0; }

Instruções de programa

(13)

 A função printf( ) não faz parte da linguagem C

 É uma das funções de I/O presente na biblioteca padrão, fornecida com os compiladores C

printf("Primeiro programa.\n");

 A função system( ) executa um comando interno do sistema operacional ou um programa (.EXE, .COM ou .BAT)

system("PAUSE");

As funções printf( ) e system( )

(14)

Página 14

 O pré-processador é um programa que examina o programa fonte em C e executa certas modificações com base em instruções chamadas directivas

 As directivas servem para auxiliar no desenvolvimento do programa fonte

 A directiva #include provoca a inclusão de um outro arquivo no programa fonte

#include <stdio.h>

#include <stdlib.h>

(15)

/*Esse programa mostra o uso de comentários em várias linhas * e mostra também o uso de comentários em uma única linha *

* Primeiro programa *

********************************************************* */ /* Prog1.C */

#include <stdio.h> /* para printf() */ #include <stdlib.h> /* para system() */

int main() /* função main */

{ /* inicio do corpo da função main */

printf("Primeiro programa."); /* chamada a função printf */

system("PAUSE"); /* chamada a função system */

return 0;

}/* fim do corpo da função main */

Comentários

(16)

www.sousavarela.co.cc

Estrutura básica de um programa em C

(17)
(18)

Página 18

Um pouco sobre a função MAIN

 A função main é o ponto de entrada de uma aplicação C. Usualmente, um aplicação C se inicia no método main e, a partir dele, invoca diversas outras funções. Por fim, essa função retorna um valor inteiro

 Esse valor retornado não é impresso, serve apenas para indicar ao sistema operacional ou para um aplicativo que invocou o seu aplicativo qual foi o código de retorno. Por padrão, o retorno 0

indica que o aplicativo encerrou conforme esperado. Os outros valores podem ser definidos conforme a necessidade de cada aplicação

• Normalmente, valores negativos se referem a erros

(19)

Valores de retorno da função MAIN

 Neste slide, adopta-se os seguintes valores de retorno:

0 - encerramento conforme esperado

-1 - memória insuficiente

-2 - argumentos de linha de comando incorrectos

-3 - problema ao abrir arquivo

(20)

Eis algumas palavras reservadas da linguagem C:

auto double int struct

break else long switch

case ebun register typedef

char extern return union

const float short unsigned

continue for signed void

default goto sizeof volatile

asm pascal far huge

interrupt near _cs _ds

8/53 Página 20

(21)

Processo de compilação

 Criar o programa

 Compilar o programa

 Linkeditar o programa com as funções necessárias da biblioteca

 Por utilizarmos uma IDE de desenvolvimento esse processo fica bem mais transparente

(22)

Página 22

Mapa de memória em C

 Quatro regiões logicamente distintas:

• código do programa

• variáveis globais

• pilha (stack)

• heap

• região de memória livre a ser requisitada (alocação dinâmica)

(23)

C versus C++

 C++ é uma versão estendida e melhorada da linguagem C que é projectada para suportar programação orientada a objectos

 C++ contém e suporta toda a linguagem C e mais um conjunto de extensões orientadas a objectos

 Portanto:

• Você não pode programar em C++ se não souber C

• Tudo que aprender da linguagem C, poderá ser utilizado em C++

 Compiladores compatíveis?

(24)

www.sousavarela.co.cc

Estrutura básica de uma programa em C

#

include <stdio.h>

/* Imprime a mensagem “Hello World” na tela */

int main()

{

printf (“Hello World”);

return 0;

}

Página 24

Directiva de inclusão Biblioteca incluída no programa

Comentário Tipo da Função Nome da Função

Inicio da Função

Função para escrita na consola

Fim da Função

(25)

Código sem Legibilidade

#include <stdio.h>

/* Imprime a mensagem

“Hello World” na tela */

int main() {

printf(“

Hello World

”)

;

return

0

;

}

O include não pode ser escrito em linha diferente

(26)

www.sousavarela.co.cc

Código sem Legibilidade

#include <stdio.h>

/* Imprime a mensagem

“Hello World” na tela */

int main() {

printf(

Hello World

”)

;

return 0;

}

Página 26

Faltam as aspas necessárias Para o printf funcionar

(27)

Código com Legibilidade

#include <stdio.h>

/* Imprime a mensagem “Hello World” na tela */

int main()

printf(

“\nHello World”);

return 0;

}

Facilidade para encontrar o erro

(28)

www.sousavarela.co.cc

Tipos de erro

 Erros são provocados 99,9% da vezes pelo programador.

 Existem basicamente dois tipos de erros:

• Lógico, • Sintáctico.

 Erro sintáctico é acusado pelo compilador;

• É como uma correcção ortográfica, veja:

(29)

Erro sintáctico

Faltou o ;

(30)

www.sousavarela.co.cc

Erro Lógico

 Caso o compilador não encontre erro de escrita, seu código-fonte será transformado em código-objeto (código de máquina) e você poderá executá-lo;

 Porém, se a lógica do programador estiver errada não poderá ser detectado o erro pelo compilador;

 Tais erros podem acarretar:

• Saídas repentinas do programa; • Geração de dados inconsistentes; • Acessos indevidos à memória; • Loop infinito;

• etc.

(31)

Códigos especiais

Código Significado \b Retrocesso \f Alimentação de formulário \n Nova linha \r Retorno de carro \t Tabulação horizontal \” Aspas duplas \’ Aspas simples \0 Nulo \\ Barra invertida \v Tabulação vertical \a Alerta

(32)

www.sousavarela.co.cc

Imprimindo um nova linha

#include <stdio.h>

/* Imprime a mensagem “Hello World” na tela */

int main()

{

printf(

“\nHello World”

);

return

0;

}

(33)
(34)

www.sousavarela.co.cc

Conceitos Importantes



Código-fonte

: O texto de um programa que um usuário pode ler,

normalmente interpretado como o programa. É a entrada para o compilador C.



Código-Objeto:

Tradução do código-fonte em código de máquina. O código-objeto é a entrada para o linkeditor.



Tempo de compilação

: Os eventos que ocorrem enquanto o seu

programa está sendo compilado.



Tempo de execução:

Os eventos que ocorrem enquanto o seu programa é executado.

(35)

Bibliografia

 MIZRAHI, V. V. “Treinamento em Linguagem C++

 Módulo 1”, Makron Books, SP, 1995.

Referências

Documentos relacionados

Dados vol´ ateis podem estar na mem´ oria RAM interna de acesso direto e indireto (primeiros 128 bytes), mem´ oria RAM interna de acesso indireto, ´ area de SFR e mem´ oria de

O modelo de trajetória é usado para extrapolar o último ponto extraído um passo adiante (por exemplo, dois ou três pixels). A tolerância é maior, para que o perfil medido seja maior

Numa polinização de devires, houve um devir-clandestino da pesquisadora, um devir do objeto de pesquisa, um devir dessa própria escrita viii (ou seria um bloco de

Este trabalho tem como principais objetivos (a) a construção, calibração e operação de lisímetros de pesagem baseado em célula de carga para monitorar o consumo de água

hormonal (análogos do GnRH, progestagênios e contraceptivos hormonais) para tratamento da doença na ocasião da cirurgia e nos três meses anteriores a esta. Quarenta pacientes

Posteriormente, o mesmo autor, Viveiros de Castro, pro- pôs o termo perspectiva, para estabelecer que, muito resumidamente, tudo depende da posição singular de onde o

Quanto à correlação entre habilidades sociais e sintomas depressivos há FRUUHODomRSRVLWLYD H VLJQLÀFDWLYD SRUpP IUDFDHQWUH KDELOLGDGH VRFLDOQR indicador GLÀFXOGDGH nas

  Se temos um compilador escrito em linguagem de alto nível que compila código C para x86, temos ainda um problema, esse compilador pode ser alterado para uma outra máquina